summaryrefslogtreecommitdiff
path: root/doc/project_services
diff options
context:
space:
mode:
authorAchilleas Pipinellis <axilleas@axilleas.me>2016-01-25 20:29:52 +0100
committerAchilleas Pipinellis <axilleas@axilleas.me>2016-01-25 20:29:52 +0100
commit0fcf3adabb84bf62b374916615cde276d2c61843 (patch)
treea4b6898f87ca8e5ef1fd36c8f947b58e71dc413e /doc/project_services
parentd5fc2e9ded87579c588972da5e53f635e4f1d36d (diff)
downloadgitlab-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.pngbin0 -> 57136 bytes
-rw-r--r--doc/project_services/img/jira_issues_workflow.pngbin0 -> 104791 bytes
-rw-r--r--doc/project_services/img/jira_reference_commit_message_in_jira_issue.pngbin0 -> 42452 bytes
-rw-r--r--doc/project_services/img/jira_submit_gitlab_merge_request.pngbin0 -> 63063 bytes
-rw-r--r--doc/project_services/jira.md144
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
new file mode 100644
index 00000000000..85e54861b3e
--- /dev/null
+++ b/doc/project_services/img/jira_add_gitlab_commit_message.png
Binary files differ
diff --git a/doc/project_services/img/jira_issues_workflow.png b/doc/project_services/img/jira_issues_workflow.png
new file mode 100644
index 00000000000..51a1bc10210
--- /dev/null
+++ b/doc/project_services/img/jira_issues_workflow.png
Binary files differ
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
new file mode 100644
index 00000000000..0149181dc86
--- /dev/null
+++ b/doc/project_services/img/jira_reference_commit_message_in_jira_issue.png
Binary files differ
diff --git a/doc/project_services/img/jira_submit_gitlab_merge_request.png b/doc/project_services/img/jira_submit_gitlab_merge_request.png
new file mode 100644
index 00000000000..e935d9362aa
--- /dev/null
+++ b/doc/project_services/img/jira_submit_gitlab_merge_request.png
Binary files differ
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"