通过从 GitHub 部署的密钥在 GitLab 中访问 GitHub

Posted

技术标签:

【中文标题】通过从 GitHub 部署的密钥在 GitLab 中访问 GitHub【英文标题】:Access GitHub within GitLab over deployed key from GitHub 【发布时间】:2021-04-29 07:55:47 【问题描述】:

很久以前我就有一个问题。问题是,是否可以通过已部署的密钥(ssh 密钥)在 Gitlab 中访问 GitHub。其他解决方案也是可能的,我的主要目标是,如果推送到 Github,Gitlab 将注册它并执行自动化。我试图阻止的是,GitLab 可以访问 GitHub 中的所有存储库。 GitHub OAuth 和令牌不起作用,因为它可以访问我在 Github 中的所有存储库。

最好的问候

【问题讨论】:

还有一种可能是使用机器用户,但这是我想使用的最后一个解决方案。 【参考方案1】:

您可以通过 Gitlab 中的 Repository Mirroring 选项执行此操作。这允许您将存储库从 Github、Bitbucket 等镜像到 Gitlab,或从 Gitlab 镜像到另一个服务。

要进入 Gitlab,首先在 Gitlab 中创建一个新项目,然后转到设置、存储库、镜像存储库并根据需要进行设置。完整的详细信息可以在他们的文档中找到:https://docs.gitlab.com/ee/user/project/repository/repository_mirroring.html#pulling-from-a-remote-repository

请注意,目前这是一项付费功能,因此您必须拥有starter/core 或更高版本。

【讨论】:

不幸的是,“镜像方向”中的“拉动”功能不适用于我的自托管 GitLab 实例。 对不起,我编辑了我的答案以引用它。你仍然可以在没有付费版本的情况下镜像到 gitlab,但需要做更多的工作。首先,理论上你可以托管第二个付费 gitlab 实例,只有 1 或 2 人访问并从 github 拉到那里,然后从付费 gitlab 推送到主 gitlab。第二个选项需要更多的工作,但您可以创建一个充当中间人的应用程序:通过从 github 接收 webhook,您可以克隆/拉取更改的 repos,然后将它们推送到 gitlab。 谢谢你,但目前我正试图阻止投资,工具链可能很容易,但不像我想要的那么容易。非常感谢您的回答

以上是关于通过从 GitHub 部署的密钥在 GitLab 中访问 GitHub的主要内容,如果未能解决你的问题,请参考以下文章

一台机器git配置gitlab和github两个账号和邮箱

使用git在gitlab拉取代码的方法

Gitlab部署密钥已配置但仍不授予访问权限

Gitlab 自动部署已停止工作,服务器日志中出现“找不到匹配的主机密钥类型”错误

如何生成 SSH keys, 并在 Github 或 Gitlab 等上添加密钥

启用 2 因素身份验证时,如何通过 HTTPS 签出私有 github 存储库?