3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

身の回りの困りごとを楽しく解決! by Works Human IntelligenceAdvent Calendar 2023

Day 10

開発チームのDiscordに感謝メッセージ付きでGitHubの変更通知を送る

Posted at

やりたいこと

GitHub Organizationを使ってチーム開発するときに、開発チームのDiscordにコミット通知とかを飛ばしたいです。

学生のロボット開発とかだとチーム内のモチベーション維持が一番大事なので「あっ、あいつ今進捗産んでるのか。」っていう雰囲気を出すことでやる気を維持したいと思います!!!

成果物

スクリーンショット 2023-12-09 22.14.56.png

こんな感じでGitHubからの通知と感謝メッセージを送ってくれます。Issueは特に見逃したらやばいので通知してくれます。

実現手段

GitHubのWebhookをDiscordにBotとして追加する

チャンネルを作る

コミットって結構頻繁にやるので、通常の会話とは隔離したいです。チャンネルを新しく作るのが無難だと思います。

スクリーンショット 2023-12-09 20.01.12.png

こんな感じです。

Webhook URLを発行する

スクリーンショット 2023-12-09 20.01.52.png

「ウェブフックを作成」を押して

スクリーンショット 2023-12-09 20.25.29.png

  • 任意の名前
  • さっき作成したチャンネル
  • アイコン

を設定します。今回私は可愛いOctocatのアイコンを作成して使いました。

できたらウェブフックURLをコピーしておきます。

Webhookのテスト

ターミナルで以下のコマンドを叩きます。

% curl -X POST -F content="やぁ!進捗どうだい?" https://discord.com/api/webhooks/**********

うまくいけば先ほどのチャンネルにOctocat名義でメッセージが届きます。

スクリーンショット 2023-12-09 20.32.13.png

早速メンバーがなんか変なリプを飛ばしてきましたが、少なくともモチベーション維持の効果があるようです。ちょろすぎ

GitHub OrganizationにWebhookを登録

https://github.com/organizations/YOUR_ORGANIZATION/settings/hooksにアクセスして右上のAdd webhookを押します。

スクリーンショット 2023-12-09 21.22.24.png

  • Payload URL さっきのURL +末尾に /github
  • Contetnt type application/jsonにする
  • Which events whold you like to trigger this webhook?は適当なものを選ぶ

末尾の/githubをつけ忘れると何も動かないので注意してください!!

CommitとかIssueとからへんを設定するといいと思います。後述する感謝メッセージを送りたい人はGitHub Actions関連のチェックを外さないと多重が起こるので気をつけてください。

スクリーンショット 2023-12-09 21.27.56.png

この状態で何かアクションをGitHubでとるとこのようなメッセージがきます。

感謝メッセージ

GitHubからの通知だけだと味気ないのでGitHub Actionを使って感謝メッセージを送りたいと思います。

OrganizationのSettingsのActions secrets and variablesにWEBHOOK_URLという名前でsecretsを登録します。

スクリーンショット 2023-12-09 22.02.11.png

そして変化があった時に感謝メッセージを送りたいリポジトリにGitHub Actionsを追加していきます。

commit_notify.yml
name: commit notify

on:
  push:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - name: Discord Message Notify
      run: curl -X POST -F content="${{ github.actor }}がコミットしてくれた!!進捗ありがとう😁" ${{ secrets.WEBHOOK_URL }}
issue_notify.yml
name: Issue notify

on:
  issues:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - name: Discord Message Notify
      run: curl -X POST -F content="${{ github.actor }}がIssueを立てたよ👀 みんな確認して‼️ @everyone" ${{ secrets.WEBHOOK_URL }}

感謝しなくていいようなしょうもないリポジトリには追加しなくていいです。

動作確認

適当にコミットしたりIssue建てたりして通知が来たら成功です。

おわりに

みんなやる気出してくれるといいな

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?