Workbot for Slackを使用したGitHubマイルストーン投稿レシピ
このユースケースでは、GitHubとWorkbot for Slackを接続して強力な自動化を作成する方法を説明します。
このレシピの機能
このレシピは、GitHubで新規または更新されたマイルストーンを監視し、Workbot for Slackを使用してマイルストーンの詳細をSlackに自動的に投稿します。
このレシピはどのように使用できますか?
このレシピを使用すると、GitHubのマイルストーンを追跡し、更新をSlackチャンネルにリアルタイムで投稿できます。 また、このレシピを変更して、GitHubのイシュー、プルリクエスト、またはイシューコメントのリアルタイムトリガーと連携させることもできます。
レシピの作成
Workbot for Slackを使用して、GitHubで新規または更新されたマイルストーンを監視し、マイルストーンの詳細をSlackに自動的に投稿するレシピを作成するには、次の手順を実行します:
ユースケースは例示のみを目的としています
このユースケースは一例です。 このレシピをワークフローに合わせて適応させるには、トリガー、アクション、または条件ロジックの変更が必要になる場合があります。
Workatoにサインインします。
レシピを作成する予定のプロジェクトを選択します。
GitHubおよびWorkbot for Slackのコネクションを作成します:
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を入力します。
接続をクリックします。
Workbot for Slackコネクションの作成。
Workbot for Slackコネクションの作成
このステップでは、WorkatoとWorkbot for Slackアカウント間のコネクションを作成します。
作成 > コネクションをクリックするか、Cを2回押します。
新規コネクションページでWorkbot for Slackを検索して選択します。
名前フィールドにコネクションの名前を入力します。
Workbot for Slackコネクション設定
ロケーションドロップダウンメニューを使用して、コネクションを保存するプロジェクトを選択します。
任意です。 使用予定のNLUプロバイダー(DialogFlowやAmazon Lex NLUなど)を選択します。 ドロップダウンメニューに表示するには、NLUプロバイダーに接続する必要があります。
任意です。 詳細をクリックして、スラッシュコマンド検証トークン、カスタムヘルプコンテンツ、Slackアプリステータス(classicかどうか)、および Custom OAuth profileを設定します。
接続をクリックし、プロンプトが表示されたらSlackワークスペースにサインインして、続行をクリックしてコネクションを検証します。
プロジェクトに戻り、Create > Recipeをクリックするか、C+Rを押します。
新しいレシピを作成
Nameフィールドにレシピの名前を入力します。
Locationドロップダウンメニューから、レシピを保存する予定のプロジェクトを選択します。
ビルドを開始をクリックします。
レシピの構築を開始
Pick a starting pointをクリックし、Trigger from an appを選択します。
Select an app and trigger eventをクリックします。
GitHubの新規または更新されたマイルストーントリガーを設定します。
GitHubの新規または更新されたマイルストーントリガーの設定
このトリガーは、指定したGitHubリポジトリで新規または更新されたマイルストーンをリアルタイムで監視します。
GitHubを検索し、アプリとして選択します。
GitHubを選択
新規または更新されたマイルストーントリガーを選択します。
新規または更新されたマイルストーンのリアルタイムトリガーを選択
前の手順で作成したGitHubコネクションを選択します。
アクセスする予定のリポジトリを含む組織を、組織ドロップダウンメニューから選択します。
リポジトリ名フィールドでリポジトリを選択します。
すべてのマイルストーンステータスを監視するには、アクションドロップダウンメニューからすべてを選択します。 追加オプションには、次のステータスがあります:
- 開かれたマイルストーン
- 閉じられたマイルストーン
- 作成されたマイルストーン
- 削除されたマイルストーン
- 編集されたマイルストーン
新規または更新されたマイルストーントリガーを設定
保存をクリックします。
IF条件を設定します。
IF条件の設定
このステップでは、作成日時と更新日時のタイムスタンプを比較して、マイルストーンが新規かどうかを確認します。 値が同一の場合、マイルストーンは新規と見なされます。
GitHubの作成日時Step 1データピルをデータフィールドにマッピングします。
条件ドロップダウンメニューを使用して、次の値と等しいを選択します。
GitHubの更新日時Step 1データピルを値フィールドにマッピングします。
IF条件の設定
保存をクリックします。
Select an app and actionをクリックします。
Workbot for SlackのPost messageアクションを設定します。
Workbot for Slack Post messageアクションを設定する
このステップでは、指定したSlackチャンネルに、新しいGitHubマイルストーンに関する詳細を含むメッセージを投稿します。
Workbot for Slackを検索し、アプリとして選択します。
Workbot for Slackを選択
Post messageアクションを選択します。
Post messageアクションを選択
Workbotでマイルストーンの更新を投稿するチャンネル名を、#プレフィックスを含めてチャンネル名/DMフィールドに入力します。 たとえば、#generalを使用します。
メッセージフィールドでメッセージにブロックを追加をクリックします。
メッセージにブロックを追加をクリック
新規ブロックフィールドに移動し、タイプドロップダウンメニューを使用してテキスト付きセクションを選択します。
セクションテキストフィールドに*New milestone in GitHub*と入力します。
セクションテキストフィールドに入力
メッセージにブロックを追加をクリックします。
2つ目の新規ブロックフィールドに移動し、タイプドロップダウンメニューを使用してフィールド付きセクションを選択します。
セクションテキストフィールドに移動し、次のアクションを実行します:
<と入力します。
GitHubのHTML URLStep 1データピルをマッピングします。
|*と入力します。
GitHubのタイトルStep 1データピルをマッピングします。
*>と入力します。
新しい行を入力し、GitHubの説明Step 1データピルをマッピングします。
セクションテキストフィールドを設定
添付ファイルフィールドに移動し、フィールドを追加をクリックします。
フィールドを追加をクリック
フィールド#1に移動し、タイトルフィールドに*ID*:と入力します。
GitHubのIDStep 1データピルを値フィールドにマッピングします。
+ Add fieldをクリックします。
フィールド#2に移動し、タイトルフィールドに*Number*:と入力します。
GitHubの番号Step 1データピルを値フィールドにマッピングします。
+ Add fieldをクリックします。
フィールド#3に移動し、タイトルフィールドに*State*:と入力します。
値フィールドをFormulaモードに切り替え、GitHubの状態Step 1データピルをマッピングし、.capitalize Formulaを追加します。
状態Step 1データピルをマッピングしてcapitalize Formulaを追加
+ Add fieldをクリックします。
フィールド#4に移動し、タイトルフィールドに*Created at*:と入力します。
値フィールドをFormulaモードに切り替え、次のアクションを実行します:
GitHubの作成日時Step 1データピルをマッピングします。
.in_time_zone Formulaを追加し、タイムゾーンを指定します。 たとえば、太平洋標準時で時刻を表示するには、("America/Los Angeles")と入力します。
.strftime Formulaを追加して、日時文字列を任意の形式にフォーマットします。 次のように入力できます: ("%B%e, %Y,%l:%M %p")
作成日時の値の設定
+ Add fieldをクリックします。
フィールド#5に移動し、タイトルフィールドに*Open issues*:と入力します。
GitHubの未解決のイシューStep 1データピルを値フィールドにマッピングします。
+ Add fieldをクリックします。
フィールド#6に移動し、タイトルフィールドに*Closed issues*:と入力します。
GitHubの解決済みのイシューStep 1データピルを値フィールドにマッピングします。
メッセージにブロックを追加をクリックします。
3つ目の新規ブロックフィールドを展開し、タイプドロップダウンメニューから区切り線を選択します。
保存をクリックします。
+ Add stepをクリックし、ELSE IF conditionを選択します。
Add step > ELSE IF conditionをクリック
ELSE IF条件の仕組み
GitHubおよびWorkbot for SlackのELSE IF条件の例
IF条件がfalseの場合、ELSE IF条件が評価されます。 このレシピで示すように、複数のELSE IF条件を連結できます。
詳細については、IF制御ステートメントのドキュメントを参照してください。
ELSE IF条件を設定します。
ELSE IF条件の設定
このステップでは、作成日時と更新日時のタイムスタンプを比較して、マイルストーンが更新されたかどうかを確認します。 このELSE IF条件では、終了日時フィールドがnullであることを確認することで、マイルストーンが閉じられていないことも確認します。
GitHubの作成日時Step 1データピルをデータフィールドにマッピングします。
条件ドロップダウンメニューを使用して、次の値と等しくないを選択します。
GitHubの更新日時Step 1データピルを値フィールドにマッピングします。
+(プラス)をクリックし、ANDを選択して2つ目の条件を追加します。
GitHubの終了日時Step 1データピルをデータフィールドにマッピングします。
条件ドロップダウンメニューを使用して、存在しないを選択します。
ELSE IF条件の設定
保存をクリックします。
レシピエディターでステップ3の横にある…(省略記号)をクリックしてコピーを選択するか、ステップを選択した後にCommand+Cを押します。
ステップ3をコピー
ステップ5にカーソルを合わせ、貼り付けをクリックします。
メッセージを投稿ステップを貼り付け
レシピエディターで余分なステップの横にある…(省略記号)をクリックして、削除を選択します。
余分なステップを削除
Workbot for SlackのPost messageアクションを設定します。
Workbot for Slackのメッセージ投稿アクションの設定
このステップでは、指定したSlackチャンネルに、更新されたGitHubマイルストーンに関する詳細を含むメッセージを投稿します。
貼り付けたWorkbot for Slackのメッセージを投稿アクションをクリックします。
メッセージ>テキスト付きセクション>セクションテキストに移動し、*New milestone in GitHub*を*Updated milestone in GitHub*に変更します。
GitHubの更新されたマイルストーン
添付ファイルフィールド>フィールド#4>タイトルに移動し、*Created at*:を*Updated at*:に変更します。
値フィールドで、作成日時Step 1データピルを更新日時Step 1データピルに置き換えます。
更新日時Step 1データピルをマッピング
+ Add stepをクリックし、ELSE IF conditionを選択します。
Add step > ELSE IF conditionをクリック
2つ目のELSE IF条件を設定します。
2つ目のELSE IF条件の設定
このステップでは、終了日時フィールドに値が含まれているかどうかを確認して、マイルストーンが閉じられているかどうかを確認します。
GitHubの終了日時Step 1データピルをデータフィールドにマッピングします。
条件ドロップダウンメニューを使用して、存在するを選択します。
ELSE IF条件の設定
保存をクリックします。
レシピエディターでステップ3の横にある…(省略記号)をクリックしてコピーを選択するか、ステップを選択した後にCommand+Cを押します。
ステップ3をコピー
ステップ7にカーソルを合わせ、貼り付けをクリックします。
メッセージを投稿ステップを貼り付け
レシピエディターで余分なステップの横にある…(省略記号)をクリックして、削除を選択します。
余分なステップを削除
Workbot for SlackのPost messageアクションを設定します。
Workbot for Slackのメッセージ投稿アクションの設定
このステップでは、指定したSlackチャンネルに、閉じられたGitHubマイルストーンに関する詳細を含むメッセージを投稿します。
貼り付けたWorkbot for Slackのメッセージを投稿アクションをクリックします。
メッセージ>テキスト付きセクション>セクションテキストに移動し、*New milestone in GitHub*を*Closed milestone in GitHub*に変更します。
GitHubの閉じられたマイルストーン
添付ファイルフィールド>フィールド#4>タイトルに移動し、*Created at*:を*Closed at*:に変更します。
値フィールドで、作成日時Step 1データピルを終了日時Step 1データピルに置き換えます。
終了日時Step 1データピルをマッピング
Workbot for Slackを使用したGitHubマイルストーンの投稿レシピは、テストして実装する準備ができました。
レシピ設定の例。
Workbot for Slackを使用したGitHubマイルストーンの投稿レシピ
Last updated:
Add step > IF conditionをクリック