merger

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 31, 2026 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type GitHubMerger

type GitHubMerger struct {
	// contains filtered or unexported fields
}

GitHubMerger implements Merger for GitHub.

func NewGitHubMerger

func NewGitHubMerger(token string) *GitHubMerger

NewGitHubMerger creates a new GitHub merger.

func (*GitHubMerger) ApprovePR

func (m *GitHubMerger) ApprovePR(ctx context.Context, repoRef model.RepoRef, prNumber int, body string) error

ApprovePR adds an approval review to a pull request.

func (*GitHubMerger) DeleteBranch

func (m *GitHubMerger) DeleteBranch(ctx context.Context, repoRef model.RepoRef, branch string) error

DeleteBranch deletes the PR's head branch after merge.

func (*GitHubMerger) IsMergeable

func (m *GitHubMerger) IsMergeable(ctx context.Context, repoRef model.RepoRef, prNumber int) (bool, string, error)

IsMergeable checks if a PR can be merged.

func (*GitHubMerger) MergePR

func (m *GitHubMerger) MergePR(ctx context.Context, repoRef model.RepoRef, prNumber int, strategy MergeStrategy, commitMessage string) (*MergeInfo, error)

MergePR merges a pull request using the specified strategy.

type MergeInfo

type MergeInfo struct {
	SHA     string `json:"sha"`
	Message string `json:"message"`
	Merged  bool   `json:"merged"`
}

MergeInfo contains information about a successful merge.

type MergeStrategy

type MergeStrategy string

MergeStrategy defines how to merge a PR.

const (
	MergeStrategyMerge  MergeStrategy = "merge"
	MergeStrategySquash MergeStrategy = "squash"
	MergeStrategyRebase MergeStrategy = "rebase"
)

type Merger

type Merger interface {
	// MergePR merges a pull request using the specified strategy.
	MergePR(ctx context.Context, repo model.RepoRef, prNumber int, strategy MergeStrategy, commitMessage string) (*MergeInfo, error)

	// ApprovePR adds an approval review to a pull request.
	ApprovePR(ctx context.Context, repo model.RepoRef, prNumber int, body string) error

	// IsMergeable checks if a PR can be merged.
	IsMergeable(ctx context.Context, repo model.RepoRef, prNumber int) (bool, string, error)

	// DeleteBranch deletes the PR's head branch after merge.
	DeleteBranch(ctx context.Context, repo model.RepoRef, branch string) error
}

Merger defines the interface for merging pull requests.

func NewGitHub

func NewGitHub(token string) Merger

NewGitHub creates a new GitHub merger with the given token.

type Options

type Options struct {
	Strategy      MergeStrategy
	DeleteBranch  bool
	CommitMessage string
	WaitForChecks bool
	ChecksTimeout int // seconds
}

Options configures merge behavior.

func DefaultOptions

func DefaultOptions() Options

DefaultOptions returns sensible default merge options.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL