Repository navigation
Commit 4fe12cd
Stop an expired tap token from killing the whole release
v0.2.0 published its GitHub release and 11 assets, then died. Both tap PATs —
minted 2026-02-20, never rotated — now answer 401, goreleaser treats a failed
cask/scoop push as fatal, and everything after it was skipped: npm never ran,
PyPI failed on a dist/ that was never built. A credential governing two
optional install channels took down both package registries.
This is the same failure the file already documents twice. v0.1.2 published
five npm packages, tripped npm's spam heuristic on the sixth, and PyPI never
ran. v0.1.3 put the guard on the last step of a chain, which protected nothing.
Each time the fix was scoped to the publisher that happened to fail. The taps
were the remaining one.
Probe both tap tokens against their repositories before goreleaser starts and
set SKIP_HOMEBREW / SKIP_SCOOP from the result. A dead or missing token now
emits a workflow warning naming the repo and the HTTP status, and skips that
tap alone. .goreleaser.yml reads those through `skip_upload`, and takes the
tokens via envOrDefault so an unset secret cannot fail config loading either.
Two supporting changes:
- workflow_dispatch with a `tag` input. A release that fails halfway had no way
to be finished — the only trigger was the tag push that had already happened,
so the choice was moving a published tag or burning a version number. Both
jobs check out the requested tag, and the packaging steps take the version
from RELEASE_TAG rather than GITHUB_REF_NAME so a dispatch names the tag it
is publishing, not the branch it was launched from.
- release.mode: replace. The default keep-existing leaves the assets from a
failed run in place, so a retry cannot correct them.
Verified: goreleaser check passes; a snapshot build with the skips set produces
all 6 binaries and still writes the cask and scoop manifests. The probe was run
against a valid token (false), an invalid one (401 warning, true) and an empty
one (warning, true).
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QgkQePXPha8ShvoBerrVXL1 parent 5504b29 commit 4fe12cd
2 files changed
Lines changed: 90 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
7 | 17 | | |
8 | 18 | | |
9 | 19 | | |
| |||
12 | 22 | | |
13 | 23 | | |
14 | 24 | | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
15 | 28 | | |
16 | 29 | | |
17 | 30 | | |
18 | 31 | | |
19 | 32 | | |
| 33 | + | |
| 34 | + | |
20 | 35 | | |
21 | 36 | | |
22 | 37 | | |
| |||
32 | 47 | | |
33 | 48 | | |
34 | 49 | | |
| 50 | + | |
35 | 51 | | |
36 | 52 | | |
37 | 53 | | |
38 | 54 | | |
39 | 55 | | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
40 | 105 | | |
41 | 106 | | |
42 | 107 | | |
| |||
47 | 112 | | |
48 | 113 | | |
49 | 114 | | |
| 115 | + | |
50 | 116 | | |
51 | 117 | | |
52 | 118 | | |
| |||
73 | 139 | | |
74 | 140 | | |
75 | 141 | | |
76 | | - | |
| 142 | + | |
77 | 143 | | |
78 | 144 | | |
79 | 145 | | |
| |||
96 | 162 | | |
97 | 163 | | |
98 | 164 | | |
99 | | - | |
| 165 | + | |
100 | 166 | | |
101 | 167 | | |
102 | 168 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
37 | 37 | | |
38 | 38 | | |
39 | 39 | | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
40 | 46 | | |
41 | 47 | | |
42 | 48 | | |
| |||
50 | 56 | | |
51 | 57 | | |
52 | 58 | | |
53 | | - | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
54 | 70 | | |
55 | 71 | | |
56 | | - | |
| 72 | + | |
57 | 73 | | |
58 | 74 | | |
59 | 75 | | |
60 | 76 | | |
61 | | - | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
62 | 80 | | |
63 | 81 | | |
64 | | - | |
| 82 | + | |
65 | 83 | | |
66 | 84 | | |
67 | 85 | | |
| |||
0 commit comments