> For the complete documentation index, see [llms.txt](https://docs.pullrequest.com/on-premise-server/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.pullrequest.com/on-premise-server/configure-posting-user/configure-azure-devops-posting-user.md).

# Configure Azure DevOps Posting User

The service interfaces with users in Azure DevOps projects through a "HackerOne" member of your Azure DevOp team. So a Azure DevOp user must be created and configured as a Posting or Service user.

## Prerequisites

The Azure DevOps posting user must be created by an individual on your team with the following administrative permissions:

* [ ] A HackerOne Code user  with an Owner role for the organization in question.
* [ ] An Administrator role on your Azure DevOps Server Group.

### Create Posting User

Log in to your Azure DevOp instance as an administrator and create a new user with the username **HackerOne** or **PullRequest**. HackerOne Code will use this user to post scan results and validated issues.

<mark style="background-color:yellow;">**\*\*\*We strongly recommend adding the following image as the posting user's avatar**</mark>. This provides a much better end-user experience; it allows the service to be easily identified in the GitHub interface:

{% file src="/files/OBk998HAFQRbqiafYMOH" %}

### Add Posting User to Projects

Add the user you just created to all of the organizations/repositories you want code review on. Be sure to grant the user the appropriate access so it's able to read repositories and pull requests, view code and post comments.

### Create Azure DevOps Access Token

Log into Azure DevOps as the PullRequest user you just created.

{% hint style="info" %}
This may be easier in another browser or in an incognito tab so you can remain logged in as the Azure DevOps Administrator user.
{% endhint %}

Click the profile icon at the top right and click **Security** from the drop-down menu. From here, click on **Personal access tokens** from the sidebar on the left. This should be accessible from the following path:

```
https://your-internal-azure.com/DefaultCollection/_usersSettings/tokens
```

Click **New Token** and create a Personal Access Token with the following properties:

* [ ] **Code** - **Read & Write** and **Status**
* [ ] **Identity** - **Read**

{% hint style="success" %}
Read more about the permissions HackerOne Code requires and how we use them [**here**](https://docs.pullrequest.com/customer-documentation/cloud-integrations/adding-azure-devops-repositories#required-permissions)**.**
{% endhint %}

Once generated, copy the personal access token to your clipboard so we can configure the connection to Azure DevOps.

### Connecting PullRequest Proxy to Azure DevOps

Now, it's time to return to that text file we're editing on the proxy server. Go ahead and set the following keys based on what was configured above.

```
PROVIDER_TYPE=azuredevops
PROVIDER_BASE_URL=https://your-internal-azure.com
PROVIDER_USERNAME=PullRequest
PROVIDER_ACCESS_TOKEN=<access_token>
```

{% hint style="warning" %}
Make sure the **HackerOne Code Posting User's username** is spelled exactly as the username of the user that was created. We highly recommend "HackerOne" (all one word, PascalCase) to maintain communication consistency.
{% endhint %}
