feat(mq): add configurable integration branch naming (#104)

Enterprise teams can now customize integration branch names to match
their conventions (e.g., username/TICKET-123/feature-name).

- Add integration_branch_template to MergeQueueConfig
- Add --branch CLI override for gt mq integration create
- Support {epic}, {prefix}, {user} template variables
- Validate branch names for git-safe characters
- Store actual branch name in epic metadata at create time
- Read stored branch name in land/status (fallback for old epics)

Also fixes unrelated build error in polecat/manager.go (polecatPath
variable was undefined).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
gastown/crew/joe
2026-01-09 00:41:15 -08:00
committed by Steve Yegge
parent f19ddc5400
commit 358fcaf935
4 changed files with 443 additions and 15 deletions

View File

@@ -605,6 +605,14 @@ type MergeQueueConfig struct {
// IntegrationBranches enables integration branch workflow for epics.
IntegrationBranches bool `json:"integration_branches"`
// IntegrationBranchTemplate is the pattern for integration branch names.
// Supports variables: {epic}, {prefix}, {user}
// - {epic}: Full epic ID (e.g., "RA-123")
// - {prefix}: Epic prefix before first hyphen (e.g., "RA")
// - {user}: Git user.name (e.g., "klauern")
// Default: "integration/{epic}"
IntegrationBranchTemplate string `json:"integration_branch_template,omitempty"`
// OnConflict specifies conflict resolution strategy: "assign_back" or "auto_rebase".
OnConflict string `json:"on_conflict"`