📝

GitHubとSlackを連携させて通知を自動化するまでの手順

2022/01/08に公開
2

こんにちは!@hisaya_sugitaです!

※ 以前、私がQiitaで書いた記事をZennに移行しました。

Slackの公式にも情報が載っていますが、基本的なコマンドや通知機能の一覧を備忘録としてまとめておこうと思います。

1. SlackにGitHubアプリを追加する

  1. slack.github.comにアクセスし、「Add to Slack」をクリックする。
  2. アプリが必要とするアクセス権限を確認し、「Continue」をクリックして許可します。
  3. アプリがアクセスできるチャンネルを選択します(すべてのパブリックチャンネル、特定のチャンネル、なし、など)。

Slackアプリのインストールが完了すると、GitHub アプリから設定方法と「/github」のスラッシュコマンドの使い方に関するダイレクトメッセージが送信されます。

2. GitHubとSlack連携させる

通知 / 解除させたいSlackチャンネルで下記のコマンドをPostします。

GitHubリポジトリと連携 / 連携解除する

# 連携
/github subscribe owner/repository

# 連携解除
/github unsubscribe owner/repository

# owner配下の全リポジトリを連携する場合
/github subscribe owner

# owner配下の全リポジトリを連携解除する場合
/github unsubscribe owner

ownerrepositoryには対象とするGitHubリポジトリのオーナー名、リポジトリ名をそれぞれ指定します。

GitHubからSlackへの通知機能を購読 / 購読解除する

# 購読
/github subscribe owner/repository 通知したい機能

# 購読解除
/github unsubscribe owner/repository 通知したい機能

# owner配下の全リポジトリを連携する場合
/github subscribe owner 通知したい機能

# owner配下の全リポジトリを連携解除する場合
/github unsubscribe owner 通知したい機能

これでGitHubとSlackを連携は完了です。
GitHubで指定のアクションをした際にSlackチャンネルに通知がいくようになっているはずです。

また、通知したい機能に指定できる通知機能の一覧はこの記事の下の方にまとめています。

全ての機能を購読したい場合

/github subscribe owner/repository issues,pulls,releases,deployments,reviews,comments,branches,commits:*,discussions

現在購読しているGitHubリポジトリの通知機能のリストを表示する

/github subscribe list features

【補足】通知機能の一覧

通知したい機能に指定できる通知機能の一覧です。

feature 説明 デフォルト通知
issues issueのオーブン / クローズ
pulls PRの作成 / マージ
commits default branchに対するコミット
releases リリース
deployments deploymentsステータスの更新
reviews PRのレビュー ×
comments PR / issueのコメント ×
branches branchの作成と削除 ×
commits:* 全てのブランチに対するコミット ×
discussions 作成または回答されたディスカッション ×
+label:"your label" 指定したラベルのissue、PR、コメント ×

参考

https://slack.com/intl/ja-jp/help/articles/232289568-GitHub-と-Slack-を連携させる
https://github.com/integrations/slack#configuration

GitHubで編集を提案

Discussion

iamku888iamku888

参考になりました、ありがとうございます。

ただ、記事中の連携解除するコマンドもsubscribeになっていましたのでご確認ください。
例えば下記部分

# owner配下の全リポジトリを連携解除する場合
/github subscribe owner

# owner配下の全リポジトリを連携解除する場合
/github unsubscribe owner