@sigitcodereview-old / sigit / commits / ee28e6a
Fork 0

A modular local inference LLM coding agent. Core component of siGit Factory.

Retry the registry checks before giving up on them

Review pushed back on two things in the publish checks. The crates.io User-Agent spelled out getsigit/sigit twice, which goes stale the moment the repo moves. GITHUB_REPOSITORY is already in the environment and says the same thing. Failing the job on an unexpected status also turned a blip at the registry into a failed release. All three curl checks now retry three times with a short delay, so a timeout or a 5xx costs a few seconds. A status that survives the retries is a real answer and still stops the job.

paydii committed Sep 4, 2026 at 16:08 UTC ee28e6ade4c84f16d53260f9953b81d05053d480
3 files changed +7 -2
.github/workflows/release-crates.yml
+4 -1
@@ -70,8 +70,11 @@ jobs:
70 # Branch on the status code rather than on curl's exit status, so an
71 # answer we do not understand stops the job instead of quietly
72 # degrading into that same failure.
73 + # Retry first, so a timeout or a 5xx costs a few seconds instead of
74 + # the whole release.
75 STATUS=$(curl -sS -o /dev/null -w '%{http_code}' \
74 - -H "User-Agent: getsigit/sigit release workflow (github.com/getsigit/sigit)" \
76 + --retry 3 --retry-delay 2 --retry-all-errors \
77 + -H "User-Agent: ${GITHUB_REPOSITORY} release workflow (https://github.com/${GITHUB_REPOSITORY})" \
78 "https://crates.io/api/v1/crates/sigit/${VERSION}")
79
80 case "$STATUS" in
.github/workflows/release-nuget.yml
+2 -1
@@ -304,7 +304,8 @@ jobs:
304 # means the package itself is not on NuGet, which is the first
305 # release and a real "not published".
306 index=$(mktemp)
307 - STATUS=$(curl -sS -o "${index}" -w '%{http_code}' "${package_index_url}")
307 + STATUS=$(curl -sS -o "${index}" -w '%{http_code}' \
308 + --retry 3 --retry-delay 2 --retry-all-errors "${package_index_url}")
309
310 case "$STATUS" in
311 200)
.github/workflows/release-pypi.yml
+1
@@ -186,6 +186,7 @@ jobs:
186 # blocked request would read as "not published yet" and send the
187 # publish below into a version that is already there.
188 STATUS=$(curl -sS -o /dev/null -w '%{http_code}' \
189 + --retry 3 --retry-delay 2 --retry-all-errors \
190 "https://pypi.org/pypi/sigit-code/${RELEASE_VERSION}/json")
191
192 case "$STATUS" in