見出し画像

GitHub Actionsでリポジトリにスターが付いたらSlackに通知する

GitHub Actionsがリニューアルされて、よりCI/CDを押し出した形になったのでちょっと触ってみた。

GitHub Actionsのドキュメントを見てみると、リポジトリへのpushとかのタイミングでワークフローを動かせるだけではなく、色んなタイミングでワークフローを起動することができる。どうやらGitHubのWebhooksのトリガーがそのまま全部使えるようだ。

よく見たら誰かがリポジトリのスターを付けた瞬間にワークフローを起動することもできるみたいなので、試しにリポジトリのスターがついたらSlackに通知するワークフローを作ってみた。この記事ではそのワークフローの作り方を書いておく。

まずはGitHub Actionsを有効にする。GitHub Actionsにアクセスして、Sign up for the betaボタンを押すと自分のGitHubアカウントでのGitHub Actionsが利用できるようになる。

次に、適当なリポジトリの中の ".github/workflows/star.yaml" に次のファイルをコミットしてpushする。ファイル名は.yamlファイルであれば"star.yaml"じゃなくてもなんでもよい。

name: Star

on: [watch]

jobs:
 build:

   runs-on: ubuntu-latest

   steps:
   - name: Dump star count
     env:
       COUNT: ${{ toJson(github.event.repository.stargazers_count) }}
     run: echo "${COUNT}"
   - uses: 8398a7/action-slack@v1
     with:
       payload: |
         { "text": "Star: ${{ github.event.repository.stargazers_count }} ${{ github.event.repository.html_url }}" }
     env:
       SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}

次に通知するSlackの情報を設定する。GitHubリポジトリ > 設定 > Secretから、"SLACK_WEBHOOK_URL"という名前でSlackのIncoming Webhook URLを設定する。参考: SlackのWebhook URL取得手順

設定が済んだら、リポジトリ右上にあるスターボタンを押してみるとワークフローが起動して、うまく行けばSlackの画面に通知が出る。通知のメッセージをカスタマイズしたい場合は前述した ".github/workflows/star.yaml"を編集してほしい。

リポジトリのActionsのページを見ると、実行されたワークフローのログが流れているので、何かエラーが出て動かない場合などはこのログを見てみるといいだろう。


この記事が気に入ったらサポートをしてみませんか?