获取 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
我正在尝试在 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