伝説のどいつまの伝説~失敗編~

岩美に永住したい新米エンジニアのあれやこれやな話。

【1 人アドベントカレンダー 2020】第 14 日目

だいぶアドベントカレンダーの趣旨からは外れてしまいますが、今年も 1 人アドベントカレンダー実施することにしました。
25 日まで毎日更新頑張ります!
qiita.com

今日の項目内容

Azure Functions で Webhook を使用して GitHub イベントを監視する

  • GitHub イベントを使用して Azure 関数をトリガーする
  • 演習 - GitHub イベントを使用して Azure 関数をトリガーする
  • シークレットを使用して Webhook ペイロードをセキュリティで保護する
  • 演習 - シークレットを使用して Webhook ペイロードをセキュリティで保護する

学習内容まとめ

GitHub イベントを使用して Azure 関数をトリガーする

GitHub の Gollum イベントを使用して、Wiki の更新をリッスンできる。
このイベントが発生し、Azure Functions 関数がトリガーされると、ペイロードを解析して送信されたデータを取得し処理することができる。
Gollum イベントのペイロードには以下が含まれている。

pages : 更新されたページ

  • page_name : ページの名前
  • title : 現在のページタイトル
  • action : ページ上で実行されたアクション。作成 / 編集ができる
  • html_url : HTML wiki ページ。

repository : Wiki ページを含むリポジトリに関する情報

sender : Webhook を起動するイベントを発生させたユーザーに関する情報

演習 - GitHub イベントを使用して Azure 関数をトリガーする

サンドボックスを用いて演習を行う。

シークレットを使用して Webhook ペイロードをセキュリティで保護する

関数は、ペイロードを受信するように構成されると、構成したエンドポイントに送信されるペイロードをリッスンするようになる。
Webhook のシークレットを設定すると、ペイロード URL に送信された POST 要求が GitHub からのものであることを確認できる。
シークレットを設定すると、Webhook の POST 要求で x-hub-signature ヘッダーを受け取る。
シークレット トークンが設定されると、GitHub はそれを使用して各ペイロードのハッシュ署名を作成し、ヘッダーの各要求と共に x-hub-signature として渡される。

演習 - シークレットを使用して Webhook ペイロードをセキュリティで保護する

サンドボックスを用いて演習を行う。

本日の内容は以上です。