gitprovider

package
v0.1.1 Latest Latest
Warning

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

Go to latest
Published: Mar 3, 2026 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CombinedStatus

type CombinedStatus struct {
	State    string // Overall: "pending", "success", "error", "failure"
	Statuses []*CommitStatus
}

CombinedStatus represents the overall status of all checks on a commit.

type Comment

type Comment struct {
	ID        int64
	Body      string
	User      string
	CreatedAt time.Time
	HTMLURL   string
}

type CommitStatus

type CommitStatus struct {
	Context     string // Check name (e.g. "ci/woodpecker", "lint")
	State       string // "pending", "success", "error", "failure"
	Description string
	TargetURL   string
}

CommitStatus represents the status of a single CI check on a commit.

type ForgejoProvider

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

func (*ForgejoProvider) CreateComment

func (p *ForgejoProvider) CreateComment(owner, repo string, index int64, body string) (*Comment, error)

func (*ForgejoProvider) CreatePR

func (p *ForgejoProvider) CreatePR(owner, repo, head, base, title, body string) (*PullRequest, error)

func (*ForgejoProvider) EditPR

func (p *ForgejoProvider) EditPR(owner, repo string, index int64, title, body string) (*PullRequest, error)

func (*ForgejoProvider) GetCIFailureDetails

func (p *ForgejoProvider) GetCIFailureDetails(owner, repo, sha string) ([]*JobFailure, error)

func (*ForgejoProvider) GetCombinedStatus

func (p *ForgejoProvider) GetCombinedStatus(owner, repo, ref string) (*CombinedStatus, error)

func (*ForgejoProvider) GetPR

func (p *ForgejoProvider) GetPR(owner, repo string, index int64) (*PullRequest, error)

func (*ForgejoProvider) ListComments

func (p *ForgejoProvider) ListComments(owner, repo string, index int64) ([]*Comment, error)

func (*ForgejoProvider) MergePR

func (p *ForgejoProvider) MergePR(owner, repo string, index int64, deleteBranch bool) error

func (*ForgejoProvider) Name

func (p *ForgejoProvider) Name() string

type GitHubProvider

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

func (*GitHubProvider) CreateComment

func (p *GitHubProvider) CreateComment(owner, repo string, index int64, body string) (*Comment, error)

func (*GitHubProvider) CreatePR

func (p *GitHubProvider) CreatePR(owner, repo, head, base, title, body string) (*PullRequest, error)

func (*GitHubProvider) EditPR

func (p *GitHubProvider) EditPR(owner, repo string, index int64, title, body string) (*PullRequest, error)

func (*GitHubProvider) GetCIFailureDetails

func (p *GitHubProvider) GetCIFailureDetails(owner, repo, sha string) ([]*JobFailure, error)

func (*GitHubProvider) GetCombinedStatus

func (p *GitHubProvider) GetCombinedStatus(owner, repo, ref string) (*CombinedStatus, error)

func (*GitHubProvider) GetPR

func (p *GitHubProvider) GetPR(owner, repo string, index int64) (*PullRequest, error)

func (*GitHubProvider) ListComments

func (p *GitHubProvider) ListComments(owner, repo string, index int64) ([]*Comment, error)

func (*GitHubProvider) MergePR

func (p *GitHubProvider) MergePR(owner, repo string, index int64, deleteBranch bool) error

func (*GitHubProvider) Name

func (p *GitHubProvider) Name() string

type JobFailure

type JobFailure struct {
	WorkflowName string
	JobName      string
	LogTail      string // last ~50 lines of job log (best-effort)
	HTMLURL      string
}

JobFailure describes a single failed CI job with optional log tail.

type Provider

type Provider interface {
	Name() string
	CreatePR(owner, repo, head, base, title, body string) (*PullRequest, error)
	EditPR(owner, repo string, index int64, title, body string) (*PullRequest, error)
	GetPR(owner, repo string, index int64) (*PullRequest, error)
	MergePR(owner, repo string, index int64, deleteBranch bool) error
	CreateComment(owner, repo string, index int64, body string) (*Comment, error)
	ListComments(owner, repo string, index int64) ([]*Comment, error)
	GetCombinedStatus(owner, repo, ref string) (*CombinedStatus, error)
	GetCIFailureDetails(owner, repo, sha string) ([]*JobFailure, error)
}

func NewForgejoProvider

func NewForgejoProvider() (Provider, error)

func NewGitHubProvider

func NewGitHubProvider() (Provider, error)

func NewProvider

func NewProvider(info *RepoInfo) (Provider, error)

func NewProviderByName

func NewProviderByName(name string) (Provider, error)

type ProviderType

type ProviderType string
const (
	ProviderForgejo ProviderType = "forgejo"
	ProviderGitHub  ProviderType = "github"
)

type PullRequest

type PullRequest struct {
	Index     int64
	Title     string
	Body      string
	State     string
	HTMLURL   string
	Head      string
	HeadSHA   string
	Base      string
	Mergeable bool
	Merged    bool
}

type RepoInfo

type RepoInfo struct {
	Owner         string
	Repo          string
	Provider      ProviderType
	Host          string
	DefaultBranch string
}

func DetectProvider

func DetectProvider(workDir string) (*RepoInfo, error)

func ParseRemoteURL

func ParseRemoteURL(remoteURL string) (*RepoInfo, error)

func (*RepoInfo) PRURL

func (r *RepoInfo) PRURL(prID string) string

PRURL constructs the full web URL for a pull request.

Jump to

Keyboard shortcuts

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