blob: 063c5c1f63be4e1544bc4569ce3a7f675ed3063b [file] [log] [blame]
// Copyright (C) 2024 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package com.google.gerrit.server.git.receive;
import com.google.auto.value.AutoValue;
@AutoValue
public abstract class RejectionReason {
public enum MetricBucket {
ACCOUNT_NOT_FOUND,
CANNOT_ADD_PATCH_SET,
CANNOT_COMBINE_NORMAL_AND_MAGIC_PUSHES,
CANNOT_CREATE_REF_BECAUSE_IT_ALREADY_EXISTS,
CANNOT_DELETE_CHANGES,
CANNOT_DELETE_PROJECT_CONFIGURATION,
CANNOT_EDIT_NEW_CHANGE,
CANNOT_PUSH_MERGE_WITH_NEW_CHANGE_FOR_ALL_NOT_IN_TARGET,
CANNOT_SKIP_VALIDATION_FOR_MAGIC_PUSH,
CANNOT_TOGGLE_WIP,
CHANGE_IS_CLOSED,
CHANGE_NOT_FOUND,
CLIENT_ERROR,
COMMIT_ALREADY_EXISTS_IN_CHANGE,
COMMIT_ALREADY_EXISTS_IN_PROJECT,
CONFLICT,
BANNED_COMMIT,
BRANCH_NOT_FOUND,
DUPLICATE_CHANGE,
DUPLICATE_CHANGE_ID,
DUPLICATE_REQUEST,
HELP_REQUESTED,
IMPLICIT_MERGE,
INTERNAL_SERVER_ERROR,
INVALID_BASE,
INVALID_BRANCH_SYNTAX,
INVALID_CHANGE_ID,
INVALID_DEADLINE,
INVALID_HEAD,
INVALID_OPTION,
INVALID_PROJECT_CONFIGURATION_UPDATE,
INVALID_REF,
MISSING_REVISION,
NO_COMMON_ANCESTRY,
NO_NEW_CHANGES,
NOT_A_COMMIT,
NOT_MERGED_INTO_BRANCH,
NOTEDB_UPDATE_WITHOUT_ACCESS_DATABASE_PERMISSION,
NOTEDB_UPDATE_WITHOUT_ALLOW_OPTION,
PATCH_SET_LOCKED,
PROHIBITED,
PROJECT_CONFIG_UPDATE_NOT_ALLOWED,
PROJECT_NOT_WRITABLE,
REF_NOT_FOUND,
REJECTED_BY_VALIDATOR,
REQUEST_CANCELLED,
SIGNED_OFF_BY_REQUIRED,
SUBMIT_ERROR,
TOPIC_TOO_LARGE,
TOO_MANY_CHANGES,
TOO_MANY_COMMITS,
UNKNOWN_COMMAND_TYPE;
}
static RejectionReason create(MetricBucket metricBucket, String why) {
return new AutoValue_RejectionReason(metricBucket, why);
}
public abstract MetricBucket metricBucket();
public abstract String why();
}