Microsoft TeamsでもGithubのレビュー依頼に気付きたい!
これは何
Github上でチーム開発をしていると、Pull Requestのレビュー機能を使ってコードレビューをすることが多いです。
その際reviewer指定されたのを見落としたり、request-changeで返しているのに気付いてくれなかったり、という待ち時間が発生します。
毎回slackやteamsで手打ちメッセージで通知を飛ばすのも手ですが、GithubActionsで自動化したくなりました。
slack向けはいっぱいあるのですがMicrosoft Teams向けはシンプルなものが無かったので作ってました。
日本語のreadmeはこちら
やや品の無い紹介
30分で導入出来て、通知に気付かない待ち時間をそれ以上に削減できると思うので、だれでも気軽に提案できるお仕事の"改善提案"のネタとして便利かもしれません。
単一のymlファイルにGithubのアカウント名とTeamsアカウントのメールアドレス をペアでベタ書きする、というやや素朴な作り方をしているのは、特に導入の閾値を下げたいという意図があったためです。
ymlファイル一個をそのままダウンロードして、ユーザ名とかを書き換えてあなたのリポジトリにおいてください、というのはセキュリティ意識が高い(?)会社でも許してくれそうな気配がありますよね。
導入のもう少し詳しい解説
Teams Incoming WebhookのURL取得
この辺を参考にしてください
取得したTeams Incoming Webhook URLをリポジトリのActions Secretsに追加してください。
おもしろかった点
MSの契約プランや組織ごとのルールによってTeams投稿に制約がある
Incoming Webhookが使えないTeamやチャンネルが存在する、というのにハマりました。
まさかプランレベルの制約だけじゃなくて組織によってはこういうBOTを禁止していることがあるとは…とびっくりしました。
しかもOutgoing Webhookだけ禁止な組織もあるようで、Microsoft Teamsの知見は断片化しやすそうですね。
Adaptive Card方式での自動投稿への対応
様々な事情により、Microsoft TeamsのシンプルなIncoming Webhookと単純なメッセージ送信は今後使えなくなります。具体的に言うとAdaptive Card形式のjsonを組み立てる必要があります。
ウーンって言いながら組み立てました。
アイコンカスタマイズが出来ない
これも様々な事情により、新方式ではこういったBOTのアイコンカスタマイズとか匿名化が出来なくなっていました。 //退職したアカウントに紐付いたBOTは権限が切れて死亡しますね…
最初はカワイイアイコンをセットしようかなと思ったのですが断念しました。
GithubアカウントのメールアドレスとTeamsのメールアドレスが異なる場合がある
完全に見落してました。会社からTeamsのメールアドレスは発行されたけど個人のGithubアカウントを使っている、というユースケースがあります。
仕方が無いので素朴にymlファイルの中に手書きのマッピングを作りました。
(Teamsの通知自体は<at>someone@example.com</at> みたいに書くことで対応できて良かった…)
Discussion