In this article, we’re going to look at using Jira automation to integrate workflows between Jira and GitHub using Webhooks.

Webhook を簡単に言うと、あるアプリが別のアプリにデータをリアルタイムで送信するためのメカニズムです。ここでは、タスクに優先順位を付ける方法として「To Do リスト」を重視します。そのため、最初の例では、Jira 課題の作成を自動化して、GitHub リポジトリでレビューが必要なプル リクエストを追跡します。その後、GitHub におけるバージョンの作成時に Jira でそのバージョンを自動でリリースします。

Webhook ルールの作成

最初に、プル リクエストの作成 Webhook を処理するためのルールを Jira Automation で作成します。Webhook の受信を先に行うのは、逆行しているように思えるかもしれません。これは、GitHub で Webhook を作成するのに送信先の URL が必要になるためです。

We’ll start off by creating a new rule in Jira automation and choosing an Incoming Webhook Trigger. We’ll need to copy the URL that is provided here so that we can use it in the next step. The other really important thing to note is the section that mentions the ‘Content-Type’. Jira automation understands application/jso so we'll need to make sure that we tell GitHub to send in this format.

GitHub の Webhook がメッセージ本文に課題情報を持つことは想定していないため、[Webhook からの課題がない] を選択して保存します。

Next, we’ll create a Log action so that we can see what we receive from GitHub in the webhook payload. The payload information is covered in detail in the GitHub developers guide however logging it out is an easy way to see what we’re receiving from GitHub.

次に、ルールに名前を付けて保存します。ここでは、自分のルールに「GitHub で作成された新しいプル リクエスト」という名前を付けました。

Webhook を GitHub に追加する

次に、GitHub に移動します。接続しているリポジトリを見つけます。この場合は「example」と呼ばれる架空のリポジトリを使用します。設定タブで [Webhook] > [Webhook を追加] の順に選択します。

前のステップで作成した Jira 自動化からの URL を入力して、コンテンツ タイプを application/json に送信します。次に必要な操作は、自動化に送信するイベントを決定することだけです。この例ではプル リクエストのみを対象にしているので、[イベントを個別に選択] を選択して [プル リクエスト] をチェックするだけです。

Webhook を有効にするので「アクティブ」にチェックを入れたまま Webhook を追加します。これで基本は完了です。それでは、すべてを結び付けましょう。

課題の作成

すべてが正しく統合されていることをテストしましょう。リポジトリのブランチにプル リクエストを作成しました。これは「作成された新しいプル リクエスト」ルールの監査ログに何かがあることを意味します。

Sure enough, GitHub has sent us a webhook and our action has logged it in the audit log. The big block of green text that we see above is all the data about the pull request create event in JSON format. From this, I can see the pieces of information that I’m interested in.

リポジトリの名前、プル リクエスト番号、それを作成したユーザー、タイトル、説明が必要です。簡単にアクセスできるように「プル リクエスト」 へのリンクを含めるのも良いでしょう。

さて、パズルの最後のピースになりました。プル リクエストをレビューする課題を作成しましょう。

As you can see, I’ve created a description using Smart Values to pull out the pieces of information that we identified. Saving and publishing this means that the next time a Pull Request is created, we should have an issue created.

ここに、その課題があります。対象にしている詳細を含む Jira のプル リクエストから課題が作成されました。

GitHub から Jira バージョンをリリースする

ここではまず 2 つ目の例をご紹介します。既存の Jira バージョンを GitHub の Webhook からリリースする方法を簡単に説明します。このサンプル プロジェクトでは、まだリリースされていないバージョン (4.1.0) があります。

前のルールと同じステップに従って、リリースするバージョンを含む Webhook をプロジェクト内に作成しました。GitHub のペイロードを見るために「ログ アクション」によって [リリース バージョン] アクションを追加します。GitHub の正確なバージョンがリリースされていることを確認するので、その他のオプションを拡張して Webhook からのバージョンを使用しています。

前の例のように、GitHub に移動して Webhook を作成しましょう。今回だけは [リリース] をチェックします。

これで終了です。バージョンを GitHub でリリースすると、次の例に示すように Jira は同じバージョンをリリース済みとしてマークします。

  • ラベルなし