GitLab for Jira Cloud 应用开发
开发者有几种方式来为 GitLab for Jira Cloud 应用设置开发环境:
- 一个完整的 带 Jira 的环境。当您需要测试与 Jira 的交互时使用此选项。
- 一个完整的 带 Jira Connect proxy 的环境。当您需要测试多个 GitLab 实例通过 Jira Connect proxy 连接到 Jira,或者测试对 Jira Connect proxy 本身的更改时使用此选项。
- 一个本地 不带 Jira 的环境。如果您不需要 Jira,例如在测试 GitLab 前端时,可以使用这个更快的设置。
设置带 Jira 的环境
安装应用需要以下条件:
-
一个 Jira Cloud 实例。Atlassian 提供了 用于开发和测试的免费实例。
-
一个可通过互联网访问的 GitLab 实例。为了使应用正常工作,Jira Cloud 应该能够通过互联网连接到 GitLab 实例。为此,我们建议使用 Gitpod 或类似的云开发环境。有关使用 Gitpod 与 GDK 的更多信息,请参见:
- GDK with Gitpod 文档。
- GDK in Gitpod 视频。
GitLab 团队成员 必须不要 使用 Serveo 或
ngrok等隧道工具。这些是安全风险,不能在 GitLab 开发人员笔记本电脑上运行。Jira 要求所有到应用主机的连接都必须使用 SSL。如果您设置自己的环境,请记得启用 SSL 和适当的证书。
设置 GitPod
如果您使用 Gitpod
您必须 将端口 3000 设为公开。
在 Jira 中安装应用
要在 Jira 中安装应用:
-
启用 Jira 开发模式以安装来自 Atlassian Marketplace 的应用:
- 在 Jira 中,转到 Jira 设置 > 应用 > 管理应用。
- 滚动到 管理应用 页面底部并选择 设置。
- 选择 启用开发模式 并选择 应用。
-
安装应用:
-
在 Jira 中,转到 Jira 设置 > 应用 > 管理应用。
-
选择 上传应用。
-
在 从此 URL 字段中,提供应用描述符的链接。主机和端口必须指向您的 GitLab 实例。
例如:
https://xxxx.gitpod.io/-/jira_connect/app_descriptor.json -
选择 上传。
如果安装成功,您应该在 管理应用 下看到 GitLab for Jira Cloud 应用。 您还可以选择 入门 来打开从您的 GitLab 实例渲染的配置页面。
请注意,对应用描述符的任何更改都需要您先卸载然后重新安装应用。
-
-
如果 已安装并准备就绪! 对话框打开,要求您 开始,请先不要开始,而是选择 关闭。
-
您现在必须 设置 OAuth 认证流程。
设置 GitLab OAuth 认证流程
GitLab for Jira 用户使用 GitLab OAuth 认证 GitLab。
在执行这些步骤之前,请确保您已经 在 Jira 中安装了应用,否则 Jira 中的应用安装会失败。
以下步骤描述了设置环境来测试 GitLab OAuth 流程:
- 启动一个 Gitpod 会话。
- 在您的 GitLab 实例上,转到 Admin > Applications。
- 创建一个具有以下设置的新应用:
- 名称:
GitLab for Jira - 重定向 URI:
YOUR_GITPOD_INSTANCE/-/jira_connect/oauth_callbacks - 受信任:否
- 机密:否
- 范围:
api
- 名称:
- 复制 Application ID 值。
- 转到 Admin > Settings > General。
- 展开 GitLab for Jira App。
- 将 Application ID 值粘贴到 Jira Connect Application ID 中。
- 在 Jira Connect Proxy URL 中,输入
YOUR_GITPOD_INSTANCE(例如,https://xxxx.gitpod.io)。 - 启用公钥存储:保持未选中状态。
- 选择 保存更改。
在 Jira 中设置应用
在执行这些步骤之前,请确保您已经 先设置了 OAuth,否则这些步骤会失败。
- 在 Jira 中,转到 Jira 设置 > 应用 > 管理应用。
- 滚动到 用户安装的应用,找到您的 GitLab for Jira Cloud 应用并展开它。
- 选择 入门。
您应该能够使用您的 GitLab 实例进行身份验证并开始链接群组。
故障排除
应用安装失败
如果应用安装失败,您可能需要从数据库中删除 jira_connect_installations。
- 打开 数据库控制台。
- 运行
TRUNCATE TABLE jira_connect_installations CASCADE;。
无权访问文件
如果您使用 Gitpod 并收到关于 Jira 无法访问描述符文件的错误,您需要 将 GitPod 端口设为公开。
设置 Jira Connect Proxy
当 GitLab Self-Managed 实例 从 Atlassian Marketplace 安装 GitLab for Jira 应用 时,该实例必须使用 GitLab.com 作为 Jira Connect proxy。如果您需要开发或测试诸如 Jira 生命周期事件处理 和 分支创建 之类的功能,您可以模拟此设置。
要设置开发用的 Jira Connect Proxy:
- 一个 Jira Cloud 实例。Atlassian 提供了 用于开发和测试的免费实例。
- 两个可通过互联网访问的 GitLab 实例。
-
一个用作 Jira Connect proxy(模拟 GitLab.com)
-
一个用作将通过 Jira Connect proxy 连接到 Jira 的 GitLab 实例
-
为了使应用正常工作,Jira Cloud 应该能够通过互联网连接到 Jira Connect proxy 实例。为此,我们建议使用 Gitpod 或类似的云开发环境。有关使用 Gitpod 与 GDK 的更多信息,请参见:
- GDK with Gitpod 文档。
- GDK in Gitpod 视频。
GitLab 团队成员 必须不要 使用 Serveo 或
ngrok等隧道工具。这些是安全风险,不能在 GitLab 开发人员笔记本电脑上运行。Jira 要求所有到应用主机的连接都必须使用 SSL。如果您设置自己的环境,请记得启用 SSL 和适当的证书。
-
设置 GitPod
如果您使用 Gitpod
您必须 将端口 3000 设为公开。
设置 Jira Connect proxy 实例
-
对于 Jira Connect proxy 实例,按照 GDK with Gitpod 说明启动一个新的 Gitpod 工作区。
-
通过遵循 设置 GitLab OAuth 认证流程 部分在 Jira Connect proxy 上设置 OAuth 认证。
-
将 Jira Connect proxy 配置为代理。
在 Jira 中安装 GitLab for Jira Cloud 应用
遵循 在 Jira 中安装应用 部分,但使用您的 Jira Connect proxy 实例的 URL 作为应用描述符:
https://JIRA_CONNECT_PROXY_INSTANCE/-/jira_connect/app_descriptor.json如果 已安装并准备就绪! 对话框打开,选择 关闭(不要选择 入门)。
设置第二个 GitLab 实例
-
使用 Gitpod 设置第二个 GitLab 实例,遵循与代理实例相同的 GDK with Gitpod 说明
-
按照与 设置 GitLab OAuth 认证流程 相同的步骤在此实例上设置 OAuth 认证,但有一个关键区别:
-
设置 重定向 URI 时,使用您的 Jira Connect proxy 实例的 URL,而不是此辅助实例:
https://JIRA_CONNECT_PROXY_INSTANCE/-/jira_connect/oauth_callbacks
-
-
配置此 GitLab 实例以使用代理:
- 转到 Admin > Settings > General
- 展开 GitLab for Jira App
- 将 Application ID 值粘贴到 Jira Connect Application ID
- 在 Jira Connect Proxy URL 中,输入
JIRA_CONNECT_PROXY_INSTANCE(例如,https://xxxx.gitpod.io) - 选择 保存更改
在 Jira 中完成设置
- 在 Jira 中,转到 Jira 设置 > 应用 > 管理应用。
- 滚动到 用户安装的应用,找到您的 GitLab for Jira Cloud 应用并展开它。
- 选择 入门。
- 要将应用链接到第二个 GitLab 实例,选择 更改 GitLab 版本。
- 选择所有复选框,然后选择下一步。
- 在 GitLab 实例 URL 中,输入
GITLAB_INSTANCE(例如,https://xxxx.gitpod.io),然后选择保存。 - 选择 登录 GitLab。
- 选择 授权。现在会显示一个群组列表。
- 选择 链接群组。
- 要链接到群组,选择 链接。
不带 Jira 的设置
如果您不需要使用 Jira 进行测试,您可以使用 Jira connect 测试工具 和您的本地 GDK。
-
克隆 Jira-connect-test-tool
git clone [email protected]:gitlab-org/manage/integrations/jira-connect-test-tool.git。 -
启动应用
bundle exec rackup。(该应用需要您的 GDK GitLab 在http://127.0.0.1:3000上可用。)。 -
打开
config/gitlab.yml并取消注释jira_connect配置。 -
如果在除
localhost之外的域上运行 GDK,您必须将该域添加到additional_iframe_ancestors。例如:additional_iframe_ancestors: ['localhost:*', '127.0.0.1:*', 'gdk.test:*'] -
重启 GDK。
-
转到
http://127.0.0.1:3000/-/user_settings/personal_access_tokens。 -
创建一个具有
api范围的新令牌并复制该令牌。 -
转到
http://localhost:9292。 -
粘贴令牌并选择 安装 GitLab.com Jira Cloud 应用。