こんにちは。サーバサイドエンジニアの藤原です。
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}}
equals
true
{{webhookData.pull_request.state}}
equals
closed
{{webhookData.pull_request.base.ref}}
equals
main
{{webhookData.action}}
equals
closed
一覧 詳細
- 以下、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/json
SSL verification
:Enable SSL verification
Which 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