diff options
author | Achilleas Pipinellis <axilleas@axilleas.me> | 2016-01-25 20:29:52 +0100 |
---|---|---|
committer | Achilleas Pipinellis <axilleas@axilleas.me> | 2016-01-25 20:29:52 +0100 |
commit | 0fcf3adabb84bf62b374916615cde276d2c61843 (patch) | |
tree | a4b6898f87ca8e5ef1fd36c8f947b58e71dc413e /doc/project_services | |
parent | d5fc2e9ded87579c588972da5e53f635e4f1d36d (diff) | |
download | gitlab-ce-0fcf3adabb84bf62b374916615cde276d2c61843.tar.gz |
JIRA doc clean-up [ci skip]
- Add GitLab configuration steps
- Add example workflow
- Replace old images with new ones
Diffstat (limited to 'doc/project_services')
-rw-r--r-- | doc/project_services/img/jira_add_gitlab_commit_message.png | bin | 0 -> 57136 bytes | |||
-rw-r--r-- | doc/project_services/img/jira_issues_workflow.png | bin | 0 -> 104791 bytes | |||
-rw-r--r-- | doc/project_services/img/jira_reference_commit_message_in_jira_issue.png | bin | 0 -> 42452 bytes | |||
-rw-r--r-- | doc/project_services/img/jira_submit_gitlab_merge_request.png | bin | 0 -> 63063 bytes | |||
-rw-r--r-- | doc/project_services/jira.md | 144 |
5 files changed, 94 insertions, 50 deletions
diff --git a/doc/project_services/img/jira_add_gitlab_commit_message.png b/doc/project_services/img/jira_add_gitlab_commit_message.png Binary files differnew file mode 100644 index 00000000000..85e54861b3e --- /dev/null +++ b/doc/project_services/img/jira_add_gitlab_commit_message.png diff --git a/doc/project_services/img/jira_issues_workflow.png b/doc/project_services/img/jira_issues_workflow.png Binary files differnew file mode 100644 index 00000000000..51a1bc10210 --- /dev/null +++ b/doc/project_services/img/jira_issues_workflow.png diff --git a/doc/project_services/img/jira_reference_commit_message_in_jira_issue.png b/doc/project_services/img/jira_reference_commit_message_in_jira_issue.png Binary files differnew file mode 100644 index 00000000000..0149181dc86 --- /dev/null +++ b/doc/project_services/img/jira_reference_commit_message_in_jira_issue.png diff --git a/doc/project_services/img/jira_submit_gitlab_merge_request.png b/doc/project_services/img/jira_submit_gitlab_merge_request.png Binary files differnew file mode 100644 index 00000000000..e935d9362aa --- /dev/null +++ b/doc/project_services/img/jira_submit_gitlab_merge_request.png diff --git a/doc/project_services/jira.md b/doc/project_services/jira.md index 65d850934bb..564a3cc9336 100644 --- a/doc/project_services/jira.md +++ b/doc/project_services/jira.md @@ -1,15 +1,17 @@ # 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 Core] either using an +on-premises instance or the SaaS solution that Atlassian offers. Configuration +happens via username and password on a per-project basis. Connecting to a JIRA +server via CAS is not possible. Each project can be configured to connect to a different JIRA instance or, in -case you have one JIRA instance, you can pre-fill the JIRA service settings page -with a default template. To configure the template, see the -[Services Templates documentation][services-templates]. +case you have a single JIRA instance, you can pre-fill the JIRA service +settings page in GitLab with a default template. To configure the JIRA template, +see the [Services Templates documentation][services-templates]. -Once the project is connected to JIRA, you can reference and close the issues -in JIRA directly from GitLab's Merge requests. +Once the GitLab project is connected to JIRA, you can reference and close the +issues in JIRA directly from GitLab's Merge requests. ## Configuration @@ -28,17 +30,17 @@ We have split this stage in steps so it could be easier to follow. --- 1. Login to your JIRA instance as an administrator and under **Administration** - go to **User Management** and create a new user. + go to **User Management** to create a new user. ![JIRA user management link](img/jira_user_management_link.png) --- 1. The next step is to create a new user (e.g., `gitlab`) who has write-access - to projects in JIRA. Enter the user's name and a valid e-mail address in - order to set-up their password. + to projects in JIRA. Enter the user's name and a _valid_ e-mail address + since JIRA sends a verification e-mail to set-up the password. _**Note:** JIRA creates the username automatically by using the e-mail - prefix. You can change the username later if you want._ + prefix. You can change it later if you want._ ![JIRA create new user](img/jira_create_new_user.png) @@ -74,33 +76,36 @@ We have split this stage in steps so it could be easier to follow. --- -The JIRA configuration is over. Note the new user `gitlab` and its password as -they will be needed when configuring GitLab in the next section. +The JIRA configuration is over. Write down the new JIRA username and its +password as they will be needed when configuring GitLab in the next section. -### Configuring GitLab +## Configuring GitLab + +Assuming you [have already configured JIRA](#configuring-jira), now it's time +to configure GitLab. JIRA configuration in GitLab is done via a project's [**Services**](../project_services/project_services.md). #### GitLab 7.8 and up -_The currently supported JIRA versions are v6.x and v7.x._ +_**Note:** The currently supported JIRA versions are v6.x and v7.x._ To enable JIRA integration in a project, navigate to the project's **Settings > Services > JIRA**. -Fill in the required details on the page as described in the table below. +Fill in the required details on the page, as described in the table below. -| 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) | +| Setting | Description | +| ------- | ----------- | +| `Description` | A name for the issue tracker (to differentiate between instances, for example). | +| `Project url` | The URL to the JIRA project which is being linked to this GitLab project. It's of the form: `https://<jira_host_url>/issues/?jql=project=<jira_project>`. | +| `Issues url` | The URL to the JIRA project issues overview for the project that is linked to this GitLab project. It is of the form: `https://<jira_host_url>/browse/:id`. Leave `:id` as-is, it gets replaced by GitLab at runtime. | +| `New issue url` | This is the URL to create a new issue in JIRA for the project linked to this GitLab project, and is of the form: `https://<jira_host_url>/secure/CreateIssue.jspa` | +| `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`. It is of the form: `https://<jira_host_url>/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 setting is very important to set up correctly. It is the ID of a transition that moves issues to a closed state. You can find this number under the JIRA workflow administration (**Administration > Issues > Workflows**) by selecting **View** under **Operations** of the desired workflow of your project. The ID of each state can be found inside the parenthesis of each transition name under the **Transitions (id)** column ([see screenshot](img/jira_issues_workflow.png)). By default, this ID is set to `2` | After saving the configuration, your GitLab project will be able to interact with the linked JIRA project. @@ -119,17 +124,38 @@ In the unfortunate event that you are still using GitLab < 7.8, consult the ## JIRA issues +By now you should have [configured JIRA](#configuring-jira) and enabled the +[JIRA service in GitLab](#configuring-gitlab). If everything is set up correctly +you should be able to: + +- reference JIRA issues and +- close JIRA issues + +by just mentioning their ID in GitLab commits and merge requests. + ### 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: +If you reference a JIRA issue, e.g., `GITLAB-1`, in a commit comment, a link +which points back to JIRA is created. + +The same works for comments in merge requests as well. + +![JIRA add GitLab commit message](img/jira_add_gitlab_commit_message.png) + +--- + +The mentioning action is two-fold, so a comment with a JIRA issue in GitLab +will automatically add a comment in that particular JIRA issue with the link +back to GitLab. + + +![JIRA reference commit message](img/jira_reference_commit_message_in_jira_issue.png) + +--- + +The comment on the JIRA issue is of the form: -``` - USER mentioned this issue in LINK_TO_THE_MENTION -``` +> USER mentioned this issue in LINK_TO_THE_MENTION Where: @@ -138,34 +164,52 @@ Where: | `USER` | A user that mentioned the issue. This is the link to the user profile in GitLab. | | `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) +### Closing JIRA issues ---- +JIRA issues can be closed directly from GitLab by using trigger words in +commits and merge requests. When a commit, which contains the trigger word +followed by the JIRA issue ID in the commit message, is pushed, GitLab will +add a comment in the mentioned JIRA issue and immediately close it. -### Closing JIRA Issues +There are currently three trigger words, and you can use either one to achieve +the same goal: -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. +- `Resolves GITLAB-1` +- `Closes GITLAB-1` +- `Fixes GITLAB-1` -For example, for project named `PROJECT` in JIRA, we implemented a new feature -and created a merge request in GitLab. +where `GITLAB-1` the issue ID of the JIRA project. -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. +### JIRA issue closing example -Once this merge request is merged, the JIRA issue will be automatically closed -with a link to the commit that resolved the issue. +Let's say for example that we submitted a bug fix and created a merge request +in GitLab. The workflow would be something like this: + +1. Create a new branch +1. Fix the bug +1. Commit the changes and push back to GitLab +1. Open a new merge request and reference the JIRA issue including one of the + trigger words, e.g.: `Fixes GITLAB-1`, in the description +1. Submit the merge request +1. Ask someone to review +1. Merge the merge request +1. The JIRA issue is automatically closed -![A Git commit that causes the JIRA issue to be closed](img/jira_merge_request_close.png) +--- + +In the following screenshot you can see how the link references to the JIRA +issue look like. + +![JIRA - submit a GitLab merge request](img/jira_submit_gitlab_merge_request.png) --- +Once this merge request is merged, the JIRA issue will be automatically closed +with a link to the commit that resolved the issue. + ![The GitLab integration user leaves a comment on JIRA](img/jira_service_close_issue.png) --- [services-templates]: ../project_services/services_templates.md "Services templates documentation" -[JIRA]: https://www.atlassian.com/software/jira/core "The JIRA Core website" +[JIRA Core]: https://www.atlassian.com/software/jira/core "The JIRA Core website" |