簡単にできるはずが(実際、簡単です)、もの知らぬせいで手間取ったため、せっかくなので残しておきます。
誰かのお役に立てれば幸いです。
-
【追記(2020.09.15)】GitHubとMicrosoft Teamsとの統合アプリ「GitHub (Preview)」がパブリックベータで登場しています( 2020.9.10 の The GitHub Blog )。
「公式」感もありますし(アプリの作成者が「Microsoft Corporation」)、今後はこちらが主流になっていくかもしれません。
やりたいこと
GitHubリポジトリのPushやIssueやPull Requestの通知を、Microsoft Teams(以降 MS Teams)のチャネルに出したい。
出す内容には拘らないので、とにかく手間かけずに。
方法
通知を出したいMS Teamsチャネルに、コネクタを追加します。
それらしいコネクタは「GitHub Enterprise」「GitHub」の2つありますが、どちらでも可能です。
※設定手順については、後述
「GitHub Enterprise」コネクタ、「GitHub」コネクタ、どちらを使うか?
シンプルに通知機能のみ欲しい場合であれば、設定のシンプルさ・把握のしやすさから「GitHub Enterprise」コネクタから始めるのが良さそうです。
-
「GitHub Enterprise」コネクタ
- 機能として「通知」に特化しており、リポジトリ側のWebhookを手動で設定する手間はあるが、シンプルで把握しやすい
- GitHub Enterpriseではないリポジトリにおいても、動作する
-
「GitHub」コネクタ
- 「GitHub」アプリの一部であり、「GitHub」アプリには通知以外のリッチな機能(Issues/Pull Requestsのタブ機能や、Bot機能など)が存在する
- 「GitHub」アプリについては、こちらが参考になります: https://techcommunity.microsoft.com/t5/microsoft-teams-blog/github-code-better-together-with-github-and-microsoft-teams/ba-p/659444
- 通知内容に、[Add a comment]、[Close]といったチャットからの操作が可能となっている
- (ウィザードで簡単にはできますが)、その機能用のOAuth設定が必要となる
- MS Teams側での設定を進めるだけで完結する簡易さはあるものの、OAuthアプリ連携について慣れていないと後々苦労する、、かもしれません
- GitHub側からすると、アカウント(もしくはOrganization)単位のOAuthアプリが登録されます
- さらに「GitHub」アプリの他の機能を利用する際には、別なOAuthアプリが登録されます
- この辺り(OAuthによる連携)に慣れていないと、把握・管理が難しそう ※もし、間違い等ありましたらコメント頂けますと助かります!!
- GitHub側からすると、アカウント(もしくはOrganization)単位のOAuthアプリが登録されます
- 「GitHub」アプリの一部であり、「GitHub」アプリには通知以外のリッチな機能(Issues/Pull Requestsのタブ機能や、Bot機能など)が存在する
設定手順
方法1. 「GitHub Enterprise」コネクタを利用
通知したいチャネルで、「GitHub Enterprise」のコネクタを登録し、GitHubリポジトリ側でWebhookを登録します。
以上で、チャネルに通知が来るようになります。
方法2. 「GitHub」コネクタを利用
通知したいチャネルで、「GitHub」のコネクタを登録します。
以上で、チャネルに通知が来るようになります。
まとめ
- MS Teamsの「GitHub Enterprise」コネクタ、もしくは「GitHub」コネクタを使って、簡単にできます。
- シンプルに通知機能だけ欲しい場合には、「GitHub Enterprise」コネクタから始めると良さそうです。
余談
- 通知のタイミングや内容を細かにカスタマイズしたい場合、GitHub Actionsから、MS TeamsのIncomming Webhookアプリ(コネクタ)を用いる方法があります。
- 既にいくつかのActionが公開されており、用途に合致したものがあれば、導入するのも良いでしょう。