はじめに
GithubとSlack連携は以前から使ってましたが
slackと連携するgithubの新しいアプリが出たらしいので使ってみた感じをメモ
2018/04現在、以前のgithub連携アプリは
Github Notifications (レガシー)
と呼ばれるようです
アジェンダ
- 連携させる
- 設定を変える
- /githubコマンドの使い方
1. 連携させる
https://slack.github.com/ にて連携設定を行います。
連携はwebのみで行えます。
webを開く
https://slack.github.com/ を開いてAdd to Slackを押します

アクセス権限を確認
アクセス権限を確認し「Continue」を押します

チャンネル選択
アプリがアクセスできるチャンネルを選択します。
とりあえずAll Public Channelsを選択しInstallを押して先に進みます。
2. 設定を変えるにて後述しますが、設定は後で変更できます。

Installと連携を確認
Installされるとアプリを開くダイアログが表示されます

Slack.appを開くとこんな画面で出迎えてくれます

2. 設定を変える
設定を変えるには以下から行います。
https://<チーム名>.slack.com/apps/manage
設定するアプリを探す
https://<チーム名>.slack.com/apps/manageを知らなくてもアプリからも開けます。
slackアプリのメニューから
Customize Slackを開きます
Configure Appsを開きます

InstallしたGitHubがあるので選択します

設定を変える
Settingsを選択します

Install時の設定でAll public channelsを選択してしまったとしてもこの画面で変更できます。
本来は極力権限はしぼるべきでしょう。

補足
特定のChannelのみにした場合でも、
あとからslack側の追加したいchannelで
/invite @githubと発言することで後から追加できます
3. /githubコマンドの使い方
使うコマンド
slackのコメント欄にて以下のコマンドを発言することでリポジトリの設定が行えます
| コマンド | 意味 |
|---|---|
/github subscribe owner/repo |
指定したリポジトリの通知を受け取ります |
/github unsubscribe owner/repo |
指定したリポジトリの通知をやめます |
/github subscribe owner/repo 機能 |
指定したリポジトリの機能(※1)の通知を受け取ります |
/github unsubscribe owner/repo 機能 |
指定したリポジトリの機能(※1)の通知をやめます |
/github subscribe list |
通知設定したリポジトリを表示します |
※1:
機能には、
↓に記載しているデフォルト通知設定の機能を個別に指定します。具体的には
issues、pulls、commentsなどです。
デフォルト通知設定
- デフォルトで通知を行う機能
- issues (イシュー)
- pulls (プル)
- statuses (ステータス)
- コミット
- deployments (デプロイメント)
- public (パブリック)
- デフォルトで通知されない機能
- reviews (レビュー)
- comments (コメント)
- branches (ブランチ)
- commits:all (すべてにコミット)
特定のリポジトリのsubscribe
ためしにこのリポジトリをsubscribeしてみます
https://github.com/tweeeety/github-slack-new_app
slack上でsubscribeするリポジトリを指定
/github subscribe tweeeety/github-slack-new_app と打ちます

Githubアカウントと連携する
SLack上にConnect GitHub accountというボタンが現れるのでおします

Github上で連携する
Authorize githubを押します

押すとSlack上にはSuccess!と通知がきます

Github上でリポジトリ設定をする
続けてGithub側で
この連携がアカウントの全てのリポジトリを対象とするか、特定のリポジトリとするかを選択します

完了するとSubscribed to...という通知がきます

pull requestを送ったsubscribeを確認
https://github.com/tweeeety/github-slack-new_app/pull/1
ためしにこのpull requestを送ってみた結果です。

特定のリポジトリの機能のsubscribeをする/やめる
すでに出てきましたが、以下のようなコマンドで機能に対してのsubscribeをする/やめるができます
補足
2018/04現在、EnterpriseやSlack Enterpriseには対応してないようです。
以下の公式リポジトリのREADMEに記載があります
This app officially supports GitHub.com and Slack.com but the team plans to support GitHub Enterprise and Slack Enterprise Grid in the future.
おわり
chatOps的にslackから設定ができるのはとっても便利ですね\(^o^)/