Skip to content
Snippets Groups Projects
Select Git revision
  • 1968f6ea243a6662c469a734b3ba4b0fff287fc4
  • master default protected
  • gh-pages
  • dependabot/npm_and_yarn/eslint-plugin-jsdoc-51.0.3
  • dependabot/npm_and_yarn/nock-14.0.5
  • dependabot/npm_and_yarn/react-19.1.0
  • dependabot/npm_and_yarn/react-dom-19.1.0
  • server-2025-02-01-6100669a
  • server-2024-11-01-87cba042
  • server-2024-10-01-6875b7c8
  • dependabot/npm_and_yarn/path-to-regexp-8.2.0
  • server-2024-09-01-3d52575c
  • daily-tests-gha2
  • daily-tests-gha
  • server-2023-12-01-92d8fb8e
  • server-2023-11-01-a80c93fd
  • server-2023-10-01-31096085
  • coc-v2
  • server-2023-09-01-8edc3810
  • server-2023-08-01-75858a03
  • server-2023-07-01-02183d8d
  • server-2025-07-01
  • 5.0.2
  • 5.0.1
  • 5.0.0
  • server-2025-06-01
  • server-2025-05-01
  • server-2025-04-03
  • server-2025-03-02
  • server-2025-03-01
  • server-2025-02-02
  • server-2025-01-01
  • server-2024-12-01
  • server-2024-11-02
  • 4.1.0
  • server-2024-09-25
  • server-2024-09-02
  • server-2024-08-01
  • server-2024-07-01
  • 4.0.0
  • server-2024-06-01
41 results

module-core_service-test-runner_create-service-tester.html

Blame
  • error-config.ts 3.17 KiB
    // TODO #22198
    import { GlobalConfig } from '../../config/global';
    import type { RenovateConfig } from '../../config/types';
    import { logger } from '../../logger';
    import { Pr, platform } from '../../modules/platform';
    
    export function raiseConfigWarningIssue(
      config: RenovateConfig,
      error: Error
    ): Promise<void> {
      logger.debug('raiseConfigWarningIssue()');
      const title = `Action Required: Fix Renovate Configuration`;
      const body = `There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.\n\n`;
      const notificationName = 'configErrorIssue';
      return raiseWarningIssue(config, notificationName, title, body, error);
    }
    
    export function raiseCredentialsWarningIssue(
      config: RenovateConfig,
      error: Error
    ): Promise<void> {
      logger.debug('raiseCredentialsWarningIssue()');
      const title = `Action Required: Add missing credentials`;
      const body = `There are missing credentials for the authentication-required feature. As a precaution, Renovate will pause PRs until it is resolved.\n\n`;
      const notificationName = 'missingCredentialsError';
      return raiseWarningIssue(config, notificationName, title, body, error);
    }
    
    async function raiseWarningIssue(
      config: RenovateConfig,
      notificationName: string,
      title: string,
      initialBody: string,
      error: Error
    ): Promise<void> {
      let body = initialBody;
      if (error.validationSource) {
        body += `Location: \`${error.validationSource}\`\n`;
      }
      if (error.validationError) {
        body += `Error type: ${error.validationError}\n`;
      }
      if (error.validationMessage) {
        body += `Message: ${error.validationMessage}\n`;
      }
    
      const pr = await platform.getBranchPr(
        config.onboardingBranch!,
        config.baseBranch
      );
      if (pr?.state === 'open') {
        await handleOnboardingPr(pr, body);
        return;
      }
    
      if (GlobalConfig.get('dryRun')) {
        logger.info(
          { configError: error },
          'DRY-RUN: Would ensure configuration error issue'
        );
        return;
      }
    
      if (config.suppressNotifications?.includes(notificationName)) {
        logger.info(
          { notificationName },
          'Configuration failure, issues will be suppressed'
        );
        return;
      }
    
      const res = await platform.ensureIssue({
        title,
        body,
        once: false,
        shouldReOpen: config.configWarningReuseIssue,
        confidential: config.confidential,
      });
      if (res === 'created') {
        logger.warn({ configError: error, res }, 'Configuration Warning');
      }
    }
    
    async function handleOnboardingPr(pr: Pr, issueMessage: string): Promise<void> {
      logger.debug('Updating onboarding PR with config error notice');
      if (GlobalConfig.get('dryRun')) {
        logger.info(`DRY-RUN: Would update PR #${pr.number}`);
        return;
      }
    
      let prBody = `## Action Required: Fix Renovate Configuration\n\n${issueMessage}`;
      prBody += `\n\nOnce you have resolved this problem (in this onboarding branch), Renovate will return to providing you with a preview of your repository's configuration.`;
    
      try {
        await platform.updatePr({
          number: pr.number,
          prTitle: pr.title,
          prBody,
        });
      } catch (err) /* istanbul ignore next */ {
        logger.warn({ err }, 'Error updating onboarding PR');
      }
    }