File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -37,28 +37,36 @@ command -v uv >/dev/null 2>&1 || {
3737}
3838UV_BIN=" $( command -v uv) "
3939
40- # 2. resolve the release tag (GitHub API is used first; fallback keeps old behaviour ).
40+ # 2. resolve the release tag (GitHub API is used first; fallback parses latest release page ).
4141if [ " $VERSION " = " latest" ]; then
42+ TAG=" "
4243 api_response=" $( mktemp) "
43- if ! curl -fsSL \
44+ if curl -fsSL \
4445 -H " Accept: application/vnd.github+json" \
4546 -H " User-Agent: git-auto-sync-installer" \
4647 " https://api.github.com/repos/$REPO /releases/latest" \
4748 -o " $api_response " ; then
49+ TAG=" $( grep -m1 -o ' \"tag_name\"[[:space:]]*:[[:space:]]*\"[^\"]*\"' " $api_response " \
50+ | sed ' s/.*\"tag_name\"[[:space:]]*:[[:space:]]*\"\\([^\"]*\\)\"/\\1/' ) "
51+ else
4852 rm -f " $api_response "
49- err " Couldn't reach GitHub to resolve the latest release."
53+ err " Couldn't reach GitHub API to resolve the latest release."
5054 exit 1
5155 fi
52- TAG=" $( sed -n ' s/.*"tag_name"[[:space:]]*:[[:space:]]*"\\([^"]*\\)".*/\\1/p' " $api_response " | head -n 1) "
5356 rm -f " $api_response "
5457 if [ -z " $TAG " ] || [ " ${TAG# v} " = " $TAG " ]; then
55- info " GitHub API did not return a release tag, falling back to web redirect resolution."
56- url=" $( curl -fsSLI -o /dev/null -w ' %{url_effective}' \
57- " https://github.com/$REPO /releases/latest" ) " || {
58+ TAG=" "
59+ fi
60+ if [ -z " $TAG " ]; then
61+ info " GitHub API did not return a release tag, resolving from latest release page."
62+ page=" $( mktemp) "
63+ if ! curl -fsSL -A " git-auto-sync-installer" " https://github.com/$REPO /releases/latest" -o " $page " ; then
64+ rm -f " $page "
5865 err " Couldn't resolve the latest release."
5966 exit 1
60- }
61- TAG=" ${url##*/ } "
67+ fi
68+ TAG=" $( grep -m1 -o ' /' " $REPO " ' /releases/tag/v[^\"[:space:]]*' " $page " | sed ' s#.*/tag/##' | head -n 1) "
69+ rm -f " $page "
6270 fi
6371else
6472 TAG=" $VERSION "
You can’t perform that action at this time.
0 commit comments