Skip to content

Commit 4db1145

Browse files
authored
Merge pull request #69 from A3S-Lab/fix/legacy-relay-target-digests-20260729
ci: verify relayed GitHub asset digests
2 parents ef005b5 + 76ba0dd commit 4db1145

1 file changed

Lines changed: 31 additions & 0 deletions

File tree

.github/workflows/relay-monorepo-release.yml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,37 @@ jobs:
279279
exit 1
280280
fi
281281
done < expected-assets.txt
282+
283+
local digest_ready
284+
local relay_json
285+
local relay_digest
286+
local expected_digest
287+
digest_ready=false
288+
for attempt in 1 2 3 4 5 6 7 8 9 10; do
289+
relay_json="$(gh api \
290+
"repos/${GITHUB_REPOSITORY}/releases/tags/${tag}")"
291+
digest_ready=true
292+
while IFS= read -r asset; do
293+
relay_digest="$(jq -r --arg asset "$asset" \
294+
'[.assets[] | select(.name == $asset)]
295+
| if length == 1 then (.[] | .digest // "") else "" end' \
296+
<<<"$relay_json")"
297+
expected_digest="sha256:$(sha256sum "source-assets/${asset}" \
298+
| awk '{ print $1 }')"
299+
if [[ "$relay_digest" != "$expected_digest" ]]; then
300+
digest_ready=false
301+
break
302+
fi
303+
done < expected-assets.txt
304+
if [[ "$digest_ready" == true ]]; then
305+
return 0
306+
fi
307+
if [[ "$attempt" -lt 10 ]]; then
308+
sleep 2
309+
fi
310+
done
311+
echo "::error::Legacy relay assets do not expose the canonical GitHub SHA-256 digests"
312+
exit 1
282313
}
283314
284315
if release_json="$(gh release view "$tag" --repo "$GITHUB_REPOSITORY" \

0 commit comments

Comments
 (0)