获取 Gitlab Cloud 中的组和项目的完整列表

Get full list of Groups and Projects in Gitlab Cloud

我正在尝试在 Gitlab 云帐户中获取项目和组的完整列表。 我目前正在使用他们的文档作为参考(请记住,尽管我不是开发人员)并使用 Linux 命令行来执行此操作。这是我尝试使用的文档:

https://docs.gitlab.com/ee/api/projects.html

https://docs.gitlab.com/ee/api/groups.html#list-a-groups-projects

我正在使用以下命令获取数据并以可读格式解析,之后我将导出到 csv 或电子表格:

curl --header "PRIVATE-TOKEN: $TOKEN" "https://gitlab.com/api/v4/projects/?owned=yes&per_page=1000&page=1" | python -m json.tool | grep -E "http_url_to_repo|visibility" | awk '!(NR%2){print[=10=]p}{p=[=10=]}' | awk '{print ,}' | sed -E 's/\"|\,//g' > gitlab.txt

我的问题是代码只有 return 我们拥有的 280 个存储库中的大约 100 个。它似乎并没有从所有组和子组中递归地获取它。 关于如何改进此搜索以获得所有内容的任何想法?

谢谢

似乎每页只能获得 100 个,因此您必须 运行 两次 - 首先是 page=1,然后是 page=2。对于第二页,您需要 >> 附加到现有文件 gitlab.txt

curl --header "..." "https://...&per_page=100&page=1" | ...  > gitlab.txt

curl --header "..." "https://...&per_page=100&page=2" | ...  >> gitlab.txt

或者您必须编写脚本,首先获取所有页面,然后将其发送到 pipe。您也可以尝试在 bash

中使用 for-loop