Documentation
¶
Overview ¶
Package forge provides interfaces and implementations for interacting with various forge platforms.
Index ¶
- Constants
- Variables
- type Forge
- type GitHub
- func (g *GitHub) GenerateBranchName(issueInfo *issue.Info) string
- func (g *GitHub) GetIssueInfo(issueRef string) (*issue.Info, error)
- func (g *GitHub) Name() string
- func (g *GitHub) ParseIssueReference(issueRef string) (*issue.Reference, error)
- func (g *GitHub) ValidateForgeRepository(repoPath string) error
- type Manager
- type ManagerInterface
Constants ¶
const ( // GitHubName is the name identifier for GitHub forge. GitHubName = "github" // GitHubDomain is the GitHub domain for URL validation. GitHubDomain = "github.com" // MaxTitleLength is the maximum length for sanitized issue titles in branch names. MaxTitleLength = 80 )
Variables ¶
var ( ErrUnsupportedForge = errors.New("unsupported forge") ErrIssueNotFound = errors.New("issue not found") ErrIssueClosed = errors.New("issue is closed, only open issues are supported") ErrInvalidIssueRef = errors.New("invalid issue reference format") ErrRateLimited = errors.New("rate limited by forge API") )
Forge-specific errors.
Functions ¶
This section is empty.
Types ¶
type Forge ¶
type Forge interface { // Name returns the name of the forge Name() string // GetIssueInfo fetches issue information from the forge GetIssueInfo(issueRef string) (*issue.Info, error) // ValidateForgeRepository validates that repository has supported forge remote origin ValidateForgeRepository(repoPath string) error // ParseIssueReference parses various issue reference formats ParseIssueReference(issueRef string) (*issue.Reference, error) // GenerateBranchName generates branch name from issue information GenerateBranchName(issueInfo *issue.Info) string }
Forge interface defines the methods that all forge implementations must provide.
type GitHub ¶
type GitHub struct {
// contains filtered or unexported fields
}
GitHub represents the GitHub forge implementation.
func (*GitHub) GenerateBranchName ¶
GenerateBranchName generates branch name from issue information.
func (*GitHub) GetIssueInfo ¶
GetIssueInfo fetches issue information from GitHub API.
func (*GitHub) ParseIssueReference ¶
ParseIssueReference parses various issue reference formats.
func (*GitHub) ValidateForgeRepository ¶
ValidateForgeRepository validates that repository has GitHub remote origin.
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
Manager manages forge implementations and provides a unified interface.
func NewManager ¶
NewManager creates a new forge manager with registered forge implementations.
type ManagerInterface ¶
type ManagerInterface interface { // GetForgeForRepository returns the appropriate forge for the given repository GetForgeForRepository(repoName string) (Forge, error) }
ManagerInterface defines the interface for forge management.