マージ済みGitHub PRからConfluenceリリースノートを生成するレシピ
このユースケースでは、OpenAI、GitHub、およびConfluenceを接続して、強力な自動化を作成する手順を説明します。
このレシピの機能
このレシピは、GitHubからマージ済みプルリクエスト(PR)を毎週取得し、それぞれを反復処理してPR本文内の特定のJiraプロジェクトキーを確認し、見つかった場合はPR本文をChatGPTに送信して変更内容の要約を生成します。要約された各PRは、Confluenceの新しいリリースノートページに追加されます。
レシピの作成
GitHubのマージ済みプルリクエストに基づいてConfluenceでリリースノートを作成するレシピを作成するには、次の手順を実行します。
ユースケースは例示のみを目的としています
このユースケースは一例です。このレシピをワークフローに合わせて適応させるには、トリガー、アクション、または条件ロジックの変更が必要になる場合があります。
Workatoにサインインします。
レシピを作成する予定のプロジェクトを選択します。
OpenAI、GitHub、およびConfluenceのコネクションを作成します。
OpenAIコネクションを作成します。
OpenAIコネクションの作成
このステップでは、WorkatoとOpenAIアカウント間のコネクションを作成します。
作成 > コネクションをクリックするか、Cを2回押します。
New connectionページでOpenAIを検索して選択します。
コネクション名フィールドにコネクションの名前を入力します。
OpenAIコネクション設定
ロケーションドロップダウンメニューを使用して、コネクションを保存するプロジェクトを選択します。
APIキーフィールドにAPIキーを入力します。この値はOpenAI APIキーのページから取得できます。
接続をクリックします。
GitHubコネクションを作成します。
GitHubコネクションの作成
このステップでは、WorkatoとGitHubアカウント間のコネクションを作成します。
作成 > コネクションをクリックするか、Cを2回押します。
新規コネクションページでGitHubを検索して選択します。
コネクション名フィールドにコネクションの名前を入力します。
GitHubコネクションのセットアップ
ロケーションドロップダウンメニューを使用して、コネクションを保存するプロジェクトを選択します。
コネクションタイプドロップダウンメニューを使用して、使用する予定のコネクション方式を選択します。オンプレミスグループ名を選択するか、Cloudを選択して直接コネクションを使用できます。
Authentication typeドロップダウンメニューで、OAuth App、GitHub App、またはPersonal Access Tokenのいずれかを選択します。
GitHub Appを選択した場合:
GitHub App IDフィールドにアプリIDを入力します。
GitHub App Private keyフィールドに秘密鍵を入力します。
Installation IDフィールドに入力します。
任意です。詳細設定を展開し、GitHub Enterprise Serverを使用する場合に適用されるAPI Root URLを指定します。
Personal Access Tokenを選択した場合:
Personal Access TokenフィールドにPersonal Access Tokenを入力します。
接続をクリックします。
Confluenceコネクションを作成します。
Confluenceコネクションの作成
このステップでは、WorkatoとConfluenceアカウント間のコネクションを作成します。
作成 > コネクションをクリックするか、Cを2回押します。
新規コネクションページでConfluenceを検索して選択します。
コネクション名フィールドにコネクションの名前を入力します。
Confluenceコネクションのセットアップ
ロケーションドロップダウンメニューを使用して、コネクションを保存するプロジェクトを選択します。
コネクションタイプドロップダウンメニューを使用して、使用する予定のコネクション方式を選択します。オンプレミスグループ名を選択するか、Cloudを選択して直接コネクションを使用できます。
認証タイプドロップダウンメニューを使用して、認証方法を選択します。オプションには、Basic、API token、OAuth 2.0があります。
コネクション情報を入力します。
- クラウドコネクションを使用する場合:ConfluenceサブドメインフィールドにConfluenceサブドメインを入力します。
- オンプレミスコネクションを使用する場合:ConfluenceルートURIフィールドに、ConfluenceホストのルートURI(プロトコル、任意のポート、ホスト名を含む)を入力します。
認証情報を入力します。
Basic認証を選択した場合:
ユーザー名フィールドにユーザー名(メールアドレスではありません)を入力します。
Passwordフィールドにパスワードを入力します。
API tokenを選択した場合:
メールアドレスフィールドにメールアドレスを入力します。
APIトークンフィールドにAPIトークンを入力します。 Atlassianアカウントに移動し、セキュリティ>API tokens>Create API tokenを選択すると作成できます。
OAuth 2.0を選択した場合:
Client IDフィールドにクライアントIDを入力します。
Client secretフィールドにクライアントシークレットを入力します。
任意です。詳細設定を展開して、このコネクションでリクエストするスコープを選択します。デフォルトでは、次のスコープが選択されています。
read:confluence-groupsread:confluence-content.summarywrite:confluence-contentsearch:confluence
接続をクリックします。
プロジェクトに戻り、Create > Recipeをクリックするか、C+Rを押します。
新しいレシピを作成
Nameフィールドにレシピの名前を入力します。
Locationドロップダウンメニューを使用して、レシピを保存するプロジェクトを選択します。
ビルドを開始をクリックします。
レシピの構築を開始
Pick a starting pointをクリックし、Run on a scheduleを選択します。これにより、スケジューラー by WorkatoのNew recurring eventトリガーを使用する新しいレシピが作成されます。このトリガーにはコネクションは不要です。
スケジューラー by Workato New recurring eventトリガーを設定します。
スケジューラー by Workato New recurring eventトリガーの設定
このトリガーは、レシピを実行する頻度の間隔を設定します。スケジューラー by Workatoトリガーでは、コネクションのセットアップは不要です。
レシピエディターでトリガーをクリックします。
トリガーをクリック
時間単位ドロップダウンメニューを使用して週を選択します。
- 使用可能なオプションには、Minutes、Hours、Days、Weeks、Months、またはCustom scheduleがあります。
レシピを毎週実行するには、トリガーの間隔フィールドに1を入力します。
曜日フィールドでレシピを実行する曜日を選択します。たとえば、月曜日を選択します。
レシピを実行する時刻をトリガー時刻フィールドに指定します。たとえば、12:00 AMと入力します。
任意です。 Timezoneフィールドでタイムゾーンを選択します。空白のままにした場合、デフォルトはAmerica/Los_Angelesです。
任意です。開始日時フィールドに開始日時を設定するか、空白のままにして、レシピを開始した直後にトリガーを有効にします。レシピを実行またはテストした後は、この値を変更できません。
トリガーを設定
保存をクリックします。
+ Add stepをクリックし、Action in appを選択します。
Add step > Add action in appをクリック
GitHubのSearch issues/pull requests(batch)アクションを設定します。
GitHub Search issues/pull requests(batch)アクションを設定する
このステップでは、前週以降にマージされた、選択したGitHubリポジトリ内のプルリクエストを検索します。
GitHubを検索し、アプリとして選択します。
GitHubを選択
Search issues/pull requestsアクションを選択します。
Search issues/pull requestsアクションを選択
前の手順で作成したGitHubコネクションを選択します。
組織ドロップダウンメニューを使用して、アクセスする予定のリポジトリを含む組織を選択します。
リポジトリ名ドロップダウンメニューを使用してリポジトリを選択します。
タイプドロップダウンメニューを使用してPRを選択します。
ステータスドロップダウンメニューを使用してマージ済みを選択します。
クローズ後フィールドをFormulaモードに切り替えます。
スケジューラー by Workatoのスケジュール済み時刻ステップ 1データピルをClosed afterフィールドにマッピングします。
クローズ後フィールドに- 7.daysを追加します。
クローズ後フィールドに入力
このFormulaにより、検索がフィルタリングされ、前週以降にマージされたプルリクエストのみが取得されます。
保存をクリックします。
+ Add stepをクリックし、Action in appを選択します。
変数 by WorkatoのCreate variableアクションを設定します。
変数 by WorkatoのCreate variableアクションの設定
このステップでは、Contentという名前の空の変数を作成します。
Variables by Workatoを検索し、アプリとして選択します。
変数 by Workatoを選択
Create variableアクションを選択します。
Create variableアクションを選択
変数を追加をクリックします。
ラベルフィールドにContentを入力します。
変数を追加をクリックします。
ContentフィールドをFormulaモードに切り替え、変数を空の文字列で初期化するために""を入力します。
Contentフィールドに入力
後のステップで文字列(ChatGPTから生成されたコンテンツ)をnil変数に追加できないため、この初期化が必要です。
保存をクリックします。
+ Add stepをクリックし、Repeat for eachを選択します。
Add step > Repeat for eachをクリック
Repeat for each条件はどのように機能しますか?
Repeat for each条件のGitHubとJiraの例
Repeat for eachループは、リスト内の各アイテムに対して1つ以上のアクションを繰り返します。リスト全体の処理が完了すると、ループは自動的に終了します。
Repeat for eachループを設定します。
GitHubプルリクエスト用のRepeat for eachループを設定する
このステップでは、過去1週間にマージされた各プルリクエストを反復処理します。
GitHubの課題ステップ 2リストデータピルを入力リストフィールドにマッピングします。このデータピルには、ステップ2で指定した検索条件に一致するプルリクエストのリストが含まれます。
繰り返しモードドロップダウンメニューを使用して一度に1項目を選択します。
ステップ出力をクリアドロップダウンメニューでいいえが選択されていることを確認します。
Repeat for eachループを設定
保存をクリックします。
レシピエディターでプレースホルダーステップの横にある…(省略記号)をクリックし、削除を選択します。
プレースホルダーステップを削除
GitHubとJiraのIF条件を設定します。
GitHubとJiraのIF条件を設定する
このステップでは、GitHubプルリクエストのタイトルまたは本文に特定のJiraプロジェクトキーが含まれているかを確認します。これにより、指定されたJiraプロジェクトにリンクされた関連するプルリクエストのみがリリースノートに含まれるようになります。
Foreachの本文ステップ 4データピルをデータフィールドにマッピングします。または、タイトルステップ 4データピルを使用できます。
条件ドロップダウンメニューを使用して次を含むを選択します。
値フィールドに関連するJiraプロジェクトキーを入力します。たとえば、JiraプロジェクトキーCTを持つマージ済みPRのみをリリースノートに含めるには、このフィールドにCT-を入力します。
IF条件を設定
保存をクリックします。
Select an app and actionをクリックします。
OpenAIのSend messages to OpenAI modelsアクションを設定します。
OpenAI Send messages to OpenAI modelsアクションを設定する
このステップでは、ChatGPTにメッセージを送信し、PR本文に基づいてマージ済みプルリクエストの説明を生成するよう依頼します。
OpenAIを検索し、アプリとして選択します。
OpenAIを選択
Send messages to OpenAI modelsアクションを選択します。
Send messages to OpenAI modelsアクションを選択
前のステップで作成したOpenAIコネクションを選択します。
メッセージタイプドロップダウンメニューを使用して単一メッセージを選択します。
送信するテキストフィールドに次のプロンプトを入力します。
プルリクエストの説明で提供された詳細を使用して、更新内容について明確でユーザーにわかりやすい説明を生成します。各変更を、追加の見出しや導入テキストなしの独立したリリースノート項目としてフォーマットします。簡潔にし、平易な言葉を使用します。
説明:
Foreachの本文ステップ 4データピルを、送信するテキストフィールドのメッセージの末尾に追加します。
本文ステップ 4データピルをマッピング
任意です。モデルドロップダウンメニューを使用して、使用するGPTモデルを選択します。たとえば、gpt-4o-miniを選択します。空白のままにすると、デフォルトでgpt-3.5-turboになります。
保存をクリックします。
+ Add stepをクリックし、Action in appを選択します。このステップがIF条件内にネストされていることを確認します。
変数 by WorkatoのUpdate variablesアクションを設定します。
変数 by WorkatoのUpdate variablesアクションの設定
このステップでは、ChatGPTの応答をContent変数に追加します。このステップでは、各マージ済みPRタイトルを対応するGitHubプルリクエストにリンクし、PR本文で説明されている変更内容を要約する箇条書きを追加します。
Variables by Workatoを検索し、アプリとして選択します。
変数 by Workatoを選択
Update variablesアクションを選択します。
Update variablesアクションを選択
Variable nameドロップダウンメニューを使用して、Content(ステップ3)を選択します。
ContentフィールドをFormulaモードに切り替え、次のアクションを実行します。
変数 by Workatoのコンテンツステップ 3データピルをマッピングします。
リンクを新しい行に配置するには、+ "\n" + "<a href='" +を入力します。
ForeachのHtml URLステップ 4データピルをマッピングします。
+ "'>" +を入力します。
Foreachのタイトルステップ 4データピルをマッピングします。
終了リンクタグを追加し、新しい行を開始するには、+ "</a>" + "\n" +を入力します。
OpenAIの最適な選択ステップ 6データピルをマッピングします。
次のマージ済みPRに関する詳細用に新しい行を作成するには、+ "\n"を入力します。
Content変数を更新
保存をクリックします。
+ Add stepをクリックし、Action in appを選択します。このステップがIF条件とRepeat for eachループの外側に配置されていることを確認します。
ConfluenceのCreate pageアクションを設定します。
Confluence Create pageアクションを設定する
このステップでは、リリースノートを含むConfluenceページを作成します。
Confluenceを検索し、アプリとして選択します。
Confluenceを選択
Create pageアクションを選択します。
Create pageアクションを選択
前のステップで作成したConfluenceコネクションを選択します。
スペースキーフィールドにスペースキーを入力します。これにより、ページを作成するスペースがConfluenceに通知されます。
タイトルフィールドをFormulaモードに切り替え、次を入力します。
"Release Notes for: " + today.to_sこのFormulaは、Confluenceページのタイトルを次の形式で作成します: Release Notes for: YYYY-MM-DD。
変数 by Workatoのコンテンツステップ 3データピルをBodyフィールドにマッピングします。
Create pageアクションの設定例
保存をクリックします。
マージ済みGitHub PRからConfluenceリリースノートを生成するレシピをテストして実装する準備ができました。
レシピ設定の例。
マージ済みGitHub PRからConfluenceリリースノートを生成するレシピ
最終更新日:
Add step > IF conditionをクリック