Gigrator icon indicating copy to clipboard operation
Gigrator copied to clipboard

Git repos migration tool which supports Github / Gitee / Gitlab / Gitea / Coding / Gogs / 腾讯工蜂.

Gigrator

GitHub Action 来了: action-mirror-git 镜像同步 Git 仓库

Git 代码仓批量迁移

gigrator.png

Start

git clone https://github.com/k8scat/gigrator.git
cd gigrator
pip3 install -r requirements.txt

# 迁移前需在配置文件(settings.py)中配置 SOURCE_GIT 和 DEST_GIT
# 配置参考: settings_example.py
python3 gigrator.py

Develop

# Base class
class Git:
    pass

# Other GitServer class should inherit Git
class OtherGit(Git):
    pass

Support

Note:

  • 不支持迁移至 Coding, 可从 Coding 迁移至其他 Git 服务器
  • 由于 Coding 的升级, 其基础 API 不再是 https://coding.net, 而改为: https://{username}.coding.net
  • 迁移前请确认已在Git服务器上添加 SSH Key
  • 只能迁移指定用户下的仓库, 即 {username}/{repo_name}, 不包括参与的或者组织的仓库
  • 迁移包括commits、branches和tags, 不包括issues、pr和wiki

Environment

  • Git
  • Python

开发环境: git version 2.20.1 (Apple Git-117) + Python 3.7.2

Dependencies

References

GitLab

GitLab GraphQL API

Can not create a project!

It will co-exist with the current v4 REST API. If we have a v5 API, this should be a compatibility layer on top of GraphQL.

GitHub REST API v3

GitHub GraphQL API v4

Gitee

Gitea

Gogs

Coding

GF (腾讯工蜂)

GraphQL Client

License

MIT