tweeeetyのぶろぐ的めも

アウトプットが少なかったダメな自分をアウトプット<br>\(^o^)/

【slack】GitHubとSlackを連携させる - 新しいgithubアプリでpull req通知を受け取るまで

はじめに

GithubとSlack連携は以前から使ってましたが
slackと連携するgithubの新しいアプリが出たらしいので使ってみた感じをメモ

2018/04現在、以前のgithub連携アプリは
Github Notifications (レガシー)
と呼ばれるようです

アジェンダ

  1. 連携させる
  2. 設定を変える
  3. /githubコマンドの使い方

1. 連携させる

https://slack.github.com/ にて連携設定を行います。
連携はwebのみで行えます。

webを開く

https://slack.github.com/ を開いてAdd to Slackを押します
f:id:tweeeety:20180425222358p:plain

アクセス権限を確認

アクセス権限を確認し「Continue」を押します
f:id:tweeeety:20180425222411p:plain

チャンネル選択

アプリがアクセスできるチャンネルを選択します。
とりあえずAll Public Channelsを選択しInstallを押して先に進みます。

2. 設定を変えるにて後述しますが、設定は後で変更できます。
f:id:tweeeety:20180425222423p:plain

Installと連携を確認

Installされるとアプリを開くダイアログが表示されます
f:id:tweeeety:20180425222619p:plain

Slack.appを開くとこんな画面で出迎えてくれます
f:id:tweeeety:20180425222723p:plain

2. 設定を変える

設定を変えるには以下から行います。
https://<チーム名>.slack.com/apps/manage

設定するアプリを探す

https://<チーム名>.slack.com/apps/manageを知らなくてもアプリからも開けます。

  • slackアプリのメニューからCustomize Slackを開きます f:id:tweeeety:20180425222741p:plain

  • Configure Appsを開きます f:id:tweeeety:20180425222806p:plain

  • InstallしたGitHubがあるので選択します f:id:tweeeety:20180425222820p:plain

設定を変える

Settingsを選択します f:id:tweeeety:20180425222841p:plain

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

補足

特定の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: 機能には、
↓に記載しているデフォルト通知設定 の機能を個別に指定します。

具体的にはissuespullscommentsなどです。

デフォルト通知設定

  • デフォルトで通知を行う機能
    • 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 と打ちます

f:id:tweeeety:20180425223256p:plain

Githubアカウントと連携する

SLack上にConnect GitHub accountというボタンが現れるのでおします f:id:tweeeety:20180425223305p:plain

Github上で連携する

Authorize githubを押します
f:id:tweeeety:20180425223321p:plain

押すとSlack上にはSuccess!と通知がきます f:id:tweeeety:20180425223346p:plain

Github上でリポジトリ設定をする

続けてGithub側で
この連携がアカウントの全てのリポジトリを対象とするか、特定のリポジトリとするかを選択します f:id:tweeeety:20180425223413p:plain

完了するとSubscribed to...という通知がきます f:id:tweeeety:20180425223425p:plain

pull requestを送ったsubscribeを確認

https://github.com/tweeeety/github-slack-new_app/pull/1
ためしにこのpull requestを送ってみた結果です。
f:id:tweeeety:20180425223447p:plain

特定のリポジトリの機能のsubscribeをする/やめる

すでに出てきましたが、以下のようなコマンドで機能に対してのsubscribeをする/やめるができます

  • issue(プルリク)に対してsubscribeする
  • issue(プルリク)に対してsubscribeやめる

補足

2018/04現在、EnterpriseSlack 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^)/