up2GitX V1.0.0 发布 - 批量 Git 托管工具

栏目: 软件资讯 · 发布时间: 4年前

内容简介:将本地仓库批量上传至 Gitee、Github、Gitlab 平台(目前仅支持 Gitee ) 工具采用 Go 编写,算是跟 Go 的第一次亲密接触了 功能特点 [简单] 可自动在对应平台创建同名仓库并上传 [可靠] 可选择是否本地覆盖远程(...

将本地仓库批量上传至 Gitee、Github、Gitlab 平台(目前仅支持 Gitee )

工具采用 Go 编写,算是跟 Go 的第一次亲密接触了

功能特点

  • [简单] 可自动在对应平台创建同名仓库并上传
  • [可靠] 可选择是否本地覆盖远程(如果同名仓库在远端已存在)
  • [灵活] 可通过多种方式导入仓库源(目录、文本列表)
  • [快速] 并发5个同时操作(各平台均有限制,5个并发可保证成功率及速度)

注意事项

  • 工具会自动生成临时的一个 Remote up2GitX-{timestamp} 进行推送,不会影响现有的 Remote 配置
  • 工具会调用OAuth授权进行仓库的创建,后续可以在第三方应用管理取消授权
  • 工具在进行处理的过程中会对特殊情况进行交互,请仔细阅读并慎重选择

设计流程

up2GitX V1.0.0 发布 - 批量 Git 托管工具

使用简介

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

以 Gitee 为例 ./up2 gitee -h

➜  up2GitX git:(master) ✗ ./up2 gitee -h
This command is used for sync local repo to Gitee

Name: gitee
Usage: ./up2 [Global Options...] gitee [--option ...] [argument ...]

Global Options:
      --verbose     Set error reporting level(quiet 0 - 4 debug)
      --no-color    Disable color when outputting message
  -h, --help        Display this help information

Arguments:
  repoSource  Tell me which repo dir or list your want to sync, is required

Examples:
  Using dir:  ./up2 gitee /Zoker/repos/
  Dir example
	$ ls -l /Zoker/repos/
	drwxr-xr-x  4 zoker  128B Jun  1 19:05 git-work-repo1
	drwxr-xr-x  4 zoker  128B Jun  1 19:02 taskover
	drwxr-xr-x  4 zoker  128B Jun  1 19:03 blogine
	drwxr-xr-x  3 zoker   96B Jun  1 12:15 git-bare-repo3
	...

  Using file:  ./up2 gitee /Zoker/repos.list
  File example
	$ 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 仓库绝对路径的文本文件,下面以目录为例

up2GitX V1.0.0 发布 - 批量 Git 托管工具

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

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

up2GitX V1.0.0 发布 - 批量 Git 托管工具

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

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

up2GitX V1.0.0 发布 - 批量 Git 托管工具

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

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

up2GitX V1.0.0 发布 - 批量 Git 托管工具

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

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

up2GitX V1.0.0 发布 - 批量 Git 托管工具

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

5、同步代码到 Gitee

up2GitX V1.0.0 发布 - 批量 Git 托管工具

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

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

up2GitX V1.0.0 发布 - 批量 Git 托管工具

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

构建

项目使用go开发,拉取代码执行go build up2.go即可

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

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

params := fmt.Sprintf(`{
					"grant_type": "password",
					"username": "%s",
					"password": "%s",
					"client_id": "xxxx", // client id from Gitee
					"client_secret": "xxxx", // client secret from Gitee
					"scope": "user_info projects groups enterprises"
					}`, email, password)

通过对 Client 的信息的改动可以支持 Gitee 公有云以及大部分的 Gitee 私有云客户。

感谢

  • gCli Go 的命令行工具库

贡献代码

欢迎提交 Github 以及 Gitlab 的上传支持!

  1. Fork 仓库
  2. 创建本地分支 (git checkout -b my-new-feature)
  3. 提交更改 (git commit -am 'Add some feature')
  4. 推送到分支 (git push origin my-new-feature)
  5. 创建一个 Pull Request

贡献者

@Zoker


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

人工智能

人工智能

S. Russell、P. Norvig / 清华大学出版社 / 2006-5-1 / 128.00元

本书被全世界89个国家的900多所大学用作教材。 本书以详尽和丰富的资料,从理性智能体的角度,全面阐述了人工智能领域的核心内容,并深入介绍了各个主要的研究方向。全书分为8大部分:第一部分“人工智能”,第二部分“问题求解”,第三部分“知识与推理”,第四部分“规划”,第五部分“不确定知识与推理”,第六部分“学习”,第七部分“通信、感知与行动”,第八部分“结论”。本书既详细介绍了人工智能的基本概念......一起来看看 《人工智能》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

URL 编码/解码
URL 编码/解码

URL 编码/解码

html转js在线工具
html转js在线工具

html转js在线工具