SlackでGitHub通知を受け取るくらいならすぐに出来るだろうと思っていたら、微妙に設定が回りくどかったので備忘録として残します。
- GitHub公式ドキュメント
- SlackアプリからGitHubを追加する
- GitHub側からSlackを許可する
- リポジトリをsubscribeして通知を受け取ろう
- リポジトリをunsubscribeして通知を無効化する
GitHub公式ドキュメント
SlackアプリからGitHubを追加する
SlackのサイドバーのAppを選択し、GitHubを検索して追加します。Appがサイドバーに表示されていない場合は環境設定から表示させましょう。
app directoryページに遷移するので、「Slackに追加」を押します。
アクセス権限の確認画面が表示されるので「許可する」を押します。
これでSlackのサイドバーのAppにGitHubが追加されました。まだこの段階ではGitHub側からSlackを許可していない為、通知は動作しません。
GitHub側からSlackを許可する
Slack上のApp - GitHubに対して以下のメッセージを送信します。/github
がGitHubアプリに対してアクションを要求する際のprefixとなります。
/github signin
GitHubアプリからGitHubアカウントとの接続を求められる返信が来ますので、「Connect GitHub account」を押します。
Webページが開き、GitHubとSlackとの連携をするかどうか確認されますので、「Connect GitHub account」を押します。
GitHub側からSlackを許可する画面が表示されますので、「Authorize Slack」を押します。
一時的な認証コードが発行されますのでコピペしておきます。
コピペした認証コードを入力するため「Enter code」を押し、表示されたダイアログにコードを入力して「送信」を押します。
GitHubにSlackアプリをインストールするよう求められますので「Install GitHub App」を押します。
GitHubにSlackアプリをインストールする際の設定画面が表示されます。必要に応じて設定値は変えて「Install」を押します。
これで通知を受け取る準備ができました。ただし、Slack側で通知を受け取るGitHubリポジトリを指定していないのでまだ通知はされません。
リポジトリをsubscribeして通知を受け取ろう
自分だけ通知を受け取りたい時
通知を受け取る為にはリポジトリ毎に設定が必要です。App - GitHubに対して下記メッセージを送信すると指定したリポジトリの通知が出力されるようになります。owner/repo
の部分は通知を受け取りたいリポジトリの文字列に置き換えてください。
# reviews,comments,branches,commits:*の部分は、 # デフォルトの通知内容に対してさらにカスタマイズとして追加したい通知内容を追記しています。 /github subscribe owner/repo reviews,comments,branches,commits:*
デフォルトの通知内容等については下記を参照ください。 github.com
これでGitHub側でアクションがあれば、App - GitHubに通知が溜まっていくようになります。
特定チャンネルで通知を受け取りたい時
App - GitHubへの通知は設定した自ユーザーにしか適用されない為、チーム開発だとsubscribeの設定が面倒だったりと不便に感じることがあると思います。そういう場合は通知用チャンネルを別に作成し、そのチャンネルに対してGitHubアプリの通知を流し込むことが可能です。
というわけでまずはGitHub通知用のチャンネルを作ります。今回は「github-notice」という名前のチャンネルで作成しました。
チャンネルを作成したら、チャンネルの設定画面のインテグレーションから「アプリを追加する」を押します。
アプリの中から「GitHub」を探して「追加」を押します。
これでGitHubの通知はチャンネルに対して通知されるようになりました。あとは自分だけ通知を受け取る場合と同様です。通知する対象のリポジトリを指定しましょう。
/github subscribe owner/repo reviews,comments,branches,commits:*
正しく設定できていれば、このような形で通知が流れてくるはずです。subscribeの設定はチャンネルに対して適用されますので、チャンネルに参加するメンバー全員が同一の通知を受け取ることができます。
こちらの方法なら絵文字や返信を付けて既読を表したり、補足コメントを共有できるので便利ですね。
リポジトリをunsubscribeして通知を無効化する
通知をやめたい場合は、対象のリポジトリに対してunsubscribe
します。
/github unsubscribe owner/repo