Commit Graph
3 Commits
Author SHA1 Message Date
Nick 179893039e fix(pipeline): catch URLError in create_release error path (#192) 2026-09-07 15:26:33 +01:00
Nick 52e0bb0034 fix(pipeline): derive release API URLs in-script from workflow base coordinates (#192)
Spec-gate finding 1: create_release.py hard-read LIST_API_URL/RELEASE_API_URL
but auto-version.yml only ever passed RELEASE_SERVER_URL/RELEASE_REPO —
KeyError at runtime on both the PR-closed and safety-net release paths.

The script now derives both URLs from the base coordinates (explicit env
still overrides for direct use), and the workflow env blocks stay unchanged.
Adds tests/test_workflow_script_contract.py: a systematic guard that parses
every workflow env contract (step env + $GITHUB_ENV exports + shell exports)
against each invoked script's hard os.environ reads, plus an honesty check
that derived-default keys are never bare-subscripted.

Red evidence: contract test failed on both create_release invocations
(missing LIST_API_URL/RELEASE_API_URL); honesty test failed on the bare
subscripts. Green: 18/18.
2026-09-07 13:49:33 +01:00
Nick 98bdd5a70d feat(pipeline): push-triggered release safety net (#192) 2026-09-07 12:04:59 +01:00