Amazon CodeCommit の更新内容を Hangouts Chat に通知してみた

はじめに

現在、私が所属しているチームでは CodeCommit でコードを管理しているのですが、更新した際にチームメンバーに声を掛ける運用だと後でと思って忘れそうなので更新内容を自動で Hangouts Chat で自動通知されるように Lambda で実装しました。
CodeCommit のリポジトリが更新された際に通知先を設定できるため、CodeCommit → SNS → Lambda の流れでコードを実行してます。
CodeCommit の設定は [ リポジトリ ] → [ 設定 ] → [ 通知 ] の場所で行います。
f:id:rioner2525:20181107155641p:plain
あとは Lambda のトリガーが設定した SNS となるように設定すればOKです。

コード

Python 3.6 で書きました。コードの置き場所は以下。
CodeCommitToChat/lambda_function.py at master · rioner/CodeCommitToChat · GitHub
CodeCommit から投げられる event['Records'][0]['Sns']['Message'] の内容についてプルリクエスト時の例は以下。

"A pull request event occurred in the following AWS CodeCommit  
repository: レポジトリ名. arn:aws:iam::アカウント番号:user/ユーザ名  
updated the following PullRequest 更新番号. The pull request was updated  
with one or more commits to the source branch: refs/heads/ブランチ名.   
For more information, go to the AWS CodeCommit console  
https://ap-northeast-1.console.aws.amazon.com/codecommit/home?region=ap-northeast-1#/repository/レポジトリ名/pull-request/更新番号"

私はこの内容を Lambda で切り貼りして必要な情報をチャットに投げてます。

結果

Hangouts Chat での見た目は以下のようになりました。
f:id:rioner2525:20181107162116p:plain (名前も取れたのでチャットに投げるときに追加してました。)
チャット内で CodeCommit に関する指摘とかもまとまるようになったので満足です。
Hangouts Chat に限らず、メールや Slack などにも実装できると思うので検討してみてはいかがでしょうか(`・ω・´)