The action interpolated image and tag straight into the JSON string, so a quote in either broke the payload. It is now built with jq --arg. Also replaces the GNU-only head -n -1 so the action runs on BSD/macOS runners, and documents that swarm mode sets the service image to the tag (omitting it deploys :latest).
Verified locally against a mock server: a tag containing a quote is escaped correctly, HTTP 200 exits 0 and HTTP 500 exits 1.
The action interpolated image and tag straight into the JSON string, so a quote in either broke the payload. It is now built with jq --arg. Also replaces the GNU-only head -n -1 so the action runs on BSD/macOS runners, and documents that swarm mode sets the service image to the tag (omitting it deploys :latest).
Verified locally against a mock server: a tag containing a quote is escaped correctly, HTTP 200 exits 0 and HTTP 500 exits 1.
Interpolating inputs straight into the JSON string let a quote in image or
tag break the payload. Also replaces GNU-only head -n -1 so the action runs
on BSD/macOS runners.
This pull request has changes conflicting with the target branch.
CLAUDE.md
gitea-action/README.md
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.
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 action interpolated image and tag straight into the JSON string, so a quote in either broke the payload. It is now built with jq --arg. Also replaces the GNU-only head -n -1 so the action runs on BSD/macOS runners, and documents that swarm mode sets the service image to the tag (omitting it deploys :latest).
Verified locally against a mock server: a tag containing a quote is escaped correctly, HTTP 200 exits 0 and HTTP 500 exits 1.
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.