Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Approve ¶
type Approve struct { // IssueRequired indicates if an associated issue is required for approval in // the specified repos. IssueRequired bool `json:"issueRequired,omitempty"` // RequireSelfApproval requires PR authors to explicitly approve their PRs. // Otherwise the plugin assumes the author of the PR approves the changes in the PR. RequireSelfApproval *bool `json:"requireSelfApproval,omitempty"` // LgtmActsAsApprove indicates that the lgtm command should be used to // indicate approval LgtmActsAsApprove bool `json:"lgtmActsAsApprove,omitempty"` // IgnoreReviewState causes the approve plugin to ignore the GitHub review state. Otherwise: // * an APPROVE github review is equivalent to leaving an "/approve" message. // * A REQUEST_CHANGES github review is equivalent to leaving an /approve cancel" message. IgnoreReviewState *bool `json:"ignoreReviewState,omitempty"` }
Approve specifies a configuration for a single approve.
The configuration for the approve plugin is defined as a list of these structures.
type Brancher ¶
type Brancher struct { // Do not run against these branches. Default is no branches. SkipBranches []string `json:"skipBranches,omitempty"` // Only run against these branches. Default is all branches. Branches []string `json:"branches,omitempty"` // contains filtered or unexported fields }
Brancher is for shared code between jobs that only run against certain branches. An empty brancher runs against all branches.
type ChangedFilesProvider ¶
ChangedFilesProvider returns a slice of modified files.
type JobBase ¶
type JobBase struct { // The name of the job. Must match regex [A-Za-z0-9-._]+ // e.g. pull-test-infra-bazel-build Name string `json:"name"` // Labels are added to LighthouseJobs and pods created for this job. Labels map[string]string `json:"labels,omitempty"` // Annotations are unused by prow itself, but provide a space to configure other automation. Annotations map[string]string `json:"annotations,omitempty"` // MaximumConcurrency of this job, 0 implies no limit. MaxConcurrency int `json:"maxConcurrency,omitempty"` // Agent that will take care of running this job. Agent string `json:"agent"` // Cluster is the alias of the cluster to run this job in. // (Default: kube.DefaultClusterAlias) Cluster string `json:"cluster,omitempty"` // Namespace is the namespace in which pods schedule. // nil: results in config.PodNamespace (aka pod default) // empty: results in config.LighthouseJobNamespace (aka same as LighthouseJob) Namespace *string `json:"namespace,omitempty"` // ErrorOnEviction indicates that the LighthouseJob should be completed and given // the ErrorState status if the pod that is executing the job is evicted. // If this field is unspecified or false, a new pod will be created to replace // the evicted one. ErrorOnEviction bool `json:"errorOnEviction,omitempty"` // SourcePath contains the path where this job is defined SourcePath string `json:"-"` // Spec is the Kubernetes pod spec used if Agent is kubernetes. Spec *v1.PodSpec `json:"spec,omitempty"` // PipelineRunSpec is the Tekton PipelineRun spec used if agent is tekton-pipeline PipelineRunSpec *tektonv1beta1.PipelineRunSpec `json:"pipelineRunSpec,omitempty"` // PipelineRunParams are the params used by the pipeline run PipelineRunParams []job.PipelineRunParam `json:"pipeline_run_params,omitempty"` UtilityConfig }
JobBase contains attributes common to all job types
type Keeper ¶
type Keeper struct { // Query the query to add for the repository Query *keeper.Query `json:"query,omitempty"` }
Keeper for keeper specific queries
type Periodic ¶
type Periodic struct { JobBase // (deprecated)Interval to wait between two runs of the job. Interval string `json:"interval"` // Cron representation of job trigger time Cron string `json:"cron"` // Tags for config entries Tags []string `json:"tags,omitempty"` // contains filtered or unexported fields }
Periodic runs on a timer.
type PluginConfig ¶
type PluginConfig struct { // Plugins the list of plugins Plugins []string `json:"plugins,omitempty"` // Approve approve plugin configuration Approve *Approve `json:"approve,omitempty"` }
PluginConfig configuration for plugins
type Postsubmit ¶
type Postsubmit struct { JobBase RegexpChangeMatcher Brancher // TODO(krzyzacy): Move existing `Report` into `SkipReport` once this is deployed Reporter }
Postsubmit runs on push events.
type Presubmit ¶
type Presubmit struct { JobBase // AlwaysRun automatically for every PR, or only when a comment triggers it. AlwaysRun bool `json:"alwaysRun"` // Optional indicates that the job's status context should not be required for merge. Optional bool `json:"optional,omitempty"` // Trigger is the regular expression to trigger the job. // e.g. `@k8s-bot e2e test this` // RerunCommand must also be specified if this field is specified. // (Default: `(?m)^/test (?:.*? )?<job name>(?: .*?)?$`) Trigger string `json:"trigger,omitempty"` // The RerunCommand to give users. Must match Trigger. // Trigger must also be specified if this field is specified. // (Default: `/test <job name>`) RerunCommand string `json:"rerunCommand,omitempty"` Brancher RegexpChangeMatcher Reporter }
Presubmit runs on PRs.
type RegexpChangeMatcher ¶
type RegexpChangeMatcher struct { // RunIfChanged defines a regex used to select which subset of file changes should trigger this job. // If any file in the changeset matches this regex, the job will be triggered RunIfChanged string `json:"runIfChanged,omitempty"` // contains filtered or unexported fields }
RegexpChangeMatcher is for code shared between jobs that run only when certain files are changed.
type Reporter ¶
type Reporter struct { // Context is the name of the GitHub status context for the job. // Defaults: the same as the name of the job. Context string `json:"context,omitempty"` // SkipReport skips commenting and setting status on GitHub. SkipReport bool `json:"skipReport,omitempty"` }
Reporter keeps various details for status reporting
type RepositoryConfig ¶
type RepositoryConfig struct { metav1.TypeMeta `json:",inline"` // +optional metav1.ObjectMeta `json:"metadata"` // Spec holds the desired state of the RepositoryConfig from the client // +optional Spec RepositoryConfigSpec `json:"spec"` }
RepositoryConfig represents local repository configurations
type RepositoryConfigList ¶
type RepositoryConfigList struct { metav1.TypeMeta `json:",inline"` // +optional metav1.ListMeta `json:"metadata,omitempty"` Items []RepositoryConfig `json:"items"` }
RepositoryConfigList contains a list of RepositoryConfig
type RepositoryConfigSpec ¶
type RepositoryConfigSpec struct { // Presubmit zero or more presubmits Presubmits []Presubmit `json:"presubmits,omitempty"` // Postsubmit zero or more postsubmits Postsubmits []Postsubmit `json:"postsubmits,omitempty"` // Plugins the plugin names to enable for this repository Plugins []string `json:"plugins,omitempty"` // BranchProtections to configure branch protection BranchProtection *branchprotection.ContextPolicy `json:"branchProtection,omitempty"` // PluginConfig the configuration for the plugins PluginConfig *PluginConfig `json:"pluginConfig,omitempty"` // Keeper any keeper/tide related configurations Keeper *Keeper `json:"keeper,omitempty"` }
RepositoryConfigSpec defines the desired state of RepositoryConfig.
type UtilityConfig ¶
type UtilityConfig struct { // Decorate determines if we decorate the PodSpec or not Decorate bool `json:"decorate,omitempty"` // PathAlias is the location under <root-dir>/src // where the repository under test is cloned. If this // is not set, <root-dir>/src/github.com/org/repo will // be used as the default. PathAlias string `json:"pathAlias,omitempty"` // CloneURI is the URI that is used to clone the // repository. If unset, will default to // `https://github.com/org/repo.git`. CloneURI string `json:"cloneUri,omitempty"` // SkipSubmodules determines if submodules should be // cloned when the job is run. Defaults to true. SkipSubmodules bool `json:"skipSubmodules,omitempty"` // CloneDepth is the depth of the clone that will be used. // A depth of zero will do a full clone. CloneDepth int `json:"cloneDepth,omitempty"` }
UtilityConfig holds decoration metadata, such as how to clone and additional containers/etc