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のページを見ると、実行されたワークフローのログが流れているので、何かエラーが出て動かない場合などはこのログを見てみるといいだろう。
この記事が気に入ったらサポートをしてみませんか?