REST API アクセス
teamcity api コマンドを使用すると、コマンドラインから TeamCity REST API に直接、認証済みの HTTP リクエストを送信できます。 これは、専用の CLI コマンドではまだカバーされていない API エンドポイントへのアクセス、カスタムスクリプトの作成、デバッグなどに便利です。
基本的な使用箇所
エンドポイント引数は、 /app/rest/ で始まる URL のパス部分です。
teamcity api '/app/rest/server'
CLI は、現在の認証コンテキストに基づいて、ベース URL と認証ヘッダーを自動的に追加します。
HTTP メソッド
デフォルトでは、リクエストは GET メソッドを使用します。 -X で別のメソッドを指定します。
# GET (default)
teamcity api '/app/rest/projects'
# POST
teamcity api '/app/rest/buildQueue' -X POST -f 'buildType=id:MyBuild'
# PUT
teamcity api '/app/rest/builds/12345/comment' -X PUT --input comment.txt
# DELETE
teamcity api '/app/rest/builds/12345/tags/obsolete' -X DELETE
データの送信
JSON フィールド
-f を使用して、キーと値のペアから JSON リクエスト本体を構築します。
teamcity api '/app/rest/buildQueue' -X POST -f 'buildType=id:MyBuild'
teamcity api '/app/rest/buildQueue' -X POST -f 'buildType=id:MyBuild' -f 'branchName=main'
ファイルからのリクエストボディ
--input を使用してファイルからリクエスト本体を読み取ります。
teamcity api '/app/rest/projects' -X POST --input project.json
--input - で stdin から読み取ります:
echo '{"name": "New Project"}' | teamcity api '/app/rest/projects' -X POST --input -
-H を使用してカスタムヘッダーを追加します。
teamcity api '/app/rest/builds' -H "Accept: application/xml"
レスポンス処理
teamcity api '/app/rest/server' -i
生の出力
フォーマットせずに応答を出力します。
teamcity api '/app/rest/server' --raw
サイレントモード
成功時の出力を抑制します (終了コードのみを気にするスクリプトで便利です):
teamcity api '/app/rest/builds/12345/tags/release' -X POST --silent
TeamCity REST API は、大規模なコレクションに対してページ分割された結果を返します。 --paginate を使用すると、すべてのページを自動的に取得できます。
teamcity api '/app/rest/builds' --paginate
--slurp を使用してページ分割された結果を単一の JSON 配列に結合します。
teamcity api '/app/rest/builds' --paginate --slurp
例
# Get current user info
teamcity api '/app/rest/users/current'
# List all VCS roots
teamcity api '/app/rest/vcs-roots'
# Get build statistics
teamcity api '/app/rest/builds/12345/statistics'
# Trigger a build with parameters
teamcity api '/app/rest/buildQueue' -X POST \
--input <(echo '{"buildType":{"id":"MyBuild"},"properties":{"property":[{"name":"version","value":"1.0"}]}}')
# Download a specific artifact
teamcity api '/app/rest/builds/12345/artifacts/content/report.html' --raw > report.html
api フラグ
フラグ | 説明 |
|---|
-X, --method
| HTTP メソッド(GET、POST、PUT、DELETE、PATCH)。 デフォルト: GET。 |
-f, --field
| ボディフィールドを key=value として追加します。 JSON オブジェクトを構築します。 繰り返し可能です。 |
-H, --header
| カスタムヘッダーを追加します。 繰り返し可能です。 |
--input
| ファイルからリクエスト本体を読み取ります。 標準入力には - を使用します。 |
-i, --include
| 出力にレスポンスヘッダーを含める |
--raw
| フォーマットせずに生の応答を出力する |
--silent
| 成功時に出力を抑制する |
--paginate
| すべてのページを自動的に取得 |
--slurp
| ページ分割された結果を JSON 配列に結合する (--paginate が必要です) |
2026 年 9 月 11 日