Documentation ¶
Index ¶
- Constants
- Variables
- type ActionSpec
- type Changelog
- type GitHubClient
- type Github
- func (g *Github) Add(files []string) error
- func (g *Github) Changelog(version version.Version) (string, error)
- func (g *Github) Checkout() error
- func (g *Github) Clean() error
- func (g *Github) Clone() (string, error)
- func (g *Github) Commit(message string) error
- func (g *Github) GetChangedFiles(workingDir string) ([]string, error)
- func (g *Github) GetDirectory() (directory string)
- func (g *Github) Push() error
- func (g *Github) PushBranch(branch string) error
- func (g *Github) PushTag(tag string) error
- func (g *Github) SearchReleases(releaseType ReleaseType) (releases []string, err error)
- func (g *Github) SearchTags() (tags []string, err error)
- type GithubHandler
- type MockGitHubClient
- type PageInfo
- type PullRequest
- type PullRequestApi
- type RateLimit
- type ReleaseType
- type Spec
Constants ¶
const PULLREQUESTBODY = `
# {{ .Title }}
{{ if .Introduction }}
{{ .Introduction }}
{{ end }}
## Report
{{ .Report }}
## Changelog
<details><summary>Click to expand</summary>
` + "````\n{{ .Description }}\n````" + `
</details>
## Remark
This pull request was automatically created using [Updatecli](https://www.updatecli.io).
Please report any issues with this tool [here](https://github.com/updatecli/updatecli/issues/)
`
PULLREQUESTBODY is the template used as a Pull Request description Please note that triple backticks are concatenated with the literals, as they cannot be escaped
Variables ¶
var ( ErrAutomergeNotAllowOnRepository = errors.New("automerge is not allowed on repository") ErrBadMergeMethod = errors.New("wrong merge method defined, accepting one of 'squash', 'merge', 'rebase', or ''") )
Functions ¶
This section is empty.
Types ¶
type ActionSpec ¶ added in v0.40.0
type ActionSpec struct { // Specifies if automerge is enabled for the new pullrequest AutoMerge bool `yaml:",omitempty"` // Specifies the Pull Request title Title string `yaml:",omitempty"` // Specifies user input description used during pull body creation Description string `yaml:",omitempty"` // Specifies repository labels used for the Pull Request. !! Labels must already exist on the repository Labels []string `yaml:",omitempty"` // Specifies if a Pull Request is set to draft, default false Draft bool `yaml:",omitempty"` // Specifies if maintainer can modify pullRequest MaintainerCannotModify bool `yaml:",omitempty"` // Specifies which merge method is used to incorporate the Pull Request. Accept "merge", "squash", "rebase", or "" MergeMethod string `yaml:",omitempty"` // Specifies to use the Pull Request title as commit message when using auto merge, only works for "squash" or "rebase" UseTitleForAutoMerge bool `yaml:",omitempty"` }
ActionSpec specifies the configuration of an action of type "GitHub Pull Request"
func (*ActionSpec) Validate ¶ added in v0.40.0
func (s *ActionSpec) Validate() error
Validate ensures that the provided ActionSpec is valid
type GitHubClient ¶
type GitHubClient interface { Query(ctx context.Context, q interface{}, variables map[string]interface{}) error Mutate(ctx context.Context, m interface{}, input githubv4.Input, variables map[string]interface{}) error }
GitHubClient must be implemented by any GitHub query client (v4 API)
type Github ¶
type Github struct { // Spec contains inputs coming from updatecli configuration Spec Spec // HeadBranch is used when creating a temporary branch before opening a Pull Request HeadBranch string // contains filtered or unexported fields }
Github contains settings to interact with Github
func (*Github) GetChangedFiles ¶
func (*Github) GetDirectory ¶
GetDirectory returns the local git repository path.
func (*Github) PushBranch ¶ added in v0.44.0
PushBranch push tags
func (*Github) SearchReleases ¶
func (g *Github) SearchReleases(releaseType ReleaseType) (releases []string, err error)
SearchReleases return every releases from the github api ordered by reverse order of created time. Draft and pre-releases are filtered out.
func (*Github) SearchTags ¶
SearchTags return every tags from the github api return in reverse order of commit tags.
type GithubHandler ¶
type GithubHandler interface { SearchReleases(releaseType ReleaseType) (releases []string, err error) SearchTags() (tags []string, err error) Changelog(version.Version) (string, error) }
GithubHandler must be implemented by any GitHub module
type MockGitHubClient ¶
type MockGitHubClient struct {
// contains filtered or unexported fields
}
type PullRequest ¶
type PullRequest struct { Description string Report string Title string // contains filtered or unexported fields }
func NewAction ¶ added in v0.40.0
func NewAction(spec ActionSpec, gh *Github) (PullRequest, error)
func (*PullRequest) CreateAction ¶ added in v0.40.0
func (p *PullRequest) CreateAction(title, changelog, pipelineReport string) error
func (*PullRequest) EnablePullRequestAutoMerge ¶
func (p *PullRequest) EnablePullRequestAutoMerge() error
EnablePullRequestAutoMerge updates an existing pullrequest with the flag automerge
func (*PullRequest) GetPullRequestLabelsInformation ¶
func (p *PullRequest) GetPullRequestLabelsInformation() ([]repositoryLabelApi, error)
getPullRequestLabelsInformation queries GitHub Api to retrieve every labels assigned to a pullRequest
func (*PullRequest) OpenPullRequest ¶
func (p *PullRequest) OpenPullRequest() error
OpenPullRequest creates a new GitHub Pull Request.
type PullRequestApi ¶
type PullRequestApi struct { BaseRefName string Body string HeadRefName string ID string State string Title string Url string Number int }
PullRequest contains multiple fields mapped to Github V4 api
type ReleaseType ¶ added in v0.38.0
type ReleaseType struct { // "Draft" enable/disable GitHub draft release Draft bool // "PreRelease" enable/disable GitHub PreRelease PreRelease bool // "Release" enable/disable GitHub release Release bool // "Latest" if set to true will only filter the release flag as latest. Latest bool }
ReleaseType specifies accepted GitHub Release type
func (*ReleaseType) Init ¶ added in v0.38.0
func (r *ReleaseType) Init()
func (ReleaseType) IsZero ¶ added in v0.38.0
func (r ReleaseType) IsZero() bool
IsZero checks if all release type are set to disable
type Spec ¶
type Spec struct { // Branch specifies which github branch to work on Branch string `yaml:",omitempty"` // Directory specifies where the github repository is cloned on the local disk Directory string `yaml:",omitempty"` // Email specifies which emails to use when creating commits Email string `yaml:",omitempty"` // Owner specifies repository owner Owner string `yaml:",omitempty" jsonschema:"required"` // Repository specifies the name of a repository for a specific owner Repository string `yaml:",omitempty" jsonschema:"required"` // Token specifies the credential used to authenticate with Token string `yaml:",omitempty" jsonschema:"required"` // URL specifies the default github url in case of GitHub enterprise URL string `yaml:",omitempty"` // Username specifies the username used to authenticate with Github API Username string `yaml:",omitempty"` // User specifies the user of the git commit messages User string `yaml:",omitempty"` // GPG key and passphrased used for commit signing GPG sign.GPGSpec `yaml:",omitempty"` // Force is used during the git push phase to run `git push --force`. Force bool `yaml:",omitempty"` // CommitMessage represents conventional commit metadata as type or scope, used to generate the final commit message. CommitMessage commit.Commit `yaml:",omitempty"` }
Spec represents the configuration input
func (*Spec) Merge ¶ added in v0.28.0
Merge returns nil if it successfully merges the child Spec into target receiver. Please note that child attributes always overrides receiver's
func (*Spec) MergeFromEnv ¶ added in v0.28.0
MergeFromEnv updates the target receiver with the "non zero-ed" environment variables