使用GitLab for Jira Cloud应用,您可以连接 GitLab 和 Jira Cloud,实时同步开发信息,您可以在Jira 开发面板中查看这些信息。
您可以使用 GitLab for Jira Cloud 应用程序链接顶级组或子组。无法直接链接项目或个人命名空间。
要在 GitLab.com 上设置 GitLab for Jira Cloud 应用程序,请安装 GitLab for Jira Cloud 应用程序。
设置应用程序后,您可以使用 Atlassian 开发和维护的项目工具链将GitLab 存储库链接到 Jira 项目。项目工具链不会影响 GitLab 和 Jira Cloud 之间开发信息的同步方式。
对于 Jira Data Center 或 Jira Server,使用由 Atlassian 开发和维护的Jira DVCS 连接器。
GitLab 数据同步到 Jira
链接组后,当您提及 Jira 问题 ID时,该组中所有项目的以下 GitLab 数据将同步到 Jira :
- 现有项目数据(链接组之前):
- 最后 400 个合并请求
- 最后 400 个分支以及每个分支的最后一次提交(GitLab 15.11 及更高版本)
- 新的项目数据(链接群组之后):
- 合并请求
- 合并请求作者
- 分支
- 提交
- 提交作者
- 管道
- 部署
- 功能标志
- 合并请求
安装 GitLab for Jira Cloud 应用程序
- 等级:免费、高级、终极
- 提供:GitLab.com
先决条件:
- 您的网络必须允许 GitLab 和 Jira 之间的入站和出站连接。
- 您必须满足某些Jira 用户要求。
要安装 GitLab for Jira Cloud 应用程序:
- 在 Jira 的顶部栏中,选择应用程序 > 探索更多应用程序,然后搜索
GitLab for Jira Cloud
。 - 选择GitLab for Jira Cloud,然后选择立即获取。
或者,直接从 Atlassian Marketplace 获取应用程序。
您现在可以配置 GitLab for Jira Cloud 应用程序。
有关概述,请参阅 从 Atlassian Marketplace for GitLab.com 安装 GitLab for Jira Cloud 应用程序。
配置 GitLab for Jira Cloud 应用程序
- 等级:免费、高级、终极
- 提供:GitLab.com
历史
先决条件:
- 您必须至少拥有 GitLab 组的维护者角色。
- 您必须满足某些Jira 用户要求。
您可以通过将 GitLab for Jira Cloud 应用程序链接到一个或多个 GitLab 组来将数据从 GitLab 同步到 Jira。要配置 GitLab for Jira Cloud 应用程序:
在 Jira 的顶部栏中,选择应用程序 > 管理您的应用程序。
展开GitLab for Jira。根据您安装应用程序的方式,应用程序的名称是:
- 如果您从 Atlassian Marketplace 安装了该应用程序,则GitLab for Jira(gitlab.com)。
<gitlab.example.com>
如果您手动安装了该应用程序,则 GitLab for Jira()。
选择“开始”。
可选。要将 GitLab Self-Managed 与 Jira 链接,请选择更改 GitLab 版本。
- 选中所有复选框,然后选择下一步。
- 输入您的GitLab 实例 URL,然后选择保存。
选择登录 GitLab。
选择授权。现在可以看到群组列表。
选择“链接群组”。
要链接到某个组,请选择链接。
链接到 GitLab 组后:
- 该群组的所有项目的数据都会同步到 Jira。初始数据同步以每分钟 20 个项目的批次进行。对于包含许多项目的群组,某些项目的数据同步会延迟。
- 系统会自动为该组及其所有子组或项目启用 GitLab for Jira Cloud 应用程序集成。该集成允许您配置 Jira 服务管理。
配置 Jira 服务管理
历史
此功能是作为社区贡献添加的,仅由 GitLab 社区开发和维护。
先决条件:
- 必须安装GitLab for Jira Cloud 应用程序。
- 要在 GitLab for Jira Cloud 应用程序配置中链接的 GitLab 组。
您可以将 GitLab 连接到您的 IT 服务项目以跟踪您的部署。
配置在 GitLab 中进行,在 GitLab for Jira Cloud 应用程序集成中。在链接 GitLab 组后,将为 GitLab 中的组、其子组和项目启用集成。
启用和禁用 GitLab for Jira Cloud 应用程序集成完全通过组链接自动进行,而不是通过 GitLab 集成表单或 API。
在 Jira 服务管理中:
- 在您的服务项目中,转到项目设置>变更管理。
- 选择Connect Pipeline > GitLab,然后在设置流程结束时复制服务 ID 。
在 GitLab 中:
- 在左侧栏中,选择“搜索”或转到并查找您的项目。
- 选择设置 > 集成。
- 选择GitLab for Jira Cloud 应用程序。如果集成被禁用,请首先链接一个 GitLab 组 ,为该组、其子组和项目启用 GitLab for Jira Cloud 应用程序集成。
- 在服务 ID字段中,输入要映射到此项目的服务 ID。要使用多个服务 ID,请在每个服务 ID 之间添加逗号。
您最多可以映射 100 个服务。
有关 Jira 中的部署跟踪的更多信息,请参阅设置部署跟踪。
使用 GitLab 设置部署门控
- 等级:高级、终极
- 提供:GitLab.com
历史
此功能是作为社区贡献添加的,仅由 GitLab 社区开发和维护。
您可以设置部署门控,将变更请求从 GitLab 发送到 Jira Service Management 进行审批。通过部署门控,任何 GitLab 部署到您选择的环境都会自动发送到 Jira Service Management,并且只有在获得批准后才会部署。
创建服务帐户令牌
要在 GitLab 中创建服务帐户令牌,您必须先创建个人访问令牌。此令牌用于验证在 Jira Service Management 中管理 GitLab 部署的服务帐户令牌。
要创建服务帐户令牌:
- 创建服务帐户用户。
- 使用您的个人访问令牌将服务帐户添加到组或项目。
- 将服务帐户添加到受保护的环境。
- 使用您的个人访问令牌生成服务帐户令牌。
- 复制服务帐户令牌值。
启用部署门控
要启用部署门控:
在 GitLab 中:
- 在左侧栏中,选择“搜索”或转到并查找您的项目。
- 选择设置 > 集成。
- 选择GitLab for Jira Cloud 应用程序。
- 在部署门控下,选中启用部署门控复选框。
- 在环境层级文本框中,输入要为其启用部署门控的环境的名称。您可以输入多个环境名称,并以逗号分隔(例如
production, staging, testing, development
)。仅使用小写字母。 - 选择“保存更改”。
在 Jira 服务管理中:
- 设置部署门控。
- 在服务帐户令牌文本框中,粘贴从 GitLab 复制的服务帐户令牌值。
将服务帐户添加到受保护环境
要将服务帐户添加到 GitLab 中的受保护环境:
- 在左侧栏中,选择“搜索”或转到并查找您的项目。
- 选择设置> CI/CD。
- 展开受保护的环境并选择保护环境。
- 从选择环境下拉列表中,选择要保护的环境(例如,暂存)。
- 从允许部署下拉列表中,选择谁可以部署到此环境(例如,开发人员 + 维护人员)。
- 从“审批者”下拉列表中,选择您创建的服务帐户。
- 选择保护。
示例 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"
更新 GitLab for Jira Cloud 应用程序
应用程序的大多数更新都是自动的。有关更多信息,请参阅 Atlassian 文档。
如果应用程序需要额外的权限,您必须在 Jira 中手动批准更新。
安全注意事项
GitLab for Jira Cloud 应用程序连接 GitLab 和 Jira。两个应用程序之间必须共享数据,并且必须双向授予访问权限。
GitLab 访问 Jira
当您配置 GitLab for Jira Cloud 应用程序时,GitLab 会从 Jira 收到一个共享密钥令牌。该令牌授予 Jira 项目的 GitLab READ
、WRITE
和DELETE
应用程序范围。这些范围是更新 Jira 项目开发面板中的信息所必需的。除了安装应用程序的 Jira 项目之外,该令牌不授予 GitLab 对任何其他 Atlassian 产品的访问权限。
令牌使用 GitLab 加密AES256-GCM
并存储在 GitLab 上。当从 Jira 项目中卸载 GitLab for Jira Cloud 应用程序时,GitLab 会删除该令牌。
Jira 访问 GitLab
Jira 无法访问 GitLab 的任何权限。
从 GitLab 发送到 Jira 的数据
有关发送到 Jira 的所有数据,请参阅同步到 Jira 的 GitLab 数据。
有关发送到 Jira 的特定数据属性的更多信息,请参阅数据同步中涉及的序列化器类。
从 Jira 发送到 GitLab 的数据
当安装或卸载 GitLab for Jira Cloud 应用程序时,GitLab 会从 Jira 收到生命周期事件。该事件包含一个令牌,用于验证后续生命周期事件并在向 Jira 发送数据时进行身份验证。来自 Jira 的生命周期事件请求已验证。
对于使用 Atlassian Marketplace 中的 GitLab for Jira Cloud 应用程序的 GitLab 自管理实例,GitLab.com 会处理生命周期事件并将其转发到 GitLab 自管理实例。有关更多信息,请参阅GitLab.com 处理应用程序生命周期事件。
Jira 存储的数据
发送到Jira的数据由Jira存储并显示在Jira开发面板中。
卸载 GitLab for Jira Cloud 应用程序后,Jira 会永久删除此数据。此过程异步进行,可能需要几个小时。
Atlassian Marketplace 中的隐私和安全详细信息
有关更多信息,请参阅Atlassian Marketplace 列表的隐私和安全详细信息。
故障排除
使用 GitLab for Jira Cloud 应用程序时,您可能会遇到以下问题。
有关管理员文档,请参阅GitLab for Jira Cloud 应用程序管理。
错误:Failed to link group
当您连接 GitLab for Jira Cloud 应用程序时,您可能会收到此错误:
复制到剪贴板
Failed to link group. Please try again.
403 Forbidden
如果由于权限不足而无法从 Jira 获取用户信息,则返回A。
要解决此问题,请确保您满足某些 Jira 用户要求。