JIRA doc clean-up [ci skip]
- Add GitLab configuration steps - Add example workflow - Replace old images with new ones
This commit is contained in:
parent
d5fc2e9ded
commit
0fcf3adabb
5 changed files with 95 additions and 51 deletions
BIN
doc/project_services/img/jira_add_gitlab_commit_message.png
Normal file
BIN
doc/project_services/img/jira_add_gitlab_commit_message.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 56 KiB |
BIN
doc/project_services/img/jira_issues_workflow.png
Normal file
BIN
doc/project_services/img/jira_issues_workflow.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 102 KiB |
Binary file not shown.
After Width: | Height: | Size: 42 KiB |
BIN
doc/project_services/img/jira_submit_gitlab_merge_request.png
Normal file
BIN
doc/project_services/img/jira_submit_gitlab_merge_request.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 62 KiB |
|
@ -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.
|
||||
|
||||
```
|
||||
USER mentioned this issue in LINK_TO_THE_MENTION
|
||||
```
|
||||
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
|
||||
|
||||
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.
|
||||
|
||||
There are currently three trigger words, and you can use either one to achieve
|
||||
the same goal:
|
||||
|
||||
- `Resolves GITLAB-1`
|
||||
- `Closes GITLAB-1`
|
||||
- `Fixes GITLAB-1`
|
||||
|
||||
where `GITLAB-1` the issue ID of the JIRA project.
|
||||
|
||||
### JIRA issue closing example
|
||||
|
||||
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
|
||||
|
||||
---
|
||||
|
||||
### Closing JIRA Issues
|
||||
In the following screenshot you can see how the link references to the JIRA
|
||||
issue look like.
|
||||
|
||||
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 - submit a GitLab merge request](img/jira_submit_gitlab_merge_request.png)
|
||||
|
||||
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.
|
||||
---
|
||||
|
||||
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](img/jira_merge_request_close.png)
|
||||
|
||||
---
|
||||
|
||||
![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"
|
||||
|
|
Loading…
Reference in a new issue