如何使用 API curl 获取 GitLab 中给定组内的所有项目 ID(大约 250 个项目)
How to get the all project IDs (about 250 projects) within a given Group in GitLab by using API curl
我使用 bash 脚本的以下部分使用 API 调用检索给定 GitLab 组中项目的所有 ID。该集团大约有 250 个项目。但是当使用这个脚本时它只检索 100 个项目 ID。如何检索所有项目 ID?
page=1 #------Retrieve the IDs of the non archived projects in the group
while [[ "$page" != "0" ]]
do
urlCheck=`curl -s "$GIT_API/groups?private_token=$GIT_TOKEN&per_page=100&page=$page" | jq -r ".[] | .name"`
if [[ -n $urlCheck ]]
then
PROJECT_ID_ARRAY+=($(curl -sS --request GET --header "PRIVATE-TOKEN: $GIT_TOKEN" "$GIT_API/groups/1079/projects?include_subgroups=true&per_page=100&page=${page}" | jq -r '.[] .id'))
page=$((page+1))
else
page=0
fi
done
您可以使用 GitLab rest API 获取所有项目的 ID,我已经通过 curl 执行了一个命令:
curl -s --location --request GET --header 'PRIVATE-TOKEN:<PRIVATE_TOKEN>' '$CI_API_V4_URL/groups/'$GROUPID'/projects' | sed 's/,/\n/g' | grep -w "id" | awk -F ':' '{print }' | sed -s 's/{"id"//g
'
确保根据您的组 ID 输入 GROUPID。
参考:https://docs.gitlab.com/ee/api/projects.html#list-all-projects
我使用 bash 脚本的以下部分使用 API 调用检索给定 GitLab 组中项目的所有 ID。该集团大约有 250 个项目。但是当使用这个脚本时它只检索 100 个项目 ID。如何检索所有项目 ID?
page=1 #------Retrieve the IDs of the non archived projects in the group
while [[ "$page" != "0" ]]
do
urlCheck=`curl -s "$GIT_API/groups?private_token=$GIT_TOKEN&per_page=100&page=$page" | jq -r ".[] | .name"`
if [[ -n $urlCheck ]]
then
PROJECT_ID_ARRAY+=($(curl -sS --request GET --header "PRIVATE-TOKEN: $GIT_TOKEN" "$GIT_API/groups/1079/projects?include_subgroups=true&per_page=100&page=${page}" | jq -r '.[] .id'))
page=$((page+1))
else
page=0
fi
done
您可以使用 GitLab rest API 获取所有项目的 ID,我已经通过 curl 执行了一个命令:
curl -s --location --request GET --header 'PRIVATE-TOKEN:<PRIVATE_TOKEN>' '$CI_API_V4_URL/groups/'$GROUPID'/projects' | sed 's/,/\n/g' | grep -w "id" | awk -F ':' '{print }' | sed -s 's/{"id"//g
'
确保根据您的组 ID 输入 GROUPID。
参考:https://docs.gitlab.com/ee/api/projects.html#list-all-projects