go.chromium.org/luci@v0.0.0-20240309015107-7cdc2e660f33/bisection/proto/v1/nthsection.proto (about) 1 // Copyright 2023 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 syntax = "proto3"; 16 17 package luci.bisection.v1; 18 19 import "google/protobuf/timestamp.proto"; 20 import "go.chromium.org/luci/bisection/proto/v1/common.proto"; 21 import "go.chromium.org/luci/buildbucket/proto/common.proto"; 22 23 option go_package = "go.chromium.org/luci/bisection/proto/v1;bisectionpb"; 24 25 message NthSectionAnalysisResult { 26 // The status of the nth-section analysis. 27 luci.bisection.v1.AnalysisStatus status = 1; 28 // Timestamp for the start time of the nth-section analysis. 29 google.protobuf.Timestamp start_time = 2; 30 // Timestamp for the last updated time of the nth-section analysis. 31 google.protobuf.Timestamp last_updated_time = 3; 32 // Timestamp for the end time of the nth-section analysis. 33 google.protobuf.Timestamp end_time = 4; 34 // Optional, when status = FOUND. Whether the culprit has been verified. 35 bool verified = 5; 36 // Optional, when status = RUNNING. This is the possible commit range of the 37 // culprit. This will be updated as the nth-section progress. 38 RegressionRange remaining_nth_section_range = 6; 39 // Optional, when status = ERROR. The error message. 40 string error_message = 7; 41 // List of the reruns that have been run so far for the nth-section analysis. 42 // This is useful to analyse the nth-section progress. 43 // The runs are sorted by the start timestamp. 44 repeated luci.bisection.v1.SingleRerun reruns = 8; 45 // The blame list of commits to run the nth-section analysis on. 46 // The commits are sorted by recency, with the most recent commit first. 47 BlameList blameList = 9; 48 // Optional, when nth-section has found a suspect. 49 NthSectionSuspect suspect = 10; 50 } 51 52 message BlameList { 53 // The commits in the blame list. 54 repeated BlameListSingleCommit commits = 1; 55 // The last pass commit. 56 // It is the commit right before the least recent commit in the blamelist. 57 BlameListSingleCommit last_pass_commit = 2; 58 } 59 60 message BlameListSingleCommit { 61 // The commit ID. 62 string commit = 1; 63 // Review URL for the commit. 64 string reviewUrl = 2; 65 // Title of the review for the commit. 66 string reviewTitle = 3; 67 // Commit position of this commit. 68 // This field is currently only set for test failure analysis blamelist. 69 int64 position = 4; 70 // Commit time of this commit. 71 google.protobuf.Timestamp commit_time = 5; 72 } 73 74 message NthSectionSuspect { 75 // A suspect revision of nth-section analysis. 76 // Deprecating: use commit instead. 77 // TODO(beining@): remove this field when frontend switch to use commit field. 78 buildbucket.v2.GitilesCommit gitiles_commit = 1; 79 // Review URL for the commit. 80 string reviewUrl = 2; 81 // Title of the review for the commit. 82 string reviewTitle = 3; 83 // The details of suspect verification for the suspect. 84 luci.bisection.v1.SuspectVerificationDetails verification_details = 4; 85 // A suspect revision of nth-section analysis. 86 buildbucket.v2.GitilesCommit commit = 5; 87 } 88 89 message RegressionRange { 90 // The commit that is the latest known to pass. 91 buildbucket.v2.GitilesCommit last_passed = 1; 92 // The commit that is the earliest known to fail. 93 buildbucket.v2.GitilesCommit first_failed = 2; 94 // How many revisions between last passed (exclusively) and first failed 95 // (inclusively). 96 int32 number_of_revisions = 3; 97 }