Documentation
¶
Index ¶
- Constants
- Variables
- func LoadRepoPolicies(policies *Policies) error
- func NewParams(paramNames ...string) runParameters
- func NewVariations() *variations
- func NonTrivialDiff(dir string, op, colours bool) ([]string, error)
- func Serve(port, tvDir string) error
- type AllTestsuiteVariations
- type AuthConfig
- type Bundle
- type DockerConfig
- type GHoutput
- type GitRepo
- func (r *GitRepo) AddFile(path string) (plumbing.Hash, error)
- func (r *GitRepo) Branch() string
- func (r *GitRepo) Branches(re string) ([]string, error)
- func (r *GitRepo) Commit(msg string) error
- func (r *GitRepo) CreateFile(path string) (*os.File, error)
- func (r *GitRepo) DeleteRemoteBranch(remoteBranch string) error
- func (r *GitRepo) EnableSigning(key *openpgp.Entity) error
- func (r *GitRepo) FetchBranch(branch string) error
- func (r *GitRepo) PullBranch(branch string) error
- func (r *GitRepo) Push(remoteBranch string) error
- func (r *GitRepo) RemoveAll(path string) error
- type GithubClient
- func (gh *GithubClient) ClosePR(prOpts *PullRequest) error
- func (gh *GithubClient) CreatePR(bv any, prOpts *PullRequest) (*github.PullRequest, error)
- func (gh *GithubClient) EnableAutoMerge(prID string) error
- func (gh *GithubClient) Open(prOpts *PullRequest) error
- func (gh *GithubClient) RenderPRTemplate(body *string, bv any) (*bytes.Buffer, error)
- func (gh *GithubClient) UpdatePrBranch(prOpts *PullRequest) error
- type JiraClient
- type JiraIssue
- type Matches
- type ParsedImageName
- type Policies
- type PullRequest
- type PushOptions
- type RepoPolicy
- func (rp *RepoPolicy) GetAllBranches() []string
- func (rp *RepoPolicy) GetTimeStamp() (time.Time, error)
- func (rp *RepoPolicy) ProcessBranch(pushOpts *PushOptions) error
- func (rp *RepoPolicy) SetBranch(branch string) error
- func (rp *RepoPolicy) SetTimestamp(ts time.Time)
- func (rp RepoPolicy) String() string
- type Server
Constants ¶
const ( UNKNOWN_VALIDATOR validator = iota GORELEASER GHA )
const ( Testsuite = 0 Branch = 1 Trigger = 2 Repo = 3 )
Tree depth of ghMatrix
Variables ¶
var Green = "\033[32m"
var LBlue = "\033[94m"
var NoPRs = errors.New("no matching PRs found")
var Red = "\033[31m"
var Reset = "\033[0m"
var White = "\033[97m"
var Yellow = "\033[33m"
Functions ¶
func LoadRepoPolicies ¶
LoadRepoPolicies populates the supplied policies with the policy key from a the config file This will panic if the type assertions fail
func NewParams ¶ added in v1.6.1
func NewParams(paramNames ...string) runParameters
NewParams looks in the environment for the named parameters and returns a map suitable for usage in versions.env and to decide the test scope
func NewVariations ¶ added in v1.9.1
func NewVariations() *variations
func NonTrivialDiff ¶ added in v1.6.0
Types ¶
type AllTestsuiteVariations ¶ added in v1.9.1
type AllTestsuiteVariations map[string]variations
RepoTestsuiteVariations maps file→variations
func (AllTestsuiteVariations) Files ¶ added in v1.9.1
func (av AllTestsuiteVariations) Files() []string
type AuthConfig ¶ added in v1.9.0
type AuthConfig struct {
Auth string `json:"auth"`
}
type Bundle ¶ added in v1.4.7
type Bundle struct {
Name string
// contains filtered or unexported fields
}
Bundle represents a directory tree, instantiated by NewBundle()
func (*Bundle) Add ¶ added in v1.4.7
Add adds the path and corresponding template into the templateNode tree This code due to ChatGPT
type DockerConfig ¶ added in v1.9.0
type DockerConfig struct {
Auths map[string]AuthConfig `json:"auths"`
}
func NewDockerAuths ¶ added in v1.9.0
func NewDockerAuths(fname string) (*DockerConfig, error)
func (*DockerConfig) GetMatches ¶ added in v1.9.0
func (d *DockerConfig) GetMatches(registry, tag string, repos []string) (Matches, error)
type GitRepo ¶ added in v1.6.0
type GitRepo struct {
// contains filtered or unexported fields
}
GitRepo models a local git worktree with the authentication and enough metadata to allow it to be pushed it to github
func InitGit ¶ added in v1.6.0
InitGit is a constructor for the GitRepo type private repos will need ghToken
func (*GitRepo) AddFile ¶ added in v1.6.0
AddFile adds a file in the worktree to the index. The file is assumed to have been updated prior to calling this function.
func (*GitRepo) Branch ¶ added in v1.6.0
Branch returns the short name of the ref HEAD is pointing to - provided the ref is a branch. Returns empty string if ref is not a branch.
func (*GitRepo) Branches ¶ added in v1.6.0
(r *GitRepo) Branches will return a list of branches matching the supplied regexp for the repo
func (*GitRepo) Commit ¶ added in v1.6.0
Commit adds all unstaged changes and commits the current worktree, confirming if asked Note that this commit will be lost if it is not pushed to a remote.
func (*GitRepo) CreateFile ¶ added in v1.6.0
CreateFile will create a file in a directory, truncating it if it already exists with the embedded git worktree. Any intermediate directories are also created.
func (*GitRepo) DeleteRemoteBranch ¶ added in v1.6.0
DeleteRemoteBranch deletes the given branch from the remote origin, this is mainly used in the test functions to delete the test branches, but can also be called from other contexts. Please note that it operates only on the origin remote.
func (*GitRepo) EnableSigning ¶ added in v1.6.0
(r *GitRepo) EnableSignging will enable commits to be signed for this repo
func (*GitRepo) FetchBranch ¶ added in v1.6.0
(r *GitRepo) FetchBranch fetches the given ref and then checks it out to the worktree Any local changes are lost. If the branch does not exist in the `origin` remote, an error is returned
func (*GitRepo) PullBranch ¶ added in v1.6.0
(r *GitRepo) PullBranch will incorporate changes from origin. Only ff changes can be merged.
type GithubClient ¶ added in v1.7.1
type GithubClient struct {
// contains filtered or unexported fields
}
func NewGithubClient ¶ added in v1.7.1
func NewGithubClient(ghToken string) *GithubClient
NewGithubClient returns a client that uses the v3 (REST) API to talk to Github
func (*GithubClient) ClosePR ¶ added in v1.7.1
func (gh *GithubClient) ClosePR(prOpts *PullRequest) error
(gh *GithubClient) ClosePR will close matching PRs without merging
func (*GithubClient) CreatePR ¶ added in v1.7.1
func (gh *GithubClient) CreatePR(bv any, prOpts *PullRequest) (*github.PullRequest, error)
CreatePR will create a PR using the user supplied title and the embedded PR body If a PR already exists, it will return that PR
func (*GithubClient) EnableAutoMerge ¶ added in v1.7.1
func (gh *GithubClient) EnableAutoMerge(prID string) error
EnableAutoMergePR uses the graphQL github v4 API with the PR ID (not number) to mutate graphQL PR object to enable automerge
func (*GithubClient) Open ¶ added in v1.7.1
func (gh *GithubClient) Open(prOpts *PullRequest) error
(gh *GithubClient) Open will open the PR matching prOpts in the default browser
func (*GithubClient) RenderPRTemplate ¶ added in v1.7.1
RenderPRTemplate will fill in the supplied template body with values from GitRepo
func (*GithubClient) UpdatePrBranch ¶ added in v1.7.1
func (gh *GithubClient) UpdatePrBranch(prOpts *PullRequest) error
(gh *GithubClient) UpdatePR will update prOpts.PrBranch without needing a git checkout
type JiraClient ¶ added in v1.7.1
type JiraClient struct {
// contains filtered or unexported fields
}
func NewJiraClient ¶ added in v1.7.1
func NewJiraClient(email, token string) *JiraClient
NewJiraClient returns a client for v3 REST operations
func (*JiraClient) GetIssue ¶ added in v1.7.1
func (j *JiraClient) GetIssue(id string) (*JiraIssue, error)
(j *JiraClient) GetIssue returns the issue after serialising the description Jira v3 API returns a structured version of the description, this function only understands a few types. Unknown content types are ignored.
type ParsedImageName ¶ added in v1.9.0
func ParseImageName ¶ added in v1.9.0
func ParseImageName(imageName string) *ParsedImageName
type Policies ¶
Policies models the config file structure. There are three levels at which a particular value can be set: group-level, repo, branch. The group level is applicable for all the repos in that group. Repeating the same repo in multiple groups is UB
func (*Policies) GetRepoPolicy ¶ added in v1.6.0
func (p *Policies) GetRepoPolicy(repo string) (RepoPolicy, error)
GetRepoPolicy will fetch the RepoPolicy for the supplied repo with all overrides (group, repo, branch levels) processed. This is the constructor for RepoPolicy.
type PullRequest ¶ added in v1.7.1
type PushOptions ¶ added in v1.7.1
type PushOptions struct {
OpDir string
Branch string
RemoteBranch string
CommitMsg string
Repo *GitRepo
}
PushOptions collects the input required to update templates for a branch in git and push changes upstream
type RepoPolicy ¶
type RepoPolicy struct {
Owner string
Name string
Description string
Default string
PCRepo string
DHRepo string
CSRepo string
Binary string
PackageName string
Reviewers []string
ExposePorts string
Cgo bool
ConfigFile string
VersionPackage string
UpgradeFromVer string
Branch string
Branchvals branchVals
Branches map[string]branchVals
Timestamp string
Visibility string
// contains filtered or unexported fields
}
RepoPolicy is used to render templates. It provides an abstraction between config.yaml and the templates. It is instantiated from Policies for a particular repo and branch and the constructor implements all the overriding/merging logic between the various levels of the Policies type.
func (*RepoPolicy) GetAllBranches ¶ added in v1.6.0
func (rp *RepoPolicy) GetAllBranches() []string
GetAllBranches returns all the branches that are managed for this repo
func (*RepoPolicy) GetTimeStamp ¶
func (rp *RepoPolicy) GetTimeStamp() (time.Time, error)
GetTimeStamp returns the timestamp currently set for the given repopolicy.
func (*RepoPolicy) ProcessBranch ¶ added in v1.6.0
func (rp *RepoPolicy) ProcessBranch(pushOpts *PushOptions) error
ProcessBranch will render the templates into a git worktree for the supplied branch, commit and push the changes upstream The upstream branch name is the supplied branch name prefixed with releng/ and is returned
func (*RepoPolicy) SetBranch ¶ added in v1.6.0
func (rp *RepoPolicy) SetBranch(branch string) error
SetBranch sets the Branch and Branchvals properties so that templates can simply access them instead of looking them up in the Branches map
func (*RepoPolicy) SetTimestamp ¶
func (rp *RepoPolicy) SetTimestamp(ts time.Time)
SetTimestamp Sets the given time as the repopolicy timestamp. If called with zero time sets the current time in UTC
func (RepoPolicy) String ¶ added in v1.6.0
func (rp RepoPolicy) String() string
Stringer implementation for RepoPolicy