TeamCity RESTAPI リファレンス 2026.1 ヘルプ

ビルドの詳細を取得する

この記事では、RESTAPI を介してビルドデータを取得する一般的なユースケースについて説明します。これらは、次のことが必要な場合に役立ちます。

  • 完了またはキューに入れられたビルドを取得します。

  • 特定の条件でビルドを見つけます。

  • 依存関係と変更を検索します。

最近のビルドを取得する

最後の 100 ビルドを取得するには、次を実行します。

/app/rest/builds

サーバーは、最大 100 個のビルドエンティティを含むビルドエンティティで応答します。これは、BuildLocator の記事で説明されている defaultFilter ディメンションロジックに対応します。その結果、デフォルトのブランチで開始された成功した非個人ビルドのみが応答に表示されます。このデフォルトのフィルターを無視して最近のビルドを取得するには、次のコマンドを実行します。

/app/rest/builds?locator=defaultFilter:false

エンドポイント応答はページ付けされます。BuildsnextHref または prevHref プロパティを使用して、応答ページを移動します。または、count (返されたビルドの数)および start (最初に返されたビルドの位置)ディメンションを使用して、返されるビルドを制御することもできます。

/app/rest/builds?locator=count:10,start:15

この例では、リクエストはコレクションの 15 番目の要素から始まる 10 個のビルドを返します。リクエスト内の他のディメンションは、返されるビルドの順序と位置に影響を与える可能性があることに注意してください(たとえば、現在実行中のビルドを除外すると、N 番目の位置の要素が変更される可能性があります)。

特定のビルドを取得する

BuildLocator は他の多くの寸法を受け入れることができます。それらのいくつかが含まれます:

  • id:<internal build id> — 特定のビルドを参照する必要がある場合は、内部ビルド ID を使用します。

  • number:<build number> — ビルド構成がすでに指定されている場合、ビルド番号でビルドを検索します。

  • project:<project locator> — リストを ProjectLocator にあるプロジェクトのビルドに制限します(プロジェクトの直下のビルドタイプに属します)。

  • affectedProject:<project locator> — リストを ProjectLocator で見つかったプロジェクトのビルドに制限します(プロジェクトで直接または間接的に任意のビルドタイプに属します)。

  • buildType:(<buildTypeLocator>),defaultFilter:falseBuildTypeLocator にあるビルド構成のすべてのビルド。

  • tag:<tag> — タグ付きビルドを取得します。tag:<tag1>, tag:<tag2> などのタグのリストが指定されている場合、指定されたすべてのタグを含むビルドのみが返されます。

  • status:<SUCCESS/FAILURE/UNKNOWN> — リストは、指定されたステータスでのみビルドされます。

  • user:(<userLocator>) — ビルドを、UserLocator で見つかったユーザーによってトリガーされたもののみに制限します。

  • personal:<true/false/any> — 個人フラグによる制限ビルド。デフォルトでは、パーソナルビルドは含まれていません。

  • canceled:<true/false/any> — キャンセルされたフラグによってビルドを制限します。デフォルトでは、キャンセルされたビルドは含まれません。

  • failedToStart:<true/false/any> — 開始失敗フラグによるビルドの制限。デフォルトでは、ビルドの開始に失敗したものは含まれていません。

  • state:<queued/running/finished> — 指定された状態でビルドを制限します。

  • running:<true/false/any> — 実行中のフラグによるビルドの制限。デフォルトでは、実行中のビルドは含まれていません。

  • state:running,hanging:true — ぶら下がっているビルドをフェッチします。

  • pinned:<true/false/any> — 固定フラグによるビルドの制限。

  • branch:<branch locator> — ブランチによってビルドを制限します。BranchLocator は、UI に表示されるブランチ名、または (name:<name>,default:<true/false/any>,unspecified:<true/false/any>,branched:<true/false/any>) にすることができます。デフォルトでは、デフォルトのブランチからのビルドのみが返されます。すべてのビルドを取得するには、次のロケーターを追加します: branch:default:any エンドポイント全体は次のようになります。

    GET /app/rest/builds/?locator=buildType:MyBuildConfigurationID,branch:default:any.
  • revision:<REVISION> — リビジョンごとにビルドを検索します。たとえば、このエンドポイントは、指定されたビルド構成のすべてのビルドをリビジョンとともに返します。

    GET /app/rest/builds?locator=revision:(MyRevision),buildType:(id:MyBuildConfigurationID)
  • agentName:<name> — 返すエージェント名は、指定された名前のエージェントで実行されたビルドのみを返します。

  • sinceBuild:(<buildLocator>) — ビルドのリストを、指定されたものの後のビルドのみに制限します(別のネストされた BuildLocator を使用)。

  • sinceDate:<date> — ビルドのリストは、指定された日付以降に開始されたもののみに制限してください。日付は、REST API によって返される日付と同じ形式である必要があります(たとえば、20130305T170030 + 0400)。

  • queuedDate/startDate/finishDate:(date:<time-date>,build:<build locator>,condition:<before/after>)BuildLocator で指定された時間に基づいてビルドをフィルターします。たとえば、2017 年 11 月 23 日以降に終了したビルドの場合、20:34:46、GMT+1 タイムゾーンを使用します。

    GET /app/rest/builds?locator=finishDate:(date:20171123T203446%2B0100,condition:after)
  • count:<number> — 指定された数のビルドのみを提供します。

  • start:<number> — 指定された位置(ゼロベース)から始まるリストからビルドをリストします。

  • lookupLimit:<number> — 処理を最新の N ビルドのみに制限します(デフォルトは 5000 です)。最新の N ビルドのいずれも、ビルドロケーターの他の指定された基準に一致しない場合、単一のビルド要求に対して 404 応答が返され、複数のビルド要求に対して空のコレクションが返されます。関連する注記を参照してください

キューに入れられたビルドを取得する

キューに入れられたすべてのビルドを取得するには、次を使用します。

/app/rest/buildQueue

エンドポイントは、ビルドエンティティのインスタンスで応答します。BuildQueueLocator を使用すると、リクエストをさらに制限できます。例: 特定の構成でキューに入れられたすべてのビルドを取得するには:

/app/rest/buildQueue?locator=buildType(id:MyBuildConfigurationID)

または、キューに入れられた特定のビルドの詳細をフェッチします。

/app/rest/buildQueue?locator=id:<queued build ID>

これは、キューに入れられたビルドと互換性のあるエージェントを見つけるのに役立つ場合があります。

/app/rest/buildQueue?locator=id:<queued build ID>/compatibleAgents

応答はエージェントとしてフォーマットされます。

変更を取得

変更エンティティは、TeamCity UI のビルドの変更に表示されるのと同じ方法で変更を表すことを目的としています。ほとんどの場合、これらは現在のビルドと以前のビルド間のコミットです。changes ノードはデフォルトではビルドに含まれず、href 属性のみがあります。href で指定されたリクエストを実行すると、必要な変更が加えられます。

特定のビルドに関連するすべての変更を取得するには、次を使用します。

/app/rest/changes?locator=build:(id:<buildId>)

locatorChangeLocator として入力されます。

特定の変更の詳細を取得するには、次を使用します。

/app/rest/changes/id:changeId

変更内のファイルについては、changeType をアドレス指定して、ファイルが addededitedremovedcopied であるか unchanged であるかを確認できます。

この要求は、MyProjectId プロジェクトの変更を返します。

/app/rest/changes?locator=project:MyProjectId

ビルド構成 BuildConfigurationID での特定の変更以降の変更を見つけるには、次を使用します。

GET /app/rest/changes?locator=buildType:(id:BuildConfigurationID),sinceChange:(id:changeId)

最後に、ビルド構成で保留中のすべての変更を見つけるには、次を使用します。

/app/rest/changes?locator=buildType:(id:BUILD_CONF_ID),pending:true

特定のリビジョンのビルドを取得する

特定のリビジョンのすべてのビルドを取得するには、次を使用します。

/app/rest/builds?locator=revision(version:XXXX)

依存関係 / 依存関係のビルドを取得する

現在のビルドに依存するビルドを取得するには、from:(id:<build_ID>) 演算子をロケーターに追加します。例: ビルド "A" がビルド "B" に依存している場合、from:(id:A) ロケーターは何も返しません ("A" に依存するビルドはありません)、from(id:B) ロケーターはビルド "A" ("A" は "B" に依存します) を返します。includeInitial パラメーターを有効にして、ターゲットビルドを出力に追加することもできます。

/app/rest/builds?locator=snapshotDependency:(from:(id:XXXX),includeInitial:true),defaultFilter:false /app/rest/builds?locator=artifactDependency:(from:(id:XXXX),recursive:false)

現在のビルドが依存するすべてのビルドを取得するには、to:(id:<build_ID>) キーワードを使用します。ビルド "A" がビルド "B" に依存している場合、to:(id:A) ロケーターはビルド "B" を返し ("A" は "B" への依存関係があります)、to(id:B) は何も返しません ("B" は他のビルドに依存しません)。

/app/rest/builds?locator=snapshotDependency:(to:(id:XXXX),includeInitial:true),defaultFilter:false /app/rest/builds?locator=artifactDependency:(to:(id:XXXX),recursive:false)

上記の例の XXXX はビルドの ID であり、ビルド構成ではないことに注意してください。