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 }