Skip to content
Snippets Groups Projects
Select Git revision
  • 70dc1c4292c4f431d781d1e1bcbf66fec93f9ed1
  • master default
2 results

extract.js

Blame
  • extract.js 1.01 KiB
    const { getDep } = require('../dockerfile/extract');
    
    module.exports = {
      extractPackageFile,
    };
    
    function extractPackageFile(content) {
      logger.trace('kubernetes.extractPackageFile()');
      let deps = [];
      let lineNumber = 0;
    
      const isKubernetesManifest =
        content.match(/\s*apiVersion\s*:/) && content.match(/\s*kind\s*:/);
      if (!isKubernetesManifest) {
        return null;
      }
    
      for (const line of content.split('\n')) {
        const match = line.match(/^\s*-?\s*image:\s*'?"?([^\s'"]+)'?"?\s*$/);
        if (match) {
          const currentFrom = match[1];
          const dep = getDep(currentFrom);
          logger.debug(
            {
              depName: dep.depName,
              currentValue: dep.currentValue,
              currentDigest: dep.currentDigest,
            },
            'Kubernetes image'
          );
          dep.lineNumber = lineNumber;
          deps.push(dep);
        }
        lineNumber += 1;
      }
      deps = deps.filter(
        dep => !(dep.currentValue && dep.currentValue.includes('${'))
      );
      if (!deps.length) {
        return null;
      }
      return { deps };
    }