Updated cq_client

R=pgervais@chromium.org, rmistry@chromium.org

Review URL: https://codereview.chromium.org/1309393004

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@296530 0039d316-1c4b-4281-b951-d872f2087c98
changes/01/332501/1
sergiyb@chromium.org 10 years ago
parent 8c9aab2ee3
commit 290e86a998

@ -2,15 +2,15 @@ This directory contains CQ client library to be distributed to other repos. If
you need to modify some files in this directory, please make sure that you are
changing the canonical version of the source code and not one of the copies,
which should only be updated as a whole using Glyco (when available, see
http://crbug.com/489420).
[chromium issue 489420](http://crbug.com/489420)).
The canonical version is located at `https://chrome-internal.googlesource.com/
infra/infra_internal/+/master/commit_queue/cq_client`.
To generate `cq_pb2.py`, please use protoc version 2.6.1:
To generate `cq_pb2.py` and `cq.pb.go`, please use protoc version 2.6.1:
cd commit_queue/cq_client
protoc cq.proto --python_out $(pwd)
protoc cq.proto --python_out $(pwd) --go_out $(pwd)
Additionally, please make sure to use proto3-compatible syntax, e.g. no default
values, no required fields. Ideally, we should use proto3 generator already,

@ -0,0 +1,480 @@
// 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
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"`
// When true, hash of the commit is not posted by CQ. This is used for
// projects using gnumbd as latter publishes actual hash later. Default value
// is false.
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"`
// 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"`
// Target ref to commit to. This can be used to specify a different ref than
// the one where the luci config is located. This is useful, e.g. for projects
// that use gnumbd where CQ should commit into a pending ref.
TargetRef *string `protobuf:"bytes,11,opt,name=target_ref" json:"target_ref,omitempty"`
// Deprecated. URL of the SVN repository. We are deprecating SVN support.
SvnRepoUrl *string `protobuf:"bytes,12,opt,name=svn_repo_url" json:"svn_repo_url,omitempty"`
// Deprecated. Should be set to true, when the project's SVN repository does
// not have server-side hooks configured.
ServerHooksMissing *bool `protobuf:"varint,13,opt,name=server_hooks_missing" json:"server_hooks_missing,omitempty"`
// Deprecated. Specifies a list of verifiers that are run on a local checkout
// with patch applied. The only remaining use case for this is PRESUBMIT_CHECK
// verifier, which we are deprecating as well.
VerifiersWithPatch *Verifiers `protobuf:"bytes,14,opt,name=verifiers_with_patch" json:"verifiers_with_patch,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) 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) GetServerHooksMissing() bool {
if m != nil && m.ServerHooksMissing != nil {
return *m.ServerHooksMissing
}
return false
}
func (m *Config) GetVerifiersWithPatch() *Verifiers {
if m != nil {
return m.VerifiersWithPatch
}
return nil
}
type Rietveld struct {
// Required. URL of the codereview site.
Url *string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"`
// List of regular expressions used to check if CL's base URL should be
// processed by this CQ. This may be useful if a single branch has multiple
// sub-directories that are handled by different CQs. When no regular
// expressions are specified, the regular expression '.*', which matches any
// directory, is used.
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
}
// 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 {
// This verifier is used to ensure that an LGTM was posted to the code review
// site from a valid project committer.
ReviewerLgtm *Verifiers_ReviewerLgtmVerifier `protobuf:"bytes,1,opt,name=reviewer_lgtm" json:"reviewer_lgtm,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) 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. This list is also
// known as a committer list and often corresponds to the list of accounts
// that have direct commit/push access to the repository. Some older lists
// are still stored in the CQ source code, but are being moved to the new
// location (https://crbug.com/511311).
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"`
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 ""
}
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"`
// When true, the builder is triggered by CQ. Otherwise, it is expected to
// be triggered from another tryjob. Default value is true.
Triggered *bool `protobuf:"varint,2,opt,name=triggered" json:"triggered,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) GetTriggered() bool {
if m != nil && m.Triggered != nil {
return *m.Triggered
}
return false
}
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.
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() {}

@ -98,11 +98,12 @@ message Verifiers {
optional SignCLAVerifier sign_cla = 4;
message ReviewerLgtmVerifier {
// Required. Name of the project, whose committer list to use. This allows
// to reuse committer lists. Note that if you are adding a new list, then
// currently you will need to make changes to the CQ code to add support for
// retrieving such a list. We are working on removing the need to modify CQ
// code.
// Required. Name of the chrome-infra-auth group, which contains the
// list of identities authorized to approve (lgtm) a CL. This list is also
// known as a committer list and often corresponds to the list of accounts
// that have direct commit/push access to the repository. Some older lists
// are still stored in the CQ source code, but are being moved to the new
// location (https://crbug.com/511311).
optional string committer_list = 1;
// Number of seconds to wait for LGTM on CQ. Default value is 0.
@ -148,6 +149,27 @@ message Verifiers {
// Buckets on which tryjobs are triggered/watched.
repeated Bucket buckets = 1;
message TryJobRetryConfig {
// Retry quota for a single tryjob.
optional int32 try_job_retry_quota = 1;
// Retry quota for all tryjobs in a CL.
optional int32 global_retry_quota = 2;
// The weight assigned to each tryjob failure.
optional int32 failure_retry_weight = 3;
// The weight assigned to each transient failure.
optional int32 transient_failure_retry_weight = 4;
// The weight assigned to tryjob timeouts.
optional int32 timeout_retry_weight = 5;
}
// Provides project specific trybot retry configuration. This overrides the
// defaults used in the CQ.
optional TryJobRetryConfig try_job_retry_config = 2;
}
message SignCLAVerifier {}

@ -18,7 +18,7 @@ _sym_db = _symbol_database.Default()
DESCRIPTOR = _descriptor.FileDescriptor(
name='cq.proto',
package='',
serialized_pb=_b('\n\x08\x63q.proto\"\xf5\x02\n\x06\x43onfig\x12\x0f\n\x07version\x18\x01 \x01(\x05\x12\x0f\n\x07\x63q_name\x18\x02 \x01(\t\x12\x1d\n\tverifiers\x18\x03 \x01(\x0b\x32\n.Verifiers\x12\x15\n\rcq_status_url\x18\x04 \x01(\t\x12!\n\x19hide_ref_in_committed_msg\x18\x05 \x01(\x08\x12\x1a\n\x12\x63ommit_burst_delay\x18\x06 \x01(\x05\x12\x18\n\x10max_commit_burst\x18\x07 \x01(\x05\x12\x15\n\rin_production\x18\x08 \x01(\x08\x12\x1b\n\x08rietveld\x18\t \x01(\x0b\x32\t.Rietveld\x12\x14\n\x0cgit_repo_url\x18\n \x01(\t\x12\x12\n\ntarget_ref\x18\x0b \x01(\t\x12\x14\n\x0csvn_repo_url\x18\x0c \x01(\t\x12\x1c\n\x14server_hooks_missing\x18\r \x01(\x08\x12(\n\x14verifiers_with_patch\x18\x0e \x01(\x0b\x32\n.Verifiers\".\n\x08Rietveld\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x15\n\rproject_bases\x18\x02 \x03(\t\"\xd5\x04\n\tVerifiers\x12\x36\n\rreviewer_lgtm\x18\x01 \x01(\x0b\x32\x1f.Verifiers.ReviewerLgtmVerifier\x12\x36\n\x0btree_status\x18\x02 \x01(\x0b\x32!.Verifiers.TreeStatusLgtmVerifier\x12*\n\x07try_job\x18\x03 \x01(\x0b\x32\x19.Verifiers.TryJobVerifier\x12,\n\x08sign_cla\x18\x04 \x01(\x0b\x32\x1a.Verifiers.SignCLAVerifier\x1aZ\n\x14ReviewerLgtmVerifier\x12\x16\n\x0e\x63ommitter_list\x18\x01 \x01(\t\x12\x15\n\rmax_wait_secs\x18\x02 \x01(\x05\x12\x13\n\x0bno_lgtm_msg\x18\x03 \x01(\t\x1a\x31\n\x16TreeStatusLgtmVerifier\x12\x17\n\x0ftree_status_url\x18\x01 \x01(\t\x1a\xdb\x01\n\x0eTryJobVerifier\x12\x31\n\x07\x62uckets\x18\x01 \x03(\x0b\x32 .Verifiers.TryJobVerifier.Bucket\x1aI\n\x07\x42uilder\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\ttriggered\x18\x02 \x01(\x08\x12\x1d\n\x15\x65xperiment_percentage\x18\x04 \x01(\x02\x1aK\n\x06\x42ucket\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x33\n\x08\x62uilders\x18\x02 \x03(\x0b\x32!.Verifiers.TryJobVerifier.Builder\x1a\x11\n\x0fSignCLAVerifier')
serialized_pb=_b('\n\x08\x63q.proto\"\xf5\x02\n\x06\x43onfig\x12\x0f\n\x07version\x18\x01 \x01(\x05\x12\x0f\n\x07\x63q_name\x18\x02 \x01(\t\x12\x1d\n\tverifiers\x18\x03 \x01(\x0b\x32\n.Verifiers\x12\x15\n\rcq_status_url\x18\x04 \x01(\t\x12!\n\x19hide_ref_in_committed_msg\x18\x05 \x01(\x08\x12\x1a\n\x12\x63ommit_burst_delay\x18\x06 \x01(\x05\x12\x18\n\x10max_commit_burst\x18\x07 \x01(\x05\x12\x15\n\rin_production\x18\x08 \x01(\x08\x12\x1b\n\x08rietveld\x18\t \x01(\x0b\x32\t.Rietveld\x12\x14\n\x0cgit_repo_url\x18\n \x01(\t\x12\x12\n\ntarget_ref\x18\x0b \x01(\t\x12\x14\n\x0csvn_repo_url\x18\x0c \x01(\t\x12\x1c\n\x14server_hooks_missing\x18\r \x01(\x08\x12(\n\x14verifiers_with_patch\x18\x0e \x01(\x0b\x32\n.Verifiers\".\n\x08Rietveld\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x15\n\rproject_bases\x18\x02 \x03(\t\"\xd3\x06\n\tVerifiers\x12\x36\n\rreviewer_lgtm\x18\x01 \x01(\x0b\x32\x1f.Verifiers.ReviewerLgtmVerifier\x12\x36\n\x0btree_status\x18\x02 \x01(\x0b\x32!.Verifiers.TreeStatusLgtmVerifier\x12*\n\x07try_job\x18\x03 \x01(\x0b\x32\x19.Verifiers.TryJobVerifier\x12,\n\x08sign_cla\x18\x04 \x01(\x0b\x32\x1a.Verifiers.SignCLAVerifier\x1aZ\n\x14ReviewerLgtmVerifier\x12\x16\n\x0e\x63ommitter_list\x18\x01 \x01(\t\x12\x15\n\rmax_wait_secs\x18\x02 \x01(\x05\x12\x13\n\x0bno_lgtm_msg\x18\x03 \x01(\t\x1a\x31\n\x16TreeStatusLgtmVerifier\x12\x17\n\x0ftree_status_url\x18\x01 \x01(\t\x1a\xd9\x03\n\x0eTryJobVerifier\x12\x31\n\x07\x62uckets\x18\x01 \x03(\x0b\x32 .Verifiers.TryJobVerifier.Bucket\x12I\n\x14try_job_retry_config\x18\x02 \x01(\x0b\x32+.Verifiers.TryJobVerifier.TryJobRetryConfig\x1aI\n\x07\x42uilder\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\ttriggered\x18\x02 \x01(\x08\x12\x1d\n\x15\x65xperiment_percentage\x18\x04 \x01(\x02\x1aK\n\x06\x42ucket\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x33\n\x08\x62uilders\x18\x02 \x03(\x0b\x32!.Verifiers.TryJobVerifier.Builder\x1a\xb0\x01\n\x11TryJobRetryConfig\x12\x1b\n\x13try_job_retry_quota\x18\x01 \x01(\x05\x12\x1a\n\x12global_retry_quota\x18\x02 \x01(\x05\x12\x1c\n\x14\x66\x61ilure_retry_weight\x18\x03 \x01(\x05\x12&\n\x1etransient_failure_retry_weight\x18\x04 \x01(\x05\x12\x1c\n\x14timeout_retry_weight\x18\x05 \x01(\x05\x1a\x11\n\x0fSignCLAVerifier')
)
_sym_db.RegisterFileDescriptor(DESCRIPTOR)
@ -294,8 +294,8 @@ _VERIFIERS_TRYJOBVERIFIER_BUILDER = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=865,
serialized_end=938,
serialized_start=940,
serialized_end=1013,
)
_VERIFIERS_TRYJOBVERIFIER_BUCKET = _descriptor.Descriptor(
@ -330,8 +330,65 @@ _VERIFIERS_TRYJOBVERIFIER_BUCKET = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=940,
serialized_end=1015,
serialized_start=1015,
serialized_end=1090,
)
_VERIFIERS_TRYJOBVERIFIER_TRYJOBRETRYCONFIG = _descriptor.Descriptor(
name='TryJobRetryConfig',
full_name='Verifiers.TryJobVerifier.TryJobRetryConfig',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='try_job_retry_quota', full_name='Verifiers.TryJobVerifier.TryJobRetryConfig.try_job_retry_quota', index=0,
number=1, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='global_retry_quota', full_name='Verifiers.TryJobVerifier.TryJobRetryConfig.global_retry_quota', index=1,
number=2, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='failure_retry_weight', full_name='Verifiers.TryJobVerifier.TryJobRetryConfig.failure_retry_weight', index=2,
number=3, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='transient_failure_retry_weight', full_name='Verifiers.TryJobVerifier.TryJobRetryConfig.transient_failure_retry_weight', index=3,
number=4, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='timeout_retry_weight', full_name='Verifiers.TryJobVerifier.TryJobRetryConfig.timeout_retry_weight', index=4,
number=5, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
],
extensions=[
],
nested_types=[],
enum_types=[
],
options=None,
is_extendable=False,
extension_ranges=[],
oneofs=[
],
serialized_start=1093,
serialized_end=1269,
)
_VERIFIERS_TRYJOBVERIFIER = _descriptor.Descriptor(
@ -348,10 +405,17 @@ _VERIFIERS_TRYJOBVERIFIER = _descriptor.Descriptor(
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='try_job_retry_config', full_name='Verifiers.TryJobVerifier.try_job_retry_config', index=1,
number=2, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
],
extensions=[
],
nested_types=[_VERIFIERS_TRYJOBVERIFIER_BUILDER, _VERIFIERS_TRYJOBVERIFIER_BUCKET, ],
nested_types=[_VERIFIERS_TRYJOBVERIFIER_BUILDER, _VERIFIERS_TRYJOBVERIFIER_BUCKET, _VERIFIERS_TRYJOBVERIFIER_TRYJOBRETRYCONFIG, ],
enum_types=[
],
options=None,
@ -360,7 +424,7 @@ _VERIFIERS_TRYJOBVERIFIER = _descriptor.Descriptor(
oneofs=[
],
serialized_start=796,
serialized_end=1015,
serialized_end=1269,
)
_VERIFIERS_SIGNCLAVERIFIER = _descriptor.Descriptor(
@ -381,8 +445,8 @@ _VERIFIERS_SIGNCLAVERIFIER = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=1017,
serialized_end=1034,
serialized_start=1271,
serialized_end=1288,
)
_VERIFIERS = _descriptor.Descriptor(
@ -432,7 +496,7 @@ _VERIFIERS = _descriptor.Descriptor(
oneofs=[
],
serialized_start=437,
serialized_end=1034,
serialized_end=1288,
)
_CONFIG.fields_by_name['verifiers'].message_type = _VERIFIERS
@ -443,7 +507,9 @@ _VERIFIERS_TREESTATUSLGTMVERIFIER.containing_type = _VERIFIERS
_VERIFIERS_TRYJOBVERIFIER_BUILDER.containing_type = _VERIFIERS_TRYJOBVERIFIER
_VERIFIERS_TRYJOBVERIFIER_BUCKET.fields_by_name['builders'].message_type = _VERIFIERS_TRYJOBVERIFIER_BUILDER
_VERIFIERS_TRYJOBVERIFIER_BUCKET.containing_type = _VERIFIERS_TRYJOBVERIFIER
_VERIFIERS_TRYJOBVERIFIER_TRYJOBRETRYCONFIG.containing_type = _VERIFIERS_TRYJOBVERIFIER
_VERIFIERS_TRYJOBVERIFIER.fields_by_name['buckets'].message_type = _VERIFIERS_TRYJOBVERIFIER_BUCKET
_VERIFIERS_TRYJOBVERIFIER.fields_by_name['try_job_retry_config'].message_type = _VERIFIERS_TRYJOBVERIFIER_TRYJOBRETRYCONFIG
_VERIFIERS_TRYJOBVERIFIER.containing_type = _VERIFIERS
_VERIFIERS_SIGNCLAVERIFIER.containing_type = _VERIFIERS
_VERIFIERS.fields_by_name['reviewer_lgtm'].message_type = _VERIFIERS_REVIEWERLGTMVERIFIER
@ -499,6 +565,13 @@ Verifiers = _reflection.GeneratedProtocolMessageType('Verifiers', (_message.Mess
# @@protoc_insertion_point(class_scope:Verifiers.TryJobVerifier.Bucket)
))
,
TryJobRetryConfig = _reflection.GeneratedProtocolMessageType('TryJobRetryConfig', (_message.Message,), dict(
DESCRIPTOR = _VERIFIERS_TRYJOBVERIFIER_TRYJOBRETRYCONFIG,
__module__ = 'cq_pb2'
# @@protoc_insertion_point(class_scope:Verifiers.TryJobVerifier.TryJobRetryConfig)
))
,
DESCRIPTOR = _VERIFIERS_TRYJOBVERIFIER,
__module__ = 'cq_pb2'
# @@protoc_insertion_point(class_scope:Verifiers.TryJobVerifier)
@ -521,6 +594,7 @@ _sym_db.RegisterMessage(Verifiers.TreeStatusLgtmVerifier)
_sym_db.RegisterMessage(Verifiers.TryJobVerifier)
_sym_db.RegisterMessage(Verifiers.TryJobVerifier.Builder)
_sym_db.RegisterMessage(Verifiers.TryJobVerifier.Bucket)
_sym_db.RegisterMessage(Verifiers.TryJobVerifier.TryJobRetryConfig)
_sym_db.RegisterMessage(Verifiers.SignCLAVerifier)

@ -15,7 +15,7 @@ rietveld {
verifiers {
reviewer_lgtm: {
committer_list: "chromium"
committer_list: "project-chromium-committers"
max_wait_secs: 600
no_lgtm_msg: "LGTM is missing"
}
@ -41,15 +41,15 @@ verifiers {
}
builders {
name: "linux_chromium_rel_ng"
experiment_percentage: 0.1
experiment_percentage: 10
}
}
buckets {
name: "tryserver.chromium.mac"
builders {
name: "ios_dbg_simulator_ninja"
experiment_percentage: 1.0
experiment_percentage: 100
}
}
}
}
}

Loading…
Cancel
Save