こんにちは。サーバサイドエンジニアの藤原です。
1年ぶりに登場しました。おひさしぶりです。
JIRAの使い方シリーズの第1弾です。
こちらは、HRBrain Advent Calendar 2021 18日目の記事です。 qiita.com
やりたいこと
GitHubのプルリクをマージすると、該当のJIRA Issueに次にリリースするバージョンが自動的に付与されるようにする。
こちらを実現する方法を説明します。 使うのは、JIRAとGitHubだけです。
前提
- JIRAプロジェクトを作成する
- 例:
HOGE
- 例:
- JIRAの修正バージョンを作成する
- 例:
v1.2.3
- 例:
- GitHubのプルリクタイトルにJIRAプロジェクトのキーを入れるルールにしておく
- 例:
HOGE-123: feat: ◯◯追加
- 例:
こちらの詳細は割愛させていただきます。
設定手順
JIRAのAutomationを作成
JIRAにはAutomationというJIRA独自のワークフローを組める仕組みが用意されていますので、そちらを利用します。
Automationのページを開き、ルール作成開始
対象のプロジェクトを選択 >
Project settingsを選択

Automationを選択

Create ruleをクリック

Trigger設定
JIRAのAutomationを発火させるためのWebhook URLを払い出します。
Incoming webhookを選択

webhookを設定

Webhook URLは自動生成されていると思います。- こちらは後ほどGitHubのWebhookに設定しますので、どこかにメモ📝を。
Execute this automation rule with:はIssues provided by running the following JQL searchを選択JQLには以下のように記載。※JIRAプロジェクト名の部分(HOGE)は適宜変更してください。key = "{{webhookData.pull_request.head.ref.match(".*(HOGE\-[0-9]+).*")|webhookData.pull_request.title.match(".*(HOGE\-[0-9]+).*")}}"- これは、GitHubから送られてくるデータをパースして、GitHubプルリクのタイトル等に含まれるJIRAのキーを
key設定するという内容の構文です。 keyを設定すると以降の処理でJIRAのキーに一致するIssueに対して操作してくれます。- ※JQLとは、JIRA Query Language(JIRAクエリ言語)のことです。SQLに似た構文で、JIRA上のデータ等の高度な検索ができます。
- これは、GitHubから送られてくるデータをパースして、GitHubプルリクのタイトル等に含まれるJIRAのキーを
- 設定ができたら、右下の
Saveボタンをクリック
条件を設定
GitHubのプルリクがmainブランチにマージされたときにだけAutomationが動作するようにします。
※ここの条件はブランチの運用方法によって適宜変更してください。
New conditionを選択

If / else blockを選択

条件を設定
Add conditions...をクリックして、Advanced compare conditionを選択- 以下、4つの条件を指定
{{webhookData.pull_request.merged}}equalstrue{{webhookData.pull_request.state}}equalsclosed{{webhookData.pull_request.base.ref}}equalsmain{{webhookData.action}}equalsclosed
一覧 詳細 

- 以下、4つの条件を指定
設定ができたら、右下の
Saveボタンをクリック
Actionを設定
JIRAのIssueのFix versions(修正バージョン)に次にリリースするバージョンが入るようにします。
New actionを選択

Edit issueを選択

Fix versionsにチェック

Next unreleased versionを選択

設定ができたら、右下の
Saveボタンをクリック
ルールの名称等の設定
Rule detailsを選択して、名称等を設定

設定ができたら、右下の
Saveボタンをクリック
ルールを保存&有効化する
Turn it onボタンをクリック
※画面右上に表示されるPublish ruleボタンでもOKここまでの設定で、全体はこのようになってます

GitHubのWebhookを設定
- Webhooks登録ページを開く
https://github.com/<アカウント名>/<リポジトリ名>/settings/hooks Add webhookボタンをクリック- 設定を埋めていく
Payload URL:先程JIRAのAutomationルール作成時に払い出したWebhook URLを記載するContent type:application/jsonSSL verification:Enable SSL verificationWhich events would you like to trigger this webhook?:Let me select individual events.Pull requestsにチェックを入れる
Activeにチェックを入れる
- 保存する
動かしてみる
- GItHubでタイトルにJIRAのIssueキー(例、
HOGE-123)を含んだプルリクを作成し、mainブランチにマージします - JIRAの該当のIssueを確認すると修正バージョンが付与されていることが確認できました👏

- HistoryにもAutomationが修正バージョンを付与してくれた内容が残ってます

- AutomationのAudit logからも詳細を確認可能です

まとめ
JIRAのAutomationは他にも色々できるので、ぜひ試してみてください。
それでは、JIRAの使い方シリーズ第2弾をご期待ください!
HRBrainでは一緒に働く仲間を募集してます。あなたのご応募お待ちしてます! www.hrbrain.co.jp