up2GitX 批量 Git 托管工具开源项目

我要开发同款
zoker2020年06月15日
96阅读
开发技术GO语言
所属分类Google Go、开发工具
授权协议MIT

作品详情

up2GitX 是一个方便快捷的批量Git托管工具。将本地仓库批量上传至Gitee、Github、Gitlab平台(目前仅支持Gitee)。

功能特点[简单]可自动在对应平台创建同名仓库并上传[可靠]可选择是否本地覆盖远程(如果同名仓库在远端已存在)[灵活]可通过多种方式导入仓库源(目录、文本列表)[快速]并发5个同时操作(各平台均有限制,5个并发可保证成功率及速度)注意事项工具会自动生成临时的一个Remote up2GitX-{timestamp} 进行推送,不会影响现有的Remote配置工具会调用OAuth授权进行仓库的创建,后续可以在第三方应用管理取消授权工具在进行处理的过程中会对特殊情况进行交互,请仔细阅读并慎重选择设计流程

使用简介下载对应平台的二进制包,可直接运行

up2-macos-v1.0.0.zipup2-linux-v1.0.0.zip以Gitee为例 ./up2gitee-h

➜up2GitXgit:(master)✗./up2gitee-hThiscommandisusedforsynclocalrepotoGiteeName:giteeUsage:./up2[GlobalOptions...]gitee[--option...][argument...]GlobalOptions:--verboseSeterrorreportinglevel(quiet0-4debug)--no-colorDisablecolorwhenoutputtingmessage-h,--helpDisplaythishelpinformationArguments:repoSourceTellmewhichrepodirorlistyourwanttosync,isrequiredExamples:Usingdir:./up2gitee/Zoker/repos/Direxample$ls-l/Zoker/repos/drwxr-xr-x4zoker128BJun119:05git-work-repo1drwxr-xr-x4zoker128BJun119:02taskoverdrwxr-xr-x4zoker128BJun119:03bloginedrwxr-xr-x3zoker96BJun112:15git-bare-repo3...Usingfile:./up2gitee/Zoker/repos.listFileexample$cat/Zoker/repos.list/tmp/repos/git-work-repo1/Zoker/workspace/git-work-repo2/other/path/to/git-bare-repo3...使用示例这里以上传到Gitee为例

1、指定RepoSource可以是一个包含很多Git仓库的目录,也可以是一个包含很多Git仓库绝对路径的文本文件,下面以目录为例

确认这些Git仓库是不是你所预期的

2、输入Gitee账号信息并选择同步到哪个Namespace

输入注册Gitee所用的邮箱以及密码,认证成功后会列出可用的Namespace,在Gitee上,它可以是个人名下、组织名下或者企业名下。(目前仅支持上传到个人名下,后续接口功能到位会支持组织和企业)

3、确认将要生成的仓库链接并选择公开属性

确认要生成的仓库链接是否符合预期,示例中有中文是为了演示错误选项的处理,如果确认无误,选择仓库的公私有属性

4、在Gitee上创建仓库并展示结果

可以看到有一个创建成功,一个创建失败,一个已经存在同名地址

对于失败的,会提示我们选择是否跳过或者退出修复错误,这里我们选择跳过

紧接着会提示对于已经存在的项目该怎么处理,你可以选择跳过,也可以选择本地强制覆盖远端,这里我们选择强制覆盖

5、同步代码到Gitee

同步代码完成后会给出每一个代码仓的具体同步状态

这个时候我们前往 Gitee 查看动态

可以看到本地的分支已经推送到Gitee平台,这里的同步是会同步所有的本地分支和标签,图中的强制推送就是我们刚刚选择了覆盖,所以工具会强制用本地的代码覆盖远端Gitee的代码,所以请想清楚,再做选择。

构建项目使用go开发,拉取代码执行gobuildup2.go即可

需要注意的是要修改对应的OAuth客户端的id和key,以Gitee平台为例:

修改 gitee.go 文件中的 askForAccount 的Client信息

params:=fmt.Sprintf(`{"grant_type":"password","username":"%s","password":"%s","client_id":"xxxx",//clientidfromGitee"client_secret":"xxxx",//clientsecretfromGitee"scope":"user_infoprojectsgroupsenterprises"}`,email,password)通过对Client的信息的改动可以支持Gitee公有云以及大部分的Gitee私有云客户。

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论