Skip to content
Snippets Groups Projects
Select Git revision
  • e8e220b8cf5e0946efc1ab8f0bdf959f9b04486d
  • master default protected
  • gh-pages
  • dependabot/npm_and_yarn/neostandard-0.12.2
  • dependabot/npm_and_yarn/eslint-plugin-import-2.32.0
  • dependabot/npm_and_yarn/typescript-eslint/parser-8.36.0
  • 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-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

dangerfile.js

Blame
  • utils.ts 1.25 KiB
    import { regEx } from '../../../util/regex';
    import { getDep } from '../dockerfile/extract';
    import type { PackageDependency } from '../types';
    
    const re = /!reference \[[^\]]+\]/g;
    
    /**
     * Replaces GitLab reference tags before parsing, because our yaml parser cannot process them anyway.
     * @param content pipeline yaml
     * @returns replaced pipeline content
     * https://docs.gitlab.com/ee/ci/yaml/#reference-tags
     */
    export function replaceReferenceTags(content: string): string {
      const res = content.replace(re, '');
      return res;
    }
    
    const depProxyRe = regEx(
      `(?<prefix>\\$\\{?CI_DEPENDENCY_PROXY_(?:DIRECT_)?GROUP_IMAGE_PREFIX\\}?/)(?<depName>.+)`
    );
    
    /**
     * Get image dependencies respecting Gitlab Dependency Proxy
     * @param imageName as used in .gitlab-ci.yml file
     * @return package dependency for the image
     */
    export function getGitlabDep(
      imageName: string,
      registryAliases?: Record<string, string>
    ): PackageDependency {
      const match = depProxyRe.exec(imageName);
      if (match?.groups) {
        const dep = { ...getDep(match.groups.depName), replaceString: imageName };
        // TODO: types (#22198)
        dep.autoReplaceStringTemplate = `${match.groups.prefix}${dep.autoReplaceStringTemplate}`;
        return dep;
      }
      return getDep(imageName, true, registryAliases);
    }