blob: d70bdf0d52edef32185204b66683d51b3e071a03 [file] [log] [blame]
// Code generated by protoc-gen-go.
// source: cq.proto
// DO NOT EDIT!
/*
Package cq is a generated protocol buffer package.
It is generated from these files:
cq.proto
It has these top-level messages:
Config
Rietveld
Gerrit
Verifiers
*/
package cq
import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf
// This message describes a Commit Queue configuration. The config file cq.cfg
// should be stored in the config directory located on the branch that this CQ
// should commit to.
type Config struct {
// Required. Version of the config format.
Version *int32 `protobuf:"varint,1,opt,name=version" json:"version,omitempty"`
// Required. Name of the CQ. May only contain characters [a-zA-Z0-9_]. It is
// used for various purposes, including, but not limited to match the project
// name for CLs on Rietveld, name of the project in the status app, internal
// name for logging etc. CQ name should not be confused with the project name
// in LUCI as there may be multiple CQs per project.
CqName *string `protobuf:"bytes,2,opt,name=cq_name" json:"cq_name,omitempty"`
// List of verifiers that verify if the CL is ready to be committed.
Verifiers *Verifiers `protobuf:"bytes,3,opt,name=verifiers" json:"verifiers,omitempty"`
// URL of the CQ status app to push updates to.
CqStatusUrl *string `protobuf:"bytes,4,opt,name=cq_status_url" json:"cq_status_url,omitempty"`
// DO NOT USE. Kept here for validator error messages.
HideRefInCommittedMsg *bool `protobuf:"varint,5,opt,name=hide_ref_in_committed_msg" json:"hide_ref_in_committed_msg,omitempty"`
// Delay between commit bursts in seconds. Default value is 480.
CommitBurstDelay *int32 `protobuf:"varint,6,opt,name=commit_burst_delay" json:"commit_burst_delay,omitempty"`
// Maximum number of commits done sequentially, before waiting for
// commit_burst_delay. Default value is 4.
MaxCommitBurst *int32 `protobuf:"varint,7,opt,name=max_commit_burst" json:"max_commit_burst,omitempty"`
// Defines whether a CQ is used in production. Allows to disable CQ for a
// given branch. Default is true.
InProduction *bool `protobuf:"varint,8,opt,name=in_production" json:"in_production,omitempty"`
// Configuration options for Rietveld code review.
Rietveld *Rietveld `protobuf:"bytes,9,opt,name=rietveld" json:"rietveld,omitempty"`
// Configuration options for Gerrit code review.
Gerrit *Gerrit `protobuf:"bytes,15,opt,name=gerrit" json:"gerrit,omitempty"`
// This can be used to override the Git repository URL used to checkout and
// commit changes on CQ host. This should only be used in case, when the
// source repository is not supported by luci-config (e.g. GitHub).
GitRepoUrl *string `protobuf:"bytes,10,opt,name=git_repo_url" json:"git_repo_url,omitempty"`
// DO NOT USE. Kept here for validator error messages
// and internal CQ usage (and insanity).
// TODO(tandrii): clean insanity internally and update this message.
TargetRef *string `protobuf:"bytes,11,opt,name=target_ref" json:"target_ref,omitempty"`
// DO NOT USE. Kept here for validator error messages.
SvnRepoUrl *string `protobuf:"bytes,12,opt,name=svn_repo_url" json:"svn_repo_url,omitempty"`
// If present, the CQ will refrain from processing any commits whose start
// time is >= this time.
//
// This is an UTC RFC3339 (stiptime(tm)) string representing the time.
DrainingStartTime *string `protobuf:"bytes,13,opt,name=draining_start_time" json:"draining_start_time,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *Config) Reset() { *m = Config{} }
func (m *Config) String() string { return proto.CompactTextString(m) }
func (*Config) ProtoMessage() {}
func (m *Config) GetVersion() int32 {
if m != nil && m.Version != nil {
return *m.Version
}
return 0
}
func (m *Config) GetCqName() string {
if m != nil && m.CqName != nil {
return *m.CqName
}
return ""
}
func (m *Config) GetVerifiers() *Verifiers {
if m != nil {
return m.Verifiers
}
return nil
}
func (m *Config) GetCqStatusUrl() string {
if m != nil && m.CqStatusUrl != nil {
return *m.CqStatusUrl
}
return ""
}
func (m *Config) GetHideRefInCommittedMsg() bool {
if m != nil && m.HideRefInCommittedMsg != nil {
return *m.HideRefInCommittedMsg
}
return false
}
func (m *Config) GetCommitBurstDelay() int32 {
if m != nil && m.CommitBurstDelay != nil {
return *m.CommitBurstDelay
}
return 0
}
func (m *Config) GetMaxCommitBurst() int32 {
if m != nil && m.MaxCommitBurst != nil {
return *m.MaxCommitBurst
}
return 0
}
func (m *Config) GetInProduction() bool {
if m != nil && m.InProduction != nil {
return *m.InProduction
}
return false
}
func (m *Config) GetRietveld() *Rietveld {
if m != nil {
return m.Rietveld
}
return nil
}
func (m *Config) GetGerrit() *Gerrit {
if m != nil {
return m.Gerrit
}
return nil
}
func (m *Config) GetGitRepoUrl() string {
if m != nil && m.GitRepoUrl != nil {
return *m.GitRepoUrl
}
return ""
}
func (m *Config) GetTargetRef() string {
if m != nil && m.TargetRef != nil {
return *m.TargetRef
}
return ""
}
func (m *Config) GetSvnRepoUrl() string {
if m != nil && m.SvnRepoUrl != nil {
return *m.SvnRepoUrl
}
return ""
}
func (m *Config) GetDrainingStartTime() string {
if m != nil && m.DrainingStartTime != nil {
return *m.DrainingStartTime
}
return ""
}
type Rietveld struct {
// Required. URL of the codereview site.
Url *string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"`
// DO NOT USE. Kept here for validator error messages.
ProjectBases []string `protobuf:"bytes,2,rep,name=project_bases" json:"project_bases,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *Rietveld) Reset() { *m = Rietveld{} }
func (m *Rietveld) String() string { return proto.CompactTextString(m) }
func (*Rietveld) ProtoMessage() {}
func (m *Rietveld) GetUrl() string {
if m != nil && m.Url != nil {
return *m.Url
}
return ""
}
func (m *Rietveld) GetProjectBases() []string {
if m != nil {
return m.ProjectBases
}
return nil
}
// Unlike Rietveld, Gerrit doesn't need a separate url.
// Instead, the git_repo_url must be specified on the Gerrit instance,
// and CQ will deduce Gerrit url from it.
//
// For example, if https://chromium.googlesource.com/infra/infra.git is your
// repo url provided in `git_repo_url` above, then
// https://chromium-review.googlesource.com/#/admin/projects/infra/infra should
// show general properties of your project.
//
// Also,
// https://chromium-review.googlesource.com/#/admin/projects/infra/infra,access
// should show ACLs for refs in your project, but you may need to be admin to
// see it. This will come handy to enable and customize the CQ-related workflows
// for your project.
type Gerrit struct {
// Optional. If set, tells CQ to vote on a given label to mark result of CQ
// run. The vote is either -1 if failed or 1 on success, and will be given on
// non-dry runs only.
// This vote can then be used in Gerrit's rule for submitting issues, so as to
// require CQ run. CQ will attempt to submit issue only after setting this
// label.
CqVerifiedLabel *string `protobuf:"bytes,1,opt,name=cq_verified_label" json:"cq_verified_label,omitempty"`
// Optional and only allowed if cq_verified_label is set. Default: False.
// If set, tells CQ to vote on the Verified label even on dry run.
// This is useful if CQ has no presubmit builders, as dry run would be
// totally equivalent to full run, except that CQ won't try to actually submit
// the code.
DryRunSetsCqVerifiedLabel *bool `protobuf:"varint,2,opt,name=dry_run_sets_cq_verified_label" json:"dry_run_sets_cq_verified_label,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *Gerrit) Reset() { *m = Gerrit{} }
func (m *Gerrit) String() string { return proto.CompactTextString(m) }
func (*Gerrit) ProtoMessage() {}
func (m *Gerrit) GetCqVerifiedLabel() string {
if m != nil && m.CqVerifiedLabel != nil {
return *m.CqVerifiedLabel
}
return ""
}
func (m *Gerrit) GetDryRunSetsCqVerifiedLabel() bool {
if m != nil && m.DryRunSetsCqVerifiedLabel != nil {
return *m.DryRunSetsCqVerifiedLabel
}
return false
}
// Verifiers are various types of checks that a Commit Queue performs on a CL.
// All verifiers must pass in order for a CL to be landed. Configuration file
// describes types of verifiers that should be applied to each CL and their
// parameters.
type Verifiers struct {
// [Rietveld only] This verifier is used to ensure that an LGTM was posted to
// the code review site from a valid project committer. It also validates
// ability of non-committers to trigger CQ, which for Gerrit is done by
// GerritCQAbilityVerifier.
ReviewerLgtm *Verifiers_ReviewerLgtmVerifier `protobuf:"bytes,1,opt,name=reviewer_lgtm" json:"reviewer_lgtm,omitempty"`
// [Gerrit only] GerritCQAbilityVerifier ensures that a user who triggered
// this CQ attempt has actually rights to do so based on 3 factors:
// * membership of the user in committers & dryrunners group,
// * the state of CL/patchset on which CQ is triggered,
// * relationship of the user to the CL.
GerritCqAbility *Verifiers_GerritCQAbilityVerifier `protobuf:"bytes,5,opt,name=gerrit_cq_ability" json:"gerrit_cq_ability,omitempty"`
// This verifier is used to check tree status before committing a CL. If the
// tree is closed, then the verifier will wait until it is reopened.
TreeStatus *Verifiers_TreeStatusLgtmVerifier `protobuf:"bytes,2,opt,name=tree_status" json:"tree_status,omitempty"`
// This verifier triggers a set of tryjobs that are to be run on builders on
// Buildbot. It automatically retries failed try-jobs and only allows CL to
// land if each builder has succeeded in the latest retry. If a given tryjob
// result is too old (>1 day) it is ignored.
TryJob *Verifiers_TryJobVerifier `protobuf:"bytes,3,opt,name=try_job" json:"try_job,omitempty"`
// This verifier is used to ensure that the author has signed Google's
// Contributor License Agreement.
SignCla *Verifiers_SignCLAVerifier `protobuf:"bytes,4,opt,name=sign_cla" json:"sign_cla,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *Verifiers) Reset() { *m = Verifiers{} }
func (m *Verifiers) String() string { return proto.CompactTextString(m) }
func (*Verifiers) ProtoMessage() {}
func (m *Verifiers) GetReviewerLgtm() *Verifiers_ReviewerLgtmVerifier {
if m != nil {
return m.ReviewerLgtm
}
return nil
}
func (m *Verifiers) GetGerritCqAbility() *Verifiers_GerritCQAbilityVerifier {
if m != nil {
return m.GerritCqAbility
}
return nil
}
func (m *Verifiers) GetTreeStatus() *Verifiers_TreeStatusLgtmVerifier {
if m != nil {
return m.TreeStatus
}
return nil
}
func (m *Verifiers) GetTryJob() *Verifiers_TryJobVerifier {
if m != nil {
return m.TryJob
}
return nil
}
func (m *Verifiers) GetSignCla() *Verifiers_SignCLAVerifier {
if m != nil {
return m.SignCla
}
return nil
}
type Verifiers_ReviewerLgtmVerifier struct {
// Required. Name of the chrome-infra-auth group, which contains the list of
// identities authorized to approve (lgtm) a CL and trigger CQ run or dry
// run.
CommitterList *string `protobuf:"bytes,1,opt,name=committer_list" json:"committer_list,omitempty"`
// Number of seconds to wait for LGTM on CQ. Default value is 0.
MaxWaitSecs *int32 `protobuf:"varint,2,opt,name=max_wait_secs" json:"max_wait_secs,omitempty"`
// Message to be posted to code review site when no LGTM is found. Default
// value is "No LGTM from a valid reviewer yet. Only full committers are "
// "accepted.\nEven if an LGTM may have been provided, it was from a "
// "non-committer,\n_not_ a full super star committer.\nSee "
// "http://www.chromium.org/getting-involved/become-a-committer\nNote that "
// "this has nothing to do with OWNERS files."
NoLgtmMsg *string `protobuf:"bytes,3,opt,name=no_lgtm_msg" json:"no_lgtm_msg,omitempty"`
// Optional, but recommended. Name of the chrome-infra-auth group,
// which contains the list of identities authorized to trigger CQ dry run.
// This is usually the same group as tryjob-access.
DryRunAccessList *string `protobuf:"bytes,4,opt,name=dry_run_access_list" json:"dry_run_access_list,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *Verifiers_ReviewerLgtmVerifier) Reset() { *m = Verifiers_ReviewerLgtmVerifier{} }
func (m *Verifiers_ReviewerLgtmVerifier) String() string { return proto.CompactTextString(m) }
func (*Verifiers_ReviewerLgtmVerifier) ProtoMessage() {}
func (m *Verifiers_ReviewerLgtmVerifier) GetCommitterList() string {
if m != nil && m.CommitterList != nil {
return *m.CommitterList
}
return ""
}
func (m *Verifiers_ReviewerLgtmVerifier) GetMaxWaitSecs() int32 {
if m != nil && m.MaxWaitSecs != nil {
return *m.MaxWaitSecs
}
return 0
}
func (m *Verifiers_ReviewerLgtmVerifier) GetNoLgtmMsg() string {
if m != nil && m.NoLgtmMsg != nil {
return *m.NoLgtmMsg
}
return ""
}
func (m *Verifiers_ReviewerLgtmVerifier) GetDryRunAccessList() string {
if m != nil && m.DryRunAccessList != nil {
return *m.DryRunAccessList
}
return ""
}
type Verifiers_GerritCQAbilityVerifier struct {
// Required. Name of the chrome-infra-auth group, which contains the list of
// identities authorized to trigger CQ runs on any CLs in this project.
CommitterList *string `protobuf:"bytes,1,opt,name=committer_list" json:"committer_list,omitempty"`
// Optional, but strongly recommended. Name of the chrome-infra-auth group,
// which contains the list of identities authorized to trigger CQ dry run
// on Gerrit CLs they own (not to be confused with OWNER files) even if CL
// hasn't been approved.
// This is usually the same group as tryjob-access.
DryRunAccessList *string `protobuf:"bytes,4,opt,name=dry_run_access_list" json:"dry_run_access_list,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *Verifiers_GerritCQAbilityVerifier) Reset() { *m = Verifiers_GerritCQAbilityVerifier{} }
func (m *Verifiers_GerritCQAbilityVerifier) String() string { return proto.CompactTextString(m) }
func (*Verifiers_GerritCQAbilityVerifier) ProtoMessage() {}
func (m *Verifiers_GerritCQAbilityVerifier) GetCommitterList() string {
if m != nil && m.CommitterList != nil {
return *m.CommitterList
}
return ""
}
func (m *Verifiers_GerritCQAbilityVerifier) GetDryRunAccessList() string {
if m != nil && m.DryRunAccessList != nil {
return *m.DryRunAccessList
}
return ""
}
type Verifiers_TreeStatusLgtmVerifier struct {
// Required. URL of the project tree status app.
TreeStatusUrl *string `protobuf:"bytes,1,opt,name=tree_status_url" json:"tree_status_url,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *Verifiers_TreeStatusLgtmVerifier) Reset() { *m = Verifiers_TreeStatusLgtmVerifier{} }
func (m *Verifiers_TreeStatusLgtmVerifier) String() string { return proto.CompactTextString(m) }
func (*Verifiers_TreeStatusLgtmVerifier) ProtoMessage() {}
func (m *Verifiers_TreeStatusLgtmVerifier) GetTreeStatusUrl() string {
if m != nil && m.TreeStatusUrl != nil {
return *m.TreeStatusUrl
}
return ""
}
type Verifiers_TryJobVerifier struct {
// Buckets on which tryjobs are triggered/watched.
Buckets []*Verifiers_TryJobVerifier_Bucket `protobuf:"bytes,1,rep,name=buckets" json:"buckets,omitempty"`
// Provides project specific trybot retry configuration. This overrides the
// defaults used in the CQ.
TryJobRetryConfig *Verifiers_TryJobVerifier_TryJobRetryConfig `protobuf:"bytes,2,opt,name=try_job_retry_config" json:"try_job_retry_config,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *Verifiers_TryJobVerifier) Reset() { *m = Verifiers_TryJobVerifier{} }
func (m *Verifiers_TryJobVerifier) String() string { return proto.CompactTextString(m) }
func (*Verifiers_TryJobVerifier) ProtoMessage() {}
func (m *Verifiers_TryJobVerifier) GetBuckets() []*Verifiers_TryJobVerifier_Bucket {
if m != nil {
return m.Buckets
}
return nil
}
func (m *Verifiers_TryJobVerifier) GetTryJobRetryConfig() *Verifiers_TryJobVerifier_TryJobRetryConfig {
if m != nil {
return m.TryJobRetryConfig
}
return nil
}
type Verifiers_TryJobVerifier_Builder struct {
// Name of the builder.
Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
// Optionally specify a builder name that triggers the given builder.
// Otherwise, CQ will trigger this builder (default). If in doubt, you
// probably won't need this.
TriggeredBy *string `protobuf:"bytes,2,opt,name=triggered_by" json:"triggered_by,omitempty"`
// When this field is present, it marks given builder as experimental. It
// is only executed on a given percentage of the CLs and the outcome does
// not affect the decicion whether a CL can land or not. This is typically
// used to test new builders and estimate their capacity requirements.
ExperimentPercentage *float32 `protobuf:"fixed32,4,opt,name=experiment_percentage" json:"experiment_percentage,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *Verifiers_TryJobVerifier_Builder) Reset() { *m = Verifiers_TryJobVerifier_Builder{} }
func (m *Verifiers_TryJobVerifier_Builder) String() string { return proto.CompactTextString(m) }
func (*Verifiers_TryJobVerifier_Builder) ProtoMessage() {}
func (m *Verifiers_TryJobVerifier_Builder) GetName() string {
if m != nil && m.Name != nil {
return *m.Name
}
return ""
}
func (m *Verifiers_TryJobVerifier_Builder) GetTriggeredBy() string {
if m != nil && m.TriggeredBy != nil {
return *m.TriggeredBy
}
return ""
}
func (m *Verifiers_TryJobVerifier_Builder) GetExperimentPercentage() float32 {
if m != nil && m.ExperimentPercentage != nil {
return *m.ExperimentPercentage
}
return 0
}
type Verifiers_TryJobVerifier_Bucket struct {
// Name of the bucket. This is typically the same as a master name without
// the 'master.' prefix, e.g. 'chromium.linux' or 'tryserver.webrtc'. CQ
// will automatically add 'master.' prefix if not there.
Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
// Builders on which tryjobs should be triggered.
Builders []*Verifiers_TryJobVerifier_Builder `protobuf:"bytes,2,rep,name=builders" json:"builders,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *Verifiers_TryJobVerifier_Bucket) Reset() { *m = Verifiers_TryJobVerifier_Bucket{} }
func (m *Verifiers_TryJobVerifier_Bucket) String() string { return proto.CompactTextString(m) }
func (*Verifiers_TryJobVerifier_Bucket) ProtoMessage() {}
func (m *Verifiers_TryJobVerifier_Bucket) GetName() string {
if m != nil && m.Name != nil {
return *m.Name
}
return ""
}
func (m *Verifiers_TryJobVerifier_Bucket) GetBuilders() []*Verifiers_TryJobVerifier_Builder {
if m != nil {
return m.Builders
}
return nil
}
type Verifiers_TryJobVerifier_TryJobRetryConfig struct {
// Retry quota for a single tryjob.
TryJobRetryQuota *int32 `protobuf:"varint,1,opt,name=try_job_retry_quota" json:"try_job_retry_quota,omitempty"`
// Retry quota for all tryjobs in a CL.
GlobalRetryQuota *int32 `protobuf:"varint,2,opt,name=global_retry_quota" json:"global_retry_quota,omitempty"`
// The weight assigned to each tryjob failure.
FailureRetryWeight *int32 `protobuf:"varint,3,opt,name=failure_retry_weight" json:"failure_retry_weight,omitempty"`
// The weight assigned to each transient failure.
TransientFailureRetryWeight *int32 `protobuf:"varint,4,opt,name=transient_failure_retry_weight" json:"transient_failure_retry_weight,omitempty"`
// The weight assigned to tryjob timeouts.
TimeoutRetryWeight *int32 `protobuf:"varint,5,opt,name=timeout_retry_weight" json:"timeout_retry_weight,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *Verifiers_TryJobVerifier_TryJobRetryConfig) Reset() {
*m = Verifiers_TryJobVerifier_TryJobRetryConfig{}
}
func (m *Verifiers_TryJobVerifier_TryJobRetryConfig) String() string {
return proto.CompactTextString(m)
}
func (*Verifiers_TryJobVerifier_TryJobRetryConfig) ProtoMessage() {}
func (m *Verifiers_TryJobVerifier_TryJobRetryConfig) GetTryJobRetryQuota() int32 {
if m != nil && m.TryJobRetryQuota != nil {
return *m.TryJobRetryQuota
}
return 0
}
func (m *Verifiers_TryJobVerifier_TryJobRetryConfig) GetGlobalRetryQuota() int32 {
if m != nil && m.GlobalRetryQuota != nil {
return *m.GlobalRetryQuota
}
return 0
}
func (m *Verifiers_TryJobVerifier_TryJobRetryConfig) GetFailureRetryWeight() int32 {
if m != nil && m.FailureRetryWeight != nil {
return *m.FailureRetryWeight
}
return 0
}
func (m *Verifiers_TryJobVerifier_TryJobRetryConfig) GetTransientFailureRetryWeight() int32 {
if m != nil && m.TransientFailureRetryWeight != nil {
return *m.TransientFailureRetryWeight
}
return 0
}
func (m *Verifiers_TryJobVerifier_TryJobRetryConfig) GetTimeoutRetryWeight() int32 {
if m != nil && m.TimeoutRetryWeight != nil {
return *m.TimeoutRetryWeight
}
return 0
}
type Verifiers_SignCLAVerifier struct {
XXX_unrecognized []byte `json:"-"`
}
func (m *Verifiers_SignCLAVerifier) Reset() { *m = Verifiers_SignCLAVerifier{} }
func (m *Verifiers_SignCLAVerifier) String() string { return proto.CompactTextString(m) }
func (*Verifiers_SignCLAVerifier) ProtoMessage() {}