From 627f3db13393edfb7b89b8ab781a1ca58e1457f6 Mon Sep 17 00:00:00 2001 From: Lambdius Date: Sun, 18 Oct 2026 18:09:52 +0200 Subject: [PATCH] fix: query GHCR package versions directly --- .github/scripts/packages.sh | 43 ++++++++++++++++++++++++++----------- package.json | 2 +- 2 files changed, 31 insertions(+), 14 deletions(-) diff --git a/.github/scripts/packages.sh b/.github/scripts/packages.sh index 83c7c94..b0f7512 100644 --- a/.github/scripts/packages.sh +++ b/.github/scripts/packages.sh @@ -19,20 +19,37 @@ source_digest='' published_tag='' load_versions() { - local packages - - packages=$(gh api --paginate --slurp \ - "/orgs/MonadIAM/packages?package_type=container&per_page=100") - - if jq -e --arg name "$PACKAGE" \ - 'any(.[][]; .name == $name)' <<< "$packages" >/dev/null; then - versions=$(gh api --paginate --slurp \ - "$PACKAGE_API/versions?per_page=100" | jq 'add') + local page response status body url + + versions='[]' + for ((page = 1; ; page++)); do + url="https://api.github.com$PACKAGE_API/versions?per_page=100&page=$page" + response=$(curl --silent --show-error \ + --connect-timeout 5 --max-time 30 \ + --header "Authorization: Bearer $GITHUB_TOKEN" \ + --header "Accept: application/vnd.github+json" \ + --header "X-GitHub-Api-Version: 2022-11-28" \ + --write-out $'\n%{http_code}' "$url") + status="${response##*$'\n'}" + body="${response%$'\n'*}" + + if [[ "$status" == 200 ]]; then + versions=$(jq -c --argjson batch "$body" '. + $batch' <<< "$versions") + if [[ $(jq 'length' <<< "$body") -lt 100 ]]; then + break + fi + elif [[ "$status" == 404 && "$page" == 1 ]]; then + break + else + printf 'Failed to list package versions: GET %s; HTTP %s\n%s\n' \ + "$url" "$status" "${body:0:4096}" >&2 + exit 1 + fi + done - source_digest=$(jq -r --arg tag "$sha_tag" ' - .[] | select(.metadata.container.tags | index($tag)) | .name - ' <<< "$versions") - fi + source_digest=$(jq -r --arg tag "$sha_tag" ' + .[] | select(.metadata.container.tags | index($tag)) | .name + ' <<< "$versions") } publish_commit() { diff --git a/package.json b/package.json index c21e5b2..9456a15 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Shared Kafka/gRPC contracts and common enums between MonadIAM services", "author": "Daniil Egorov (https://github.com/Lambdius)", "license": "UNLICENSED", - "version": "3.0.0", + "version": "3.0.1", "types": "dist/index.d.ts", "main": "dist/index.js", "exports": {