The first Arch package run built qtpotato-0.1.0-1 but failed to upload it with HTTP 401. Gitea's package registry rejects the Actions job token: a probe got 401 with it as a token header, as Bearer, and as basic auth. The same token got 200 from the normal API. The workflow now uses a PACKAGE_TOKEN secret, a personal access token with only the write:package scope, which has been added to the repo.
Proof: the run for v0.1.0 built the package (8/8 tests) and failed only at upload with 401. A request with the new token to the package API is authenticated. The full upload is checked after merge by rerunning for v0.1.0.
Created with Claude Opus 5.5 in Claude Code (T3 Code).
The first Arch package run built `qtpotato-0.1.0-1` but failed to upload it with HTTP 401. Gitea's package registry rejects the Actions job token: a probe got 401 with it as a `token` header, as `Bearer`, and as basic auth. The same token got 200 from the normal API. The workflow now uses a `PACKAGE_TOKEN` secret, a personal access token with only the `write:package` scope, which has been added to the repo.
Proof: the run for `v0.1.0` built the package (8/8 tests) and failed only at upload with 401. A request with the new token to the package API is authenticated. The full upload is checked after merge by rerunning for `v0.1.0`.
Created with Claude Opus 5.5 in Claude Code (T3 Code).
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
The first Arch package run built
qtpotato-0.1.0-1but failed to upload it with HTTP 401. Gitea's package registry rejects the Actions job token: a probe got 401 with it as atokenheader, asBearer, and as basic auth. The same token got 200 from the normal API. The workflow now uses aPACKAGE_TOKENsecret, a personal access token with only thewrite:packagescope, which has been added to the repo.Proof: the run for
v0.1.0built the package (8/8 tests) and failed only at upload with 401. A request with the new token to the package API is authenticated. The full upload is checked after merge by rerunning forv0.1.0.Created with Claude Opus 5.5 in Claude Code (T3 Code).