go.chromium.org/luci@v0.0.0-20240309015107-7cdc2e660f33/analysis/internal/clustering/proto/failure.pb.go (about) 1 // Copyright 2022 The LUCI Authors. 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 // Code generated by protoc-gen-go. DO NOT EDIT. 16 // versions: 17 // protoc-gen-go v1.31.0 18 // protoc v3.21.7 19 // source: go.chromium.org/luci/analysis/internal/clustering/proto/failure.proto 20 21 package clusteringpb 22 23 import ( 24 v1 "go.chromium.org/luci/analysis/proto/v1" 25 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 26 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 27 durationpb "google.golang.org/protobuf/types/known/durationpb" 28 timestamppb "google.golang.org/protobuf/types/known/timestamppb" 29 reflect "reflect" 30 sync "sync" 31 ) 32 33 const ( 34 // Verify that this generated code is sufficiently up-to-date. 35 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 36 // Verify that runtime/protoimpl is sufficiently up-to-date. 37 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 38 ) 39 40 // Chunk is a set of unexpected test failures which are processed together 41 // for efficiency. 42 // Serialised and stored in GCS. 43 type Chunk struct { 44 state protoimpl.MessageState 45 sizeCache protoimpl.SizeCache 46 unknownFields protoimpl.UnknownFields 47 48 Failures []*Failure `protobuf:"bytes,1,rep,name=failures,proto3" json:"failures,omitempty"` 49 } 50 51 func (x *Chunk) Reset() { 52 *x = Chunk{} 53 if protoimpl.UnsafeEnabled { 54 mi := &file_go_chromium_org_luci_analysis_internal_clustering_proto_failure_proto_msgTypes[0] 55 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 56 ms.StoreMessageInfo(mi) 57 } 58 } 59 60 func (x *Chunk) String() string { 61 return protoimpl.X.MessageStringOf(x) 62 } 63 64 func (*Chunk) ProtoMessage() {} 65 66 func (x *Chunk) ProtoReflect() protoreflect.Message { 67 mi := &file_go_chromium_org_luci_analysis_internal_clustering_proto_failure_proto_msgTypes[0] 68 if protoimpl.UnsafeEnabled && x != nil { 69 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 70 if ms.LoadMessageInfo() == nil { 71 ms.StoreMessageInfo(mi) 72 } 73 return ms 74 } 75 return mi.MessageOf(x) 76 } 77 78 // Deprecated: Use Chunk.ProtoReflect.Descriptor instead. 79 func (*Chunk) Descriptor() ([]byte, []int) { 80 return file_go_chromium_org_luci_analysis_internal_clustering_proto_failure_proto_rawDescGZIP(), []int{0} 81 } 82 83 func (x *Chunk) GetFailures() []*Failure { 84 if x != nil { 85 return x.Failures 86 } 87 return nil 88 } 89 90 // LUCI Analysis internal representation of an unexpected test failure. 91 type Failure struct { 92 state protoimpl.MessageState 93 sizeCache protoimpl.SizeCache 94 unknownFields protoimpl.UnknownFields 95 96 // The identity of the test result, as defined by the source system. 97 TestResultId *v1.TestResultId `protobuf:"bytes,1,opt,name=test_result_id,json=testResultId,proto3" json:"test_result_id,omitempty"` 98 // Timestamp representing the start of the data retention period. This acts 99 // as the partitioning key in time/date-partitioned tables. 100 PartitionTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=partition_time,json=partitionTime,proto3" json:"partition_time,omitempty"` 101 // The one-based index of this failure within the chunk. Assigned by 102 // LUCI Analysis ingestion. 103 ChunkIndex int64 `protobuf:"varint,3,opt,name=chunk_index,json=chunkIndex,proto3" json:"chunk_index,omitempty"` 104 // Security realm of the test result. 105 // For test results from ResultDB, this must be set. The format is 106 // "{LUCI_PROJECT}:{REALM_SUFFIX}", for example "chromium:ci". 107 Realm string `protobuf:"bytes,4,opt,name=realm,proto3" json:"realm,omitempty"` 108 // The unique identifier of the test. 109 // For test results from ResultDB, see luci.resultdb.v1.TestResult.test_id. 110 TestId string `protobuf:"bytes,5,opt,name=test_id,json=testId,proto3" json:"test_id,omitempty"` 111 // key:value pairs to specify the way of running a particular test. 112 // e.g. a specific bucket, builder and a test suite. 113 Variant *v1.Variant `protobuf:"bytes,6,opt,name=variant,proto3" json:"variant,omitempty"` 114 // Metadata key value pairs for this test result. 115 // It might describe this particular execution or the test case. 116 // A key can be repeated. 117 Tags []*v1.StringPair `protobuf:"bytes,25,rep,name=tags,proto3" json:"tags,omitempty"` 118 // Hash of the variant. 119 // hex(sha256(”.join(sorted('%s:%s\n' for k, v in variant.items())))). 120 VariantHash string `protobuf:"bytes,7,opt,name=variant_hash,json=variantHash,proto3" json:"variant_hash,omitempty"` 121 // A failure reason describing why the test failed. 122 FailureReason *v1.FailureReason `protobuf:"bytes,8,opt,name=failure_reason,json=failureReason,proto3" json:"failure_reason,omitempty"` 123 // The bug tracking component corresponding to this test case, as identified 124 // by the test results system. If no information is available, this is 125 // unset. 126 BugTrackingComponent *v1.BugTrackingComponent `protobuf:"bytes,9,opt,name=bug_tracking_component,json=bugTrackingComponent,proto3" json:"bug_tracking_component,omitempty"` 127 // The point in time when the test case started to execute. 128 StartTime *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` 129 // The amount of time the test case took to execute. 130 Duration *durationpb.Duration `protobuf:"bytes,11,opt,name=duration,proto3" json:"duration,omitempty"` 131 // The exonerations applied to the test verdict. 132 // An empty list indicates the test verdict this test result was a part of 133 // was not exonerated. 134 Exonerations []*TestExoneration `protobuf:"bytes,26,rep,name=exonerations,proto3" json:"exonerations,omitempty"` 135 // The presubmit run the test result was a part of (if any). 136 PresubmitRun *PresubmitRun `protobuf:"bytes,27,opt,name=presubmit_run,json=presubmitRun,proto3" json:"presubmit_run,omitempty"` 137 // The status of the build that contained this test result. Can be used 138 // to filter incomplete results (e.g. where build was cancelled or had 139 // an infra failure). Can also be used to filter builds with incomplete 140 // exonerations (e.g. build succeeded but some tests not exonerated). 141 // This is the build corresponding to ingested_invocation_id. 142 BuildStatus v1.BuildStatus `protobuf:"varint,28,opt,name=build_status,json=buildStatus,proto3,enum=luci.analysis.v1.BuildStatus" json:"build_status,omitempty"` 143 // Whether the build was critical to a presubmit run succeeding. 144 // If the build was not part of a presubmit run, this is unset. 145 BuildCritical *bool `protobuf:"varint,29,opt,name=build_critical,json=buildCritical,proto3,oneof" json:"build_critical,omitempty"` 146 // The unsubmitted changelists that were tested (if any). 147 // Changelists are sorted in ascending (host, change, patchset) order. 148 // Up to 10 changelists are captured. 149 Changelists []*v1.Changelist `protobuf:"bytes,23,rep,name=changelists,proto3" json:"changelists,omitempty"` 150 // The invocation from which this test result was ingested. This is 151 // the top-level invocation that was ingested, an "invocation" being 152 // a container of test results as identified by the source test result 153 // system. 154 // 155 // For ResultDB, LUCI Analysis ingests invocations corresponding to 156 // buildbucket builds. 157 // 158 // All test results ingested from the same invocation (i.e. with the 159 // same ingested_invocation_id) will have the same partition time. 160 IngestedInvocationId string `protobuf:"bytes,14,opt,name=ingested_invocation_id,json=ingestedInvocationId,proto3" json:"ingested_invocation_id,omitempty"` 161 // The zero-based index for this test result, in the sequence of the 162 // ingested invocation's results for this test variant. Within the sequence, 163 // test results are ordered by start_time and then by test result ID. 164 // The first test result is 0, the last test result is 165 // ingested_invocation_result_count - 1. 166 IngestedInvocationResultIndex int64 `protobuf:"varint,15,opt,name=ingested_invocation_result_index,json=ingestedInvocationResultIndex,proto3" json:"ingested_invocation_result_index,omitempty"` 167 // The number of test results having this test variant in the ingested 168 // invocation. 169 IngestedInvocationResultCount int64 `protobuf:"varint,16,opt,name=ingested_invocation_result_count,json=ingestedInvocationResultCount,proto3" json:"ingested_invocation_result_count,omitempty"` 170 // Is the ingested invocation blocked by this test variant? This is 171 // only true if all (non-skipped) test results for this test variant 172 // (in the ingested invocation) are unexpected failures. 173 // 174 // Exoneration does not factor into this value; check exonerations 175 // to see if the impact of this ingested invocation being blocked was 176 // mitigated by exoneration. 177 IsIngestedInvocationBlocked bool `protobuf:"varint,17,opt,name=is_ingested_invocation_blocked,json=isIngestedInvocationBlocked,proto3" json:"is_ingested_invocation_blocked,omitempty"` 178 // The identifier of the test run the test ran in. Test results in different 179 // test runs are generally considered independent as they should be unable 180 // to leak state to one another. 181 // 182 // In Chrome and Chrome OS, a test run logically corresponds to a swarming 183 // task that runs tests, but this ID is not necessarily the ID of that 184 // task, but rather any other ID that is unique per such task. 185 // 186 // If test result system is ResultDB, this is the ID of the ResultDB 187 // invocation the test result was immediately contained within, not including 188 // any "invocations/" prefix. 189 TestRunId string `protobuf:"bytes,18,opt,name=test_run_id,json=testRunId,proto3" json:"test_run_id,omitempty"` 190 // The zero-based index for this test result, in the sequence of results 191 // having this test variant and test run. Within the sequence, test 192 // results are ordered by start_time and then by test result ID. 193 // The first test result is 0, the last test result is 194 // test_run_result_count - 1. 195 TestRunResultIndex int64 `protobuf:"varint,19,opt,name=test_run_result_index,json=testRunResultIndex,proto3" json:"test_run_result_index,omitempty"` 196 // The number of test results having this test variant and test run. 197 TestRunResultCount int64 `protobuf:"varint,20,opt,name=test_run_result_count,json=testRunResultCount,proto3" json:"test_run_result_count,omitempty"` 198 // Is the test run blocked by this test variant? This is only true if all 199 // (non-skipped) test results for this test variant (in the test run) 200 // are unexpected failures. 201 // 202 // Exoneration does not factor into this value; check exonerations 203 // to see if the impact of this test run being blocked was 204 // mitigated by exoneration. 205 IsTestRunBlocked bool `protobuf:"varint,21,opt,name=is_test_run_blocked,json=isTestRunBlocked,proto3" json:"is_test_run_blocked,omitempty"` 206 // The code sources tested, if known. 207 Sources *v1.Sources `protobuf:"bytes,30,opt,name=sources,proto3" json:"sources,omitempty"` 208 // The gardener rotations the build is a part of. Corresponds to the 209 // `sheriff_rotations` field of the build input properties. 210 BuildGardenerRotations []string `protobuf:"bytes,31,rep,name=build_gardener_rotations,json=buildGardenerRotations,proto3" json:"build_gardener_rotations,omitempty"` 211 // Information about the test variant-branch the result is from. 212 TestVariantBranch *TestVariantBranch `protobuf:"bytes,32,opt,name=test_variant_branch,json=testVariantBranch,proto3" json:"test_variant_branch,omitempty"` 213 } 214 215 func (x *Failure) Reset() { 216 *x = Failure{} 217 if protoimpl.UnsafeEnabled { 218 mi := &file_go_chromium_org_luci_analysis_internal_clustering_proto_failure_proto_msgTypes[1] 219 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 220 ms.StoreMessageInfo(mi) 221 } 222 } 223 224 func (x *Failure) String() string { 225 return protoimpl.X.MessageStringOf(x) 226 } 227 228 func (*Failure) ProtoMessage() {} 229 230 func (x *Failure) ProtoReflect() protoreflect.Message { 231 mi := &file_go_chromium_org_luci_analysis_internal_clustering_proto_failure_proto_msgTypes[1] 232 if protoimpl.UnsafeEnabled && x != nil { 233 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 234 if ms.LoadMessageInfo() == nil { 235 ms.StoreMessageInfo(mi) 236 } 237 return ms 238 } 239 return mi.MessageOf(x) 240 } 241 242 // Deprecated: Use Failure.ProtoReflect.Descriptor instead. 243 func (*Failure) Descriptor() ([]byte, []int) { 244 return file_go_chromium_org_luci_analysis_internal_clustering_proto_failure_proto_rawDescGZIP(), []int{1} 245 } 246 247 func (x *Failure) GetTestResultId() *v1.TestResultId { 248 if x != nil { 249 return x.TestResultId 250 } 251 return nil 252 } 253 254 func (x *Failure) GetPartitionTime() *timestamppb.Timestamp { 255 if x != nil { 256 return x.PartitionTime 257 } 258 return nil 259 } 260 261 func (x *Failure) GetChunkIndex() int64 { 262 if x != nil { 263 return x.ChunkIndex 264 } 265 return 0 266 } 267 268 func (x *Failure) GetRealm() string { 269 if x != nil { 270 return x.Realm 271 } 272 return "" 273 } 274 275 func (x *Failure) GetTestId() string { 276 if x != nil { 277 return x.TestId 278 } 279 return "" 280 } 281 282 func (x *Failure) GetVariant() *v1.Variant { 283 if x != nil { 284 return x.Variant 285 } 286 return nil 287 } 288 289 func (x *Failure) GetTags() []*v1.StringPair { 290 if x != nil { 291 return x.Tags 292 } 293 return nil 294 } 295 296 func (x *Failure) GetVariantHash() string { 297 if x != nil { 298 return x.VariantHash 299 } 300 return "" 301 } 302 303 func (x *Failure) GetFailureReason() *v1.FailureReason { 304 if x != nil { 305 return x.FailureReason 306 } 307 return nil 308 } 309 310 func (x *Failure) GetBugTrackingComponent() *v1.BugTrackingComponent { 311 if x != nil { 312 return x.BugTrackingComponent 313 } 314 return nil 315 } 316 317 func (x *Failure) GetStartTime() *timestamppb.Timestamp { 318 if x != nil { 319 return x.StartTime 320 } 321 return nil 322 } 323 324 func (x *Failure) GetDuration() *durationpb.Duration { 325 if x != nil { 326 return x.Duration 327 } 328 return nil 329 } 330 331 func (x *Failure) GetExonerations() []*TestExoneration { 332 if x != nil { 333 return x.Exonerations 334 } 335 return nil 336 } 337 338 func (x *Failure) GetPresubmitRun() *PresubmitRun { 339 if x != nil { 340 return x.PresubmitRun 341 } 342 return nil 343 } 344 345 func (x *Failure) GetBuildStatus() v1.BuildStatus { 346 if x != nil { 347 return x.BuildStatus 348 } 349 return v1.BuildStatus(0) 350 } 351 352 func (x *Failure) GetBuildCritical() bool { 353 if x != nil && x.BuildCritical != nil { 354 return *x.BuildCritical 355 } 356 return false 357 } 358 359 func (x *Failure) GetChangelists() []*v1.Changelist { 360 if x != nil { 361 return x.Changelists 362 } 363 return nil 364 } 365 366 func (x *Failure) GetIngestedInvocationId() string { 367 if x != nil { 368 return x.IngestedInvocationId 369 } 370 return "" 371 } 372 373 func (x *Failure) GetIngestedInvocationResultIndex() int64 { 374 if x != nil { 375 return x.IngestedInvocationResultIndex 376 } 377 return 0 378 } 379 380 func (x *Failure) GetIngestedInvocationResultCount() int64 { 381 if x != nil { 382 return x.IngestedInvocationResultCount 383 } 384 return 0 385 } 386 387 func (x *Failure) GetIsIngestedInvocationBlocked() bool { 388 if x != nil { 389 return x.IsIngestedInvocationBlocked 390 } 391 return false 392 } 393 394 func (x *Failure) GetTestRunId() string { 395 if x != nil { 396 return x.TestRunId 397 } 398 return "" 399 } 400 401 func (x *Failure) GetTestRunResultIndex() int64 { 402 if x != nil { 403 return x.TestRunResultIndex 404 } 405 return 0 406 } 407 408 func (x *Failure) GetTestRunResultCount() int64 { 409 if x != nil { 410 return x.TestRunResultCount 411 } 412 return 0 413 } 414 415 func (x *Failure) GetIsTestRunBlocked() bool { 416 if x != nil { 417 return x.IsTestRunBlocked 418 } 419 return false 420 } 421 422 func (x *Failure) GetSources() *v1.Sources { 423 if x != nil { 424 return x.Sources 425 } 426 return nil 427 } 428 429 func (x *Failure) GetBuildGardenerRotations() []string { 430 if x != nil { 431 return x.BuildGardenerRotations 432 } 433 return nil 434 } 435 436 func (x *Failure) GetTestVariantBranch() *TestVariantBranch { 437 if x != nil { 438 return x.TestVariantBranch 439 } 440 return nil 441 } 442 443 // Statistics about the (test,variant,ref) the verdict is from. 444 type TestVariantBranch struct { 445 state protoimpl.MessageState 446 sizeCache protoimpl.SizeCache 447 unknownFields protoimpl.UnknownFields 448 449 // The number of flaky verdicts in the preceding 24 hours. A verdict 450 // is considered flaky for this count if it has both expected and 451 // unexpected test results (excluding skips). Whether the verdict 452 // was exonerated is irrelevant. 453 FlakyVerdicts_24H int64 `protobuf:"varint,1,opt,name=flaky_verdicts_24h,json=flakyVerdicts24h,proto3" json:"flaky_verdicts_24h,omitempty"` 454 // The number of unexpected verdicts in the preceding 24 hours. A verdict 455 // is unexpected for this count if has only unexpected test results 456 // (excluding skips). Whether the verdict was exonerated is irrelevant. 457 UnexpectedVerdicts_24H int64 `protobuf:"varint,2,opt,name=unexpected_verdicts_24h,json=unexpectedVerdicts24h,proto3" json:"unexpected_verdicts_24h,omitempty"` 458 // The total number of verdicts in the preceding 24 hours, excluding 459 // verdicts with only skipped test results. 460 TotalVerdicts_24H int64 `protobuf:"varint,3,opt,name=total_verdicts_24h,json=totalVerdicts24h,proto3" json:"total_verdicts_24h,omitempty"` 461 } 462 463 func (x *TestVariantBranch) Reset() { 464 *x = TestVariantBranch{} 465 if protoimpl.UnsafeEnabled { 466 mi := &file_go_chromium_org_luci_analysis_internal_clustering_proto_failure_proto_msgTypes[2] 467 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 468 ms.StoreMessageInfo(mi) 469 } 470 } 471 472 func (x *TestVariantBranch) String() string { 473 return protoimpl.X.MessageStringOf(x) 474 } 475 476 func (*TestVariantBranch) ProtoMessage() {} 477 478 func (x *TestVariantBranch) ProtoReflect() protoreflect.Message { 479 mi := &file_go_chromium_org_luci_analysis_internal_clustering_proto_failure_proto_msgTypes[2] 480 if protoimpl.UnsafeEnabled && x != nil { 481 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 482 if ms.LoadMessageInfo() == nil { 483 ms.StoreMessageInfo(mi) 484 } 485 return ms 486 } 487 return mi.MessageOf(x) 488 } 489 490 // Deprecated: Use TestVariantBranch.ProtoReflect.Descriptor instead. 491 func (*TestVariantBranch) Descriptor() ([]byte, []int) { 492 return file_go_chromium_org_luci_analysis_internal_clustering_proto_failure_proto_rawDescGZIP(), []int{2} 493 } 494 495 func (x *TestVariantBranch) GetFlakyVerdicts_24H() int64 { 496 if x != nil { 497 return x.FlakyVerdicts_24H 498 } 499 return 0 500 } 501 502 func (x *TestVariantBranch) GetUnexpectedVerdicts_24H() int64 { 503 if x != nil { 504 return x.UnexpectedVerdicts_24H 505 } 506 return 0 507 } 508 509 func (x *TestVariantBranch) GetTotalVerdicts_24H() int64 { 510 if x != nil { 511 return x.TotalVerdicts_24H 512 } 513 return 0 514 } 515 516 // LUCI Analysis internal representation of a test exoneration. 517 type TestExoneration struct { 518 state protoimpl.MessageState 519 sizeCache protoimpl.SizeCache 520 unknownFields protoimpl.UnknownFields 521 522 // The machine-readable reason for the exoneration. 523 Reason v1.ExonerationReason `protobuf:"varint,1,opt,name=reason,proto3,enum=luci.analysis.v1.ExonerationReason" json:"reason,omitempty"` 524 } 525 526 func (x *TestExoneration) Reset() { 527 *x = TestExoneration{} 528 if protoimpl.UnsafeEnabled { 529 mi := &file_go_chromium_org_luci_analysis_internal_clustering_proto_failure_proto_msgTypes[3] 530 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 531 ms.StoreMessageInfo(mi) 532 } 533 } 534 535 func (x *TestExoneration) String() string { 536 return protoimpl.X.MessageStringOf(x) 537 } 538 539 func (*TestExoneration) ProtoMessage() {} 540 541 func (x *TestExoneration) ProtoReflect() protoreflect.Message { 542 mi := &file_go_chromium_org_luci_analysis_internal_clustering_proto_failure_proto_msgTypes[3] 543 if protoimpl.UnsafeEnabled && x != nil { 544 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 545 if ms.LoadMessageInfo() == nil { 546 ms.StoreMessageInfo(mi) 547 } 548 return ms 549 } 550 return mi.MessageOf(x) 551 } 552 553 // Deprecated: Use TestExoneration.ProtoReflect.Descriptor instead. 554 func (*TestExoneration) Descriptor() ([]byte, []int) { 555 return file_go_chromium_org_luci_analysis_internal_clustering_proto_failure_proto_rawDescGZIP(), []int{3} 556 } 557 558 func (x *TestExoneration) GetReason() v1.ExonerationReason { 559 if x != nil { 560 return x.Reason 561 } 562 return v1.ExonerationReason(0) 563 } 564 565 // LUCI Analysis internal representation of a presubmit run (e.g. LUCI CV Run). 566 type PresubmitRun struct { 567 state protoimpl.MessageState 568 sizeCache protoimpl.SizeCache 569 unknownFields protoimpl.UnknownFields 570 571 // Identity of the presubmit run that contains this test result. 572 // This should be unique per "CQ+1"/"CQ+2" attempt on gerrit. 573 // 574 // One presumbit run MAY have many ingested invocation IDs (e.g. for its 575 // various tryjobs), but every ingested invocation ID only ever has one 576 // presubmit run ID (if any). 577 // 578 // All test results for the same presubmit run will have one 579 // partition_time. 580 // 581 // If the test result was not collected as part of a presubmit run, 582 // this is unset. 583 PresubmitRunId *v1.PresubmitRunId `protobuf:"bytes,1,opt,name=presubmit_run_id,json=presubmitRunId,proto3" json:"presubmit_run_id,omitempty"` 584 // The owner of the presubmit run (if any). 585 // This is the owner of the CL on which CQ+1/CQ+2 was clicked 586 // (even in case of presubmit run with multiple CLs). 587 // There is scope for this field to become an email address if privacy 588 // approval is obtained, until then it is "automation" (for automation 589 // service accounts) and "user" otherwise. 590 Owner string `protobuf:"bytes,2,opt,name=owner,proto3" json:"owner,omitempty"` 591 // The mode of the presubmit run. E.g. DRY_RUN, FULL_RUN, QUICK_DRY_RUN. 592 Mode v1.PresubmitRunMode `protobuf:"varint,3,opt,name=mode,proto3,enum=luci.analysis.v1.PresubmitRunMode" json:"mode,omitempty"` 593 // The presubmit run's ending status. E.g. SUCCESS, FAILURE, CANCELED. 594 Status v1.PresubmitRunStatus `protobuf:"varint,4,opt,name=status,proto3,enum=luci.analysis.v1.PresubmitRunStatus" json:"status,omitempty"` 595 } 596 597 func (x *PresubmitRun) Reset() { 598 *x = PresubmitRun{} 599 if protoimpl.UnsafeEnabled { 600 mi := &file_go_chromium_org_luci_analysis_internal_clustering_proto_failure_proto_msgTypes[4] 601 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 602 ms.StoreMessageInfo(mi) 603 } 604 } 605 606 func (x *PresubmitRun) String() string { 607 return protoimpl.X.MessageStringOf(x) 608 } 609 610 func (*PresubmitRun) ProtoMessage() {} 611 612 func (x *PresubmitRun) ProtoReflect() protoreflect.Message { 613 mi := &file_go_chromium_org_luci_analysis_internal_clustering_proto_failure_proto_msgTypes[4] 614 if protoimpl.UnsafeEnabled && x != nil { 615 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 616 if ms.LoadMessageInfo() == nil { 617 ms.StoreMessageInfo(mi) 618 } 619 return ms 620 } 621 return mi.MessageOf(x) 622 } 623 624 // Deprecated: Use PresubmitRun.ProtoReflect.Descriptor instead. 625 func (*PresubmitRun) Descriptor() ([]byte, []int) { 626 return file_go_chromium_org_luci_analysis_internal_clustering_proto_failure_proto_rawDescGZIP(), []int{4} 627 } 628 629 func (x *PresubmitRun) GetPresubmitRunId() *v1.PresubmitRunId { 630 if x != nil { 631 return x.PresubmitRunId 632 } 633 return nil 634 } 635 636 func (x *PresubmitRun) GetOwner() string { 637 if x != nil { 638 return x.Owner 639 } 640 return "" 641 } 642 643 func (x *PresubmitRun) GetMode() v1.PresubmitRunMode { 644 if x != nil { 645 return x.Mode 646 } 647 return v1.PresubmitRunMode(0) 648 } 649 650 func (x *PresubmitRun) GetStatus() v1.PresubmitRunStatus { 651 if x != nil { 652 return x.Status 653 } 654 return v1.PresubmitRunStatus(0) 655 } 656 657 var File_go_chromium_org_luci_analysis_internal_clustering_proto_failure_proto protoreflect.FileDescriptor 658 659 var file_go_chromium_org_luci_analysis_internal_clustering_proto_failure_proto_rawDesc = []byte{ 660 0x0a, 0x45, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 661 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2f, 662 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 663 0x69, 0x6e, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 664 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x21, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 0x6e, 665 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 666 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 667 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 668 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 669 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 670 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x67, 0x6f, 0x2e, 671 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 672 0x69, 0x2f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 673 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 674 0x1a, 0x34, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 675 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2f, 676 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 677 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3b, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 678 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x61, 0x6e, 0x61, 679 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x2f, 0x66, 680 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 681 0x6f, 0x74, 0x6f, 0x22, 0x4f, 0x0a, 0x05, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x12, 0x46, 0x0a, 0x08, 682 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 683 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x69, 684 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 685 0x6e, 0x67, 0x2e, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x52, 0x08, 0x66, 0x61, 0x69, 0x6c, 686 0x75, 0x72, 0x65, 0x73, 0x22, 0x96, 0x0d, 0x0a, 0x07, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 687 0x12, 0x44, 0x0a, 0x0e, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 688 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 689 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 690 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x49, 0x64, 0x52, 0x0c, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 691 0x73, 0x75, 0x6c, 0x74, 0x49, 0x64, 0x12, 0x41, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 692 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 693 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 694 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74, 695 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x68, 0x75, 696 0x6e, 0x6b, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 697 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 698 0x61, 0x6c, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x61, 0x6c, 0x6d, 699 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 700 0x09, 0x52, 0x06, 0x74, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x33, 0x0a, 0x07, 0x76, 0x61, 0x72, 701 0x69, 0x61, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6c, 0x75, 0x63, 702 0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 703 0x72, 0x69, 0x61, 0x6e, 0x74, 0x52, 0x07, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x12, 0x30, 704 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x19, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6c, 705 0x75, 0x63, 0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x76, 0x31, 0x2e, 706 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 707 0x12, 0x21, 0x0a, 0x0c, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 708 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x48, 709 0x61, 0x73, 0x68, 0x12, 0x46, 0x0a, 0x0e, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x72, 710 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6c, 0x75, 711 0x63, 0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 712 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x0d, 0x66, 0x61, 713 0x69, 0x6c, 0x75, 0x72, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x5c, 0x0a, 0x16, 0x62, 714 0x75, 0x67, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 715 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6c, 0x75, 716 0x63, 0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 717 0x75, 0x67, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 718 0x65, 0x6e, 0x74, 0x52, 0x14, 0x62, 0x75, 0x67, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 719 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 720 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 721 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 722 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 723 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 724 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 725 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 726 0x6e, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x56, 0x0a, 0x0c, 0x65, 727 0x78, 0x6f, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x1a, 0x20, 0x03, 0x28, 728 0x0b, 0x32, 0x32, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 729 0x73, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 730 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x45, 0x78, 0x6f, 0x6e, 0x65, 0x72, 731 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x65, 0x78, 0x6f, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 732 0x6f, 0x6e, 0x73, 0x12, 0x54, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 733 0x5f, 0x72, 0x75, 0x6e, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6c, 0x75, 0x63, 734 0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 735 0x6e, 0x61, 0x6c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x50, 736 0x72, 0x65, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x52, 0x75, 0x6e, 0x52, 0x0c, 0x70, 0x72, 0x65, 737 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x52, 0x75, 0x6e, 0x12, 0x40, 0x0a, 0x0c, 0x62, 0x75, 0x69, 738 0x6c, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0e, 0x32, 739 0x1d, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 740 0x76, 0x31, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0b, 741 0x62, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x0e, 0x62, 742 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x18, 0x1d, 0x20, 743 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0d, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x72, 0x69, 0x74, 744 0x69, 0x63, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 745 0x65, 0x6c, 0x69, 0x73, 0x74, 0x73, 0x18, 0x17, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6c, 746 0x75, 0x63, 0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x76, 0x31, 0x2e, 747 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 748 0x67, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x69, 0x6e, 0x67, 0x65, 0x73, 749 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 750 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x65, 751 0x64, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x47, 0x0a, 752 0x20, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 753 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 754 0x78, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1d, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x65, 755 0x64, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 756 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x47, 0x0a, 0x20, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 757 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 758 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 759 0x52, 0x1d, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 760 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 761 0x43, 0x0a, 0x1e, 0x69, 0x73, 0x5f, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x69, 762 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 763 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1b, 0x69, 0x73, 0x49, 0x6e, 0x67, 0x65, 0x73, 764 0x74, 0x65, 0x64, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 765 0x63, 0x6b, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0b, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x75, 0x6e, 766 0x5f, 0x69, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x65, 0x73, 0x74, 0x52, 767 0x75, 0x6e, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x15, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x75, 0x6e, 768 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x13, 0x20, 769 0x01, 0x28, 0x03, 0x52, 0x12, 0x74, 0x65, 0x73, 0x74, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x75, 770 0x6c, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x31, 0x0a, 0x15, 0x74, 0x65, 0x73, 0x74, 0x5f, 771 0x72, 0x75, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 772 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x74, 0x65, 0x73, 0x74, 0x52, 0x75, 0x6e, 0x52, 773 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2d, 0x0a, 0x13, 0x69, 0x73, 774 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 775 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x73, 0x54, 0x65, 0x73, 0x74, 0x52, 776 0x75, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x33, 0x0a, 0x07, 0x73, 0x6f, 0x75, 777 0x72, 0x63, 0x65, 0x73, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6c, 0x75, 0x63, 778 0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6f, 779 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x07, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x38, 780 0x0a, 0x18, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x67, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x65, 0x72, 781 0x5f, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x09, 782 0x52, 0x16, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x47, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x65, 0x72, 0x52, 783 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x64, 0x0a, 0x13, 0x74, 0x65, 0x73, 0x74, 784 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 785 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 0x6e, 0x61, 786 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x63, 787 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x61, 788 0x72, 0x69, 0x61, 0x6e, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x11, 0x74, 0x65, 0x73, 789 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x42, 0x11, 790 0x0a, 0x0f, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 791 0x6c, 0x4a, 0x04, 0x08, 0x0c, 0x10, 0x0d, 0x4a, 0x04, 0x08, 0x18, 0x10, 0x19, 0x22, 0xa7, 0x01, 792 0x0a, 0x11, 0x54, 0x65, 0x73, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x42, 0x72, 0x61, 793 0x6e, 0x63, 0x68, 0x12, 0x2c, 0x0a, 0x12, 0x66, 0x6c, 0x61, 0x6b, 0x79, 0x5f, 0x76, 0x65, 0x72, 794 0x64, 0x69, 0x63, 0x74, 0x73, 0x5f, 0x32, 0x34, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 795 0x10, 0x66, 0x6c, 0x61, 0x6b, 0x79, 0x56, 0x65, 0x72, 0x64, 0x69, 0x63, 0x74, 0x73, 0x32, 0x34, 796 0x68, 0x12, 0x36, 0x0a, 0x17, 0x75, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 797 0x76, 0x65, 0x72, 0x64, 0x69, 0x63, 0x74, 0x73, 0x5f, 0x32, 0x34, 0x68, 0x18, 0x02, 0x20, 0x01, 798 0x28, 0x03, 0x52, 0x15, 0x75, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x56, 0x65, 799 0x72, 0x64, 0x69, 0x63, 0x74, 0x73, 0x32, 0x34, 0x68, 0x12, 0x2c, 0x0a, 0x12, 0x74, 0x6f, 0x74, 800 0x61, 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x64, 0x69, 0x63, 0x74, 0x73, 0x5f, 0x32, 0x34, 0x68, 0x18, 801 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x56, 0x65, 0x72, 0x64, 802 0x69, 0x63, 0x74, 0x73, 0x32, 0x34, 0x68, 0x22, 0x4e, 0x0a, 0x0f, 0x54, 0x65, 0x73, 0x74, 0x45, 803 0x78, 0x6f, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x06, 0x72, 0x65, 804 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x75, 0x63, 805 0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 806 0x6f, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 807 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0xe6, 0x01, 0x0a, 0x0c, 0x50, 0x72, 0x65, 0x73, 808 0x75, 0x62, 0x6d, 0x69, 0x74, 0x52, 0x75, 0x6e, 0x12, 0x4a, 0x0a, 0x10, 0x70, 0x72, 0x65, 0x73, 809 0x75, 0x62, 0x6d, 0x69, 0x74, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 810 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 811 0x69, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x52, 812 0x75, 0x6e, 0x49, 0x64, 0x52, 0x0e, 0x70, 0x72, 0x65, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x52, 813 0x75, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x02, 0x20, 814 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x04, 0x6d, 0x6f, 815 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 816 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x73, 817 0x75, 0x62, 0x6d, 0x69, 0x74, 0x52, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6d, 0x6f, 818 0x64, 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 819 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 820 0x69, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x52, 821 0x75, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 822 0x42, 0x46, 0x5a, 0x44, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 823 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 824 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 825 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3b, 0x63, 0x6c, 0x75, 0x73, 826 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 827 } 828 829 var ( 830 file_go_chromium_org_luci_analysis_internal_clustering_proto_failure_proto_rawDescOnce sync.Once 831 file_go_chromium_org_luci_analysis_internal_clustering_proto_failure_proto_rawDescData = file_go_chromium_org_luci_analysis_internal_clustering_proto_failure_proto_rawDesc 832 ) 833 834 func file_go_chromium_org_luci_analysis_internal_clustering_proto_failure_proto_rawDescGZIP() []byte { 835 file_go_chromium_org_luci_analysis_internal_clustering_proto_failure_proto_rawDescOnce.Do(func() { 836 file_go_chromium_org_luci_analysis_internal_clustering_proto_failure_proto_rawDescData = protoimpl.X.CompressGZIP(file_go_chromium_org_luci_analysis_internal_clustering_proto_failure_proto_rawDescData) 837 }) 838 return file_go_chromium_org_luci_analysis_internal_clustering_proto_failure_proto_rawDescData 839 } 840 841 var file_go_chromium_org_luci_analysis_internal_clustering_proto_failure_proto_msgTypes = make([]protoimpl.MessageInfo, 5) 842 var file_go_chromium_org_luci_analysis_internal_clustering_proto_failure_proto_goTypes = []interface{}{ 843 (*Chunk)(nil), // 0: luci.analysis.internal.clustering.Chunk 844 (*Failure)(nil), // 1: luci.analysis.internal.clustering.Failure 845 (*TestVariantBranch)(nil), // 2: luci.analysis.internal.clustering.TestVariantBranch 846 (*TestExoneration)(nil), // 3: luci.analysis.internal.clustering.TestExoneration 847 (*PresubmitRun)(nil), // 4: luci.analysis.internal.clustering.PresubmitRun 848 (*v1.TestResultId)(nil), // 5: luci.analysis.v1.TestResultId 849 (*timestamppb.Timestamp)(nil), // 6: google.protobuf.Timestamp 850 (*v1.Variant)(nil), // 7: luci.analysis.v1.Variant 851 (*v1.StringPair)(nil), // 8: luci.analysis.v1.StringPair 852 (*v1.FailureReason)(nil), // 9: luci.analysis.v1.FailureReason 853 (*v1.BugTrackingComponent)(nil), // 10: luci.analysis.v1.BugTrackingComponent 854 (*durationpb.Duration)(nil), // 11: google.protobuf.Duration 855 (v1.BuildStatus)(0), // 12: luci.analysis.v1.BuildStatus 856 (*v1.Changelist)(nil), // 13: luci.analysis.v1.Changelist 857 (*v1.Sources)(nil), // 14: luci.analysis.v1.Sources 858 (v1.ExonerationReason)(0), // 15: luci.analysis.v1.ExonerationReason 859 (*v1.PresubmitRunId)(nil), // 16: luci.analysis.v1.PresubmitRunId 860 (v1.PresubmitRunMode)(0), // 17: luci.analysis.v1.PresubmitRunMode 861 (v1.PresubmitRunStatus)(0), // 18: luci.analysis.v1.PresubmitRunStatus 862 } 863 var file_go_chromium_org_luci_analysis_internal_clustering_proto_failure_proto_depIdxs = []int32{ 864 1, // 0: luci.analysis.internal.clustering.Chunk.failures:type_name -> luci.analysis.internal.clustering.Failure 865 5, // 1: luci.analysis.internal.clustering.Failure.test_result_id:type_name -> luci.analysis.v1.TestResultId 866 6, // 2: luci.analysis.internal.clustering.Failure.partition_time:type_name -> google.protobuf.Timestamp 867 7, // 3: luci.analysis.internal.clustering.Failure.variant:type_name -> luci.analysis.v1.Variant 868 8, // 4: luci.analysis.internal.clustering.Failure.tags:type_name -> luci.analysis.v1.StringPair 869 9, // 5: luci.analysis.internal.clustering.Failure.failure_reason:type_name -> luci.analysis.v1.FailureReason 870 10, // 6: luci.analysis.internal.clustering.Failure.bug_tracking_component:type_name -> luci.analysis.v1.BugTrackingComponent 871 6, // 7: luci.analysis.internal.clustering.Failure.start_time:type_name -> google.protobuf.Timestamp 872 11, // 8: luci.analysis.internal.clustering.Failure.duration:type_name -> google.protobuf.Duration 873 3, // 9: luci.analysis.internal.clustering.Failure.exonerations:type_name -> luci.analysis.internal.clustering.TestExoneration 874 4, // 10: luci.analysis.internal.clustering.Failure.presubmit_run:type_name -> luci.analysis.internal.clustering.PresubmitRun 875 12, // 11: luci.analysis.internal.clustering.Failure.build_status:type_name -> luci.analysis.v1.BuildStatus 876 13, // 12: luci.analysis.internal.clustering.Failure.changelists:type_name -> luci.analysis.v1.Changelist 877 14, // 13: luci.analysis.internal.clustering.Failure.sources:type_name -> luci.analysis.v1.Sources 878 2, // 14: luci.analysis.internal.clustering.Failure.test_variant_branch:type_name -> luci.analysis.internal.clustering.TestVariantBranch 879 15, // 15: luci.analysis.internal.clustering.TestExoneration.reason:type_name -> luci.analysis.v1.ExonerationReason 880 16, // 16: luci.analysis.internal.clustering.PresubmitRun.presubmit_run_id:type_name -> luci.analysis.v1.PresubmitRunId 881 17, // 17: luci.analysis.internal.clustering.PresubmitRun.mode:type_name -> luci.analysis.v1.PresubmitRunMode 882 18, // 18: luci.analysis.internal.clustering.PresubmitRun.status:type_name -> luci.analysis.v1.PresubmitRunStatus 883 19, // [19:19] is the sub-list for method output_type 884 19, // [19:19] is the sub-list for method input_type 885 19, // [19:19] is the sub-list for extension type_name 886 19, // [19:19] is the sub-list for extension extendee 887 0, // [0:19] is the sub-list for field type_name 888 } 889 890 func init() { file_go_chromium_org_luci_analysis_internal_clustering_proto_failure_proto_init() } 891 func file_go_chromium_org_luci_analysis_internal_clustering_proto_failure_proto_init() { 892 if File_go_chromium_org_luci_analysis_internal_clustering_proto_failure_proto != nil { 893 return 894 } 895 if !protoimpl.UnsafeEnabled { 896 file_go_chromium_org_luci_analysis_internal_clustering_proto_failure_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 897 switch v := v.(*Chunk); i { 898 case 0: 899 return &v.state 900 case 1: 901 return &v.sizeCache 902 case 2: 903 return &v.unknownFields 904 default: 905 return nil 906 } 907 } 908 file_go_chromium_org_luci_analysis_internal_clustering_proto_failure_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 909 switch v := v.(*Failure); i { 910 case 0: 911 return &v.state 912 case 1: 913 return &v.sizeCache 914 case 2: 915 return &v.unknownFields 916 default: 917 return nil 918 } 919 } 920 file_go_chromium_org_luci_analysis_internal_clustering_proto_failure_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 921 switch v := v.(*TestVariantBranch); i { 922 case 0: 923 return &v.state 924 case 1: 925 return &v.sizeCache 926 case 2: 927 return &v.unknownFields 928 default: 929 return nil 930 } 931 } 932 file_go_chromium_org_luci_analysis_internal_clustering_proto_failure_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 933 switch v := v.(*TestExoneration); i { 934 case 0: 935 return &v.state 936 case 1: 937 return &v.sizeCache 938 case 2: 939 return &v.unknownFields 940 default: 941 return nil 942 } 943 } 944 file_go_chromium_org_luci_analysis_internal_clustering_proto_failure_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 945 switch v := v.(*PresubmitRun); i { 946 case 0: 947 return &v.state 948 case 1: 949 return &v.sizeCache 950 case 2: 951 return &v.unknownFields 952 default: 953 return nil 954 } 955 } 956 } 957 file_go_chromium_org_luci_analysis_internal_clustering_proto_failure_proto_msgTypes[1].OneofWrappers = []interface{}{} 958 type x struct{} 959 out := protoimpl.TypeBuilder{ 960 File: protoimpl.DescBuilder{ 961 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 962 RawDescriptor: file_go_chromium_org_luci_analysis_internal_clustering_proto_failure_proto_rawDesc, 963 NumEnums: 0, 964 NumMessages: 5, 965 NumExtensions: 0, 966 NumServices: 0, 967 }, 968 GoTypes: file_go_chromium_org_luci_analysis_internal_clustering_proto_failure_proto_goTypes, 969 DependencyIndexes: file_go_chromium_org_luci_analysis_internal_clustering_proto_failure_proto_depIdxs, 970 MessageInfos: file_go_chromium_org_luci_analysis_internal_clustering_proto_failure_proto_msgTypes, 971 }.Build() 972 File_go_chromium_org_luci_analysis_internal_clustering_proto_failure_proto = out.File 973 file_go_chromium_org_luci_analysis_internal_clustering_proto_failure_proto_rawDesc = nil 974 file_go_chromium_org_luci_analysis_internal_clustering_proto_failure_proto_goTypes = nil 975 file_go_chromium_org_luci_analysis_internal_clustering_proto_failure_proto_depIdxs = nil 976 }