@@ -25,7 +25,7 @@ if [ -z $IDF_TARGET ]; then
2525fi
2626
2727# Owner of the target ESP32 Arduino repository
28- AR_USER="espressif "
28+ AR_USER="$GITHUB_REPOSITORY_OWNER "
2929
3030# The full name of the repository
3131AR_REPO="$AR_USER/arduino-esp32"
@@ -99,12 +99,55 @@ if [[ "$AR_OS" == "macos" ]]; then
9999 export SSTAT="stat -f %z"
100100fi
101101
102+ function github_get_libs_idf(){ # github_get_libs_idf <repo-path> <branch-name> <message-prefix>
103+ local repo_path="$1"
104+ local branch_name="$2"
105+ local message_prefix="$3"
106+ message_prefix=$(echo $message_prefix | sed 's/[]\/$*.^|[]/\\&/g') # Escape special characters
107+ local page=1
108+ local version_found=""
109+ local libs_version=""
110+
111+ while [ "$libs_version" == "" ]; do
112+ # Get the latest commit message that matches the prefix and extract the hash from the last commit message
113+ version_found=`curl -s -k -H "Authorization: token $GITHUB_TOKEN" -H "Accept: application/vnd.github.v3.raw+json" "https://api.github.com/repos/$repo_path/commits?sha=$branch_name&per_page=100&page=$page" | \
114+ jq -r --arg prefix "$message_prefix" '[ .[] | select(.commit.message | test($prefix + " [a-f0-9]{8}")) ][0] | .commit.message' | \
115+ grep -Eo "$message_prefix [a-f0-9]{8}" | \
116+ awk 'END {print $NF}'`
117+ if [ ! "$version_found" == "" ] && [ ! "$version_found" == "null" ]; then
118+ libs_version=$version_found
119+ else
120+ page=$((page+1))
121+ fi
122+ done
123+
124+ if [ ! "$libs_version" == "" ] && [ ! "$libs_version" == "null" ]; then echo $libs_version; else echo ""; fi
125+ }
126+
102127function github_commit_exists(){ #github_commit_exists <repo-path> <branch-name> <commit-message>
103128 local repo_path="$1"
104129 local branch_name="$2"
105130 local commit_message="$3"
106- local commits_found=`curl -s -k -H "Authorization: token $GITHUB_TOKEN" -H "Accept: application/vnd.github.v3.raw+json" "https://api.github.com/repos/$repo_path/commits?sha=$branch_name" | jq -r '.[].commit.message' | grep "$commit_message" | wc -l`
107- if [ ! "$commits_found" == "" ] && [ ! "$commits_found" == "null" ] && [ ! "$commits_found" == "0" ]; then echo $commits_found; else echo 0; fi
131+ local page=1
132+ local commits_found=0
133+
134+ while true; do
135+ local response=`curl -s -k -H "Authorization: token $GITHUB_TOKEN" -H "Accept: application/vnd.github.v3.raw+json" "https://api.github.com/repos/$repo_path/commits?sha=$branch_name&per_page=100&page=$page"`
136+
137+ if [[ -z "$response" || "$response" == "[]" ]]; then
138+ break
139+ fi
140+
141+ local commits=`echo "$response" | jq -r '.[].commit.message' | grep "$commit_message" | wc -l`
142+ if [ "$commits" -gt 0 ]; then
143+ commits_found=1
144+ break
145+ fi
146+
147+ page=$((page+1))
148+ done
149+
150+ echo $commits_found
108151}
109152
110153function github_last_commit(){ # github_last_commit <repo-path> <branch-name>
0 commit comments