自动将存储库从GitLab镜像到GitHub
gitlab-mirror-maker的Python项目详细描述
GitLab镜子制造商
GitLab Mirror Maker是一个用Python编写的小工具,可以自动将公共存储库从GitLab镜像到GitHub。在
为什么?在
- 也许你更喜欢GitLab,但当前的市场更青睐GitHub强大的开发者?在
- 也许是作为后备?在
- 或者你有其他原因。。。:传情动漫:
安装
使用pip或pipx安装:
pip install gitlab-mirror-maker
还有一个Docker图像可用:
^{pr2}$使用
运行:gitlab-mirror-maker --github-token xxx --gitlab-token xxx
请参阅下面的Authentication,了解如何获取身份验证令牌。在
环境变量
您可以不使用cli标志,而是通过带有MIRRORMAKER_
前缀的环境变量提供配置:
export MIRRORMAKER_GITHUB_TOKEN xxx
export MIRRORMAKER_GITLAB_TOKEN xxx
gitlab-mirror-maker
干运行
使用--dry-run
标志运行,只打印摘要,不做任何更改。在
完整概要
Usage: gitlab-mirror-maker [OPTIONS]
Options:
--version Show the version and exit.
--github-token TEXT GitHub authentication token [required]
--gitlab-token TEXT GitLab authentication token [required]
--github-user TEXT GitHub username. If not provided, your GitLab
username will be used by default.
--dry-run / --no-dry-run If enabled, a summary will be printed and no
mirrors will be created.
--help Show this message and exit.
它是如何工作的?在
GitLab Mirror Maker使用remote mirrors API创建GitLab存储库的push mirrors。在
对于GitLab帐户中的每个公共存储库,将使用相同的名称和描述创建一个新的GitHub存储库。它还在描述的末尾添加了一个[mirror]
后缀,并将网站URL设置为原始GitLab repo。以the mirror of this repo为例。在
创建镜像后,每次将更改推送到原始GitLab repo时,它都会自动更新目标GitHub存储库。在
什么是镜像的?
只有公共存储库被镜像以避免发布私有的内容。在
只有提交、分支和标记被镜像。不会镜像其他存储库数据,如问题、请求、注释、wiki等。在
身份验证
GitLab Mirror Maker需要GitLab和GitHub的身份验证令牌才能创建镜像。在
如何获取GitLab令牌?
- 单击GitLab用户->设置->访问令牌
- 为您的令牌选择一个名称并选择
api
作用域 - 单击
Create personal access token
并将其保存到安全的位置 - 不要分享它!它授予您的帐户完全访问权限!在
下面是关于GitLab personal tokens的更多信息。在
如何获取GitHub令牌?
- 单击GitHub用户->设置->开发人员设置->个人访问令牌->生成新令牌
- 为您的令牌选择一个名称并选择
public_repo
作用域 - 单击
Generate token
并将其保存到安全的位置
以下是有关GitHub personal tokens的详细信息。在
使用GitLab CI实现自动化
您可能不想手动运行该工具,而是计划它定期与GitLab CI一起运行,以确保任何新的存储库都能自动镜像。在
以下是您可以使用的.gitlab-ci.yml
片段:
job:image:python:3.8-alpinescript:-pip install gitlab-mirror-maker-gitlab-mirror-makeronly:-schedules
下面是有关创建scheduled pipelines with GitLab CI的详细信息。在
- 项目
标签: