Skip to content
Snippets Groups Projects
Select Git revision
  • f24727f378efbe13fd546dac4fc4d87cd782db5e
  • main default protected
  • dependabot/go_modules/k8s.io/apimachinery-0.33.3
  • dependabot/go_modules/k8s.io/client-go-0.33.3
  • release-0.15
  • automated-updates-main
  • release-0.13
  • automated-updates-release-0.13
  • release-0.14
  • release-0.10
  • release-0.11
  • release-0.12
  • fix-versions-action
  • versions-fix
  • release-0.9
  • release-0.8
  • release-0.7
  • release-0.6
  • release-0.5
  • release-0.4
  • release-0.3
  • v0.15.0
  • v0.14.0
  • v0.13.0
  • v0.12.0
  • v0.11.0
  • v0.10.0
  • v0.9.0
  • v0.8.0
  • v0.7.0
  • v0.6.0
  • v0.5.0
  • v0.4.0
  • v0.3.0
  • v0.2.0
  • v0.1.0
36 results

developing-prometheus-rules-and-grafana-dashboards.md

Blame
  • validation.ts 16.99 KiB
    import is from '@sindresorhus/is';
    import { getLanguageList, getManagerList } from '../manager';
    import { configRegexPredicate, isConfigRegex, regEx } from '../util/regex';
    import * as template from '../util/template';
    import { hasValidSchedule, hasValidTimezone } from '../workers/branch/schedule';
    import { getOptions } from './definitions';
    import { resolveConfigPresets } from './presets';
    import type {
      RenovateConfig,
      RenovateOptions,
      ValidationMessage,
    } from './types';
    import * as managerValidator from './validation-helpers/managers';
    
    const options = getOptions();
    
    let optionTypes: Record<string, RenovateOptions['type']>;
    let optionParents: Record<string, RenovateOptions['parent']>;
    
    export interface ValidationResult {
      errors: ValidationMessage[];
      warnings: ValidationMessage[];
    }
    
    const managerList = getManagerList();
    
    function isManagerPath(parentPath: string): boolean {
      return (
        /^regexManagers\[[0-9]+]$/.test(parentPath) ||
        managerList.includes(parentPath)
      );
    }
    
    export function getParentName(parentPath: string): string {
      return parentPath
        ? parentPath
            .replace(/\.?encrypted$/, '')
            .replace(/\[\d+\]$/, '')
            .split('.')
            .pop()
        : '.';
    }
    
    const topLevelObjects = getLanguageList().concat(getManagerList());
    
    export async function validateConfig(
      config: RenovateConfig,
      isPreset?: boolean,
      parentPath?: string
    ): Promise<ValidationResult> {
      if (!optionTypes) {
        optionTypes = {};
        options.forEach((option) => {
          optionTypes[option.name] = option.type;
        });
      }
      if (!optionParents) {
        optionParents = {};
        options.forEach((option) => {
          if (option.parent) {
            optionParents[option.name] = option.parent;
          }
        });
      }
      let errors: ValidationMessage[] = [];
      let warnings: ValidationMessage[] = [];
    
      function getDeprecationMessage(option: string): string {
        const deprecatedOptions = {
          branchName: `Direct editing of branchName is now deprecated. Please edit branchPrefix, additionalBranchPrefix, or branchTopic instead`,