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  }