1.12. GitHub Interceptor でのプルリクエスト機能の設定
GitHub Interceptor を使用すると、GitHub Webhook を検証およびフィルタリングするロジックを作成できます。たとえば、Webhook の発信元を検証し、指定された基準に基づいて着信イベントをフィルター処理できます。GitHub Interceptor を使用してイベントデータをフィルタリングする場合、Interceptor がフィールドで受け入れることができるイベントタイプを指定できます。Red Hat OpenShift Pipelines では、GitHub Interceptor の以下の機能を使用できます。
- 変更されたファイルに基づいてプルリクエストイベントをフィルタリングする
- 設定された GitHub 所有者に基づいてプルリクエストを検証する
1.12.1. GitHub Interceptor を使用したプルリクエストのフィルタリング リンクのコピーリンクがクリップボードにコピーされました!
プッシュおよびプルイベント用に変更されたファイルに基づいて、GitHub イベントをフィルター処理できます。これは、Git リポジトリー内の関連する変更のみに対してパイプラインを実行するのに役立ちます。GitHub Interceptor は、変更されたすべてのファイルのコンマ区切りリストを追加し、CEL Interceptor を使用して、変更されたファイルに基づいて着信イベントをフィルタリングします。変更されたファイルのリストは、最上位の extensions フィールドのイベントペイロードの changed_files がプロパティーに追加されます。
前提条件
- Red Hat OpenShift Pipelines Operator がインストールされている。
手順
以下のいずれかの手順を実行します。
パブリック GitHub リポジトリーの場合、以下に示す YAML 設定ファイルで
addChangedFilesパラメーターの値をtrueに設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow プライベート GitHub リポジトリーの場合、
addChangedFilesパラメーターの値をtrueに設定し、以下に示す YAML 設定ファイルでアクセストークンの詳細、secretName、およびsecretKeyを指定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- 設定ファイルを作成します。
1.12.2. GitHub Interceptors を使用したプルリクエストの検証 リンクのコピーリンクがクリップボードにコピーされました!
GitHub Interceptor を使用して、リポジトリー用に設定された GitHub 所有者に基づいてプルリクエストの処理を検証できます。この検証は、PipelineRun または TaskRun オブジェクトの不要な実行を防ぐのに役立ちます。GitHub Interceptor は、ユーザー名が所有者としてリストされている場合、または設定可能なコメントがリポジトリーの所有者によって発行された場合にのみ、プルリクエストを処理します。たとえば、所有者としてプルリクエストで /ok-to-test にコメントすると、PipelineRun または TaskRun がトリガーされます。
所有者は、リポジトリーのルートにある OWNERS ファイルで設定されます。
前提条件
- Red Hat OpenShift Pipelines Operator がインストールされている。
手順
- シークレットの文字列値を作成します。
- その値で GitHub webhook を設定します。
-
シークレット値を含む
secretRefという名前の Kubernetes シークレットを作成します。 - Kubernetes シークレットを GitHub Interceptor への参照として渡します。
-
ownersファイルを作成し、承認者のリストをapproversセクションに追加します。 以下のいずれかの手順を実行します。
パブリック GitHub リポジトリーの場合、以下に示す YAML 設定ファイルで
githubOwnersパラメーターの値をtrueに設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow プライベート GitHub リポジトリーの場合、
githubOwnersパラメーターの値をtrueに設定し、以下に示す YAML 設定ファイルでアクセストークンの詳細、secretName、およびsecretKeyを指定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記checkTypeパラメーターは、認証が必要な GitHub 所有者を指定するために使用されます。その値をorgMembers、repoMembers、またはallに設定できます。
- 設定ファイルを作成します。