如何使用API curl获取GitLab中给定组中的所有项目ID(约250个项目)



我使用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 $2}' | sed -s 's/{"id"//g'

请确保根据您的组id输入GROUPID。

参考编号:https://docs.gitlab.com/ee/api/projects.html#list-所有项目

最新更新