GitHub で自動化を使用する
この記事では、Jira Automation によって Webhook を使用して Jira と GitHub 間のワークフローを統合する方法を見ていきます。
Webhook を簡単に言うと、あるアプリが別のアプリにデータをリアルタイムで送信するためのメカニズムです。ここでは、タスクに優先順位を付ける方法として「To Do リスト」を重視します。そのため、最初の例では、Jira 課題の作成を自動化して、GitHub リポジトリでレビューが必要なプル リクエストを追跡します。その後、GitHub におけるバージョンの作成時に Jira でそのバージョンを自動でリリースします。
Webhook ルールの作成
最初に、プル リクエストの作成 Webhook を処理するためのルールを Jira Automation で作成します。Webhook の受信を先に行うのは、逆行しているように思えるかもしれません。これは、GitHub で Webhook を作成するのに送信先の URL が必要になるためです。
最初に、新しいルールを Jira 自動化で作成して [受信 Webhook トリガー] を選択します。ここに記載されている URL をコピーして、次のステップで使用できるようにする必要があります。もう 1 つ注意すべき非常に重要なことは「Content-Type」についてメンションしているセクションです。Jira 自動化では application/jso
を理解するため、この形式で送信するように GitHub に指示する必要があります。
GitHub の Webhook がメッセージ本文に課題情報を持つことは想定していないため、[Webhook からの課題がない] を選択して保存します。
次に、Webhook ペイロードで GitHub から受け取ったものを確認できるように、ログ アクションを作成します。ペイロード情報は GitHub 開発者ガイドで詳しく説明されていますが、ログアウトすると GitHub から受け取った内容を簡単に確認できます。
次に、ルールに名前を付けて保存します。ここでは、自分のルールに「GitHub で作成された新しいプル リクエスト」という名前を付けました。
Webhook を GitHub に追加する
次に、GitHub に移動します。接続しているリポジトリを見つけます。この場合は「example」と呼ばれる架空のリポジトリを使用します。設定タブで [Webhook] > [Webhook を追加] の順に選択します。
前のステップで作成した Jira 自動化からの URL を入力して、コンテンツ タイプを application/json
に送信します。次に必要な操作は、自動化に送信するイベントを決定することだけです。この例ではプル リクエストのみを対象にしているので、[イベントを個別に選択] を選択して [プル リクエスト] をチェックするだけです。
Webhook を有効にするので「アクティブ」にチェックを入れたまま Webhook を追加します。これで基本は完了です。それでは、すべてを結び付けましょう。
課題の作成
すべてが正しく統合されていることをテストしましょう。リポジトリのブランチにプル リクエストを作成しました。これは「作成された新しいプル リクエスト」ルールの監査ログに何かがあることを意味します。
案の定、GitHub から Webhook が送信されて、アクションによって監査ログにログ記録されました。上記の緑色の大きなテキスト ブロックは、JSON 形式のプル リクエスト作成イベントに関するすべてのデータです。ここから、対象にしている情報が分かります。
リポジトリの名前、プル リクエスト番号、それを作成したユーザー、タイトル、説明が必要です。簡単にアクセスできるように「プル リクエスト」 へのリンクを含めるのも良いでしょう。
さて、パズルの最後のピースになりました。プル リクエストをレビューする課題を作成しましょう。
ご覧のとおり、特定した情報部分を引き出すために、スマート バリューによって説明を作成しました。これを保存して公開するということは、プル リクエストが次回作成された際に課題が作成されることを意味します。
ここに、その課題があります。対象にしている詳細を含む Jira のプル リクエストから課題が作成されました。
GitHub から Jira バージョンをリリースする
ここではまず 2 つ目の例をご紹介します。既存の Jira バージョンを GitHub の Webhook からリリースする方法を簡単に説明します。このサンプル プロジェクトでは、まだリリースされていないバージョン (4.1.0) があります。
前のルールと同じステップに従って、リリースするバージョンを含む Webhook をプロジェクト内に作成しました。GitHub のペイロードを見るために「ログ アクション」によって [リリース バージョン] アクションを追加します。GitHub の正確なバージョンがリリースされていることを確認するので、その他のオプションを拡張して Webhook からのバージョンを使用しています。
前の例のように、GitHub に移動して Webhook を作成しましょう。今回だけは [リリース] をチェックします。
これで終了です。バージョンを GitHub でリリースすると、次の例に示すように Jira は同じバージョンをリリース済みとしてマークします。