{{< details >}}

  • Tier: 专业版, 旗舰版
  • Offering: JihuLab.com, 私有化部署

{{< /details >}}

极狐GitLab CI/CD 可以通过创建一个 CI/CD 项目 来连接你的 GitHub 仓库,从而与 GitHub.comGitHub Enterprise 一起使用。

观看关于 使用极狐GitLab CI/CD 流水线与 GitHub 仓库 的视频。

{{< alert type=”note” >}}

由于 GitHub 的限制,GitHub OAuth 不能用于作为外部 CI/CD 仓库与 GitHub 进行身份验证。

{{< /alert >}}

通过个人访问令牌连接

个人访问令牌只能用于将 GitHub.com 仓库连接到极狐GitLab,并且 GitHub 用户必须拥有所有者角色。

要执行一次性授权,以便 GitHub 授予极狐GitLab 访问你的仓库:

  1. 在 GitHub 中,创建一个令牌:
    1. 打开 https://github.com/settings/tokens/new
    2. 创建一个个人访问令牌。
    3. 输入 令牌描述 并更新范围以允许 repoadmin:repo_hook,以便极狐GitLab 可以访问你的项目,更新提交状态,并创建一个 Web Hook 来通知极狐GitLab 新的提交。
  2. 在极狐GitLab 中,创建一个项目:
    1. 在左侧边栏顶部,选择 创建新项目 ({{< icon name=”plus” >}}) 和 新项目/仓库
    2. 选择 为外部仓库运行 CI/CD
    3. 选择 GitHub
    4. 对于 个人访问令牌,粘贴令牌。
    5. 选择 列出仓库
    6. 选择 连接 以选择仓库。
  3. 在 GitHub 中,添加 .gitlab-ci.yml配置极狐GitLab CI/CD

极狐GitLab:

  1. 导入项目。
  2. 启用 拉取镜像
  3. 启用 GitHub 项目集成
  4. 在 GitHub 上创建一个 Web Hook 来通知极狐GitLab 新的提交。

手动连接

要将 GitHub EnterpriseJihuLab.com 一起使用,请使用此方法。

要手动为你的仓库启用极狐GitLab CI/CD:

  1. 在 GitHub 中,创建一个令牌:
    1. 打开 https://github.com/settings/tokens/new
    2. 创建一个 个人访问令牌
    3. 输入 令牌描述 并更新范围以允许 repo,以便极狐GitLab 可以访问你的项目并更新提交状态。
  2. 在极狐GitLab 中,创建一个项目:
    1. 在左侧边栏顶部,选择 创建新项目 ({{< icon name=”plus” >}}) 和 新项目/仓库
    2. 选择 为外部仓库运行 CI/CD按 URL 选择仓库
    3. Git 仓库 URL 字段中输入你的 GitHub 仓库的 HTTPS URL。如果你的项目是私密的,请使用你刚刚创建的个人访问令牌进行身份验证。
    4. 填写所有其他字段并选择 创建项目。极狐GitLab 会自动配置基于轮询的拉取镜像。
  3. 在极狐GitLab 中,启用 GitHub 项目集成
    1. 在左侧边栏中,选择 设置 > 集成
    2. 选择 活动 复选框。
    3. 将你的个人访问令牌和 HTTPS 仓库 URL 粘贴到表单中,并选择 保存
  4. 在极狐GitLab 中,创建一个具有 API 范围的 个人访问令牌,以验证通知极狐GitLab 有新提交的 GitHub Web Hook。
  5. 在 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>
    

    选择 让我选择单独的事件 选项,然后选中 拉取请求推送 复选框。这些设置是 外部拉取请求流水线 所需的。

  6. 在 GitHub 中,添加一个 .gitlab-ci.yml 以配置极狐GitLab CI/CD。