GitHub と Slack を連携させる方法

## はじめに
GitHub と Slack が連携すると、プルリク等の通知を Slack の特定のチャンネルに流すことができる


## Slack と GitHub の連携手順

**1.  [slack.github.com](https://slack.github.com/) にアクセスし、「Add to Slack」をクリックします**

<img width="1000" alt="Slack と GitHub の連携01.jpg (129.1 kB)" src="https://img.esa.io/uploads/production/attachments/17751/2021/04/15/103921/76081f33-2aa0-4754-9e3a-76522e14a98d.jpg">


**2. 対象ワークスペースを選択し、「続行する」をクリック**


<img width="1000" alt="Slack と GitHub の連携02.jpg (88.1 kB)" src="https://img.esa.io/uploads/production/attachments/17751/2021/04/15/103921/f26b265e-53cf-4104-a471-809c0876fe58.jpg">


**3. 「特定のチェンネル」を選択し、「インストール」をクリック**

<img width="1000" alt="Slack と GitHub の連携03.png (99.8 kB)" src="https://img.esa.io/uploads/production/attachments/17751/2021/04/15/103921/c8293732-b027-46bd-aacf-4ec32c94ee8f.png">


**4. Slack にメッセージが届く**
GitHub アプリから設定方法と 「/github」のスラッシュコマンドの使い方に関するダイレクトメッセージが届く

<img width="1000" alt="Slack と GitHub の連携04.png (851.3 kB)" src="https://img.esa.io/uploads/production/attachments/17751/2021/04/15/103921/96e85b4f-bbde-415c-90c7-44022d401322.png">


**5. コメント記入欄に以下のコマンドを記載し、送信する**

```
/github signin
```

**6. 「Connect GitHub account」をクリックする**

<img width="1000" alt="Slack と GitHub の連携05.png (62.5 kB)" src="https://img.esa.io/uploads/production/attachments/17751/2021/04/15/103921/153f5ff2-13de-45b4-aeb3-cd46bddc6a7d.png">


**7. 遷移先の「Connect GitHub account」をクリックする**

<img width="1000" alt="Slack と GitHub の連携06.png (312.1 kB)" src="https://img.esa.io/uploads/production/attachments/17751/2021/04/15/103921/425f1a0f-5b70-41ea-9650-e98bbc58c195.png">


**8. GitHub アカウントと Slack ワークスペースの接続連携が完了する**

<img width="1000" alt="Slack と GitHub の連携07.png (65.0 kB)" src="https://img.esa.io/uploads/production/attachments/17751/2021/04/15/103921/4503a1ee-85cf-4db3-b12d-47d74de3b9b2.png">


**9. GitHub リポジトリの通知を流したいチャンネルに移動し、コメント欄に以下のコマンドを記載し、送信する**
※リポジトリの `owner` が設定する必要がある 

```
/github subscribe owner/repo
```

- `owner`：オーナー名
- `repo`：リポジトリ名




**10. 「Install GitHub App」をクリックし、チャンネルにリポジトリをインストールする**

<img width="1000" alt="Slack と GitHub の連携08.png (69.4 kB)" src="https://img.esa.io/uploads/production/attachments/17751/2021/04/15/103921/e95a8103-7769-46ac-9444-76e6dc678544.png">


**11. 「Only select repositories」にチェックし、指定のリポジトリを選択する**

<img width="1000" alt="Slack と GitHub の連携09.png (183.6 kB)" src="https://img.esa.io/uploads/production/attachments/17751/2021/04/15/103921/3ba9d8ea-a3f9-4304-a335-ced3ecead326.png">


**12. リポジトリをインストール出来たら、再度コメント欄に以下のコマンドを記載し、送信する**

```
/github subscribe owner/repo
```

**13. 指定のリポジトリを登録できる**

<img width="1000" alt="Slack と GitHub の連携10.png (38.5 kB)" src="https://img.esa.io/uploads/production/attachments/17751/2021/04/15/103921/ef53d279-21b4-4d69-97dc-ecae9a0591b3.png">


## 通知のカスタマイズ

### デフォルトで通知される機能
* issues (イシュー)
* pulls (プル)
* statuses (ステータス)
* コミット
* deployments (デプロイメント)
* public (パブリック)

### 以下の機能はデフォルトでは通知されない

* reviews (レビュー)
* comments (コメント)
* branches (ブランチ)
* commits:all (すべてにコミット)

### 通知機能の追加

通知する機能の追加は、コメント欄に以下のコマンドを記載し、送信する

```
/github subscribe owner/repo [機能]
```

`reviews` を追加したい場合は

```
/github subscribe owner/repo reviews
```

<img width="1000" alt="Slack と GitHub の連携11.png (90.7 kB)" src="https://img.esa.io/uploads/production/attachments/17751/2021/04/15/103921/866da12f-af24-4221-8953-13d3e7d09c62.png">


### 通知機能の削除

通知する機能の削除は、コメント欄に以下のコマンドを記載し、送信する

```
/github unsubscribe owner/repo [機能]
```

`reviews` を削除したい場合は

```
/github unsubscribe owner/repo reviews
```

<img width="1000" alt="Slack と GitHub の連携12.png (91.6 kB)" src="https://img.esa.io/uploads/production/attachments/17751/2021/04/15/103921/cd2fae94-3a90-4d0e-8d91-6143f12dbd4d.png">

## さいごに
GitHub と Slack が連携出来たので、こまめに GitHub に確認しにいかなくてすみますね。
これで作業効率上がるはず…

## 参考資料

[GitHub と Slack を連携させる](https://slack.com/intl/ja-jp/help/articles/232289568-GitHub-%E3%81%A8-Slack-%E3%82%92%E9%80%A3%E6%90%BA%E3%81%95%E3%81%9B%E3%82%8B#slack-%E3%81%A7-github-%E3%82%92%E4%BD%BF%E3%81%86-1)