renovate 40.18.1 → 40.18.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -145,7 +145,7 @@ function resolveResourceManifest(manifest, helmRepositories, registryAliases) {
|
|
145
145
|
deps.push(dep);
|
146
146
|
}
|
147
147
|
else {
|
148
|
-
logger_1.logger.debug(
|
148
|
+
logger_1.logger.debug(`invalid or incomplete ${resource.metadata.name} HelmRelease spec, skipping`);
|
149
149
|
}
|
150
150
|
if (resource.spec.values) {
|
151
151
|
logger_1.logger.trace('detecting dependencies in HelmRelease values');
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/flux/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { logger } from '../../../logger';\nimport { coerceArray } from '../../../util/array';\nimport { readLocalFile } from '../../../util/fs';\nimport { regEx } from '../../../util/regex';\nimport { isHttpUrl } from '../../../util/url';\nimport { parseYaml } from '../../../util/yaml';\nimport { BitbucketTagsDatasource } from '../../datasource/bitbucket-tags';\nimport { DockerDatasource } from '../../datasource/docker';\nimport { GitRefsDatasource } from '../../datasource/git-refs';\nimport { GitTagsDatasource } from '../../datasource/git-tags';\nimport { GithubReleasesDatasource } from '../../datasource/github-releases';\nimport { GithubTagsDatasource } from '../../datasource/github-tags';\nimport { GitlabTagsDatasource } from '../../datasource/gitlab-tags';\nimport { HelmDatasource } from '../../datasource/helm';\nimport { getDep } from '../dockerfile/extract';\nimport { findDependencies } from '../helm-values/extract';\nimport { isOCIRegistry, removeOCIPrefix } from '../helmv3/oci';\nimport { extractImage } from '../kustomize/extract';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFile,\n PackageFileContent,\n} from '../types';\nimport {\n collectHelmRepos,\n isSystemManifest,\n systemManifestHeaderRegex,\n} from './common';\nimport { FluxResource, type HelmRepository } from './schema';\nimport type {\n FluxManagerData,\n FluxManifest,\n ResourceFluxManifest,\n SystemFluxManifest,\n} from './types';\n\nfunction readManifest(\n content: string,\n packageFile: string,\n): FluxManifest | null {\n if (isSystemManifest(packageFile)) {\n const versionMatch = regEx(systemManifestHeaderRegex).exec(content);\n if (!versionMatch) {\n return null;\n }\n return {\n kind: 'system',\n file: packageFile,\n version: versionMatch[1],\n components: versionMatch[2],\n };\n }\n\n return {\n kind: 'resource',\n file: packageFile,\n resources: parseYaml(content, {\n customSchema: FluxResource,\n failureBehaviour: 'filter',\n }),\n };\n}\n\nconst githubUrlRegex = regEx(\n /^(?:https:\\/\\/|git@)github\\.com[/:](?<packageName>[^/]+\\/[^/]+?)(?:\\.git)?$/,\n);\nconst gitlabUrlRegex = regEx(\n /^(?:https:\\/\\/|git@)gitlab\\.com[/:](?<packageName>[^/]+\\/[^/]+?)(?:\\.git)?$/,\n);\nconst bitbucketUrlRegex = regEx(\n /^(?:https:\\/\\/|git@)bitbucket\\.org[/:](?<packageName>[^/]+\\/[^/]+?)(?:\\.git)?$/,\n);\n\nfunction resolveGitRepositoryPerSourceTag(\n dep: PackageDependency,\n gitUrl: string,\n): void {\n const githubMatchGroups = githubUrlRegex.exec(gitUrl)?.groups;\n if (githubMatchGroups) {\n dep.datasource = GithubTagsDatasource.id;\n dep.packageName = githubMatchGroups.packageName;\n dep.sourceUrl = `https://github.com/${dep.packageName}`;\n return;\n }\n\n const gitlabMatchGroups = gitlabUrlRegex.exec(gitUrl)?.groups;\n if (gitlabMatchGroups) {\n dep.datasource = GitlabTagsDatasource.id;\n dep.packageName = gitlabMatchGroups.packageName;\n dep.sourceUrl = `https://gitlab.com/${dep.packageName}`;\n return;\n }\n\n const bitbucketMatchGroups = bitbucketUrlRegex.exec(gitUrl)?.groups;\n if (bitbucketMatchGroups) {\n dep.datasource = BitbucketTagsDatasource.id;\n dep.packageName = bitbucketMatchGroups.packageName;\n dep.sourceUrl = `https://bitbucket.org/${dep.packageName}`;\n return;\n }\n\n dep.datasource = GitTagsDatasource.id;\n dep.packageName = gitUrl;\n if (isHttpUrl(gitUrl)) {\n dep.sourceUrl = gitUrl.replace(/\\.git$/, '');\n }\n}\n\nfunction resolveHelmRepository(\n dep: PackageDependency,\n matchingRepositories: HelmRepository[],\n registryAliases: Record<string, string> | undefined,\n): void {\n if (matchingRepositories.length) {\n dep.registryUrls = matchingRepositories\n .map((repo) => {\n if (repo.spec.type === 'oci' || isOCIRegistry(repo.spec.url)) {\n // Change datasource to Docker\n dep.datasource = DockerDatasource.id;\n // Ensure the URL is a valid OCI path\n dep.packageName = getDep(\n `${removeOCIPrefix(repo.spec.url)}/${dep.depName}`,\n false,\n registryAliases,\n ).packageName;\n return null;\n } else {\n return repo.spec.url;\n }\n })\n .filter(is.string);\n\n // if registryUrls is empty, delete it from dep\n if (!dep.registryUrls?.length) {\n delete dep.registryUrls;\n }\n } else {\n dep.skipReason = 'unknown-registry';\n }\n}\n\nfunction resolveSystemManifest(\n manifest: SystemFluxManifest,\n): PackageDependency<FluxManagerData>[] {\n return [\n {\n depName: 'fluxcd/flux2',\n datasource: GithubReleasesDatasource.id,\n currentValue: manifest.version,\n managerData: {\n components: manifest.components,\n },\n },\n ];\n}\n\nfunction resolveResourceManifest(\n manifest: ResourceFluxManifest,\n helmRepositories: HelmRepository[],\n registryAliases: Record<string, string> | undefined,\n): PackageDependency[] {\n const deps: PackageDependency[] = [];\n for (const resource of manifest.resources) {\n switch (resource.kind) {\n case 'HelmRelease': {\n if (resource.spec.chartRef) {\n logger.trace(\n 'HelmRelease using chartRef was found, skipping as version will be handled via referenced resource directly',\n );\n } else if (resource.spec.chart) {\n const chartSpec = resource.spec.chart.spec;\n const depName = chartSpec.chart;\n const dep: PackageDependency = {\n depName,\n currentValue: resource.spec.chart.spec.version,\n datasource: HelmDatasource.id,\n };\n\n if (depName.startsWith('./')) {\n dep.skipReason = 'local-chart';\n delete dep.datasource;\n } else {\n const matchingRepositories = helmRepositories.filter(\n (rep) =>\n rep.kind === chartSpec.sourceRef?.kind &&\n rep.metadata.name === chartSpec.sourceRef.name &&\n rep.metadata.namespace ===\n (chartSpec.sourceRef.namespace ??\n resource.metadata?.namespace),\n );\n resolveHelmRepository(dep, matchingRepositories, registryAliases);\n }\n deps.push(dep);\n } else {\n logger.debug('invalid or incomplete HelmRelease spec, skipping');\n }\n\n if (resource.spec.values) {\n logger.trace('detecting dependencies in HelmRelease values');\n deps.push(...findDependencies(resource.spec.values, registryAliases));\n }\n break;\n }\n\n case 'HelmChart': {\n if (resource.spec.sourceRef.kind === 'GitRepository') {\n logger.trace(\n 'HelmChart using GitRepository was found, skipping as version will be handled via referenced resource directly',\n );\n continue;\n }\n\n const dep: PackageDependency = {\n depName: resource.spec.chart,\n };\n\n if (resource.spec.sourceRef.kind === 'HelmRepository') {\n dep.currentValue = resource.spec.version;\n dep.datasource = HelmDatasource.id;\n\n const matchingRepositories = helmRepositories.filter(\n (rep) =>\n rep.kind === resource.spec.sourceRef?.kind &&\n rep.metadata.name === resource.spec.sourceRef.name &&\n rep.metadata.namespace === resource.metadata?.namespace,\n );\n resolveHelmRepository(dep, matchingRepositories, registryAliases);\n } else {\n dep.skipReason = 'unsupported-datasource';\n }\n deps.push(dep);\n break;\n }\n\n case 'GitRepository': {\n const dep: PackageDependency = {\n depName: resource.metadata.name,\n };\n\n if (resource.spec.ref?.commit) {\n const gitUrl = resource.spec.url;\n dep.currentDigest = resource.spec.ref.commit;\n dep.datasource = GitRefsDatasource.id;\n dep.packageName = gitUrl;\n dep.replaceString = resource.spec.ref.commit;\n if (isHttpUrl(gitUrl)) {\n dep.sourceUrl = gitUrl.replace(/\\.git$/, '');\n }\n } else if (resource.spec.ref?.tag) {\n dep.currentValue = resource.spec.ref.tag;\n resolveGitRepositoryPerSourceTag(dep, resource.spec.url);\n } else {\n dep.skipReason = 'unversioned-reference';\n }\n deps.push(dep);\n break;\n }\n case 'OCIRepository': {\n const container = removeOCIPrefix(resource.spec.url);\n let dep = getDep(container, false, registryAliases);\n if (resource.spec.ref?.digest) {\n dep = getDep(\n `${container}@${resource.spec.ref.digest}`,\n false,\n registryAliases,\n );\n if (resource.spec.ref?.tag) {\n logger.debug('A digest and tag was found, ignoring tag');\n }\n } else if (resource.spec.ref?.tag) {\n dep = getDep(\n `${container}:${resource.spec.ref.tag}`,\n false,\n registryAliases,\n );\n dep.autoReplaceStringTemplate =\n '{{#if newValue}}{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}';\n dep.replaceString = resource.spec.ref.tag;\n } else {\n dep.skipReason = 'unversioned-reference';\n }\n deps.push(dep);\n break;\n }\n\n case 'Kustomization': {\n for (const image of coerceArray(resource.spec.images)) {\n const dep = extractImage(image, registryAliases);\n if (dep) {\n deps.push(dep);\n }\n }\n }\n }\n }\n return deps;\n}\n\nexport function extractPackageFile(\n content: string,\n packageFile: string,\n config?: ExtractConfig,\n): PackageFileContent<FluxManagerData> | null {\n const manifest = readManifest(content, packageFile);\n if (!manifest) {\n return null;\n }\n const helmRepositories = collectHelmRepos([manifest]);\n let deps: PackageDependency[] | null = null;\n switch (manifest.kind) {\n case 'system':\n deps = resolveSystemManifest(manifest);\n break;\n case 'resource': {\n deps = resolveResourceManifest(\n manifest,\n helmRepositories,\n config?.registryAliases,\n );\n break;\n }\n }\n return deps?.length ? { deps } : null;\n}\n\nexport async function extractAllPackageFiles(\n config: ExtractConfig,\n packageFiles: string[],\n): Promise<PackageFile<FluxManagerData>[] | null> {\n const manifests: FluxManifest[] = [];\n const results: PackageFile<FluxManagerData>[] = [];\n\n for (const file of packageFiles) {\n const content = await readLocalFile(file, 'utf8');\n // TODO #22198\n const manifest = readManifest(content!, file);\n if (manifest) {\n manifests.push(manifest);\n }\n }\n\n const helmRepositories = collectHelmRepos(manifests);\n\n for (const manifest of manifests) {\n let deps: PackageDependency[] | null = null;\n switch (manifest.kind) {\n case 'system':\n deps = resolveSystemManifest(manifest);\n break;\n case 'resource': {\n deps = resolveResourceManifest(\n manifest,\n helmRepositories,\n config.registryAliases,\n );\n break;\n }\n }\n if (deps?.length) {\n results.push({\n packageFile: manifest.file,\n deps,\n });\n }\n }\n\n return results.length ? results : null;\n}\n"]}
|
1
|
+
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/flux/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { logger } from '../../../logger';\nimport { coerceArray } from '../../../util/array';\nimport { readLocalFile } from '../../../util/fs';\nimport { regEx } from '../../../util/regex';\nimport { isHttpUrl } from '../../../util/url';\nimport { parseYaml } from '../../../util/yaml';\nimport { BitbucketTagsDatasource } from '../../datasource/bitbucket-tags';\nimport { DockerDatasource } from '../../datasource/docker';\nimport { GitRefsDatasource } from '../../datasource/git-refs';\nimport { GitTagsDatasource } from '../../datasource/git-tags';\nimport { GithubReleasesDatasource } from '../../datasource/github-releases';\nimport { GithubTagsDatasource } from '../../datasource/github-tags';\nimport { GitlabTagsDatasource } from '../../datasource/gitlab-tags';\nimport { HelmDatasource } from '../../datasource/helm';\nimport { getDep } from '../dockerfile/extract';\nimport { findDependencies } from '../helm-values/extract';\nimport { isOCIRegistry, removeOCIPrefix } from '../helmv3/oci';\nimport { extractImage } from '../kustomize/extract';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFile,\n PackageFileContent,\n} from '../types';\nimport {\n collectHelmRepos,\n isSystemManifest,\n systemManifestHeaderRegex,\n} from './common';\nimport { FluxResource, type HelmRepository } from './schema';\nimport type {\n FluxManagerData,\n FluxManifest,\n ResourceFluxManifest,\n SystemFluxManifest,\n} from './types';\n\nfunction readManifest(\n content: string,\n packageFile: string,\n): FluxManifest | null {\n if (isSystemManifest(packageFile)) {\n const versionMatch = regEx(systemManifestHeaderRegex).exec(content);\n if (!versionMatch) {\n return null;\n }\n return {\n kind: 'system',\n file: packageFile,\n version: versionMatch[1],\n components: versionMatch[2],\n };\n }\n\n return {\n kind: 'resource',\n file: packageFile,\n resources: parseYaml(content, {\n customSchema: FluxResource,\n failureBehaviour: 'filter',\n }),\n };\n}\n\nconst githubUrlRegex = regEx(\n /^(?:https:\\/\\/|git@)github\\.com[/:](?<packageName>[^/]+\\/[^/]+?)(?:\\.git)?$/,\n);\nconst gitlabUrlRegex = regEx(\n /^(?:https:\\/\\/|git@)gitlab\\.com[/:](?<packageName>[^/]+\\/[^/]+?)(?:\\.git)?$/,\n);\nconst bitbucketUrlRegex = regEx(\n /^(?:https:\\/\\/|git@)bitbucket\\.org[/:](?<packageName>[^/]+\\/[^/]+?)(?:\\.git)?$/,\n);\n\nfunction resolveGitRepositoryPerSourceTag(\n dep: PackageDependency,\n gitUrl: string,\n): void {\n const githubMatchGroups = githubUrlRegex.exec(gitUrl)?.groups;\n if (githubMatchGroups) {\n dep.datasource = GithubTagsDatasource.id;\n dep.packageName = githubMatchGroups.packageName;\n dep.sourceUrl = `https://github.com/${dep.packageName}`;\n return;\n }\n\n const gitlabMatchGroups = gitlabUrlRegex.exec(gitUrl)?.groups;\n if (gitlabMatchGroups) {\n dep.datasource = GitlabTagsDatasource.id;\n dep.packageName = gitlabMatchGroups.packageName;\n dep.sourceUrl = `https://gitlab.com/${dep.packageName}`;\n return;\n }\n\n const bitbucketMatchGroups = bitbucketUrlRegex.exec(gitUrl)?.groups;\n if (bitbucketMatchGroups) {\n dep.datasource = BitbucketTagsDatasource.id;\n dep.packageName = bitbucketMatchGroups.packageName;\n dep.sourceUrl = `https://bitbucket.org/${dep.packageName}`;\n return;\n }\n\n dep.datasource = GitTagsDatasource.id;\n dep.packageName = gitUrl;\n if (isHttpUrl(gitUrl)) {\n dep.sourceUrl = gitUrl.replace(/\\.git$/, '');\n }\n}\n\nfunction resolveHelmRepository(\n dep: PackageDependency,\n matchingRepositories: HelmRepository[],\n registryAliases: Record<string, string> | undefined,\n): void {\n if (matchingRepositories.length) {\n dep.registryUrls = matchingRepositories\n .map((repo) => {\n if (repo.spec.type === 'oci' || isOCIRegistry(repo.spec.url)) {\n // Change datasource to Docker\n dep.datasource = DockerDatasource.id;\n // Ensure the URL is a valid OCI path\n dep.packageName = getDep(\n `${removeOCIPrefix(repo.spec.url)}/${dep.depName}`,\n false,\n registryAliases,\n ).packageName;\n return null;\n } else {\n return repo.spec.url;\n }\n })\n .filter(is.string);\n\n // if registryUrls is empty, delete it from dep\n if (!dep.registryUrls?.length) {\n delete dep.registryUrls;\n }\n } else {\n dep.skipReason = 'unknown-registry';\n }\n}\n\nfunction resolveSystemManifest(\n manifest: SystemFluxManifest,\n): PackageDependency<FluxManagerData>[] {\n return [\n {\n depName: 'fluxcd/flux2',\n datasource: GithubReleasesDatasource.id,\n currentValue: manifest.version,\n managerData: {\n components: manifest.components,\n },\n },\n ];\n}\n\nfunction resolveResourceManifest(\n manifest: ResourceFluxManifest,\n helmRepositories: HelmRepository[],\n registryAliases: Record<string, string> | undefined,\n): PackageDependency[] {\n const deps: PackageDependency[] = [];\n for (const resource of manifest.resources) {\n switch (resource.kind) {\n case 'HelmRelease': {\n if (resource.spec.chartRef) {\n logger.trace(\n 'HelmRelease using chartRef was found, skipping as version will be handled via referenced resource directly',\n );\n } else if (resource.spec.chart) {\n const chartSpec = resource.spec.chart.spec;\n const depName = chartSpec.chart;\n const dep: PackageDependency = {\n depName,\n currentValue: resource.spec.chart.spec.version,\n datasource: HelmDatasource.id,\n };\n\n if (depName.startsWith('./')) {\n dep.skipReason = 'local-chart';\n delete dep.datasource;\n } else {\n const matchingRepositories = helmRepositories.filter(\n (rep) =>\n rep.kind === chartSpec.sourceRef?.kind &&\n rep.metadata.name === chartSpec.sourceRef.name &&\n rep.metadata.namespace ===\n (chartSpec.sourceRef.namespace ??\n resource.metadata?.namespace),\n );\n resolveHelmRepository(dep, matchingRepositories, registryAliases);\n }\n deps.push(dep);\n } else {\n logger.debug(\n `invalid or incomplete ${resource.metadata.name} HelmRelease spec, skipping`,\n );\n }\n\n if (resource.spec.values) {\n logger.trace('detecting dependencies in HelmRelease values');\n deps.push(...findDependencies(resource.spec.values, registryAliases));\n }\n break;\n }\n\n case 'HelmChart': {\n if (resource.spec.sourceRef.kind === 'GitRepository') {\n logger.trace(\n 'HelmChart using GitRepository was found, skipping as version will be handled via referenced resource directly',\n );\n continue;\n }\n\n const dep: PackageDependency = {\n depName: resource.spec.chart,\n };\n\n if (resource.spec.sourceRef.kind === 'HelmRepository') {\n dep.currentValue = resource.spec.version;\n dep.datasource = HelmDatasource.id;\n\n const matchingRepositories = helmRepositories.filter(\n (rep) =>\n rep.kind === resource.spec.sourceRef?.kind &&\n rep.metadata.name === resource.spec.sourceRef.name &&\n rep.metadata.namespace === resource.metadata?.namespace,\n );\n resolveHelmRepository(dep, matchingRepositories, registryAliases);\n } else {\n dep.skipReason = 'unsupported-datasource';\n }\n deps.push(dep);\n break;\n }\n\n case 'GitRepository': {\n const dep: PackageDependency = {\n depName: resource.metadata.name,\n };\n\n if (resource.spec.ref?.commit) {\n const gitUrl = resource.spec.url;\n dep.currentDigest = resource.spec.ref.commit;\n dep.datasource = GitRefsDatasource.id;\n dep.packageName = gitUrl;\n dep.replaceString = resource.spec.ref.commit;\n if (isHttpUrl(gitUrl)) {\n dep.sourceUrl = gitUrl.replace(/\\.git$/, '');\n }\n } else if (resource.spec.ref?.tag) {\n dep.currentValue = resource.spec.ref.tag;\n resolveGitRepositoryPerSourceTag(dep, resource.spec.url);\n } else {\n dep.skipReason = 'unversioned-reference';\n }\n deps.push(dep);\n break;\n }\n case 'OCIRepository': {\n const container = removeOCIPrefix(resource.spec.url);\n let dep = getDep(container, false, registryAliases);\n if (resource.spec.ref?.digest) {\n dep = getDep(\n `${container}@${resource.spec.ref.digest}`,\n false,\n registryAliases,\n );\n if (resource.spec.ref?.tag) {\n logger.debug('A digest and tag was found, ignoring tag');\n }\n } else if (resource.spec.ref?.tag) {\n dep = getDep(\n `${container}:${resource.spec.ref.tag}`,\n false,\n registryAliases,\n );\n dep.autoReplaceStringTemplate =\n '{{#if newValue}}{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}';\n dep.replaceString = resource.spec.ref.tag;\n } else {\n dep.skipReason = 'unversioned-reference';\n }\n deps.push(dep);\n break;\n }\n\n case 'Kustomization': {\n for (const image of coerceArray(resource.spec.images)) {\n const dep = extractImage(image, registryAliases);\n if (dep) {\n deps.push(dep);\n }\n }\n }\n }\n }\n return deps;\n}\n\nexport function extractPackageFile(\n content: string,\n packageFile: string,\n config?: ExtractConfig,\n): PackageFileContent<FluxManagerData> | null {\n const manifest = readManifest(content, packageFile);\n if (!manifest) {\n return null;\n }\n const helmRepositories = collectHelmRepos([manifest]);\n let deps: PackageDependency[] | null = null;\n switch (manifest.kind) {\n case 'system':\n deps = resolveSystemManifest(manifest);\n break;\n case 'resource': {\n deps = resolveResourceManifest(\n manifest,\n helmRepositories,\n config?.registryAliases,\n );\n break;\n }\n }\n return deps?.length ? { deps } : null;\n}\n\nexport async function extractAllPackageFiles(\n config: ExtractConfig,\n packageFiles: string[],\n): Promise<PackageFile<FluxManagerData>[] | null> {\n const manifests: FluxManifest[] = [];\n const results: PackageFile<FluxManagerData>[] = [];\n\n for (const file of packageFiles) {\n const content = await readLocalFile(file, 'utf8');\n // TODO #22198\n const manifest = readManifest(content!, file);\n if (manifest) {\n manifests.push(manifest);\n }\n }\n\n const helmRepositories = collectHelmRepos(manifests);\n\n for (const manifest of manifests) {\n let deps: PackageDependency[] | null = null;\n switch (manifest.kind) {\n case 'system':\n deps = resolveSystemManifest(manifest);\n break;\n case 'resource': {\n deps = resolveResourceManifest(\n manifest,\n helmRepositories,\n config.registryAliases,\n );\n break;\n }\n }\n if (deps?.length) {\n results.push({\n packageFile: manifest.file,\n deps,\n });\n }\n }\n\n return results.length ? results : null;\n}\n"]}
|