GitHub と Slack の連携 には次の設定が必要:
- GitHub 側の設定
- GitHub Organization (仮に your-org) 単位で Slack アプリがインストールされていること
- Slack アプリが該当リポジトリ (仮に your-repo) へのアクセス権を付与されていること
- アプリ一覧配下の Slack アプリ設定画面: https://github.com/organizations/your-org/settings/installations/nnnnnn
- Slack の GitHub アプリに OAuth 認証を与える GitHub アカウント (仮に @gh-account) が該当リポジトリにアクセス権 (read だけでも良い) を持つ
- リポジトリの Collaborators 確認画面: https://github.com/your-org/your-repo/settings/collaboration
- Slack アプリに付与する権限を最小にしたいのであれば専用アカウントを作って Collaborators に Read 権限のみで加える
- Slack 側の設定
- Slack ワークスペース (仮に your-space) のに GitHub アプリ をインストールしていること
- Slack App ディレクトリで確認: https://your-space.slack.com/apps/manage
- 通知を受けるチャンネルに GitHub アプリが参加していること
/github subscribe your-org/your-repo
すると`/github` を使用するためには、@GitHub をこの会話に追加してください。
などと参加させるボタンを表示してくれる
- GitHub アプリが GiiHub アカウント (仮に @ghuser) にサインインしていること
/github signin
で表示されるConnect GitHub account
リンクを @ghuser にログインしている状態で開いて認証する- 認証が出来たら
Success! @slackuser is now connected to @ghuser
などと表示される
- Slack ワークスペース (仮に your-space) のに GitHub アプリ をインストールしていること
- 連携方法
- Slack チャンネルでリポジトリを購読
/github subscribe your-org/your-repo
- 成功したら
Subscribed #github to your-org/your-repo
と表示される
- 成功したら
- デフォルトオフの項目も購読させる:
/github subscribe webdino/xxxxx reviews comments branches commits:all
- 購読対象の設定についてはこちら参照: https://github.com/integrations/slack#configuration
- Slack チャンネルでリポジトリを購読
- 注意
- Slack チャンネルで
/github subscribe your-org/your-repo
が失敗するのは以下のいずれか- Slack 側で @ghuser の認証が済んでいない
Connec GitHub account
ボタンが出るので @ghuser でログインしたブラウザでリンクを開いて OAuth 認証を付与
- GitHub 側で Slack アプリがインストールされていない
Either the app isn't installed on your repository or the repository does not exist. Install it to proceed. _Note: You need to be an organization owner to install the app (or ask one to install it for you)._
などのメッセージとInstall GitHub App
ボタンのが表示されたらリポジトリの Organization Owner 権限を持つ GitHub ユーザでリンクを開いてインストールする
- GitHub 側で Slack アプリに該当リポジトリへのアクセスが許可されていない
Connect GitHub account
- GitHub の Slack アプリがアクセスできるリポジトリリストに追加する。Github の Organization Owner でなくとも該当リポジトリの Admin 権限を持っている @ghuser であれば対象リポジトリリストに追加が可能であるはず。アクセス対象に一度追加すれば @ghuser のリポジトリのアクセス権限は Read に落としても問題ない
- GitHub 側で該当リポジトリに @ghuser がアクセス権を持っていない
- Slack の GitHub アプリが保持している OAuth 認証のアカウント (@ghuser) を Collaborators に追加する
- Slack 側で @ghuser の認証が済んでいない
- Slack チャンネルで