- 极狐GitLab 数据同步到 Jira
- 安装 JiHu GitLab for Jira Cloud 应用程序
- 配置 JiHu GitLab for Jira Cloud 应用程序
- 配置 Jira 服务管理
- 更新 JiHu GitLab for Jira Cloud 应用程序
- 安全考虑
- 故障排除
Jira Cloud 应用的极狐GitLab
使用 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 应用程序:
- 在 Jira 的顶部栏上,选择 应用程序 > 探索更多应用程序,然后搜索
JiHu GitLab for Jira Cloud
。 - 选择 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。
- 在 Jira 的顶部栏上,选择 应用程序 > 管理您的应用程序。
- 展开 JiHu GitLab for Jira。取决于您如何安装应用程序,应用程序的名称是:
- GitLab for Jira (jihulab.com),如果您从 Atlassian Marketplace 安装应用程序。
-
JiHu GitLab for Jira (
<jihulab.example.com>
),如果您手动安装应用程序。
- 选择 开始。
- 可选。选择 更改极狐GitLab 版本 将极狐GitLab 实例设置为与 Jira 一起使用。
- 选择所有勾选框,然后选择 下一步。
- 输入您的 极狐GitLab 实例 URL,然后选择 保存。
-
选择 登录极狐GitLab。
为群组禁用了密码认证的企业用户必须首先使用其群组的单点登录 URL 登录极狐GitLab。 - 选择 授权。现在可以看到群组列表。
- 选择 链接群组。
- 要链接到某个群组,选择 链接。
关联到极狐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
被移除。
先决条件:
- 必须安装了 JiHu GitLab for Jira Cloud app。
- 在 JiHu GitLab for Jira Cloud app 配置中关联了极狐GitLab 群组。
您可以将极狐GitLab 连接到您的 IT 服务项目中以追踪您的部署:
配置发生在极狐GitLab、JiHu GitLab for Jira Cloud app 集成中。在极狐GitLab 中,在极狐GitLab 群组被链接后,集成自动为群组中的子群组、项目启用。
启用和禁用 JiHu GitLab for Jira Cloud 应用程序集成完全通过群组链接自动进行,而不是通过极狐GitLab 集成表单或 API。
在 Jira 服务管理上:
- 在您的服务项目上,前往 项目设置 > 变更管理。
- 选择 Connect Pipeline > GitLab,然后复制 Service ID。
在极狐GitLab 上:
- 在左侧侧边栏上,选择 查找或转到 并找到您的项目。
- 选择 设置 > 集成。
- 选择 JiHu GitLab for Jira Cloud app。如果集成是禁用的,首先链接一个极狐GitLab 群组,这会为群组、子群组和项目启用 JiHu GitLab for Jira Cloud app 集成。
- 在 服务 ID 字段中,输入您要映射到此项目的 service ID。要使用多个 service ID,用逗号分隔每个 service ID。
您可以映射至 100 个服务。
设置极狐GitLab 部署门禁
- 自极狐GitLab 17.6 引入。
您可以设置部署门禁,将极狐GitLab 的变更请求带到 Jira 服务管理进行审批。通过部署门禁,任何对您选定环境的极狐GitLab 部署都会自动发送到Jira 服务管理,并且只有在获得批准后才会部署。
创建服务账号令牌
要在极狐GitLab 中创建服务账号令牌,您必须首先创建一个个人访问令牌。这个令牌用于验证服务帐户令牌,该令牌用于在Jira 服务管理中管理极狐GitLab 部署。
要创建服务账号令牌:
- 创建服务账号用户.
- 通过使用您的个人访问令牌将服务账号添加到群组或项目。
- 将服务账号添加到受保护环境.
- 使用您的个人访问令牌生成一个服务账号令牌。
- 拷贝服务账号令牌值。
启用部署门禁
要启用部署门禁:
-
在极狐GitLab 中:
- 在左侧侧边栏上,选择 查找或转到 并找到您的项目。
- 选择 设置 > 集成。
- 选择 JiHu GitLab for Jira Cloud app。
- 在 部署门禁 下,选择 启用部署门禁 勾选框。
- 在 环境层级 文本框中,输入您要启用部署门禁的环境的名称。您可以输入多个环境名称,用逗号分隔(例如,
production、staging、testing、development
)。只使用小写字母。 - 选择 保存更改。
-
在 Jira 服务管理上:
- 设置部署门禁
- 在 服务账号令牌 文本框中,粘贴您从 GitLab 复制的服务账号令牌值。
将服务账号添加到受保护环境
在极狐GitLab,将服务账号添加到您的受保护环境中:
- 在左侧侧边栏上,选择 查找或转到 并找到您的项目。
- 选择 设置 > CI/CD。
- 展开 受保护环境,然后选择 保护环境。
- 从 选择环境 下拉列表中,选择您要保护的环境(例如,staging)。
- 从 允许部署 下拉列表中,选择可以部署到此环境的人(例如,开发人员 + 维护人员)。
- 从 审批者 下拉列表中,选择您创建的服务账号。
- 选择 保护。
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 项目的 READ
、WRITE
和 DELETE
应用范围。这些范围允许更新 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 管理。
Failed to link group
当您连接 JiHu GitLab for Jira Cloud 应用程序后,您可能会遇到以下错误:
Failed to link group. Please try again.
如果因为权限不足而无法从 Jira 获取用户信息,则会返回一个 403 Forbidden
。
要解决此问题,确保您满足特定的 Jira 用户需求。