Help us learn about your current experience with the documentation. Take the survey.
使用 GitLab CI/CD 与 GitHub 仓库
- Tier: Premium, Ultimate
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
GitLab CI/CD 可以与 GitHub.com 和 GitHub Enterprise 一起使用, 通过创建一个 CI/CD 项目 来连接您的 GitHub 仓库到 GitLab。
观看视频 使用 GitLab CI/CD 管道与 GitHub 仓库。
由于 GitHub 的限制, GitHub OAuth 不能用于将 GitHub 作为外部 CI/CD 仓库进行身份验证。
使用个人访问令牌连接
个人访问令牌只能用于将 GitHub.com 仓库连接到 GitLab, 并且 GitHub 用户必须拥有 所有者角色。
要对 GitHub 进行一次性授权,以授予 GitLab 访问您仓库的权限:
- 在 GitHub 中创建令牌:
- 打开 https://github.com/settings/tokens/new。
- 创建个人访问令牌。
- 输入 令牌描述 并更新范围以允许
repo和admin:repo_hook,这样 GitLab 就可以访问您的项目, 更新提交状态,并创建 web hook 来通知 GitLab 新的提交。
- 在 GitLab 中创建项目:
- 在左侧边栏顶部,选择 新建 ( ) 和 新建项目/仓库。
- 选择 为外部仓库运行 CI/CD。
- 选择 GitHub。
- 对于 个人访问令牌,粘贴令牌。
- 选择 列出仓库。
- 选择 连接 来选择仓库。
- 在 GitHub 中,添加
.gitlab-ci.yml来 配置 GitLab CI/CD。
GitLab:
- 导入项目。
- 启用 拉取镜像。
- 启用 GitHub 项目集成。
- 在 GitHub 上创建 web hook 来通知 GitLab 新的提交。
手动连接
要将 GitHub Enterprise 与 GitLab.com 一起使用,请使用此方法。
要为您的仓库手动启用 GitLab CI/CD:
-
在 GitHub 中创建令牌:
- 打开 https://github.com/settings/tokens/new。
- 创建个人访问令牌。
- 输入 令牌描述 并更新范围以允许
repo,这样 GitLab 就可以访问您的项目并更新提交状态。
-
在 GitLab 中创建项目:
- 在左侧边栏顶部,选择 新建 ( ) 和 新建项目/仓库。
- 选择 为外部仓库运行 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。