Select Git revision
host-rules.spec.ts
extract.ts 1.01 KiB
import { logger } from '../../logger';
import { PackageDependency, PackageFile } from '../common';
import { getDep } from '../dockerfile/extract';
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 };
}