Skip to content

docs: add merge strategy guidance for signed commits#9

Merged
CybotTM merged 1 commit into
mainfrom
feat/signed-commits-merge-strategy
Jan 19, 2026
Merged

docs: add merge strategy guidance for signed commits#9
CybotTM merged 1 commit into
mainfrom
feat/signed-commits-merge-strategy

Conversation

@CybotTM

@CybotTM CybotTM commented Jan 19, 2026

Copy link
Copy Markdown
Member

Summary

  • Documents the conflict between required_signatures and required_linear_history branch protection settings
  • Explains why GitHub's rebase/squash merge cannot work with signed commits
  • Provides the recommended workflow: rebase locally + merge commit
  • Adds auto-merge compatibility matrix

Changes

  • SKILL.md: Added "Merge Strategy & Signed Commits" section with quick reference
  • references/merge-strategy.md: New detailed reference with API commands and troubleshooting

Context

Discovered while troubleshooting PR merge failures in go-cron repo. The settings required_linear_history: true + required_signatures: true are incompatible because GitHub cannot sign commits during rebase merge.

Test plan

  • Verified documentation accuracy against actual GitHub behavior
  • Tested API commands in netresearch/go-cron repo

Explains the conflict between `required_signatures` and
`required_linear_history` branch protection settings, and
documents the recommended workflow:

- Rebase locally (developer signs commits)
- Merge via merge commit (GitHub signs merge commit)

Includes:
- Quick reference in SKILL.md
- Detailed reference file with API commands
- Auto-merge compatibility matrix
- Troubleshooting guide
@CybotTM CybotTM merged commit a146d4c into main Jan 19, 2026
2 checks passed
@CybotTM CybotTM deleted the feat/signed-commits-merge-strategy branch January 19, 2026 21:10
CybotTM added a commit that referenced this pull request May 5, 2026
GH-3 (SECURITY.md), GH-4 (CONTRIBUTING.md), GH-7 (PR template)
declare org_provides: paths so the runner falls back to
`gh api repos/{owner}/.github/contents/<path>` when the local file
is missing. Repos that opt into org-wide community-health files (the
documented GitHub default) now stop being flagged.

GH-7 also accepts both PULL_REQUEST_TEMPLATE.md and the lowercase
pull_request_template.md (which is what netresearch/.github actually
uses) — GitHub treats these case-insensitively.

GH-5 (CODEOWNERS) intentionally stays local-only — GitHub's review
routing only honours CODEOWNERS in the consuming repo, not the org's
.github fallback.

GH-8 / GH-9 (issue templates) declare org_provides for completeness
but most orgs don't ship default issue templates; for those repos
this still surfaces as a finding. When an org does provide them at
{owner}/.github/.github/ISSUE_TEMPLATE/<name>, the checkpoint passes.

Signed-off-by: Sebastian Mendel <github@sebastianmendel.de>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant