Make Forgejo release deletion argv-safe #663

Closed
opened 2026-05-09 00:46:44 +00:00 by barrettruth · 0 comments
Owner

Problem

Forgejo release deletion builds a shell command by concatenating the release tag into sh -c:

  • lua/forge/backends/forgejo.lua:1266

Release tags are accepted as unconstrained release subjects, so tags containing spaces or shell metacharacters can fail or be interpreted as shell syntax. GitHub and GitLab release deletion use argv-safe command tables.

Expected

Build the Forgejo delete command without shell string concatenation, or quote every dynamic component with a shared safe shell-argument helper if tea requires sh -c.

Non-goals

Do not change release picker behavior or release-delete confirmation semantics.

Context

Found during release-preview readiness audit. Remote Forgejo CI cannot currently be awaited because the Spark runner is down; use local verification for the fix.

## Problem Forgejo release deletion builds a shell command by concatenating the release tag into `sh -c`: - `lua/forge/backends/forgejo.lua:1266` Release tags are accepted as unconstrained release subjects, so tags containing spaces or shell metacharacters can fail or be interpreted as shell syntax. GitHub and GitLab release deletion use argv-safe command tables. ## Expected Build the Forgejo delete command without shell string concatenation, or quote every dynamic component with a shared safe shell-argument helper if `tea` requires `sh -c`. ## Non-goals Do not change release picker behavior or release-delete confirmation semantics. ## Context Found during release-preview readiness audit. Remote Forgejo CI cannot currently be awaited because the Spark runner is down; use local verification for the fix.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
barrettruth/forge.nvim#663
No description provided.