ツナワタリマイライフ

日常ネタから技術ネタ、音楽ネタまで何でも書きます。

Pull RequestがMergeされたらBranchを削除するGitHub AppをAWS API GagewayとLambdaで作った

はじめに

作った。

github.com

appのinstallはこっち

github.com

めっちゃ単純な図。最近噂のdraw.ioで書きました。良い。

f:id:take_she12:20181001231501p:plain

あと一緒に作った@kamontiaがQiitaに記事書いてくれました。

qiita.com

めんどくさいの認証まわりぐらいだと思うので、その辺はこの記事読むと良いと思います。

きっかけ

なかなかあのmerge後のbranchを消すボタンを@kamontiaが押してくれないのでつくった。

やりかた

GitHub app自体作ったことがなかったので、最初は公式のサンプルをやった。

developer.github.com

これでsinatraのアプリを使ってlocal環境を使って試せる。GitHubからどういうリクエストが飛んでいるかがわかる。

AWS

休日に日曜大工でオラっとやったらできてしまった感じ。何気にAPI GatewayとLambdaを自分で触るのははじめてだったので良い機会になりました。

GitHub Appの方でどのEvent契機に動くかと、CallBack URLを設定できるので、PullRequest Eventに対して、LambdaのAPIを入れると、PRに何か起きるたびにPOST / のリクエストが飛ぶ。

Lambdaのlogicも至極シンプルで、PullRequestEventがclosed or mergedの時に、対象リポジトリのbranchを削除する。それだけ。

嬉しいの?

個人的に別に押せばいいじゃんって思うのでこれにありがたみを感じるのは@kamontiaぐらいだと思うんだけど、どうしても自分の運用するリポジトリでなかなかbranchが削除されずリモートにbranchが溜まってしまう人は導入してみてもいいかもしれません。

今後

大した設定内容じゃないけど、一応Terraform管理はしておきたい。

おわりに

おわり。