TeamCity On-Premises 2026.2 Help

スクリプト作成と自動化

TeamCity CLI は、スクリプト作成、自動化、CI/CD 統合向けに設計された複数の出力フォーマットと機能を提供します。

JSON 出力

多くのコマンドは、機械可読な出力のための --json フラグをサポートしています。 リストコマンドは、オプションのフィールド選択も受け付けます。

基本的な使用箇所

teamcity run list --json teamcity job list --json teamcity project list --json

使用可能なフィールドの確認

コマンドで使用可能なすべてのフィールドを表示するには、 --json= (空の値) を渡します。

teamcity run list --json=
JSON output with field selection

特定のフィールドの選択

フィールドをコンマで区切ってリストを指定します。

teamcity run list --json=id,status,webUrl

フィールド選択(--json=... )はリストコマンドでのみ使用できます。 ビューコマンドとインスペクションコマンドでは、フィールド選択なしで --json を使用できます。

ネストされたフィールド

ネストされたフィールドにアクセスするにはドット表記を使用します。

teamcity run list --json=id,status,buildType.name,triggered.user.username

表示コマンドおよびインスペクションコマンドの JSON

teamcity run view 12345 --json teamcity run log 12345 --json teamcity run log 12345 --json --failed teamcity run changes 12345 --json teamcity run tests 12345 --json teamcity run artifacts 12345 --json teamcity agent view Agent-Linux-01 --json teamcity project settings status MyProject --json teamcity auth status --json

コマンド別の使用可能なフィールド

コマンド

例のフィールド

teamcity run list

ID番号状況statebranchNamebuildTypeIdbuildType.namebuildType.projectNametriggered.typetriggered.user.nameagent.namestartDatefinishDatewebUrl

teamcity job list

IDお名前projectNameプロジェクト IDpausedhrefwebUrl

teamcity project list

IDお名前説明parentProjectIdhrefwebUrl

teamcity queue list

IDbuildTypeIdstatebranchNamequeuedDatebuildType.nametriggered.user.namewebUrl

teamcity agent list

IDお名前connected有効authorizedpool.namewebUrl

teamcity pool list

IDお名前maxAgents

プレーンテキスト出力

標準的な Unix ツールで解析しやすいタブ区切り出力には、 --plain を使用してください。 このフラグは、すべてのリストコマンド、および agent jobsparam list で使用できます。

teamcity run list --plain teamcity agent list --plain teamcity agent jobs 1 --plain teamcity project param list MyProject --plain

よりクリーンなパイピングのためにヘッダー行を省略します。

teamcity run list --plain --no-header teamcity agent list --plain --no-header | awk '{print $1}'

スクリプト例

失敗したビルドの ID を取得

teamcity run list --status failure --json=id | jq -r '.[].id'

ビルドデータを CSV にエクスポート

teamcity run list --json=id,status,branchName | jq -r '.[] | [.id,.status,.branchName] | @csv'

キュー内のビルドのウェブ URL を取得

teamcity queue list --json=webUrl | jq -r '.[].webUrl'

ステータス別にビルドをカウント

teamcity run list --since 24h --json=status | jq 'group_by(.status) | map({status: .[0].status, count: length})'

ビルドの完了を待機

teamcity run start MyProject_Build --watch --json

または、別々に開始して視聴することもできます。

BUILD_ID=$(teamcity run start MyProject_Build --json | jq -r '.id') teamcity run watch "$BUILD_ID" --json

ジョブのキュー内のビルドをすべてキャンセル

teamcity queue list --job MyProject_Build --json=id | jq -r '.[].id' | xargs -I {} teamcity run cancel {} --yes

CI/CD 統合

環境変数認証

CI/CD パイプラインでは、認証に環境変数を使用します。

export TEAMCITY_URL="https://teamcity.example.com" export TEAMCITY_TOKEN="your-access-token"

PowerShell:

$env:TEAMCITY_URL = "https://teamcity.example.com" $env:TEAMCITY_TOKEN = "your-access-token"

Cmd:

set TEAMCITY_URL=https://teamcity.example.com set TEAMCITY_TOKEN=your-access-token

詳細は 認証を参照してください。

非対話モード

自動化された環境で対話型プロンプトを無効にするには、 --no-input を使用します。 プロンプトが抑制されている場合、CLI は適切なデフォルトを使用します。

teamcity run cancel 12345 --no-input

あるいは、それをサポートするコマンドで --yes を使用します。

teamcity queue remove 12345 --yes

読み取り専用モード

TEAMCITY_RO=1 を設定すると、書き込み操作が一切行われなくなります。 このモードでは、データを変更するコマンド(ビルドのトリガー、キャンセル、ピン留め、パラメーターの変更など)は、リクエストが送信される前に拒否されます。

export TEAMCITY_RO=1 teamcity run list # works — read-only teamcity run start MyBuild # blocked — would trigger a build

これは、ダッシュボード、レポートスクリプト、偶発的な変更を防ぐ必要がある共有環境の監視に役立ちます。 このフラグは、GET 以外のメソッドによる teamcity api 経由の書き込み操作もブロックします。

許容される値については 構成を参照してください。

クワイエットモード

不要な出力を抑制するには、 --quiet を使用します。

teamcity run start MyProject_Build --quiet

終了コード

ほとんどのコマンドは、成功時には終了コード 0 を、失敗時には 1 を返します。 teamcity run watch フロー(teamcity run start --watch を含む)は以下を返します。

  • 実行がキャンセルされたときの 2

  • 124 タイムアウト

teamcity run start MyProject_Build --watch --quiet --timeout 30m case $? in 0) echo "Build succeeded" ;; 1) echo "Build failed" ;; 2) echo "Build cancelled" ;; 124) echo "Timed out" ;; *) echo "Unknown error" ;; esac

構造化エラー

--json がアクティブな状態でコマンドが失敗した場合、エラーはプレーンテキストではなく、構造化された JSON として標準エラー出力に書き込まれます。

{ "error": { "code": "auth_expired", "message": "Authentication failed: invalid or expired token", "suggestion": "teamcity auth login" } }

エラーコード:

コード

意味

auth_expired

トークンが無効か、期限切れです

permission_denied

権限が不足しています

not_found

要求されたリソースは存在しません

network_error

サーバーに到達できません

read_only

書き込み操作は TEAMCITY_RO によってブロックされています

validation_error

無効な入力 (フラグ、引数)

internal_error

予期しないエラー

suggestion フィールドは、修正可能な箇所がない場合に省略されます。 code フィールドは常に存在し、プログラムによるマッチングにおいて安全です。

JSON 互換性ポリシー

--json の出力は機械可読な契約書です。 以下の規則が適用されます。

  • 以前のリリースでは、 フィールドの削除や名前変更はありません には非推奨期間が設けられていませんでした。

  • 追加フィールドは常に許可されます — 新しいキーはどのリリースにも含まれる可能性があります。

  • エラーコードは安定しています — 既存の法令の意味は変更されません。

  • エンベロープ構造は固定されています — 成功時の出力はリソースデータであり、エラー時の出力は標準エラー出力に {"error": {...}} エンベロープを使用します。

消費者は、不明なフィールドを無視し、フィールドの順序に頼るべきではない。

Raw API アクセス

専用コマンドでカバーされていない操作の場合は、 teamcity api を使用して直接 REST API リクエストを実行します。

teamcity api '/app/rest/server' teamcity api '/app/rest/builds' --paginate --slurp

詳細は REST API アクセスを参照してください。

2026 年 9 月 11 日