Skip to content
Snippets Groups Projects
Select Git revision
  • aa7819c58451581f3fe7013d8f5b8aca41f7a55e
  • master default protected
  • v1.15.0
  • v1.14.0
  • v1.13.0
  • v1.12.0
  • v1.11.0
  • v1.10.0
  • v1.9.0
  • v1.8.0
  • v1.7.0
  • v1.6.0
  • v1.5.0
  • v1.4.1
  • v1.4.0
  • v1.3.1
  • v1.3.0
  • v1.2.1
  • v1.2.0
  • v1.1.0
  • v1.0.1
  • v1.0.0
22 results

go.mod

Blame
  • This project manages its dependencies using Go Modules. Learn more
    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 };
    }