> 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-gitlab-posting-user.md).

# Configure GitLab Posting User

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

## Prerequisites

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

* [ ] A HackerOne Code user account with an Owner role for the organization in question.
* [ ] An Owner role on your GitLab Self-Hosted Group.

### Create Posting User

Log in to your GitLab 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 projects/repositories you want code review on. Be sure to grant the user **REPORTER** access so it's able to post comments.

{% hint style="success" %}
HackerOne Code will **DOES NOT** perform any code modification operations in your repositories. Read more about how we keep your data secure [here](https://www.pullrequest.com/security/).
{% endhint %}

### Create GitLab Access Token

Log into GitLab as the HackerOne Code 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 GitLab owner user.
{% endhint %}

Open **User settings** -> **Access Tokens**. This should be accessible from the following path:

```
https://our-gitlab.internal/-/profile/personal_access_tokens
```

Create a Personal Access Token with the following properties:

* [ ] **Name**: For your team's internal use. No functionality is associated with this property.
* [ ] **Expiration**: \*\*\* *Leave blank*.
* [ ] **Scopes**: The **api**, **read\_user**, and **read\_repository** scopes should all be checked.

![](https://624363444-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LNMKNsDv2KL9GI5L5YY%2F-Lhf6qZunJ_9gib6ID44%2F-LhfCWOzutANxjmGTeMP%2Fimage.png?alt=media\&token=c07406a7-7840-4671-b55a-3a032cd634fc)

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

### Connecting PullRequest Proxy to GitLab

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=gitlab
PROVIDER_BASE_URL=https://our-gitlab.internal
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 %}
