--- stage: Manage group: Import and Integrate info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments --- # Integrations API **(FREE ALL)** This API enables you to work with external services that integrate with GitLab. NOTE: In GitLab 14.4, the `services` endpoint was [renamed](https://gitlab.com/gitlab-org/gitlab/-/issues/334500) to `integrations`. Calls to the Integrations API can be made to both `/projects/:id/services` and `/projects/:id/integrations`. The examples in this document refer to the endpoint at `/projects/:id/integrations`. This API requires an access token with the Maintainer or Owner role. ## List all active integrations > `vulnerability_events` field [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/131831) in GitLab 16.4. Get a list of all active project integrations. The `vulnerability_events` field is only available for GitLab Enterprise Edition. ```plaintext GET /projects/:id/integrations ``` Example response: ```json [ { "id": 75, "title": "Jenkins CI", "slug": "jenkins", "created_at": "2019-11-20T11:20:25.297Z", "updated_at": "2019-11-20T12:24:37.498Z", "active": true, "commit_events": true, "push_events": true, "issues_events": true, "alert_events": true, "confidential_issues_events": true, "merge_requests_events": true, "tag_push_events": false, "deployment_events": false, "note_events": true, "confidential_note_events": true, "pipeline_events": true, "wiki_page_events": true, "job_events": true, "comment_on_event_enabled": true, "vulnerability_events": true }, { "id": 76, "title": "Alerts endpoint", "slug": "alerts", "created_at": "2019-11-20T11:20:25.297Z", "updated_at": "2019-11-20T12:24:37.498Z", "active": true, "commit_events": true, "push_events": true, "issues_events": true, "alert_events": true, "confidential_issues_events": true, "merge_requests_events": true, "tag_push_events": true, "deployment_events": false, "note_events": true, "confidential_note_events": true, "pipeline_events": true, "wiki_page_events": true, "job_events": true, "comment_on_event_enabled": true, "vulnerability_events": true } ] ``` ## Apple App Store ### Set up Apple App Store Set up the Apple App Store integration for a project. ```plaintext PUT /projects/:id/integrations/apple_app_store ``` Parameters: | Parameter | Type | Required | Description | | --------- | ---- | -------- | ----------- | | `app_store_issuer_id` | string | true | The Apple App Store Connect Issuer ID. | | `app_store_key_id` | string | true | The Apple App Store Connect Key ID. | | `app_store_private_key` | string | true | The Apple App Store Connect Private Key. | | `app_store_protected_refs` | boolean | false | Set variables only on protected branches and tags. Defaults to `true` (enabled). | ### Disable Apple App Store Disable the Apple App Store integration for a project. Integration settings are reset. ```plaintext DELETE /projects/:id/integrations/apple_app_store ``` ### Get Apple App Store settings Get the Apple App Store integration settings for a project. ```plaintext GET /projects/:id/integrations/apple_app_store ``` ## Asana ### Set up Asana Set up the Asana integration for a project. ```plaintext PUT /projects/:id/integrations/asana ``` Parameters: | Parameter | Type | Required | Description | | --------- | ---- | -------- | ----------- | | `api_key` | string | true | User API token. User must have access to task. All comments are attributed to this user. | | `restrict_to_branch` | string | false | Comma-separated list of branches to be are automatically inspected. Leave blank to include all branches. | ### Disable Asana Disable the Asana integration for a project. Integration settings are reset. ```plaintext DELETE /projects/:id/integrations/asana ``` ### Get Asana settings Get the Asana integration settings for a project. ```plaintext GET /projects/:id/integrations/asana ``` ## Assembla ### Set up Assembla Set up the Assembla integration for a project. ```plaintext PUT /projects/:id/integrations/assembla ``` Parameters: | Parameter | Type | Required | Description | | --------- | ---- | -------- | ----------- | | `token` | string | true | The authentication token. | | `subdomain` | string | false | The subdomain setting. | ### Disable Assembla Disable the Assembla integration for a project. Integration settings are reset. ```plaintext DELETE /projects/:id/integrations/assembla ``` ### Get Assembla settings Get the Assembla integration settings for a project. ```plaintext GET /projects/:id/integrations/assembla ``` ## Atlassian Bamboo ### Set up Atlassian Bamboo Set up the Atlassian Bamboo integration for a project. You must configure automatic revision labeling and a repository trigger in Bamboo. ```plaintext PUT /projects/:id/integrations/bamboo ``` Parameters: | Parameter | Type | Required | Description | | --------- | ---- | -------- | ----------- | | `bamboo_url` | string | true | Bamboo root URL (for example, `https://bamboo.example.com`). | | `enable_ssl_verification` | boolean | false | Enable SSL verification. Defaults to `true` (enabled). | | `build_key` | string | true | Bamboo build plan key like `KEY`. | | `username` | string | true | A user with API access, if applicable. | | `password` | string | true | Password of the user. | ### Disable Atlassian Bamboo Disable the Atlassian Bamboo integration for a project. Integration settings are reset. ```plaintext DELETE /projects/:id/integrations/bamboo ``` ### Get Atlassian Bamboo settings Get the Atlassian Bamboo integration settings for a project. ```plaintext GET /projects/:id/integrations/bamboo ``` ## Bugzilla ### Set up Bugzilla Set up the Bugzilla integration for a project. ```plaintext PUT /projects/:id/integrations/bugzilla ``` Parameters: | Parameter | Type | Required | Description | | --------- | ---- | -------- | ----------- | | `new_issue_url` | string | true | New issue URL. | | `issues_url` | string | true | Issue URL. | | `project_url` | string | true | Project URL. | ### Disable Bugzilla Disable the Bugzilla integration for a project. Integration settings are reset. ```plaintext DELETE /projects/:id/integrations/bugzilla ``` ### Get Bugzilla settings Get the Bugzilla integration settings for a project. ```plaintext GET /projects/:id/integrations/bugzilla ``` ## Buildkite ### Set up Buildkite Set up the Buildkite integration for a project. ```plaintext PUT /projects/:id/integrations/buildkite ``` Parameters: | Parameter | Type | Required | Description | | --------- | ---- | -------- | ----------- | | `token` | string | true | Buildkite project GitLab token. | | `project_url` | string | true | Pipeline URL (for example, `https://buildkite.com/example/pipeline`). | | `enable_ssl_verification` | boolean | false | **Deprecated:** This parameter has no effect because SSL verification is always enabled. | | `push_events` | boolean | false | Enable notifications for push events. | | `merge_requests_events` | boolean | false | Enable notifications for merge request events. | | `tag_push_events` | boolean | false | Enable notifications for tag push events. | ### Disable Buildkite Disable the Buildkite integration for a project. Integration settings are reset. ```plaintext DELETE /projects/:id/integrations/buildkite ``` ### Get Buildkite settings Get the Buildkite integration settings for a project. ```plaintext GET /projects/:id/integrations/buildkite ``` ## Campfire ### Set up Campfire Set up the Campfire integration for a project. ```plaintext PUT /projects/:id/integrations/campfire ``` Parameters: | Parameter | Type | Required | Description | |---------------|---------|----------|---------------------------------------------------------------------------------------------| | `token` | string | true | Campfire API token. To find it, sign in to Campfire and select **My info**. | | `subdomain` | string | false | Campfire subdomain. Text between `https://` and `.campfirenow.com` when you're logged in. | | `room` | string | false | Campfire room. The last part of the URL when you're in a room. | ### Disable Campfire Disable the Campfire integration for a project. Integration settings are reset. ```plaintext DELETE /projects/:id/integrations/campfire ``` ### Get Campfire settings Get the Campfire integration settings for a project. ```plaintext GET /projects/:id/integrations/campfire ``` ## ClickUp > [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/120732) in GitLab 16.1. ### Set up ClickUp Set up the ClickUp integration for a project. ```plaintext PUT /projects/:id/integrations/clickup ``` Parameters: | Parameter | Type | Required | Description | | ------------- | ------ | -------- | -------------- | | `issues_url` | string | true | Issue URL. | | `project_url` | string | true | Project URL. | ### Disable ClickUp Disable the ClickUp integration for a project. Integration settings are reset. ```plaintext DELETE /projects/:id/integrations/clickup ``` ### Get ClickUp settings Get the ClickUp integration settings for a project. ```plaintext GET /projects/:id/integrations/clickup ``` ## Confluence Workspace ### Set up Confluence Workspace Set up the Confluence Workspace integration for a project. ```plaintext PUT /projects/:id/integrations/confluence ``` Parameters: | Parameter | Type | Required | Description | | --------- | ---- | -------- | ----------- | | `confluence_url` | string | true | The URL of the Confluence Workspace hosted on `atlassian.net`. | ### Disable Confluence Workspace Disable the Confluence Workspace integration for a project. Integration settings are reset. ```plaintext DELETE /projects/:id/integrations/confluence ``` ### Get Confluence Workspace settings Get the Confluence Workspace integration settings for a project. ```plaintext GET /projects/:id/integrations/confluence ``` ## Custom issue tracker ### Set up a custom issue tracker Set up a custom issue tracker for a project. ```plaintext PUT /projects/:id/integrations/custom-issue-tracker ``` Parameters: | Parameter | Type | Required | Description | | --------- | ---- | -------- | ----------- | | `new_issue_url` | string | true | New issue URL. | | `issues_url` | string | true | Issue URL. | | `project_url` | string | true | Project URL. | ### Disable a custom issue tracker Disable a custom issue tracker for a project. Integration settings are reset. ```plaintext DELETE /projects/:id/integrations/custom-issue-tracker ``` ### Get custom issue tracker settings Get the custom issue tracker settings for a project. ```plaintext GET /projects/:id/integrations/custom-issue-tracker ``` ## Datadog ### Set up Datadog Set up the Datadog integration for a project. ```plaintext PUT /projects/:id/integrations/datadog ``` Parameters: | Parameter | Type | Required | Description | |------------------------|---------|----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `api_key` | string | true | API key used for authentication with Datadog. | | `api_url` | string | false | (Advanced) The full URL for your Datadog site. | | `datadog_env` | string | false | For self-managed deployments, set the `env%` tag for all the data sent to Datadog. | | `datadog_service` | string | false | Tag all data from this GitLab instance in Datadog. Can be used when managing several self-managed deployments. | | `datadog_site` | string | false | The Datadog site to send data to. To send data to the EU site, use `datadoghq.eu`. | | `datadog_tags` | string | false | Custom tags in Datadog. Specify one tag per line in the format `key:value\nkey2:value2` ([introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/79665) in GitLab 14.8.). | | `archive_trace_events` | boolean | false | When enabled, job logs are collected by Datadog and displayed along with pipeline execution traces ([introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/346339) in GitLab 15.3). | ### Disable Datadog Disable the Datadog integration for a project. Integration settings are reset. ```plaintext DELETE /projects/:id/integrations/datadog ``` ### Get Datadog settings Get the Datadog integration settings for a project. ```plaintext GET /projects/:id/integrations/datadog ``` ## Discord Notifications ### Set up Discord Notifications > `_channel` parameters [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/125621) in GitLab 16.3. Set up Discord Notifications for a project. ```plaintext PUT /projects/:id/integrations/discord ``` Parameters: | Parameter | Type | Required | Description | | --------- | ---- | -------- | ----------- | | `webhook` | string | true | Discord webhook (for example, `https://discord.com/api/webhooks/…`). | | `branches_to_be_notified` | string | false | Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`. | | `confidential_issues_events` | boolean | false | Enable notifications for confidential issue events. | | `confidential_issue_channel` | string | false | The webhook override to receive notifications for confidential issue events. | | `confidential_note_events` | boolean | false | Enable notifications for confidential note events. | | `confidential_note_channel` | string | false | The webhook override to receive notifications for confidential note events. | | `deployment_events` | boolean | false | Enable notifications for deployment events. | | `deployment_channel` | string | false | The webhook override to receive notifications for deployment events. | | `group_confidential_mentions_events` | boolean | false | Enable notifications for group confidential mention events. | | `group_confidential_mentions_channel` | string | false | The webhook override to receive notifications for group confidential mention events. | | `group_mentions_events` | boolean | false | Enable notifications for group mention events. | | `group_mentions_channel` | string | false | The webhook override to receive notifications for group mention events. | | `issues_events` | boolean | false | Enable notifications for issue events. | | `issue_channel` | string | false | The webhook override to receive notifications for issue events. | | `merge_requests_events` | boolean | false | Enable notifications for merge request events. | | `merge_request_channel` | string | false | The webhook override to receive notifications for merge request events. | | `note_events` | boolean | false | Enable notifications for note events. | | `note_channel` | string | false | The webhook override to receive notifications for note events. | | `notify_only_broken_pipelines` | boolean | false | Send notifications for broken pipelines. | | `pipeline_events` | boolean | false | Enable notifications for pipeline events. | | `pipeline_channel` | string | false | The webhook override to receive notifications for pipeline events. | | `push_events` | boolean | false | Enable notifications for push events. | | `push_channel` | string | false | The webhook override to receive notifications for push events. | | `tag_push_events` | boolean | false | Enable notifications for tag push events. | | `tag_push_channel` | string | false | The webhook override to receive notifications for tag push events. | | `wiki_page_events` | boolean | false | Enable notifications for wiki page events. | | `wiki_page_channel` | string | false | The webhook override to receive notifications for wiki page events. | ### Disable Discord Notifications Disable Discord Notifications for a project. Integration settings are reset. ```plaintext DELETE /projects/:id/integrations/discord ``` ### Get Discord Notifications settings Get the Discord Notifications settings for a project. ```plaintext GET /projects/:id/integrations/discord ``` ## Drone ### Set up Drone Set up the Drone integration for a project. ```plaintext PUT /projects/:id/integrations/drone-ci ``` Parameters: | Parameter | Type | Required | Description | | --------- | ---- | -------- | ----------- | | `token` | string | true | Drone CI project specific token. | | `drone_url` | string | true | `http://drone.example.com`. | | `enable_ssl_verification` | boolean | false | Enable SSL verification. Defaults to `true` (enabled). | | `push_events` | boolean | false | Enable notifications for push events. | | `merge_requests_events` | boolean | false | Enable notifications for merge request events. | | `tag_push_events` | boolean | false | Enable notifications for tag push events. | ### Disable Drone Disable the Drone integration for a project. Integration settings are reset. ```plaintext DELETE /projects/:id/integrations/drone-ci ``` ### Get Drone settings Get the Drone integration settings for a project. ```plaintext GET /projects/:id/integrations/drone-ci ``` ## Emails on push ### Set up emails on push Set up the emails on push integration for a project. ```plaintext PUT /projects/:id/integrations/emails-on-push ``` Parameters: | Parameter | Type | Required | Description | | --------- | ---- | -------- | ----------- | | `recipients` | string | true | Emails separated by whitespace. | | `disable_diffs` | boolean | false | Disable code diffs. | | `send_from_committer_email` | boolean | false | Send from committer. | | `push_events` | boolean | false | Enable notifications for push events. | | `tag_push_events` | boolean | false | Enable notifications for tag push events. | | `branches_to_be_notified` | string | false | Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. Notifications are always fired for tag pushes. The default value is `all`. | ### Disable emails on push Disable the emails on push integration for a project. Integration settings are reset. ```plaintext DELETE /projects/:id/integrations/emails-on-push ``` ### Get emails on push settings Get the emails on push integration settings for a project. ```plaintext GET /projects/:id/integrations/emails-on-push ``` ## Engineering Workflow Management (EWM) ### Set up EWM Set up the EWM integration for a project. ```plaintext PUT /projects/:id/integrations/ewm ``` Parameters: | Parameter | Type | Required | Description | | --------- | ---- | -------- | ----------- | | `new_issue_url` | string | true | The URL to create an issue in EWM. | | `project_url` | string | true | The URL to the project in EWM. | | `issues_url` | string | true | The URL to view an issue in EWM. Must contain `:id`. | ### Disable EWM Disable the EWM integration for a project. Integration settings are reset. ```plaintext DELETE /projects/:id/integrations/ewm ``` ### Get EWM settings Get the EWM integration settings for a project. ```plaintext GET /projects/:id/integrations/ewm ``` ## External wiki ### Set up an external wiki Set up an external wiki for a project. ```plaintext PUT /projects/:id/integrations/external-wiki ``` Parameters: | Parameter | Type | Required | Description | | --------- | ---- | -------- | ----------- | | `external_wiki_url` | string | true | The URL of the external wiki. | ### Disable an external wiki Disable an external wiki for a project. Integration settings are reset. ```plaintext DELETE /projects/:id/integrations/external-wiki ``` ### Get external wiki settings Get the external wiki settings for a project. ```plaintext GET /projects/:id/integrations/external-wiki ``` ## GitHub **(PREMIUM ALL)** ### Set up GitHub Set up the GitHub integration for a project. ```plaintext PUT /projects/:id/integrations/github ``` Parameters: | Parameter | Type | Required | Description | | --------- | ---- | -------- | ----------- | | `token` | string | true | GitHub API token with `repo:status` OAuth scope. | | `repository_url` | string | true | GitHub repository URL. | | `static_context` | boolean | false | Append instance name instead of branch to [status check name](../user/project/integrations/github.md#static-or-dynamic-status-check-names). | ### Disable GitHub Disable the GitHub integration for a project. Integration settings are reset. ```plaintext DELETE /projects/:id/integrations/github ``` ### Get GitHub settings Get the GitHub integration settings for a project. ```plaintext GET /projects/:id/integrations/github ``` ## GitLab for Slack app ### Set up the GitLab for Slack app Set up the GitLab for Slack app for a project. ```plaintext PUT /projects/:id/integrations/slack ``` Parameters: | Parameter | Type | Required | Description | | --------- | ---- | -------- | ----------- | | `webhook` | string | true | `https://hooks.slack.com/services/...`. | | `username` | string | false | username. | | `channel` | string | false | Default channel to use if others are not configured. | | `notify_only_broken_pipelines` | boolean | false | Send notifications for broken pipelines. | | `notify_only_default_branch` | boolean | false | **Deprecated:** This parameter has been replaced with `branches_to_be_notified`. | | `branches_to_be_notified` | string | false | Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`. | | `alert_channel` | string | false | The name of the channel to receive notifications for alert events. | | `alert_events` | boolean | false | Enable notifications for alert events. | | `commit_events` | boolean | false | Enable notifications for commit events. | | `confidential_issue_channel` | string | false | The name of the channel to receive notifications for confidential issue events. | | `confidential_issues_events` | boolean | false | Enable notifications for confidential issue events. | | `confidential_note_channel` | string | false | The name of the channel to receive notifications for confidential note events. | | `confidential_note_events` | boolean | false | Enable notifications for confidential note events. | | `deployment_channel` | string | false | The name of the channel to receive notifications for deployment events. | | `deployment_events` | boolean | false | Enable notifications for deployment events. | | `incident_channel` | string | false | The name of the channel to receive notifications for incident events. | | `incidents_events` | boolean | false | Enable notifications for incident events. | | `issue_channel` | string | false | The name of the channel to receive notifications for issue events. | | `issues_events` | boolean | false | Enable notifications for issue events. | | `job_events` | boolean | false | Enable notifications for job events. | | `merge_request_channel` | string | false | The name of the channel to receive notifications for merge request events. | | `merge_requests_events` | boolean | false | Enable notifications for merge request events. | | `note_channel` | string | false | The name of the channel to receive notifications for note events. | | `note_events` | boolean | false | Enable notifications for note events. | | `pipeline_channel` | string | false | The name of the channel to receive notifications for pipeline events. | | `pipeline_events` | boolean | false | Enable notifications for pipeline events. | | `push_channel` | string | false | The name of the channel to receive notifications for push events. | | `push_events` | boolean | false | Enable notifications for push events. | | `tag_push_channel` | string | false | The name of the channel to receive notifications for tag push events. | | `tag_push_events` | boolean | false | Enable notifications for tag push events. | | `wiki_page_channel` | string | false | The name of the channel to receive notifications for wiki page events. | | `wiki_page_events` | boolean | false | Enable notifications for wiki page events. | ### Disable the GitLab for Slack app Disable the GitLab for Slack app for a project. Integration settings are reset. ```plaintext DELETE /projects/:id/integrations/slack ``` ### Get the GitLab for Slack app settings Get the GitLab for Slack app settings for a project. ```plaintext GET /projects/:id/integrations/slack ``` ## Google Chat ### Set up Google Chat Set up the Google Chat integration for a project. ```plaintext PUT /projects/:id/integrations/hangouts-chat ``` Parameters: | Parameter | Type | Required | Description | | --------- | ---- | -------- | ----------- | | `webhook` | string | true | The Hangouts Chat webhook (for example, `https://chat.googleapis.com/v1/spaces...`). | | `notify_only_broken_pipelines` | boolean | false | Send notifications for broken pipelines. | | `notify_only_default_branch` | boolean | false | **Deprecated:** This parameter has been replaced with `branches_to_be_notified`. | | `branches_to_be_notified` | string | false | Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`. | | `push_events` | boolean | false | Enable notifications for push events. | | `issues_events` | boolean | false | Enable notifications for issue events. | | `confidential_issues_events` | boolean | false | Enable notifications for confidential issue events. | | `merge_requests_events` | boolean | false | Enable notifications for merge request events. | | `tag_push_events` | boolean | false | Enable notifications for tag push events. | | `note_events` | boolean | false | Enable notifications for note events. | | `confidential_note_events` | boolean | false | Enable notifications for confidential note events. | | `pipeline_events` | boolean | false | Enable notifications for pipeline events. | | `wiki_page_events` | boolean | false | Enable notifications for wiki page events. | ### Disable Google Chat Disable the Google Chat integration for a project. Integration settings are reset. ```plaintext DELETE /projects/:id/integrations/hangouts-chat ``` ### Get Google Chat settings Get the Google Chat integration settings for a project. ```plaintext GET /projects/:id/integrations/hangouts-chat ``` ## irker (IRC gateway) ### Set up irker Set up the irker integration for a project. ```plaintext PUT /projects/:id/integrations/irker ``` Parameters: | Parameter | Type | Required | Description | | --------- | ---- | -------- | ----------- | | `recipients` | string | true | Recipients or channels separated by whitespaces. | | `default_irc_uri` | string | false | `irc://irc.network.net:6697/`. | | `server_host` | string | false | localhost. | | `server_port` | integer | false | 6659. | | `colorize_messages` | boolean | false | Colorize messages. | ### Disable irker Disable the irker integration for a project. Integration settings are reset. ```plaintext DELETE /projects/:id/integrations/irker ``` ### Get irker settings Get the irker integration settings for a project. ```plaintext GET /projects/:id/integrations/irker ``` ## Jenkins ### Set up Jenkins Set up the Jenkins integration for a project. ```plaintext PUT /projects/:id/integrations/jenkins ``` Parameters: | Parameter | Type | Required | Description | | --------- | ---- | -------- | ----------- | | `jenkins_url` | string | true | Jenkins URL like `http://jenkins.example.com`. | | `enable_ssl_verification` | boolean | false | Enable SSL verification. Defaults to `true` (enabled). | | `project_name` | string | true | The URL-friendly project name. Example: `my_project_name`. | | `username` | string | false | Username for authentication with the Jenkins server, if authentication is required by the server. | | `password` | string | false | Password for authentication with the Jenkins server, if authentication is required by the server. | | `push_events` | boolean | false | Enable notifications for push events. | | `merge_requests_events` | boolean | false | Enable notifications for merge request events. | | `tag_push_events` | boolean | false | Enable notifications for tag push events. | ### Disable Jenkins Disable the Jenkins integration for a project. Integration settings are reset. ```plaintext DELETE /projects/:id/integrations/jenkins ``` ### Get Jenkins settings Get the Jenkins integration settings for a project. ```plaintext GET /projects/:id/integrations/jenkins ``` ## JetBrains TeamCity ### Set up JetBrains TeamCity Set up the JetBrains TeamCity integration for a project. The build configuration in TeamCity must use the build number format `%build.vcs.number%`. In the advanced settings for VCS root, configure monitoring for all branches so merge requests can build. ```plaintext PUT /projects/:id/integrations/teamcity ``` Parameters: | Parameter | Type | Required | Description | | --------- | ---- | -------- | ----------- | | `teamcity_url` | string | true | TeamCity root URL (for example, `https://teamcity.example.com`). | | `enable_ssl_verification` | boolean | false | Enable SSL verification. Defaults to `true` (enabled). | | `build_type` | string | true | Build configuration ID. | | `username` | string | true | A user with permissions to trigger a manual build. | | `password` | string | true | The password of the user. | | `push_events` | boolean | false | Enable notifications for push events. | | `merge_requests_events` | boolean | false | Enable notifications for merge request events. | ### Disable JetBrains TeamCity Disable the JetBrains TeamCity integration for a project. Integration settings are reset. ```plaintext DELETE /projects/:id/integrations/teamcity ``` ### Get JetBrains TeamCity settings Get the JetBrains TeamCity integration settings for a project. ```plaintext GET /projects/:id/integrations/teamcity ``` ## Jira ### Set up Jira Set up the Jira integration for a project. ```plaintext PUT /projects/:id/integrations/jira ``` Parameters: | Parameter | Type | Required | Description | | --------- | ---- | -------- | ----------- | | `url` | string | yes | The URL to the Jira project which is being linked to this GitLab project (for example, `https://jira.example.com`). | | `api_url` | string | no | The base URL to the Jira instance API. Web URL value is used if not set (for example, `https://jira-api.example.com`). | | `username` | string | no | The email or username to be used with Jira. For Jira Cloud use an email, for Jira Data Center and Jira Server use a username. Required when using Basic authentication (`jira_auth_type` is `0`). | | `password` | string | yes | The Jira API token, password, or personal access token to be used with Jira. When your authentication method is basic (`jira_auth_type` is `0`), use an API token for Jira Cloud or a password for Jira Data Center or Jira Server. When your authentication method is a Jira personal access token (`jira_auth_type` is `1`), use the personal access token. | | `active` | boolean | no | Activates or deactivates the integration. Defaults to `false` (deactivated). | | `jira_auth_type`| integer | no | The authentication method to be used with Jira. `0` means Basic Authentication. `1` means Jira personal access token. Defaults to `0`. | | `jira_issue_prefix` | string | no | Prefix to match Jira issue keys. | | `jira_issue_regex` | string | no | Regular expression to match Jira issue keys. | | `jira_issue_transition_automatic` | boolean | no | Enable [automatic issue transitions](../integration/jira/issues.md#automatic-issue-transitions). Takes precedence over `jira_issue_transition_id` if enabled. Defaults to `false`. | | `jira_issue_transition_id` | string | no | The ID of one or more transitions for [custom issue transitions](../integration/jira/issues.md#custom-issue-transitions). Ignored if `jira_issue_transition_automatic` is enabled. Defaults to a blank string, which disables custom transitions. | | `commit_events` | boolean | false | Enable notifications for commit events. | | `merge_requests_events` | boolean | false | Enable notifications for merge request events. | | `comment_on_event_enabled` | boolean | false | Enable comments in Jira issues on each GitLab event (commit or merge request). | ### Disable Jira Disable the Jira integration for a project. Integration settings are reset. ```plaintext DELETE /projects/:id/integrations/jira ``` ### Get Jira settings Get the Jira integration settings for a project. ```plaintext GET /projects/:id/integrations/jira ``` ## Mattermost notifications ### Set up Mattermost notifications Set up Mattermost notifications for a project. ```plaintext PUT /projects/:id/integrations/mattermost ``` Parameters: | Parameter | Type | Required | Description | | --------- | ---- | -------- | ----------- | | `webhook` | string | true | The Mattermost webhook (for example, `http://mattermost_host/hooks/...`). | | `username` | string | false | username. | | `channel` | string | false | Default channel to use if others are not configured. | | `notify_only_broken_pipelines` | boolean | false | Send notifications for broken pipelines. | | `notify_only_default_branch` | boolean | false | **Deprecated:** This parameter has been replaced with `branches_to_be_notified`. | | `branches_to_be_notified` | string | false | Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`. | | `push_events` | boolean | false | Enable notifications for push events. | | `issues_events` | boolean | false | Enable notifications for issue events. | | `confidential_issues_events` | boolean | false | Enable notifications for confidential issue events. | | `merge_requests_events` | boolean | false | Enable notifications for merge request events. | | `tag_push_events` | boolean | false | Enable notifications for tag push events. | | `note_events` | boolean | false | Enable notifications for note events. | | `confidential_note_events` | boolean | false | Enable notifications for confidential note events. | | `pipeline_events` | boolean | false | Enable notifications for pipeline events. | | `wiki_page_events` | boolean | false | Enable notifications for wiki page events. | | `push_channel` | string | false | The name of the channel to receive notifications for push events. | | `issue_channel` | string | false | The name of the channel to receive notifications for issue events. | | `confidential_issue_channel` | string | false | The name of the channel to receive notifications for confidential issue events. | | `merge_request_channel` | string | false | The name of the channel to receive notifications for merge request events. | | `note_channel` | string | false | The name of the channel to receive notifications for note events. | | `confidential_note_channel` | string | false | The name of the channel to receive notifications for confidential note events. | | `tag_push_channel` | string | false | The name of the channel to receive notifications for tag push events. | | `pipeline_channel` | string | false | The name of the channel to receive notifications for pipeline events. | | `wiki_page_channel` | string | false | The name of the channel to receive notifications for wiki page events. | ### Disable Mattermost notifications Disable Mattermost notifications for a project. Integration settings are reset. ```plaintext DELETE /projects/:id/integrations/mattermost ``` ### Get Mattermost notifications settings Get the Mattermost notifications settings for a project. ```plaintext GET /projects/:id/integrations/mattermost ``` ## Mattermost slash commands ### Set up Mattermost slash commands Set up Mattermost slash commands for a project. ```plaintext PUT /projects/:id/integrations/mattermost-slash-commands ``` Parameters: | Parameter | Type | Required | Description | | --------- | ------ | -------- | --------------------- | | `token` | string | yes | The Mattermost token. | ### Disable Mattermost slash commands Disable Mattermost slash commands for a project. Integration settings are reset. ```plaintext DELETE /projects/:id/integrations/mattermost-slash-commands ``` ### Get Mattermost slash commands settings Get the Mattermost slash commands settings for a project. ```plaintext GET /projects/:id/integrations/mattermost-slash-commands ``` ## Microsoft Teams notifications ### Set up Microsoft Teams notifications Set up Microsoft Teams notifications for a project. ```plaintext PUT /projects/:id/integrations/microsoft-teams ``` Parameters: | Parameter | Type | Required | Description | | --------- | ---- | -------- | ----------- | | `webhook` | string | true | The Microsoft Teams webhook (for example, `https://outlook.office.com/webhook/...`). | | `notify_only_broken_pipelines` | boolean | false | Send notifications for broken pipelines. | | `notify_only_default_branch` | boolean | false | **Deprecated:** This parameter has been replaced with `branches_to_be_notified`. | | `branches_to_be_notified` | string | false | Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`. | | `push_events` | boolean | false | Enable notifications for push events. | | `issues_events` | boolean | false | Enable notifications for issue events. | | `confidential_issues_events` | boolean | false | Enable notifications for confidential issue events. | | `merge_requests_events` | boolean | false | Enable notifications for merge request events. | | `tag_push_events` | boolean | false | Enable notifications for tag push events. | | `note_events` | boolean | false | Enable notifications for note events. | | `confidential_note_events` | boolean | false | Enable notifications for confidential note events. | | `pipeline_events` | boolean | false | Enable notifications for pipeline events. | | `wiki_page_events` | boolean | false | Enable notifications for wiki page events. | ### Disable Microsoft Teams notifications Disable Microsoft Teams notifications for a project. Integration settings are reset. ```plaintext DELETE /projects/:id/integrations/microsoft-teams ``` ### Get Microsoft Teams notifications settings Get the Microsoft Teams notifications settings for a project. ```plaintext GET /projects/:id/integrations/microsoft-teams ``` ## Mock CI This integration is only available in a development environment. For an example Mock CI server, see [`gitlab-org/gitlab-mock-ci-service`](https://gitlab.com/gitlab-org/gitlab-mock-ci-service). ### Set up Mock CI Set up the Mock CI integration for a project. ```plaintext PUT /projects/:id/integrations/mock-ci ``` Parameters: | Parameter | Type | Required | Description | | --------- | ---- | -------- | ----------- | | `mock_service_url` | string | true | `http://localhost:4004`. | | `enable_ssl_verification` | boolean | false | Enable SSL verification. Defaults to `true` (enabled). | ### Disable Mock CI Disable the Mock CI integration for a project. Integration settings are reset. ```plaintext DELETE /projects/:id/integrations/mock-ci ``` ### Get Mock CI settings Get the Mock CI integration settings for a project. ```plaintext GET /projects/:id/integrations/mock-ci ``` ## Packagist ### Set up Packagist Set up the Packagist integration for a project. ```plaintext PUT /projects/:id/integrations/packagist ``` Parameters: | Parameter | Type | Required | Description | | --------- | ---- | -------- | ----------- | | `username` | string | yes | The username of a Packagist account. | | `token` | string | yes | API token to the Packagist server. | | `server` | boolean | no | URL of the Packagist server. Leave blank for the default ``. | | `push_events` | boolean | false | Enable notifications for push events. | | `merge_requests_events` | boolean | false | Enable notifications for merge request events. | | `tag_push_events` | boolean | false | Enable notifications for tag push events. | ### Disable Packagist Disable the Packagist integration for a project. Integration settings are reset. ```plaintext DELETE /projects/:id/integrations/packagist ``` ### Get Packagist settings Get the Packagist integration settings for a project. ```plaintext GET /projects/:id/integrations/packagist ``` ## Pipeline status emails ### Set up pipeline status emails Set up pipeline status emails for a project. ```plaintext PUT /projects/:id/integrations/pipelines-email ``` Parameters: | Parameter | Type | Required | Description | | --------- | ---- | -------- | ----------- | | `recipients` | string | yes | Comma-separated list of recipient email addresses. | | `notify_only_broken_pipelines` | boolean | no | Send notifications for broken pipelines. | | `branches_to_be_notified` | string | false | Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`. | | `notify_only_default_branch` | boolean | no | Send notifications for the default branch. | | `pipeline_events` | boolean | false | Enable notifications for pipeline events. | ### Disable pipeline status emails Disable pipeline status emails for a project. Integration settings are reset. ```plaintext DELETE /projects/:id/integrations/pipelines-email ``` ### Get pipeline status emails settings Get the pipeline status emails settings for a project. ```plaintext GET /projects/:id/integrations/pipelines-email ``` ## Pivotal Tracker ### Set up Pivotal Tracker Set up the Pivotal Tracker integration for a project. ```plaintext PUT /projects/:id/integrations/pivotaltracker ``` Parameters: | Parameter | Type | Required | Description | | --------- | ---- | -------- | ----------- | | `token` | string | true | The Pivotal Tracker token. | | `restrict_to_branch` | boolean | false | Comma-separated list of branches to automatically inspect. Leave blank to include all branches. | ### Disable Pivotal Tracker Disable the Pivotal Tracker integration for a project. Integration settings are reset. ```plaintext DELETE /projects/:id/integrations/pivotaltracker ``` ### Get Pivotal Tracker settings Get the Pivotal Tracker integration settings for a project. ```plaintext GET /projects/:id/integrations/pivotaltracker ``` ## Pumble ### Set up Pumble Set up the Pumble integration for a project. ```plaintext PUT /projects/:id/integrations/pumble ``` Parameters: | Parameter | Type | Required | Description | | --------- | ---- | -------- | ----------- | | `webhook` | string | true | The Pumble webhook (for example, `https://api.pumble.com/workspaces/x/...`). | | `branches_to_be_notified` | string | false | Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default is `default`. | | `confidential_issues_events` | boolean | false | Enable notifications for confidential issue events. | | `confidential_note_events` | boolean | false | Enable notifications for confidential note events. | | `issues_events` | boolean | false | Enable notifications for issue events. | | `merge_requests_events` | boolean | false | Enable notifications for merge request events. | | `note_events` | boolean | false | Enable notifications for note events. | | `notify_only_broken_pipelines` | boolean | false | Send notifications for broken pipelines. | | `pipeline_events` | boolean | false | Enable notifications for pipeline events. | | `push_events` | boolean | false | Enable notifications for push events. | | `tag_push_events` | boolean | false | Enable notifications for tag push events. | | `wiki_page_events` | boolean | false | Enable notifications for wiki page events. | ### Disable Pumble Disable the Pumble integration for a project. Integration settings are reset. ```plaintext DELETE /projects/:id/integrations/pumble ``` ### Get Pumble settings Get the Pumble integration settings for a project. ```plaintext GET /projects/:id/integrations/pumble ``` ## Pushover ### Set up Pushover Set up the Pushover integration for a project. ```plaintext PUT /projects/:id/integrations/pushover ``` Parameters: | Parameter | Type | Required | Description | | --------- | ---- | -------- | ----------- | | `api_key` | string | true | Your application key. | | `user_key` | string | true | Your user key. | | `priority` | string | true | The priority. | | `device` | string | false | Leave blank for all active devices. | | `sound` | string | false | The sound of the notification. | ### Disable Pushover Disable the Pushover integration for a project. Integration settings are reset. ```plaintext DELETE /projects/:id/integrations/pushover ``` ### Get Pushover settings Get the Pushover integration settings for a project. ```plaintext GET /projects/:id/integrations/pushover ``` ## Redmine ### Set up Redmine Set up the Redmine integration for a project. ```plaintext PUT /projects/:id/integrations/redmine ``` Parameters: | Parameter | Type | Required | Description | | --------- | ---- | -------- | ----------- | | `new_issue_url` | string | true | New issue URL. | | `project_url` | string | true | Project URL. | | `issues_url` | string | true | Issue URL. | ### Disable Redmine Disable the Redmine integration for a project. Integration settings are reset. ```plaintext DELETE /projects/:id/integrations/redmine ``` ### Get Redmine settings Get the Redmine integration settings for a project. ```plaintext GET /projects/:id/integrations/redmine ``` ## Slack slash commands ### Set up Slack slash commands Set up Slack slash commands for a project. ```plaintext PUT /projects/:id/integrations/slack-slash-commands ``` Parameters: | Parameter | Type | Required | Description | | --------- | ---- | -------- | ----------- | | `token` | string | yes | The Slack token. | ### Disable Slack slash commands Disable Slack slash commands for a project. Integration settings are reset. ```plaintext DELETE /projects/:id/integrations/slack-slash-commands ``` ### Get Slack slash commands settings Get the Slack slash commands settings for a project. ```plaintext GET /projects/:id/integrations/slack-slash-commands ``` Example response: ```json { "id": 4, "title": "Slack slash commands", "slug": "slack-slash-commands", "created_at": "2017-06-27T05:51:39-07:00", "updated_at": "2017-06-27T05:51:39-07:00", "active": true, "push_events": true, "issues_events": true, "confidential_issues_events": true, "merge_requests_events": true, "tag_push_events": true, "note_events": true, "job_events": true, "pipeline_events": true, "comment_on_event_enabled": false, "properties": { "token": "" } } ``` ## Squash TM > [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/337855) in GitLab 15.10. ### Set up Squash TM Set up the Squash TM integration settings for a project. ```plaintext PUT /projects/:id/integrations/squash-tm ``` Parameters: | Parameter | Type | Required | Description | |-------------------------|--------|----------|-------------------------------| | `url` | string | yes | URL of the Squash TM webhook. | | `token` | string | no | Optional token. | ### Disable Squash TM Disable the Squash TM integration for a project. Integration settings are preserved. ```plaintext DELETE /projects/:id/integrations/squash-tm ``` ### Get Squash TM settings Get the Squash TM integration settings for a project. ```plaintext GET /projects/:id/integrations/squash-tm ``` ## Telegram ### Set up Telegram Set up the Telegram integration for a project. ```plaintext PUT /projects/:id/integrations/telegram ``` Parameters: | Parameter | Type | Required | Description | | --------- | ---- | -------- | ----------- | | `token` | string | true | The Telegram bot token (for example, `123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11`). | | `room` | string | true | Unique identifier for the target chat or the username of the target channel (in the format `@channelusername`). | | `notify_only_broken_pipelines` | boolean | false | Send notifications for broken pipelines. | | `branches_to_be_notified` | string | false | Branches to send notifications for ([introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/134361) in GitLab 16.5). Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`. | | `push_events` | boolean | true | Enable notifications for push events. | | `issues_events` | boolean | true | Enable notifications for issue events. | | `confidential_issues_events` | boolean | true | Enable notifications for confidential issue events. | | `merge_requests_events` | boolean | true | Enable notifications for merge request events. | | `tag_push_events` | boolean | true | Enable notifications for tag push events. | | `note_events` | boolean | true | Enable notifications for note events. | | `confidential_note_events` | boolean | true | Enable notifications for confidential note events. | | `pipeline_events` | boolean | true | Enable notifications for pipeline events. | | `wiki_page_events` | boolean | true | Enable notifications for wiki page events. | ### Disable Telegram Disable the Telegram integration for a project. Integration settings are reset. ```plaintext DELETE /projects/:id/integrations/telegram ``` ### Get Telegram settings Get the Telegram integration settings for a project. ```plaintext GET /projects/:id/integrations/telegram ``` ## Unify Circuit ### Set up Unify Circuit Set up the Unify Circuit integration for a project. ```plaintext PUT /projects/:id/integrations/unify-circuit ``` Parameters: | Parameter | Type | Required | Description | | --------- | ---- | -------- | ----------- | | `webhook` | string | true | The Unify Circuit webhook (for example, `https://circuit.com/rest/v2/webhooks/incoming/...`). | | `notify_only_broken_pipelines` | boolean | false | Send notifications for broken pipelines. | | `branches_to_be_notified` | string | false | Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`. | | `push_events` | boolean | false | Enable notifications for push events. | | `issues_events` | boolean | false | Enable notifications for issue events. | | `confidential_issues_events` | boolean | false | Enable notifications for confidential issue events. | | `merge_requests_events` | boolean | false | Enable notifications for merge request events. | | `tag_push_events` | boolean | false | Enable notifications for tag push events. | | `note_events` | boolean | false | Enable notifications for note events. | | `confidential_note_events` | boolean | false | Enable notifications for confidential note events. | | `pipeline_events` | boolean | false | Enable notifications for pipeline events. | | `wiki_page_events` | boolean | false | Enable notifications for wiki page events. | ### Disable Unify Circuit Disable the Unify Circuit integration for a project. Integration settings are reset. ```plaintext DELETE /projects/:id/integrations/unify-circuit ``` ### Get Unify Circuit settings Get the Unify Circuit integration settings for a project. ```plaintext GET /projects/:id/integrations/unify-circuit ``` ## Webex Teams ### Set up Webex Teams Set up Webex Teams for a project. ```plaintext PUT /projects/:id/integrations/webex-teams ``` Parameters: | Parameter | Type | Required | Description | | --------- | ---- | -------- | ----------- | | `webhook` | string | true | The Webex Teams webhook (for example, `https://api.ciscospark.com/v1/webhooks/incoming/...`). | | `notify_only_broken_pipelines` | boolean | false | Send notifications for broken pipelines. | | `branches_to_be_notified` | string | false | Branches to send notifications for. Valid options are `all`, `default`, `protected`, and `default_and_protected`. The default value is `default`. | | `push_events` | boolean | false | Enable notifications for push events. | | `issues_events` | boolean | false | Enable notifications for issue events. | | `confidential_issues_events` | boolean | false | Enable notifications for confidential issue events. | | `merge_requests_events` | boolean | false | Enable notifications for merge request events. | | `tag_push_events` | boolean | false | Enable notifications for tag push events. | | `note_events` | boolean | false | Enable notifications for note events. | | `confidential_note_events` | boolean | false | Enable notifications for confidential note events. | | `pipeline_events` | boolean | false | Enable notifications for pipeline events. | | `wiki_page_events` | boolean | false | Enable notifications for wiki page events. | ### Disable Webex Teams Disable Webex Teams for a project. Integration settings are reset. ```plaintext DELETE /projects/:id/integrations/webex-teams ``` ### Get Webex Teams settings Get the Webex Teams settings for a project. ```plaintext GET /projects/:id/integrations/webex-teams ``` ## YouTrack ### Set up YouTrack Set up the YouTrack integration for a project. ```plaintext PUT /projects/:id/integrations/youtrack ``` Parameters: | Parameter | Type | Required | Description | | --------- | ---- | -------- | ----------- | | `issues_url` | string | true | Issue URL. | | `project_url` | string | true | Project URL. | ### Disable YouTrack Disable the YouTrack integration for a project. Integration settings are reset. ```plaintext DELETE /projects/:id/integrations/youtrack ``` ### Get YouTrack settings Get the YouTrack integration settings for a project. ```plaintext GET /projects/:id/integrations/youtrack ```