GitHubとSlackの連携についてまとめています。
GitHubとSlackを連携させると、GitHubで発生したイベント(イシューやプルリクエスト、コミットなど)を、Slackに通知させることができるんですね。
GitHubとSlackの連携
まずは、Slack用GitHubアプリをインストールしましょう。インストールとは言っても、パソコン内に何かをインストールするわけではありません、Slack内にGitHub連携用の機能を追加するイメージです。
関連)GitHub と Slack を連携させる | Slack
Slack用GitHubアプリのインストール
slack.github.comにアクセスし、Add to Slackをクリックします。
「GitHubがワークスペースにアクセスする権限をリクエストしています」と表示されるので、「許可する」をクリックします。
Slackの「App」のところに「GitHub」が追加されました。
SlackのGitHub内で「/github」と入力して送信すると、/githubスラッシュコマンドのヘルプが表示されます。
Invalid command! : Need some help with /github? Subscribe to notifications for a repository /github subscribe owner/repository Unsubscribe from notifications for a repository /github unsubscribe owner/repository Subscribe to notifications for repositories in an organization. /github subscribe owner Unsubscribe from notifications for repositories in an organization /github unsubscribe owner : :
/github signinと送信します。以下のメッセージが表示されるので、「Connect GitHub account」をクリックします。
Finish connecting your GitHub account Complete sign-in by entering the verification code presented to you post authentication.
Verification Codeが表示されます。「Enter code」をクリックして、このコードを入力します。※コード内容は毎回異なります。
Success!とメッセージが表示されます。
GitHubアプリ 06:46 Success! @user1 is now connected to @username
リポジトリを指定して「購読」する必要があります。SlackのGitHubで、/github subscribe <オーナー名>/<リポジトリ名>を送信します。
GitHubアプリ 06:46 Either the app isn't installed on your repository or the repository does not exist. Install it to proceed.
Install GitHub Appボタンをクリックします。以下のメッセージが表示され、以降、イシュー、プルリクエスト、コミット、リリース、デプロイ時に通知を受け取ることができるようになります。
Subscribed to <owner名>/<リポジトリ名>. This channel will receive notifications for issues, pulls, commits, releases, deployments
例えば、GitHubで新しくイシューを登録すると、Slackに以下のように通知されます。
GitHubアプリ 07:43 Issue opened by owner名 #7 イシューの通知テスト イシューの通知テスト <https://github.com/username1/samplex|ownername/samplex>ownername/samplex | 今日の07:43
以下の記事の手順を実行し、ブランチ作成~プルリクエスト、マージまでをおこなってみましょう。
【関連記事】
▶GitHub Desktopの使い方 ブランチ作成、コミットからプルリクエストとマージ
プルリクエストを行うと、プルリクエストの内容とコミットのIDが通知されます。
07:46 Pull request opened by ownername #8 修正のテスト2 1行追加 <https://github.com/ownername/samplex|ownername/samplex>ownername/samplex | 今日の07:46 07:46 2 new commits pushed to main by ownername 95b3719b - 修正のテスト2 39e2a410 - Merge pull request #8 from ownername/work1 <https://github.com/ownername/samplex|ownername/samplex>ownername/samplex
マージすると、マージの内容とデプロイの結果が表示されます。
07:46 Pull request merged by ownername #8 修正のテスト2 <https://github.com/ownername/samplex|ownername/samplex>ownername/samplex | 今日の07:46 07:46 github-pages[bot]github-pages[bot] Successfully deployed 39e2a41 to github-pages <https://github.com/ownername/samplex|ownername/samplex>ownername/samplex | 今日の07:46
デフォルトでは、reviews (レビュー)、comments (コメント)、branches (ブランチ)、commits:* (すべてのコミット)は通知対象外になっています。これらを追加するには、SlackのGitHubで、以下を送信します。
/github subscribe <owner名>/<リポジトリ名> reviews,comments,branches,commits:*
通知対象が追加され、現在の通知対象一覧が表示されます。
user1 07:55 /github subscribe ownername/samplex reviews,comments,branches,commits:* GitHubアプリ 07:55 This channel will receive notifications from ownername/samplex for: issues, pulls, commits:'*', releases, deployments, reviews, comments, branches
まとめ
- GitHubとSlackを連携すると、issueやpull request時にSlackに通知される
- 連携のためには、アプリのインストールやリポジトリの購読などの手続きが必要
- 通知対象のイベントは、あとから設定変更が可能