12.7. カスタム Git トリガーの設定
カスタム Git トリガー は、Git サーバーをビルドトリガーとして機能させるための一般的な方法です。カスタム Git トリガーは SSH 鍵と webhook エンドポイントのみに依存します。それ以外の実装はユーザーに委ねられています。
12.7.1. トリガーの作成
カスタム Git トリガーの作成は、他のトリガーの作成と似ていますが、次の点が違います。
- Red Hat Quay は、トリガーで使用する適切なロボットアカウントを自動的に検出することはできません。これは、作成時に手動で行う必要があります。
- トリガーの作成後に追加の手順を実施する必要があります。この手順は、次のセクションで詳しく説明します。
12.7.2. カスタムトリガー作成の設定
カスタム Git トリガーを作成する場合は、次の 2 つの追加手順が必要です。
- トリガーの作成時に生成された SSH 公開鍵への読み取りアクセスを付与する必要があります。
- ビルドをトリガーする Red Hat Quay のエンドポイントに POST する webhook をセットアップする必要があります。
鍵と URL は、Settings または 歯車 アイコンから View Credentials を選択することで利用できます。
リポジトリーからのタグの表示および変更
12.7.2.1. SSH 公開鍵へのアクセス
Git サーバーの設定に応じて、Red Hat Quay がカスタム Git トリガー用に生成する SSH 公開鍵をインストールする方法はさまざまです。
たとえば、Git のドキュメント では、小規模なサーバーのセットアップを説明しています。この場合は、鍵を $HOME/.ssh/authorize_keys
に追加すると、ビルダーがリポジトリーをクローンするためのアクセス権が付与されます。公式にサポートされていない git リポジトリー管理ソフトウェアの場合は、通常、Deploy Keys というラベルが付いた、鍵を入力する場所があります。
12.7.2.2. Webhook
ビルドを自動的にトリガーするには、次の形式を使用して .json
ペイロードを webhook URL に POST
する必要があります。
これはサーバーの設定に応じてさまざまな方法で行うことができますが、ほとんどの場合は post-receive
Git フック で行うことができます。
このリクエストが有効であるためには、application/json
を含む Content-Type
ヘッダーが必要です。
webhook の例
{ "commit": "1c002dd", // required "ref": "refs/heads/master", // required "default_branch": "master", // required "commit_info": { // optional "url": "gitsoftware.com/repository/commits/1234567", // required "message": "initial commit", // required "date": "timestamp", // required "author": { // optional "username": "user", // required "avatar_url": "gravatar.com/user.png", // required "url": "gitsoftware.com/users/user" // required }, "committer": { // optional "username": "user", // required "avatar_url": "gravatar.com/user.png", // required "url": "gitsoftware.com/users/user" // required } } }