0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

HCP Terraform の VCS Provider: GitHub.com (Custom) における Webhook と OAuth 認証の動作確認

Posted at

はじめに

HCP Terraform の VCS Provider: GitHub.com (Custom) を使用する際、GitHub リポジトリとの連携において Webhook と OAuth 認証がどのように機能するのかを検証しました。
本記事では、正常動作時の挙動と、OAuth トークンが無効化された場合の動作について解説します。

環境

  • HCP Terraform
  • GitHub リポジトリ

VCS Provider: GitHub.com (Custom) と Webhook の設定

設定で GitHub.com (Custom) の VCS Provider を作成し、Workspace に接続すると、GitHub リポジトリの Webhooks に自動的に設定が追加されます。

Webhook設定

この Webhook により、GitHub 上のイベント(PR 作成など)が HCP Terraform に通知される仕組みになっています。

正常動作時の挙動

PR を作成すると、以下の流れで処理が実行されます。

1. Webhook による通知

GitHub の Webhook 設定画面の「Recent Deliveries」を確認すると、HCP Terraform への通信記録が記録されています。

Webhook履歴

上記の例では、10/21 21:43:11 に HCP Terraform に対して通知が送信されました。

2. HCP Terraform での Plan 実行

HCP Terraform 側の Run 履歴を確認すると、Webhook 通知を受けた直後に Plan が実行されていることが分かります。

Run履歴

この例では、10/21 21:43:17(通知の約6秒後)に Plan が実行されました。

VCS Provider 設定の OAuth トークン無効化時の動作検証

VCS Provider の設定に使用した OAuth 認証が無効化された場合にどのような動作になるか検証しました。

実験内容

  1. VCS Provider: GitHub.com (Custom) 用の OAuth App の Client Secret を再作成
  2. 「Revoke all user tokens」を実行してトークンを無効化
  3. PR を作成して動作を確認

結果

PR 作成後、以下の現象が確認されました。

Recent Deliveries

HCP Terraform側

  • GitHub の「Recent Deliveries」には通信履歴が記録される(Webhook 自体は成功)
  • HCP Terraform 上では Run が実行されない

原因の考察

この動作から、以下の処理フローが推測されます。

  1. GitHub → HCP Terraform: Webhook による通知は成功
  2. HCP Terraform → GitHub: コードの取得時に認証エラーが発生

つまり、HCP Terraform が Webhook 通知を受け取ることには成功しているものの、その後 GitHub からコードを取得する際に OAuth トークンが無効であるため、認証に失敗して Run が実行されないという動作になっていると考えられます。

まとめ

  • VCS Provider: GitHub.com (Custom) では Webhook と OAuth 認証の両方が正常に機能している必要がある
  • Webhook の通信が成功していても、OAuth トークンが無効だとコードの取得に失敗する
  • OAuth App の設定変更時は、HCP Terraform 側の VCS Provider 設定も更新が必要
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?