自动将存储库从GitLab镜像到GitHub

gitlab-mirror-maker的Python项目详细描述


GitLab镜子制造商

GitLab Mirror Maker是一个用Python编写的小工具,可以自动将公共存储库从GitLab镜像到GitHub。在

Example

为什么?在

  • 也许你更喜欢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的详细信息。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java传递实现接口的内部类   java为什么managedbean方法在post请求中的过滤器调用之前调用   java Android应用程序在Android M,O上崩溃,登录A/libc时出错:tid 17938中的致命信号11(SIGSEGV),代码2,故障地址0x343a2944   java JPA存储库。findByAll()返回null,但数据库中存在所有内容   用于发送电子邮件的java Ant脚本   Java小程序HTML页面发生了奇怪的事情   在Postman的请求正文中传递多个JSON数据,并使用Jersy(JXRS)进入Java Rest API   无法强制转换java DAO类   10分钟后重新连接java   正则表达式如何在java中选择字符串直到某个字符   java我的输出有一些问题   Objective中的java时间段   java如何在新屏幕上基于按钮单击在webview中打开url   java哪个selenium版本与Firefox ESR 45.2.0兼容   java无法使用Apache Camel 3.1.0将XML转换为JSON