关联仓库
teamcity link 通过在仓库根目录写入一个小型 teamcity.toml 文件,将仓库绑定到一个或多个 TeamCity 项目和作业。 链接后, teamcity run start、 teamcity run watch 和 teamcity job list 等命令会自动获取默认项目和作业——无需 --项目/--job 标志
teamcity.toml 旨在与你的代码一起提交。 它可在多台机器、CI 代理和 AI 编码代理之间移植,并支持按路径绑定和多服务器设置的单仓库。
关联仓库
从仓库根目录运行 teamcity link。 无标志时,会选取活跃服务器(参见 teamcity auth ),并交互式提示项目和默认作业:
如需跳过提示,可显式传递 ID:
首次运行将创建 teamcity.toml。 后续运行会 upsert 匹配的 [[server]] 条目——未传递的字段会被保留。
从 git 远程自动发现
在 CI 或 AI 代理环境下无法提示时, --auto 会根据仓库的 git 远程推断绑定:
CLI 会将你的 origin URL 与活跃服务器上的 VCS 根进行匹配,并选择项目(及默认作业),无需人工输入。 如已认证多个服务器,请传递 --server:
--auto 与 --项目、 --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=:
多个服务器
单个 teamcity.toml 可列出多个 [[server]] 条目——例如你的夜间流水线运行于另一实例时非常有用:
每个 --server 都是独立 upsert 的:
通过 --server 在命令级别切换服务器,或设置 TEAMCITY_URL 以在整个 shell 会话期间生效。
解析级联
命令解析项目或作业时,CLI 会优先查找以下来源:
命令上的显式标志(
--项目、--job、--server、…)TEAMCITY_*环境变量与活跃服务器 URL 匹配的
[[server]]条目,根据当前工作目录逐层匹配到最深的[server.paths."..."]作用域活跃服务器默认值(来自
teamcity auth login)
这意味着 teamcity.toml 提供 默认值 ,但任何显式标志或环境变量仍优先生效。
使用链接的命令
一旦 teamcity.toml 就位,下列命令将采用已关联的默认值,无需每次调用都指定标识符:
teamcity run start— 使用默认工作teamcity run list、teamcity run watch、teamcity run log— 从链接接受--jobteamcity job list、teamcity job tree— 作用域限定为已链接的项目teamcity project view、teamcity project tree— 打开已链接的项目teamcity pipeline pull、teamcity pipeline validate— 使用已链接的项目
运行 teamcity <command> --help 可查看哪些标志可接受已关联的默认值。