@@ -28,38 +28,50 @@ get_project_type() {
28
28
unset _PROJECT_URL
29
29
}
30
30
31
+ get_next_url_from_headers () {
32
+ _HEADERS_FILE=$1
33
+ grep -i ' ^link' " $_HEADERS_FILE " | tr ' ,' ' \n' | grep \" next\" | sed ' s/.*<\(.*\)>.*/\1/'
34
+ }
35
+
31
36
find_project_id () {
32
37
_PROJECT_TYPE=" $1 "
33
38
_PROJECT_URL=" $2 "
34
39
35
40
case " $_PROJECT_TYPE " in
36
41
org)
37
42
_ORG_NAME=$( echo " $_PROJECT_URL " | sed -e ' s@https://github.com/orgs/\([^/]\+\)/projects/[0-9]\+@\1@' )
38
- _ENDPOINT=" https://api.github.com/orgs/$_ORG_NAME /projects"
43
+ _ENDPOINT=" https://api.github.com/orgs/$_ORG_NAME /projects?per_page=100 "
39
44
;;
40
45
user)
41
46
_USER_NAME=$( echo " $_PROJECT_URL " | sed -e ' s@https://github.com/users/\([^/]\+\)/projects/[0-9]\+@\1@' )
42
- _ENDPOINT=" https://api.github.com/users/$_USER_NAME /projects"
47
+ _ENDPOINT=" https://api.github.com/users/$_USER_NAME /projects?per_page=100 "
43
48
;;
44
49
repo)
45
- _ENDPOINT=" https://api.github.com/repos/$GITHUB_REPOSITORY /projects"
50
+ _ENDPOINT=" https://api.github.com/repos/$GITHUB_REPOSITORY /projects?per_page=100 "
46
51
;;
47
52
esac
53
+
54
+ _NEXT_URL=" $_ENDPOINT "
48
55
49
- _PROJECTS=$( curl -s -X GET -u " $GITHUB_ACTOR :$TOKEN " --retry 3 \
50
- -H ' Accept: application/vnd.github.inertia-preview+json' \
51
- " $_ENDPOINT " )
56
+ while : ; do
52
57
53
- _PROJECTID=$( echo " $_PROJECTS " | jq -r " .[] | select(.html_url == \" $_PROJECT_URL \" ).id" )
58
+ _PROJECTS=$( curl -s -X GET -u " $GITHUB_ACTOR :$TOKEN " --retry 3 \
59
+ -H ' Accept: application/vnd.github.inertia-preview+json' \
60
+ -D /tmp/headers \
61
+ " $_NEXT_URL " )
54
62
55
- if [ " $_PROJECTID " != " " ]; then
56
- echo " $_PROJECTID "
57
- else
58
- echo " No project was found." >&2
59
- exit 1
60
- fi
63
+ _PROJECTID=$( echo " $_PROJECTS " | jq -r " .[] | select(.html_url == \" $_PROJECT_URL \" ).id" )
64
+ _NEXT_URL=$( get_next_url_from_headers ' /tmp/headers' )
65
+
66
+ if [ " $_PROJECTID " != " " ]; then
67
+ echo " $_PROJECTID "
68
+ elif [ " $_NEXT_URL " == " " ]; then
69
+ echo " No project was found." >&2
70
+ exit 1
71
+ fi
72
+ done
61
73
62
- unset _PROJECT_TYPE _PROJECT_URL _ORG_NAME _USER_NAME _ENDPOINT _PROJECTS _PROJECTID
74
+ unset _PROJECT_TYPE _PROJECT_URL _ORG_NAME _USER_NAME _ENDPOINT _PROJECTS _PROJECTID _NEXT_URL
63
75
}
64
76
65
77
find_column_id () {
0 commit comments