renovate 44.85.1 → 44.86.0

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.
Files changed (97) hide show
  1. package/dist/modules/manager/apm/artifacts.js +2 -1
  2. package/dist/modules/manager/apm/artifacts.js.map +1 -1
  3. package/dist/modules/manager/bazel-module/artifacts.js +2 -1
  4. package/dist/modules/manager/bazel-module/artifacts.js.map +1 -1
  5. package/dist/modules/manager/bazelisk/artifacts.js +2 -1
  6. package/dist/modules/manager/bazelisk/artifacts.js.map +1 -1
  7. package/dist/modules/manager/bun/artifacts.js +2 -1
  8. package/dist/modules/manager/bun/artifacts.js.map +1 -1
  9. package/dist/modules/manager/bundler/artifacts.js +1 -1
  10. package/dist/modules/manager/bundler/artifacts.js.map +1 -1
  11. package/dist/modules/manager/bundler/common.js +11 -16
  12. package/dist/modules/manager/bundler/common.js.map +1 -1
  13. package/dist/modules/manager/cargo/artifacts.js +5 -3
  14. package/dist/modules/manager/cargo/artifacts.js.map +1 -1
  15. package/dist/modules/manager/composer/artifacts.js +6 -7
  16. package/dist/modules/manager/composer/artifacts.js.map +1 -1
  17. package/dist/modules/manager/composer/utils.js +1 -10
  18. package/dist/modules/manager/composer/utils.js.map +1 -1
  19. package/dist/modules/manager/conan/artifacts.js +2 -1
  20. package/dist/modules/manager/conan/artifacts.js.map +1 -1
  21. package/dist/modules/manager/copier/artifacts.js +3 -3
  22. package/dist/modules/manager/copier/artifacts.js.map +1 -1
  23. package/dist/modules/manager/deno/artifacts.js +2 -1
  24. package/dist/modules/manager/deno/artifacts.js.map +1 -1
  25. package/dist/modules/manager/devbox/artifacts.js +8 -5
  26. package/dist/modules/manager/devbox/artifacts.js.map +1 -1
  27. package/dist/modules/manager/fingerprint.generated.js +34 -34
  28. package/dist/modules/manager/fingerprint.generated.js.map +1 -1
  29. package/dist/modules/manager/github-actions/artifacts.js +6 -4
  30. package/dist/modules/manager/github-actions/artifacts.js.map +1 -1
  31. package/dist/modules/manager/gleam/artifacts.js +2 -1
  32. package/dist/modules/manager/gleam/artifacts.js.map +1 -1
  33. package/dist/modules/manager/gomod/artifacts.js +8 -6
  34. package/dist/modules/manager/gomod/artifacts.js.map +1 -1
  35. package/dist/modules/manager/gradle/artifacts.js +2 -1
  36. package/dist/modules/manager/gradle/artifacts.js.map +1 -1
  37. package/dist/modules/manager/gradle-wrapper/artifacts.js +2 -1
  38. package/dist/modules/manager/gradle-wrapper/artifacts.js.map +1 -1
  39. package/dist/modules/manager/helmfile/artifacts.js +4 -3
  40. package/dist/modules/manager/helmfile/artifacts.js.map +1 -1
  41. package/dist/modules/manager/helmv3/artifacts.js +2 -1
  42. package/dist/modules/manager/helmv3/artifacts.js.map +1 -1
  43. package/dist/modules/manager/jsonnet-bundler/artifacts.js +2 -1
  44. package/dist/modules/manager/jsonnet-bundler/artifacts.js.map +1 -1
  45. package/dist/modules/manager/kustomize/artifacts.js +4 -2
  46. package/dist/modules/manager/kustomize/artifacts.js.map +1 -1
  47. package/dist/modules/manager/kustomize/common.js +2 -2
  48. package/dist/modules/manager/kustomize/common.js.map +1 -1
  49. package/dist/modules/manager/maven-wrapper/artifacts.js +2 -1
  50. package/dist/modules/manager/maven-wrapper/artifacts.js.map +1 -1
  51. package/dist/modules/manager/mise/artifacts.js +13 -11
  52. package/dist/modules/manager/mise/artifacts.js.map +1 -1
  53. package/dist/modules/manager/mix/artifacts.js +3 -2
  54. package/dist/modules/manager/mix/artifacts.js.map +1 -1
  55. package/dist/modules/manager/nix/artifacts.js +2 -1
  56. package/dist/modules/manager/nix/artifacts.js.map +1 -1
  57. package/dist/modules/manager/npm/artifacts.js +2 -1
  58. package/dist/modules/manager/npm/artifacts.js.map +1 -1
  59. package/dist/modules/manager/npm/post-update/node-version.js +2 -1
  60. package/dist/modules/manager/npm/post-update/node-version.js.map +1 -1
  61. package/dist/modules/manager/npm/post-update/npm.js +2 -1
  62. package/dist/modules/manager/npm/post-update/npm.js.map +1 -1
  63. package/dist/modules/manager/npm/post-update/pnpm.js +2 -1
  64. package/dist/modules/manager/npm/post-update/pnpm.js.map +1 -1
  65. package/dist/modules/manager/npm/post-update/yarn.js +5 -3
  66. package/dist/modules/manager/npm/post-update/yarn.js.map +1 -1
  67. package/dist/modules/manager/nuget/artifacts.js +2 -1
  68. package/dist/modules/manager/nuget/artifacts.js.map +1 -1
  69. package/dist/modules/manager/pep621/processors/pdm.js +3 -2
  70. package/dist/modules/manager/pep621/processors/pdm.js.map +1 -1
  71. package/dist/modules/manager/pep621/processors/pixi.js +4 -3
  72. package/dist/modules/manager/pep621/processors/pixi.js.map +1 -1
  73. package/dist/modules/manager/pep621/processors/uv.js +3 -3
  74. package/dist/modules/manager/pep621/processors/uv.js.map +1 -1
  75. package/dist/modules/manager/pip-compile/common.js +14 -36
  76. package/dist/modules/manager/pip-compile/common.js.map +1 -1
  77. package/dist/modules/manager/pip_requirements/artifacts.js +3 -2
  78. package/dist/modules/manager/pip_requirements/artifacts.js.map +1 -1
  79. package/dist/modules/manager/pipenv/artifacts.js +3 -2
  80. package/dist/modules/manager/pipenv/artifacts.js.map +1 -1
  81. package/dist/modules/manager/pixi/artifacts.js +2 -1
  82. package/dist/modules/manager/pixi/artifacts.js.map +1 -1
  83. package/dist/modules/manager/poetry/artifacts.js +3 -2
  84. package/dist/modules/manager/poetry/artifacts.js.map +1 -1
  85. package/dist/modules/manager/pub/artifacts.js +11 -10
  86. package/dist/modules/manager/pub/artifacts.js.map +1 -1
  87. package/dist/modules/manager/types.d.ts +23 -3
  88. package/dist/modules/manager/util.js +28 -1
  89. package/dist/modules/manager/util.js.map +1 -1
  90. package/dist/modules/manager/vendir/artifacts.js +3 -2
  91. package/dist/modules/manager/vendir/artifacts.js.map +1 -1
  92. package/dist/workers/repository/updates/generate.js +11 -4
  93. package/dist/workers/repository/updates/generate.js.map +1 -1
  94. package/package.json +1 -1
  95. package/renovate-schema.json +2 -2
  96. package/dist/modules/manager/copier/utils.js +0 -24
  97. package/dist/modules/manager/copier/utils.js.map +0 -1
@@ -2,8 +2,8 @@ import { GlobalConfig } from "../../../config/global.js";
2
2
  import { logger } from "../../../logger/index.js";
3
3
  import { readLocalFile, statLocalFile } from "../../../util/fs/index.js";
4
4
  import { getRepoStatus, isFileModeEnabled } from "../../../util/git/index.js";
5
+ import { resolveToolConstraint } from "../util.js";
5
6
  import { withGitEnvironment } from "../../../util/git/exec.js";
6
- import { getCopierVersionConstraint, getPythonVersionConstraint } from "./utils.js";
7
7
  import { quote } from "shlex";
8
8
  import upath from "upath";
9
9
  //#region lib/modules/manager/copier/artifacts.ts
@@ -43,10 +43,10 @@ async function updateArtifacts({ packageFileName, updatedDeps, config }) {
43
43
  docker: {},
44
44
  toolConstraints: [{
45
45
  toolName: "python",
46
- constraint: getPythonVersionConstraint(config)
46
+ constraint: await resolveToolConstraint(config, "python")
47
47
  }, {
48
48
  toolName: "copier",
49
- constraint: getCopierVersionConstraint(config)
49
+ constraint: await resolveToolConstraint(config, "copier")
50
50
  }]
51
51
  };
52
52
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"artifacts.js","names":[],"sources":["../../../../lib/modules/manager/copier/artifacts.ts"],"sourcesContent":["import { quote } from 'shlex';\nimport upath from 'upath';\nimport { GlobalConfig } from '../../../config/global.ts';\nimport { logger } from '../../../logger/index.ts';\nimport type { ExecOptions } from '../../../util/exec/types.ts';\nimport { readLocalFile, statLocalFile } from '../../../util/fs/index.ts';\nimport { withGitEnvironment } from '../../../util/git/exec.ts';\nimport { getRepoStatus, isFileModeEnabled } from '../../../util/git/index.ts';\nimport type {\n UpdateArtifact,\n UpdateArtifactsConfig,\n UpdateArtifactsResult,\n} from '../types.ts';\nimport {\n getCopierVersionConstraint,\n getPythonVersionConstraint,\n} from './utils.ts';\n\nconst DEFAULT_COMMAND_OPTIONS = ['--skip-answered', '--defaults'];\nconst ownerExecutePermission = 0o100;\nconst gitExec = withGitEnvironment(['git-tags']);\n\nasync function detectExecutable(\n path: string,\n canReadFileMode: boolean,\n): Promise<true | undefined> {\n if (!canReadFileMode) {\n return undefined;\n }\n\n const fileStats = await statLocalFile(path);\n if (!fileStats?.isFile()) {\n return undefined;\n }\n\n if ((fileStats.mode & ownerExecutePermission) === 0) {\n return undefined;\n }\n\n // Git derives its executable flag from the owner's execute permission.\n return true;\n}\n\nfunction buildCommand(\n config: UpdateArtifactsConfig,\n packageFileName: string,\n newValue: string,\n): string {\n const command = ['copier', 'update', ...DEFAULT_COMMAND_OPTIONS];\n if (GlobalConfig.get('allowScripts') && !config.ignoreScripts) {\n command.push('--trust');\n }\n command.push(\n '--answers-file',\n quote(upath.basename(packageFileName)),\n '--vcs-ref',\n quote(newValue),\n );\n return command.join(' ');\n}\n\nfunction artifactError(\n packageFileName: string,\n message: string,\n): UpdateArtifactsResult[] {\n return [\n {\n artifactError: {\n fileName: packageFileName,\n stderr: message,\n },\n },\n ];\n}\n\nexport async function updateArtifacts({\n packageFileName,\n updatedDeps,\n config,\n}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> {\n if (updatedDeps?.length !== 1) {\n // Each answers file (~ packageFileName) has exactly one dependency to update.\n return artifactError(\n packageFileName,\n `Unexpected number of dependencies: ${updatedDeps?.length} (should be 1)`,\n );\n }\n\n const newValue = updatedDeps[0]?.newValue;\n if (!newValue) {\n return artifactError(\n packageFileName,\n 'Missing copier template version to update to',\n );\n }\n\n const command = buildCommand(config, packageFileName, newValue);\n const execOptions: ExecOptions = {\n cwdFile: packageFileName,\n docker: {},\n toolConstraints: [\n {\n toolName: 'python',\n constraint: getPythonVersionConstraint(config),\n },\n {\n toolName: 'copier',\n constraint: getCopierVersionConstraint(config),\n },\n ],\n };\n try {\n await gitExec(command, execOptions);\n } catch (err) {\n logger.debug({ err }, `Failed to update copier template: ${err.message}`);\n return artifactError(packageFileName, err.message);\n }\n\n const status = await getRepoStatus();\n // If the answers file didn't change, Copier did not update anything.\n if (!status.modified.includes(packageFileName)) {\n return null;\n }\n\n const res: UpdateArtifactsResult[] = [];\n\n if (status.conflicted.length > 0) {\n // Sometimes, Copier erroneously reports conflicts.\n const msg = `Updating the Copier template yielded ${status.conflicted.length} merge conflicts. Please check the proposed changes carefully! Conflicting files:\\n * ${status.conflicted.join('\\n * ')}`;\n logger.debug({ packageFileName, depName: updatedDeps[0]?.depName }, msg);\n res.push(...artifactError(packageFileName, msg));\n }\n\n const canReadFileMode = await isFileModeEnabled();\n\n for (const f of [\n ...status.modified,\n ...status.not_added,\n ...status.conflicted,\n ]) {\n const fileRes: UpdateArtifactsResult = {\n file: {\n type: 'addition',\n path: f,\n contents: await readLocalFile(f),\n isExecutable: await detectExecutable(f, canReadFileMode),\n },\n };\n if (status.conflicted.includes(f)) {\n // Make the reviewer aware of the conflicts.\n // This will be posted in a comment.\n fileRes.notice = {\n file: f,\n message:\n 'This file had merge conflicts. Please check the proposed changes carefully!',\n };\n }\n res.push(fileRes);\n }\n for (const f of status.deleted) {\n res.push({\n file: {\n type: 'deletion',\n path: f,\n },\n });\n }\n // `git status` might detect a rename, which is then not contained\n // in not_added/deleted. Ensure we respect renames as well if they happen.\n for (const f of status.renamed) {\n res.push({\n file: {\n type: 'deletion',\n path: f.from,\n },\n });\n res.push({\n file: {\n type: 'addition',\n path: f.to,\n contents: await readLocalFile(f.to),\n isExecutable: await detectExecutable(f.to, canReadFileMode),\n },\n });\n }\n return res;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"artifacts.js","names":[],"sources":["../../../../lib/modules/manager/copier/artifacts.ts"],"sourcesContent":["import { quote } from 'shlex';\nimport upath from 'upath';\nimport { GlobalConfig } from '../../../config/global.ts';\nimport { logger } from '../../../logger/index.ts';\nimport type { ExecOptions } from '../../../util/exec/types.ts';\nimport { readLocalFile, statLocalFile } from '../../../util/fs/index.ts';\nimport { withGitEnvironment } from '../../../util/git/exec.ts';\nimport { getRepoStatus, isFileModeEnabled } from '../../../util/git/index.ts';\nimport type {\n UpdateArtifact,\n UpdateArtifactsConfig,\n UpdateArtifactsResult,\n} from '../types.ts';\nimport { resolveToolConstraint } from '../util.ts';\n\nconst DEFAULT_COMMAND_OPTIONS = ['--skip-answered', '--defaults'];\nconst ownerExecutePermission = 0o100;\nconst gitExec = withGitEnvironment(['git-tags']);\n\nasync function detectExecutable(\n path: string,\n canReadFileMode: boolean,\n): Promise<true | undefined> {\n if (!canReadFileMode) {\n return undefined;\n }\n\n const fileStats = await statLocalFile(path);\n if (!fileStats?.isFile()) {\n return undefined;\n }\n\n if ((fileStats.mode & ownerExecutePermission) === 0) {\n return undefined;\n }\n\n // Git derives its executable flag from the owner's execute permission.\n return true;\n}\n\nfunction buildCommand(\n config: UpdateArtifactsConfig,\n packageFileName: string,\n newValue: string,\n): string {\n const command = ['copier', 'update', ...DEFAULT_COMMAND_OPTIONS];\n if (GlobalConfig.get('allowScripts') && !config.ignoreScripts) {\n command.push('--trust');\n }\n command.push(\n '--answers-file',\n quote(upath.basename(packageFileName)),\n '--vcs-ref',\n quote(newValue),\n );\n return command.join(' ');\n}\n\nfunction artifactError(\n packageFileName: string,\n message: string,\n): UpdateArtifactsResult[] {\n return [\n {\n artifactError: {\n fileName: packageFileName,\n stderr: message,\n },\n },\n ];\n}\n\nexport async function updateArtifacts({\n packageFileName,\n updatedDeps,\n config,\n}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> {\n if (updatedDeps?.length !== 1) {\n // Each answers file (~ packageFileName) has exactly one dependency to update.\n return artifactError(\n packageFileName,\n `Unexpected number of dependencies: ${updatedDeps?.length} (should be 1)`,\n );\n }\n\n const newValue = updatedDeps[0]?.newValue;\n if (!newValue) {\n return artifactError(\n packageFileName,\n 'Missing copier template version to update to',\n );\n }\n\n const command = buildCommand(config, packageFileName, newValue);\n const execOptions: ExecOptions = {\n cwdFile: packageFileName,\n docker: {},\n toolConstraints: [\n {\n toolName: 'python',\n constraint: await resolveToolConstraint(config, 'python'),\n },\n {\n toolName: 'copier',\n constraint: await resolveToolConstraint(config, 'copier'),\n },\n ],\n };\n try {\n await gitExec(command, execOptions);\n } catch (err) {\n logger.debug({ err }, `Failed to update copier template: ${err.message}`);\n return artifactError(packageFileName, err.message);\n }\n\n const status = await getRepoStatus();\n // If the answers file didn't change, Copier did not update anything.\n if (!status.modified.includes(packageFileName)) {\n return null;\n }\n\n const res: UpdateArtifactsResult[] = [];\n\n if (status.conflicted.length > 0) {\n // Sometimes, Copier erroneously reports conflicts.\n const msg = `Updating the Copier template yielded ${status.conflicted.length} merge conflicts. Please check the proposed changes carefully! Conflicting files:\\n * ${status.conflicted.join('\\n * ')}`;\n logger.debug({ packageFileName, depName: updatedDeps[0]?.depName }, msg);\n res.push(...artifactError(packageFileName, msg));\n }\n\n const canReadFileMode = await isFileModeEnabled();\n\n for (const f of [\n ...status.modified,\n ...status.not_added,\n ...status.conflicted,\n ]) {\n const fileRes: UpdateArtifactsResult = {\n file: {\n type: 'addition',\n path: f,\n contents: await readLocalFile(f),\n isExecutable: await detectExecutable(f, canReadFileMode),\n },\n };\n if (status.conflicted.includes(f)) {\n // Make the reviewer aware of the conflicts.\n // This will be posted in a comment.\n fileRes.notice = {\n file: f,\n message:\n 'This file had merge conflicts. Please check the proposed changes carefully!',\n };\n }\n res.push(fileRes);\n }\n for (const f of status.deleted) {\n res.push({\n file: {\n type: 'deletion',\n path: f,\n },\n });\n }\n // `git status` might detect a rename, which is then not contained\n // in not_added/deleted. Ensure we respect renames as well if they happen.\n for (const f of status.renamed) {\n res.push({\n file: {\n type: 'deletion',\n path: f.from,\n },\n });\n res.push({\n file: {\n type: 'addition',\n path: f.to,\n contents: await readLocalFile(f.to),\n isExecutable: await detectExecutable(f.to, canReadFileMode),\n },\n });\n }\n return res;\n}\n"],"mappings":"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"}
@@ -3,6 +3,7 @@ import { logger } from "../../../logger/index.js";
3
3
  import { findAll } from "../../../util/host-rules.js";
4
4
  import { deleteLocalFile, readLocalFile, writeLocalFile } from "../../../util/fs/index.js";
5
5
  import { exec } from "../../../util/exec/index.js";
6
+ import { resolveToolConstraint } from "../util.js";
6
7
  import { processHostRules } from "../npm/post-update/rules.js";
7
8
  import { getNpmrcContent, resetNpmrcContent, updateNpmrcContent } from "../npm/utils.js";
8
9
  import { isEmptyArray } from "@sindresorhus/is";
@@ -53,7 +54,7 @@ async function updateArtifacts(updateArtifact) {
53
54
  docker: {},
54
55
  toolConstraints: [{
55
56
  toolName: "deno",
56
- constraint: config.constraints?.deno
57
+ constraint: await resolveToolConstraint(config, "deno")
57
58
  }]
58
59
  };
59
60
  let command = "deno install --frozen=false";
@@ -1 +1 @@
1
- {"version":3,"file":"artifacts.js","names":["hostRules\n .findAll"],"sources":["../../../../lib/modules/manager/deno/artifacts.ts"],"sourcesContent":["import { isEmptyArray } from '@sindresorhus/is';\nimport { quote } from 'shlex';\nimport upath from 'upath';\nimport { TEMPORARY_ERROR } from '../../../constants/error-messages.ts';\nimport { logger } from '../../../logger/index.ts';\nimport { exec } from '../../../util/exec/index.ts';\nimport type { ExecOptions } from '../../../util/exec/types.ts';\nimport {\n deleteLocalFile,\n readLocalFile,\n writeLocalFile,\n} from '../../../util/fs/index.ts';\nimport * as hostRules from '../../../util/host-rules.ts';\nimport { processHostRules } from '../npm/post-update/rules.ts';\nimport {\n getNpmrcContent,\n resetNpmrcContent,\n updateNpmrcContent,\n} from '../npm/utils.ts';\nimport type { UpdateArtifact, UpdateArtifactsResult } from '../types.ts';\nimport type { DenoManagerData } from './types.ts';\n\nexport async function updateArtifacts(\n updateArtifact: UpdateArtifact<DenoManagerData>,\n): Promise<UpdateArtifactsResult[] | null> {\n const { packageFileName, updatedDeps, newPackageFileContent, config } =\n updateArtifact;\n logger.debug(`deno.updateArtifacts(${packageFileName})`);\n const isLockFileMaintenance = config.updateType === 'lockFileMaintenance';\n\n if (isEmptyArray(updatedDeps) && !isLockFileMaintenance) {\n logger.debug('No updated deno deps - returning null');\n return null;\n }\n\n // falling back for lockFileMaintenance\n const lockFileName = updatedDeps[0]?.lockFiles?.[0] ?? config.lockFiles?.[0];\n\n if (!lockFileName) {\n logger.debug('No lock file found. Skipping artifact update.');\n return null;\n }\n\n const oldLockFileContent = await readLocalFile(lockFileName);\n if (!oldLockFileContent) {\n logger.debug(`Failed to read ${lockFileName}. Skipping artifact update.`);\n return [\n {\n artifactError: {\n fileName: lockFileName,\n stderr: `Failed to read \"${lockFileName}\"`,\n },\n },\n ];\n }\n\n for (const updateDep of updatedDeps) {\n if (\n updateDep.depType === 'tasks' ||\n updateDep.depType === 'tasks.command'\n ) {\n logger.warn(\n {\n depType: updateDep.depType,\n depName: updateDep.depName,\n lockFileName,\n },\n \"Dependency can't be updated with a lock file\",\n );\n return [\n {\n artifactError: {\n fileName: lockFileName,\n stderr: `depType: \"${updateDep.depType}\", depName: \"${updateDep.depName}\" can't be updated with a lock file: \"${lockFileName}\"`,\n },\n },\n ];\n }\n }\n\n const pkgFileDir = upath.dirname(packageFileName);\n const { additionalNpmrcContent } = processHostRules();\n const npmrcContent = await getNpmrcContent(pkgFileDir);\n await updateNpmrcContent(pkgFileDir, npmrcContent, additionalNpmrcContent);\n\n try {\n await writeLocalFile(packageFileName, newPackageFileContent);\n\n if (isLockFileMaintenance) {\n await deleteLocalFile(lockFileName);\n }\n\n // run from its referred deno.json/deno.jsonc location if import map is used\n const importMapReferrerDep = updatedDeps.find(\n (dep) => dep.managerData?.importMapReferrer,\n );\n const cwdFile =\n importMapReferrerDep?.managerData?.importMapReferrer ?? packageFileName;\n\n const execOptions: ExecOptions = {\n cwdFile,\n docker: {},\n toolConstraints: [\n {\n toolName: 'deno',\n constraint: config.constraints?.deno,\n },\n ],\n };\n\n // \"deno install\" don't execute lifecycle scripts of package.json by default\n // https://docs.deno.com/runtime/reference/cli/install/#native-node.js-addons\n // deno.json(c) could have the `lock.frozen` field\n // we should always override the `frozen` flag due to if it would be specified true\n let command = 'deno install --frozen=false';\n\n // defaults as per https://docs.deno.com/runtime/fundamentals/security/#importing-from-the-web\n const defaultImportHosts = [\n 'deno.land:443',\n 'esm.sh:443',\n 'jsr.io:443',\n 'cdn.jsdelivr.net:443',\n 'raw.githubusercontent.com:443',\n 'gist.githubusercontent.com:443',\n ];\n const additionalImportHosts = hostRules\n .findAll({ hostType: 'npm' })\n .filter((rule) => rule.resolvedHost)\n .map((rule) => rule.resolvedHost);\n\n if (additionalImportHosts.length > 0) {\n // combine default and additional import hosts, removing duplicates\n const importHosts = [\n ...new Set([...defaultImportHosts, ...additionalImportHosts]),\n ].join(',');\n\n command += ` --allow-import=${quote(importHosts)}`;\n }\n\n // TODO: appending `--lockfile-only` is better to reduce disk usage\n // https://docs.deno.com/runtime/reference/cli/install/#options-lockfile-only\n await exec(command, execOptions);\n await resetNpmrcContent(pkgFileDir, npmrcContent);\n\n const newLockFileContent = await readLocalFile(lockFileName);\n if (\n !newLockFileContent ||\n Buffer.compare(oldLockFileContent, newLockFileContent) === 0\n ) {\n return null;\n }\n\n return [\n {\n file: {\n type: 'addition',\n path: lockFileName,\n contents: newLockFileContent,\n },\n },\n ];\n } catch (err) {\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n logger.warn({ lockfile: lockFileName, err }, `Failed to update lock file`);\n return [\n {\n artifactError: {\n fileName: lockFileName,\n stderr: err.message,\n },\n },\n ];\n }\n}\n"],"mappings":";;;;;;;;;;;AAsBA,eAAsB,gBACpB,gBACyC;CACzC,MAAM,EAAE,iBAAiB,aAAa,uBAAuB,WAC3D;CACF,OAAO,MAAM,wBAAwB,gBAAgB,EAAE;CACvD,MAAM,wBAAwB,OAAO,eAAe;CAEpD,IAAI,aAAa,WAAW,KAAK,CAAC,uBAAuB;EACvD,OAAO,MAAM,uCAAuC;EACpD,OAAO;CACT;CAGA,MAAM,eAAe,YAAY,EAAE,EAAE,YAAY,MAAM,OAAO,YAAY;CAE1E,IAAI,CAAC,cAAc;EACjB,OAAO,MAAM,+CAA+C;EAC5D,OAAO;CACT;CAEA,MAAM,qBAAqB,MAAM,cAAc,YAAY;CAC3D,IAAI,CAAC,oBAAoB;EACvB,OAAO,MAAM,kBAAkB,aAAa,4BAA4B;EACxE,OAAO,CACL,EACE,eAAe;GACb,UAAU;GACV,QAAQ,mBAAmB,aAAa;EAC1C,EACF,CACF;CACF;CAEA,KAAK,MAAM,aAAa,aACtB,IACE,UAAU,YAAY,WACtB,UAAU,YAAY,iBACtB;EACA,OAAO,KACL;GACE,SAAS,UAAU;GACnB,SAAS,UAAU;GACnB;EACF,GACA,8CACF;EACA,OAAO,CACL,EACE,eAAe;GACb,UAAU;GACV,QAAQ,aAAa,UAAU,QAAQ,eAAe,UAAU,QAAQ,wCAAwC,aAAa;EAC/H,EACF,CACF;CACF;CAGF,MAAM,aAAa,MAAM,QAAQ,eAAe;CAChD,MAAM,EAAE,2BAA2B,iBAAiB;CACpD,MAAM,eAAe,MAAM,gBAAgB,UAAU;CACrD,MAAM,mBAAmB,YAAY,cAAc,sBAAsB;CAEzE,IAAI;EACF,MAAM,eAAe,iBAAiB,qBAAqB;EAE3D,IAAI,uBACF,MAAM,gBAAgB,YAAY;EAUpC,MAAM,cAA2B;GAC/B,SAP2B,YAAY,MACtC,QAAQ,IAAI,aAAa,iBAGP,CAAC,EAAE,aAAa,qBAAqB;GAIxD,QAAQ,CAAC;GACT,iBAAiB,CACf;IACE,UAAU;IACV,YAAY,OAAO,aAAa;GAClC,CACF;EACF;EAMA,IAAI,UAAU;EAGd,MAAM,qBAAqB;GACzB;GACA;GACA;GACA;GACA;GACA;EACF;EACA,MAAM,wBAAwBA,QACnB,EAAE,UAAU,MAAM,CAAC,CAAC,CAC5B,QAAQ,SAAS,KAAK,YAAY,CAAC,CACnC,KAAK,SAAS,KAAK,YAAY;EAElC,IAAI,sBAAsB,SAAS,GAAG;GAEpC,MAAM,cAAc,CAClB,mBAAG,IAAI,IAAI,CAAC,GAAG,oBAAoB,GAAG,qBAAqB,CAAC,CAC9D,CAAC,CAAC,KAAK,GAAG;GAEV,WAAW,mBAAmB,MAAM,WAAW;EACjD;EAIA,MAAM,KAAK,SAAS,WAAW;EAC/B,MAAM,kBAAkB,YAAY,YAAY;EAEhD,MAAM,qBAAqB,MAAM,cAAc,YAAY;EAC3D,IACE,CAAC,sBACD,OAAO,QAAQ,oBAAoB,kBAAkB,MAAM,GAE3D,OAAO;EAGT,OAAO,CACL,EACE,MAAM;GACJ,MAAM;GACN,MAAM;GACN,UAAU;EACZ,EACF,CACF;CACF,SAAS,KAAK;EACZ,IAAI,IAAI,YAAA,mBACN,MAAM;EAER,OAAO,KAAK;GAAE,UAAU;GAAc;EAAI,GAAG,4BAA4B;EACzE,OAAO,CACL,EACE,eAAe;GACb,UAAU;GACV,QAAQ,IAAI;EACd,EACF,CACF;CACF;AACF"}
1
+ {"version":3,"file":"artifacts.js","names":["hostRules\n .findAll"],"sources":["../../../../lib/modules/manager/deno/artifacts.ts"],"sourcesContent":["import { isEmptyArray } from '@sindresorhus/is';\nimport { quote } from 'shlex';\nimport upath from 'upath';\nimport { TEMPORARY_ERROR } from '../../../constants/error-messages.ts';\nimport { logger } from '../../../logger/index.ts';\nimport { exec } from '../../../util/exec/index.ts';\nimport type { ExecOptions } from '../../../util/exec/types.ts';\nimport {\n deleteLocalFile,\n readLocalFile,\n writeLocalFile,\n} from '../../../util/fs/index.ts';\nimport * as hostRules from '../../../util/host-rules.ts';\nimport { processHostRules } from '../npm/post-update/rules.ts';\nimport {\n getNpmrcContent,\n resetNpmrcContent,\n updateNpmrcContent,\n} from '../npm/utils.ts';\nimport type { UpdateArtifact, UpdateArtifactsResult } from '../types.ts';\nimport { resolveToolConstraint } from '../util.ts';\nimport type { DenoManagerData } from './types.ts';\n\nexport async function updateArtifacts(\n updateArtifact: UpdateArtifact<DenoManagerData>,\n): Promise<UpdateArtifactsResult[] | null> {\n const { packageFileName, updatedDeps, newPackageFileContent, config } =\n updateArtifact;\n logger.debug(`deno.updateArtifacts(${packageFileName})`);\n const isLockFileMaintenance = config.updateType === 'lockFileMaintenance';\n\n if (isEmptyArray(updatedDeps) && !isLockFileMaintenance) {\n logger.debug('No updated deno deps - returning null');\n return null;\n }\n\n // falling back for lockFileMaintenance\n const lockFileName = updatedDeps[0]?.lockFiles?.[0] ?? config.lockFiles?.[0];\n\n if (!lockFileName) {\n logger.debug('No lock file found. Skipping artifact update.');\n return null;\n }\n\n const oldLockFileContent = await readLocalFile(lockFileName);\n if (!oldLockFileContent) {\n logger.debug(`Failed to read ${lockFileName}. Skipping artifact update.`);\n return [\n {\n artifactError: {\n fileName: lockFileName,\n stderr: `Failed to read \"${lockFileName}\"`,\n },\n },\n ];\n }\n\n for (const updateDep of updatedDeps) {\n if (\n updateDep.depType === 'tasks' ||\n updateDep.depType === 'tasks.command'\n ) {\n logger.warn(\n {\n depType: updateDep.depType,\n depName: updateDep.depName,\n lockFileName,\n },\n \"Dependency can't be updated with a lock file\",\n );\n return [\n {\n artifactError: {\n fileName: lockFileName,\n stderr: `depType: \"${updateDep.depType}\", depName: \"${updateDep.depName}\" can't be updated with a lock file: \"${lockFileName}\"`,\n },\n },\n ];\n }\n }\n\n const pkgFileDir = upath.dirname(packageFileName);\n const { additionalNpmrcContent } = processHostRules();\n const npmrcContent = await getNpmrcContent(pkgFileDir);\n await updateNpmrcContent(pkgFileDir, npmrcContent, additionalNpmrcContent);\n\n try {\n await writeLocalFile(packageFileName, newPackageFileContent);\n\n if (isLockFileMaintenance) {\n await deleteLocalFile(lockFileName);\n }\n\n // run from its referred deno.json/deno.jsonc location if import map is used\n const importMapReferrerDep = updatedDeps.find(\n (dep) => dep.managerData?.importMapReferrer,\n );\n const cwdFile =\n importMapReferrerDep?.managerData?.importMapReferrer ?? packageFileName;\n\n const execOptions: ExecOptions = {\n cwdFile,\n docker: {},\n toolConstraints: [\n {\n toolName: 'deno',\n constraint: await resolveToolConstraint(config, 'deno'),\n },\n ],\n };\n\n // \"deno install\" don't execute lifecycle scripts of package.json by default\n // https://docs.deno.com/runtime/reference/cli/install/#native-node.js-addons\n // deno.json(c) could have the `lock.frozen` field\n // we should always override the `frozen` flag due to if it would be specified true\n let command = 'deno install --frozen=false';\n\n // defaults as per https://docs.deno.com/runtime/fundamentals/security/#importing-from-the-web\n const defaultImportHosts = [\n 'deno.land:443',\n 'esm.sh:443',\n 'jsr.io:443',\n 'cdn.jsdelivr.net:443',\n 'raw.githubusercontent.com:443',\n 'gist.githubusercontent.com:443',\n ];\n const additionalImportHosts = hostRules\n .findAll({ hostType: 'npm' })\n .filter((rule) => rule.resolvedHost)\n .map((rule) => rule.resolvedHost);\n\n if (additionalImportHosts.length > 0) {\n // combine default and additional import hosts, removing duplicates\n const importHosts = [\n ...new Set([...defaultImportHosts, ...additionalImportHosts]),\n ].join(',');\n\n command += ` --allow-import=${quote(importHosts)}`;\n }\n\n // TODO: appending `--lockfile-only` is better to reduce disk usage\n // https://docs.deno.com/runtime/reference/cli/install/#options-lockfile-only\n await exec(command, execOptions);\n await resetNpmrcContent(pkgFileDir, npmrcContent);\n\n const newLockFileContent = await readLocalFile(lockFileName);\n if (\n !newLockFileContent ||\n Buffer.compare(oldLockFileContent, newLockFileContent) === 0\n ) {\n return null;\n }\n\n return [\n {\n file: {\n type: 'addition',\n path: lockFileName,\n contents: newLockFileContent,\n },\n },\n ];\n } catch (err) {\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n logger.warn({ lockfile: lockFileName, err }, `Failed to update lock file`);\n return [\n {\n artifactError: {\n fileName: lockFileName,\n stderr: err.message,\n },\n },\n ];\n }\n}\n"],"mappings":";;;;;;;;;;;;AAuBA,eAAsB,gBACpB,gBACyC;CACzC,MAAM,EAAE,iBAAiB,aAAa,uBAAuB,WAC3D;CACF,OAAO,MAAM,wBAAwB,gBAAgB,EAAE;CACvD,MAAM,wBAAwB,OAAO,eAAe;CAEpD,IAAI,aAAa,WAAW,KAAK,CAAC,uBAAuB;EACvD,OAAO,MAAM,uCAAuC;EACpD,OAAO;CACT;CAGA,MAAM,eAAe,YAAY,EAAE,EAAE,YAAY,MAAM,OAAO,YAAY;CAE1E,IAAI,CAAC,cAAc;EACjB,OAAO,MAAM,+CAA+C;EAC5D,OAAO;CACT;CAEA,MAAM,qBAAqB,MAAM,cAAc,YAAY;CAC3D,IAAI,CAAC,oBAAoB;EACvB,OAAO,MAAM,kBAAkB,aAAa,4BAA4B;EACxE,OAAO,CACL,EACE,eAAe;GACb,UAAU;GACV,QAAQ,mBAAmB,aAAa;EAC1C,EACF,CACF;CACF;CAEA,KAAK,MAAM,aAAa,aACtB,IACE,UAAU,YAAY,WACtB,UAAU,YAAY,iBACtB;EACA,OAAO,KACL;GACE,SAAS,UAAU;GACnB,SAAS,UAAU;GACnB;EACF,GACA,8CACF;EACA,OAAO,CACL,EACE,eAAe;GACb,UAAU;GACV,QAAQ,aAAa,UAAU,QAAQ,eAAe,UAAU,QAAQ,wCAAwC,aAAa;EAC/H,EACF,CACF;CACF;CAGF,MAAM,aAAa,MAAM,QAAQ,eAAe;CAChD,MAAM,EAAE,2BAA2B,iBAAiB;CACpD,MAAM,eAAe,MAAM,gBAAgB,UAAU;CACrD,MAAM,mBAAmB,YAAY,cAAc,sBAAsB;CAEzE,IAAI;EACF,MAAM,eAAe,iBAAiB,qBAAqB;EAE3D,IAAI,uBACF,MAAM,gBAAgB,YAAY;EAUpC,MAAM,cAA2B;GAC/B,SAP2B,YAAY,MACtC,QAAQ,IAAI,aAAa,iBAGP,CAAC,EAAE,aAAa,qBAAqB;GAIxD,QAAQ,CAAC;GACT,iBAAiB,CACf;IACE,UAAU;IACV,YAAY,MAAM,sBAAsB,QAAQ,MAAM;GACxD,CACF;EACF;EAMA,IAAI,UAAU;EAGd,MAAM,qBAAqB;GACzB;GACA;GACA;GACA;GACA;GACA;EACF;EACA,MAAM,wBAAwBA,QACnB,EAAE,UAAU,MAAM,CAAC,CAAC,CAC5B,QAAQ,SAAS,KAAK,YAAY,CAAC,CACnC,KAAK,SAAS,KAAK,YAAY;EAElC,IAAI,sBAAsB,SAAS,GAAG;GAEpC,MAAM,cAAc,CAClB,mBAAG,IAAI,IAAI,CAAC,GAAG,oBAAoB,GAAG,qBAAqB,CAAC,CAC9D,CAAC,CAAC,KAAK,GAAG;GAEV,WAAW,mBAAmB,MAAM,WAAW;EACjD;EAIA,MAAM,KAAK,SAAS,WAAW;EAC/B,MAAM,kBAAkB,YAAY,YAAY;EAEhD,MAAM,qBAAqB,MAAM,cAAc,YAAY;EAC3D,IACE,CAAC,sBACD,OAAO,QAAQ,oBAAoB,kBAAkB,MAAM,GAE3D,OAAO;EAGT,OAAO,CACL,EACE,MAAM;GACJ,MAAM;GACN,MAAM;GACN,UAAU;EACZ,EACF,CACF;CACF,SAAS,KAAK;EACZ,IAAI,IAAI,YAAA,mBACN,MAAM;EAER,OAAO,KAAK;GAAE,UAAU;GAAc;EAAI,GAAG,4BAA4B;EACzE,OAAO,CACL,EACE,eAAe;GACb,UAAU;GACV,QAAQ,IAAI;EACd,EACF,CACF;CACF;AACF"}
@@ -1,30 +1,33 @@
1
1
  import { logger } from "../../../logger/index.js";
2
2
  import { getSiblingFileName, readLocalFile } from "../../../util/fs/index.js";
3
3
  import { exec } from "../../../util/exec/index.js";
4
+ import { resolveToolConstraint } from "../util.js";
4
5
  import { isNonEmptyArray } from "@sindresorhus/is";
5
6
  import { quote } from "shlex";
6
7
  import semver from "semver";
7
8
  //#region lib/modules/manager/devbox/artifacts.ts
8
- async function updateArtifacts({ config: { constraints, isLockFileMaintenance }, packageFileName, updatedDeps }) {
9
+ async function updateArtifacts({ config, packageFileName, updatedDeps }) {
9
10
  const lockFileName = getSiblingFileName(packageFileName, "devbox.lock");
10
11
  if (!await readLocalFile(lockFileName, "utf8")) {
11
12
  logger.debug("No devbox.lock found");
12
13
  return null;
13
14
  }
14
- const supportsNoInstall = constraints?.devbox ? semver.intersects(constraints.devbox, ">=0.14.0") : true;
15
+ const nixConstraint = await resolveToolConstraint(config, "nix");
16
+ const devboxConstraint = await resolveToolConstraint(config, "devbox");
17
+ const supportsNoInstall = devboxConstraint ? semver.intersects(devboxConstraint, ">=0.14.0") : true;
15
18
  const execOptions = {
16
19
  cwdFile: packageFileName,
17
20
  toolConstraints: [{
18
21
  toolName: "nix",
19
- constraint: constraints?.nix
22
+ constraint: nixConstraint
20
23
  }, {
21
24
  toolName: "devbox",
22
- constraint: constraints?.devbox
25
+ constraint: devboxConstraint
23
26
  }],
24
27
  docker: {}
25
28
  };
26
29
  const cmd = [];
27
- if (isLockFileMaintenance) cmd.push(supportsNoInstall ? "devbox update --no-install" : "devbox update");
30
+ if (config.isLockFileMaintenance) cmd.push(supportsNoInstall ? "devbox update --no-install" : "devbox update");
28
31
  else if (isNonEmptyArray(updatedDeps)) {
29
32
  if (supportsNoInstall) {
30
33
  const updateCommands = updatedDeps.map((dep) => dep.depName && `devbox update ${quote(dep.depName)} --no-install`).filter((dep) => Boolean(dep));
@@ -1 +1 @@
1
- {"version":3,"file":"artifacts.js","names":[],"sources":["../../../../lib/modules/manager/devbox/artifacts.ts"],"sourcesContent":["import { isNonEmptyArray } from '@sindresorhus/is';\nimport semver from 'semver';\nimport { quote } from 'shlex';\nimport { logger } from '../../../logger/index.ts';\nimport { exec } from '../../../util/exec/index.ts';\nimport type { ExecOptions } from '../../../util/exec/types.ts';\nimport { getSiblingFileName, readLocalFile } from '../../../util/fs/index.ts';\nimport type { UpdateArtifact, UpdateArtifactsResult } from '../types.ts';\n\nexport async function updateArtifacts({\n config: { constraints, isLockFileMaintenance },\n packageFileName,\n updatedDeps,\n}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> {\n const lockFileName = getSiblingFileName(packageFileName, 'devbox.lock');\n const existingLockFileContent = await readLocalFile(lockFileName, 'utf8');\n if (!existingLockFileContent) {\n logger.debug('No devbox.lock found');\n return null;\n }\n\n const supportsNoInstall = constraints?.devbox\n ? semver.intersects(constraints.devbox, '>=0.14.0')\n : true;\n\n const execOptions: ExecOptions = {\n cwdFile: packageFileName,\n toolConstraints: [\n // we are required to install nix because devbox spawns nix commands internally\n // https://github.com/renovatebot/renovate/discussions/35382\n // https://github.com/jetify-com/devbox/issues/2585\n {\n toolName: 'nix',\n constraint: constraints?.nix,\n },\n {\n toolName: 'devbox',\n constraint: constraints?.devbox,\n },\n ],\n docker: {},\n };\n\n const cmd = [];\n if (isLockFileMaintenance) {\n cmd.push(\n supportsNoInstall ? 'devbox update --no-install' : 'devbox update',\n );\n } else if (isNonEmptyArray(updatedDeps)) {\n if (supportsNoInstall) {\n const updateCommands: string[] = updatedDeps\n .map(\n (dep) =>\n dep.depName && `devbox update ${quote(dep.depName)} --no-install`,\n )\n .filter((dep): dep is string => Boolean(dep));\n if (updateCommands.length) {\n cmd.push(...updateCommands);\n } else {\n logger.trace('No updated devbox packages - returning null');\n return null;\n }\n } else {\n cmd.push('devbox install');\n }\n } else {\n logger.trace('No updated devbox packages - returning null');\n return null;\n }\n\n const oldLockFileContent = await readLocalFile(lockFileName);\n if (!oldLockFileContent) {\n logger.trace(`No ${lockFileName} found`);\n return null;\n }\n\n try {\n await exec(cmd, execOptions);\n const newLockFileContent = await readLocalFile(lockFileName);\n\n if (\n !newLockFileContent ||\n Buffer.compare(oldLockFileContent, newLockFileContent) === 0\n ) {\n return null;\n }\n logger.trace('Returning updated devbox.lock');\n return [\n {\n file: {\n type: 'addition',\n path: lockFileName,\n contents: newLockFileContent,\n },\n },\n ];\n } catch (err) {\n logger.warn({ err }, 'Error updating devbox.lock');\n return [\n {\n artifactError: {\n fileName: lockFileName,\n stderr: err.message,\n },\n },\n ];\n }\n}\n"],"mappings":";;;;;;;AASA,eAAsB,gBAAgB,EACpC,QAAQ,EAAE,aAAa,yBACvB,iBACA,eAC0D;CAC1D,MAAM,eAAe,mBAAmB,iBAAiB,aAAa;CAEtE,IAAI,CAAC,MADiC,cAAc,cAAc,MAAM,GAC1C;EAC5B,OAAO,MAAM,sBAAsB;EACnC,OAAO;CACT;CAEA,MAAM,oBAAoB,aAAa,SACnC,OAAO,WAAW,YAAY,QAAQ,UAAU,IAChD;CAEJ,MAAM,cAA2B;EAC/B,SAAS;EACT,iBAAiB,CAIf;GACE,UAAU;GACV,YAAY,aAAa;EAC3B,GACA;GACE,UAAU;GACV,YAAY,aAAa;EAC3B,CACF;EACA,QAAQ,CAAC;CACX;CAEA,MAAM,MAAM,CAAC;CACb,IAAI,uBACF,IAAI,KACF,oBAAoB,+BAA+B,eACrD;MACK,IAAI,gBAAgB,WAAW,GAAG;EACvC,IAAI,mBAAmB;GACrB,MAAM,iBAA2B,YAC9B,KACE,QACC,IAAI,WAAW,iBAAiB,MAAM,IAAI,OAAO,EAAE,cACvD,CAAC,CACA,QAAQ,QAAuB,QAAQ,GAAG,CAAC;GAC9C,IAAI,eAAe,QACjB,IAAI,KAAK,GAAG,cAAc;QACrB;IACL,OAAO,MAAM,6CAA6C;IAC1D,OAAO;GACT;EACF,OACE,IAAI,KAAK,gBAAgB;CAE7B,OAAO;EACL,OAAO,MAAM,6CAA6C;EAC1D,OAAO;CACT;CAEA,MAAM,qBAAqB,MAAM,cAAc,YAAY;CAC3D,IAAI,CAAC,oBAAoB;EACvB,OAAO,MAAM,MAAM,aAAa,OAAO;EACvC,OAAO;CACT;CAEA,IAAI;EACF,MAAM,KAAK,KAAK,WAAW;EAC3B,MAAM,qBAAqB,MAAM,cAAc,YAAY;EAE3D,IACE,CAAC,sBACD,OAAO,QAAQ,oBAAoB,kBAAkB,MAAM,GAE3D,OAAO;EAET,OAAO,MAAM,+BAA+B;EAC5C,OAAO,CACL,EACE,MAAM;GACJ,MAAM;GACN,MAAM;GACN,UAAU;EACZ,EACF,CACF;CACF,SAAS,KAAK;EACZ,OAAO,KAAK,EAAE,IAAI,GAAG,4BAA4B;EACjD,OAAO,CACL,EACE,eAAe;GACb,UAAU;GACV,QAAQ,IAAI;EACd,EACF,CACF;CACF;AACF"}
1
+ {"version":3,"file":"artifacts.js","names":[],"sources":["../../../../lib/modules/manager/devbox/artifacts.ts"],"sourcesContent":["import { isNonEmptyArray } from '@sindresorhus/is';\nimport semver from 'semver';\nimport { quote } from 'shlex';\nimport { logger } from '../../../logger/index.ts';\nimport { exec } from '../../../util/exec/index.ts';\nimport type { ExecOptions } from '../../../util/exec/types.ts';\nimport { getSiblingFileName, readLocalFile } from '../../../util/fs/index.ts';\nimport type { UpdateArtifact, UpdateArtifactsResult } from '../types.ts';\nimport { resolveToolConstraint } from '../util.ts';\n\nexport async function updateArtifacts({\n config,\n packageFileName,\n updatedDeps,\n}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> {\n const lockFileName = getSiblingFileName(packageFileName, 'devbox.lock');\n const existingLockFileContent = await readLocalFile(lockFileName, 'utf8');\n if (!existingLockFileContent) {\n logger.debug('No devbox.lock found');\n return null;\n }\n\n const nixConstraint = await resolveToolConstraint(config, 'nix');\n const devboxConstraint = await resolveToolConstraint(config, 'devbox');\n\n const supportsNoInstall = devboxConstraint\n ? semver.intersects(devboxConstraint, '>=0.14.0')\n : true;\n\n const execOptions: ExecOptions = {\n cwdFile: packageFileName,\n toolConstraints: [\n // we are required to install nix because devbox spawns nix commands internally\n // https://github.com/renovatebot/renovate/discussions/35382\n // https://github.com/jetify-com/devbox/issues/2585\n {\n toolName: 'nix',\n constraint: nixConstraint,\n },\n {\n toolName: 'devbox',\n constraint: devboxConstraint,\n },\n ],\n docker: {},\n };\n\n const cmd = [];\n if (config.isLockFileMaintenance) {\n cmd.push(\n supportsNoInstall ? 'devbox update --no-install' : 'devbox update',\n );\n } else if (isNonEmptyArray(updatedDeps)) {\n if (supportsNoInstall) {\n const updateCommands: string[] = updatedDeps\n .map(\n (dep) =>\n dep.depName && `devbox update ${quote(dep.depName)} --no-install`,\n )\n .filter((dep): dep is string => Boolean(dep));\n if (updateCommands.length) {\n cmd.push(...updateCommands);\n } else {\n logger.trace('No updated devbox packages - returning null');\n return null;\n }\n } else {\n cmd.push('devbox install');\n }\n } else {\n logger.trace('No updated devbox packages - returning null');\n return null;\n }\n\n const oldLockFileContent = await readLocalFile(lockFileName);\n if (!oldLockFileContent) {\n logger.trace(`No ${lockFileName} found`);\n return null;\n }\n\n try {\n await exec(cmd, execOptions);\n const newLockFileContent = await readLocalFile(lockFileName);\n\n if (\n !newLockFileContent ||\n Buffer.compare(oldLockFileContent, newLockFileContent) === 0\n ) {\n return null;\n }\n logger.trace('Returning updated devbox.lock');\n return [\n {\n file: {\n type: 'addition',\n path: lockFileName,\n contents: newLockFileContent,\n },\n },\n ];\n } catch (err) {\n logger.warn({ err }, 'Error updating devbox.lock');\n return [\n {\n artifactError: {\n fileName: lockFileName,\n stderr: err.message,\n },\n },\n ];\n }\n}\n"],"mappings":";;;;;;;;AAUA,eAAsB,gBAAgB,EACpC,QACA,iBACA,eAC0D;CAC1D,MAAM,eAAe,mBAAmB,iBAAiB,aAAa;CAEtE,IAAI,CAAC,MADiC,cAAc,cAAc,MAAM,GAC1C;EAC5B,OAAO,MAAM,sBAAsB;EACnC,OAAO;CACT;CAEA,MAAM,gBAAgB,MAAM,sBAAsB,QAAQ,KAAK;CAC/D,MAAM,mBAAmB,MAAM,sBAAsB,QAAQ,QAAQ;CAErE,MAAM,oBAAoB,mBACtB,OAAO,WAAW,kBAAkB,UAAU,IAC9C;CAEJ,MAAM,cAA2B;EAC/B,SAAS;EACT,iBAAiB,CAIf;GACE,UAAU;GACV,YAAY;EACd,GACA;GACE,UAAU;GACV,YAAY;EACd,CACF;EACA,QAAQ,CAAC;CACX;CAEA,MAAM,MAAM,CAAC;CACb,IAAI,OAAO,uBACT,IAAI,KACF,oBAAoB,+BAA+B,eACrD;MACK,IAAI,gBAAgB,WAAW,GAAG;EACvC,IAAI,mBAAmB;GACrB,MAAM,iBAA2B,YAC9B,KACE,QACC,IAAI,WAAW,iBAAiB,MAAM,IAAI,OAAO,EAAE,cACvD,CAAC,CACA,QAAQ,QAAuB,QAAQ,GAAG,CAAC;GAC9C,IAAI,eAAe,QACjB,IAAI,KAAK,GAAG,cAAc;QACrB;IACL,OAAO,MAAM,6CAA6C;IAC1D,OAAO;GACT;EACF,OACE,IAAI,KAAK,gBAAgB;CAE7B,OAAO;EACL,OAAO,MAAM,6CAA6C;EAC1D,OAAO;CACT;CAEA,MAAM,qBAAqB,MAAM,cAAc,YAAY;CAC3D,IAAI,CAAC,oBAAoB;EACvB,OAAO,MAAM,MAAM,aAAa,OAAO;EACvC,OAAO;CACT;CAEA,IAAI;EACF,MAAM,KAAK,KAAK,WAAW;EAC3B,MAAM,qBAAqB,MAAM,cAAc,YAAY;EAE3D,IACE,CAAC,sBACD,OAAO,QAAQ,oBAAoB,kBAAkB,MAAM,GAE3D,OAAO;EAET,OAAO,MAAM,+BAA+B;EAC5C,OAAO,CACL,EACE,MAAM;GACJ,MAAM;GACN,MAAM;GACN,UAAU;EACZ,EACF,CACF;CACF,SAAS,KAAK;EACZ,OAAO,KAAK,EAAE,IAAI,GAAG,4BAA4B;EACjD,OAAO,CACL,EACE,eAAe;GACb,UAAU;GACV,QAAQ,IAAI;EACd,EACF,CACF;CACF;AACF"}
@@ -3,38 +3,38 @@ const hashMap = /* @__PURE__ */ new Map();
3
3
  hashMap.set("ansible", "a52394a36ac5517f7330473c31d93aa05b2ce607c5e951b48f25a4693cd20a81");
4
4
  hashMap.set("ansible-galaxy", "0a264d6be73953d801510fdeff271e4071c274339569c6dab4e2a128eaf4869f");
5
5
  hashMap.set("ant", "2df5943cf0ed19a21b94df13729dbb925655548130caf37e3e22bebaed518e17");
6
- hashMap.set("apm", "146e023bced69a0625adfac29148a5254d9457ad5a48931c7047299f6452cb43");
6
+ hashMap.set("apm", "ca7c2342c04489253cd8f38d294a4c1428010115c2be22b3e0812dacf9881244");
7
7
  hashMap.set("argocd", "cff9cd22257bc460ae4b9936570bf0ed5585f280a55d26629deaeeb0bfee8eb5");
8
8
  hashMap.set("asdf", "430eb99b58171700c8a59c78b9e648575e9b176b781d90dd10a710f7b69015bb");
9
9
  hashMap.set("azure-pipelines", "6bf7782e8a02fc87dc5d84aab59e517c09df51fd23cf57805e62207dbd5efdb5");
10
10
  hashMap.set("batect", "375d39b432013bedb1330cf40a2199dd822751b28578214f219e7bab98594b8d");
11
11
  hashMap.set("batect-wrapper", "d999355511ea7f4053325a18b8cfc8d2b586c61e6760c35e557d383a673e3939");
12
12
  hashMap.set("bazel", "ef00591c6f09069550ef97ff7ff5e387b9dd3df51cdecc9ef941169b19315396");
13
- hashMap.set("bazel-module", "65e6cb3d6c0d9b3b1fda22388b6c72148c518cd06e8c434b46e4645384381bad");
14
- hashMap.set("bazelisk", "a83328e3c5b4c3f5af2e425f680b4852c08ef5c6d035a248e09577136cf3b14d");
13
+ hashMap.set("bazel-module", "9fbba0339f9f7785d52ab85c5f0f6385003093c063483c13feccba13ae438bef");
14
+ hashMap.set("bazelisk", "770f75a746dc6ba90c518788d5987d7df4243ef9eee122d1bb0556a93d6e1b11");
15
15
  hashMap.set("bicep", "7246e0bfc06e0e28cbb03ac088c5591f648956b086e106aeb251fe5d628329db");
16
16
  hashMap.set("bitbucket-pipelines", "59c0503494ab1442b127914503c01b97ac17b6742b19c632292d5aa24de115cd");
17
17
  hashMap.set("bitrise", "478dfd316221fad7c29e177c70d1018d832fb2626b53308a5d0f1f0380e69f42");
18
18
  hashMap.set("buildkite", "b8b404f53cd5d61c39153fddf93945e621471c4ac6aa9960c881cd868922bb4c");
19
19
  hashMap.set("buildpacks", "6bef3cb04d66b5cfbb195adb4829bcbccae6408518706744d291bacf0610421f");
20
- hashMap.set("bun", "3d40239b69d462ab843562ff8ee5bfacbc46d4976d38d0af17d037973f174e3e");
20
+ hashMap.set("bun", "684f46dd3cef4d30f9e4ae97c384a38d032ebf3d0bfe9b471ab1772c7b26827a");
21
21
  hashMap.set("bun-version", "df3ae8e4a5de1fa1b4544f3d7fc8117e80adb1e151c46d1ede54a4dbea6521e4");
22
- hashMap.set("bundler", "9c5b8a2e7b84a545bbd6cc74c1fd9422f167da67c41bcc9bfb4cc2098b41de0c");
22
+ hashMap.set("bundler", "c8b4b76b89a2357cacdc34adfab00dcde862103121386552d17cca5761b533ec");
23
23
  hashMap.set("cake", "9ebd8b481220b30a8860121d26184540a1a2fcc05ef780df9295dea39b386fad");
24
- hashMap.set("cargo", "e8f43c68e874a9f3e684c2f3323b77a2799c49a1a538495ae75fb3a3bdd1f786");
24
+ hashMap.set("cargo", "63721e2683b30cffc5ba87c75f919dc61a555f7741fa479f7446ef98c0ae9d5d");
25
25
  hashMap.set("cdnurl", "9a81c8e3c6ad6c788498c99fc1067ffdfcd92a427c3afaf8c0130975d83131f2");
26
26
  hashMap.set("circleci", "91cbeb33ea20f9838e2c81a1195eb806f0b38fa282bc3679f62552f20575ca85");
27
27
  hashMap.set("cloudbuild", "f4e40388944652c8a19f8518771ac8d3f3c4ccf81ddef0e68b463aca833cb73c");
28
28
  hashMap.set("cocoapods", "f832e2beef885bb3fd697ed9bb3e8cd742926bfec37ff41212edd2dbb4edb3ba");
29
- hashMap.set("composer", "3906e56e8decf5d5e51cccdb46d2ce4eb4ff8efc8b0596b859f0f7210e13ed45");
30
- hashMap.set("conan", "1cfe3887dba15d974fbbad3c0f49b7b745a6bad194ff95f067976ce3ae47d2bf");
31
- hashMap.set("copier", "d70688a4a74d7239229a69eb1e3c5af19da0a38d12b9324c92ff86776fa0dec7");
29
+ hashMap.set("composer", "74a802074ed550801b7536d36ed9880e3a95ae8f340c590446c017fb3ef36de9");
30
+ hashMap.set("conan", "8d46e9a30ae628e26118aea10a98d1b846f7c5d96d51ce24693437d555f6d125");
31
+ hashMap.set("copier", "10ae4d7f8ff35faf3a3f9f25bf4c969ea960e19aaf8c012aee11f93f4d10533e");
32
32
  hashMap.set("cpanfile", "07813fec3f3c2197056500e9266a0553b9774c02f2c74d5ca2e213188c7c12d3");
33
33
  hashMap.set("crossplane", "5c26b1201a1a51454ffb94d829e223a76a781569bf79cdb1e47087c30233ec40");
34
34
  hashMap.set("crow", "eb9a5f9f95041855dded67bcce3dd54724f690995ed6268d272e8a666ff28fd0");
35
- hashMap.set("deno", "bdb28fcfdc032e3ea75d2569213fef207fd18bcaa46a6e4ea933150e49df24bf");
35
+ hashMap.set("deno", "917fdbfbad58fd7f57933646a760d91768368df563ce5eaf34a2bba165164a12");
36
36
  hashMap.set("deps-edn", "7b6ac92be04b44fdf1da8755550a6417bb294908158119c8fff10adeb05048d2");
37
- hashMap.set("devbox", "abca7468e2363c04b7e4b85bfdbc75e11ed38e9d3b84b9ccc6d1a4c34a8fc1fb");
37
+ hashMap.set("devbox", "a40050cc61bd9b5d500ec111abb17bb15d5f82ab5b7699f66f628307ba8382c9");
38
38
  hashMap.set("devcontainer", "24320ed1cb6191d04cb8b2707214d82c08c682597aed1d84f250aa00ad1632ec");
39
39
  hashMap.set("docker-compose", "a9c27711356fbda8dd14f21e046936e1e43f18c5528325b468d89937f76fe1e7");
40
40
  hashMap.set("dockerfile", "a83e9e93f31576697d45fd60a0b44f7d14a610752e695a62507624ab2dbb2162");
@@ -43,54 +43,54 @@ hashMap.set("fleet", "4942d52e82f35c41e2d46cf76f426e2d91b350338cfc0bbcb97e8aaae2
43
43
  hashMap.set("flux", "c67562b40cc7cd5e22b4c1ac642fc92ef46db79da9cea174e8aefcc20dde9811");
44
44
  hashMap.set("fvm", "9b161df0f14bc6e536368952adf373e343630097121a913cea60ee284027fb90");
45
45
  hashMap.set("git-submodules", "df8bb92b2906d8cddda2d4b302ee503f8002e3554d32d74cef2f584fe891f38f");
46
- hashMap.set("github-actions", "7cd8723b0f55660f50698ad7eec1a6e9fb8262ce24124a19ddad05a3baedbb53");
46
+ hashMap.set("github-actions", "d64e03fc8e00f24e1bf287de7a022fefedd11c2c0a5a1629238e2b5e07b2011d");
47
47
  hashMap.set("gitlabci", "a5e1e66ef461e1c1e71062f85f35a212417e23627f4b002810f9a98295d6e672");
48
48
  hashMap.set("gitlabci-include", "8860a15ab516fde00694f9bd9bf56fce4addafe5a55b5ddb9a4ec477d301d351");
49
49
  hashMap.set("glasskube", "93e7b9000a17efa15a1abaaf320b5af9169b1ecd828fc0c881d98570ef9d9e30");
50
- hashMap.set("gleam", "a3bd05c4814eb57872d39979a40342a8ee23e61a85e2ab25e84346e8215dadc1");
51
- hashMap.set("gomod", "1ed58f0af452a6776ae1899466851bab659f8287c90cff96619068d8184048d5");
52
- hashMap.set("gradle", "ef9db616bf60e9a3623fff0e41df274a457333a37f37c24f3841a3ca3a531449");
53
- hashMap.set("gradle-wrapper", "77f7e75be2597b847fc821ff8ff5bb4b3e37ab3cc4e780e22ce75e0342becac8");
50
+ hashMap.set("gleam", "5e9b9f5f914afe5ed7b526c06c65111e3716d2dea9b0cbe7907bbc96db1064a3");
51
+ hashMap.set("gomod", "fa22f3f0b0af7b7f769cf3541bd38fdf67365965ce6c8a470f88155958991c24");
52
+ hashMap.set("gradle", "9e3ff52ce4ad2555929acdd4d32c417c4ef8714c23a92f2893ecc580fa4d6064");
53
+ hashMap.set("gradle-wrapper", "73ba30c34955fab7737454b5cff9aca6d1b5607d53c17c9e13d8ad96f6eaae87");
54
54
  hashMap.set("haskell-cabal", "f158b7725e3143dfd2950e3de0bbccc2a61cd7eba87f7a54c5057e01252348e2");
55
55
  hashMap.set("helm-requirements", "7ee9dace4c036dfe113c0c0e46369d8b83a739caa831660142ca98d3236a180a");
56
56
  hashMap.set("helm-values", "01069e887d4f3b55ca62a3c0dc66d8620264e1426207be9eb240a10c1ad5e412");
57
- hashMap.set("helmfile", "0084e0b81794d57ee7937a76f652a7f06be49fe045a22715773153486e1b4849");
57
+ hashMap.set("helmfile", "163baefbe5323bb5e671a73b72eaaecfbd03b798c70fd4117e191e143f2f7a4f");
58
58
  hashMap.set("helmsman", "951deeb3355da751ef39c9e932b26ea749450e32e75759e4b5fc29359e100b37");
59
- hashMap.set("helmv3", "b9be11ed173f52808328e1d180289aa0a005ad64bb6261ad3e2e0269a18ec18f");
59
+ hashMap.set("helmv3", "4a3cf47072978eb131d70cd13f3d0bbd4408b0290be2a798a4cbf6103189269b");
60
60
  hashMap.set("hermit", "0fb25b7766c3a264fbb765ff75b1542b24136c4c9f933696d4a5aecfed637071");
61
61
  hashMap.set("homeassistant-manifest", "05043c6db870cffbb6f8f3e351c025e3de227eaae0b24134b796aec46f84b65f");
62
62
  hashMap.set("homebrew", "9c64a4f1475b1c2052372e566c9190f32ae8acd1c54313031d55ae8772388367");
63
63
  hashMap.set("html", "81fa6c2bf2b868596584a48b949645207a2aa3081951ed99183ee50b70b77d5f");
64
64
  hashMap.set("jenkins", "7bfb09418a132e052579196633bac78ac947cf93f1e70748ea1b3da929874b87");
65
- hashMap.set("jsonnet-bundler", "06d163b939b258e1e2847a12a1249cb7d68d77c7bcf13c6d1a0a916744eba5cc");
65
+ hashMap.set("jsonnet-bundler", "4cedeb0394e5c38361d1868ff45b4f34747ab8c492378b6e63dcaf1f4f3c024d");
66
66
  hashMap.set("kotlin-script", "95ebc844c040ca047321b207d525220e29774a2a1fe06f9639e8353c66908564");
67
67
  hashMap.set("kubernetes", "321e7d77fb3600dd4c00a86eaa1294927e7f92300b74fa2977d813dcaa3bb4de");
68
- hashMap.set("kustomize", "558fcfe5b20f1eb4aba0d3c755a060bb4561611e99db7000786ce4edcd3f7894");
68
+ hashMap.set("kustomize", "eb9d6d6aa65a738d6c658a6c9a73a9e86761360a608cf0ba8000d6c554dbc0c7");
69
69
  hashMap.set("leiningen", "a7295160ce901e08e12be75cb3aaf6b9a199de811eb60b618feb773f7c552bba");
70
70
  hashMap.set("maven", "c110b99291c2a5bc82cf7a69330275e9bbd7dc8ba3e9e987611dfcffbe002d8d");
71
- hashMap.set("maven-wrapper", "db967206d960b12d7c58d78132808d3c412087ababf5c59444262782e4434c6a");
71
+ hashMap.set("maven-wrapper", "6e53b6e4abf1d20b75094c7a70d66b4a5ac39954f009aa401f5e55dada8be4d0");
72
72
  hashMap.set("meteor", "4636a47ba4dcfff19fe662572ef7a40d17146be3c966e00ef437e1fc8de92776");
73
73
  hashMap.set("mint", "248fe4f1ea5c985921c286785792c97e06fc41f402b2d45df82f6aecd17f710e");
74
- hashMap.set("mise", "8a27fa2867ae2b0635c1bf06506b32f740f691f36cbab92ff0decf3dd0484345");
75
- hashMap.set("mix", "473bb870c00b270faae93c4614873f644ad516f762acf07f773b12a7b8e01d19");
76
- hashMap.set("nix", "a9d4ae3f9f01abb71dc9ebc12a9cd8bec237ad9d2dabfbf4f5ffd59e56c9a612");
74
+ hashMap.set("mise", "96709a29a967c829b527f38e3d98cdb9731310f2fb52a6d46fa47397d2cf8440");
75
+ hashMap.set("mix", "0f79163dc2a1c896599d152be635c23beaf16812ae3d8fbfffec98c7bd0de872");
76
+ hashMap.set("nix", "0f80f0b81f2197a7e588be5c115a32a826fc184593f4e879f7b60fafd97a977e");
77
77
  hashMap.set("nodenv", "ac652c28481b001f7471f4183eac07b45d98ecbe83efc275830b0a1b2e0459b8");
78
- hashMap.set("npm", "c73858631143d9627d5cc615a874c3d74edd643161e33380b615dda7c8f1bbed");
79
- hashMap.set("nuget", "136bc3226e77b8fe65940454dc2c858fde86c2e0da6dbbdf71a5269ab137caee");
78
+ hashMap.set("npm", "30c78bc1c29eeecbdedb4eacc52bd93eedfb07279fd385f893193dcac6196466");
79
+ hashMap.set("nuget", "d6acdee647e7e0f3568c46154a2e32c425e44b1044634919530e234035eddeff");
80
80
  hashMap.set("nvm", "3eb77c7b0acf6d64753de78fad2499b352719853aa6872878c40675d14152322");
81
81
  hashMap.set("ocb", "032b216684c14b0954e0bb019513a2aca3faaee5748587acb668d377d7c891ca");
82
82
  hashMap.set("osgi", "d6567a733ef3983112b46fdccd7ceebfcd48411104e0c6b6e714d4310db48024");
83
- hashMap.set("pep621", "36591cbca53de57a1160d8794af950c87e048f3dda2b1b155354c409a0217acc");
83
+ hashMap.set("pep621", "52450676f8b0e05134b3e8947b832195ef40bcaec1ce43d71351a2f797b80d75");
84
84
  hashMap.set("pep723", "b96683163de63ed93207ec0538066705b1e58a1cd5b8bd11c63fc28b26bddba1");
85
- hashMap.set("pip-compile", "ad43905a365c677315d2dcba725aef9b82c677d6ff30ee358f890f10faeb035f");
86
- hashMap.set("pip_requirements", "953af0f3b41c2c1027327a8b1f37675c72892a8b03fdfbc3862ab63a1c3c72bf");
85
+ hashMap.set("pip-compile", "7e418b8bdaeed38c1372eb19e0ae1c64999000e128d8754e37368638037b4c5c");
86
+ hashMap.set("pip_requirements", "bf3a407f72abf711230247bef94ba5dc84c08a35107b0f017912fad66afa716a");
87
87
  hashMap.set("pip_setup", "df18fba2bdcf48f3ca12a8f7e5cd28df31e2368d5528127277038ef4206eca79");
88
- hashMap.set("pipenv", "fc2fd2e06753fada34958eb190c6d9236271b81a8a4cf1a354937a209cef06a9");
89
- hashMap.set("pixi", "eb3a49c742d7de368b631c0b4fc5ae1a011b5ce85752e6bdf870f24c3e548bc5");
90
- hashMap.set("poetry", "33dfbd8bddcf2aca101be8c869cca7ba8d33a7224c7b86296718814fde8241cb");
88
+ hashMap.set("pipenv", "cd974eadd649ba8c9c2e3c7b564a49c8bb2ce95d6df043a7e942364f574c7613");
89
+ hashMap.set("pixi", "83f94ec64144ce2adad0901844ab1e9c1636bb5c77bd6578b22b98ab401d34b4");
90
+ hashMap.set("poetry", "b2b917c200d25e01a3a198deb3bf33353535f27430142111cfab816c03bb966d");
91
91
  hashMap.set("pre-commit", "a8fa968d6308947c8a6eedd799ea449e548e918971acdc250b627e86a446dc23");
92
92
  hashMap.set("proto", "412053d4550026b4ace490b46e970915b87ec1abf0b0a0c6c8c58ccf1fc16843");
93
- hashMap.set("pub", "d0c11bb1076c7b84a3f30458d8747d5cdfd0126cc52a8d8218ab77c46287219b");
93
+ hashMap.set("pub", "8e7c65dfd1999de4f7c44392e949a4d8f4701eb86df59d550e4657feb06b1872");
94
94
  hashMap.set("puppet", "ba58ab689e44acc8f61c3569ab8b40fde01b8a9d3aad712708e2a419e57d8b45");
95
95
  hashMap.set("pyenv", "9ede8becc97774f9040b40f4472d3e933534b596e04c360bfe0f3c6f95f25182");
96
96
  hashMap.set("quadlet", "e1fc88a4e14cd595e89bb3d79b4adf2add3ce5eb80f75276e712c32598cca53d");
@@ -114,7 +114,7 @@ hashMap.set("travis", "04c94f72622003195c8ea8147c8fbd93003f444ec807ce33f2ada2384
114
114
  hashMap.set("typst", "d080a79fbd961c6e21fcc505d544b7e0ff2126142acb1dcabdf6abbcd9339248");
115
115
  hashMap.set("unity3d", "f13e25e115e3443f4e16cf31578acffa78fb1a5e23339680a92d8d6de6052920");
116
116
  hashMap.set("velaci", "fda00ddb7cc23e9a37e0a8a253151df0a6930b4276d3e4f78cc54b9ac09af7de");
117
- hashMap.set("vendir", "59e860a89a35f58760296ecc076310f672a0211740dcebca20e38b04dc0c5553");
117
+ hashMap.set("vendir", "7db907b3b77ef5f3465f3c4339fbab56bbcdfd1bf34b3d33e4c178d2e07e23e7");
118
118
  hashMap.set("woodpecker", "6110d3bec33aaeb3511d4bbfa896cec3c8e02fb04a6cff50c9ba81061c851045");
119
119
  hashMap.set("xcodegen", "dad511d88a9ce1dbdde8b9731f3da7f2bdaa4ca8a083294ee58d56da62ab1683");
120
120
  hashMap.set("jsonata", "416bcf61144b276b3112814c6e6d261aa29608f46fbb0516c471d35c16f8f0d7");
@@ -1 +1 @@
1
- {"version":3,"file":"fingerprint.generated.js","names":[],"sources":["../../../lib/modules/manager/fingerprint.generated.ts"],"sourcesContent":["export const hashMap = new Map<string, string>();\n\nhashMap.set('ansible','a52394a36ac5517f7330473c31d93aa05b2ce607c5e951b48f25a4693cd20a81');\nhashMap.set('ansible-galaxy','0a264d6be73953d801510fdeff271e4071c274339569c6dab4e2a128eaf4869f');\nhashMap.set('ant','2df5943cf0ed19a21b94df13729dbb925655548130caf37e3e22bebaed518e17');\nhashMap.set('apm','146e023bced69a0625adfac29148a5254d9457ad5a48931c7047299f6452cb43');\nhashMap.set('argocd','cff9cd22257bc460ae4b9936570bf0ed5585f280a55d26629deaeeb0bfee8eb5');\nhashMap.set('asdf','430eb99b58171700c8a59c78b9e648575e9b176b781d90dd10a710f7b69015bb');\nhashMap.set('azure-pipelines','6bf7782e8a02fc87dc5d84aab59e517c09df51fd23cf57805e62207dbd5efdb5');\nhashMap.set('batect','375d39b432013bedb1330cf40a2199dd822751b28578214f219e7bab98594b8d');\nhashMap.set('batect-wrapper','d999355511ea7f4053325a18b8cfc8d2b586c61e6760c35e557d383a673e3939');\nhashMap.set('bazel','ef00591c6f09069550ef97ff7ff5e387b9dd3df51cdecc9ef941169b19315396');\nhashMap.set('bazel-module','65e6cb3d6c0d9b3b1fda22388b6c72148c518cd06e8c434b46e4645384381bad');\nhashMap.set('bazelisk','a83328e3c5b4c3f5af2e425f680b4852c08ef5c6d035a248e09577136cf3b14d');\nhashMap.set('bicep','7246e0bfc06e0e28cbb03ac088c5591f648956b086e106aeb251fe5d628329db');\nhashMap.set('bitbucket-pipelines','59c0503494ab1442b127914503c01b97ac17b6742b19c632292d5aa24de115cd');\nhashMap.set('bitrise','478dfd316221fad7c29e177c70d1018d832fb2626b53308a5d0f1f0380e69f42');\nhashMap.set('buildkite','b8b404f53cd5d61c39153fddf93945e621471c4ac6aa9960c881cd868922bb4c');\nhashMap.set('buildpacks','6bef3cb04d66b5cfbb195adb4829bcbccae6408518706744d291bacf0610421f');\nhashMap.set('bun','3d40239b69d462ab843562ff8ee5bfacbc46d4976d38d0af17d037973f174e3e');\nhashMap.set('bun-version','df3ae8e4a5de1fa1b4544f3d7fc8117e80adb1e151c46d1ede54a4dbea6521e4');\nhashMap.set('bundler','9c5b8a2e7b84a545bbd6cc74c1fd9422f167da67c41bcc9bfb4cc2098b41de0c');\nhashMap.set('cake','9ebd8b481220b30a8860121d26184540a1a2fcc05ef780df9295dea39b386fad');\nhashMap.set('cargo','e8f43c68e874a9f3e684c2f3323b77a2799c49a1a538495ae75fb3a3bdd1f786');\nhashMap.set('cdnurl','9a81c8e3c6ad6c788498c99fc1067ffdfcd92a427c3afaf8c0130975d83131f2');\nhashMap.set('circleci','91cbeb33ea20f9838e2c81a1195eb806f0b38fa282bc3679f62552f20575ca85');\nhashMap.set('cloudbuild','f4e40388944652c8a19f8518771ac8d3f3c4ccf81ddef0e68b463aca833cb73c');\nhashMap.set('cocoapods','f832e2beef885bb3fd697ed9bb3e8cd742926bfec37ff41212edd2dbb4edb3ba');\nhashMap.set('composer','3906e56e8decf5d5e51cccdb46d2ce4eb4ff8efc8b0596b859f0f7210e13ed45');\nhashMap.set('conan','1cfe3887dba15d974fbbad3c0f49b7b745a6bad194ff95f067976ce3ae47d2bf');\nhashMap.set('copier','d70688a4a74d7239229a69eb1e3c5af19da0a38d12b9324c92ff86776fa0dec7');\nhashMap.set('cpanfile','07813fec3f3c2197056500e9266a0553b9774c02f2c74d5ca2e213188c7c12d3');\nhashMap.set('crossplane','5c26b1201a1a51454ffb94d829e223a76a781569bf79cdb1e47087c30233ec40');\nhashMap.set('crow','eb9a5f9f95041855dded67bcce3dd54724f690995ed6268d272e8a666ff28fd0');\nhashMap.set('deno','bdb28fcfdc032e3ea75d2569213fef207fd18bcaa46a6e4ea933150e49df24bf');\nhashMap.set('deps-edn','7b6ac92be04b44fdf1da8755550a6417bb294908158119c8fff10adeb05048d2');\nhashMap.set('devbox','abca7468e2363c04b7e4b85bfdbc75e11ed38e9d3b84b9ccc6d1a4c34a8fc1fb');\nhashMap.set('devcontainer','24320ed1cb6191d04cb8b2707214d82c08c682597aed1d84f250aa00ad1632ec');\nhashMap.set('docker-compose','a9c27711356fbda8dd14f21e046936e1e43f18c5528325b468d89937f76fe1e7');\nhashMap.set('dockerfile','a83e9e93f31576697d45fd60a0b44f7d14a610752e695a62507624ab2dbb2162');\nhashMap.set('droneci','e2039bb37c2d63c53027b188d1f0faa7c8923dcbfe6cf3851fba8d4e9f43a358');\nhashMap.set('fleet','4942d52e82f35c41e2d46cf76f426e2d91b350338cfc0bbcb97e8aaae2a1ac0b');\nhashMap.set('flux','c67562b40cc7cd5e22b4c1ac642fc92ef46db79da9cea174e8aefcc20dde9811');\nhashMap.set('fvm','9b161df0f14bc6e536368952adf373e343630097121a913cea60ee284027fb90');\nhashMap.set('git-submodules','df8bb92b2906d8cddda2d4b302ee503f8002e3554d32d74cef2f584fe891f38f');\nhashMap.set('github-actions','7cd8723b0f55660f50698ad7eec1a6e9fb8262ce24124a19ddad05a3baedbb53');\nhashMap.set('gitlabci','a5e1e66ef461e1c1e71062f85f35a212417e23627f4b002810f9a98295d6e672');\nhashMap.set('gitlabci-include','8860a15ab516fde00694f9bd9bf56fce4addafe5a55b5ddb9a4ec477d301d351');\nhashMap.set('glasskube','93e7b9000a17efa15a1abaaf320b5af9169b1ecd828fc0c881d98570ef9d9e30');\nhashMap.set('gleam','a3bd05c4814eb57872d39979a40342a8ee23e61a85e2ab25e84346e8215dadc1');\nhashMap.set('gomod','1ed58f0af452a6776ae1899466851bab659f8287c90cff96619068d8184048d5');\nhashMap.set('gradle','ef9db616bf60e9a3623fff0e41df274a457333a37f37c24f3841a3ca3a531449');\nhashMap.set('gradle-wrapper','77f7e75be2597b847fc821ff8ff5bb4b3e37ab3cc4e780e22ce75e0342becac8');\nhashMap.set('haskell-cabal','f158b7725e3143dfd2950e3de0bbccc2a61cd7eba87f7a54c5057e01252348e2');\nhashMap.set('helm-requirements','7ee9dace4c036dfe113c0c0e46369d8b83a739caa831660142ca98d3236a180a');\nhashMap.set('helm-values','01069e887d4f3b55ca62a3c0dc66d8620264e1426207be9eb240a10c1ad5e412');\nhashMap.set('helmfile','0084e0b81794d57ee7937a76f652a7f06be49fe045a22715773153486e1b4849');\nhashMap.set('helmsman','951deeb3355da751ef39c9e932b26ea749450e32e75759e4b5fc29359e100b37');\nhashMap.set('helmv3','b9be11ed173f52808328e1d180289aa0a005ad64bb6261ad3e2e0269a18ec18f');\nhashMap.set('hermit','0fb25b7766c3a264fbb765ff75b1542b24136c4c9f933696d4a5aecfed637071');\nhashMap.set('homeassistant-manifest','05043c6db870cffbb6f8f3e351c025e3de227eaae0b24134b796aec46f84b65f');\nhashMap.set('homebrew','9c64a4f1475b1c2052372e566c9190f32ae8acd1c54313031d55ae8772388367');\nhashMap.set('html','81fa6c2bf2b868596584a48b949645207a2aa3081951ed99183ee50b70b77d5f');\nhashMap.set('jenkins','7bfb09418a132e052579196633bac78ac947cf93f1e70748ea1b3da929874b87');\nhashMap.set('jsonnet-bundler','06d163b939b258e1e2847a12a1249cb7d68d77c7bcf13c6d1a0a916744eba5cc');\nhashMap.set('kotlin-script','95ebc844c040ca047321b207d525220e29774a2a1fe06f9639e8353c66908564');\nhashMap.set('kubernetes','321e7d77fb3600dd4c00a86eaa1294927e7f92300b74fa2977d813dcaa3bb4de');\nhashMap.set('kustomize','558fcfe5b20f1eb4aba0d3c755a060bb4561611e99db7000786ce4edcd3f7894');\nhashMap.set('leiningen','a7295160ce901e08e12be75cb3aaf6b9a199de811eb60b618feb773f7c552bba');\nhashMap.set('maven','c110b99291c2a5bc82cf7a69330275e9bbd7dc8ba3e9e987611dfcffbe002d8d');\nhashMap.set('maven-wrapper','db967206d960b12d7c58d78132808d3c412087ababf5c59444262782e4434c6a');\nhashMap.set('meteor','4636a47ba4dcfff19fe662572ef7a40d17146be3c966e00ef437e1fc8de92776');\nhashMap.set('mint','248fe4f1ea5c985921c286785792c97e06fc41f402b2d45df82f6aecd17f710e');\nhashMap.set('mise','8a27fa2867ae2b0635c1bf06506b32f740f691f36cbab92ff0decf3dd0484345');\nhashMap.set('mix','473bb870c00b270faae93c4614873f644ad516f762acf07f773b12a7b8e01d19');\nhashMap.set('nix','a9d4ae3f9f01abb71dc9ebc12a9cd8bec237ad9d2dabfbf4f5ffd59e56c9a612');\nhashMap.set('nodenv','ac652c28481b001f7471f4183eac07b45d98ecbe83efc275830b0a1b2e0459b8');\nhashMap.set('npm','c73858631143d9627d5cc615a874c3d74edd643161e33380b615dda7c8f1bbed');\nhashMap.set('nuget','136bc3226e77b8fe65940454dc2c858fde86c2e0da6dbbdf71a5269ab137caee');\nhashMap.set('nvm','3eb77c7b0acf6d64753de78fad2499b352719853aa6872878c40675d14152322');\nhashMap.set('ocb','032b216684c14b0954e0bb019513a2aca3faaee5748587acb668d377d7c891ca');\nhashMap.set('osgi','d6567a733ef3983112b46fdccd7ceebfcd48411104e0c6b6e714d4310db48024');\nhashMap.set('pep621','36591cbca53de57a1160d8794af950c87e048f3dda2b1b155354c409a0217acc');\nhashMap.set('pep723','b96683163de63ed93207ec0538066705b1e58a1cd5b8bd11c63fc28b26bddba1');\nhashMap.set('pip-compile','ad43905a365c677315d2dcba725aef9b82c677d6ff30ee358f890f10faeb035f');\nhashMap.set('pip_requirements','953af0f3b41c2c1027327a8b1f37675c72892a8b03fdfbc3862ab63a1c3c72bf');\nhashMap.set('pip_setup','df18fba2bdcf48f3ca12a8f7e5cd28df31e2368d5528127277038ef4206eca79');\nhashMap.set('pipenv','fc2fd2e06753fada34958eb190c6d9236271b81a8a4cf1a354937a209cef06a9');\nhashMap.set('pixi','eb3a49c742d7de368b631c0b4fc5ae1a011b5ce85752e6bdf870f24c3e548bc5');\nhashMap.set('poetry','33dfbd8bddcf2aca101be8c869cca7ba8d33a7224c7b86296718814fde8241cb');\nhashMap.set('pre-commit','a8fa968d6308947c8a6eedd799ea449e548e918971acdc250b627e86a446dc23');\nhashMap.set('proto','412053d4550026b4ace490b46e970915b87ec1abf0b0a0c6c8c58ccf1fc16843');\nhashMap.set('pub','d0c11bb1076c7b84a3f30458d8747d5cdfd0126cc52a8d8218ab77c46287219b');\nhashMap.set('puppet','ba58ab689e44acc8f61c3569ab8b40fde01b8a9d3aad712708e2a419e57d8b45');\nhashMap.set('pyenv','9ede8becc97774f9040b40f4472d3e933534b596e04c360bfe0f3c6f95f25182');\nhashMap.set('quadlet','e1fc88a4e14cd595e89bb3d79b4adf2add3ce5eb80f75276e712c32598cca53d');\nhashMap.set('renovate-config','ca60beee2e3b871ea1216fa9df9a501f7ed355fe7da29e12509e56a124a78e69');\nhashMap.set('ruby-version','2db2140d9eee8c555e729a4de0396fa2d78846d3149890ee12fa515bd654be97');\nhashMap.set('runtime-version','b582b168c0cc595e39010feb10f4b97a82683eb269e9598216fbb11cc186e160');\nhashMap.set('rust-toolchain','6ace53db02874d73620d2d872291839820a512a9529c42d174358c692e5db720');\nhashMap.set('sbt','2bb0c98d231bbd6c9043127bfc566a954e7e04fc8654b119c14438a63371e4a7');\nhashMap.set('scalafmt','9d36159b56835e96498af026a1fb0543200db0581681ef95ec54988f411e180f');\nhashMap.set('setup-cfg','4a3a7c812d34739c07685691e7e64c7d3127f9d7d4aff99dc45a25df97ed9745');\nhashMap.set('smithy','9641b91d065ffb63be0dd888139a0402dba41e550f8b44c592db9daf52109100');\nhashMap.set('sveltos','60dd75bb53ace31217211100d622fdb65068c6162758b6ae7103a6ce8bdc9f90');\nhashMap.set('swift','5ebd875ee7a541b4725f6263789ea9a7c77a4b7c40b2119f894e67b588cfa672');\nhashMap.set('tekton','33948f5bdf7553909fa63744adb26da97ddf366e9499bccab1250879570267c9');\nhashMap.set('terraform','d1d5e54517e6075035b4c03de3419f09008c661587ad16a7d8bada4150a92f6f');\nhashMap.set('terraform-version','ec8f786b9731d47f2c2fe0307caf64d7ddd83046fe7ff1f7d8423239f8b0f2aa');\nhashMap.set('terragrunt','ffcbaa67dd65f064d43f8c121c1006115eab1879c4bd38de263b9b90a009c118');\nhashMap.set('terragrunt-version','eea6087b33717d22ede2fc68c2f64df8390b75abe82110ed831a180648feb51d');\nhashMap.set('tflint-plugin','31247d37bc80aae17039bfa21bd989c5717730c5ef10cf2a6f09841576d012ec');\nhashMap.set('travis','04c94f72622003195c8ea8147c8fbd93003f444ec807ce33f2ada2384282db83');\nhashMap.set('typst','d080a79fbd961c6e21fcc505d544b7e0ff2126142acb1dcabdf6abbcd9339248');\nhashMap.set('unity3d','f13e25e115e3443f4e16cf31578acffa78fb1a5e23339680a92d8d6de6052920');\nhashMap.set('velaci','fda00ddb7cc23e9a37e0a8a253151df0a6930b4276d3e4f78cc54b9ac09af7de');\nhashMap.set('vendir','59e860a89a35f58760296ecc076310f672a0211740dcebca20e38b04dc0c5553');\nhashMap.set('woodpecker','6110d3bec33aaeb3511d4bbfa896cec3c8e02fb04a6cff50c9ba81061c851045');\nhashMap.set('xcodegen','dad511d88a9ce1dbdde8b9731f3da7f2bdaa4ca8a083294ee58d56da62ab1683');\nhashMap.set('jsonata','416bcf61144b276b3112814c6e6d261aa29608f46fbb0516c471d35c16f8f0d7');\nhashMap.set('regex','20be5247fdc164173871a051acb0527da017d0c155c653d7563601f55e7b3ff5');"],"mappings":"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"}
1
+ {"version":3,"file":"fingerprint.generated.js","names":[],"sources":["../../../lib/modules/manager/fingerprint.generated.ts"],"sourcesContent":["export const hashMap = new Map<string, string>();\n\nhashMap.set('ansible','a52394a36ac5517f7330473c31d93aa05b2ce607c5e951b48f25a4693cd20a81');\nhashMap.set('ansible-galaxy','0a264d6be73953d801510fdeff271e4071c274339569c6dab4e2a128eaf4869f');\nhashMap.set('ant','2df5943cf0ed19a21b94df13729dbb925655548130caf37e3e22bebaed518e17');\nhashMap.set('apm','ca7c2342c04489253cd8f38d294a4c1428010115c2be22b3e0812dacf9881244');\nhashMap.set('argocd','cff9cd22257bc460ae4b9936570bf0ed5585f280a55d26629deaeeb0bfee8eb5');\nhashMap.set('asdf','430eb99b58171700c8a59c78b9e648575e9b176b781d90dd10a710f7b69015bb');\nhashMap.set('azure-pipelines','6bf7782e8a02fc87dc5d84aab59e517c09df51fd23cf57805e62207dbd5efdb5');\nhashMap.set('batect','375d39b432013bedb1330cf40a2199dd822751b28578214f219e7bab98594b8d');\nhashMap.set('batect-wrapper','d999355511ea7f4053325a18b8cfc8d2b586c61e6760c35e557d383a673e3939');\nhashMap.set('bazel','ef00591c6f09069550ef97ff7ff5e387b9dd3df51cdecc9ef941169b19315396');\nhashMap.set('bazel-module','9fbba0339f9f7785d52ab85c5f0f6385003093c063483c13feccba13ae438bef');\nhashMap.set('bazelisk','770f75a746dc6ba90c518788d5987d7df4243ef9eee122d1bb0556a93d6e1b11');\nhashMap.set('bicep','7246e0bfc06e0e28cbb03ac088c5591f648956b086e106aeb251fe5d628329db');\nhashMap.set('bitbucket-pipelines','59c0503494ab1442b127914503c01b97ac17b6742b19c632292d5aa24de115cd');\nhashMap.set('bitrise','478dfd316221fad7c29e177c70d1018d832fb2626b53308a5d0f1f0380e69f42');\nhashMap.set('buildkite','b8b404f53cd5d61c39153fddf93945e621471c4ac6aa9960c881cd868922bb4c');\nhashMap.set('buildpacks','6bef3cb04d66b5cfbb195adb4829bcbccae6408518706744d291bacf0610421f');\nhashMap.set('bun','684f46dd3cef4d30f9e4ae97c384a38d032ebf3d0bfe9b471ab1772c7b26827a');\nhashMap.set('bun-version','df3ae8e4a5de1fa1b4544f3d7fc8117e80adb1e151c46d1ede54a4dbea6521e4');\nhashMap.set('bundler','c8b4b76b89a2357cacdc34adfab00dcde862103121386552d17cca5761b533ec');\nhashMap.set('cake','9ebd8b481220b30a8860121d26184540a1a2fcc05ef780df9295dea39b386fad');\nhashMap.set('cargo','63721e2683b30cffc5ba87c75f919dc61a555f7741fa479f7446ef98c0ae9d5d');\nhashMap.set('cdnurl','9a81c8e3c6ad6c788498c99fc1067ffdfcd92a427c3afaf8c0130975d83131f2');\nhashMap.set('circleci','91cbeb33ea20f9838e2c81a1195eb806f0b38fa282bc3679f62552f20575ca85');\nhashMap.set('cloudbuild','f4e40388944652c8a19f8518771ac8d3f3c4ccf81ddef0e68b463aca833cb73c');\nhashMap.set('cocoapods','f832e2beef885bb3fd697ed9bb3e8cd742926bfec37ff41212edd2dbb4edb3ba');\nhashMap.set('composer','74a802074ed550801b7536d36ed9880e3a95ae8f340c590446c017fb3ef36de9');\nhashMap.set('conan','8d46e9a30ae628e26118aea10a98d1b846f7c5d96d51ce24693437d555f6d125');\nhashMap.set('copier','10ae4d7f8ff35faf3a3f9f25bf4c969ea960e19aaf8c012aee11f93f4d10533e');\nhashMap.set('cpanfile','07813fec3f3c2197056500e9266a0553b9774c02f2c74d5ca2e213188c7c12d3');\nhashMap.set('crossplane','5c26b1201a1a51454ffb94d829e223a76a781569bf79cdb1e47087c30233ec40');\nhashMap.set('crow','eb9a5f9f95041855dded67bcce3dd54724f690995ed6268d272e8a666ff28fd0');\nhashMap.set('deno','917fdbfbad58fd7f57933646a760d91768368df563ce5eaf34a2bba165164a12');\nhashMap.set('deps-edn','7b6ac92be04b44fdf1da8755550a6417bb294908158119c8fff10adeb05048d2');\nhashMap.set('devbox','a40050cc61bd9b5d500ec111abb17bb15d5f82ab5b7699f66f628307ba8382c9');\nhashMap.set('devcontainer','24320ed1cb6191d04cb8b2707214d82c08c682597aed1d84f250aa00ad1632ec');\nhashMap.set('docker-compose','a9c27711356fbda8dd14f21e046936e1e43f18c5528325b468d89937f76fe1e7');\nhashMap.set('dockerfile','a83e9e93f31576697d45fd60a0b44f7d14a610752e695a62507624ab2dbb2162');\nhashMap.set('droneci','e2039bb37c2d63c53027b188d1f0faa7c8923dcbfe6cf3851fba8d4e9f43a358');\nhashMap.set('fleet','4942d52e82f35c41e2d46cf76f426e2d91b350338cfc0bbcb97e8aaae2a1ac0b');\nhashMap.set('flux','c67562b40cc7cd5e22b4c1ac642fc92ef46db79da9cea174e8aefcc20dde9811');\nhashMap.set('fvm','9b161df0f14bc6e536368952adf373e343630097121a913cea60ee284027fb90');\nhashMap.set('git-submodules','df8bb92b2906d8cddda2d4b302ee503f8002e3554d32d74cef2f584fe891f38f');\nhashMap.set('github-actions','d64e03fc8e00f24e1bf287de7a022fefedd11c2c0a5a1629238e2b5e07b2011d');\nhashMap.set('gitlabci','a5e1e66ef461e1c1e71062f85f35a212417e23627f4b002810f9a98295d6e672');\nhashMap.set('gitlabci-include','8860a15ab516fde00694f9bd9bf56fce4addafe5a55b5ddb9a4ec477d301d351');\nhashMap.set('glasskube','93e7b9000a17efa15a1abaaf320b5af9169b1ecd828fc0c881d98570ef9d9e30');\nhashMap.set('gleam','5e9b9f5f914afe5ed7b526c06c65111e3716d2dea9b0cbe7907bbc96db1064a3');\nhashMap.set('gomod','fa22f3f0b0af7b7f769cf3541bd38fdf67365965ce6c8a470f88155958991c24');\nhashMap.set('gradle','9e3ff52ce4ad2555929acdd4d32c417c4ef8714c23a92f2893ecc580fa4d6064');\nhashMap.set('gradle-wrapper','73ba30c34955fab7737454b5cff9aca6d1b5607d53c17c9e13d8ad96f6eaae87');\nhashMap.set('haskell-cabal','f158b7725e3143dfd2950e3de0bbccc2a61cd7eba87f7a54c5057e01252348e2');\nhashMap.set('helm-requirements','7ee9dace4c036dfe113c0c0e46369d8b83a739caa831660142ca98d3236a180a');\nhashMap.set('helm-values','01069e887d4f3b55ca62a3c0dc66d8620264e1426207be9eb240a10c1ad5e412');\nhashMap.set('helmfile','163baefbe5323bb5e671a73b72eaaecfbd03b798c70fd4117e191e143f2f7a4f');\nhashMap.set('helmsman','951deeb3355da751ef39c9e932b26ea749450e32e75759e4b5fc29359e100b37');\nhashMap.set('helmv3','4a3cf47072978eb131d70cd13f3d0bbd4408b0290be2a798a4cbf6103189269b');\nhashMap.set('hermit','0fb25b7766c3a264fbb765ff75b1542b24136c4c9f933696d4a5aecfed637071');\nhashMap.set('homeassistant-manifest','05043c6db870cffbb6f8f3e351c025e3de227eaae0b24134b796aec46f84b65f');\nhashMap.set('homebrew','9c64a4f1475b1c2052372e566c9190f32ae8acd1c54313031d55ae8772388367');\nhashMap.set('html','81fa6c2bf2b868596584a48b949645207a2aa3081951ed99183ee50b70b77d5f');\nhashMap.set('jenkins','7bfb09418a132e052579196633bac78ac947cf93f1e70748ea1b3da929874b87');\nhashMap.set('jsonnet-bundler','4cedeb0394e5c38361d1868ff45b4f34747ab8c492378b6e63dcaf1f4f3c024d');\nhashMap.set('kotlin-script','95ebc844c040ca047321b207d525220e29774a2a1fe06f9639e8353c66908564');\nhashMap.set('kubernetes','321e7d77fb3600dd4c00a86eaa1294927e7f92300b74fa2977d813dcaa3bb4de');\nhashMap.set('kustomize','eb9d6d6aa65a738d6c658a6c9a73a9e86761360a608cf0ba8000d6c554dbc0c7');\nhashMap.set('leiningen','a7295160ce901e08e12be75cb3aaf6b9a199de811eb60b618feb773f7c552bba');\nhashMap.set('maven','c110b99291c2a5bc82cf7a69330275e9bbd7dc8ba3e9e987611dfcffbe002d8d');\nhashMap.set('maven-wrapper','6e53b6e4abf1d20b75094c7a70d66b4a5ac39954f009aa401f5e55dada8be4d0');\nhashMap.set('meteor','4636a47ba4dcfff19fe662572ef7a40d17146be3c966e00ef437e1fc8de92776');\nhashMap.set('mint','248fe4f1ea5c985921c286785792c97e06fc41f402b2d45df82f6aecd17f710e');\nhashMap.set('mise','96709a29a967c829b527f38e3d98cdb9731310f2fb52a6d46fa47397d2cf8440');\nhashMap.set('mix','0f79163dc2a1c896599d152be635c23beaf16812ae3d8fbfffec98c7bd0de872');\nhashMap.set('nix','0f80f0b81f2197a7e588be5c115a32a826fc184593f4e879f7b60fafd97a977e');\nhashMap.set('nodenv','ac652c28481b001f7471f4183eac07b45d98ecbe83efc275830b0a1b2e0459b8');\nhashMap.set('npm','30c78bc1c29eeecbdedb4eacc52bd93eedfb07279fd385f893193dcac6196466');\nhashMap.set('nuget','d6acdee647e7e0f3568c46154a2e32c425e44b1044634919530e234035eddeff');\nhashMap.set('nvm','3eb77c7b0acf6d64753de78fad2499b352719853aa6872878c40675d14152322');\nhashMap.set('ocb','032b216684c14b0954e0bb019513a2aca3faaee5748587acb668d377d7c891ca');\nhashMap.set('osgi','d6567a733ef3983112b46fdccd7ceebfcd48411104e0c6b6e714d4310db48024');\nhashMap.set('pep621','52450676f8b0e05134b3e8947b832195ef40bcaec1ce43d71351a2f797b80d75');\nhashMap.set('pep723','b96683163de63ed93207ec0538066705b1e58a1cd5b8bd11c63fc28b26bddba1');\nhashMap.set('pip-compile','7e418b8bdaeed38c1372eb19e0ae1c64999000e128d8754e37368638037b4c5c');\nhashMap.set('pip_requirements','bf3a407f72abf711230247bef94ba5dc84c08a35107b0f017912fad66afa716a');\nhashMap.set('pip_setup','df18fba2bdcf48f3ca12a8f7e5cd28df31e2368d5528127277038ef4206eca79');\nhashMap.set('pipenv','cd974eadd649ba8c9c2e3c7b564a49c8bb2ce95d6df043a7e942364f574c7613');\nhashMap.set('pixi','83f94ec64144ce2adad0901844ab1e9c1636bb5c77bd6578b22b98ab401d34b4');\nhashMap.set('poetry','b2b917c200d25e01a3a198deb3bf33353535f27430142111cfab816c03bb966d');\nhashMap.set('pre-commit','a8fa968d6308947c8a6eedd799ea449e548e918971acdc250b627e86a446dc23');\nhashMap.set('proto','412053d4550026b4ace490b46e970915b87ec1abf0b0a0c6c8c58ccf1fc16843');\nhashMap.set('pub','8e7c65dfd1999de4f7c44392e949a4d8f4701eb86df59d550e4657feb06b1872');\nhashMap.set('puppet','ba58ab689e44acc8f61c3569ab8b40fde01b8a9d3aad712708e2a419e57d8b45');\nhashMap.set('pyenv','9ede8becc97774f9040b40f4472d3e933534b596e04c360bfe0f3c6f95f25182');\nhashMap.set('quadlet','e1fc88a4e14cd595e89bb3d79b4adf2add3ce5eb80f75276e712c32598cca53d');\nhashMap.set('renovate-config','ca60beee2e3b871ea1216fa9df9a501f7ed355fe7da29e12509e56a124a78e69');\nhashMap.set('ruby-version','2db2140d9eee8c555e729a4de0396fa2d78846d3149890ee12fa515bd654be97');\nhashMap.set('runtime-version','b582b168c0cc595e39010feb10f4b97a82683eb269e9598216fbb11cc186e160');\nhashMap.set('rust-toolchain','6ace53db02874d73620d2d872291839820a512a9529c42d174358c692e5db720');\nhashMap.set('sbt','2bb0c98d231bbd6c9043127bfc566a954e7e04fc8654b119c14438a63371e4a7');\nhashMap.set('scalafmt','9d36159b56835e96498af026a1fb0543200db0581681ef95ec54988f411e180f');\nhashMap.set('setup-cfg','4a3a7c812d34739c07685691e7e64c7d3127f9d7d4aff99dc45a25df97ed9745');\nhashMap.set('smithy','9641b91d065ffb63be0dd888139a0402dba41e550f8b44c592db9daf52109100');\nhashMap.set('sveltos','60dd75bb53ace31217211100d622fdb65068c6162758b6ae7103a6ce8bdc9f90');\nhashMap.set('swift','5ebd875ee7a541b4725f6263789ea9a7c77a4b7c40b2119f894e67b588cfa672');\nhashMap.set('tekton','33948f5bdf7553909fa63744adb26da97ddf366e9499bccab1250879570267c9');\nhashMap.set('terraform','d1d5e54517e6075035b4c03de3419f09008c661587ad16a7d8bada4150a92f6f');\nhashMap.set('terraform-version','ec8f786b9731d47f2c2fe0307caf64d7ddd83046fe7ff1f7d8423239f8b0f2aa');\nhashMap.set('terragrunt','ffcbaa67dd65f064d43f8c121c1006115eab1879c4bd38de263b9b90a009c118');\nhashMap.set('terragrunt-version','eea6087b33717d22ede2fc68c2f64df8390b75abe82110ed831a180648feb51d');\nhashMap.set('tflint-plugin','31247d37bc80aae17039bfa21bd989c5717730c5ef10cf2a6f09841576d012ec');\nhashMap.set('travis','04c94f72622003195c8ea8147c8fbd93003f444ec807ce33f2ada2384282db83');\nhashMap.set('typst','d080a79fbd961c6e21fcc505d544b7e0ff2126142acb1dcabdf6abbcd9339248');\nhashMap.set('unity3d','f13e25e115e3443f4e16cf31578acffa78fb1a5e23339680a92d8d6de6052920');\nhashMap.set('velaci','fda00ddb7cc23e9a37e0a8a253151df0a6930b4276d3e4f78cc54b9ac09af7de');\nhashMap.set('vendir','7db907b3b77ef5f3465f3c4339fbab56bbcdfd1bf34b3d33e4c178d2e07e23e7');\nhashMap.set('woodpecker','6110d3bec33aaeb3511d4bbfa896cec3c8e02fb04a6cff50c9ba81061c851045');\nhashMap.set('xcodegen','dad511d88a9ce1dbdde8b9731f3da7f2bdaa4ca8a083294ee58d56da62ab1683');\nhashMap.set('jsonata','416bcf61144b276b3112814c6e6d261aa29608f46fbb0516c471d35c16f8f0d7');\nhashMap.set('regex','20be5247fdc164173871a051acb0527da017d0c155c653d7563601f55e7b3ff5');"],"mappings":"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"}
@@ -8,7 +8,7 @@ import { detectPlatform } from "../../../util/common.js";
8
8
  import { readLocalFile, writeLocalFile } from "../../../util/fs/index.js";
9
9
  import { exec } from "../../../util/exec/index.js";
10
10
  import { getRepoStatus } from "../../../util/git/index.js";
11
- import { artifactErrorMessageFromExecError } from "../util.js";
11
+ import { artifactErrorMessageFromExecError, resolveToolConstraint } from "../util.js";
12
12
  import { findGithubToken } from "../../../util/check-token.js";
13
13
  import { actionsLockFile, isLockfileManaged } from "./common.js";
14
14
  import { ActionsLockfile } from "./schema.js";
@@ -107,19 +107,21 @@ async function updateActionsLockfile(config, packageFiles) {
107
107
  writtenContent.set(file.path, contents);
108
108
  }
109
109
  const tokenEnv = getTokenEnv();
110
+ const ghConstraint = await resolveToolConstraint(config, "gh");
111
+ const ghActionsLockConstraint = await resolveToolConstraint(config, "ghActionsLock");
110
112
  const execOptions = {
111
113
  cwd: GlobalConfig.get("localDir"),
112
114
  extraEnv: tokenEnv,
113
115
  env: tokenEnv,
114
116
  toolConstraints: [{
115
117
  toolName: "gh",
116
- constraint: config.constraints?.gh
118
+ constraint: ghConstraint
117
119
  }],
118
120
  docker: {}
119
121
  };
120
122
  const commands = ["gh actions-lock --no-interactive --no-narrow --no-migrate-local-actions"];
121
- if (GlobalConfig.get("binarySource") === "global") logger.once.debug({ constraint: config.constraints?.ghActionsLock }, "Not installing the `gh-actions-lock` extension, and ignoring `constraints.ghActionsLock`, because `binarySource=global` leaves tooling to the administrator");
122
- else if (config.constraints?.ghActionsLock) commands.unshift(`gh extension install ${extensionName} --force --pin ${quote(config.constraints?.ghActionsLock)}`);
123
+ if (GlobalConfig.get("binarySource") === "global") logger.once.debug({ constraint: ghActionsLockConstraint }, "Not installing the `gh-actions-lock` extension, and ignoring `constraints.ghActionsLock`, because `binarySource=global` leaves tooling to the administrator");
124
+ else if (ghActionsLockConstraint) commands.unshift(`gh extension install ${extensionName} --force --pin ${quote(ghActionsLockConstraint)}`);
123
125
  else commands.unshift(`gh extension install ${extensionName} --force`);
124
126
  try {
125
127
  await exec(commands, execOptions);
@@ -1 +1 @@
1
- {"version":3,"file":"artifacts.js","names":["hostRules.find"],"sources":["../../../../lib/modules/manager/github-actions/artifacts.ts"],"sourcesContent":["import { quote } from 'shlex';\nimport { GlobalConfig } from '../../../config/global.ts';\nimport { TEMPORARY_ERROR } from '../../../constants/error-messages.ts';\nimport { logger } from '../../../logger/index.ts';\nimport { coerceArray } from '../../../util/array.ts';\nimport { findGithubToken } from '../../../util/check-token.ts';\nimport { detectPlatform } from '../../../util/common.ts';\nimport { exec } from '../../../util/exec/index.ts';\nimport type { ExecOptions, ExtraEnv } from '../../../util/exec/types.ts';\nimport { readLocalFile, writeLocalFile } from '../../../util/fs/index.ts';\nimport { getRepoStatus } from '../../../util/git/index.ts';\nimport type { FileChange } from '../../../util/git/types.ts';\nimport * as hostRules from '../../../util/host-rules.ts';\nimport { parseUrl } from '../../../util/url.ts';\nimport type { PackageFile, PostUpdateConfig } from '../types.ts';\nimport { artifactErrorMessageFromExecError } from '../util.ts';\nimport { actionsLockFile, isLockfileManaged } from './common.ts';\nimport { ActionsLockfile } from './schema.ts';\nimport type { ActionsLockfileResult, OnboardedWorkflows } from './types.ts';\n\n/** The `gh` CLI extension that generates and verifies the lockfile. */\nconst extensionName = 'github/gh-actions-lock';\n\n/** The `uses:` dep types the lockfile graph is built from. */\nconst lockedDepTypes = ['action', 'workflow', 'docker'];\n\nfunction findToken(url: string): string | undefined {\n return findGithubToken(hostRules.find({ hostType: 'github', url }));\n}\n\n/**\n * `gh` takes the token from a different variable for GitHub Enterprise Server, and has to be told which host to talk to.\n *\n * Public actions are still resolved against github.com from there, so pass a token for both hosts.\n */\nfunction getTokenEnv(): ExtraEnv {\n const githubComEndpoint = 'https://api.github.com/';\n const configuredEndpoint = GlobalConfig.get('endpoint');\n // The configured endpoint only says where GitHub lives when Renovate is talking to GitHub: workflows mirrored onto another platform still resolve their actions against github.com.\n const endpoint =\n configuredEndpoint && detectPlatform(configuredEndpoint) === 'github'\n ? configuredEndpoint\n : githubComEndpoint;\n\n const hostname = parseUrl(endpoint)?.hostname;\n const isEnterprise =\n !!hostname && hostname !== 'api.github.com' && hostname !== 'github.com';\n\n const env: ExtraEnv = {};\n\n if (isEnterprise) {\n const enterpriseToken = findToken(endpoint);\n if (enterpriseToken) {\n env.GH_HOST = hostname;\n env.GH_ENTERPRISE_TOKEN = enterpriseToken;\n }\n }\n\n const token = findToken(githubComEndpoint);\n if (token) {\n env.GH_TOKEN = token;\n }\n\n if (!Object.keys(env).length) {\n logger.debug('No GitHub token found for `gh actions-lock`');\n }\n\n return env;\n}\n\n/**\n * Whether any updated dependency is one the lockfile records an edge for, and sits in a file `gh actions-lock` will look at.\n */\nfunction hasLockedUpdate(\n config: PostUpdateConfig,\n onboardedWorkflows: OnboardedWorkflows,\n): boolean {\n return config.upgrades.some((upgrade) => {\n if (upgrade.manager !== 'github-actions') {\n return false;\n }\n\n if (!upgrade.depType || !lockedDepTypes.includes(upgrade.depType)) {\n return false;\n }\n\n const packageFile = upgrade.packageFile;\n if (!packageFile) {\n return false;\n }\n\n return isLockfileManaged(packageFile, onboardedWorkflows);\n });\n}\n\n/**\n * Regenerate `.github/workflows/actions.lock` once per branch.\n *\n * The lockfile records a transitive graph - resolved commits, numeric owner and repository IDs, and each composite action's own `uses:` edges - so it is regenerated by its own tool rather than patched here.\n * `gh actions-lock` re-reads every workflow from disk and rewrites the whole file, so this runs after all of the branch's package file updates have been flushed, in the same shape as npm's `getAdditionalFiles`.\n */\nexport async function updateActionsLockfile(\n config: PostUpdateConfig,\n packageFiles: Record<string, PackageFile[]> | undefined,\n): Promise<ActionsLockfileResult> {\n const empty: ActionsLockfileResult = {\n updatedArtifacts: [],\n artifactErrors: [],\n };\n\n const ghaPackageFiles = packageFiles?.['github-actions'];\n if (!ghaPackageFiles?.length) {\n return empty;\n }\n\n if (config.skipArtifactsUpdate) {\n logger.debug(`Skipping ${actionsLockFile} generation`);\n return empty;\n }\n\n const existingLockFileContent = await readLocalFile(actionsLockFile, 'utf8');\n if (!existingLockFileContent) {\n logger.debug(`No ${actionsLockFile} found`);\n return empty;\n }\n\n const parsedLockfile = ActionsLockfile.safeParse(existingLockFileContent);\n if (!parsedLockfile.success) {\n logger.warn(\n { err: parsedLockfile.error, lockFile: actionsLockFile },\n 'Failed to parse the GitHub Actions lockfile, so not regenerating it',\n );\n return empty;\n }\n\n if (!hasLockedUpdate(config, parsedLockfile.data.workflows)) {\n logger.debug(`No locked dependencies updated for ${actionsLockFile}`);\n return empty;\n }\n\n logger.debug(`Regenerating ${actionsLockFile}`);\n\n const ghaPackageFilePaths = new Set(\n ghaPackageFiles.map((file) => file.packageFile),\n );\n\n // Ensure that in-memory file contents are flushed to disk, so `actions-lock` can run against it.\n // A branch can group updates from other managers, whose contents may be binary - a Gradle wrapper JAR, say - so only write the workflows which the tool actually reads.\n const writtenContent = new Map<string, string>();\n for (const file of coerceArray(config.updatedPackageFiles)) {\n if (file.type === 'addition' && ghaPackageFilePaths.has(file.path)) {\n const contents = file.contents!.toString();\n await writeLocalFile(file.path, contents);\n writtenContent.set(file.path, contents);\n }\n }\n\n const tokenEnv = getTokenEnv();\n\n const execOptions: ExecOptions = {\n // The tool rescans every workflow, so it runs from the repository root\n cwd: GlobalConfig.get('localDir'),\n // `extraEnv` is what forwards a variable into the Docker sidecar, but on its own it is only a default: `getChildEnv` lets a same-named variable in Renovate's own environment win.\n // The token we resolved from the host rules must not be shadowed by an ambient `GH_TOKEN`, so force it as well.\n extraEnv: tokenEnv,\n env: tokenEnv,\n toolConstraints: [{ toolName: 'gh', constraint: config.constraints?.gh }],\n docker: {},\n };\n\n // `--no-interactive`: we have no terminal to answer prompts with\n // `--no-narrow`: keep the ref that we wrote, to avoid a `@v4` being rewritten as `@v4.2.1`\n // `--no-migrate-local-actions`: on-by-default, but unrelated to our lockfile updates\n const commands = [\n 'gh actions-lock --no-interactive --no-narrow --no-migrate-local-actions',\n ];\n\n // `binarySource=global` means the administrator provisions tooling, so we must not reach into their `gh` install to add or re-pin an extension.\n // They own the extension version, and `constraints.ghActionsLock` does not apply.\n // TODO replace once containerbase/base#7279 is available\n if (GlobalConfig.get('binarySource') === 'global') {\n // Debug rather than warn: `constraints.ghActionsLock` ships with a default, so we cannot tell an explicit override from the default here, and warning would fire for every repository on this `binarySource`.\n logger.once.debug(\n { constraint: config.constraints?.ghActionsLock },\n 'Not installing the `gh-actions-lock` extension, and ignoring `constraints.ghActionsLock`, because `binarySource=global` leaves tooling to the administrator',\n );\n } else {\n // `--force` makes an install a no-op when the specified version is already installed\n if (config.constraints?.ghActionsLock) {\n commands.unshift(\n `gh extension install ${extensionName} --force --pin ${quote(config.constraints?.ghActionsLock)}`,\n );\n } else {\n commands.unshift(`gh extension install ${extensionName} --force`);\n }\n }\n\n try {\n await exec(commands, execOptions);\n } catch (err) {\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n logger.debug({ err }, `Error updating ${actionsLockFile}`);\n return {\n updatedArtifacts: [],\n artifactErrors: [\n {\n fileName: actionsLockFile,\n // an `ExecError` always carries a `stderr`, so fall back to the message rather than rendering an artifact error with nothing in it\n stderr: artifactErrorMessageFromExecError(err, err.message),\n },\n ],\n };\n }\n\n const updatedArtifacts: FileChange[] = [];\n\n const newLockFileContent = await readLocalFile(actionsLockFile, 'utf8');\n if (newLockFileContent && newLockFileContent !== existingLockFileContent) {\n updatedArtifacts.push({\n type: 'addition',\n path: actionsLockFile,\n contents: newLockFileContent,\n });\n }\n\n // `actions-lock` may annotate workflows being managed with i.e. `# This workflow is managed by gh actions-lock.`, even if there were no updates to that workflow in this branch.\n // We should diff against Git, rather than against the branch's own updated package files, otherwise those annotations are left behind as uncommitted changes\n const status = await getRepoStatus();\n for (const path of status.modified) {\n // ignore the lockfile, as we've already committed it above, and any file which another manager owns\n if (path === actionsLockFile || !ghaPackageFilePaths.has(path)) {\n continue;\n }\n\n const newContent = await readLocalFile(path, 'utf8');\n // Whatever this branch wrote is committed as a package file update already, so only content which the tool changed on top of it is an artifact\n if (!newContent || newContent === writtenContent.get(path)) {\n continue;\n }\n logger.debug(`\\`gh actions-lock\\` annotated ${path}`);\n updatedArtifacts.push({\n type: 'addition',\n path,\n contents: newContent,\n });\n }\n\n if (!updatedArtifacts.length) {\n logger.debug(`${actionsLockFile} is unchanged`);\n }\n\n return { updatedArtifacts, artifactErrors: [] };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"artifacts.js","names":["hostRules.find"],"sources":["../../../../lib/modules/manager/github-actions/artifacts.ts"],"sourcesContent":["import { quote } from 'shlex';\nimport { GlobalConfig } from '../../../config/global.ts';\nimport { TEMPORARY_ERROR } from '../../../constants/error-messages.ts';\nimport { logger } from '../../../logger/index.ts';\nimport { coerceArray } from '../../../util/array.ts';\nimport { findGithubToken } from '../../../util/check-token.ts';\nimport { detectPlatform } from '../../../util/common.ts';\nimport { exec } from '../../../util/exec/index.ts';\nimport type { ExecOptions, ExtraEnv } from '../../../util/exec/types.ts';\nimport { readLocalFile, writeLocalFile } from '../../../util/fs/index.ts';\nimport { getRepoStatus } from '../../../util/git/index.ts';\nimport type { FileChange } from '../../../util/git/types.ts';\nimport * as hostRules from '../../../util/host-rules.ts';\nimport { parseUrl } from '../../../util/url.ts';\nimport type { PackageFile, PostUpdateConfig } from '../types.ts';\nimport {\n artifactErrorMessageFromExecError,\n resolveToolConstraint,\n} from '../util.ts';\nimport { actionsLockFile, isLockfileManaged } from './common.ts';\nimport { ActionsLockfile } from './schema.ts';\nimport type { ActionsLockfileResult, OnboardedWorkflows } from './types.ts';\n\n/** The `gh` CLI extension that generates and verifies the lockfile. */\nconst extensionName = 'github/gh-actions-lock';\n\n/** The `uses:` dep types the lockfile graph is built from. */\nconst lockedDepTypes = ['action', 'workflow', 'docker'];\n\nfunction findToken(url: string): string | undefined {\n return findGithubToken(hostRules.find({ hostType: 'github', url }));\n}\n\n/**\n * `gh` takes the token from a different variable for GitHub Enterprise Server, and has to be told which host to talk to.\n *\n * Public actions are still resolved against github.com from there, so pass a token for both hosts.\n */\nfunction getTokenEnv(): ExtraEnv {\n const githubComEndpoint = 'https://api.github.com/';\n const configuredEndpoint = GlobalConfig.get('endpoint');\n // The configured endpoint only says where GitHub lives when Renovate is talking to GitHub: workflows mirrored onto another platform still resolve their actions against github.com.\n const endpoint =\n configuredEndpoint && detectPlatform(configuredEndpoint) === 'github'\n ? configuredEndpoint\n : githubComEndpoint;\n\n const hostname = parseUrl(endpoint)?.hostname;\n const isEnterprise =\n !!hostname && hostname !== 'api.github.com' && hostname !== 'github.com';\n\n const env: ExtraEnv = {};\n\n if (isEnterprise) {\n const enterpriseToken = findToken(endpoint);\n if (enterpriseToken) {\n env.GH_HOST = hostname;\n env.GH_ENTERPRISE_TOKEN = enterpriseToken;\n }\n }\n\n const token = findToken(githubComEndpoint);\n if (token) {\n env.GH_TOKEN = token;\n }\n\n if (!Object.keys(env).length) {\n logger.debug('No GitHub token found for `gh actions-lock`');\n }\n\n return env;\n}\n\n/**\n * Whether any updated dependency is one the lockfile records an edge for, and sits in a file `gh actions-lock` will look at.\n */\nfunction hasLockedUpdate(\n config: PostUpdateConfig,\n onboardedWorkflows: OnboardedWorkflows,\n): boolean {\n return config.upgrades.some((upgrade) => {\n if (upgrade.manager !== 'github-actions') {\n return false;\n }\n\n if (!upgrade.depType || !lockedDepTypes.includes(upgrade.depType)) {\n return false;\n }\n\n const packageFile = upgrade.packageFile;\n if (!packageFile) {\n return false;\n }\n\n return isLockfileManaged(packageFile, onboardedWorkflows);\n });\n}\n\n/**\n * Regenerate `.github/workflows/actions.lock` once per branch.\n *\n * The lockfile records a transitive graph - resolved commits, numeric owner and repository IDs, and each composite action's own `uses:` edges - so it is regenerated by its own tool rather than patched here.\n * `gh actions-lock` re-reads every workflow from disk and rewrites the whole file, so this runs after all of the branch's package file updates have been flushed, in the same shape as npm's `getAdditionalFiles`.\n */\nexport async function updateActionsLockfile(\n config: PostUpdateConfig,\n packageFiles: Record<string, PackageFile[]> | undefined,\n): Promise<ActionsLockfileResult> {\n const empty: ActionsLockfileResult = {\n updatedArtifacts: [],\n artifactErrors: [],\n };\n\n const ghaPackageFiles = packageFiles?.['github-actions'];\n if (!ghaPackageFiles?.length) {\n return empty;\n }\n\n if (config.skipArtifactsUpdate) {\n logger.debug(`Skipping ${actionsLockFile} generation`);\n return empty;\n }\n\n const existingLockFileContent = await readLocalFile(actionsLockFile, 'utf8');\n if (!existingLockFileContent) {\n logger.debug(`No ${actionsLockFile} found`);\n return empty;\n }\n\n const parsedLockfile = ActionsLockfile.safeParse(existingLockFileContent);\n if (!parsedLockfile.success) {\n logger.warn(\n { err: parsedLockfile.error, lockFile: actionsLockFile },\n 'Failed to parse the GitHub Actions lockfile, so not regenerating it',\n );\n return empty;\n }\n\n if (!hasLockedUpdate(config, parsedLockfile.data.workflows)) {\n logger.debug(`No locked dependencies updated for ${actionsLockFile}`);\n return empty;\n }\n\n logger.debug(`Regenerating ${actionsLockFile}`);\n\n const ghaPackageFilePaths = new Set(\n ghaPackageFiles.map((file) => file.packageFile),\n );\n\n // Ensure that in-memory file contents are flushed to disk, so `actions-lock` can run against it.\n // A branch can group updates from other managers, whose contents may be binary - a Gradle wrapper JAR, say - so only write the workflows which the tool actually reads.\n const writtenContent = new Map<string, string>();\n for (const file of coerceArray(config.updatedPackageFiles)) {\n if (file.type === 'addition' && ghaPackageFilePaths.has(file.path)) {\n const contents = file.contents!.toString();\n await writeLocalFile(file.path, contents);\n writtenContent.set(file.path, contents);\n }\n }\n\n const tokenEnv = getTokenEnv();\n\n const ghConstraint = await resolveToolConstraint(config, 'gh');\n const ghActionsLockConstraint = await resolveToolConstraint(\n config,\n 'ghActionsLock',\n );\n\n const execOptions: ExecOptions = {\n // The tool rescans every workflow, so it runs from the repository root\n cwd: GlobalConfig.get('localDir'),\n // `extraEnv` is what forwards a variable into the Docker sidecar, but on its own it is only a default: `getChildEnv` lets a same-named variable in Renovate's own environment win.\n // The token we resolved from the host rules must not be shadowed by an ambient `GH_TOKEN`, so force it as well.\n extraEnv: tokenEnv,\n env: tokenEnv,\n toolConstraints: [{ toolName: 'gh', constraint: ghConstraint }],\n docker: {},\n };\n\n // `--no-interactive`: we have no terminal to answer prompts with\n // `--no-narrow`: keep the ref that we wrote, to avoid a `@v4` being rewritten as `@v4.2.1`\n // `--no-migrate-local-actions`: on-by-default, but unrelated to our lockfile updates\n const commands = [\n 'gh actions-lock --no-interactive --no-narrow --no-migrate-local-actions',\n ];\n\n // `binarySource=global` means the administrator provisions tooling, so we must not reach into their `gh` install to add or re-pin an extension.\n // They own the extension version, and `constraints.ghActionsLock` does not apply.\n // TODO replace once containerbase/base#7279 is available\n if (GlobalConfig.get('binarySource') === 'global') {\n // Debug rather than warn: `constraints.ghActionsLock` ships with a default, so we cannot tell an explicit override from the default here, and warning would fire for every repository on this `binarySource`.\n logger.once.debug(\n { constraint: ghActionsLockConstraint },\n 'Not installing the `gh-actions-lock` extension, and ignoring `constraints.ghActionsLock`, because `binarySource=global` leaves tooling to the administrator',\n );\n } else {\n // `--force` makes an install a no-op when the specified version is already installed\n if (ghActionsLockConstraint) {\n commands.unshift(\n `gh extension install ${extensionName} --force --pin ${quote(ghActionsLockConstraint)}`,\n );\n } else {\n commands.unshift(`gh extension install ${extensionName} --force`);\n }\n }\n\n try {\n await exec(commands, execOptions);\n } catch (err) {\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n logger.debug({ err }, `Error updating ${actionsLockFile}`);\n return {\n updatedArtifacts: [],\n artifactErrors: [\n {\n fileName: actionsLockFile,\n // an `ExecError` always carries a `stderr`, so fall back to the message rather than rendering an artifact error with nothing in it\n stderr: artifactErrorMessageFromExecError(err, err.message),\n },\n ],\n };\n }\n\n const updatedArtifacts: FileChange[] = [];\n\n const newLockFileContent = await readLocalFile(actionsLockFile, 'utf8');\n if (newLockFileContent && newLockFileContent !== existingLockFileContent) {\n updatedArtifacts.push({\n type: 'addition',\n path: actionsLockFile,\n contents: newLockFileContent,\n });\n }\n\n // `actions-lock` may annotate workflows being managed with i.e. `# This workflow is managed by gh actions-lock.`, even if there were no updates to that workflow in this branch.\n // We should diff against Git, rather than against the branch's own updated package files, otherwise those annotations are left behind as uncommitted changes\n const status = await getRepoStatus();\n for (const path of status.modified) {\n // ignore the lockfile, as we've already committed it above, and any file which another manager owns\n if (path === actionsLockFile || !ghaPackageFilePaths.has(path)) {\n continue;\n }\n\n const newContent = await readLocalFile(path, 'utf8');\n // Whatever this branch wrote is committed as a package file update already, so only content which the tool changed on top of it is an artifact\n if (!newContent || newContent === writtenContent.get(path)) {\n continue;\n }\n logger.debug(`\\`gh actions-lock\\` annotated ${path}`);\n updatedArtifacts.push({\n type: 'addition',\n path,\n contents: newContent,\n });\n }\n\n if (!updatedArtifacts.length) {\n logger.debug(`${actionsLockFile} is unchanged`);\n }\n\n return { updatedArtifacts, artifactErrors: [] };\n}\n"],"mappings":"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"}
@@ -2,6 +2,7 @@ import "../../../constants/error-messages.js";
2
2
  import { logger } from "../../../logger/index.js";
3
3
  import { deleteLocalFile, getSiblingFileName, readLocalFile, writeLocalFile } from "../../../util/fs/index.js";
4
4
  import { exec } from "../../../util/exec/index.js";
5
+ import { resolveToolConstraint } from "../util.js";
5
6
  import { isEmptyArray, isString } from "@sindresorhus/is";
6
7
  import { quote } from "shlex";
7
8
  //#region lib/modules/manager/gleam/artifacts.ts
@@ -27,7 +28,7 @@ async function updateArtifacts(updateArtifact) {
27
28
  docker: {},
28
29
  toolConstraints: [{
29
30
  toolName: "gleam",
30
- constraint: config.constraints?.gleam
31
+ constraint: await resolveToolConstraint(config, "gleam")
31
32
  }]
32
33
  };
33
34
  const updateCommand = ["gleam deps update", ...(isLockFileMaintenance ? [] : updatedDeps.map((dep) => dep.depName).filter(isString)).map(quote)].join(" ");
@@ -1 +1 @@
1
- {"version":3,"file":"artifacts.js","names":[],"sources":["../../../../lib/modules/manager/gleam/artifacts.ts"],"sourcesContent":["import { isEmptyArray, isString } from '@sindresorhus/is';\nimport { quote } from 'shlex';\nimport { TEMPORARY_ERROR } from '../../../constants/error-messages.ts';\nimport { logger } from '../../../logger/index.ts';\nimport { exec } from '../../../util/exec/index.ts';\nimport type { ExecOptions } from '../../../util/exec/types.ts';\nimport {\n deleteLocalFile,\n getSiblingFileName,\n readLocalFile,\n writeLocalFile,\n} from '../../../util/fs/index.ts';\nimport type { UpdateArtifact, UpdateArtifactsResult } from '../types.ts';\n\nexport async function updateArtifacts(\n updateArtifact: UpdateArtifact,\n): Promise<UpdateArtifactsResult[] | null> {\n const { packageFileName, updatedDeps, newPackageFileContent, config } =\n updateArtifact;\n logger.debug(`gleam.updateArtifacts(${packageFileName})`);\n const { isLockFileMaintenance } = config;\n\n if (isEmptyArray(updatedDeps) && !isLockFileMaintenance) {\n logger.debug('No updated gleam deps - returning null');\n return null;\n }\n\n const lockFileName = getSiblingFileName(packageFileName, 'manifest.toml');\n\n const oldLockFileContent = await readLocalFile(lockFileName, 'utf8');\n if (!oldLockFileContent) {\n logger.debug(`No ${lockFileName} found`);\n return null;\n }\n\n try {\n await writeLocalFile(packageFileName, newPackageFileContent);\n if (isLockFileMaintenance) {\n await deleteLocalFile(lockFileName);\n }\n\n const execOptions: ExecOptions = {\n cwdFile: packageFileName,\n docker: {},\n toolConstraints: [\n {\n toolName: 'gleam',\n constraint: config.constraints?.gleam,\n },\n ],\n };\n\n // `gleam deps update` with no packages rebuilds the lock file\n const packagesToUpdate = isLockFileMaintenance\n ? []\n : updatedDeps.map((dep) => dep.depName).filter(isString);\n\n const updateCommand = [\n 'gleam deps update',\n ...packagesToUpdate.map(quote),\n ].join(' ');\n await exec(updateCommand, execOptions);\n const newLockFileContent = await readLocalFile(lockFileName, 'utf8');\n if (!newLockFileContent) {\n logger.debug(`No ${lockFileName} found`);\n return null;\n }\n if (oldLockFileContent === newLockFileContent) {\n logger.debug(`No changes in ${lockFileName} content`);\n return null;\n }\n return [\n {\n file: {\n type: 'addition',\n path: lockFileName,\n contents: newLockFileContent,\n },\n },\n ];\n } catch (err) {\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n logger.warn({ lockfile: lockFileName, err }, `Failed to update lock file`);\n return [\n {\n artifactError: {\n fileName: lockFileName,\n stderr: err.message,\n },\n },\n ];\n }\n}\n"],"mappings":";;;;;;;AAcA,eAAsB,gBACpB,gBACyC;CACzC,MAAM,EAAE,iBAAiB,aAAa,uBAAuB,WAC3D;CACF,OAAO,MAAM,yBAAyB,gBAAgB,EAAE;CACxD,MAAM,EAAE,0BAA0B;CAElC,IAAI,aAAa,WAAW,KAAK,CAAC,uBAAuB;EACvD,OAAO,MAAM,wCAAwC;EACrD,OAAO;CACT;CAEA,MAAM,eAAe,mBAAmB,iBAAiB,eAAe;CAExE,MAAM,qBAAqB,MAAM,cAAc,cAAc,MAAM;CACnE,IAAI,CAAC,oBAAoB;EACvB,OAAO,MAAM,MAAM,aAAa,OAAO;EACvC,OAAO;CACT;CAEA,IAAI;EACF,MAAM,eAAe,iBAAiB,qBAAqB;EAC3D,IAAI,uBACF,MAAM,gBAAgB,YAAY;EAGpC,MAAM,cAA2B;GAC/B,SAAS;GACT,QAAQ,CAAC;GACT,iBAAiB,CACf;IACE,UAAU;IACV,YAAY,OAAO,aAAa;GAClC,CACF;EACF;EAOA,MAAM,gBAAgB,CACpB,qBACA,IANuB,wBACrB,CAAC,IACD,YAAY,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,OAAO,QAAQ,EAAA,CAInC,IAAI,KAAK,CAC/B,CAAC,CAAC,KAAK,GAAG;EACV,MAAM,KAAK,eAAe,WAAW;EACrC,MAAM,qBAAqB,MAAM,cAAc,cAAc,MAAM;EACnE,IAAI,CAAC,oBAAoB;GACvB,OAAO,MAAM,MAAM,aAAa,OAAO;GACvC,OAAO;EACT;EACA,IAAI,uBAAuB,oBAAoB;GAC7C,OAAO,MAAM,iBAAiB,aAAa,SAAS;GACpD,OAAO;EACT;EACA,OAAO,CACL,EACE,MAAM;GACJ,MAAM;GACN,MAAM;GACN,UAAU;EACZ,EACF,CACF;CACF,SAAS,KAAK;EACZ,IAAI,IAAI,YAAA,mBACN,MAAM;EAER,OAAO,KAAK;GAAE,UAAU;GAAc;EAAI,GAAG,4BAA4B;EACzE,OAAO,CACL,EACE,eAAe;GACb,UAAU;GACV,QAAQ,IAAI;EACd,EACF,CACF;CACF;AACF"}
1
+ {"version":3,"file":"artifacts.js","names":[],"sources":["../../../../lib/modules/manager/gleam/artifacts.ts"],"sourcesContent":["import { isEmptyArray, isString } from '@sindresorhus/is';\nimport { quote } from 'shlex';\nimport { TEMPORARY_ERROR } from '../../../constants/error-messages.ts';\nimport { logger } from '../../../logger/index.ts';\nimport { exec } from '../../../util/exec/index.ts';\nimport type { ExecOptions } from '../../../util/exec/types.ts';\nimport {\n deleteLocalFile,\n getSiblingFileName,\n readLocalFile,\n writeLocalFile,\n} from '../../../util/fs/index.ts';\nimport type { UpdateArtifact, UpdateArtifactsResult } from '../types.ts';\nimport { resolveToolConstraint } from '../util.ts';\n\nexport async function updateArtifacts(\n updateArtifact: UpdateArtifact,\n): Promise<UpdateArtifactsResult[] | null> {\n const { packageFileName, updatedDeps, newPackageFileContent, config } =\n updateArtifact;\n logger.debug(`gleam.updateArtifacts(${packageFileName})`);\n const { isLockFileMaintenance } = config;\n\n if (isEmptyArray(updatedDeps) && !isLockFileMaintenance) {\n logger.debug('No updated gleam deps - returning null');\n return null;\n }\n\n const lockFileName = getSiblingFileName(packageFileName, 'manifest.toml');\n\n const oldLockFileContent = await readLocalFile(lockFileName, 'utf8');\n if (!oldLockFileContent) {\n logger.debug(`No ${lockFileName} found`);\n return null;\n }\n\n try {\n await writeLocalFile(packageFileName, newPackageFileContent);\n if (isLockFileMaintenance) {\n await deleteLocalFile(lockFileName);\n }\n\n const execOptions: ExecOptions = {\n cwdFile: packageFileName,\n docker: {},\n toolConstraints: [\n {\n toolName: 'gleam',\n constraint: await resolveToolConstraint(config, 'gleam'),\n },\n ],\n };\n\n // `gleam deps update` with no packages rebuilds the lock file\n const packagesToUpdate = isLockFileMaintenance\n ? []\n : updatedDeps.map((dep) => dep.depName).filter(isString);\n\n const updateCommand = [\n 'gleam deps update',\n ...packagesToUpdate.map(quote),\n ].join(' ');\n await exec(updateCommand, execOptions);\n const newLockFileContent = await readLocalFile(lockFileName, 'utf8');\n if (!newLockFileContent) {\n logger.debug(`No ${lockFileName} found`);\n return null;\n }\n if (oldLockFileContent === newLockFileContent) {\n logger.debug(`No changes in ${lockFileName} content`);\n return null;\n }\n return [\n {\n file: {\n type: 'addition',\n path: lockFileName,\n contents: newLockFileContent,\n },\n },\n ];\n } catch (err) {\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n logger.warn({ lockfile: lockFileName, err }, `Failed to update lock file`);\n return [\n {\n artifactError: {\n fileName: lockFileName,\n stderr: err.message,\n },\n },\n ];\n }\n}\n"],"mappings":";;;;;;;;AAeA,eAAsB,gBACpB,gBACyC;CACzC,MAAM,EAAE,iBAAiB,aAAa,uBAAuB,WAC3D;CACF,OAAO,MAAM,yBAAyB,gBAAgB,EAAE;CACxD,MAAM,EAAE,0BAA0B;CAElC,IAAI,aAAa,WAAW,KAAK,CAAC,uBAAuB;EACvD,OAAO,MAAM,wCAAwC;EACrD,OAAO;CACT;CAEA,MAAM,eAAe,mBAAmB,iBAAiB,eAAe;CAExE,MAAM,qBAAqB,MAAM,cAAc,cAAc,MAAM;CACnE,IAAI,CAAC,oBAAoB;EACvB,OAAO,MAAM,MAAM,aAAa,OAAO;EACvC,OAAO;CACT;CAEA,IAAI;EACF,MAAM,eAAe,iBAAiB,qBAAqB;EAC3D,IAAI,uBACF,MAAM,gBAAgB,YAAY;EAGpC,MAAM,cAA2B;GAC/B,SAAS;GACT,QAAQ,CAAC;GACT,iBAAiB,CACf;IACE,UAAU;IACV,YAAY,MAAM,sBAAsB,QAAQ,OAAO;GACzD,CACF;EACF;EAOA,MAAM,gBAAgB,CACpB,qBACA,IANuB,wBACrB,CAAC,IACD,YAAY,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,OAAO,QAAQ,EAAA,CAInC,IAAI,KAAK,CAC/B,CAAC,CAAC,KAAK,GAAG;EACV,MAAM,KAAK,eAAe,WAAW;EACrC,MAAM,qBAAqB,MAAM,cAAc,cAAc,MAAM;EACnE,IAAI,CAAC,oBAAoB;GACvB,OAAO,MAAM,MAAM,aAAa,OAAO;GACvC,OAAO;EACT;EACA,IAAI,uBAAuB,oBAAoB;GAC7C,OAAO,MAAM,iBAAiB,aAAa,SAAS;GACpD,OAAO;EACT;EACA,OAAO,CACL,EACE,MAAM;GACJ,MAAM;GACN,MAAM;GACN,UAAU;EACZ,EACF,CACF;CACF,SAAS,KAAK;EACZ,IAAI,IAAI,YAAA,mBACN,MAAM;EAER,OAAO,KAAK;GAAE,UAAU;GAAc;EAAI,GAAG,4BAA4B;EACzE,OAAO,CACL,EACE,eAAe;GACb,UAAU;GACV,QAAQ,IAAI;EACd,EACF,CACF;CACF;AACF"}