summaryrefslogtreecommitdiff
path: root/doc/integration/jira.md
diff options
context:
space:
mode:
Diffstat (limited to 'doc/integration/jira.md')
-rw-r--r--doc/integration/jira.md134
1 files changed, 82 insertions, 52 deletions
diff --git a/doc/integration/jira.md b/doc/integration/jira.md
index 624601d0fac..abe3ba70d6d 100644
--- a/doc/integration/jira.md
+++ b/doc/integration/jira.md
@@ -1,14 +1,15 @@
# GitLab Jira integration
-GitLab can be configured to interact with Jira.
-Configuration happens via username and password.
-Connecting to a Jira server via CAS is not possible.
+GitLab can be configured to interact with Jira. Configuration happens via
+username and password. Connecting to a Jira server via CAS is not possible.
-Each project can be configured to connect to a different Jira instance, configuration is explained [here](#configuration).
-If you have one Jira instance you can pre-fill the settings page with a default template. To configure the template [see external issue tracker document](external-issue-tracker.md#service-template)).
-
-Once the project is connected to Jira, you can reference and close the issues in Jira directly from GitLab.
+Each project can be configured to connect to a different Jira instance, see the
+[configuration](#configuration) section. If you have one Jira instance you can
+pre-fill the settings page with a default template. To configure the template
+see the [Services Templates][services-templates] document.
+Once the project is connected to Jira, you can reference and close the issues
+in Jira directly from GitLab.
## Table of Contents
@@ -18,8 +19,11 @@ Once the project is connected to Jira, you can reference and close the issues in
### Referencing Jira Issues
-When GitLab project has Jira issue tracker configured and enabled, mentioning Jira issue in GitLab will automatically add a comment in Jira issue with the link back to GitLab. This means that in comments in merge requests and commits referencing an issue, eg. `PROJECT-7`, will add a comment in Jira issue in the format:
-
+When GitLab project has Jira issue tracker configured and enabled, mentioning
+Jira issue in GitLab will automatically add a comment in Jira issue with the
+link back to GitLab. This means that in comments in merge requests and commits
+referencing an issue, eg. `PROJECT-7`, will add a comment in Jira issue in the
+format:
```
USER mentioned this issue in LINK_TO_THE_MENTION
@@ -29,85 +33,111 @@ When GitLab project has Jira issue tracker configured and enabled, mentioning Ji
* `LINK_TO_THE_MENTION` Link to the origin of mention with a name of the entity where Jira issue was mentioned.
Can be commit or merge request.
+![example of mentioning or closing the Jira issue](img/jira_issue_reference.png)
-![example of mentioning or closing the Jira issue](jira_issue_reference.png)
-
+---
### Closing Jira Issues
-Jira issues can be closed directly from GitLab by using trigger words, eg. `Resolves PROJECT-1`, `Closes PROJECT-1` or `Fixes PROJECT-1`, in commits and merge requests.
-When a commit which contains the trigger word in the commit message is pushed, GitLab will add a comment in the mentioned Jira issue.
+Jira issues can be closed directly from GitLab by using trigger words, eg.
+`Resolves PROJECT-1`, `Closes PROJECT-1` or `Fixes PROJECT-1`, in commits and
+merge requests. When a commit which contains the trigger word in the commit
+message is pushed, GitLab will add a comment in the mentioned Jira issue.
-For example, for project named PROJECT in Jira, we implemented a new feature and created a merge request in GitLab.
+For example, for project named `PROJECT` in Jira, we implemented a new feature
+and created a merge request in GitLab.
-This feature was requested in Jira issue PROJECT-7. Merge request in GitLab contains the improvement and in merge request description we say that this merge request `Closes PROJECT-7` issue.
+This feature was requested in Jira issue `PROJECT-7`. Merge request in GitLab
+contains the improvement and in merge request description we say that this
+merge request `Closes PROJECT-7` issue.
-Once this merge request is merged, Jira issue will be automatically closed with a link to the commit that resolved the issue.
+Once this merge request is merged, the Jira issue will be automatically closed
+with a link to the commit that resolved the issue.
-![A Git commit that causes the Jira issue to be closed](merge_request_close_jira.png)
+![A Git commit that causes the Jira issue to be closed](img/jira_merge_request_close.png)
+---
-![The GitLab integration user leaves a comment on Jira](jira_service_close_issue.png)
+![The GitLab integration user leaves a comment on Jira](img/jira_service_close_issue.png)
+---
## Configuration
### Configuring JIRA
-We need to create a user in JIRA which will have access to all projects that need to integrate with GitLab.
-Login to your JIRA instance as admin and under Administration go to User Management and create a new user.
-As an example, we'll create a user named `gitlab` and add it to `jira-developers` group.
+We need to create a user in JIRA which will have access to all projects that
+need to integrate with GitLab. Login to your JIRA instance as admin and under
+Administration go to User Management and create a new user.
+
+As an example, we'll create a user named `gitlab` and add it to `jira-developers`
+group.
**It is important that the user `gitlab` has write-access to projects in JIRA**
### Configuring GitLab
-### GitLab 7.8 EE and up with JIRA v6.x
+JIRA configuration in GitLab is done via a project's **Services**.
-To enable JIRA integration in a project, navigate to the project Settings page and go to Services. Here you will find JIRA.
+#### GitLab 7.8 and up with JIRA v6.x
-Fill in the required details on the page:
+To enable JIRA integration in a project, navigate to the project's
+**Settings > Services > JIRA**.
-![Jira service page](jira_service_page.png)
+Fill in the required details on the page as described in the table below.
-* `description` A name for the issue tracker (to differentiate between instances, for instance).
-* `project url` The URL to the JIRA project which is being linked to this GitLab project.
-* `issues url` The URL to the JIRA project issues overview for the project that is linked to this GitLab project.
-* `new issue url` This is the URL to create a new issue in JIRA for the project linked to this GitLab project.
-* `api url` The base URL of the JIRA API. It may be omitted, in which case GitLab will automatically use API version `2` based on the `project url`, i.e. `https://jira.example.com/rest/api/2`.
-* `username` The username of the user created in [configuring JIRA step](#configuring-jira).
-* `password` The password of the user created in [configuring JIRA step](#configuring-jira).
-* `Jira issue transition` This is the id of a transition that moves issues to a closed state. You can find this number under [JIRA workflow administration, see screenshot](jira_workflow_screenshot.png). By default, this id is `2`. (In the example image, this is `2` as well)
+| Field | Description |
+| ----- | ----------- |
+| `description` | A name for the issue tracker (to differentiate between instances, for instance). |
+| `project url` | The URL to the JIRA project which is being linked to this GitLab project. |
+| `issues url` | The URL to the JIRA project issues overview for the project that is linked to this GitLab project. |
+| `new issue url` | This is the URL to create a new issue in JIRA for the project linked to this GitLab project. |
+| `api url` | The base URL of the JIRA API. It may be omitted, in which case GitLab will automatically use API version `2` based on the `project url`, i.e. `https://jira.example.com/rest/api/2`. |
+| `username` | The username of the user created in [configuring JIRA step](#configuring-jira). |
+| `password` |The password of the user created in [configuring JIRA step](#configuring-jira). |
+| `Jira issue transition` | This is the ID of a transition that moves issues to a closed state. You can find this number under JIRA workflow administration ([see screenshot](img/jira_workflow_screenshot.png)). By default, this ID is `2` (in the example image, this is `2` as well) |
-After saving the configuration, your GitLab project will be able to interact with the linked JIRA project.
+After saving the configuration, your GitLab project will be able to interact
+with the linked JIRA project.
+![Jira service page](img/jira_service_page.png)
-### GitLab 6.x-7.7 with JIRA v6.x
+---
-**Note: GitLab 7.8 and up contain various integration improvements. We strongly recommend upgrading.**
+#### GitLab 6.x-7.7 with JIRA v6.x
+_**Note:** GitLab versions 7.8 and up contain various integration improvements.
+We strongly recommend upgrading._
-In `gitlab.yml` enable [JIRA issue tracker section by uncommenting the lines](https://gitlab.com/subscribers/gitlab-ee/blob/6-8-stable-ee/config/gitlab.yml.example#L111-115).
-This will make sure that all issues within GitLab are pointing to the JIRA issue tracker.
+In `gitlab.yml` enable the JIRA issue tracker section by
+[uncommenting these lines][jira-gitlab-yml]. This will make sure that all
+issues within GitLab are pointing to the JIRA issue tracker.
-We can also enable JIRA service that will allow us to interact with JIRA issues.
+After you set this, you will be able to close issues in JIRA by a commit in
+GitLab.
-For example, we can close issues in JIRA by a commit in GitLab.
+Go to your project's **Settings** page and fill in the project name for the
+JIRA project:
-Go to project settings page and fill in the project name for the JIRA project:
+![Set the JIRA project name in GitLab to 'NEW'](img/jira_project_name.png)
-![Set the JIRA project name in GitLab to 'NEW'](jira_project_name.png)
+---
-Next, go to the services page and find JIRA.
+You can also enable the JIRA service that will allow you to interact with JIRA
+issues. Go to the **Settings > Services > JIRA** and:
-![Jira services page](jira_service.png)
-
-1. Tick the active check box to enable the service.
-1. Supply the url to JIRA server, for example http://jira.sample
-1. Supply the username of a user we created under `Configuring JIRA` section, for example `gitlab`
+1. Tick the active check box to enable the service
+1. Supply the URL to JIRA server, for example http://jira.example.com
+1. Supply the username of a user we created under `Configuring JIRA` section,
+ for example `gitlab`
1. Supply the password of the user
-1. Optional: supply the JIRA api version, default is version
-1. Optional: supply the JIRA issue transition ID (issue transition to closed). This is dependant on JIRA settings, default is 2
-1. Save
+1. Optional: supply the JIRA API version, default is version `2`
+1. Optional: supply the JIRA issue transition ID (issue transition to closed).
+ This is dependent on JIRA settings, default is `2`
+1. Hit save
+
+
+![Jira services page](img/jira_service.png)
-Now we should be able to interact with JIRA issues.
+[services-templates]: ../project_services/services_templates.md
+[jira-gitlab-yml]: https://gitlab.com/subscribers/gitlab-ee/blob/6-8-stable-ee/config/gitlab.yml.example#L111-115