Documentation
¶
Overview ¶
Package scm provides source control management abstractions and provider interfaces.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Register ¶
func Register(name string, factory ProviderFactory)
Register a new SCM provider factory by name.
func ValidatePROptions ¶ added in v0.11.0
func ValidatePROptions(caps *Capabilities, opts *PROptions) error
ValidatePROptions validates that the provided PR options are supported by the given capabilities.
Types ¶
type Capabilities ¶ added in v0.11.0
type Capabilities struct {
TeamReviewers bool
ResetReviewers bool
Draft bool
MergeMethods []string
CheckMergeable bool
}
Capabilities defines which PR options are supported by a provider.
type PRMergeOptions ¶ added in v0.11.0
PRMergeOptions holds options for merging pull requests.
type PROptions ¶ added in v0.11.0
type PROptions struct {
Title string
Description string
Reviewers []string
TeamReviewers []string
ResetReviewers bool
BaseBranch string
Draft *bool
Merge PRMergeOptions
}
PROptions holds options for creating or updating pull requests.
type Provider ¶
type Provider interface {
// CheckCapabilities validates that the provided PR options are supported by the provider.
CheckCapabilities(opts *PROptions) error
// ListRepositories lists all repositories in the specified project.
ListRepositories() ([]*Repository, error)
// GetPullRequest retrieves a pull request by repository name and source branch.
GetPullRequest(repo, branch string) (*PullRequest, error)
// OpenPullRequest opens a new pull request in the specified repository.
OpenPullRequest(repo, branch string, opts *PROptions) (*PullRequest, error)
// UpdatePullRequest updates an existing pull request.
UpdatePullRequest(repo, branch string, opts *PROptions) (*PullRequest, error)
// MergePullRequest merges an existing pull request.
MergePullRequest(repo, branch string, opts *PRMergeOptions) (*PullRequest, error)
}
Provider defines the interface for SCM providers.
type ProviderFactory ¶
ProviderFactory is a function that creates a new Provider instance.
type PullRequest ¶
type PullRequest struct {
Title string `json:"title"`
Description string `json:"description"`
Branch string `json:"branch"`
Repo string `json:"repo"`
Reviewers []string `json:"reviewers"`
TeamReviewers []string `json:"team_reviewers,omitempty"`
ID int `json:"id"`
Number int `json:"number"`
Version int `json:"version,omitempty"`
Draft bool `json:"draft,omitempty"`
Mergeable bool `json:"mergeable"`
}
PullRequest represents a pull request in a repository.
type Repository ¶
type Repository struct {
Name string `json:"name"`
Description string `json:"description"`
Public bool `json:"public"`
Project string `json:"project"`
DefaultBranch string `json:"default_branch"`
Labels []string `json:"labels,omitempty"`
}
Repository represents a source code repository.
Directories
¶
| Path | Synopsis |
|---|---|
|
Package bitbucket provides Bitbucket SCM integration for batch-tool.
|
Package bitbucket provides Bitbucket SCM integration for batch-tool. |
|
Package github provides GitHub SCM integration for batch-tool.
|
Package github provides GitHub SCM integration for batch-tool. |
Click to show internal directories.
Click to hide internal directories.