如何批量获取GitLab一个组下的所有仓库地址

2023-05-17 20:06:40  阅读 2086 次 评论 0 条

总会有人会有和我同样的奇怪需求……

首先,需要获取GitLab帐户的私人访问令牌。

WX20230517-195952.png


有了私人访问令牌后,可以使用curl命令进行API调用。以下是获取一个组下所有仓库HTTP地址的API调用:

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/<group_id>/projects?per_page=100&page=1" | grep -o '"http_url_to_repo": *"[^"]*"' | grep -o '"[^"]*"$'


将`<your_access_token>`替换为您的私人访问令牌,`<group_id>`替换为您要查询的组的ID。`per_page`参数指定每个页面返回的项目数量,我测试最大100,超过100也只能返回100,`page`参数指定要返回的页面。在上面的例子中,我们将每个页面的项目数量设置为100,第一页的数据进行了查询。您可以根据需要更改这些参数。


运行上面的命令后,将返回一个响应,其中包含您的组下所有仓库的信息。第一次grep命令从响应中提取出包含HTTP地址的行,并将其打印到标准输出。第二次grep命令从这些行中提取出HTTP地址本身,并将其打印到标准输出。

windows没有grep命令,使用findstr。(未验证)

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/<group_id>/projects?per_page=100&page=1" | findstr /C:"\"http_url_to_repo\":" | findstr /E /C:"\""



本文地址:http://www.bloguan.com/?id=604
版权声明:本文为原创文章,版权归 博观网 所有,欢迎分享本文,转载请保留出处!

发表评论


表情

还没有留言,还不快点抢沙发?