Slack × GitHub インテグレーションを使って、Github のイベントを通知しよう！【簡単設定】

# 概要
Slack の GitHub インテグレーションを使うことで、Pull Request や issue のオープンや更新などのイベントを通知することができるようになりました。
PR に Slack からコメントすることも可能です。

https://github.blog/changelog/2022-12-06-github-actions-workflow-notifications-in-slack-and-microsoft-teams/

`Slack`に`GitHubインテグレーション`を導入をすることで、これまでサードパーティの Action を組み込んで実現していた部分を代替できます。

（Slack だけでなく、Microsoft Teams でも同様の設定ができます）

# Github インテグレーションの導入
「アプリを追加する」からGithubを選択します。

個人の無料アカウントでも試すことができます。
「アプリを追加する」が表示されていない場合は、
「：その他」から、「App」を押下して、Githubを検索すればOKです。
![スクリーンショット 2022-12-14 10.40.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/916052/6a385985-487c-13f7-1a0c-41eb35f0731a.png)


Slack に追加します。
![スクリーンショット 2022-12-14 10.40.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/916052/59156fd1-5372-fb57-06db-036ccb377694.png)

権限の設定をしていきます。
![スクリーンショット 2022-12-14 10.42.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/916052/d9ad15eb-f299-243b-96f3-0dd1e9749f31.png)

Github からメッセージが届きます。
`connect Github account` を押下して、Github の認証をしてください。
![スクリーンショット 2022-12-14 10.46.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/916052/14beebaf-c73a-aa7c-27e6-92724b70d065.png)

認証に成功すると、以下のような画面が表示されます。
![スクリーンショット 2022-12-14 10.49.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/916052/81c5a7f7-8862-7c84-8d63-58d25603532c.png)

`Verification Code` が表示されるので、コピーします。
Slack に戻り、Github のダイレクトメッセージを開きます。
`enter code` を押下して、先ほどの`Verification Code`を貼り付けましょう。
![スクリーンショット 2022-12-14 10.51.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/916052/6025ddb2-d1f8-e221-74e3-a23c5187d106.png)

↓のメッセージが来れば成功です！
![スクリーンショット 2022-12-14 10.53.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/916052/c693c2e6-c3d1-ae3d-2364-f88e68b8611e.png)

# サブスクライブ（通知）の設定
Slack のスラッシュコマンドを使用して通知を設定していきます。
Slack のスラッシュコマンドについては、以下を参考にしてください。

https://slack.com/intl/ja-jp/help/articles/201259356-Slack-%E3%81%AE%E3%82%B9%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89

`/github subscribe <owner>/<repo>`
上記をGithub にメッセージ送信することでサブスクライブの設定ができます。
![スクリーンショット 2022-12-14 11.03.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/916052/35f918ad-cecd-940a-39c2-4332b349e4f3.png)

これでデフォルトの設定である`issues`, `pulls`, `commits`, `releases`, `deployments`の サブスクライブが有効になりました。

# 通知をカスタマイズする

https://github.com/integrations/slack/blob/main/README.md#customize-your-notifications:~:text=%E3%81%97%E3%81%BE%E3%81%99%E3%80%82comments-,%E9%80%9A%E7%9F%A5%E3%82%92%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA%E3%81%99%E3%82%8B,-Slack%20%E3%83%81%E3%83%A3%E3%83%8D%E3%83%AB%E3%81%AB

```
# 通知の追加
/github subscribe owner/repo [feature]

# 通知の解除
/github unsubscribe owner/repo [feature]
```

# GitHub Actions ワークフローのイベントを通知するようカスタマイズ
GitHub Actionsのワークフロー実行通知は、「ワークフロー」機能を使います。

```
/github subscribe owner/repo workflows
```
上記のようにサブスクライブを設定することで、通知されるようになります。

要件に基づいて通知をフィルタリングすることができます。
```
/github subscribe owner/repo workflows:{name:"your workflow name" event:"workflow event" branch:"branch name" actor:"actor name"}
```
詳細は以下を参照して下さい。

https://github.com/integrations/slack/blob/main/README.md#customize-your-notifications:~:text=%E3%82%82%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82-,%E3%83%AF%E3%83%BC%E3%82%AF%E3%83%95%E3%83%AD%E3%83%BC%E9%80%9A%E7%9F%A5%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E3%83%BC,-%E3%81%99%E3%81%B9%E3%81%A6%E3%81%AE%E3%83%AF%E3%83%BC%E3%82%AF

通知された時のインターフェイスは↓のようになります。
![スクリーンショット 2022-12-21 16.25.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/916052/f69d9d57-c6a7-df5d-af58-f5383706bfe6.png)
（画像は以下を使いました。）
https://github.com/integrations/slack/blob/main/README.md#customize-your-notifications:~:text=%2C%20is%20reserved-,Actions%20workflow%20notifications,-You%20can%20subscribe

# 感想
`Github` と `Slack` を連携して、`Slack` の`スラッシュコマンド`を入力するだけで、簡単に設定することができました！

少ない工数で導入できるので、試してみてはどうでしょうか？