feat(mq): add gt mq integration land command (gt-h5n.5)
Implements the 'gt mq integration land <epic>' command that merges an integration branch to main. Features: - Verifies all MRs targeting integration branch are merged (unless --force) - Merges with --no-ff for clear merge commit - Runs tests before push (unless --skip-tests) - Deletes integration branch (local and remote) - Closes epic with merge commit info - Rollback on test/push failure - Dry-run mode (--dry-run) Also adds to git package: - MergeNoFF: merge with --no-ff flag - DeleteRemoteBranch: delete branch on origin - Reset: reset HEAD with optional --hard 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -201,6 +201,30 @@ func (g *Git) Merge(branch string) error {
|
||||
return err
|
||||
}
|
||||
|
||||
// MergeNoFF merges the given branch with --no-ff (no fast-forward).
|
||||
// This always creates a merge commit even if fast-forward is possible.
|
||||
func (g *Git) MergeNoFF(branch, message string) error {
|
||||
_, err := g.run("merge", "--no-ff", "-m", message, branch)
|
||||
return err
|
||||
}
|
||||
|
||||
// DeleteRemoteBranch deletes a branch from the remote.
|
||||
func (g *Git) DeleteRemoteBranch(remote, branch string) error {
|
||||
_, err := g.run("push", remote, "--delete", branch)
|
||||
return err
|
||||
}
|
||||
|
||||
// Reset resets the current branch to the given ref.
|
||||
// If hard is true, uses --hard (discards working tree changes).
|
||||
func (g *Git) Reset(ref string, hard bool) error {
|
||||
args := []string{"reset", ref}
|
||||
if hard {
|
||||
args = []string{"reset", "--hard", ref}
|
||||
}
|
||||
_, err := g.run(args...)
|
||||
return err
|
||||
}
|
||||
|
||||
// Rebase rebases the current branch onto the given ref.
|
||||
func (g *Git) Rebase(onto string) error {
|
||||
_, err := g.run("rebase", onto)
|
||||
|
||||
Reference in New Issue
Block a user