go.chromium.org/luci@v0.0.0-20240309015107-7cdc2e660f33/bisection/proto/v1/culprits.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 Culprit {
    26    // The gitiles commit for the culprit.
    27    buildbucket.v2.GitilesCommit commit = 1;
    28    // The review URL for the culprit.
    29    string review_url = 2;
    30    // The review title for the culprit.
    31    string review_title = 3;
    32    // Actions we have taken with the culprit.
    33    // More than one action may be taken, for example, reverting the culprit and
    34    // commenting on the bug.
    35    repeated CulpritAction culprit_action = 4;
    36    // The details of suspect verification for the culprit.
    37    luci.bisection.v1.SuspectVerificationDetails verification_details = 5;
    38  }
    39  
    40  enum CulpritActionType {
    41    CULPRIT_ACTION_TYPE_UNSPECIFIED = 0;
    42    // No action has been taken with the culprit.
    43    NO_ACTION = 1;
    44    // The culprit was auto-reverted by LUCI Bisection.
    45    CULPRIT_AUTO_REVERTED = 2;
    46    // The revert CL for the culprit was created.
    47    // Maybe waiting for a human to review or for the verification process
    48    // to finish.
    49    REVERT_CL_CREATED = 3;
    50    // LUCI Bisection commented on the culprit CL.
    51    CULPRIT_CL_COMMENTED = 4;
    52    // LUCI Bisection commented on the bug for the failure.
    53    BUG_COMMENTED = 5;
    54    // LUCI Bisection commented on an existing revert CL for the culprit CL.
    55    EXISTING_REVERT_CL_COMMENTED = 6;
    56  }
    57  
    58  // CulpritInactionReason encapsulates common reasons for why culprits found by
    59  // LUCI Bisection may not have resulted in any perceivable actions.
    60  enum CulpritInactionReason {
    61    CULPRIT_INACTION_REASON_UNSPECIFIED = 0;
    62    // The culprit has been reverted by LUCI Bisection.
    63    REVERTED_BY_BISECTION = 1;
    64    // The culprit has been reverted, but not by LUCI Bisection.
    65    REVERTED_MANUALLY = 2;
    66    // The culprit has an existing revert, yet to be merged, created by
    67    // LUCI Bisection.
    68    REVERT_OWNED_BY_BISECTION = 3;
    69    // The culprit's existing revert already has a comment from LUCI Bisection.
    70    REVERT_HAS_COMMENT = 4;
    71    // The culprit already has a comment from LUCI Bisection.
    72    CULPRIT_HAS_COMMENT = 5;
    73    // The analysis that resulted in the culprit has been canceled.
    74    ANALYSIS_CANCELED = 6;
    75    // Culprit actions have been disabled via configs.
    76    ACTIONS_DISABLED = 7;
    77    // The test being analysed is no longer having unexpected status.
    78    TEST_NO_LONGER_UNEXPECTED = 8;
    79  }
    80  
    81  // An action that LUCI Bisection has taken with the culprit.
    82  message CulpritAction {
    83    CulpritActionType action_type = 1;
    84    // URL to the revert CL for the culprit.
    85    string revert_cl_url = 2;
    86    // URL to the bug, if action_type = BUG_COMMENTED.
    87    string bug_url = 3;
    88    // Timestamp of when the culprit action was executed.
    89    google.protobuf.Timestamp action_time = 4;
    90    // Optional reason for why no action was taken with the culprit, if
    91    // action_type = NO_ACTION.
    92    CulpritInactionReason inaction_reason = 5;
    93  }