管理可刷新访问令牌
在 TeamCity 中,有多个实体的功能需要访问 VCS 托管提供商: VCS 根、 提交状态发布器、 拉取请求功能等。 这些实体通常提供多种 VCS 身份验证选项:
常规用户名/登录凭据——由于最易受攻击,这种身份验证方法正逐步被主要 VCS 托管提供商弃用。
个人访问令牌(PATs)——在 VCS 提供商端生成,然后复制到 TeamCity 对象中。 这些令牌授予与发行用户相同或更少的权限。
可刷新令牌——个人或非个人令牌。 要获取此令牌,TeamCity 使用现有的 OAuth(或类似 OAuth 的) 连接与 VCS 提供商通信。
本主题解释了如何发行、分配和管理可刷新令牌。
要发行令牌,TeamCity 使用在项目 连接设置中配置的连接与 VCS 托管提供商通信。 目前,可刷新访问令牌支持以下连接:
VCS 身份验证令牌 页面提供对为此项目及其子项目发行的所有可刷新令牌的集中访问。 要打开此页面:
导航到个人或 根目录 项目。
打开 项目设置 ,并导航到 VCS Auth Tokens设置选项卡。

note
出于安全原因,此页面仅对具有项目管理员 角色的用户可用。
此页面允许您按令牌名称、相关连接和发行用户查找令牌。 在未应用任何筛选器的情况下,页面显示最近使用的 10 个令牌。
显示继承的令牌 复选框允许您查看在父项目中发行但在当前查看的项目中可用的令牌。
要发行新令牌,请单击 生成新令牌。 在弹出的对话框中,指定令牌名称和 TeamCity 连接。 您还可以将令牌范围限制为特定的 TeamCity 项目和(对于 GitHub 应用令牌) VCS 存储库。

生成的令牌默认可用于当前编辑的项目及其所有子项目。 也就是说,如果您从根项目的 VCS 身份验证令牌 页面创建令牌,则默认情况下此令牌可被服务器上的任何项目使用。 您可以在 项目范围 下查看最初为令牌配置的项目。

请注意, VCS 身份验证令牌 页面仅显示每个项目可用的令牌。 如果您为项目 A
创建新令牌并将其范围限制为子项目 A.2
和 A.3
,TeamCity 将通知您当前项目将无法访问此令牌,并且在对话框关闭后您将无法看到此令牌。
GitHub 应用连接支持按存储库粒度的令牌权限。 使用此连接创建可刷新令牌时,您需要指定此令牌可以访问的存储库。 输入存储库名称时无需包含用户/组织名称(myRepo
而不是 myUser/myRepo
)。 请注意,存储库必须托管在安装了相应 GitHub 应用的同一帐户下。
出于安全原因,您无法发行具有全局存储库访问权限的令牌。
note
当执行涉及克隆或创建新 VCS 根的操作时,令牌的存储库范围可以自动扩展。 这些操作包括:
使用“创建子项目”向导
使用“创建构建配置”向导
复制项目
移动项目
复制构建配置
移动构建配置
通过复制令牌 ID 手动在 Git VCS 根上设置令牌
此行为可确保流畅的用户体验。 例如,克隆的构建配置应能正常运行,而不会遇到 VCS 访问问题。
您无需为每个需要访问 VCS 提供商的对象手动设置可刷新令牌。 例如,当您从现有连接创建新项目或配置时(通过单击新项目/配置页面上的 来自<Connection_name> 图块),TeamCity 将自动生成令牌并将其传递到相关的 VCS 根。

同样,在设置构建功能(如 提交状态发布器 )时,您可以选择使用默认的 VCS 根授权方法,而不是发行新令牌。

要手动分配令牌,请导航到构建功能或根的身份验证设置。 在此,您可以生成新令牌或使用现有令牌。
单击 生成新按钮。 请注意,与 VCS 身份验证令牌页面类似,此按钮仅对项目管理员可用。
输入令牌名称并选择应用于与 VCS 提供商通信的 TeamCity 连接。 项目范围将自动限制为此项目及其子项目。
单击 保存以退出设置。
单击铅笔图标以启用 令牌文本框。 请注意,与 VCS 身份验证令牌页面类似,此按钮仅对项目管理员可用。
单击 Git 令牌列表链接以在新标签页中打开 VCS 身份验证令牌页面。
在 VCS 身份验证令牌页面上,找到您希望使用的令牌并单击 复制 ID按钮。
返回到编辑的对象并粘贴令牌 ID。
单击 保存以退出设置。