总会有人会有和我同样的奇怪需求……
首先,需要获取GitLab帐户的私人访问令牌。
有了私人访问令牌后,可以使用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:"\""
发表评论