# GitLab

{% hint style="info" %}
The integration is available for both Playwright and Cypress. The examples and screenshot below are based on Cypress framework.
{% endhint %}

Currents Dashboard integration with GitLab allows posting [commit build statuses](https://docs.gitlab.com/ee/api/commits.html#post-the-build-status-to-a-commit) as well [merge request comments](https://docs.gitlab.com/ee/user/discussions/) with a summary of your cypress tests.

#### Example of GitLab commit status

![Cypress GitLab Integration - commit build status example](https://3745692499-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqmFDEiUa9mr11LUlxDnt%2Fuploads%2FXIZ1uJWLbK0MVuBffjyj%2Fcypress-gitlab-integration-commit-status.png?alt=media\&token=0505bbf3-921d-4265-8f50-2febcf4637c2)

#### Example of GitLab Merge Request note

![Cypress GitLab Integration - Merge Request comment example](https://3745692499-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqmFDEiUa9mr11LUlxDnt%2Fuploads%2F7B6jLygRd8x5kg83hkTx%2Fcypress-gitlab-merge-request-note.png?alt=media\&token=c94f343f-e0a1-4545-971b-cead8b39c4c3)

### Enabling GitLab Integration

In order to install GitLab integration in Currents Dashboard, visit **Project Settings -> Integrations** and click **Connect GitLab repositories**.

![Installing GitLab integration for Cypress](https://3745692499-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqmFDEiUa9mr11LUlxDnt%2Fuploads%2FsImu9neSI68rHQB25QyF%2Fcypress-gitlab-install-integration.png?alt=media\&token=46912c6a-f730-4270-903e-8d0677491ce0)

{% hint style="info" %}
**GitLab Enterprise and self-hosted GitLab users:** you'd override the default **GitLab Instance Domain** with the base URL of your GitLab setup. For example `https://gitlab.yourcompany.com`
{% endhint %}

Follow the on-screen instructions to create a new [GitLab OAuth App](https://docs.gitlab.com/ee/integration/oauth_provider.html#user-owned-applications) with the following properties:

* `https://hub.currents.dev/gitlab/callback` as **Redirect URI**&#x20;
* `api` scope in the application permissions

{% hint style="info" %}
**Please note:** `api` scope is required for the integration to work correctly. At the time of implementation, GitLab didn't allow setting more granular permissions.&#x20;

Here's the list of API calls that Currents use:

* Getting the list of repositories accessible to OAuth token issuer
* Posting commit build status updates
* Posting and deleting Merge Request notes
  {% endhint %}

Enter the details (**App ID** and **App Secret**) of the newly created GitLab OAuth App and click **Connect.**

After a successful connection, you will see a dropdown list of accessible  GitLab projects (repositories). Select the repository you'd like to integrate with the Currents project and click **Save.**

![Installing GitLab Integration ](https://3745692499-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqmFDEiUa9mr11LUlxDnt%2Fuploads%2FkW51ffCDhy9zXgrTdhpl%2FScreenshot%202026-01-19%20at%2020.07.26.png?alt=media\&token=1dcf2995-bf36-4e2a-a7e5-722c2b4fe468)

Currents Dashboard will start posting [commit build statuses](https://docs.gitlab.com/ee/api/commits.html#post-the-build-status-to-a-commit) and [merge request comments](https://docs.gitlab.com/ee/user/discussions/) with a summary of your Playwright tests for Merge Requests in the selected project.

### Customizing GitLab Integration&#x20;

Toggling GitLab Integration settings change the type of content that is being posted to GitLab

![Customizing GitLab Integration](https://3745692499-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqmFDEiUa9mr11LUlxDnt%2Fuploads%2FpKktUg5AHhmt5VOAC95E%2FCleanShot%202022-06-02%20at%2000.52.52%402x.png?alt=media\&token=ccdd086d-10b6-4f74-b47d-a60c85496692)

* Merge Requests Comment - will toggle on / off posting  run results summary to a merge request
* Commit Status - will toggle on / off updating commit status with run results

### Disabling GitLab Integration

Clicking **Disconnect Project** (1) will detach the integration from the currently selected GitLab project. Disconnecting a project would keep GitLab OAuth App credentials. You would still be able to select a different GitLab project from the list to reactivate the integration.&#x20;

**Uninstalling** (2) the integration removes the associated credentials and the integration altogether.

![Disabling GitLab Integration](https://3745692499-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqmFDEiUa9mr11LUlxDnt%2Fuploads%2FRKrBh2pyuYbk9FfER3Yy%2FCleanShot%202022-06-02%20at%2000.57.05%402x.png?alt=media\&token=ee2ce2df-1d45-4b82-9845-4459ad0337a6)
