softprops/action-gh-release deletes-then-uploads to replace an existing asset, and the delete 404s on Gitea — so re-running a single failed job against an existing release fails, forcing a full delete+re-tag. Fine for normal version bumps (fresh release each tag), annoying for re-runs.
Fix
Replace the release step with a small Gitea-native upload (curl/pwsh): get-or-create release for the tag, list assets, DELETE existing by asset id via the correct Gitea endpoint, then upload. Handles replace correctly and drops the github-action fetch dependency.
P3, tech-debt.
## Problem
`softprops/action-gh-release` deletes-then-uploads to replace an existing asset, and the delete 404s on Gitea — so re-running a single failed job against an existing release fails, forcing a full delete+re-tag. Fine for normal version bumps (fresh release each tag), annoying for re-runs.
## Fix
Replace the release step with a small Gitea-native upload (curl/pwsh): get-or-create release for the tag, list assets, DELETE existing by asset id via the correct Gitea endpoint, then upload. Handles replace correctly and drops the github-action fetch dependency.
P3, tech-debt.
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.
Problem
softprops/action-gh-releasedeletes-then-uploads to replace an existing asset, and the delete 404s on Gitea — so re-running a single failed job against an existing release fails, forcing a full delete+re-tag. Fine for normal version bumps (fresh release each tag), annoying for re-runs.Fix
Replace the release step with a small Gitea-native upload (curl/pwsh): get-or-create release for the tag, list assets, DELETE existing by asset id via the correct Gitea endpoint, then upload. Handles replace correctly and drops the github-action fetch dependency.
P3, tech-debt.