GitLab 项目名全批量抓取

工作上的需求,需要抓取自有部署的GitLab上分组里的所有项目,目前我们有两个版本

  • GitLab 7.14.0
  • GitLab Community Edition 12.1.6

页面抓取

老版本的GitLab非常好操作,因为主页自带一个 “Show all” 的功能,点开后直接页面F12,拷贝div 内容,然后编辑器过滤以下,然后批量编辑以下即可

<div class="panel panel-default">...</div>

接口抓取

新版本的GitLab页面整体都改过了,找了半天只有分页一页只显示20个,而且没有设置的地方,网站找了半天找到了GitLab的接口文档

https://docs.gitlab.com/ee/api/README.html#pagination-link-header

根据官方说明还需要用户名密码TOKEN 之类的 curl 来请求,我数了下我们项目没有几百个,就决定手动搞定,有这时间写程序,不如复制粘贴解决了,结果官方的接口居然只能一次请求100个,然后也要通过分页来请求,然后看了下我们有五百多,还好还好,5个链接。手动操作了。

http://服务器地址/api/v4/groups/组名/projects?per_page=100&page=1

然后接口数据标准json格式,然后编辑器格式化,过滤了一波解决。

克隆

顺带说下批量克隆的一个小技巧,至克隆最新的,这样节省空间。

git clone http://服务器地址/XXX/XXX.git  --depth 1