TeamCity On-Premises 2024.03 Help

配置连接

TeamCity 允许存储与外部服务连接的预设。 您可以在服务器的各个位置重复使用这些预设:创建项目时、配置通知时、与问题跟踪器集成时等等。 此文章提供了如何添加每一种类型连接的说明。

要添加连接,请转到目标项目的设置,打开 连接 页面,并点击 添加连接。 选择连接类型,将其 Display name 设置为与其他连接区别的标识,并按照以下描述进行配置。

创建新的 TeamCity 连接

创建后,一个连接可以在当前项目的所有嵌套子项目中使用。 如果您在 Root 项目中添加一个连接,它将在整个服务器上可用。

如果您的 TeamCity 服务器是安装在代理服务器后面,那么在适用的情况下,确保这一点反映在连接设置中是非常重要的。 在为连接配置回调 URL 时,您需要指定当前服务器可通过其进行访问的所有 URL。
配置代理后,记得也要在 TeamCity 的 全局设置 中将新地址设置为 服务器 URL

Azure DevOps

在 TeamCity 中有两种类型的 Azure DevOps 连接:

  • Azure DevOps OAuth 2.0允许通过 Azure DevOps Services 帐户登录 TeamCity, 并从 Azure Git 仓库中创建 TeamCity 项目。

  • Azure DevOps PAT允许从 Azure Git 和 TFVC 存储库创建 TeamCity 项目。

Azure DevOps OAuth 2.0 连接

这种连接类型仅支持 Azure DevOps Services。 它使用基于 JWT 令牌的 OAuth 2.0 协议,并需要在您的 Azure 个人资料中创建一个专用应用。

这种连接可以用于通过 Azure DevOps 对用户进行身份验证,以及创建项目和构建配置。

配置 Azure DevOps OAuth 2.0 连接:

  1. Project Administration | Connections中,点击Add Connection

  2. 选择 Azure DevOps OAuth 2.0 作为连接类型。

  3. TeamCity 将会显示用于在 Azure DevOps 中注册 OAuth 应用所需的 Callback URL权限范围
    请前往 Azure 的 Register Application 页面,并使用提供的参数创建一个新的应用。 创建时,请复制应用的 ID 和客户端秘密。

  4. 返回到 TeamCity 中的连接表单,并输入 Azure DevOps Services URL、新的应用 ID 和客户端密钥。

  5. 指定应用范围,该范围必须与创建的 Azure DevOps OAuth App 的范围相同。

  6. 保存连接。

要在您的服务器上激活 Azure DevOps Services 认证,请继续启用相应的 认证模块

Azure DevOps PAT 连接

这种类型的连接使用个人访问令牌。 它允许从 Git 或 TFVC 仓库 URL 创建一个 项目,创建一个 Azure DevOps VCS 根,或与 Azure Board Work Items 跟踪器进行集成。

要配置 Azure DevOps PAT 连接:

  1. Project Administration | Connections中,点击Add Connection

  2. 请选择 Azure DevOps PAT 作为连接类型。
    打开的页面将提供用于将 TeamCity 连接到 Azure DevOps Services 的参数。

  3. 请登录您的 Azure DevOps Services 帐户,创建具有 所有权限范围 的个人访问令牌,就如同 Microsoft 文档 所述。

  4. 在 TeamCity 中继续配置连接:在打开的 Add Connection 页面上,指定

    • https://{account}.visualstudio.com 格式的服务器 URL 或者您的 Azure DevOps Server 作为 https://{server}:8080/tfs/

    • 您的个人访问令牌

  5. 保存连接设置。

  6. 连接已配置,现在在几个可以指定仓库URL的地方激活了一个小的 Azure DevOps Services 图标: 从URL创建项目从URL创建VCS根目录、创建 Azure DevOps Server 的 VCS 根目录,创建 Azure Board 工作项 跟踪器。 点击图标,登录到 Azure DevOps Services 并授权给 TeamCity。 TeamCity 将被授予对所有可用资源的完全访问权限。
    在为托管在 TFS / VSTS 中的 Git 仓库配置 Commit Status Publisher 时,如果配置了 VSTS 项目连接,个人访问令牌可以自动填充。

Bitbucket Cloud

连接到 Bitbucket Cloud 可以用来:

Bitbucket Cloud 连接表格提供了多个参数。 您需要使用它们来在 Bitbucket 中创建新的 OAuth 消费者

在创建消费者之后:

  1. 复制其密钥和密钥。

  2. 返回到 TeamCity 中的连接表单。

  3. 粘贴密钥和秘密。

  4. 保存连接。

在多个可以指定存储库URL的地方,Bitbucket图标将会变为可用状态。 点击以授权 TeamCity 访问您的 Bitbucket 个人资料。 TeamCity 将被授予访问您的仓库的权限。 如果您配置了多个 Bitbucket 连接,服务器 URL 将显示在每个图标旁边,因此更容易区分正在使用的服务器。

Bitbucket Server 和 Data Center

当前,与 Bitbucket Server 和 Data Center 的整合允许您:

为了让 TeamCity 能够访问 Bitbucket 数据,您需要在 Bitbucket 中创建一个传入的应用程序链接,以授予 TeamCity 所需的权限。

  1. 创建新的连接并选择 "Bitbucket Server / Data Center" 选项。

  2. 在另一个浏览器标签页中,访问 Bitbucket "Administration | Application Links" 页面。

  3. 根据以下参数创建一个新的 应用链接

    • 应用类型: 外部应用

    • 方向:入站

    • 重定向 URL:<从 TeamCity 新连接标签复制 URL>

    • 应用程序权限:在 "Repositories" 下勾选 "Write"

  4. 一旦应用链接准备就绪,Bitbucket 将生成 "Client ID""Client Secret"的值。 将这些值复制并粘贴到 TeamCity 新连接标签页的对应字段中。

  5. 在 TeamCity 中保存连接。

GitHub

TeamCity 允许您创建连接,既可以连接常规的 GitHub.com 实例,也可以连接 GitHub Enterprise

连接到 GitHub 可以用来:

根据您的需求,您可以创建通过 GitHub Apps 或 GitHub OAuth Applications 运行的 GitHub 连接。

GitHub 应用

一款 GitHub App 是一种集成,允许第三方服务,如 TeamCity,无需保持“服务”用户帐户的情况下连接到 GitHub 仓库。 与 GitHub OAuth 应用相比,GitHub Apps 拥有更细粒度的权限,并赋予您更多的控制权,以决定该应用可以访问哪些存储库。 请参阅此文章以获取更多信息:GitHub Apps 和 OAuth Apps 的区别

如果您还没有合适的 GitHub App,您可以允许 TeamCity 注册它,并创建一个使用这个新应用程序的连接。 TeamCity 使用 manifests 来注册新的 GitHub Apps。

  1. 前往 Project Settings | Connections,然后点击 Add Connection

  2. 从下拉菜单中选择 GitHub App(无论您需要连接到常规的 GitHub 还是 GitHub Enterprise)。

  3. 选择 自动 创建模式,允许 TeamCity 从清单中注册 GitHub 应用程序

    GitHub Manifest 应用程序按钮
  4. 指定您的 GitHub 服务器的 URL(不包含 "/用户名")并选择您是否希望此应用发送 post-commit hooks 和 / 或获取您的组织的访问权限。

  5. 如果新的 GitHub App 需要提供对组织仓库的访问权限,请将 Owner 设置切换到 Organization ,并在相应的字段中输入组织名称。

  6. 按照屏幕上的指示登录您的 GitHub 帐户,授权 TeamCity 注册应用,并将其安装到您的个人和/或组织帐户。

要手动创建新的 GitHub 应用并配置使用此应用的 TeamCity 连接:

  1. 前往 Project Settings | Connections,然后点击 Add Connection

  2. 从下拉菜单中选择 GitHub App(无论您需要连接到常规的 GitHub 还是 GitHub Enterprise)。

  3. 将连接的创建模式切换为 手动

  4. 在另一个浏览器标签页中,导航到您的 GitHub 帐户,按照 TeamCity 连接描述中的指示创建一个新的应用。 请注意,GitHub 在此过程中将生成一个私钥 —— 请将此 .private-key.pem 文件保存在安全位置。

  5. 打开您的 GitHub 应用的通用设置。 复制所需的值(App ID,client ID,client secret)并将它们粘贴到 TeamCity 对话框中。

  6. 如果您配置了一个 GitHub App webhook,请设置其密钥,并将相同的值复制到 Webhook secret 字段。 GitHub 可以使用此 webhook 向 TeamCity 服务器发送通知,当库中发生改变时,应扫描该库,而不是让服务器不断地向 GitHub 轮询以获取变化。 另请参见:配置 VCS 提交后挂钩

  7. 输入所有者网址 —— 即该 GitHub App 安装的个人帐户或组织的链接。

  8. 上传由 GitHub 发送的私钥。

  9. 点击 Save 以保存您的新连接。

GitHub OAuth 应用程序

OAuth 应用程序生成用户访问令牌,并允许第三方服务如 TeamCity 代表获得授权的用户执行操作。

要创建一个利用 GitHub OAuth 应用的 TeamCity 连接:

  1. 前往 Project Settings | Connections,然后点击 Add Connection

  2. 根据您使用的版本,选择 GitHub.comGitHub Enterprise

  3. 如果您还没有 GitHub OAuth 应用程序,请按照 TeamCity 的指示来 创建一个新的

  4. 从 OAuth 应用的设置中复制客户端 ID 和密钥,然后粘贴到 TeamCity 对话框中。 对于 GitHub Enterprise,您还需要粘贴 GitHub 服务器的 URL。

  5. 点击 Save 以保存您的新连接。

一旦成功配置了连接,GitHub 图标将在可以指定仓库 URL 的几个地方变为活动状态。 点击它以在您的 GitHub 个人资料中授权 TeamCity。 TeamCity 将被授予您的私有仓库的全部控制权,并获得 编写仓库挂钩 的权限。 如果您配置了多个 GitHub 集成,服务器 URL 将显示在每个图标旁边,因此更容易区分正在使用的服务器。

GitLab

GitLab 连接有两种类型:GitLab.com 适用于在 https://gitlab.com 站点托管的帐户,以及 GitLab CE/EE 适用于自我托管的 GitLab 社区版(CE)或企业版(EE)服务器上的帐户。

连接到 GitLab 可用于:

OAuth 应用程序生成用户访问令牌,并允许第三方服务如 TeamCity 代表获得授权的用户执行操作。

要创建一个使用 GitLab OAuth 应用程序的 TeamCity 连接:

  1. 选择您希望创建新连接的项目,注意,该连接只对所选项目及其子项目有效。

  2. 前往 Project Settings | Connections,然后点击 Add Connection

  3. 请选择 GitLab.comGitLab CE/EE

  4. 如果您还没有 GitLab OAuth 应用程序,请按照 GitLab 的说明在以下范围之一中创建 OAuth 应用程序:

  5. 在 GitLab 中填写 Add new application 表单时:

    1. 为应用程序选择一个名称

    2. 将 TeamCity 对话框中的 Redirect URL 复制到 GitLab 表单中

    3. Scopes 下,检查 api

    4. 点击 保存应用程序

  6. 将 GitLab 应用设置中的 Application IDSecret 复制并粘贴到 TeamCity 对话框中。

  7. 对于 GitLab CE/EE 连接,您还必须在 Server URL 字段中输入 GitLab CE/EE 服务器的基本 URL (例如, https://gitlab.mydomain.com)。 请注意,在 GitLab.com 连接的情况下,不需要此字段,因为基础 URL 总是 https://gitlab.com

  8. 点击 Save 以保存您的新连接。

在多个可以指定仓库 URL 的位置,GitLab 图标将变为活动状态。 点击以在您的 GitLab 个人资料中授权 TeamCity。 TeamCity 将被授予访问您的仓库的权限。 如果您配置了多个 GitLab 连接,服务器 URL 将显示在每个图标旁边,所以更容易区分正在使用的服务器。

Google

这种连接支持 Google 服务。 它使用 OAuth 2.0 协议

此连接用于使用 Google 帐户在 TeamCity 中进行身份验证。

在配置 Google 连接之前,如果您以前没有做过,您需要 创建一个新的 Google 项目 并且 注册您的应用

在 TeamCity 中配置 Google 连接:

  1. 管理 区域中,选择 根项目 | 连接,然后点击 添加连接

  2. 选择 Google 作为连接类型。

  3. TeamCity 将会显示注册 OAuth 客户端所需的重定向 URL。 将它们复制。

  4. 前往 Google 项目中的 Credentials 页,以 Web 应用类型创建 OAuth client ID

  5. 将您的 Callback URLs 粘贴到 Google OAuth client ID 中的 授权重定向 URI 部分。 当创建 OAuth 客户端时,复制客户端 ID 和客户端密钥。

  6. 返回到 TeamCity 中的连接表单,并输入客户端 ID 和客户端秘密。

  7. 保存连接。

现在,您可以启用 Google 认证模块

Docker 注册表

Docker Registry 的连接可以用来:

  • 在运行构建之前,请登录到经过身份验证的 Docker 注册表 / 构建完成后注销。

  • 在构建后清理发布的镜像。

请在 专用文章 中查看更多信息。

Amazon Web Services (AWS)

Amazon Web Services(AWS)连接允许一次性定义 AWS 凭证,并通过 AWS Credentials 构建功能在构建中使用。 您可以使用不同的 AWS 凭据类型:访问密钥、IAM 角色和默认凭据提供者链。

在 TeamCity 中配置 AWS 连接:

  1. Project Administration | Connections中,点击Add Connection

  2. 选择 Amazon Web Services (AWS) 作为连接类型。

  3. 为了区别其他连接,请为此连接提供一个名称。

  4. Connection ID 字段会自动填充。 您可以修改它并提供您自己独特的 ID。

  5. 选择目标资源所在的 AWS 区域

  6. 类型 下拉菜单中,选择一个凭证类型:

    访问密钥

    如果您选择了访问密钥作为凭据类型,请从 AWS 控制台的 身份和访问管理部分 获取密钥,并提供给 TeamCity。 查看如何获取这些密钥 这里

    在 TeamCity 用户界面的 "访问密钥" 部分,执行以下操作:

    1. 指定永久的 Access keys

      • 访问密钥 ID。 输入访问密钥 ID。

      • 密钥访问。 输入秘密访问密钥。

      出于安全原因,建议您定期更改访问密钥。 在通过 Rotate key 按钮创建连接后,您将能够做到这一点。

      TeamCity 不会立即撤销旧的密钥。 生成新密钥后,TeamCity 将保留旧的非活动密钥24小时,然后将其删除。 旧密钥的生命周期可以通过以下属性进行更改: teamcity.internal.cloud.aws.keyRotation.old.key.preserve.time.minteamcity.internal.cloud.aws.keyRotation.old.key.preserve.time.days

      为了能够成功地旋转访问密钥,TeamCity 需要 iam:GetUseriam:CreateAccessKeyiam:DeleteAccessKey 权限。

    2. 配置临时 Session Settings

      • 使用会话凭证。 勾选框以使用通过 AWS STS 提供 临时访问 密钥的端点。 这种凭证的有效期较短(默认会话时间为60分钟)。 您可以在 AWS Credentials 构建功能 中覆盖默认的会话持续时间。 这些凭证不属于特定用户,可以根据需求提供,以授予对特定资源的临时访问权限。 我们建议使用临时凭证,因为它们能提供更好的安全性。

      • STS 端点

        • 当更改 AWS 区域时,TeamCity 会自动生成此字段。 因为速度更快且延迟更低,所以推荐使用区域端点。recommended。 此外,所有对区域端点的调用都将作为任何区域服务调用在 AWS Cloud Trail 中被记录。

        • 如果选定的区域端点在Amazon帐户上被禁用,并且您不希望启用它,请使用全球端点

        • 如果您需要为Amazon的替代品如 MinIO 指定一个自定义端点,请联系 TeamCity 支持团队。

    IAM 角色

    使用 IAM roles,您可以将对您的 AWS 资源的访问权限委托给通常没有这些权限的用户、应用程序或服务。 这些实体将 承担此角色 以获得此类访问权限。

    只有在您的 TeamCity 项目中已配置至少一个具有访问密钥或默认凭据提供程序链的 AWS 连接的情况下,您才能使用 IAM Role 作为凭据类型。

    1. 指定 IAM Role

      • AWS 连接。 选择将授予指定 IAM 角色的 AWS 连接。 请注意,如果目标 AWS 连接属于父级 TeamCity 项目,则必须启用此连接的 对子项目可用 设置。

      • 角色 ARN。 指定您正在创建的连接需要承担的角色的 ARN

    2. 配置 会话设置

      • 会话标签。 会话 tag 是 Amazon 所必需的。 在 AWS 日志中定位由 TeamCity 连接创建的会话非常有用。 TeamCity 会自动生成标签,但您可以指定自己的值。

      • STS 端点

        • 当更改 AWS 区域时,TeamCity 会自动生成此字段。 因为速度更快且延迟更低,所以推荐使用区域端点。recommended。 此外,所有对区域端点的调用都将作为任何区域服务调用在 AWS Cloud Trail 中被记录。

        • 如果选定的区域端点在Amazon帐户上被禁用,并且您不希望启用它,请使用全球端点

        • 如果您需要为Amazon的替代品如 MinIO 指定一个自定义端点,请联系 TeamCity 支持团队。

    在连接创建后,您可以查看并复制自动生成的外部连接 ID。 我们强烈建议您始终将其添加到 AWS 中的 信任策略,以防止 困惑的代理问题。 这确保只有经过授权的 TeamCity AWS 连接才能使用指定的 IAM 角色。

    默认凭据提供程序链

    选择此类型以根据 默认链 提供访问凭据。 这种方法提供了一个替代方案,避免将证书以明文形式存储。

    为了减轻这个风险,Default credential provider chain 凭证类型默认是禁用的。 要启用它,设置 内部属性 teamcity.internal.aws.connection.defaultCredentialsProviderEnabled=true。 (默认值为 false。) 设置属性后,无需重新启动服务器。 当使用此凭证类型时,TeamCity 按以下顺序搜索凭证:

    1. Java 系统属性: aws.accessKeyIdaws.secretAccessKey

    2. 环境变量: AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY

    3. 从系统属性或环境变量获取 Web Identity Token 凭证。

    4. Credential profiles 文件位于默认位置( ~/.aws/credentials ),所有 AWS SDK 和 AWS CLI 共享。 默认位置可以通过 AWS_SHARED_CREDENTIALS_FILE 环境变量进行覆盖。

    5. 如果设置了 AWS_CONTAINER_CREDENTIALS_RELATIVE_URI 环境变量且安全管理器可以访问,凭据将通过 Amazon EC2 容器服务提供。

    6. 通过 Amazon EC2 元数据服务传送的实例配置文件凭证。

  7. 如果您希望这个连接对当前项目的所有子项目都可用,那么请选中 可用于子项目 选项。

  8. 勾选 可用于构建步骤 选项,以允许在 AWS 凭证构建功能 功能设置中选择此连接。

  9. 测试并保存连接。

配置的 AWS 连接可以向 AWS Credentials 构建功能artifact S3 存储 以及使用 IAM 角色的其他 AWS 连接提供凭证。

推荐设置

亚马逊 密钥管理指南 建议使用 IAM 角色,而不是访问密钥和静态 IAM 用户凭证。 由于 IAM 角色会发行短期凭证,这种方法可以在您的凭证被意外泄露(无意或由于安全漏洞)的情况下,尽可能地减少潜在的损害。

TeamCity 允许您的项目使用假设 IAM 角色的连接来访问所需的 AWS 资源,而无需依赖本地存储的凭证。

  1. 在 AWS 管理控制台中,转到 IAM 仪表板,然后导航到 角色 选项卡。

  2. 创建一个新的 IAM 角色 不附带任何权限。 我们将把这个角色称为 "角色A"。

  3. 将您的 TeamCity 服务器机器配置为使用此角色而不是本地存储的凭证来访问 AWS。 根据您的机器的具体类型,所需步骤可能会有所不同。

  4. 在 TeamCity 中,创建一种新的 AWS 连接,其类型为 Default Credentials Provider Chain。 点击 Test Connection 以确保 TeamCity 使用您的空白 "Role A"。

  5. 如果您希望子项目能够访问这个新的连接,请勾选对子项目可用选项。 否则,只有拥有此连接的同一项目才能使用它。

    分享 AWS 连接
  6. 创建第二个 IAM 角色 ("角色 B") ,赋予其访问 AWS 资源 (例如,EC2 实例或 S3 桶) 所需的权限。

  7. 修改这个新的角色 B 的 信任关系,以允许角色 A 承担它。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "your-Role-A-ARN" }, "Action": "sts:AssumeRole" } ] }
  8. 在需要访问 AWS 资源的 TeamCity 项目中,创建另一个 AWS 连接。

    • 类型 — "IAM Role"。

    • AWS Connection—— 这是在第4步创建的连接。

    • Role ARN—— "Role B" 的 ARN。

    请注意,如果您在拥有主要“Default Credentials Provider Chain”连接的项目的子项目中配置此新连接,则必须启用此主连接的适用于子项目设置(见步骤5)。

  9. 点击 测试连接 以确保 TeamCity 可以假设 角色 B

    Running STS get-caller-identity... Caller Identity: Account ID: <your account ID> User ID: <user ID:session> ARN: <Role B ARN>
  10. 保存您的新连接并重新打开它。 您现在应该能看到连接的 External ID 值。

    AWS 连接的外部 ID
  11. 返回到角色 B 的 Trust relationships,并添加额外的条件:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "your-Role-A-ARN" }, "Condition": { "StringEquals": { "sts:ExternalId": "External-ID-copied-from-TeamCity" } }, "Action": "sts:AssumeRole" } ] }

因此,您现在有以下设置:

  • 主要的 Default credentials provider chain 连接不需要本地存储的凭证。

  • 这个共享的主要连接没有任何访问权限。 要访问 AWS 资源,需要假设其他 IAM 角色。

  • 由于在第11步中配置的条件,只有配置了“IAM Role”的TeamCity连接才能假定具有实际访问权限的角色。 TeamCity 管理员不能创建更多使用这些角色的连接。

    错误的外部 ID

    为了创建更多可以访问 Amazon 资源的连接,您的 AWS 管理员必须添加额外的条件,将这些新连接的外部 ID 添加到白名单中。

Amazon ECR

Amazon ECR(Elastic Container Registry)连接允许访问私有和公共的 AWS 注册表。 借助它,Docker 支持 构建功能可以将构建产生的 Docker / LXC 镜像存储到 AWS。

连接设置:

设置

描述

仓库类型

选择连接到私有公共注册表。

AWS 区域

(仅适用于私有注册表)请选择目标资源所在的 AWS 区域。

凭证类型

  • 访问密钥:选择以使用预配置的 AWS 帐户访问密钥。 您可以在 AWS 控制台的 Identity and Access Management 部分找到他们。

  • 临时凭证:通过 AWS STS 获取 临时访问密钥。 这样的凭证是短期的,并且可以随时被撤销。 他们并不属于特定的用户,并且可以根据需求提供 —— 以提供对特定资源的临时访问权限。

IAM 角色 ARN

仅适用于临时凭证

指定用于生成临时凭据的角色。 您需要在您的 AWS 控制台中提前创建此角色,并为其分配您需要的所有权限。

外部 ID

仅适用于临时凭证

指定一个 external ID。 我们强烈建议您在使用临时凭证时始终进行定义。 这确保了只有 TeamCity 能够使用指定的 IAM 角色。

默认凭据提供程序链

启用此选项可以根据 default chain 自动找到访问凭证。

如果您不希望在 TeamCity 环境中的任何地方存储凭据,那么建议使用此方法。 默认情况下,它将使用 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY 环境变量的值。

访问密钥 ID

指定访问密钥 ID。

查看如何获取 这里

密钥访问密钥

指定秘密访问密钥。

查看如何获取 这里

注册表 ID

请输入您的 account ID 号码。

Slack

这种连接类型用于通过 Slack 发送通知。

在配置 Slack 连接之前,您需要创建一个带有以下 机器人令牌范围Slack 应用程序channels:readchat:writeim:readim:writeusers:readteam:readgroups:read。 您可以在 Slack 应用的 Features | OAuth & Permissions | Scopes 中添加这些。

为确保您的 TeamCity 服务器可以连接到 Slack ,请在 功能 | OAuth & Permissions 中指定服务器所有可能的端点地址为 Redirect URLs。 在大多数情况下,只需在 TeamCity 中指定在 全局设置 中设置的服务器 URL即可。 然而,如果您为您的 TeamCity 服务器使用代理,但直接访问此服务器,除非在 Redirect URLs 中也指定了服务器的 IP 地址,否则 Slack 中的身份验证可能无法工作。

现在,您可以返回到 TeamCity ,添加新的 Slack 连接,并输入以下连接参数:

  • 应用的 基本信息 页面中的客户端 ID 和密钥

  • 您的应用的一个 bot user token

配置的 Slack 连接被 Notifier 构建功能和 Service Messages 使用。

JetBrains Space

此类连接可用于:

有两种方式可以配置 Space 连接:

  • 自动化 —— TeamCity 配置具有所有所需权限的只读 Space applications,并将其安装到您的 Space 实例中。

  • 手动 — 需要您手动创建并安装 Space 应用程序,然后在 TeamCity 中设置连接设置。

自动连接

要配置一个在 JetBrains Space 中存储的用于构建和部署的 TeamCity 项目,您需要两个独立的连接:

  • 组织连接" — 存储常规连接设置的入口点,允许 TeamCity 访问您的 Space 实例。

  • 项目连接 — 允许 TeamCity 访问一个特定的项目及其仓库。

您只需要在父级 TeamCity 项目中配置单个组织连接即可。 然而,要访问单独的 Space 项目,您将需要单独的项目连接。

配置组织连接:

  1. 导航至 Administration | <Your Project> | Connections

  2. 点击 添加连接 并从下拉菜单中选择 JetBrains Space

  3. 创建模式 下选择 自动:组织连接

  4. 输入您的新连接名称,然后点击 Create Space Application

  5. TeamCity 将打开一个单独的浏览器窗口,允许您选择所需的 Space 实例:

    选择 Space 实例
    • Space Cloud — 点击所需 Space Cloud 实例旁的 安装,或者如果您当前正在使用不同的用户帐户登录,则点击 尝试使用其他电子邮件

    • Space On-Premises — 输入 Space 组织 URL 并点击 安装

  6. 输入 Space 应用的名称和可选描述,然后点击 Install

    安装 Space 应用
  7. 点击 批准全部并返回 TeamCity 以授予新安装的 Space 应用所需的权限。

在组织连接配置并安装后,TeamCity具有权限安装其他应用程序并扫描项目列表。 添加新的构建配置或创建新的 VCS 根,选择组织连接作为源以查看此列表(您首次尝试需要授权给 TeamCity):

Space 项目

请注意,所有项目在初始时,其 Space 图标均为灰色的。 这意味着 TeamCity 尚无法访问这些项目中的仓库。 授予 TeamCity 所需的权限:

  1. 点击所需的项目。

  2. 点击 Proceed。 TeamCity 将创建并安装一个新的预配置应用程序,该应用程序具有访问此特定项目所需的所有权限。

  3. 遵照屏幕上的指示,导航至 Space 管理仪表板并批准这些权限请求。

您现在应该能看到所有已添加到此项目的仓库。 安装了允许 TeamCity 访问其仓库的应用程序的 Space 项目,将显示彩色的 Space 图标。

空间项目连接

您可以添加更多的项目连接,以允许 TeamCity 访问同一组织内的额外 Space 项目。 为了做到这一点,请导航至 管理 | <您的项目> | 连接,并使用 自动:项目连接 创建类型来创建新的 Space 连接。 一旦您在此项目(或其父项目)中添加了组织连结,这个选项便会变得可用。

新的空间项目连接

单个 Space 项目连接也可以被 提交状态发布器Pull Request 构建功能用来与项目仓库进行交互。 空间组织连接反过来允许您的用户使用他们的 Space 凭证在 TeamCity 中 登录

由项目级自动连接配置的 Space 应用程序发出访问令牌,VCS 根和构建功能使用这些令牌来访问项目存储库。 这些访问令牌不包含个人信息,这意味着如果初始设置 TeamCity 项目并发放令牌的用户离开了您的组织,这些项目仍能正常运作,而无需更新。 如果您需要重新颁发 Space 令牌,点击 VCS 根目录"身份验证设置"部分下的 获取新的 按钮。

可刷新的访问令牌

手动连接

配置到 JetBrains Space 的手动连接包括两个步骤:创建具有所需权限的 Space 应用程序,并在 TeamCity UI 中设置连接设置。

创建 Space 应用程序

  1. 管理 | 应用程序,然后点击 新应用程序

  2. 输入一个方便的名称并保存应用程序。

  3. 请转到应用的 授权 标签页,然后在 上下文相关授权 部分下点击 配置要求。 请输入您即将从 TeamCity 访问的 Space 项目的名称。

  4. 现在,您需要设置将授予此项目中应用程序的权限。 点击 Configure 并启用以下权限:

    • 需要进行身份验证和 Pull Requests:

      • 成员 | 查看成员资料

    • 需要 Commit Status Publisher:

      • Git 仓库 | 报告外部检查状态

      • 代码审查评论 | 发表对代码审查的评论

    • 需要进行拉取请求:

      • 代码审查 | 查看代码审查

    如果您是项目的管理员,您可以直接在此 Authorization 标签页中批准项目级别的权限。 查看成员个人资料等全局权限,需要服务器管理员的批准。

  5. 返回应用程序的 概览 并打开 身份验证 标签。

  6. 启用 Client Credentials Flow

  7. 为了能够通过 Space 在 TeamCity 中进行身份验证或者/以及从 Space 仓库创建项目/配置,请同时启用 Authorization Code Flow。 将您的 TeamCity 服务器的 URL 输入为重定向 URI。
    为确保您的 TeamCity 服务器始终可以连接到 JetBrains Space,请指定服务器的所有其他可能的端点地址。 在大多数情况下,只需指定在 TeamCity 中的 全局设置 设置的 服务器 URL 即可。 然而,如果您为您的 TeamCity 服务器使用代理,但直接访问此服务器,除非也在此处指定了服务器的 IP 地址,否则身份验证可能无法正常工作。

  8. 复制应用程序的 Client IDClient secret

注意:当您在 JetBrains Space 中创建一个项目时,它并不会自动将您添加到此项目作为一个成员 - 这需要手动完成。 TeamCity 只能查看您被列为成员的那些项目。

在 TeamCity 用户界面配置连接

当您的 Space 连接配置并安装好后,请返回到 TeamCity 并添加一个新的 JetBrains Space 连接。 在连接设置中,输入以下连接参数:

  • Space 服务器的 URL

  • 您的 Space 应用的客户端 ID 和秘密

保存连接并继续添加 Commit Status PublisherPull Requests 功能,启用 Space 认证,或创建一个 项目 / 构建配置 / VCS 根

NPM 注册表

这种连接类型允许在构建过程中访问私有的 npm registry

连接设置:

设置

描述

作用域

指定一个 npm 用户/组织的 范围(带有或者不带有 @ 字符),用以 关联 到已连接的注册表。 如果您想在每个项目中使用多个注册表,您需要为每个注册表指定一个范围。

如果您只想在此项目中使用一个注册表,请留空。 它将默认被 npm / yarn 命令使用。

注册表URL

以以下格式指定 npm 注册表 URL: http(s)://主机名[:端口]。 例如, https://npm.pkg.jetbrains.space/mycompany/p/projectkey/mynpm。 默认使用 HTTPS 方案。

访问令牌

如果需要访问注册表,指定一个 token。 留空以进行匿名访问。 请注意,基于令牌的身份验证可能会因注册类型的不同而有所不同。 参阅 npm EnterpriseSpace PackagesGitHub Packages 的说明。

保存连接并继续添加 NPM Registry Connection 构建功能。

Perforce 管理员访问权限

这种类型的连接允许在您的 Perforce 服务器上处理 处理任务流。 在连接设置中,输入用于访问 Perforce 服务器的主机和用户凭据(用户必须具有 admin 权限)。

最后修改日期: 16日 7月 2024年