docs(typo3-conformance): harden the TER publish workflow template - #109
Open
magicsunday wants to merge 2 commits into
Open
docs(typo3-conformance): harden the TER publish workflow template#109magicsunday wants to merge 2 commits into
magicsunday wants to merge 2 commits into
Conversation
Contributor
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Scanned FilesNone |
Add security hardening, idempotency, and CHANGELOG-sourced comments to the publish-to-ter.yml template and reference doc, learned from building and load-testing a real TER publish pipeline end to end: - SHA-pin third-party actions, add step-security/harden-runner, persist-credentials: false, explicit least-privilege permissions - Move every context value/step output out of run: script bodies and into env:, closing the classic script-injection vector - Randomize the $GITHUB_OUTPUT heredoc delimiter (a static EOF can be smuggled via a release body/CHANGELOG section containing that line) - Resolve the extension key from composer.json instead of a secret (matches tailor's own documented resolution order) - Pin typo3/tailor to a major-version constraint instead of floating - Add an idempotency precheck before publish and a bounded poll to verify TER actually serves the version afterward, instead of trusting the API call's exit code alone - Prefer CHANGELOG.md's own section for the comment source over the release body, with a CRLF-safe heading match and a heading-aware character strip (avoids leaving an orphaned space where a Markdown heading marker was removed) - Add an optional workflow_dispatch republish path, with the tag input verified as a real git tag (not just format-validated) before it is trusted Signed-off-by: Rico Sonntag <rico.sonntag@netresearch.de>
magicsunday
force-pushed
the
harden-ter-publish-workflow
branch
from
August 26, 2026 13:23
e51044f to
76934ac
Compare
… gap Found while load-testing the exact pattern this skill recommends: a separate workflow auto-creating the GitHub Release via the default GITHUB_TOKEN never fires publish-to-ter.yml's release: published trigger, since GitHub does not fire downstream workflow triggers for GITHUB_TOKEN-caused events (only workflow_dispatch/repository_dispatch are exempt). Every workflow_dispatch test of the publish workflow kept succeeding throughout, since that trigger was never affected - only a real tag push surfaced that the advertised automatic path was broken. Add push: tags as the primary trigger on the template (a real git event, not token-gated), document the mechanism and the fix, and add a conformance checklist item calling out that this needs verifying against a real tag push, not just workflow_dispatch. Signed-off-by: Rico Sonntag <rico.sonntag@netresearch.de>
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Summary
${{ }}interpolation intorun:bodies, randomized$GITHUB_OUTPUTheredoc delimiter) to thepublish-to-ter.ymlasset templatecomposer.jsoninstead of a secret, matchingtailor's own documented resolution orderCHANGELOG.md's own section as the TER upload comment source (CRLF-safe heading match, heading-aware character strip), falling back to the release body/titleworkflow_dispatchrepublish path, with the tag input verified as a real git tag (not just format-validated)references/ter-publishing.mdwith new sections documenting all of the above, plus matching conformance checklist itemsContext
Learned end to end while building and load-testing a real TER publish pipeline for an external (non-Netresearch-org) TYPO3 extension: reviewed against this skill's existing template, then hardened and load-tested against the real TER API (including a genuine first-publish failure root-caused to a stale git tag, not the workflow itself).
Test plan
python3 -c "import yaml; ...")run:script block validated withbash -n