 Documentation
      ¶
      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 {
	// GetForge returns the forge implementation for the given name
	GetForge(name string) (Forge, error)
	// GetForgeForRepository returns the appropriate forge for the given repository
	GetForgeForRepository(repoPath string) (Forge, error)
}
    ManagerInterface defines the interface for forge management.