do_su_0805's blog

dairyquestions は typo です。

何に使っているかわからない github repository の webhook の正体を探る ( AWS CodeBuild / AWS CodePipeline 編)

題目の通りですが、なんか気づいたらリポジトリに webhook が設定されていたけど、「これなんの webhook だ?」ってなることありませんか?私はあります。

今回は、AWS CodeBuild / AWS CodePipeline 向けの Webhook が「どのプロジェクト」であったり「どのパイプライン」に紐づくものなのかという話です。

AWS CodePipeline 編

CodePipeline が生成する webhook については、aws codepipeline list-webhooks というずばりなコマンドが aws-cli にありますので活用しましょう。 ドキュメントはこちら list-webhooks — AWS CLI 2.1.33 Command Reference

後述の CodeBuild とは違い、CodePipeline 側の設定から github 側の hook 設定画面に飛べるわけではないですが、おそらくご期待の調査は可能かなと思います。

注意点としては、SecretToken など普通に出てくるので実行環境などには注意しましょう。

CodePipeline については、コンソールから調べる方法はわかりませんでした。何かあったら教えてください。

AWS CodeBuild 編

CodeBuild が生成する Webhook については、上手い感じに探せる方法はとりあえずは見つからなく、コンソールからプロジェクトの「ビルドの詳細」画面でちまちまみていくのが良さそうです。画像のような画面の「プライマリソースのウェブフックイベント」にある「ウェブフック」にあるリンクから github repository 側の hook 設定画面にいけますので、それで対応を取ってください。

(逆にいうと、当該リポジトリに対する webhook がなかったらアカウントが違うかそれとも放置されたかって感じです。最低限プロジェクトなかったら webhook 自体がエラーになって github 側からわかると思うのでその辺りはよしなに...)

f:id:do_su_0805:20210331211547p:plain
CodeBuild の設定画面

2021/03/31現在、aws-cli/2.1.32 の時点で aws-cli には webhook 関係が create/update/delete しかなく、webhook 中心の調査ができなさそうです。また、コンソールから開いても同様です。頑張ってください。*1

ドキュメントはこちらです。 codebuild — AWS CLI 2.1.33 Command Reference

*1: 私はがんばりました