TeamCity Webhook
Webhook は、特定のイベントが発生したときにアプリまたはサービスから送信される自動化された HTTP ベースのメッセージです。Webhook を使用すると、2 つの API 間のイベント駆動型通信をセットアップできます。
TeamCity は、新しいビルドの開始時、エージェントの登録解除時、サーバーによるリモートリポジトリからの変更の収集時などに、ターゲット URL にペイロードを送信できます。
Webhook を有効にする
管理 | <ルートプロジェクト> | パラメーターに移動します。
「新規パラメーターを追加」をクリックして 2 つの構成パラメーターを作成します。

teamcity.internal.webhooks.enable— Webhook を有効にするかどうかを指定します。このパラメーターをtrueに設定します。teamcity.internal.webhooks.url— TeamCity が (HTTP POST リクエスト経由で) ペイロードを送信する先の URL を格納します。テストの目的で、Webhook.site(英語) やビーセプター(英語)などのリアルタイム Webhook テストサービスによって提供される URL を指定できます。
POST リクエストの送信をトリガーするイベントのリストを指定します。これを行うには、イベントを追跡する必要がある TeamCity プロジェクトの
teamcity.internal.webhooks.events構成パラメーターを作成します。以下のリストは、最も頻繁に使用される
teamcity.internal.webhooks.eventsパラメーター値を列挙したものです。使用可能なイベントの完全なリストについては、Open API Javadoc(英語) を参照してください。複数の値の区切りとしてセミコロン (;) を使用します。- AGENT_REGISTRED
追跡されたイベント : 新しいビルドエージェントが TeamCity サーバーに接続し、認証トークンを取得しました。
親プロジェクト : <ルートプロジェクト> のみ
REST API ペイロードスキーマ : #/ 定義 / エージェント- AGENT_UNREGISTERED
追跡されたイベント : ビルドエージェントが停止し、サーバーから切断されました。これは、エージェントソフトウェアのアップグレードが必要な場合、またはエージェントサービスを手動で停止した場合に発生することがあります。
親プロジェクト : <ルートプロジェクト> のみ
REST API ペイロードスキーマ : #/ 定義 / エージェント- AGENT_REMOVED
追跡されたイベント : ビルドエージェントが削除されました。
親プロジェクト : <ルートプロジェクト> のみ
REST API ペイロードスキーマ : #/ 定義 / エージェント- BUILD_STARTED
追跡されたイベント : ビルドが開始されました。
BUILD_TYPE_ADDED_TO_QUEUEイベントに従います。
親プロジェクト : あらゆるプロジェクト。
REST API ペイロードスキーマ : #/ 定義 / ビルド- BUILD_FINISHED
追跡されたイベント : ビルドは、失敗したか成功したかに関係なく終了します。
親プロジェクト : あらゆるプロジェクト。
REST API ペイロードスキーマ : #/ 定義 / ビルド- BUILD_INTERRUPTED
追跡されたイベント : 実行中のビルドがキャンセルされました。キャンセルされたビルドでは
BUILD_FINISHEDイベントはトリガーされません。
親プロジェクト : あらゆるプロジェクト。
REST API ペイロードスキーマ : #/ 定義 / ビルド- CHANGES_LOADED
追跡されたイベント : TeamCity はリモートリポジトリから変更を正常に収集し (または新しい変更が存在しないことを確認し)、ビルドステップを実行する準備が整いました。ビルドによっては、
BUILD_STARTEDイベントの前または後に発生する場合があります。
親プロジェクト : あらゆるプロジェクト。
REST API ペイロードスキーマ : #/ 定義 / ビルド- BUILD_TYPE_ADDED_TO_QUEUE
追跡されたイベント : ビルドが開始され、ビルドキューに配置されました。
親プロジェクト : あらゆるプロジェクト。
REST API ペイロードスキーマ : #/ 定義 / ビルド- BUILD_PROBLEMS_CHANGED
追跡されたイベント : ビルドの問題のリストが変更されました (同じビルド構成の前回の実行と比較して)。
親プロジェクト : あらゆるプロジェクト。
REST API ペイロードスキーマ : #/ 定義 / ビルド
追跡イベントをトリガーするアクションを実行し (たとえば、
BUILD_TYPE_ADDED_TO_QUEUE>CHANGES_LOADED>BUILD_STARTED>BUILD_FINISHEDチェーンをトリガーする新しいビルドを実行します)、ターゲット URL が対応する POST リクエストを確実に受信するようにします。
リクエストペイロードのカスタマイズ
デフォルトでは、Webhook は完全なエージェントまたはビルドペイロードを含むリクエストを送信します。リクエストペイロードに存在する必要があるフィールドを手動で指定できます。これを行うには、値として fields=field1,field2,object(field3) を指定して teamcity.internal.webhooks.{event_name}.fields 構成パラメーターを追加します。
例: teamcity.internal.webhooks.BUILD_INTERRUPTED.fields = fields=buildTypeId,number,canceledInfo(user(username)) パラメーターには、キャンセルされたビルドの番号、対応するビルド構成の ID、およびこのビルドをキャンセルした人のユーザー名のみが表示されます。
認可設定
受信者 API が POST リクエストの匿名送信を許可しておらず、承認が必要な場合は、次の追加パラメーターを指定します。
teamcity.internal.webhooks.username— 「php-auth-user」ヘッダーに書き込まれるユーザー名。teamcity.internal.webhooks.password— 「php-auth-pw」ヘッダーに書き込まれるパスワード。この値を安全に保存し、TeamCity UI および REST リクエストから非表示にするには、パラメーター設定ダイアログで編集 ... をクリックし、「パスワード」型を選択します。
失敗したリクエストを再送信する
リクエストが配信されなかった場合 (リクエストの送信中に例外がスローされたか、受信者の応答コードが「2**」以外だった場合)、TeamCity はこのメッセージの再送信を試みることができます。これを行うには、teamcity.internal.webhooks.retry_count パラメーターを作成し、その値として再試行回数を設定します。デフォルト値は 0 です。
パラメーターの継承
TeamCity プロジェクトは、親プロジェクトから構成パラメーターを継承します。たとえば、<ルートプロジェクト> に teamcity.internal.webhooks.events=BUILD_STARTED;BUILD_FINISHED パラメーターがある場合、すべての TeamCity プロジェクトはビルドの開始時と終了時に Webhook メッセージを送信します。
親プロジェクトと子プロジェクトの両方に同じ名前のパラメーターがある場合、子プロジェクトは継承された値をオーバーライドします。例:
<ルートプロジェクト> には
teamcity.internal.webhooks.events=BUILD_STARTED;BUILD_FINISHEDパラメーターがあります。プロジェクト A には
teamcity.internal.webhooks.events=BUILD_INTERRUPTEDパラメーターがあります。
この場合、すべての TeamCity プロジェクトはビルドの開始と終了を報告しますが、プロジェクト A はキャンセルされたビルドのみを報告します。プロジェクト A で 3 つのイベントすべてを報告する必要がある場合は、そのパラメーター値を BUILD_STARTED;BUILD_FINISHED;BUILD_INTERRUPTED に変更します。
関連ページ:
TeamCity 用の VCS ポストコミットフックの設定
TeamCity は、新しい変更を検出するために、アクティブな各 VCS ルートのターゲットとなるリモートリポジトリを定期的にポーリングします。インストールに数百の VCS ルートがある場合、この継続的なポーリングによりサーバーに大きな負荷がかかる可能性があります。コミット後のフックを設定すると、この負荷を軽減し、新しい変更の検出を高速化できます。この場合、新しいコミットがリモートリポジトリにプッシュされるたびに、VCS プロバイダーは即座に TeamCity に最近の変更を確認するリクエストを送...
ビルドパラメーターの設定
パラメーターは、TeamCity 設定およびビルドスクリプトの構文を介して参照するペアです。パラメーター部分は、生の値 () にすることも、別のパラメーターへの参照 () を含めることもできます。パラメーター型:TeamCity は次の 3 種類のパラメーターをサポートします。構成パラメーター — ビルド構成内で設定を共有することを主な目的とするパラメーター。これらのパラメーターを使用して、テンプレートから作成された構成やレシピを使用する構成をカスタマイズすることもできます。TeamCity は...
エージェントのインストールを構成する
ビルドエージェントは、ファイルで調整することで構成できます。一般的なエージェント設定:この Java プロパティ構成ファイルには、エージェントプロパティとしてサーバーに公開され、エージェント要件式に参加できるプロパティを保存できます。ファイルで定義されているすべてのシステムプロパティと環境プロパティは、エージェントで実行されるすべてのビルドに渡されます。構文リファレンス: 構文を使用します。コメントには、行の最初の位置にを使用します。パス区切り文字として、の代わりにを使用します。を含める必要がある...
TeamCity と YouTrack の統合
TeamCity を JetBrains YouTrack スタンドアロンまたは InCloud と統合して、TeamCity UI から YouTrack の課題へのリンクを提供できます。TeamCity はレガシー YouTrack RESTAPI エンドポイントをサポートしていないことに注意してください。詳細については、この課題を参照してください。TeamCity UI での YouTrack 課題へのリンクの表示:YouTrack との統合が有効になっている場合、TeamCity は、VC...