
GitHub Actionsからslackへジョブの承認ボタンを送るslack-approvalを作成しました
仕事でGitHub Actionsでちょっとしたワークフローを作るという要件があったのですが、GitHub Actionsのapprovalの仕様が少しややこしくてもう少しシンプルに、Slack上に承認ボタンを押すと後続のジョブが実行されて、Rejectボタンを押すとキャンセルされるようにできないかな〜と思って、自作のアクションを作ってみました。
設定方法はこんな感じ
jobs:
approval:
runs-on: ubuntu-latest
steps:
- name: send approval
uses: varu3/slack-approval@main
env:
SLACK_APP_TOKEN: ${{ secrets.SLACK_APP_TOKEN }}
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
SLACK_SIGNING_SECRET: ${{ secrets.SLACK_SIGNING_SECRET }}
SLACK_CHANNEL_ID: ${{ secrets.SLACK_CHANNEL_ID }}
timeout-minutes: 10
uses: varu3/slack-approval というステップを追加して必要な情報(Slack Appのクレデンシャル)を入力するだけです。

このStepに差し掛かると、上記のようなボタンが表示されます。 timeout-minutes で指定した時間以内に Approve を押すと後続の処理が実行されます。 Reject を押すとそのワークフロー自体は失敗します。
クリックするとクリックした人の名前も表示されます

社内でドッグフーディング的に使っていますが今のところ特に不具合などは出ていなさそうです。シンプルなちょっとしたワークフローを組んだりする際に、とても便利だと思いますのでぜひ使ってみてください!
ちなみに、中身の実装について
slack-sdkでPostした投稿(ボタンアクション)をSlack AppのSocket modeを有効化してイベントを拾っているだけのシンプルな実装です
Slack AppのSocketモードは外部から通信が通らない環境でもこのようにイベントをListenできるので非常に便利で強力な機能ですね〜
最近はずっとSlack botやActionsを耕しているおじさんになりつつあります。
この記事が気に入ったら、サポートをしてみませんか?
気軽にクリエイターの支援と、記事のオススメができます!
気軽にクリエイターの支援と、記事のオススメができます!