From 761ff1f859a4b08bf245d0be3d00d4c44ecba46d Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Tue, 7 Feb 2017 22:20:36 +0100 Subject: [PATCH] Add info about the new location of Integrations [ci skip] --- doc/user/project/integrations/bamboo.md | 39 +++++++------ doc/user/project/integrations/bugzilla.md | 5 +- .../project/integrations/builds_emails.md | 13 ++--- .../project/integrations/emails_on_push.md | 9 ++- doc/user/project/integrations/hipchat.md | 9 ++- .../img/accessing_integrations.png | Bin 0 -> 8941 bytes .../img/builds_emails_service.png | Bin 19203 -> 0 bytes .../integrations/img/project_services.png | Bin 0 -> 25753 bytes doc/user/project/integrations/index.md | 10 +++- doc/user/project/integrations/irker.md | 5 +- doc/user/project/integrations/jira.md | 5 +- doc/user/project/integrations/kubernetes.md | 3 + doc/user/project/integrations/mattermost.md | 5 +- .../integrations/mattermost_slash_commands.md | 8 ++- .../project/integrations/project_services.md | 53 ++++++++++++------ doc/user/project/integrations/redmine.md | 6 +- doc/user/project/integrations/slack.md | 5 +- .../integrations/slack_slash_commands.md | 11 ++-- doc/user/project/integrations/webhooks.md | 7 ++- 19 files changed, 116 insertions(+), 77 deletions(-) create mode 100644 doc/user/project/integrations/img/accessing_integrations.png delete mode 100644 doc/user/project/integrations/img/builds_emails_service.png create mode 100644 doc/user/project/integrations/img/project_services.png diff --git a/doc/user/project/integrations/bamboo.md b/doc/user/project/integrations/bamboo.md index 51668128c62..cad4757f287 100644 --- a/doc/user/project/integrations/bamboo.md +++ b/doc/user/project/integrations/bamboo.md @@ -12,49 +12,48 @@ need to be configured in a Bamboo build plan before GitLab can integrate. ## Setup -### Complete these steps in Bamboo: +### Complete these steps in Bamboo 1. Navigate to a Bamboo build plan and choose 'Configure plan' from the 'Actions' -dropdown. + dropdown. 1. Select the 'Triggers' tab. 1. Click 'Add trigger'. 1. Enter a description such as 'GitLab trigger' 1. Choose 'Repository triggers the build when changes are committed' 1. Check one or more repositories checkboxes -1. Enter the GitLab IP address in the 'Trigger IP addresses' box. This is a -whitelist of IP addresses that are allowed to trigger Bamboo builds. +1. Enter the GitLab IP address in the 'Trigger IP addresses' box. This is a + whitelist of IP addresses that are allowed to trigger Bamboo builds. 1. Save the trigger. -1. In the left pane, select a build stage. If you have multiple build stages -you want to select the last stage that contains the git checkout task. +1. In the left pane, select a build stage. If you have multiple build stages + you want to select the last stage that contains the git checkout task. 1. Select the 'Miscellaneous' tab. -1. Under 'Pattern Match Labelling' put '${bamboo.repository.revision.number}' -in the 'Labels' box. +1. Under 'Pattern Match Labelling' put '${bamboo.repository.revision.number}' + in the 'Labels' box. 1. Save Bamboo is now ready to accept triggers from GitLab. Next, set up the Bamboo -service in GitLab +service in GitLab. -### Complete these steps in GitLab: +### Complete these steps in GitLab 1. Navigate to the project you want to configure to trigger builds. -1. Select 'Settings' in the top navigation. -1. Select 'Services' in the left navigation. +1. Navigate to the [Integrations page](project_services.md#accessing-the-project-services) 1. Click 'Atlassian Bamboo CI' 1. Select the 'Active' checkbox. 1. Enter the base URL of your Bamboo server. 'https://bamboo.example.com' -1. Enter the build key from your Bamboo build plan. Build keys are a short, -all capital letter, identifier that is unique. It will be something like PR-BLD -1. If necessary, enter username and password for a Bamboo user that has -access to trigger the build plan. Leave these fields blank if you do not require -authentication. +1. Enter the build key from your Bamboo build plan. Build keys are a short, + all capital letter, identifier that is unique. It will be something like PR-BLD +1. If necessary, enter username and password for a Bamboo user that has + access to trigger the build plan. Leave these fields blank if you do not require + authentication. 1. Save or optionally click 'Test Settings'. Please note that 'Test Settings' -will actually trigger a build in Bamboo. + will actually trigger a build in Bamboo. ## Troubleshooting If builds are not triggered, these are a couple of things to keep in mind. 1. Ensure you entered the right GitLab IP address in Bamboo under 'Trigger -IP addresses'. + IP addresses'. 1. Remember that GitLab only triggers builds on push events. A commit via the -web interface will not trigger CI currently. + web interface will not trigger CI currently. diff --git a/doc/user/project/integrations/bugzilla.md b/doc/user/project/integrations/bugzilla.md index 215ed6fe9cc..0b219e84478 100644 --- a/doc/user/project/integrations/bugzilla.md +++ b/doc/user/project/integrations/bugzilla.md @@ -1,7 +1,8 @@ # Bugzilla Service -Go to your project's **Settings > Services > Bugzilla** and fill in the required -details as described in the table below. +Navigate to the [Integrations page](project_services.md#accessing-the-project-services), +select the **Bugzilla** service and fill in the required details as described +in the table below. | Field | Description | | ----- | ----------- | diff --git a/doc/user/project/integrations/builds_emails.md b/doc/user/project/integrations/builds_emails.md index af0b1a287c7..f769dece242 100644 --- a/doc/user/project/integrations/builds_emails.md +++ b/doc/user/project/integrations/builds_emails.md @@ -1,7 +1,10 @@ -## Enabling build emails +# Enabling build emails -To receive e-mail notifications about the result status of your builds, visit -your project's **Settings > Services > Builds emails** and activate the service. +By enabling this service, you will be able to receive e-mail notifications about +the result status of your builds. + +Navigate to the [Integrations page](project_services.md#accessing-the-project-services) +and select the **Builds emails** service to configure it. In the _Recipients_ area, provide a list of e-mails separated by comma. @@ -10,7 +13,3 @@ e-mail notifications about each build's status. If you enable the _Notify only broken builds_ option, e-mail notifications will be sent only for failed builds. - ---- - -![Builds emails service settings](img/builds_emails_service.png) diff --git a/doc/user/project/integrations/emails_on_push.md b/doc/user/project/integrations/emails_on_push.md index 2f9f36f962e..18109fc049c 100644 --- a/doc/user/project/integrations/emails_on_push.md +++ b/doc/user/project/integrations/emails_on_push.md @@ -1,7 +1,10 @@ -## Enabling emails on push +# Enabling emails on push -To receive email notifications for every change that is pushed to the project, visit -your project's **Settings > Services > Emails on push** and activate the service. +By enabling this service, you will be able to receive email notifications for +every change that is pushed to your project. + +Navigate to the [Integrations page](project_services.md#accessing-the-project-services) +and select the **Emails on push** service to configure it. In the _Recipients_ area, provide a list of emails separated by commas. diff --git a/doc/user/project/integrations/hipchat.md b/doc/user/project/integrations/hipchat.md index 021a93a288f..eee779c50d4 100644 --- a/doc/user/project/integrations/hipchat.md +++ b/doc/user/project/integrations/hipchat.md @@ -16,7 +16,7 @@ HipChat v2 API has tokens that are can be created using the Integrations tab in the Group or Room admin page. By design, these are lightweight tokens that allow GitLab to send messages only to *one* room. -### Complete these steps in HipChat: +### Complete these steps in HipChat 1. Go to: https://admin.hipchat.com/admin 1. Click on "Group Admin" -> "Integrations". @@ -26,17 +26,16 @@ allow GitLab to send messages only to *one* room. see a URL in the format: ``` - https://api.hipchat.com/v2/room//notification?auth_token= +https://api.hipchat.com/v2/room//notification?auth_token= ``` HipChat is now ready to accept messages from GitLab. Next, set up the HipChat service in GitLab. -### Complete these steps in GitLab: +### Complete these steps in GitLab 1. Navigate to the project you want to configure for notifications. -1. Select "Settings" in the top navigation. -1. Select "Services" in the left navigation. +1. Navigate to the [Integrations page](project_services.md#accessing-the-project-services) 1. Click "HipChat". 1. Select the "Active" checkbox. 1. Insert the `token` field from the URL into the `Token` field on the Web page. diff --git a/doc/user/project/integrations/img/accessing_integrations.png b/doc/user/project/integrations/img/accessing_integrations.png new file mode 100644 index 0000000000000000000000000000000000000000..3b941f6499825c1165b8a997ddcafd39910774b0 GIT binary patch literal 8941 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 PSP=R;#@dew#EAa_opU5x literal 0 HcmV?d00001 diff --git a/doc/user/project/integrations/img/builds_emails_service.png b/doc/user/project/integrations/img/builds_emails_service.png deleted file mode 100644 index 9dbbed03833d32277801cafa1abc3974e265e429..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19203 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 W?gyhRFNp4UC$KteXHjNOp!^#E@wU1E diff --git a/doc/user/project/integrations/img/project_services.png b/doc/user/project/integrations/img/project_services.png new file mode 100644 index 0000000000000000000000000000000000000000..25b6cd5690b77d43b8bd15b4393f34c23fdbbb2c GIT binary patch literal 25753 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%0A_5P(dLa=JBZz$0&4noW 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 Cf-YnL literal 0 HcmV?d00001 diff --git a/doc/user/project/integrations/index.md b/doc/user/project/integrations/index.md index 766ffb1f65c..99093ebaed5 100644 --- a/doc/user/project/integrations/index.md +++ b/doc/user/project/integrations/index.md @@ -1,5 +1,11 @@ # Project integrations +You can find the available integrations under the **Integrations** page by +navigating to the cog icon in the upper right corner of your project. You need +to have at least [master permission][permissions] on the project. + +![Accessing the integrations](img/accessing_integrations.png) + ## Project services Project services allow you to integrate GitLab with other applications. @@ -8,7 +14,7 @@ adding functionality to GitLab. [Learn more about project services.](project_services.md) -## Webhooks +## Project webhooks Project webhooks allow you to trigger a URL if for example new code is pushed or a new issue is created. You can configure webhooks to listen for specific events @@ -16,3 +22,5 @@ like pushes, issues or merge requests. GitLab will send a POST request with data to the webhook URL. [Learn more about webhooks.](webhooks.md) + +[permissions]: ../../permissions.md diff --git a/doc/user/project/integrations/irker.md b/doc/user/project/integrations/irker.md index 25c0c3ad2a6..c63ea1316fe 100644 --- a/doc/user/project/integrations/irker.md +++ b/doc/user/project/integrations/irker.md @@ -23,11 +23,10 @@ from the GitLab service. If the Irker server runs on the same machine, you are done. If not, you will need to follow the firsts steps of the next section. -## Complete these steps in GitLab: +## Complete these steps in GitLab 1. Navigate to the project you want to configure for notifications. -1. Select "Settings" in the top navigation. -1. Select "Services" in the left navigation. +1. Navigate to the [Integrations page](project_services.md#accessing-the-project-services) 1. Click "Irker". 1. Select the "Active" checkbox. 1. Enter the server host address where `irkerd` runs (defaults to `localhost`) diff --git a/doc/user/project/integrations/jira.md b/doc/user/project/integrations/jira.md index 233a2583c36..4c64d1e0907 100644 --- a/doc/user/project/integrations/jira.md +++ b/doc/user/project/integrations/jira.md @@ -90,8 +90,9 @@ password as they will be needed when configuring GitLab in the next section. the configuration options you have to enter. If you are using an older version, [follow this documentation][jira-repo-old-docs]. -To enable JIRA integration in a project, navigate to your project's -**Services ➔ JIRA** and fill in the required details on the page as described +To enable JIRA integration in a project, navigate to the +[Integrations page](project_services.md#accessing-the-project-services), click +the **JIRA** service, and fill in the required details on the page as described in the table below. | Field | Description | diff --git a/doc/user/project/integrations/kubernetes.md b/doc/user/project/integrations/kubernetes.md index 7b33327f6cf..cc67e667472 100644 --- a/doc/user/project/integrations/kubernetes.md +++ b/doc/user/project/integrations/kubernetes.md @@ -12,6 +12,9 @@ template, see the [Services Templates](services_templates.md) document. ## Configuration +Navigate to the [Integrations page](project_services.md#accessing-the-project-services) +of your project and select the **Kubernetes** service to configure it. + ![Kubernetes configuration settings](img/kubernetes_configuration.png) The Kubernetes service takes the following arguments: diff --git a/doc/user/project/integrations/mattermost.md b/doc/user/project/integrations/mattermost.md index fbc7dfeee6d..09ba9994d3a 100644 --- a/doc/user/project/integrations/mattermost.md +++ b/doc/user/project/integrations/mattermost.md @@ -18,8 +18,9 @@ Display name override is not enabled by default, you need to ask your admin to e After you set up Mattermost, it's time to set up GitLab. -Go to your project's **Settings > Services > Mattermost Notifications** and you will see a -checkbox with the following events that can be triggered: +Navigate to the [Integrations page](project_services.md#accessing-the-project-services) +and select the **Mattermost notifications** service to configure it. +There, you will see a checkbox with the following events that can be triggered: - Push - Issue diff --git a/doc/user/project/integrations/mattermost_slash_commands.md b/doc/user/project/integrations/mattermost_slash_commands.md index 9a09e6d37ea..488f61c77a3 100644 --- a/doc/user/project/integrations/mattermost_slash_commands.md +++ b/doc/user/project/integrations/mattermost_slash_commands.md @@ -53,9 +53,11 @@ the administrator console. ### Step 2. Open the Mattermost slash commands service in GitLab -1. Open a new tab for GitLab and go to your project's settings - **Services ➔ Mattermost command**. A screen will appear with all the values you - need to copy in Mattermost as described in the next step. Leave the window open. +1. Open a new tab for GitLab, go to your project's + [Integrations page](project_services.md#accessing-the-project-services) + and select the **Mattermost command** service to configure it. + A screen will appear with all the values you need to copy in Mattermost as + described in the next step. Leave the window open. >**Note:** GitLab will propose some values for the Mattermost settings. The only one diff --git a/doc/user/project/integrations/project_services.md b/doc/user/project/integrations/project_services.md index 547d855d777..a3a163a4c6b 100644 --- a/doc/user/project/integrations/project_services.md +++ b/doc/user/project/integrations/project_services.md @@ -1,28 +1,31 @@ -# Project Services +# Project services -Project services allow you to integrate GitLab with other applications. Below -is list of the currently supported ones. +Project services allow you to integrate GitLab with other applications. They +are a bit like plugins in that they allow a lot of freedom in adding +functionality to GitLab. -You can find these within GitLab in the Services page under Project Settings if -you are at least a master on the project. -Project Services are a bit like plugins in that they allow a lot of freedom in -adding functionality to GitLab. For example there is also a service that can -send an email every time someone pushes new commits. +## Accessing the project services -Because GitLab is open source we can ship with the code and tests for all -plugins. This allows the community to keep the plugins up to date so that they -always work in newer GitLab versions. +You can find the available services under the **Integrations** page in your +project's settings. -For an overview of what projects services are available without logging in, -please see the [project_services directory][projects-code]. +1. Navigate to the cog icon in the upper right corner of your project. You need + to have at least [master permission][permissions] on the project. -[projects-code]: https://gitlab.com/gitlab-org/gitlab-ce/tree/master/app/models/project_services + ![Accessing the services](img/accessing_integrations.png) -Click on the service links to see -further configuration instructions and details. Contributions are welcome. +1. There are more than 20 services to integrate with. Click on the one that you + want to configure. + + ![Project services list](img/project_services.png) + +Below, you will find a list of the currently supported ones accompanied with +comprehensive documentation. ## Services +Click on the service links to see further configuration instructions and details. + | Service | Description | | ------- | ----------- | | Asana | Asana - Teamwork without email | @@ -51,9 +54,23 @@ further configuration instructions and details. Contributions are welcome. | Pushover | Pushover makes it easy to get real-time notifications on your Android device, iPhone, iPad, and Desktop | | [Redmine](redmine.md) | Redmine issue tracker | -## Services Templates +## Services templates Services templates is a way to set some predefined values in the Service of your liking which will then be pre-filled on each project's Service. -Read more about [Services Templates in this document](services_templates.md). +Read more about [Services templates in this document](services_templates.md). + +## Contributing to project services + +Because GitLab is open source we can ship with the code and tests for all +plugins. This allows the community to keep the plugins up to date so that they +always work in newer GitLab versions. + +For an overview of what projects services are available, please see the +[project_services source directory][projects-code]. + +Contributions are welcome! + +[projects-code]: https://gitlab.com/gitlab-org/gitlab-ce/tree/master/app/models/project_services +[permissions]: ../../permissions.md diff --git a/doc/user/project/integrations/redmine.md b/doc/user/project/integrations/redmine.md index b9830ea7c38..89c0312d3c2 100644 --- a/doc/user/project/integrations/redmine.md +++ b/doc/user/project/integrations/redmine.md @@ -1,7 +1,9 @@ # Redmine Service -Go to your project's **Settings > Services > Redmine** and fill in the required -details as described in the table below. +To enable the Redmine integration in a project, navigate to the +[Integrations page](project_services.md#accessing-the-project-services), click +the **Redmine** service, and fill in the required details on the page as described +in the table below. | Field | Description | | ----- | ----------- | diff --git a/doc/user/project/integrations/slack.md b/doc/user/project/integrations/slack.md index eaceb2be137..57a9492044b 100644 --- a/doc/user/project/integrations/slack.md +++ b/doc/user/project/integrations/slack.md @@ -15,8 +15,9 @@ Slack: After you set up Slack, it's time to set up GitLab. -Go to your project's **Settings > Integrations > Slack Notifications** and you will see a -checkbox with the following events that can be triggered: +Navigate to the [Integrations page](project_services.md#accessing-the-project-services) +and select the **Slack notifications** service to configure it. +There, you will see a checkbox with the following events that can be triggered: - Push - Issue diff --git a/doc/user/project/integrations/slack_slash_commands.md b/doc/user/project/integrations/slack_slash_commands.md index 6efc2a168fa..56f1ba7311e 100644 --- a/doc/user/project/integrations/slack_slash_commands.md +++ b/doc/user/project/integrations/slack_slash_commands.md @@ -5,19 +5,20 @@ Slack commands give users an extra interface to perform common operations from the chat environment. This allows one to, for example, create an issue as soon as the idea was discussed in chat. -For all available commands try the help subcommand, for example: `/gitlab help`, +For all available commands try the help subcommand, for example: `/gitlab help`, all review the [full list of commands](../../../integration/chat_commands.md). ## Prerequisites -A [team](https://get.slack.help/hc/en-us/articles/217608418-Creating-a-team) in Slack should be created beforehand, GitLab cannot create it for you. +A [team](https://get.slack.help/hc/en-us/articles/217608418-Creating-a-team) in +Slack should be created beforehand, GitLab cannot create it for you. ## Configuration -First, navigate to the Slack Slash commands service page, found at your project's -**Settings** > **Services**, and you find the instructions there: +Go to your project's [Integrations page](project_services.md#accessing-the-project-services) +and select the **Slack slash commands** service to configure it. - ![Slack setup instructions](img/slack_setup.png) +![Slack setup instructions](img/slack_setup.png) Once you've followed the instructions, mark the service as active and insert the token you've received from Slack. After saving the service you are good to go! diff --git a/doc/user/project/integrations/webhooks.md b/doc/user/project/integrations/webhooks.md index 9d775355c4c..9df0c765f84 100644 --- a/doc/user/project/integrations/webhooks.md +++ b/doc/user/project/integrations/webhooks.md @@ -14,8 +14,11 @@ to the webhook URL. Webhooks can be used to update an external issue tracker, trigger CI builds, update a backup mirror, or even deploy to your production server. -Navigate to the webhooks page by choosing **Webhooks** from your project's -settings which can be found under the wheel icon in the upper right corner. +Navigate to the webhooks page by going to the **Integrations** page from your +project's settings which can be found under the wheel icon in the upper right +corner. + +![Accessing the integrations](img/accessing_integrations.png) ## Webhook endpoint tips