GitLab integration


Supported authentication methods

Personal token

To proceed with this authentication type you need to obtain API token from GitLab. Steps below will instruct you how to do that.

Click on your "Profile Picture" in the top right and then click "Settings" in revealed menu.

Reveal user menu

In the left pane, switch to "Access Tokens" section.

Navigate to access tokens

Give your new token an unique name and specify its expiry date. Note, that once it will be reached, integration will not be able to push data to GitLab and eventually be marked as broken. Don't forget to check api scope, to let Bugsee access issues API in your GitLab. Finally, click "Create personal access token" to generate new token. Don't forget to copy it.

Generate token

Now, when you've obtained a token, lets configure integration in Bugsee.

Select personal token

Provide valid host (URL to your GitLab or if you're using cloud GitLab) and paste generated token.

Paste personal token


Select "OAuth" in the first step of integration wizard. Click "Next".

Select OAuth

For now, we only support OAuth for Cloud GitLab. So, click "Next" to continue.

Select OAuth

You will be presented with dialog asking you to authorize Bugsee. Click Authorize to allow Bugsee access your GitLab.

OAuth Grant


There are no any specific configuration steps for GitLab. Refer to configuration section for description about generic steps.

Custom recipes

Bugsee can accommodate all these customizations with the help of custom recipes. This section provides a few examples of using custom recipes specifically with Gitlab. For basic introduction, refer to custom recipe documentation.

Setting labels field

By default Bugsee creates and updates Gitlab issues with Bugsee issue labels. But labels list can be overridden inside your custom recipe. For example you can add some new label to existing ones:

function create(context) {
    // ....

    return {
        // ...
        labels: [...issue.labels, "My awesome label"]

function update(context, changes) {
    const result = {};
    // ...

    if (changes.labels) {
        result.labels = [, "My awesome label"];

    return {
        issue: {
            custom: {}
        changes: result