package errors // ErrorCode — тип для кода ошибки. type ErrorCode string const ( ErrEmptyFile ErrorCode = "EMPTY_FILE" // файл пуст или отсутствует ErrYamlSyntax ErrorCode = "YAML_SYNTAX_ERROR" // ошибка синтаксического анализа YAML ErrJobNameBlank ErrorCode = "JOB_NAME_BLANK" // имя задачи пустое ErrJobNameTooLong ErrorCode = "JOB_NAME_TOO_LONG" ErrMissingScript ErrorCode = "MISSING_SCRIPT" // отсутствует обязательное поле script (или run) ErrBothScriptAndRun ErrorCode = "BOTH_SCRIPT_RUN" // одновременно присутствуют script и run ErrJobStageNotExist ErrorCode = "JOB_STAGE_NOT_EXIST" // указан stage, которого нет в списке разрешённых ErrUndefinedDependency ErrorCode = "UNDEFINED_DEPENDENCY" // зависимость не определена в списке job'ов ErrInvalidStageOrder ErrorCode = "INVALID_STAGE_ORDER" // зависимость имеет stage, который идёт позже, чем у задачи ErrDuplicateNeeds ErrorCode = "DUPLICATE_NEEDS" // дублирующиеся записи в needs ErrUndefinedNeed ErrorCode = "UNDEFINED_NEED" // need ссылается на несуществующую задачу ErrNeedNameTooLong ErrorCode = "NEED_NAME_TOO_LONG" // имя need превышает допустимую длину ErrNoVisibleJob ErrorCode = "NO_VISIBLE_JOB" // нет ни одной видимой задачи ErrMissingJobs ErrorCode = "MISSING_JOBS" ErrArtifactsPathsBlank ErrorCode = "ARTIFACTS_PATHS_BLANK" // отсутствует или пустой блок paths в artifacts ErrUnknownRootKey ErrorCode = "UNKNOWN_ROOT_KEY" ErrInvalidWhen ErrorCode = "INVALID_WHEN" ErrInvalidOnly ErrorCode = "INVALID_ONLY" ErrUnknownKey ErrorCode = "UNKNOWN_KEY" ErrMissingStage ErrorCode = "MISSING_STAGE" ErrInvalidChanges ErrorCode = "INVALID_CHANGES" ErrInvalidRulesFormat ErrorCode = "INVALID_RULES_FORMAT" // Changes ErrChangesNotArrayOfStrings ErrorCode = "CHANGES_NOT_ARRAY_OF_STRINGS" ErrChangesInvalidType ErrorCode = "CHANGES_INVALID_TYPE" ErrChangesTooManyEntries ErrorCode = "CHANGES_TOO_MANY_ENTRIES" ErrChangesMissingPaths ErrorCode = "CHANGES_MISSING_PATHS" // Paths ErrPathsNotArrayOfStrings ErrorCode = "PATHS_NOT_ARRAY_OF_STRINGS" // Job delayed parameters ErrStartInMissing ErrorCode = "START_IN_MISSING" ErrStartInInvalid ErrorCode = "START_IN_INVALID" ErrStartInTooLong ErrorCode = "START_IN_TOO_LONG" ErrStartInMustBeBlank ErrorCode = "START_IN_MUST_BE_BLANK" // Dependencies / Needs consistency ErrDependencyNotInNeeds ErrorCode = "DEPENDENCY_NOT_IN_NEEDS" // Rules validation ErrRulesOnlyExcept ErrorCode = "RULES_ONLY_EXCEPT" ErrRulesOnly ErrorCode = "RULES_ONLY" ErrRulesExcept ErrorCode = "RULES_EXCEPT" ErrInvalidExpressionSyntax ErrorCode = "INVALID_EXPRESSION_SYNTAX" ErrUnknownRulesKey ErrorCode = "UNKNOWN_RULES_KEY" ErrBeforeScriptInvalid ErrorCode = "BEFORE_SCRIPT_INVALID" ErrServiceInvalid ErrorCode = "SERVICE_INVALID" ErrStageInvalid ErrorCode = "STAGE_INVALID" ErrVariableInvalid ErrorCode = "VARIABLE_INVALID" ErrVariableNameTooLong ErrorCode = "VARIABLE_NAME_TOO_LONG" ErrInvalidStagesOrder ErrorCode = "INVALID_STAGES_ORDER" ErrVariablesInvalid ErrorCode = "VARIABLES_INVALID" ErrVariablesInvalidKey ErrorCode = "VARIABLES_INVALID_KEY" ErrCyclicDependency ErrorCode = "CYCLIC_DEPENDENCY" // обнаружена циклическая зависимость ErrBooleanValue ErrorCode = "BOOLEAN_VALUE" // значение должно быть булевым ErrIncludeRulesInvalid ErrorCode = "INCLUDE_RULES_INVALID" // значение exists или changes не является строкой или массивом строк ) // ErrorSeverity maps each error code to a severity level. var ErrorSeverity = map[ErrorCode]SeverityLevel{ // Critical errors ErrEmptyFile: Critical, ErrYamlSyntax: Critical, ErrMissingJobs: Critical, ErrJobNameBlank: Critical, ErrMissingScript: Critical, ErrBothScriptAndRun: Critical, ErrMissingStage: Critical, ErrJobStageNotExist: Critical, ErrUndefinedDependency: Critical, ErrInvalidStageOrder: Critical, ErrUndefinedNeed: Critical, ErrCyclicDependency: Critical, ErrStartInMissing: Critical, ErrStartInInvalid: Critical, ErrStartInTooLong: Critical, ErrStartInMustBeBlank: Critical, ErrVariableInvalid: Critical, ErrVariablesInvalid: Critical, ErrVariablesInvalidKey: Critical, ErrServiceInvalid: Critical, ErrBeforeScriptInvalid: Critical, ErrChangesNotArrayOfStrings: Critical, ErrChangesInvalidType: Critical, ErrChangesTooManyEntries: Critical, ErrChangesMissingPaths: Critical, ErrPathsNotArrayOfStrings: Critical, // Warnings ErrDuplicateNeeds: Warning, ErrNoVisibleJob: Warning, ErrUnknownRootKey: Warning, ErrUnknownKey: Warning, ErrInvalidWhen: Warning, ErrInvalidOnly: Warning, ErrInvalidRulesFormat: Warning, ErrRulesOnlyExcept: Warning, ErrRulesOnly: Warning, ErrRulesExcept: Warning, ErrInvalidExpressionSyntax: Warning, ErrUnknownRulesKey: Warning, // Notes (if needed, add informational codes here) ErrJobNameTooLong: Note, ErrVariableNameTooLong: Note, ErrNeedNameTooLong: Critical, }