マージ済みGitHub PRからConfluenceリリースノートを生成するレシピ

このページは機械翻訳により提供されています。翻訳内容と英語版に相違がある場合は、英語版が優先されます。

このユースケースでは、OpenAIGitHub、およびConfluenceを接続して、強力な自動化を作成する手順を説明します。

このレシピの機能

このレシピは、GitHubからマージ済みプルリクエスト(PR)を毎週取得し、それぞれを反復処理してPR本文内の特定のJiraプロジェクトキーを確認し、見つかった場合はPR本文をChatGPTに送信して変更内容の要約を生成します。 要約された各PRは、Confluenceの新しいリリースノートページに追加されます。

レシピの作成

GitHubのマージ済みプルリクエストに基づいてConfluenceでリリースノートを作成するレシピを作成するには、次の手順を実行します。

ユースケースは例示のみを目的としています

このユースケースは一例です。 このレシピをワークフローに合わせて適応させるには、トリガー、アクション、または条件ロジックの変更が必要になる場合があります。

1

Workatoにサインインします。

2

レシピを作成する予定のプロジェクトを選択します。

3

OpenAI、GitHub、およびConfluenceのコネクションを作成します。

OpenAIコネクションの作成。

OpenAIコネクションの作成

このステップでは、WorkatoとOpenAIアカウント間のコネクションを作成します。

1

作成 > コネクションをクリックするか、Cを2回押します。

2

New connectionページでOpenAIを検索して選択します。

3

コネクション名フィールドにコネクションの名前を入力します。

OpenAIコネクション設定OpenAIコネクション設定

4

ロケーションドロップダウンメニューを使用して、コネクションを保存するプロジェクトを選択します。

5

APIキーフィールドにAPIキーを入力します。 この値はOpenAI APIキーのページから取得できます。

6

接続をクリックします。

GitHubコネクションを作成します。

GitHubコネクションの作成

このステップでは、WorkatoとGitHubアカウント間のコネクションを作成します。

1

作成 > コネクションをクリックするか、Cを2回押します。

2

新規コネクションページでGitHubを検索して選択します。

3

コネクション名フィールドにコネクションの名前を入力します。

GitHubコネクションのセットアップGitHubコネクションのセットアップ

4

ロケーションドロップダウンメニューを使用して、コネクションを保存するプロジェクトを選択します。

5

コネクションタイプドロップダウンメニューを使用して、使用する予定のコネクション方式を選択します。 オンプレミスグループ名を選択するか、Cloudを選択して直接コネクションを使用できます。

6

Authentication typeドロップダウンメニューで、OAuth AppGitHub App、またはPersonal Access Tokenのいずれかを選択します。

GitHub Appを選択した場合:

1

GitHub App IDフィールドにアプリIDを入力します。

2

GitHub App Private keyフィールドに秘密鍵を入力します。

3

Installation IDフィールドに入力します。

4

任意です。 詳細設定を展開し、GitHub Enterprise Serverを使用する場合に適用されるAPI Root URLを指定します。

Personal Access Tokenを選択した場合:

1

Personal Access TokenフィールドにPersonal Access Tokenを入力します。

7

接続をクリックします。

Confluenceコネクションを作成します。

Confluenceコネクションの作成

このステップでは、WorkatoとConfluenceアカウント間のコネクションを作成します。

1

作成 > コネクションをクリックするか、Cを2回押します。

2

新規コネクションページでConfluenceを検索して選択します。

3

コネクション名フィールドにコネクションの名前を入力します。

ConfluenceコネクションのセットアップConfluenceコネクションのセットアップ

4

ロケーションドロップダウンメニューを使用して、コネクションを保存するプロジェクトを選択します。

5

コネクションタイプドロップダウンメニューを使用して、使用する予定のコネクション方式を選択します。 オンプレミスグループ名を選択するか、Cloudを選択して直接コネクションを使用できます。

6

認証タイプドロップダウンメニューを使用して、認証方法を選択します。 オプションには、BasicAPI tokenOAuth 2.0があります。

7

コネクション情報を入力します。

  • クラウドコネクションを使用する場合ConfluenceサブドメインフィールドにConfluenceサブドメインを入力します。
  • オンプレミスコネクションを使用する場合ConfluenceルートURIフィールドに、ConfluenceホストのルートURI(プロトコル、任意のポート、ホスト名を含む)を入力します。
8

認証情報を入力します。

Basic認証を選択した場合

1

ユーザー名フィールドにユーザー名(メールアドレスではありません)を入力します。

2

Passwordフィールドにパスワードを入力します。

API tokenを選択した場合

1

メールアドレスフィールドにメールアドレスを入力します。

2

APIトークンフィールドにAPIトークンを入力します。 Atlassianアカウントに移動し、セキュリティ>API tokens>Create API tokenを選択すると作成できます。

OAuth 2.0を選択した場合

1

Client IDフィールドにクライアントIDを入力します。

2

Client secretフィールドにクライアントシークレットを入力します。

3

任意です。 詳細設定を展開して、このコネクションでリクエストするスコープを選択します。 デフォルトでは、次のスコープが選択されています。

  • read:confluence-groups
  • read:confluence-content.summary
  • write:confluence-content
  • search:confluence
9

接続をクリックします。

4

プロジェクトに戻り、Create > Recipeをクリックするか、C+Rを押します。

新しいレシピを作成新しいレシピを作成

5

Nameフィールドにレシピの名前を入力します。

6

Locationドロップダウンメニューから、レシピを保存する予定のプロジェクトを選択します。

7

ビルドを開始をクリックします。

レシピの構築を開始レシピの構築を開始

8

Pick a starting pointをクリックし、Run on a scheduleを選択します。 これにより、スケジューラー by WorkatoのNew recurring eventトリガーを使用する新しいレシピが作成されます。 このトリガーにはコネクションは不要です。

9
スケジューラー by Workato New recurring eventトリガーを設定します。

スケジューラー by Workato New recurring eventトリガーの設定

このトリガーは、レシピを実行する頻度の間隔を設定します。 スケジューラー by Workatoトリガーでは、コネクションのセットアップは不要です。

1

レシピエディターでトリガーをクリックします。

トリガーをクリックトリガーをクリック

2

時間単位ドロップダウンメニューを使用してを選択します。

  • 使用可能なオプションには、MinutesHoursDaysWeeksMonths、またはCustom scheduleがあります。
3

レシピを毎週実行するには、トリガーの間隔フィールドに1を入力します。

4

曜日フィールドでレシピを実行する曜日を選択します。 たとえば、月曜日を選択します。

5

レシピを実行する時刻をトリガー時刻フィールドに指定します。 たとえば、12:00 AMと入力します。

6

任意です。 Timezoneフィールドでタイムゾーンを選択します。 空白のままにした場合、デフォルトはAmerica/Los_Angelesです。

7

任意です。 開始日時フィールドに開始日時を設定するか、空白のままにして、レシピを開始した直後にトリガーを有効にします。 レシピを実行またはテストした後は、この値を変更できません。

トリガーを設定トリガーを設定

8

保存をクリックします。

10

+ Add stepをクリックし、Action in appを選択します。

アクションを追加Add step > Add action in appをクリック

11
GitHubのSearch issues/pull requests(batch)アクションを設定します。

GitHub Search issues/pull requests(batch)アクションを設定する

このステップでは、前週以降にマージされた、選択したGitHubリポジトリ内のプルリクエストを検索します。

1

GitHubを検索し、アプリとして選択します。

GitHubを選択GitHubを選択

2

Search issues/pull requestsアクションを選択します。

Search issues/pull requestsアクションを選択Search issues/pull requestsアクションを選択

3

前の手順で作成したGitHubコネクションを選択します。

4

組織ドロップダウンメニューを使用して、アクセスする予定のリポジトリを含む組織を選択します。

5

リポジトリ名ドロップダウンメニューを使用してリポジトリを選択します。

6

タイプドロップダウンメニューを使用してPRを選択します。

7

ステータスドロップダウンメニューを使用してマージ済みを選択します。

8

クローズ後フィールドをFormulaモードに切り替えます。

9

スケジューラー by Workatoのスケジュール済み時刻Step 1データピルをClosed afterフィールドにマッピングします。

10

クローズ後フィールドに- 7.daysを追加します。

クローズ後フィールドに入力クローズ後フィールドに入力

このFormulaにより、検索がフィルタリングされ、前週以降にマージされたプルリクエストのみが取得されます。

11

保存をクリックします。

12

+ Add stepをクリックし、Action in appを選択します。

13
変数 by WorkatoのCreate variableアクションを設定します。

変数 by WorkatoのCreate variableアクションの設定

このステップでは、Contentという名前の空の変数を作成します。

1

Variables by Workatoを検索し、アプリとして選択します。

変数 by Workatoを選択変数 by Workatoを選択

2

Create variableアクションを選択します。

Create variableアクションを選択Create variableアクションを選択

3

変数を追加をクリックします。

4

ラベルフィールドにContentを入力します。

5

変数を追加をクリックします。

6

ContentフィールドをFormulaモードに切り替え、変数を空の文字列で初期化するために""を入力します。

Contentフィールドに入力Contentフィールドに入力

後のステップで文字列(ChatGPTから生成されたコンテンツ)をnil変数に追加できないため、この初期化が必要です。

7

保存をクリックします。

14

+ Add stepをクリックし、Repeat for eachを選択します。

Repeat for eachを追加Add step > Repeat for eachをクリック

Repeat for each条件はどのように機能しますか?

Repeat for each条件のGitHubとJiraの例

Repeat for eachループは、リスト内の各アイテムに対して1つ以上のアクションを繰り返します。 リスト全体の処理が完了すると、ループは自動的に終了します。

15
Repeat for eachループを設定します。

GitHubプルリクエスト用のRepeat for eachループを設定する

このステップでは、過去1週間にマージされた各プルリクエストを反復処理します。

1

GitHubの課題Step 2リストデータピルを入力リストフィールドにマッピングします。 このデータピルには、ステップ2で指定した検索条件に一致するプルリクエストのリストが含まれます。

2

繰り返しモードドロップダウンメニューを使用して一度に1項目を選択します。

3

ステップ出力をクリアドロップダウンメニューでいいえが選択されていることを確認します。

Repeat for eachループを設定Repeat for eachループを設定

4

保存をクリックします。

16

レシピエディターでプレースホルダーステップの横にある(省略記号)をクリックし、削除を選択します。

プレースホルダーを削除プレースホルダーステップを削除

17

+ Add stepをクリックし、IF conditionを選択します。 このステップがRepeat for eachループ内にネストされていることを確認します。

IF条件を追加Add step > IF conditionをクリック

IF条件の仕組み

JiraとGitHubのIF条件の例

IF条件を使用すると、特定の条件に基づいて判断できます。 指定した条件がtrueかfalseかに応じて異なるアクションを実行することで、レシピのワークフローを制御できます。

18
GitHubとJiraのIF条件を設定します。

GitHubとJiraのIF条件を設定する

このステップでは、GitHubプルリクエストのタイトルまたは本文に特定のJiraプロジェクトキーが含まれているかを確認します。 これにより、指定されたJiraプロジェクトにリンクされた関連するプルリクエストのみがリリースノートに含まれるようになります。

1

Foreachの本文Step 4データピルをデータフィールドにマッピングします。 または、タイトルStep 4データピルを使用できます。

2

条件ドロップダウンメニューを使用して次を含むを選択します。

3

フィールドに関連するJiraプロジェクトキーを入力します。 たとえば、JiraプロジェクトキーCTを持つマージ済みPRのみをリリースノートに含めるには、このフィールドにCT-を入力します。

IF条件を設定IF条件を設定

4

保存をクリックします。

19

Select an app and actionをクリックします。

20
OpenAIのSend messages to OpenAI modelsアクションを設定します。

OpenAI Send messages to OpenAI modelsアクションを設定する

このステップでは、ChatGPTにメッセージを送信し、PR本文に基づいてマージ済みプルリクエストの説明を生成するよう依頼します。

1

OpenAIを検索し、アプリとして選択します。

OpenAIを選択OpenAIを選択

2

Send messages to OpenAI modelsアクションを選択します。

Send messages to OpenAI modelsアクションを選択Send messages to OpenAI modelsアクションを選択

3

前のステップで作成したOpenAIコネクションを選択します。

4

メッセージタイプドロップダウンメニューを使用して単一メッセージを選択します。

5

送信するテキストフィールドに次のプロンプトを入力します。

プルリクエストの説明で提供された詳細を使用して、更新内容について明確でユーザーにわかりやすい説明を生成します。 各変更を、追加の見出しや導入テキストなしの独立したリリースノート項目としてフォーマットします。 簡潔にし、平易な言葉を使用します。

説明:

6

Foreachの本文Step 4データピルを、送信するテキストフィールドのメッセージの末尾に追加します。

本文データピルをマッピング本文Step 4データピルをマッピング

7

任意です。 モデルドロップダウンメニューを使用して、使用するGPTモデルを選択します。 たとえば、gpt-4o-miniを選択します。 空白のままにすると、デフォルトでgpt-3.5-turboになります。

8

保存をクリックします。

21

+ Add stepをクリックし、Action in appを選択します。 このステップがIF条件内にネストされていることを確認します。

22
変数 by WorkatoのUpdate variablesアクションを設定します。

変数 by WorkatoのUpdate variablesアクションの設定

このステップでは、ChatGPTの応答をContent変数に追加します。 このステップでは、各マージ済みPRタイトルを対応するGitHubプルリクエストにリンクし、PR本文で説明されている変更内容を要約する箇条書きを追加します。

1

Variables by Workatoを検索し、アプリとして選択します。

変数 by Workatoを選択変数 by Workatoを選択

2

Update variablesアクションを選択します。

Update variablesアクションを選択Update variablesアクションを選択

3

Variable nameドロップダウンメニューを使用して、Content(ステップ3)を選択します。

4

ContentフィールドをFormulaモードに切り替え、次のアクションを実行します。

1

変数 by WorkatoのコンテンツStep 3データピルをマッピングします。

2

リンクを新しい行に配置するには、+ "\n" + "<a href='" +を入力します。

3

ForeachのHtml URLStep 4データピルをマッピングします。

4

+ "'>" +を入力します。

5

ForeachのタイトルStep 4データピルをマッピングします。

6

終了リンクタグを追加し、新しい行を開始するには、+ "</a>" + "\n" +を入力します。

7

OpenAIの最適な選択Step 6データピルをマッピングします。

8

次のマージ済みPRに関する詳細用に新しい行を作成するには、+ "\n"を入力します。

Content変数を更新Content変数を更新

5

保存をクリックします。

23

+ Add stepをクリックし、Action in appを選択します。 このステップがIF条件とRepeat for eachループの外側に配置されていることを確認します。

24
ConfluenceのCreate pageアクションを設定します。

Confluence Create pageアクションを設定する

このステップでは、リリースノートを含むConfluenceページを作成します。

1

Confluenceを検索し、アプリとして選択します。

Confluenceを選択Confluenceを選択

2

Create pageアクションを選択します。

Create pageアクションを選択Create pageアクションを選択

3

前のステップで作成したConfluenceコネクションを選択します。

4

スペースキーフィールドにスペースキーを入力します。 これにより、ページを作成するスペースがConfluenceに通知されます。

5

タイトルフィールドをFormulaモードに切り替え、次を入力します。

ruby
"Release Notes for: " + today.to_s

このFormulaは、Confluenceページのタイトルを次の形式で作成します: Release Notes for: YYYY-MM-DD

6

変数 by WorkatoのコンテンツStep 3データピルをBodyフィールドにマッピングします。

設定例Create pageアクションの設定例

7

保存をクリックします。

マージ済みGitHub PRからConfluenceリリースノートを生成するレシピをテストして実装する準備ができました。

レシピ設定の例。

OpenAI、GitHub、およびConfluenceのレシピマージ済みGitHub PRからConfluenceリリースノートを生成するレシピ

Last updated: