#はじめに
JiraのTransitionIDの確認方法を更新しました(2019/4/10)追記
詳細は下記リンクに書いています。
https://docs.gitlab.com/ee/user/project/integrations/jira.html
#前提
- Jiraにアカウントがあること
- GitLabにアカウントがあること
連携方法
GitLabのプロジェクトから Settings > Integrations を選択し、Project services の一覧の Jira をクリックします。すると下記のような画面になるので Active にチェックをつけて入力項目を埋めて、Test Settings and save changes を押して保存すると連携が開始されます。
設定項目について
JIRA API URL
Jira の URL そのままで問題なし。
username / password
Atlassian のアカウントで問題なし。
Transition ID(s)
Transition ID(s) は Jiraのプロジェクトによって異なるため、対象の課題から調査して設定する必要があります。
具体的にはAPIを叩きます。例えば、マージされたら完了するよう連携させたい場合、マージ状態のISSUEを指定しAPIを叩きます。
https://yourcompany.atlassian.net/rest/api/2/issue/ISSUE-123/transitions
すると下記のJSONファイルを取得できます。
{
"expand": "transitions",
"transitions": [
{
"id": "101", // <- 該当の Transition ID
"name": "マージ",
"to": {
"self": "https://showcase-tv.atlassian.net/rest/api/2/status/6",
"description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.",
"iconUrl": "https://showcase-tv.atlassian.net/images/icons/statuses/closed.png",
"name": "完了",
"id": "6",
"statusCategory": {
"self": "https://showcase-tv.atlassian.net/rest/api/2/statuscategory/3",
"id": 3,
"key": "done",
"colorName": "green",
"name": "Done"
}
},
"hasScreen": false,
"isGlobal": false,
"isInitial": false,
"isConditional": false
},
{
"id": "131",
"name": "レビュー取り消し",
"to":
(以下略)
}
}
Transition情報は複数返ってきますが、今回はISSUEを完了させたいのでそれに該当する Transitions ID を見つけます。
使い方
GitLab で merge request を投げ、タイトルにトリガーとなる単語を含めます。すると Jira へのリンクが自動で貼られます。
トリガーとなる単語は3つで、下記のように記述します。
- Resolves {IssueID}
- Closes {IssueID}
- Fixes {IssueID}
Jira側にもリンクが貼られます。対象の課題を開くと、 Issue links にリンクが貼られます。
この他、コメントにも追加されます。
この merge request が閉じられるとワークフローの状態が自動で変更されます。(ワークフローの状態名はプロジェクトにより違いがあります)
便利!
まとめ
自分が設定した際に、少しわかりにくい箇所があったので記事にしました。最適化はQOLをあげるのでどんどんやっていきたいですね!