ci: добавление резервного списка релизов и обработки массивов в установщике install.sh

This commit is contained in:
Dushnilin
2026-07-13 15:02:09 +03:00
parent 9fafa73468
commit 4c5575ddbe
+9 -3
View File
@@ -1043,6 +1043,8 @@ function asset_matches(name, kind, ext, version) {
function github_message() {
let value = read_stdin_json();
if (type(value) == "array")
value = value[0];
if (value == null)
exit(2);
if (type(value) == "object" && value.message != null)
@@ -1051,12 +1053,16 @@ function github_message() {
function release_tag() {
let release = read_stdin_json();
if (type(release) == "array")
release = release[0];
if (type(release) == "object" && release.tag_name != null)
print(as_string(release.tag_name), "\n");
}
function release_asset_url(kind, ext) {
let release = read_stdin_json();
if (type(release) == "array")
release = release[0];
if (type(release) != "object" || type(release.assets) != "array")
return;
let version = as_string(release.tag_name || "");
@@ -1398,9 +1404,9 @@ fetch_github_latest_release_json() {
url="https://api.github.com/repos/${owner}/${repo}/releases/latest"
response="$(http_get "$url" 2>/dev/null || true)"
if [ -z "$response" ]; then
warn "Direct GitHub connection failed; trying via mirror..."
url="https://gh-proxy.com/https://api.github.com/repos/${owner}/${repo}/releases/latest"
if [ -z "$response" ] || printf '%s' "$response" | grep -q '"message": "Not Found"'; then
warn "Latest release query failed; trying release list..."
url="https://api.github.com/repos/${owner}/${repo}/releases"
response="$(http_get "$url" 2>/dev/null || true)"
fi
[ -n "$response" ] || fail "Failed to query GitHub latest release metadata for ${owner}/${repo}"