Integrations API

This API enables you to work with external services that integrate with WVS.

note
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

Get a list of all active project integrations.

GET /projects/:id/integrations

Example response:

[
  {
    "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,
    "confidential_issues_events": true,
    "merge_requests_events": true,
    "tag_push_events": false,
    "note_events": true,
    "confidential_note_events": true,
    "pipeline_events": true,
    "wiki_page_events": true,
    "job_events": true,
    "comment_on_event_enabled": 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,
    "confidential_issues_events": true,
    "merge_requests_events": true,
    "tag_push_events": true,
    "note_events": true,
    "confidential_note_events": true,
    "pipeline_events": true,
    "wiki_page_events": true,
    "job_events": true,
    "comment_on_event_enabled": true
  }
]

Asana

Add commit messages as comments to Asana tasks.

See also the Asana integration documentation.

Create/Edit Asana integration

Set Asana integration for a project.

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.
push_events boolean false Enable notifications for push events

Disable Asana integration

Disable the Asana integration for a project. Integration settings are preserved.

DELETE /projects/:id/integrations/asana

Get Asana integration settings

Get Asana integration settings for a project.

GET /projects/:id/integrations/asana

Assembla

Project Management Software (Source Commits Endpoint)

Create/Edit Assembla integration

Set Assembla integration for a project.

PUT /projects/:id/integrations/assembla

Parameters:

Parameter Type Required Description
token string true The authentication token
subdomain string false The subdomain setting
push_events boolean false Enable notifications for push events

Disable Assembla integration

Disable the Assembla integration for a project. Integration settings are preserved.

DELETE /projects/:id/integrations/assembla

Get Assembla integration settings

Get Assembla integration settings for a project.

GET /projects/:id/integrations/assembla

Bugzilla

Bugzilla Issue Tracker

Create/Edit Bugzilla integration

Set Bugzilla integration for a project.

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
description string false Description
title string false Title
push_events boolean false Enable notifications for push events

Disable Bugzilla integration

Disable the Bugzilla integration for a project. Integration settings are preserved.

DELETE /projects/:id/integrations/bugzilla

Get Bugzilla integration settings

Get Bugzilla integration settings for a project.

GET /projects/:id/integrations/bugzilla

Webex Teams

Webex Teams collaboration tool.

Create/Edit Webex Teams integration

Set Webex Teams integration for a project.

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 integration

Disable the Webex Teams integration for a project. Integration settings are preserved.

DELETE /projects/:id/integrations/webex-teams

Get Webex Teams integration settings

Get Webex Teams integration settings for a project.

GET /projects/:id/integrations/webex-teams

Discord

Send notifications about project events to a Discord channel.

Create/Edit Discord integration

Set Discord integration for a project.

PUT /projects/:id/integrations/discord

Parameters:

Parameter Type Required Description
webhook string true Discord webhook. For example, https://discord.com/api/webhooks/…

Disable Discord integration

Disable the Discord integration for a project. Integration settings are preserved.

DELETE /projects/:id/integrations/discord

Get Discord integration settings

Get Discord integration settings for a project.

GET /projects/:id/integrations/discord

Confluence integration

Replaces the link to the internal wiki with a link to a Confluence Cloud Workspace.

Create/Edit Confluence integration

Set Confluence integration for a project.

PUT /projects/:id/integrations/confluence

Parameters:

Parameter Type Required Description
confluence_url string true The URL of the Confluence Cloud Workspace hosted on atlassian.net.

Disable Confluence integration

Disable the Confluence integration for a project. Integration settings are preserved.

DELETE /projects/:id/integrations/confluence

Get Confluence integration settings

Get Confluence integration settings for a project.

GET /projects/:id/integrations/confluence

Google Chat

Google Workspace team collaboration tool.

Create/Edit Google Chat integration

Set Google Chat integration for a project.

PUT /projects/:id/integrations/hangouts-chat

Parameters:

Parameter Type Required Description
webhook string true The Google 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 integration

Disable the Hangouts Chat integration for a project. Integration settings are preserved.

DELETE /projects/:id/integrations/hangouts-chat

Get Google Chat integration settings

Get Google Chat integration settings for a project.

GET /projects/:id/integrations/hangouts-chat

Jira

Jira issue tracker.

Get Jira integration settings

Get Jira integration settings for a project.

GET /projects/:id/integrations/jira

Create/Edit Jira integration

Set Jira integration for a project.

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 WVS 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 yes The username of the user created to be used with WVS/Jira.
password string yes The password of the user created to be used with WVS/Jira.
active boolean no Activates or deactivates the integration. Defaults to false (deactivated).
jira_issue_transition_automatic boolean no Enable 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. 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 inside Jira issues on each WVS event (commit / merge request)

Disable Jira integration

Disable the Jira integration for a project. Integration settings are preserved.

DELETE /projects/:id/integrations/jira

Slack Slash Commands

Ability to receive slash commands from a Slack chat instance.

Get Slack Slash Command integration settings

Get Slack Slash Command integration settings for a project.

GET /projects/:id/integrations/slack-slash-commands

Example response:

{
  "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": "<your_access_token>"
  }
}

Create/Edit Slack Slash Commands integration

Set Slack Slash Command for a project.

PUT /projects/:id/integrations/slack-slash-commands

Parameters:

Parameter Type Required Description
token string yes The Slack token

Disable Slack Slash Command integration

Disable the Slack Slash Command integration for a project. Integration settings are preserved.

DELETE /projects/:id/integrations/slack-slash-commands

Pivotal Tracker

Add commit messages as comments to Pivotal Tracker stories.

See also the Pivotal Tracker integration documentation.

Create/Edit Pivotal Tracker integration

Set Pivotal Tracker integration for a project.

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.
push_events boolean false Enable notifications for push events

Disable Pivotal Tracker integration

Disable the Pivotal Tracker integration for a project. Integration settings are preserved.

DELETE /projects/:id/integrations/pivotaltracker

Get Pivotal Tracker integration settings

Get Pivotal Tracker integration settings for a project.

GET /projects/:id/integrations/pivotaltracker

Prometheus

Prometheus is a powerful time-series monitoring service.

Create/Edit Prometheus integration

Set Prometheus integration for a project.

PUT /projects/:id/integrations/prometheus

Parameters:

Parameter Type Required Description
api_url string true Prometheus API Base URL. For example, http://prometheus.example.com/.
google_iap_audience_client_id string false Client ID of the IAP secured resource (looks like IAP_CLIENT_ID.apps.googleusercontent.com)
google_iap_service_account_json string false credentials.json file for your service account, like { “type”: “service_account”, “project_id”: … }

Disable Prometheus integration

Disable the Prometheus integration for a project. Integration settings are preserved.

DELETE /projects/:id/integrations/prometheus

Get Prometheus integration settings

Get Prometheus integration settings for a project.

GET /projects/:id/integrations/prometheus

Pushover

Pushover makes it easy to get real-time notifications on your Android device, iPhone, iPad, and Desktop.

Create/Edit Pushover integration

Set Pushover integration for a project.

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
push_events boolean false Enable notifications for push events

Disable Pushover integration

Disable the Pushover integration for a project. Integration settings are preserved.

DELETE /projects/:id/integrations/pushover

Get Pushover integration settings

Get Pushover integration settings for a project.

GET /projects/:id/integrations/pushover

Redmine

Redmine issue tracker

Create/Edit Redmine integration

Set Redmine integration for a project.

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
description string false Description
push_events boolean false Enable notifications for push events

Disable Redmine integration

Disable the Redmine integration for a project. Integration settings are preserved.

DELETE /projects/:id/integrations/redmine

Get Redmine integration settings

Get Redmine integration settings for a project.

GET /projects/:id/integrations/redmine

Slack notifications

Receive event notifications in Slack

Create/Edit Slack integration

Set Slack integration for a project.

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”
commit_events boolean false Enable notifications for commit events
confidential_issue_channel string false The name of the channel to receive confidential issues events notifications
confidential_issues_events boolean false Enable notifications for confidential issue events
confidential_note_channel string false The name of the channel to receive confidential note events notifications
confidential_note_events boolean false Enable notifications for confidential note events
deployment_channel string false The name of the channel to receive deployment events notifications
deployment_events boolean false Enable notifications for deployment events
issue_channel string false The name of the channel to receive issues events notifications
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 merge request events notifications
merge_requests_events boolean false Enable notifications for merge request events
note_channel string false The name of the channel to receive note events notifications
note_events boolean false Enable notifications for note events
pipeline_channel string false The name of the channel to receive pipeline events notifications
pipeline_events boolean false Enable notifications for pipeline events
push_channel string false The name of the channel to receive push events notifications
push_events boolean false Enable notifications for push events
tag_push_channel string false The name of the channel to receive tag push events notifications
tag_push_events boolean false Enable notifications for tag push events
wiki_page_channel string false The name of the channel to receive wiki page events notifications
wiki_page_events boolean false Enable notifications for wiki page events

Disable Slack integration

Disable the Slack integration for a project. Integration settings are preserved.

DELETE /projects/:id/integrations/slack

Get Slack integration settings

Get Slack integration settings for a project.

GET /projects/:id/integrations/slack

Microsoft Teams

Group Chat Software

Create/Edit Microsoft Teams integration

Set Microsoft Teams integration for a project.

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 integration

Disable the Microsoft Teams integration for a project. Integration settings are preserved.

DELETE /projects/:id/integrations/microsoft-teams

Get Microsoft Teams integration settings

Get Microsoft Teams integration settings for a project.

GET /projects/:id/integrations/microsoft-teams