作为 Code Stream 管理员或开发人员,您可以使用 Git 触发器将 Code Stream 云服务与 Git 生命周期集成。您在 GitHub、GitLab 或 Bitbucket Enterprise 中进行代码更改时,事件将通过 Webhook 与 Code Stream 通信,并触发管道运行。Webhook 适用于 GitLab、GitHub 和 Bitbucket 云和内部部署企业版本。

Code Stream 中添加适用于 Git 的 Webhook 时,它还会在 GitHub、GitLab 或 Bitbucket 存储库中创建 Webhook。如果以后更新或删除该 Webhook,GitHub、GitLab 或 Bitbucket 中的 Webhook 也会更新或删除。

Webhook 定义必须包含要监控的存储库分支上的 Git 端点。 Code Stream 使用该 Git 端点来创建 Webhook。如果该端点不存在,您可以在添加 Webhook 时创建该端点。此示例假设您在 GitHub 中有预定义的 Git 端点。

可以通过使用同一 Git 端点并在 Webhook 配置页面中为分支名称提供不同的值,为不同的分支创建多个 Webhook。要为同一 Git 存储库中的其他分支创建其他 Webhook,无需针对多个分支多次克隆 Git 端点。只需在 Webhook 中提供分支名称,即可重用 Git 端点。如果 Git Webhook 中的分支与端点中的分支相同,则无需在 Git Webhook 页面中提供分支名称。

此示例显示了如何将 Git 触发器与 GitHub 存储库结合使用,但必备条件包括使用其他 Git 服务器类型时需要做的准备工作。

前提条件

过程

  1. Code Stream 中,单击触发器 > Git
  2. 单击适用于 Git 的 Webhook 选项卡,然后单击新建适用于 Git 的 Webhook
    1. 选择一个项目。
    2. 为 Webhook 输入有意义的名称和说明。
    3. 选择为要监控的分支配置的 Git 端点。
      创建 Webhook 时,Webhook 定义包含当前端点的详细信息。
      • 如果稍后在端点中更改 Git 类型、Git 服务器类型或 Git 存储库 URL,则 Webhook 将无法再触发管道,因为它将尝试使用原始端点详细信息访问 Git 存储库。必须删除 Webhook,然后重新创建包含该端点的 Webhook。
      • 如果稍后在端点中更改身份验证类型、用户名或密码,则 Webhook 将继续运行。
      请参见 如何将 Code Stream 与 Git 集成
    4. (可选) 输入希望 Webhook 监控的分支。
      如果未指定,Webhook 将监控为 Git 端点配置的分支。
    5. (可选) 为 Webhook 生成密钥令牌。
      如果使用, Code Stream 将为 Webhook 生成随机字符串令牌。随后,当 Webhook 收到 Git 事件数据时,它会将数据与密钥令牌一起发送。 Code Stream 使用这些信息来确定调用是否来自预期的源,例如已配置的 GitHub 实例、存储库和分支。密钥令牌可提供额外的安全层,用于验证 Git 事件数据是否来自正确的源。
    6. (可选) 提供文件包含或文件排除作为触发器的条件。
      • 通过提供文件包含,当提交中的任意文件与排除路径或正则表达式中指定的文件匹配时,将触发管道。如果指定正则表达式,则 Code Stream 仅当更改集中的文件名与提供的表达式匹配时才触发管道。为单个存储库中的多个管道配置触发器时,正则表达式筛选器很有用。
      • 通过提供文件排除,当提交中的所有文件与排除路径或正则表达式中指定的文件匹配时,不会触发管道。
      • 打开“排除优先”时,可确保即使提交中的任意文件与排除路径或正则表达式中指定的文件匹配也不触发管道。默认设置为“关闭”。
      如果同时满足包含和排除的条件,则不会触发管道。

      在以下示例中,文件包含和文件排除都是触发器的条件。

      文件包含和排除的示例。

      • 对于文件包含,提交对 runtime/src/main/a.java 或任意 java 文件的任何更改都将触发事件配置中配置的管道。
      • 对于文件排除,仅提交同时对这两个文件的更改不会触发事件配置中配置的管道。
    7. 对于 Git 事件,选择推送提取请求。
    8. 输入 API 令牌。
      CSP API 令牌将对您进行身份验证,以与 Code Stream 建立外部 API 连接。要获取 API 令牌,请执行以下操作:
      1. 登录到 vRealize Automation Cloud
      2. 单击您的用户名旁边的下拉箭头。
      3. 单击我的帐户
      4. 单击 API 令牌
      5. 单击生成令牌
        1. 输入令牌名称。
        2. 在“组织角色”下,选择组织所有者
        3. 在“服务角色”下,单击以展开 VMware Code Stream,然后选择 Code Stream 管理员
        4. 单击生成

          生成的令牌窗口将显示一个令牌,其中包含您指定的名称和组织的名称。

      6. 单击复制图标。

        单击复制可确保您捕获准确的字符串,比使用指针来复制字符串更可靠。

    9. 选择 Webhook 要触发的管道。
      如果为管道配置了自定义添加的输入参数,则“输入参数”列表将显示参数和值。您可以输入将通过触发器事件传递到管道的输入参数的值。或者,也可以将这些值留空,或使用默认值(如果已定义)。

      有关 Git 触发器的自动插入输入参数的信息,请参见必备条件

    10. 单击创建
      Webhook 将显示为新卡。
  3. 单击该 Webhook 卡。
    重新显示 Webhook 数据表单时,您会看到 Webhook URL 添加到表单顶部。Git Webhook 通过该 Webhook URL 连接到 GitHub 存储库。

    具有 Webhook URL 的 Git Webhook

  4. 在新的浏览器窗口中,打开通过 Webhook 连接的 GitHub 存储库。
    1. 要查看在 Code Stream 中添加的 Webhook,请单击设置选项卡,然后选择 Webhook
      在 Webhook 列表的底部,您会看到相同的 Webhook URL。

      GitHub 中的 Webhook 列表

    2. 要更改代码,请单击代码选项卡,然后在要编辑的分支上选择要编辑的文件。提交更改。
    3. 要验证 Webhook URL 是否正常运行,请单击设置选项卡,然后再次选择 Webhook
      在 Webhook 列表的底部,Webhook URL 旁边会显示一个绿色勾选标记。 GitHub 中带有绿色对勾标记的 Webhook
  5. 返回 Code Stream 以查看 Git Webhook 上的活动。单击触发器 > Git > 活动
    在“执行状态”下,验证管道运行是否已启动。

    为 Git 触发器启动的活动。

  6. 单击执行,以在管道运行过程中跟踪管道。
    可以按“刷新”按钮观察管道的执行情况。

    执行 Git 触发的管道

结果

恭喜!您已成功使用 Git 触发器运行管道。