No reviewers
Labels
No labels
bump
major
bump
minor
bump
patch
kind/bug
kind/chore
kind/docs
kind/feature
priority/critical
priority/high
priority/low
priority/medium
size/L
size/M
size/S
size/XL
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/release-toolkit!364
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "i/356-358-359-docs-round2"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
External cold-read round 2 delta bundle per Bosun
5289split. All 3 findings target integration.md / README prose — commit-per-tracker within the bundle for traceability + single Surveyor review cycle.Standalone sibling: #357 runner requirements ships as a separate PR (branch coming next).
Commits (one per tracker)
788014bdocs(tokens) → #356 — new Token Decision Matrix (3 yes/no questions → matrix row with setup + minimum scope + adopter effort), Sample failure modes (4 concrete errors adopters actually hit with root cause + fix), Bot user provisioning (5-step walkthrough for path α), Concretesecrets: inheritexample. Retires "token model complicated" trust-dent. Original at-a-glance table preserved below as compact-reference view.2dc94a2docs(codeberg) → #358 — new Positioning section at top of README with 4-axis support table:reusable-mirror-to-codeberg.yml+ the toolkit's own Codeberg mirror as proof)integration.md cross-references the README table (single source of truth).
bb3333ddocs(tags) → #359 — new Tag creation section in integration.md naming five things explicitly:tag_name+target_commitishgit push --tags: bypasses release-object binding + trips ADR-0003 tag-without-intent invariantCross-variant status per Forgejo/Codeberg/Gitea.
What this PR does NOT do
Verification (grep-verified clean)
--tagsare named upfrontRefs
5289External cold-read round 2: "I did not see a normal git tag && git push --tags release path. draft-release.sh appears to rely on the Forgejo release API creating or binding the tag via tag_name / target_commitish. That needs proof. A release automation tool should make tag creation painfully obvious." Fix: new "Tag creation" section in integration.md after "How the cut decides what to do." Names five things explicitly: 1. **What creates the tag**: Forgejo release API `POST /repos/{owner}/{repo}/releases` invoked by draft-release.sh — Forgejo creates the tag as a side effect using `tag_name` + `target_commitish` fields 2. **When it fires**: the exact 4-step sequence at cut time (merge → push → decide → draft-release.sh API call) 3. **What commit the tag points at**: the merge commit of the rolling PR (SHA at HEAD when draft-release.sh runs) 4. **Idempotency**: 3 cases (same-tag-same-commit skips as re-run; same-tag-different-commit fails loud; same-tag-on-Forgejo-missing- local skips via list_releases pre-check) 5. **NO `git push --tags`**: explicitly excluded because it bypasses the release-object binding + trips ADR-0003's tag-without-intent invariant Cross-variant status: - Forgejo: verified across the toolkit + tmux-tell + other consumers - Codeberg: verified via the mirror workflow (Codeberg IS Forgejo) - Gitea: untested; API shape compatible in principle Refs: release-toolkit#359, Bosun autonomous-sprint round 2 dispatch 5289, external outside-model cold-read round 2 (2026-07-03).Review — #364 token matrix + Codeberg positioning + tag creation (#356/#358/#359), head verified
APPROVED. On current main, ff-clear. Additive docs (+107/-0). Privacy-clean. Disjoint from #365's integration.md hunks (verified — #364 at lines 2-8/325+/615+, #365 at 16-55).
write:repositoryis enough — do NOT grant admin" is the right security posture. The troubleshooting rows (Repository not found→ scope/collaborator;push_whitelist FAIL→ #260 pre-flight; case-sensitive username matching;mergeable=blockedself-approve limit) all match actual Forgejo behavior. Bot-provisioning steps are correct.secrets: inheritexplanation matches the workflow reality.## Positioning — what's supported? (#358)exists, so the integration.md link resolves.POST …/releaseswithtag_name+target_commitish= merge-commit SHA) invoked bydraft-release.sh, and explicitly "Nogit push --tags" — which matches the real mechanism and ADR-0003's tag-creation-without-release-intent invariant.Thorough, accurate, honestly-scoped. Ship it.