Skip to content
Snippets Groups Projects
Select Git revision
  • 00bf898cd77612340655c9729ea66bb1da964012
  • main default protected
  • viceice-patch-1
  • renovate/main-ghcr.io-renovatebot-base-image-11.x
  • renovate/main-vitest-eslint-plugin-1.x
  • renovate/main-linters
  • renovate/main-sindresorhus-is-7.x
  • renovate/main-docs-renovate-renovate-41.x
  • renovate/main-renovatebot-detect-tools-1.x
  • refactor/pin-new-value
  • fix/user-agent
  • feat/37517-base64-private-key
  • next
  • feat/gnupg
  • fix/36615b-branch-reuse-no-cache
  • chore/punycode
  • feat/36219--git-x509-signing
  • feat/structured-logger
  • hotfix/39.264.1
  • feat/skip-dangling
  • gh-readonly-queue/next/pr-36034-7a061c4ca1024a19e2c295d773d9642625d1c2be
  • 41.125.2
  • 41.125.1
  • 41.125.0
  • 41.124.1
  • 41.124.0
  • 41.123.0
  • 41.122.3
  • 41.122.2
  • 41.122.1
  • 41.122.0
  • 41.121.4
  • 41.121.3
  • 41.121.2
  • 41.121.1
  • 41.121.0
  • 41.120.0
  • 41.119.6
  • 41.119.5
  • 41.119.4
  • 41.119.3
41 results

flatten.spec.ts

Blame
  • status-checks.ts 2.04 KiB
    import { RenovateConfig } from '../../config';
    import { logger } from '../../logger';
    import { platform } from '../../platform';
    import { BranchStatus } from '../../types';
    
    async function setStatusCheck(
      branchName: string,
      context: string,
      description: string,
      state: BranchStatus,
      url: string
    ): Promise<void> {
      const existingState = await platform.getBranchStatusCheck(
        branchName,
        context
      );
      // Check if state needs setting
      if (existingState === state) {
        logger.debug(`Status check ${context} is already up-to-date`);
      } else {
        logger.debug(`Updating ${context} status check state to ${state}`);
        await platform.setBranchStatus({
          branchName,
          context,
          description,
          state,
          url,
        });
      }
    }
    
    export type StabilityConfig = RenovateConfig & {
      stabilityStatus?: BranchStatus;
      branchName: string;
    };
    
    export async function setStability(config: StabilityConfig): Promise<void> {
      if (!config.stabilityStatus) {
        return;
      }
      const context = `renovate/stability-days`;
      const description =
        config.stabilityStatus === BranchStatus.green
          ? 'Updates have met stability days requirement'
          : 'Updates have not met stability days requirement';
      await setStatusCheck(
        config.branchName,
        context,
        description,
        config.stabilityStatus,
        config.productLinks.documentation
      );
    }
    
    export type UnpublishableConfig = RenovateConfig & {
      unpublishSafe?: boolean;
      canBeUnpublished?: boolean;
      branchName: string;
    };
    
    export async function setUnpublishable(
      config: UnpublishableConfig
    ): Promise<void> {
      if (!config.unpublishSafe) {
        return;
      }
      const context = `renovate/unpublish-safe`;
      // Set canBeUnpublished status check
      const state = config.canBeUnpublished
        ? BranchStatus.yellow
        : BranchStatus.green;
      const description = config.canBeUnpublished
        ? 'Packages < 24 hours old can be unpublished'
        : 'Packages cannot be unpublished';
      await setStatusCheck(
        config.branchName,
        context,
        description,
        state,
        config.productLinks.docs
      );
    }