【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 ペイロードをセキュリティで保護する
サンドボックスを用いて演習を行う。
本日の内容は以上です。