Using GitLab CI/CD with a GitHub repository
原文:https://docs.gitlab.com/ee/ci/ci_cd_for_external_repos/github_integration.html
Using GitLab CI/CD with a GitHub repository
通过创建CI / CD 项目将 GitHub 存储库连接到 GitLab,GitLab CI / CD 可与GitHub.com和GitHub Enterprise一起使用.
观看有关在GitHub 存储库中使用 GitLab CI / CD 管道的视频.
注意:由于GitHub 的限制 ,不能将GitHub OAuth用于作为外部 CI / CD 存储库的 GitHub 进行身份验证.
Connect with Personal Access Token
注意:个人访问令牌只能用于将 GitHub.com 存储库连接到 GitLab,并且 GitHub 用户必须具有owner 角色 .
要通过 GitHub 一次性授权以授予 GitLab 访问您的存储库的权限,请执行以下操作:
打开https://github.com/settings/tokens/new来创建个人访问令牌 . 该令牌将用于访问您的存储库并将提交状态推送到 GitHub.
应该启用
repo
和admin:repo_hook
以允许 GitLab 访问您的项目,更新提交状态并创建 Web 挂钩以将新提交通知 GitLab.在 GitLab 中,转到新项目页面 ,选择CI / CD 作为外部仓库选项卡,然后单击GitHub .
将令牌粘贴到” 个人访问令牌”字段中,然后单击” 列出存储库” . 单击” 连接”以选择存储库.
在 GitHub 中,添加
.gitlab-ci.yml
以配置 GitLab CI / CD .
GitLab 将:
- 导入项目.
- Enable Pull Mirroring
- Enable GitHub project integration
- 在 GitHub 上创建一个 Web 挂钩,以通知 GitLab 新提交.
Connect manually
注意:要将GitHub Enterprise与GitLab.com 一起使用,请使用此方法.
要为您的存储库手动启用 GitLab CI / CD:
在 GitHub 中打开https://github.com/settings/tokens/new创建个人访问令牌. GitLab 将使用此令牌访问您的存储库并推送提交状态.
输入令牌描述并更新范围以允许:
repo
以便 GitLab 可以访问您的项目并更新提交状态在 GitLab 中,使用 Git URL 选项和 GitHub 存储库的 HTTPS URL 创建一个CI / CD 项目 . 如果您的项目是私人项目,请使用您刚创建的个人访问令牌进行身份验证.
GitLab 将自动配置基于轮询的拉镜像.
仍在 GitLab 中,从“设置”>”集成”启用GitHub 项目 集成.
选中” 活动”复选框以启用集成,将您的个人访问令牌和 HTTPS 存储库 URL 粘贴到表单中,然后保存.
仍在 GitLab 中,创建具有
API
范围的个人访问令牌 ,以验证 GitHub Web 挂钩,以通知 GitLab 新提交.在 GitHub 中的“设置”>” Webhooks”中创建一个 Web 挂钩,以通知 GitLab 新提交.
应使用我们刚刚创建的 GitLab 个人访问令牌,将 Web 挂钩 URL 设置为 GitLab API 来触发拉镜像 :
https://gitlab.com/api/v4/projects/<NAMESPACE>%2F<PROJECT>/mirror/pull?private_token=<PERSONAL_ACCESS_TOKEN>
选择” 让我选择单个事件”选项,然后选中” 拉取请求和推送”复选框. 对于外部拉取请求的管道,需要这些设置.
在 GitHub 中添加
.gitlab-ci.yml
以配置 GitLab CI / CD.