Skip to content
Snippets Groups Projects
Select Git revision
  • 04226fe92cc11bed68dae464eb60fd5399daf3b1
  • master default protected
  • dwmcallister-patch-1
  • 520-fix-wsl
  • tune-worker-processes
  • alpine-nginxorg
  • 1.29.1
  • 1.29.0
  • 1.28.0
  • 1.27.5
  • 1.27.3
  • 1.27.2
  • 1.27.0
  • 1.26.1
  • 1.26.0
  • 1.25.5
  • 1.25.4
  • 1.25.3
  • 1.25.2
  • 1.25.1
  • 1.25.0
  • 1.24.0
  • 1.23.3
  • 1.23.4
  • 1.23.2
  • 1.22.1
26 results

Dockerfile

Blame
  • extract.ts 1.01 KiB
    import { logger } from '../../logger';
    import { getDep } from '../dockerfile/extract';
    import type { PackageDependency, PackageFile } from '../types';
    
    export function extractPackageFile(content: string): PackageFile | null {
      logger.trace('kubernetes.extractPackageFile()');
      let deps: PackageDependency[] = [];
    
      const isKubernetesManifest =
        /\s*apiVersion\s*:/.test(content) && /\s*kind\s*:/.test(content);
      if (!isKubernetesManifest) {
        return null;
      }
    
      for (const line of content.split('\n')) {
        const match = /^\s*-?\s*image:\s*'?"?([^\s'"]+)'?"?\s*$/.exec(line);
        if (match) {
          const currentFrom = match[1];
          const dep = getDep(currentFrom);
          logger.debug(
            {
              depName: dep.depName,
              currentValue: dep.currentValue,
              currentDigest: dep.currentDigest,
            },
            'Kubernetes image'
          );
          deps.push(dep);
        }
      }
      deps = deps.filter((dep) => !dep.currentValue?.includes('${'));
      if (!deps.length) {
        return null;
      }
      return { deps };
    }