Documentation
¶
Index ¶
- Variables
- type CommitResult
- type GenericCommitResult
- func (r *GenericCommitResult) GetAuthorEmail() string
- func (r *GenericCommitResult) GetAuthorName() string
- func (r *GenericCommitResult) GetDescription() string
- func (r *GenericCommitResult) GetMessage() string
- func (r *GenericCommitResult) GetTitle() string
- func (r *GenericCommitResult) Validate() error
- type GenericPullRequestResult
- type GenericPullRequestSpec
- type GitStorage
- type PullRequestProvider
- type PullRequestResult
- type PullRequestSpec
- type TransactionFunc
- type TransactionStorage
Constants ¶
This section is empty.
Variables ¶
Functions ¶
This section is empty.
Types ¶
type CommitResult ¶
type CommitResult interface {
// GetAuthorName describes the author's name (as per git config)
// +required
GetAuthorName() string
// GetAuthorEmail describes the author's email (as per git config)
// +required
GetAuthorEmail() string
// GetTitle describes the change concisely, so it can be used as a commit message or PR title.
// +required
GetTitle() string
// GetDescription contains optional extra information about the change.
// +optional
GetDescription() string
// GetMessage returns GetTitle() followed by a newline and GetDescription(), if set.
GetMessage() string
// Validate validates that all required fields are set, and given data is valid.
Validate() error
}
CommitResult describes a result of a transaction.
type GenericCommitResult ¶
type GenericCommitResult struct {
// AuthorName describes the author's name (as per git config)
// +required
AuthorName string
// AuthorEmail describes the author's email (as per git config)
// +required
AuthorEmail string
// Title describes the change concisely, so it can be used as a commit message or PR title.
// +required
Title string
// Description contains optional extra information about the change.
// +optional
Description string
}
GenericCommitResult implements CommitResult.
func (*GenericCommitResult) GetAuthorEmail ¶
func (r *GenericCommitResult) GetAuthorEmail() string
func (*GenericCommitResult) GetAuthorName ¶
func (r *GenericCommitResult) GetAuthorName() string
func (*GenericCommitResult) GetDescription ¶
func (r *GenericCommitResult) GetDescription() string
func (*GenericCommitResult) GetMessage ¶
func (r *GenericCommitResult) GetMessage() string
func (*GenericCommitResult) GetTitle ¶
func (r *GenericCommitResult) GetTitle() string
func (*GenericCommitResult) Validate ¶
func (r *GenericCommitResult) Validate() error
type GenericPullRequestResult ¶
type GenericPullRequestResult struct {
// GenericPullRequestResult is a superset of a CommitResult.
CommitResult
// Labels specifies what labels should be applied on the PR.
// +optional
Labels []string
// Assignees specifies what user login names should be assigned to this PR.
// Note: Only users with "pull" access or more can be assigned.
// +optional
Assignees []string
// Milestone specifies what milestone this should be attached to.
// +optional
Milestone string
}
GenericPullRequestResult implements PullRequestResult.
func (*GenericPullRequestResult) GetAssignees ¶
func (r *GenericPullRequestResult) GetAssignees() []string
func (*GenericPullRequestResult) GetLabels ¶
func (r *GenericPullRequestResult) GetLabels() []string
func (*GenericPullRequestResult) GetMilestone ¶
func (r *GenericPullRequestResult) GetMilestone() string
func (*GenericPullRequestResult) Validate ¶
func (r *GenericPullRequestResult) Validate() error
type GenericPullRequestSpec ¶
type GenericPullRequestSpec struct {
// GenericPullRequestSpec is a superset of PullRequestResult.
PullRequestResult
// MainBranch returns the main branch of the repository.
// +required
MainBranch string
// MergeBranch returns the branch that is pending to be merged into main with this PR.
// +required
MergeBranch string
// RepositoryRef returns the branch that is pending to be merged into main with this PR.
// +required
RepositoryRef gitprovider.RepositoryRef
}
GenericPullRequestSpec implements PullRequestSpec.
func (*GenericPullRequestSpec) GetMainBranch ¶
func (r *GenericPullRequestSpec) GetMainBranch() string
func (*GenericPullRequestSpec) GetMergeBranch ¶
func (r *GenericPullRequestSpec) GetMergeBranch() string
func (*GenericPullRequestSpec) GetRepositoryRef ¶
func (r *GenericPullRequestSpec) GetRepositoryRef() gitprovider.RepositoryRef
func (*GenericPullRequestSpec) Validate ¶
func (r *GenericPullRequestSpec) Validate() error
type GitStorage ¶
type GitStorage struct {
storage.ReadStorage
// contains filtered or unexported fields
}
func (*GitStorage) Transaction ¶
func (s *GitStorage) Transaction(ctx context.Context, streamName string, fn TransactionFunc) error
type PullRequestProvider ¶
type PullRequestProvider interface {
// CreatePullRequest creates a Pull Request using the given specification.
CreatePullRequest(ctx context.Context, spec PullRequestSpec) error
}
PullRequestProvider is an interface for providers that can create so-called "Pull Requests", as popularized by Git. A Pull Request is a formal ask for a branch to be merged into the main one. It can be UI-based, as in GitHub and GitLab, or it can be using some other method.
type PullRequestResult ¶
type PullRequestResult interface {
// PullRequestResult is a superset of CommitResult
CommitResult
// GetLabels specifies what labels should be applied on the PR.
// +optional
GetLabels() []string
// GetAssignees specifies what user login names should be assigned to this PR.
// Note: Only users with "pull" access or more can be assigned.
// +optional
GetAssignees() []string
// GetMilestone specifies what milestone this should be attached to.
// +optional
GetMilestone() string
}
PullRequestResult can be returned from a TransactionFunc instead of a CommitResult, if a PullRequest is desired to be created by the PullRequestProvider.
type PullRequestSpec ¶
type PullRequestSpec interface {
// PullRequestSpec is a superset of PullRequestResult.
PullRequestResult
// GetMainBranch returns the main branch of the repository.
// +required
GetMainBranch() string
// GetMergeBranch returns the branch that is pending to be merged into main with this PR.
// +required
GetMergeBranch() string
// GetMergeBranch returns the branch that is pending to be merged into main with this PR.
// +required
GetRepositoryRef() gitprovider.RepositoryRef
}
PullRequestSpec is the messaging interface between the TransactionStorage, and the PullRequestProvider. The PullRequestSpec contains all the needed information for creating a Pull Request successfully.
type TransactionFunc ¶
type TransactionStorage ¶
type TransactionStorage interface {
storage.ReadStorage
// Transaction creates a new "stream" (for Git: branch) with the given name, or
// prefix if streamName ends with a dash (in that case, a 8-char hash will be appended).
// The environment is made sure to be as up-to-date as possible before fn executes. When
// fn executes, the given storage can be used to modify the desired state. If you want to
// "commit" the changes made in fn, just return nil. If you want to abort, return ErrAbortTransaction.
// If you want to
Transaction(ctx context.Context, streamName string, fn TransactionFunc) error
}
func NewGitStorage ¶
func NewGitStorage(gitDir gitdir.GitDirectory, prProvider PullRequestProvider, ser serializer.Serializer) (TransactionStorage, error)