如何使用 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