リポジトリのリンク
teamcity link は、リポジトリのルートに小さな teamcity.toml ファイルを書き込むことで、リポジトリを 1 つ以上の TeamCity プロジェクトおよびジョブにバインドします。 リンクが完了すると、 teamcity run start、 teamcity run watch、 teamcity job list などのコマンドはデフォルトのプロジェクトとジョブを自動的に選択するため、 --project/--job フラグは不要です。
teamcity.toml は、コードと同時にコミットされることを想定しています。 マシン、CI エージェント、AI コーディングエージェント間で移植可能であり、パスごとのバインディングとマルチサーバー構成を備えたモノレポをサポートします。
リポジトリのリンク
リポジトリのルートから teamcity link を実行します。 フラグを指定しない場合、アクティブなサーバー(teamcity auth を参照)を検出し、プロジェクトとデフォルトのジョブを対話形式で入力するよう求めます。
プロンプトをスキップするには、ID を明示的に渡してください。
最初の実行で teamcity.toml が作成されます。 以降の実行では、一致する [[server]] エントリをアップサートします - 渡さなかったフィールドは保持されます。
git リモートから自動検出すること。
プロンプトが利用できない CI または AI エージェントのコンテキストでは、 --auto はリポジトリの git リモートからバインディングを推論します。
CLI は、アクティブサーバー上の VCS ルートに対して origin URL を照合し、ユーザーの入力なしにプロジェクト(およびデフォルトのジョブ)を選択します。 複数のサーバーが認証されている場合は、 --server を渡してください。
--auto は --project、 --job、 --jobs とは相互排他的です。
teamcity.toml ファイル
単一のリポジトリと単一のサーバー向けの最小限の teamcity.toml は次のようになります。
url は TeamCity インスタンスを識別します; プロジェクト と ジョブ は、対応するフラグがコマンドで省略された場合に使用されるデフォルト ID です。 注目する複数のジョブを追跡するには、 ジョブ (配列) を使用します:
teamcity.toml はプレーンな TOML です - 手動で編集したり、 cat teamcity.toml で検査したり、 rm teamcity.toml で削除したりできます。
モノリポ: パスごとのスコープ
モノリポでは、各トップレベルディレクトリが TeamCity 上の異なるプロジェクトに対応することがよくあります。 サブディレクトリ内で teamcity link を実行すると、CLI はそのパスにバインディングをスコープします。
結果として生成される teamcity.toml (常にリポジトリのルートに書き込まれる) は、パススコープを親サーバーエントリにグループ化します。
services/api から CLI コマンドを実行すると、 services/api スコープが優先されます。 services/web/src からは、最も深い一致スコープ (services/web) が使用されます。 リポジトリのルートからは、トップレベルのフィールドが適用されます。
サブディレクトリ内からトップレベルスコープへの書き込みを強制するには、 --scope=: を渡します。
複数のサーバー
1 つの teamcity.toml には複数の [[server]] エントリを列挙できます - たとえば、ナイトリーパイプラインが別のインスタンスで実行される場合に便利です:
各 --server は独立してアップサートされます。
--server コマンドでサーバーを切り替えるか、 TEAMCITY_URL コマンドでシェルセッションの期間中サーバーを設定します。
解決カスケード
コマンドがプロジェクトまたはジョブを解決する際、CLI は以下のソースを優先順位の高い順に参照します。
コマンドの明示的なフラグ (
--project、--job、--server, …)TEAMCITY_*環境変数現在の作業ディレクトリに基づいて、最も深い一致範囲の
[server.paths."..."]スコープまでドリルダウンして、アクティブなサーバー URL に一致する[[server]]エントリを取得します。アクティブサーバーのデフォルト設定 (
teamcity auth loginより)
これは、 teamcity.toml が デフォルト値を提供するものの、明示的なフラグや環境変数が優先されることを意味します。
リンクを使用するコマンド
teamcity.toml がインストールされると、以下のコマンドは、呼び出しごとに識別子を指定する必要がなくなり、リンクされたデフォルト値を受け入れるようになります。
teamcity run start— デフォルトのジョブを使用しますteamcity run list、teamcity run watch、teamcity run log— リンクから--jobを受け入れるteamcity job list、teamcity job tree— リンクされたプロジェクトへのスコープteamcity project view、teamcity project tree— リンク先のプロジェクトを開くteamcity pipeline pull、teamcity pipeline validate— リンク先のプロジェクトを使用してください
teamcity <command> --help を実行して、リンクされたデフォルト値を受け入れるフラグを確認してください。