@@ -18,10 +18,37 @@ REPO="router-for-me/CLIProxyAPI"
1818BINARY_NAME=" cli-proxy-api"
1919[[ " $GOOS " == " windows" ]] && BINARY_NAME=" ${BINARY_NAME} .exe"
2020
21+ curl_args=(
22+ --retry 5
23+ --retry-delay 2
24+ --retry-all-errors
25+ -fsSL
26+ -H " Accept: application/vnd.github+json"
27+ -H " User-Agent: GetTokens-Release-Script"
28+ )
29+
30+ if [[ -n " ${GITHUB_TOKEN:- } " ]]; then
31+ curl_args+=(
32+ -H " Authorization: Bearer ${GITHUB_TOKEN} "
33+ -H " X-GitHub-Api-Version: 2022-11-28"
34+ )
35+ fi
36+
2137# Resolve latest tag if needed
2238if [[ " $VERSION " == " latest" ]]; then
23- VERSION=$( curl -fsSL " https://api.github.com/repos/${REPO} /releases/latest" \
24- | grep ' "tag_name"' | head -1 | sed ' s/.*"tag_name": "\(.*\)".*/\1/' )
39+ if [[ -n " ${GITHUB_TOKEN:- } " ]]; then
40+ VERSION=$( curl " ${curl_args[@]} " " https://api.github.com/repos/${REPO} /releases/latest" \
41+ | grep ' "tag_name"' | head -1 | sed ' s/.*"tag_name": "\(.*\)".*/\1/' )
42+ else
43+ VERSION=$( curl --retry 5 --retry-delay 2 --retry-all-errors -fsSIL -o /dev/null -w ' %{url_effective}' \
44+ " https://github.com/${REPO} /releases/latest" )
45+ VERSION=" ${VERSION##*/ } "
46+ fi
47+ fi
48+
49+ if [[ -z " $VERSION " ]]; then
50+ echo " failed to resolve release version for ${REPO} " >&2
51+ exit 1
2552fi
2653
2754echo " → Fetching CLIProxyAPI ${VERSION} for ${GOOS} /${GOARCH} "
@@ -37,7 +64,7 @@ URL="https://github.com/${REPO}/releases/download/${VERSION}/${ASSET}"
3764TMP=$( mktemp -d)
3865trap ' rm -rf "$TMP"' EXIT
3966
40- curl --retry 5 --retry-delay 2 --retry-all-errors -fsSL " $URL " -o " ${TMP} /${ASSET} "
67+ curl " ${curl_args[@]} " " $URL " -o " ${TMP} /${ASSET} "
4168
4269mkdir -p " $DEST_DIR "
4370
0 commit comments