Jira Cloud 应用的极狐GitLab

note 此页面包含有关在 JihuLab.com 上配置 JiHu GitLab for Jira Cloud 应用程序的信息。

使用 JiHu GitLab for Jira Cloud 应用程序,您可以连接极狐GitLab 和 Jira Cloud,实时同步开发信息。您可以在 Jira 开发面板中查看此信息。

您可以使用 JiHu GitLab for Jira Cloud 关联顶级群组或子群组。无法直接关联项目或私有命名空间。

要在 JihuLab.com 上设置 JiHu GitLab for Jira Cloud 应用程序,请安装 JiHu GitLab for Jira Cloud 应用程序

对于 Jira Data Center 或 Jira Server,请使用 Atlassian 开发和维护的 Jira DVCS 连接器

极狐GitLab 数据同步到 Jira

关联群组后,当您提及 Jira 议题 ID 时,该群组中所有项目的以下极狐GitLab 数据将同步到 Jira:

  • 现有项目数据(关联群组之前):
    • 最近 400 个合并请求
    • 最近 400 个分支以及对每个分支的最后一次提交(15.11 及更高版本)
  • 新项目数据(关联群组后):
    • 合并请求
      • 合并请求作者
    • 分支
    • 提交
      • 提交作者
    • 流水线
    • 部署
    • 功能标志

安装 JiHu GitLab for Jira Cloud 应用程序

先决条件:

  • 您必须拥有 Jira 实例的站点管理员访问权限。
  • 您的网络必须允许极狐GitLab 和 Jira 之间的入站和出站连接。

要安装 JiHu GitLab for Jira Cloud 应用程序:

  1. 在 Jira 的顶部栏上,选择 应用程序 > 探索更多应用程序,然后搜索 JiHu GitLab for Jira Cloud
  2. 选择 JiHu GitLab for Jira Cloud,然后选择 立即获取

或者,直接从 Atlassian Marketplace 获取应用程序

您现在可以配置 JiHu GitLab for Jira Cloud

配置 JiHu GitLab for Jira Cloud 应用程序

添加命名空间 重命名为 关联群组 于极狐GitLab 16.1。

先决条件:

  • 您必须至少具有极狐GitLab 群组的维护者角色。
  • 您必须拥有 Jira 实例的站点管理员访问权限。

您可以通过将 JiHu GitLab for Jira Cloud 应用程序关联到一个或多个极狐GitLab 群组,将数据从极狐GitLab 同步到 Jira。

  1. 在 Jira 的顶部栏上,选择 应用程序 > 管理您的应用程序
  2. 展开 JiHu GitLab for Jira。取决于您如何安装应用程序,应用程序的名称是:
  3. 选择 开始
  4. 可选。选择 更改极狐GitLab 版本 将极狐GitLab 实例设置为与 Jira 一起使用。
    1. 选择所有勾选框,然后选择 下一步
    2. 输入您的 极狐GitLab 实例 URL,然后选择 保存
  5. 选择 登录极狐GitLab

    note 为群组禁用了密码认证企业用户必须首先使用其群组的单点登录 URL 登录极狐GitLab。
  6. 选择 授权。现在可以看到群组列表。
  7. 选择 链接群组
  8. 要链接到某个群组,选择 链接

关联到极狐GitLab 群组后:

  • 该群组中所有项目的数据都会同步到 Jira。初始数据同步以每分钟 20 个项目的批次进行。对于项目较多的群组,部分项目的数据同步会出现延迟。
  • 极狐GitLab for Jira Cloud app 集成自动为群组中的子群组、项目启用。集成允许您配置 Jira 服务管理

配置 Jira 服务管理

  • 自极狐GitLab 17.2 以 enable_jira_connect_configuration 功能标志引入。默认禁用。
  • 在极狐GitLab 17.4 中 GA。功能标志 enable_jira_connect_configuration 被移除。
note 此功能由社区贡献而来,所以仅由 GitLab 社区开发和维护。

先决条件:

您可以将极狐GitLab 连接到您的 IT 服务项目中以追踪您的部署:

配置发生在极狐GitLab、JiHu GitLab for Jira Cloud app 集成中。在极狐GitLab 中,在极狐GitLab 群组被链接后,集成自动为群组中的子群组、项目启用。

启用和禁用 JiHu GitLab for Jira Cloud 应用程序集成完全通过群组链接自动进行,而不是通过极狐GitLab 集成表单或 API。

在 Jira 服务管理上:

  1. 在您的服务项目上,前往 项目设置 > 变更管理
  2. 选择 Connect Pipeline > GitLab,然后复制 Service ID

在极狐GitLab 上:

  1. 在左侧侧边栏上,选择 查找或转到 并找到您的项目。
  2. 选择 设置 > 集成
  3. 选择 JiHu GitLab for Jira Cloud app。如果集成是禁用的,首先链接一个极狐GitLab 群组,这会为群组、子群组和项目启用 JiHu GitLab for Jira Cloud app 集成。
  4. 服务 ID 字段中,输入您要映射到此项目的 service ID。要使用多个 service ID,用逗号分隔每个 service ID。

您可以映射至 100 个服务。

设置极狐GitLab 部署门禁

  • 自极狐GitLab 17.6 引入。
note 此功能由社区贡献并由极狐GitLab 社区开发和维护。

您可以设置部署门禁,将极狐GitLab 的变更请求带到 Jira 服务管理进行审批。通过部署门禁,任何对您选定环境的极狐GitLab 部署都会自动发送到Jira 服务管理,并且只有在获得批准后才会部署。

创建服务账号令牌

要在极狐GitLab 中创建服务账号令牌,您必须首先创建一个个人访问令牌。这个令牌用于验证服务帐户令牌,该令牌用于在Jira 服务管理中管理极狐GitLab 部署。

要创建服务账号令牌:

  1. 创建服务账号用户.
  2. 通过使用您的个人访问令牌将服务账号添加到群组或项目
  3. 将服务账号添加到受保护环境.
  4. 使用您的个人访问令牌生成一个服务账号令牌
  5. 拷贝服务账号令牌值。

启用部署门禁

要启用部署门禁:

  • 在极狐GitLab 中:

    1. 在左侧侧边栏上,选择 查找或转到 并找到您的项目。
    2. 选择 设置 > 集成
    3. 选择 JiHu GitLab for Jira Cloud app
    4. 部署门禁 下,选择 启用部署门禁 勾选框。
    5. 环境层级 文本框中,输入您要启用部署门禁的环境的名称。您可以输入多个环境名称,用逗号分隔(例如,production、staging、testing、development)。只使用小写字母。
    6. 选择 保存更改
  • 在 Jira 服务管理上:

    1. 设置部署门禁
    2. 服务账号令牌 文本框中,粘贴您从 GitLab 复制的服务账号令牌值

将服务账号添加到受保护环境

在极狐GitLab,将服务账号添加到您的受保护环境中:

  1. 在左侧侧边栏上,选择 查找或转到 并找到您的项目。
  2. 选择 设置 > CI/CD
  3. 展开 受保护环境,然后选择 保护环境
  4. 选择环境 下拉列表中,选择您要保护的环境(例如,staging)。
  5. 允许部署 下拉列表中,选择可以部署到此环境的人(例如,开发人员 + 维护人员)。
  6. 审批者 下拉列表中,选择您创建的服务账号
  7. 选择 保护

API 请求示例

  • 创建一个服务账号用户:

    curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --data "name=<name_of_your_choice>&username=<username_of_your_choice>"  "<https://gitlab.com/api/v4/groups/<group_id>/service_accounts"
    
  • 通过使用您的个人访问令牌,将服务账号添加到群组或项目:

    curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
         --data "user_id=<service_account_id>&access_level=30" "https://gitlab.com/api/v4/groups/<group_id>/members"
    curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
         --data "user_id=<service_account_id>&access_level=30" "https://gitlab.com/api/v4/projects/<project_id>/members"
    
  • 通过使用您的个人访问令牌生成一个服务账号:

    curl --request POST --header "PRIVATE-TOKEN: <your_access_token>"
    "https://gitlab.com/api/v4/groups/<group_id>/service_accounts/<service_account_id>/personal_access_tokens" --data "scopes[]=api,read_user,read_repository" --data "name=service_accounts_token"
    

更新 JiHu GitLab for Jira Cloud 应用程序

该应用程序的大多数更新都是全自动的。有关详细信息,请参阅 Atlassian Marketplace 文档

如果应用程序需要额外的权限,必须首先在 Jira 中手动批准更新

安全考虑

JiHu GitLab for Jira Cloud 应用程序连接极狐GitLab 和 Jira。数据必须在两个应用程序之间共享,并且必须授予双向的访问权限。

GitLab access to Jira

当您配置 JiHu GitLab for Jira Cloud app时,极狐GitLab 会从 Jira 收到一个共享密钥令牌。该令牌授予极狐GitLab 对 Jira 项目的 READWRITEDELETE 应用范围。这些范围允许更新 Jira 项目开发面板中的信息。该令牌不授予极狐GitLab 访问除安装了应用程序的 Jira 项目之外的其他 Atlassian 产品。

令牌用 AES256-GCM 加密并存储在极狐GitLab 中。当从您的 Jira 项目中卸载 JiHu GitLab for Jira Cloud 应用程序时,极狐GitLab 将删除该令牌。

Jira 访问极狐GitLab

Jira 不会向极狐GitLab 获取任何访问。

数据从极狐GitLab 发送到 Jira

对于发送到 Jira 的所有数据,查看极狐GitLab 到 Jira 的数据同步

数据从 Jira 发送到极狐GitLab

当 JiHu GitLab for Jira Cloud app 被安装或卸载时,极狐GitLab 会从 Jira 收到一个生命周期事件。

该事件包括一个令牌来验证后续生命周期事件,并在将数据发送到 Jira时进行身份验证。

从 Jira 来的生命周期事件请求是被验证的。

对于来自 Atlassian Marketplace 且使用 JiHu GitLab for Jira Cloud app 的私有化部署实例来说,JihuLab.com 会处理生命周期事件并将其转发到私有化部署实例。有关详细信息,请参阅[极狐

Jira 存储的数据

发送给 Jira 的数据会存储在 Jira 中并展示在Jira 开发者面板中

当卸载 JiHu GitLab for Jira Cloud app 时,Jira 会永久删除此数据。此过程是异步的,可能需要几个小时。

故障排除

在 JihuLab.com 上配置 JiHu GitLab for Jira Cloud 应用程序时,您可能会遇到以下问题。

对私有化部署极狐GitLab,查看 极狐GitLab for Jira Cloud app 管理

当您连接 JiHu GitLab for Jira Cloud 应用程序后,您可能会遇到以下错误:

Failed to link group. Please try again.

如果因为权限不足而无法从 Jira 获取用户信息,则会返回一个 403 Forbidden

要解决此问题,确保您满足特定的 Jira 用户需求