{{< details >}}
- Tier: 专业版, 旗舰版
- Offering: JihuLab.com, 私有化部署
{{< /details >}}
极狐GitLab CI/CD 可以通过创建一个 CI/CD 项目 来连接你的 GitHub 仓库,从而与 GitHub.com 和 GitHub Enterprise 一起使用。
观看关于 使用极狐GitLab CI/CD 流水线与 GitHub 仓库 的视频。
{{< alert type=”note” >}}
由于 GitHub 的限制,GitHub OAuth 不能用于作为外部 CI/CD 仓库与 GitHub 进行身份验证。
{{< /alert >}}
通过个人访问令牌连接
个人访问令牌只能用于将 GitHub.com 仓库连接到极狐GitLab,并且 GitHub 用户必须拥有所有者角色。
要执行一次性授权,以便 GitHub 授予极狐GitLab 访问你的仓库:
- 在 GitHub 中,创建一个令牌:
- 打开 https://github.com/settings/tokens/new。
- 创建一个个人访问令牌。
- 输入 令牌描述 并更新范围以允许
repo
和admin:repo_hook
,以便极狐GitLab 可以访问你的项目,更新提交状态,并创建一个 Web Hook 来通知极狐GitLab 新的提交。
- 在极狐GitLab 中,创建一个项目:
- 在左侧边栏顶部,选择 创建新项目 ({{< icon name=”plus” >}}) 和 新项目/仓库。
- 选择 为外部仓库运行 CI/CD。
- 选择 GitHub。
- 对于 个人访问令牌,粘贴令牌。
- 选择 列出仓库。
- 选择 连接 以选择仓库。
- 在 GitHub 中,添加
.gitlab-ci.yml
以配置极狐GitLab CI/CD。
极狐GitLab:
- 导入项目。
- 启用 拉取镜像。
- 启用 GitHub 项目集成。
- 在 GitHub 上创建一个 Web Hook 来通知极狐GitLab 新的提交。
手动连接
要将 GitHub Enterprise 与 JihuLab.com 一起使用,请使用此方法。
要手动为你的仓库启用极狐GitLab CI/CD:
- 在 GitHub 中,创建一个令牌:
- 打开 https://github.com/settings/tokens/new。
- 创建一个 个人访问令牌。
- 输入 令牌描述 并更新范围以允许
repo
,以便极狐GitLab 可以访问你的项目并更新提交状态。
- 在极狐GitLab 中,创建一个项目:
- 在左侧边栏顶部,选择 创建新项目 ({{< icon name=”plus” >}}) 和 新项目/仓库。
- 选择 为外部仓库运行 CI/CD 和 按 URL 选择仓库。
- 在 Git 仓库 URL 字段中输入你的 GitHub 仓库的 HTTPS URL。如果你的项目是私密的,请使用你刚刚创建的个人访问令牌进行身份验证。
- 填写所有其他字段并选择 创建项目。极狐GitLab 会自动配置基于轮询的拉取镜像。
- 在极狐GitLab 中,启用 GitHub 项目集成:
- 在左侧边栏中,选择 设置 > 集成。
- 选择 活动 复选框。
- 将你的个人访问令牌和 HTTPS 仓库 URL 粘贴到表单中,并选择 保存。
- 在极狐GitLab 中,创建一个具有
API
范围的 个人访问令牌,以验证通知极狐GitLab 有新提交的 GitHub Web Hook。 -
在 GitHub 中,从 设置 > Webhooks 创建一个 Web Hook 来通知极狐GitLab 有新提交。
Web Hook URL 应设置为极狐GitLab API 以触发拉取镜像,使用我们刚刚创建的极狐GitLab 个人访问令牌:
https://gitlab.com/api/v4/projects/<NAMESPACE>%2F<PROJECT>/mirror/pull?private_token=<PERSONAL_ACCESS_TOKEN>
选择 让我选择单独的事件 选项,然后选中 拉取请求 和 推送 复选框。这些设置是 外部拉取请求流水线 所需的。
- 在 GitHub 中,添加一个
.gitlab-ci.yml
以配置极狐GitLab CI/CD。