renovate 44.90.3 → 44.92.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.
- package/dist/config/options/index.js +1 -1
- package/dist/config/options/index.js.map +1 -1
- package/dist/global-config-option-defaults.generated.js +1 -1
- package/dist/global-config-option-defaults.generated.js.map +1 -1
- package/dist/modules/datasource/cdnjs/index.js +2 -0
- package/dist/modules/datasource/cdnjs/index.js.map +1 -1
- package/dist/modules/manager/ansible-galaxy/collections.js +4 -6
- package/dist/modules/manager/ansible-galaxy/collections.js.map +1 -1
- package/dist/modules/manager/azure-pipelines/extract.js +1 -0
- package/dist/modules/manager/azure-pipelines/extract.js.map +1 -1
- package/dist/modules/manager/bazel/artifacts.js +5 -1
- package/dist/modules/manager/bazel/artifacts.js.map +1 -1
- package/dist/modules/manager/bazel/parser.js +15 -0
- package/dist/modules/manager/bazel/parser.js.map +1 -1
- package/dist/modules/manager/bazel/rules/http.js.map +1 -1
- package/dist/modules/manager/bundler/common.js +1 -0
- package/dist/modules/manager/bundler/common.js.map +1 -1
- package/dist/modules/manager/cargo/artifacts.js +2 -0
- package/dist/modules/manager/cargo/artifacts.js.map +1 -1
- package/dist/modules/manager/cargo/extract.js.map +1 -1
- package/dist/modules/manager/cocoapods/extract.js +3 -0
- package/dist/modules/manager/cocoapods/extract.js.map +1 -1
- package/dist/modules/manager/composer/artifacts.js +1 -0
- package/dist/modules/manager/composer/artifacts.js.map +1 -1
- package/dist/modules/manager/composer/schema.js.map +1 -1
- package/dist/modules/manager/cpanfile/parser.js +2 -0
- package/dist/modules/manager/cpanfile/parser.js.map +1 -1
- package/dist/modules/manager/deps-edn/extract.js +3 -1
- package/dist/modules/manager/deps-edn/extract.js.map +1 -1
- package/dist/modules/manager/droneci/extract.js +4 -6
- package/dist/modules/manager/droneci/extract.js.map +1 -1
- package/dist/modules/manager/fingerprint.generated.js +11 -11
- package/dist/modules/manager/fingerprint.generated.js.map +1 -1
- package/dist/modules/manager/flux/extract.js +1 -0
- package/dist/modules/manager/flux/extract.js.map +1 -1
- package/dist/modules/manager/github-actions/extract.js +3 -0
- package/dist/modules/manager/github-actions/extract.js.map +1 -1
- package/dist/modules/manager/github-actions/known-actions.js +268 -2
- package/dist/modules/manager/github-actions/known-actions.js.map +1 -1
- package/dist/modules/manager/gitlabci/extract.js +1 -0
- package/dist/modules/manager/gitlabci/extract.js.map +1 -1
- package/dist/modules/manager/glasskube/extract.js +2 -0
- package/dist/modules/manager/glasskube/extract.js.map +1 -1
- package/dist/modules/manager/gomod/artifacts-extra.js +1 -0
- package/dist/modules/manager/gomod/artifacts-extra.js.map +1 -1
- package/dist/modules/manager/gomod/artifacts.js +1 -0
- package/dist/modules/manager/gomod/artifacts.js.map +1 -1
- package/dist/modules/manager/gomod/extract.js +1 -0
- package/dist/modules/manager/gomod/extract.js.map +1 -1
- package/dist/modules/manager/gradle/artifacts.js +1 -1
- package/dist/modules/manager/gradle/artifacts.js.map +1 -1
- package/dist/modules/manager/gradle-wrapper/utils.js +1 -0
- package/dist/modules/manager/gradle-wrapper/utils.js.map +1 -1
- package/dist/modules/manager/npm/extract/common/dependency.js +2 -1
- package/dist/modules/manager/npm/extract/common/dependency.js.map +1 -1
- package/dist/modules/manager/pep621/extract.js +1 -2
- package/dist/modules/manager/pep621/extract.js.map +1 -1
- package/dist/modules/manager/quadlet/extract.js +2 -4
- package/dist/modules/manager/quadlet/extract.js.map +1 -1
- package/dist/modules/manager/swift/artifacts.js +3 -1
- package/dist/modules/manager/swift/artifacts.js.map +1 -1
- package/dist/modules/manager/swift/extract.js +1 -0
- package/dist/modules/manager/swift/extract.js.map +1 -1
- package/dist/modules/manager/terraform/extractors/others/modules.js.map +1 -1
- package/dist/modules/manager/terraform/lockfile/index.js +1 -0
- package/dist/modules/manager/terraform/lockfile/index.js.map +1 -1
- package/dist/modules/manager/terragrunt/extract.js +1 -0
- package/dist/modules/manager/terragrunt/extract.js.map +1 -1
- package/dist/modules/manager/tflint-plugin/extract.js +1 -0
- package/dist/modules/manager/tflint-plugin/extract.js.map +1 -1
- package/dist/modules/manager/tflint-plugin/plugins.js.map +1 -1
- package/package.json +3 -3
- package/renovate-schema.json +2 -2
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { regEx } from "../../../util/regex.js";
|
|
2
2
|
import "../../versioning/npm/index.js";
|
|
3
3
|
import { id } from "../../versioning/conda/index.js";
|
|
4
|
-
import { id as id$1 } from "../../versioning/
|
|
4
|
+
import { id as id$1 } from "../../versioning/gradle/index.js";
|
|
5
|
+
import { id as id$2 } from "../../versioning/node/index.js";
|
|
6
|
+
import { DartVersionDatasource } from "../../datasource/dart-version/index.js";
|
|
5
7
|
import { DockerDatasource } from "../../datasource/docker/index.js";
|
|
6
8
|
import { DotnetVersionDatasource } from "../../datasource/dotnet-version/index.js";
|
|
7
9
|
import { GithubReleaseAttachmentsDatasource } from "../../datasource/github-release-attachments/index.js";
|
|
8
10
|
import { GithubReleasesDatasource } from "../../datasource/github-releases/index.js";
|
|
11
|
+
import { GradleVersionDatasource } from "../../datasource/gradle-version/index.js";
|
|
9
12
|
import { JavaVersionDatasource } from "../../datasource/java-version/index.js";
|
|
10
13
|
import { NodeVersionDatasource } from "../../datasource/node-version/index.js";
|
|
11
14
|
import { NpmDatasource } from "../../datasource/npm/index.js";
|
|
@@ -58,6 +61,7 @@ function valSchema(key, isInvalid) {
|
|
|
58
61
|
}
|
|
59
62
|
const VersionVal = valSchema("version");
|
|
60
63
|
const actionsVersionsExtractVersion = "^(?<version>\\d+\\.\\d+\\.\\d+)(-\\d+)?$";
|
|
64
|
+
const SetupRustToolchainWith = z.object({ toolchain: z.string().optional() }).transform(({ toolchain }) => [parseValue(toolchain?.split(",").pop()?.trim())]);
|
|
61
65
|
const InstallBinaryWith = z.object({
|
|
62
66
|
repo: z.string(),
|
|
63
67
|
tag: z.string()
|
|
@@ -138,6 +142,61 @@ const SetupJavaWith = z.object({
|
|
|
138
142
|
...parseValue(version)
|
|
139
143
|
}];
|
|
140
144
|
});
|
|
145
|
+
const TflintWith = z.object({ tflint_version: z.string().optional() }).transform(({ tflint_version: version }) => {
|
|
146
|
+
if (version === "latest") return [{
|
|
147
|
+
currentValue: version,
|
|
148
|
+
depType: "uses-with",
|
|
149
|
+
skipStage: "extract",
|
|
150
|
+
skipReason: "unsupported-version"
|
|
151
|
+
}];
|
|
152
|
+
return [parseValue(version)];
|
|
153
|
+
});
|
|
154
|
+
const KindActionWith = z.object({
|
|
155
|
+
version: z.string().optional(),
|
|
156
|
+
node_image: z.string().optional(),
|
|
157
|
+
kubectl_version: z.string().optional()
|
|
158
|
+
}).transform(({ version, node_image, kubectl_version }) => {
|
|
159
|
+
const deps = [];
|
|
160
|
+
if (version) deps.push({
|
|
161
|
+
packageName: "kubernetes-sigs/kind",
|
|
162
|
+
...parseValue(version)
|
|
163
|
+
});
|
|
164
|
+
if (node_image) deps.push({
|
|
165
|
+
datasource: DockerDatasource.id,
|
|
166
|
+
...parseImageValue(node_image)
|
|
167
|
+
});
|
|
168
|
+
if (kubectl_version) deps.push({
|
|
169
|
+
packageName: "kubernetes/kubernetes",
|
|
170
|
+
...parseValue(kubectl_version)
|
|
171
|
+
});
|
|
172
|
+
return deps;
|
|
173
|
+
});
|
|
174
|
+
const ErlefSetupBeamWith = z.object({
|
|
175
|
+
"otp-version": z.string().optional(),
|
|
176
|
+
"elixir-version": z.string().optional(),
|
|
177
|
+
"gleam-version": z.string().optional(),
|
|
178
|
+
"rebar3-version": z.string().optional()
|
|
179
|
+
}).transform(({ "otp-version": otpVersion, "elixir-version": elixirVersion, "gleam-version": gleamVersion, "rebar3-version": rebar3Version }) => {
|
|
180
|
+
const deps = [];
|
|
181
|
+
if (otpVersion) deps.push({
|
|
182
|
+
packageName: "erlang/otp",
|
|
183
|
+
extractVersion: "^OTP-(?<version>.+)$",
|
|
184
|
+
...parseValue(otpVersion)
|
|
185
|
+
});
|
|
186
|
+
if (elixirVersion) deps.push({
|
|
187
|
+
packageName: "elixir-lang/elixir",
|
|
188
|
+
...parseValue(elixirVersion)
|
|
189
|
+
});
|
|
190
|
+
if (gleamVersion) deps.push({
|
|
191
|
+
packageName: "gleam-lang/gleam",
|
|
192
|
+
...parseValue(gleamVersion)
|
|
193
|
+
});
|
|
194
|
+
if (rebar3Version) deps.push({
|
|
195
|
+
packageName: "erlang/rebar3",
|
|
196
|
+
...parseValue(rebar3Version)
|
|
197
|
+
});
|
|
198
|
+
return deps;
|
|
199
|
+
});
|
|
141
200
|
const renovateGithubActionDefaultImage = "ghcr.io/renovatebot/renovate";
|
|
142
201
|
const RenovateGithubActionWith = z.object({
|
|
143
202
|
"renovate-version": z.string().optional(),
|
|
@@ -155,6 +214,16 @@ const RenovateGithubActionWith = z.object({
|
|
|
155
214
|
* with known version input schemas.
|
|
156
215
|
*/
|
|
157
216
|
const knownActions = {
|
|
217
|
+
"abatilo/actions-poetry": {
|
|
218
|
+
datasource: PypiDatasource.id,
|
|
219
|
+
packageName: "poetry",
|
|
220
|
+
withSchema: valSchema("poetry-version")
|
|
221
|
+
},
|
|
222
|
+
"actions-rust-lang/setup-rust-toolchain": {
|
|
223
|
+
datasource: RustVersionDatasource.id,
|
|
224
|
+
packageName: "rust",
|
|
225
|
+
withSchema: SetupRustToolchainWith
|
|
226
|
+
},
|
|
158
227
|
"actions/setup-dotnet": {
|
|
159
228
|
datasource: DotnetVersionDatasource.id,
|
|
160
229
|
packageName: "dotnet-sdk",
|
|
@@ -177,7 +246,7 @@ const knownActions = {
|
|
|
177
246
|
datasource: GithubReleasesDatasource.id,
|
|
178
247
|
depName: "node",
|
|
179
248
|
packageName: "actions/node-versions",
|
|
180
|
-
versioning: id$
|
|
249
|
+
versioning: id$2,
|
|
181
250
|
extractVersion: actionsVersionsExtractVersion,
|
|
182
251
|
withSchema: valSchema("node-version")
|
|
183
252
|
},
|
|
@@ -189,6 +258,12 @@ const knownActions = {
|
|
|
189
258
|
extractVersion: actionsVersionsExtractVersion,
|
|
190
259
|
withSchema: valSchema("python-version")
|
|
191
260
|
},
|
|
261
|
+
"aquaproj/aqua-installer": {
|
|
262
|
+
datasource: GithubReleasesDatasource.id,
|
|
263
|
+
depName: "aqua",
|
|
264
|
+
packageName: "aquaproj/aqua",
|
|
265
|
+
withSchema: valSchema("aqua_version")
|
|
266
|
+
},
|
|
192
267
|
"aquasecurity/setup-trivy": {
|
|
193
268
|
datasource: GithubReleasesDatasource.id,
|
|
194
269
|
packageName: "aquasecurity/trivy"
|
|
@@ -197,6 +272,11 @@ const knownActions = {
|
|
|
197
272
|
datasource: GithubReleasesDatasource.id,
|
|
198
273
|
packageName: "aquasecurity/trivy"
|
|
199
274
|
},
|
|
275
|
+
"astral-sh/ruff-action": {
|
|
276
|
+
datasource: GithubReleasesDatasource.id,
|
|
277
|
+
depName: "ruff",
|
|
278
|
+
packageName: "astral-sh/ruff"
|
|
279
|
+
},
|
|
200
280
|
"astral-sh/setup-uv": {
|
|
201
281
|
datasource: GithubReleasesDatasource.id,
|
|
202
282
|
versioning: "npm",
|
|
@@ -212,6 +292,53 @@ const knownActions = {
|
|
|
212
292
|
depName: "helm",
|
|
213
293
|
packageName: "helm/helm"
|
|
214
294
|
},
|
|
295
|
+
"azure/setup-kubectl": {
|
|
296
|
+
datasource: GithubReleasesDatasource.id,
|
|
297
|
+
depName: "kubectl",
|
|
298
|
+
packageName: "kubernetes/kubernetes"
|
|
299
|
+
},
|
|
300
|
+
"biomejs/setup-biome": {
|
|
301
|
+
datasource: NpmDatasource.id,
|
|
302
|
+
packageName: "@biomejs/biome"
|
|
303
|
+
},
|
|
304
|
+
"bufbuild/buf-setup-action": {
|
|
305
|
+
datasource: GithubReleasesDatasource.id,
|
|
306
|
+
depName: "buf",
|
|
307
|
+
packageName: "bufbuild/buf"
|
|
308
|
+
},
|
|
309
|
+
"cargo-bins/cargo-binstall": {
|
|
310
|
+
datasource: GithubReleasesDatasource.id,
|
|
311
|
+
packageName: "cargo-bins/cargo-binstall",
|
|
312
|
+
extractVersion: "^v(?<version>\\d+\\.\\d+\\.\\d+)$"
|
|
313
|
+
},
|
|
314
|
+
"cloudflare/wrangler-action": {
|
|
315
|
+
datasource: NpmDatasource.id,
|
|
316
|
+
packageName: "wrangler",
|
|
317
|
+
withSchema: valSchema("wranglerVersion")
|
|
318
|
+
},
|
|
319
|
+
"cue-lang/setup-cue": {
|
|
320
|
+
datasource: GithubReleasesDatasource.id,
|
|
321
|
+
depName: "cue",
|
|
322
|
+
packageName: "cue-lang/cue"
|
|
323
|
+
},
|
|
324
|
+
"cycjimmy/semantic-release-action": {
|
|
325
|
+
datasource: NpmDatasource.id,
|
|
326
|
+
packageName: "semantic-release",
|
|
327
|
+
versioning: "npm",
|
|
328
|
+
withSchema: valSchema("semantic_version")
|
|
329
|
+
},
|
|
330
|
+
"dagger/dagger-for-github": {
|
|
331
|
+
datasource: GithubReleasesDatasource.id,
|
|
332
|
+
depName: "dagger",
|
|
333
|
+
packageName: "dagger/dagger",
|
|
334
|
+
extractVersion: "^v(?<version>\\d+\\..*)$"
|
|
335
|
+
},
|
|
336
|
+
"dart-lang/setup-dart": {
|
|
337
|
+
datasource: DartVersionDatasource.id,
|
|
338
|
+
depName: "dart",
|
|
339
|
+
packageName: "dart-lang/sdk",
|
|
340
|
+
withSchema: valSchema("sdk")
|
|
341
|
+
},
|
|
215
342
|
"denoland/setup-deno": {
|
|
216
343
|
datasource: NpmDatasource.id,
|
|
217
344
|
packageName: "deno",
|
|
@@ -237,20 +364,82 @@ const knownActions = {
|
|
|
237
364
|
packageName: "rust",
|
|
238
365
|
withSchema: valSchema("toolchain")
|
|
239
366
|
},
|
|
367
|
+
"erlef/setup-beam": {
|
|
368
|
+
datasource: GithubReleasesDatasource.id,
|
|
369
|
+
packageName: "",
|
|
370
|
+
withSchema: ErlefSetupBeamWith
|
|
371
|
+
},
|
|
240
372
|
"expo/expo-github-action": {
|
|
241
373
|
datasource: NpmDatasource.id,
|
|
242
374
|
packageName: "eas-cli",
|
|
243
375
|
withSchema: valSchema("eas-version")
|
|
244
376
|
},
|
|
377
|
+
"extractions/setup-just": {
|
|
378
|
+
datasource: GithubReleasesDatasource.id,
|
|
379
|
+
depName: "just",
|
|
380
|
+
packageName: "casey/just",
|
|
381
|
+
withSchema: valSchema("just-version")
|
|
382
|
+
},
|
|
383
|
+
"foundry-rs/foundry-toolchain": {
|
|
384
|
+
datasource: GithubReleasesDatasource.id,
|
|
385
|
+
depName: "foundry",
|
|
386
|
+
packageName: "foundry-rs/foundry"
|
|
387
|
+
},
|
|
388
|
+
"GitTools/actions/gitversion/setup": {
|
|
389
|
+
datasource: GithubReleasesDatasource.id,
|
|
390
|
+
depName: "gitversion",
|
|
391
|
+
packageName: "GitTools/GitVersion",
|
|
392
|
+
withSchema: valSchema("versionSpec")
|
|
393
|
+
},
|
|
245
394
|
"golangci/golangci-lint-action": {
|
|
246
395
|
datasource: GithubReleasesDatasource.id,
|
|
247
396
|
packageName: "golangci/golangci-lint"
|
|
248
397
|
},
|
|
398
|
+
"goreleaser/goreleaser-action": {
|
|
399
|
+
datasource: GithubReleasesDatasource.id,
|
|
400
|
+
packageName: "goreleaser/goreleaser",
|
|
401
|
+
versioning: "npm"
|
|
402
|
+
},
|
|
403
|
+
"gradle/actions/setup-gradle": {
|
|
404
|
+
datasource: GradleVersionDatasource.id,
|
|
405
|
+
depName: "gradle",
|
|
406
|
+
packageName: "gradle/gradle",
|
|
407
|
+
versioning: id$1,
|
|
408
|
+
withSchema: valSchema("gradle-version")
|
|
409
|
+
},
|
|
410
|
+
"hashicorp/setup-packer": {
|
|
411
|
+
datasource: GithubReleasesDatasource.id,
|
|
412
|
+
depName: "packer",
|
|
413
|
+
packageName: "hashicorp/packer"
|
|
414
|
+
},
|
|
415
|
+
"hashicorp/setup-terraform": {
|
|
416
|
+
datasource: GithubReleasesDatasource.id,
|
|
417
|
+
depName: "terraform",
|
|
418
|
+
packageName: "hashicorp/terraform",
|
|
419
|
+
withSchema: valSchema("terraform_version")
|
|
420
|
+
},
|
|
421
|
+
"helm/chart-releaser-action": {
|
|
422
|
+
datasource: GithubReleasesDatasource.id,
|
|
423
|
+
depName: "chart-releaser",
|
|
424
|
+
packageName: "helm/chart-releaser"
|
|
425
|
+
},
|
|
249
426
|
"helm/chart-testing-action": {
|
|
250
427
|
datasource: GithubReleasesDatasource.id,
|
|
251
428
|
depName: "chart-testing",
|
|
252
429
|
packageName: "helm/chart-testing"
|
|
253
430
|
},
|
|
431
|
+
"helm/kind-action": {
|
|
432
|
+
datasource: GithubReleasesDatasource.id,
|
|
433
|
+
packageName: "",
|
|
434
|
+
withSchema: KindActionWith
|
|
435
|
+
},
|
|
436
|
+
"j178/prek-action": {
|
|
437
|
+
datasource: GithubReleasesDatasource.id,
|
|
438
|
+
depName: "prek",
|
|
439
|
+
packageName: "j178/prek",
|
|
440
|
+
versioning: "npm",
|
|
441
|
+
withSchema: valSchema("prek-version")
|
|
442
|
+
},
|
|
254
443
|
"jakebailey/pyright-action": {
|
|
255
444
|
datasource: NpmDatasource.id,
|
|
256
445
|
packageName: "pyright",
|
|
@@ -266,6 +455,27 @@ const knownActions = {
|
|
|
266
455
|
packageName: "jdx/mise",
|
|
267
456
|
withSchema: MiseWith
|
|
268
457
|
},
|
|
458
|
+
"jfrog/setup-jfrog-cli": {
|
|
459
|
+
datasource: GithubReleasesDatasource.id,
|
|
460
|
+
depName: "jfrog-cli",
|
|
461
|
+
packageName: "jfrog/jfrog-cli"
|
|
462
|
+
},
|
|
463
|
+
"julia-actions/setup-julia": {
|
|
464
|
+
datasource: GithubReleasesDatasource.id,
|
|
465
|
+
depName: "julia",
|
|
466
|
+
packageName: "JuliaLang/julia"
|
|
467
|
+
},
|
|
468
|
+
"mozilla-actions/sccache-action": {
|
|
469
|
+
datasource: GithubReleasesDatasource.id,
|
|
470
|
+
depName: "sccache",
|
|
471
|
+
packageName: "mozilla/sccache"
|
|
472
|
+
},
|
|
473
|
+
"opentofu/setup-opentofu": {
|
|
474
|
+
datasource: GithubReleasesDatasource.id,
|
|
475
|
+
depName: "opentofu",
|
|
476
|
+
packageName: "opentofu/opentofu",
|
|
477
|
+
withSchema: valSchema("tofu_version")
|
|
478
|
+
},
|
|
269
479
|
"oven-sh/setup-bun": {
|
|
270
480
|
datasource: NpmDatasource.id,
|
|
271
481
|
packageName: "bun",
|
|
@@ -275,6 +485,12 @@ const knownActions = {
|
|
|
275
485
|
datasource: PypiDatasource.id,
|
|
276
486
|
packageName: "pdm"
|
|
277
487
|
},
|
|
488
|
+
"peaceiris/actions-hugo": {
|
|
489
|
+
datasource: GithubReleasesDatasource.id,
|
|
490
|
+
depName: "hugo",
|
|
491
|
+
packageName: "gohugoio/hugo",
|
|
492
|
+
withSchema: valSchema("hugo-version")
|
|
493
|
+
},
|
|
278
494
|
"pnpm/action-setup": {
|
|
279
495
|
datasource: NpmDatasource.id,
|
|
280
496
|
packageName: "pnpm"
|
|
@@ -290,16 +506,38 @@ const knownActions = {
|
|
|
290
506
|
packageName: "prefix-dev/pixi",
|
|
291
507
|
withSchema: valSchema("pixi-version")
|
|
292
508
|
},
|
|
509
|
+
"pulumi/actions": {
|
|
510
|
+
datasource: GithubReleasesDatasource.id,
|
|
511
|
+
depName: "pulumi",
|
|
512
|
+
packageName: "pulumi/pulumi",
|
|
513
|
+
withSchema: valSchema("pulumi-version")
|
|
514
|
+
},
|
|
515
|
+
"PyO3/maturin-action": {
|
|
516
|
+
datasource: PypiDatasource.id,
|
|
517
|
+
packageName: "maturin",
|
|
518
|
+
withSchema: valSchema("maturin-version")
|
|
519
|
+
},
|
|
293
520
|
"pypa/hatch": {
|
|
294
521
|
datasource: GithubReleasesDatasource.id,
|
|
295
522
|
packageName: "pypa/hatch",
|
|
296
523
|
extractVersion: "^hatch-(?<version>.+)$"
|
|
297
524
|
},
|
|
525
|
+
"raven-actions/actionlint": {
|
|
526
|
+
datasource: GithubReleasesDatasource.id,
|
|
527
|
+
depName: "actionlint",
|
|
528
|
+
packageName: "rhysd/actionlint"
|
|
529
|
+
},
|
|
298
530
|
"renovatebot/github-action": {
|
|
299
531
|
datasource: DockerDatasource.id,
|
|
300
532
|
packageName: "",
|
|
301
533
|
withSchema: RenovateGithubActionWith
|
|
302
534
|
},
|
|
535
|
+
"reviewdog/action-setup": {
|
|
536
|
+
datasource: GithubReleasesDatasource.id,
|
|
537
|
+
depName: "reviewdog",
|
|
538
|
+
packageName: "reviewdog/reviewdog",
|
|
539
|
+
withSchema: valSchema("reviewdog_version")
|
|
540
|
+
},
|
|
303
541
|
"ruby/setup-ruby": {
|
|
304
542
|
datasource: RubyVersionDatasource.id,
|
|
305
543
|
packageName: "ruby",
|
|
@@ -315,6 +553,34 @@ const knownActions = {
|
|
|
315
553
|
packageName: "sigstore/cosign",
|
|
316
554
|
withSchema: valSchema("cosign-release")
|
|
317
555
|
},
|
|
556
|
+
"snok/install-poetry": {
|
|
557
|
+
datasource: PypiDatasource.id,
|
|
558
|
+
packageName: "poetry"
|
|
559
|
+
},
|
|
560
|
+
"stCarolas/setup-maven": {
|
|
561
|
+
datasource: GithubReleasesDatasource.id,
|
|
562
|
+
depName: "maven",
|
|
563
|
+
packageName: "apache/maven",
|
|
564
|
+
extractVersion: "^maven-(?<version>.+)$",
|
|
565
|
+
versioning: "npm",
|
|
566
|
+
withSchema: valSchema("maven-version")
|
|
567
|
+
},
|
|
568
|
+
"subosito/flutter-action": {
|
|
569
|
+
datasource: GithubReleasesDatasource.id,
|
|
570
|
+
depName: "flutter",
|
|
571
|
+
packageName: "flutter/flutter",
|
|
572
|
+
withSchema: valSchema("flutter-version")
|
|
573
|
+
},
|
|
574
|
+
"supabase/setup-cli": {
|
|
575
|
+
datasource: NpmDatasource.id,
|
|
576
|
+
packageName: "supabase"
|
|
577
|
+
},
|
|
578
|
+
"terraform-linters/setup-tflint": {
|
|
579
|
+
datasource: GithubReleasesDatasource.id,
|
|
580
|
+
depName: "tflint",
|
|
581
|
+
packageName: "terraform-linters/tflint",
|
|
582
|
+
withSchema: TflintWith
|
|
583
|
+
},
|
|
318
584
|
"UpCloudLtd/upcloud-cli-action": {
|
|
319
585
|
datasource: GithubReleasesDatasource.id,
|
|
320
586
|
packageName: "UpCloudLtd/upcloud-cli"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"known-actions.js","names":["nodeVersioning.id","condaVersioning.id"],"sources":["../../../../lib/modules/manager/github-actions/known-actions.ts"],"sourcesContent":["import { z } from 'zod/v4';\n\nimport { regEx } from '../../../util/regex.ts';\nimport { DockerDatasource } from '../../datasource/docker/index.ts';\nimport { DotnetVersionDatasource } from '../../datasource/dotnet-version/index.ts';\nimport { GithubReleaseAttachmentsDatasource } from '../../datasource/github-release-attachments/index.ts';\nimport { GithubReleasesDatasource } from '../../datasource/github-releases/index.ts';\nimport { JavaVersionDatasource } from '../../datasource/java-version/index.ts';\nimport { NodeVersionDatasource } from '../../datasource/node-version/index.ts';\nimport { NpmDatasource } from '../../datasource/npm/index.ts';\nimport { PypiDatasource } from '../../datasource/pypi/index.ts';\nimport { RubyVersionDatasource } from '../../datasource/ruby-version/index.ts';\nimport { RustVersionDatasource } from '../../datasource/rust-version/index.ts';\nimport * as condaVersioning from '../../versioning/conda/index.ts';\nimport * as nodeVersioning from '../../versioning/node/index.ts';\nimport * as npmVersioning from '../../versioning/npm/index.ts';\nimport { splitImageParts } from '../dockerfile/extract.ts';\nimport type { PackageDependency } from '../types.ts';\nimport type { ActionSchema, KnownActionConfig } from './types.ts';\n\nexport function actionSchema(\n name: string,\n { withSchema, ...cfg }: KnownActionConfig,\n): ActionSchema {\n return z\n .object({\n uses: matchAction(name),\n with: withSchema ?? VersionVal,\n })\n .transform(({ with: deps }) =>\n deps.map((dep) => {\n const merged = { ...cfg, ...dep };\n merged.depName ??= merged.packageName;\n return merged;\n }),\n );\n}\n\nfunction matchAction(action: string): z.ZodString {\n return z\n .string()\n .regex(regEx(`(?:https?://[^/]+/)?${RegExp.escape(action)}(?:@.+)?$`));\n}\n\nfunction parseValue(\n currentValue: string | undefined,\n isInvalid?: (val: string) => boolean,\n): PackageDependency {\n if (!currentValue) {\n return {\n skipStage: 'extract',\n skipReason: 'unspecified-version',\n depType: 'uses-with',\n };\n }\n if (isInvalid?.(currentValue) === true) {\n return {\n skipStage: 'extract',\n skipReason: 'invalid-version',\n depType: 'uses-with',\n currentValue,\n };\n }\n return { currentValue, depType: 'uses-with' };\n}\n\n/**\n * A single dependency, versioned by the given `with:` input.\n *\n * @param isInvalid should return `true` if the version is invalid and should be skipped\n */\nfunction valSchema(\n key: string,\n isInvalid?: (val: string) => boolean,\n): ActionSchema {\n return z\n .object({ [key]: z.string().optional() })\n .transform((val) => [parseValue(val[key], isInvalid)]);\n}\n\nconst VersionVal = valSchema('version');\n\n// Shared by the `actions/setup-{go,node,python}` entries below, whose\n// releases are published as `actions/{go,node,python}-versions` GitHub\n// releases, tagged like `20.11.0` or `20.11.0-1` (a build number suffix).\nconst actionsVersionsExtractVersion =\n '^(?<version>\\\\d+\\\\.\\\\d+\\\\.\\\\d+)(-\\\\d+)?$';\n\nconst InstallBinaryWith: ActionSchema = z\n .object({ repo: z.string(), tag: z.string() })\n .transform(({ repo, tag }) => [{ packageName: repo, ...parseValue(tag) }]);\n\nfunction parseImageValue(image: string | undefined): PackageDependency {\n if (!image) {\n return {\n depType: 'uses-with',\n skipStage: 'extract',\n skipReason: 'unspecified-version',\n };\n }\n\n const dep = splitImageParts(image);\n return {\n depType: 'uses-with',\n ...dep,\n ...(dep.skipReason ? { skipStage: 'extract' } : {}),\n };\n}\n\nconst EcsRenderTaskDefinitionWith: ActionSchema = z\n .object({ image: z.string().optional() })\n .transform(({ image }) => [parseImageValue(image)]);\n\nconst sha256Regex = regEx(/^[a-f0-9]{64}$/);\nconst MiseWith: ActionSchema = z\n .object({\n version: z.string().optional(),\n sha256: z.string().optional(),\n })\n .transform(({ version, sha256 }) => [\n {\n ...parseValue(version),\n ...(sha256 && sha256Regex.test(sha256) ? { currentDigest: sha256 } : {}),\n },\n ]);\n\n// Runtimes installable by `pnpm/setup`, keyed by the name used in its\n// `runtime:` input. `bun` and `deno` reuse the datasources of their respective\n// `setup-*` actions below.\nconst pnpmRuntimes: Record<string, PackageDependency | undefined> = {\n node: { datasource: NodeVersionDatasource.id, packageName: 'node' },\n bun: { datasource: NpmDatasource.id, packageName: 'bun' },\n deno: { datasource: NpmDatasource.id, packageName: 'deno' },\n};\n\nfunction parsePnpmRuntime(runtime: string | undefined): PackageDependency[] {\n if (!runtime) {\n return [];\n }\n\n // `<name>` or `<name>@<version>`, matching pnpm's `packageManager` field syntax\n const [name, version] = runtime.split('@');\n const cfg = pnpmRuntimes[name];\n if (!cfg) {\n return [\n {\n packageName: name || runtime,\n depType: 'uses-with',\n skipStage: 'extract',\n skipReason: 'invalid-name',\n },\n ];\n }\n\n return [{ ...cfg, ...parseValue(version) }];\n}\n\nconst PnpmSetupWith: ActionSchema = z\n .object({\n version: z.string().optional(),\n runtime: z.string().optional(),\n })\n .transform(({ version, runtime }) => [\n parseValue(version),\n ...parsePnpmRuntime(runtime),\n ]);\n\n// Distributions whose version numbering we can reliably track via the\n// java-version datasource (which sources releases from Adoptium/Eclipse\n// Temurin). Other distributions may not follow the same release cadence\n// or versioning, so we don't attempt to track them.\nconst supportedJavaDistributions = new Set(['temurin', 'adopt']);\n\nconst SetupJavaWith: ActionSchema = z\n .object({\n distribution: z.string().optional(),\n 'java-version': z.string().optional(),\n 'java-package': z.string().optional(),\n })\n .transform(\n ({\n distribution,\n 'java-version': version,\n 'java-package': javaPackage,\n }) => {\n const packageName = javaPackage?.startsWith('jre')\n ? 'java-jre'\n : 'java-jdk';\n\n if (\n !distribution ||\n !supportedJavaDistributions.has(distribution.toLowerCase())\n ) {\n return [\n {\n packageName,\n depType: 'uses-with',\n skipStage: 'extract',\n skipReason: 'unsupported',\n },\n ];\n }\n\n return [{ packageName, ...parseValue(version) }];\n },\n );\n\nconst renovateGithubActionDefaultImage = 'ghcr.io/renovatebot/renovate';\nconst RenovateGithubActionWith: ActionSchema = z\n .object({\n 'renovate-version': z.string().optional(),\n 'renovate-image': z.string().optional(),\n })\n .transform(({ 'renovate-version': version, 'renovate-image': image }) => {\n const [packageName, currentDigest] = (\n image ?? renovateGithubActionDefaultImage\n ).split('@');\n return [\n {\n packageName,\n ...(currentDigest ? { currentDigest } : {}),\n ...parseValue(version),\n },\n ];\n });\n\n/**\n * Community-maintained and first-party (GitHub's own `actions/*`) Actions\n * with known version input schemas.\n */\nexport const knownActions: Record<string, KnownActionConfig> = {\n // https://github.com/actions/setup-dotnet\n 'actions/setup-dotnet': {\n datasource: DotnetVersionDatasource.id,\n packageName: 'dotnet-sdk',\n withSchema: valSchema('dotnet-version', (val) => val.includes('\\n')),\n },\n // https://github.com/actions/setup-go\n 'actions/setup-go': {\n datasource: GithubReleasesDatasource.id,\n depName: 'go',\n packageName: 'actions/go-versions',\n versioning: npmVersioning.id,\n extractVersion: actionsVersionsExtractVersion,\n withSchema: valSchema('go-version'),\n },\n // https://github.com/actions/setup-java\n 'actions/setup-java': {\n datasource: JavaVersionDatasource.id,\n packageName: '', // determined from `distribution`/`java-package` inputs\n withSchema: SetupJavaWith,\n },\n // https://github.com/actions/setup-node\n 'actions/setup-node': {\n datasource: GithubReleasesDatasource.id,\n depName: 'node',\n packageName: 'actions/node-versions',\n versioning: nodeVersioning.id,\n extractVersion: actionsVersionsExtractVersion,\n withSchema: valSchema('node-version'),\n },\n // https://github.com/actions/setup-python\n 'actions/setup-python': {\n datasource: GithubReleasesDatasource.id,\n depName: 'python',\n packageName: 'actions/python-versions',\n versioning: npmVersioning.id,\n extractVersion: actionsVersionsExtractVersion,\n withSchema: valSchema('python-version'),\n },\n // https://github.com/aquasecurity/setup-trivy\n 'aquasecurity/setup-trivy': {\n datasource: GithubReleasesDatasource.id,\n packageName: 'aquasecurity/trivy',\n },\n // https://github.com/aquasecurity/trivy-action\n 'aquasecurity/trivy-action': {\n datasource: GithubReleasesDatasource.id,\n packageName: 'aquasecurity/trivy',\n },\n // https://github.com/astral-sh/setup-uv\n 'astral-sh/setup-uv': {\n datasource: GithubReleasesDatasource.id,\n versioning: npmVersioning.id,\n packageName: 'astral-sh/uv',\n },\n // https://github.com/aws-actions/amazon-ecs-render-task-definition\n 'aws-actions/amazon-ecs-render-task-definition': {\n datasource: DockerDatasource.id,\n packageName: '', // determined from `image` input\n withSchema: EcsRenderTaskDefinitionWith,\n },\n 'azure/setup-helm': {\n datasource: GithubReleasesDatasource.id,\n depName: 'helm',\n packageName: 'helm/helm',\n },\n // https://github.com/azure/setup-helm\n 'denoland/setup-deno': {\n datasource: NpmDatasource.id,\n packageName: 'deno',\n withSchema: valSchema('deno-version'),\n },\n // https://github.com/docker/setup-buildx-action\n 'docker/setup-buildx-action': {\n datasource: GithubReleasesDatasource.id,\n depName: 'buildx',\n packageName: 'docker/buildx',\n },\n // https://github.com/docker/setup-compose-action\n 'docker/setup-compose-action': {\n datasource: GithubReleasesDatasource.id,\n packageName: 'docker/compose',\n },\n // https://github.com/docker/setup-docker-action\n 'docker/setup-docker-action': {\n datasource: GithubReleasesDatasource.id,\n depName: 'docker',\n packageName: 'moby/moby',\n extractVersion: '^docker-(?<version>.+)$',\n },\n // https://github.com/dtolnay/rust-toolchain\n 'dtolnay/rust-toolchain': {\n datasource: RustVersionDatasource.id,\n packageName: 'rust',\n withSchema: valSchema('toolchain'),\n },\n // https://github.com/expo/expo-github-action\n 'expo/expo-github-action': {\n datasource: NpmDatasource.id,\n packageName: 'eas-cli',\n withSchema: valSchema('eas-version'),\n },\n 'golangci/golangci-lint-action': {\n datasource: GithubReleasesDatasource.id,\n packageName: 'golangci/golangci-lint',\n },\n // https://github.com/helm/chart-testing-action\n 'helm/chart-testing-action': {\n datasource: GithubReleasesDatasource.id,\n depName: 'chart-testing',\n packageName: 'helm/chart-testing',\n },\n 'jakebailey/pyright-action': {\n datasource: NpmDatasource.id,\n packageName: 'pyright',\n withSchema: valSchema('version', (val) => val === 'PATH'),\n },\n 'jaxxstorm/action-install-gh-release': {\n datasource: GithubReleasesDatasource.id,\n packageName: '', // determined from `repo` input\n withSchema: InstallBinaryWith,\n },\n 'jdx/mise-action': {\n datasource: GithubReleaseAttachmentsDatasource.id,\n packageName: 'jdx/mise',\n withSchema: MiseWith,\n },\n 'oven-sh/setup-bun': {\n datasource: NpmDatasource.id,\n packageName: 'bun',\n withSchema: valSchema('bun-version'),\n },\n 'pdm-project/setup-pdm': {\n datasource: PypiDatasource.id,\n packageName: 'pdm',\n },\n 'pnpm/action-setup': {\n datasource: NpmDatasource.id,\n packageName: 'pnpm',\n },\n 'pnpm/setup': {\n datasource: NpmDatasource.id,\n packageName: 'pnpm',\n withSchema: PnpmSetupWith,\n },\n 'prefix-dev/setup-pixi': {\n datasource: GithubReleasesDatasource.id,\n versioning: condaVersioning.id,\n packageName: 'prefix-dev/pixi',\n withSchema: valSchema('pixi-version'),\n },\n // https://github.com/pypa/hatch/tree/install\n 'pypa/hatch': {\n datasource: GithubReleasesDatasource.id,\n packageName: 'pypa/hatch',\n // Strip hatch- prefix from release tags\n extractVersion: '^hatch-(?<version>.+)$',\n },\n // https://github.com/renovatebot/github-action\n 'renovatebot/github-action': {\n datasource: DockerDatasource.id,\n packageName: '', // determined from `renovate-image` input, if set\n withSchema: RenovateGithubActionWith,\n },\n 'ruby/setup-ruby': {\n datasource: RubyVersionDatasource.id,\n packageName: 'ruby',\n withSchema: valSchema('ruby-version'),\n },\n 'sigoden/install-binary': {\n datasource: GithubReleasesDatasource.id,\n packageName: '', // determined from `repo` input\n withSchema: InstallBinaryWith,\n },\n 'sigstore/cosign-installer': {\n datasource: GithubReleasesDatasource.id,\n packageName: 'sigstore/cosign',\n withSchema: valSchema('cosign-release'),\n },\n 'UpCloudLtd/upcloud-cli-action': {\n datasource: GithubReleasesDatasource.id,\n packageName: 'UpCloudLtd/upcloud-cli',\n },\n 'zizmorcore/zizmor-action': {\n datasource: DockerDatasource.id,\n packageName: 'ghcr.io/zizmorcore/zizmor',\n },\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"known-actions.js","names":["nodeVersioning.id","gradleVersioning.id","condaVersioning.id"],"sources":["../../../../lib/modules/manager/github-actions/known-actions.ts"],"sourcesContent":["import { z } from 'zod/v4';\n\nimport { regEx } from '../../../util/regex.ts';\nimport { DartVersionDatasource } from '../../datasource/dart-version/index.ts';\nimport { DockerDatasource } from '../../datasource/docker/index.ts';\nimport { DotnetVersionDatasource } from '../../datasource/dotnet-version/index.ts';\nimport { GithubReleaseAttachmentsDatasource } from '../../datasource/github-release-attachments/index.ts';\nimport { GithubReleasesDatasource } from '../../datasource/github-releases/index.ts';\nimport { GradleVersionDatasource } from '../../datasource/gradle-version/index.ts';\nimport { JavaVersionDatasource } from '../../datasource/java-version/index.ts';\nimport { NodeVersionDatasource } from '../../datasource/node-version/index.ts';\nimport { NpmDatasource } from '../../datasource/npm/index.ts';\nimport { PypiDatasource } from '../../datasource/pypi/index.ts';\nimport { RubyVersionDatasource } from '../../datasource/ruby-version/index.ts';\nimport { RustVersionDatasource } from '../../datasource/rust-version/index.ts';\nimport * as condaVersioning from '../../versioning/conda/index.ts';\nimport * as gradleVersioning from '../../versioning/gradle/index.ts';\nimport * as nodeVersioning from '../../versioning/node/index.ts';\nimport * as npmVersioning from '../../versioning/npm/index.ts';\nimport { splitImageParts } from '../dockerfile/extract.ts';\nimport type { PackageDependency } from '../types.ts';\nimport type { ActionSchema, KnownActionConfig } from './types.ts';\n\nexport function actionSchema(\n name: string,\n { withSchema, ...cfg }: KnownActionConfig,\n): ActionSchema {\n return z\n .object({\n uses: matchAction(name),\n with: withSchema ?? VersionVal,\n })\n .transform(({ with: deps }) =>\n deps.map((dep) => {\n const merged = { ...cfg, ...dep };\n merged.depName ??= merged.packageName;\n return merged;\n }),\n );\n}\n\nfunction matchAction(action: string): z.ZodString {\n return z\n .string()\n .regex(regEx(`(?:https?://[^/]+/)?${RegExp.escape(action)}(?:@.+)?$`));\n}\n\nfunction parseValue(\n currentValue: string | undefined,\n isInvalid?: (val: string) => boolean,\n): PackageDependency {\n if (!currentValue) {\n return {\n skipStage: 'extract',\n skipReason: 'unspecified-version',\n depType: 'uses-with',\n };\n }\n if (isInvalid?.(currentValue) === true) {\n return {\n skipStage: 'extract',\n skipReason: 'invalid-version',\n depType: 'uses-with',\n currentValue,\n };\n }\n return { currentValue, depType: 'uses-with' };\n}\n\n/**\n * A single dependency, versioned by the given `with:` input.\n *\n * @param isInvalid should return `true` if the version is invalid and should be skipped\n */\nfunction valSchema(\n key: string,\n isInvalid?: (val: string) => boolean,\n): ActionSchema {\n return z\n .object({ [key]: z.string().optional() })\n .transform((val) => [parseValue(val[key], isInvalid)]);\n}\n\nconst VersionVal = valSchema('version');\n\n// Shared by the `actions/setup-{go,node,python}` entries below, whose\n// releases are published as `actions/{go,node,python}-versions` GitHub\n// releases, tagged like `20.11.0` or `20.11.0-1` (a build number suffix).\nconst actionsVersionsExtractVersion =\n '^(?<version>\\\\d+\\\\.\\\\d+\\\\.\\\\d+)(-\\\\d+)?$';\n\n// `actions-rust-lang/setup-rust-toolchain`'s `toolchain` input is a\n// comma-separated list of toolchains; only the LAST one becomes the active\n// default toolchain, so that's the only one worth tracking.\nconst SetupRustToolchainWith: ActionSchema = z\n .object({ toolchain: z.string().optional() })\n .transform(({ toolchain }) => [\n parseValue(toolchain?.split(',').pop()?.trim()),\n ]);\n\nconst InstallBinaryWith: ActionSchema = z\n .object({ repo: z.string(), tag: z.string() })\n .transform(({ repo, tag }) => [{ packageName: repo, ...parseValue(tag) }]);\n\nfunction parseImageValue(image: string | undefined): PackageDependency {\n if (!image) {\n return {\n depType: 'uses-with',\n skipStage: 'extract',\n skipReason: 'unspecified-version',\n };\n }\n\n const dep = splitImageParts(image);\n return {\n depType: 'uses-with',\n ...dep,\n ...(dep.skipReason ? { skipStage: 'extract' } : {}),\n };\n}\n\nconst EcsRenderTaskDefinitionWith: ActionSchema = z\n .object({ image: z.string().optional() })\n .transform(({ image }) => [parseImageValue(image)]);\n\nconst sha256Regex = regEx(/^[a-f0-9]{64}$/);\nconst MiseWith: ActionSchema = z\n .object({\n version: z.string().optional(),\n sha256: z.string().optional(),\n })\n .transform(({ version, sha256 }) => [\n {\n ...parseValue(version),\n ...(sha256 && sha256Regex.test(sha256) ? { currentDigest: sha256 } : {}),\n },\n ]);\n\n// Runtimes installable by `pnpm/setup`, keyed by the name used in its\n// `runtime:` input. `bun` and `deno` reuse the datasources of their respective\n// `setup-*` actions below.\nconst pnpmRuntimes: Record<string, PackageDependency | undefined> = {\n node: { datasource: NodeVersionDatasource.id, packageName: 'node' },\n bun: { datasource: NpmDatasource.id, packageName: 'bun' },\n deno: { datasource: NpmDatasource.id, packageName: 'deno' },\n};\n\nfunction parsePnpmRuntime(runtime: string | undefined): PackageDependency[] {\n if (!runtime) {\n return [];\n }\n\n // `<name>` or `<name>@<version>`, matching pnpm's `packageManager` field syntax\n const [name, version] = runtime.split('@');\n const cfg = pnpmRuntimes[name];\n if (!cfg) {\n return [\n {\n packageName: name || runtime,\n depType: 'uses-with',\n skipStage: 'extract',\n skipReason: 'invalid-name',\n },\n ];\n }\n\n return [{ ...cfg, ...parseValue(version) }];\n}\n\nconst PnpmSetupWith: ActionSchema = z\n .object({\n version: z.string().optional(),\n runtime: z.string().optional(),\n })\n .transform(({ version, runtime }) => [\n parseValue(version),\n ...parsePnpmRuntime(runtime),\n ]);\n\n// Distributions whose version numbering we can reliably track via the\n// java-version datasource (which sources releases from Adoptium/Eclipse\n// Temurin). Other distributions may not follow the same release cadence\n// or versioning, so we don't attempt to track them.\nconst supportedJavaDistributions = new Set(['temurin', 'adopt']);\n\nconst SetupJavaWith: ActionSchema = z\n .object({\n distribution: z.string().optional(),\n 'java-version': z.string().optional(),\n 'java-package': z.string().optional(),\n })\n .transform(\n ({\n distribution,\n 'java-version': version,\n 'java-package': javaPackage,\n }) => {\n const packageName = javaPackage?.startsWith('jre')\n ? 'java-jre'\n : 'java-jdk';\n\n if (\n !distribution ||\n !supportedJavaDistributions.has(distribution.toLowerCase())\n ) {\n return [\n {\n packageName,\n depType: 'uses-with',\n skipStage: 'extract',\n skipReason: 'unsupported',\n },\n ];\n }\n\n return [{ packageName, ...parseValue(version) }];\n },\n );\n\n// `'latest'` is a valid, documented value for `tflint_version` (it's also the\n// action's own default), but it isn't a version we can pin/bump, so treat it\n// as present-but-unsupported rather than as an invalid value.\nconst TflintWith: ActionSchema = z\n .object({ tflint_version: z.string().optional() })\n .transform(({ tflint_version: version }) => {\n if (version === 'latest') {\n return [\n {\n currentValue: version,\n depType: 'uses-with',\n skipStage: 'extract',\n skipReason: 'unsupported-version',\n },\n ];\n }\n return [parseValue(version)];\n });\n\n// `helm/kind-action` can yield up to 3 dependencies from a single step: the\n// `kind` binary itself, the `kindest/node` image it boots, and (optionally) a\n// pinned `kubectl` binary. All 3 inputs are optional, so only emit a\n// dependency for the ones a workflow actually sets.\nconst KindActionWith: ActionSchema = z\n .object({\n version: z.string().optional(),\n node_image: z.string().optional(),\n kubectl_version: z.string().optional(),\n })\n .transform(({ version, node_image, kubectl_version }) => {\n const deps: PackageDependency[] = [];\n\n if (version) {\n deps.push({\n packageName: 'kubernetes-sigs/kind',\n ...parseValue(version),\n });\n }\n\n if (node_image) {\n // `node_image` may be pinned by digest (e.g.\n // `kindest/node:v1.31.0@sha256:...`), so reuse the same Docker\n // image-reference parsing as `aws-actions/amazon-ecs-render-task-definition`\n // rather than naively splitting on `:`.\n deps.push({\n datasource: DockerDatasource.id,\n ...parseImageValue(node_image),\n });\n }\n\n if (kubectl_version) {\n deps.push({\n packageName: 'kubernetes/kubernetes',\n ...parseValue(kubectl_version),\n });\n }\n\n return deps;\n });\n\n// `erlef/setup-beam` can yield up to 4 dependencies from a single step: OTP,\n// Elixir, Gleam, and rebar3. All inputs are optional, so only emit a\n// dependency for the ones a workflow actually sets.\nconst ErlefSetupBeamWith: ActionSchema = z\n .object({\n 'otp-version': z.string().optional(),\n 'elixir-version': z.string().optional(),\n 'gleam-version': z.string().optional(),\n 'rebar3-version': z.string().optional(),\n })\n .transform(\n ({\n 'otp-version': otpVersion,\n 'elixir-version': elixirVersion,\n 'gleam-version': gleamVersion,\n 'rebar3-version': rebar3Version,\n }) => {\n const deps: PackageDependency[] = [];\n\n if (otpVersion) {\n deps.push({\n packageName: 'erlang/otp',\n // erlang/otp tags releases like `OTP-27.1.2`\n extractVersion: '^OTP-(?<version>.+)$',\n ...parseValue(otpVersion),\n });\n }\n\n if (elixirVersion) {\n deps.push({\n packageName: 'elixir-lang/elixir',\n ...parseValue(elixirVersion),\n });\n }\n\n if (gleamVersion) {\n deps.push({\n packageName: 'gleam-lang/gleam',\n ...parseValue(gleamVersion),\n });\n }\n\n if (rebar3Version) {\n deps.push({\n packageName: 'erlang/rebar3',\n ...parseValue(rebar3Version),\n });\n }\n\n return deps;\n },\n );\n\nconst renovateGithubActionDefaultImage = 'ghcr.io/renovatebot/renovate';\nconst RenovateGithubActionWith: ActionSchema = z\n .object({\n 'renovate-version': z.string().optional(),\n 'renovate-image': z.string().optional(),\n })\n .transform(({ 'renovate-version': version, 'renovate-image': image }) => {\n const [packageName, currentDigest] = (\n image ?? renovateGithubActionDefaultImage\n ).split('@');\n return [\n {\n packageName,\n ...(currentDigest ? { currentDigest } : {}),\n ...parseValue(version),\n },\n ];\n });\n\n/**\n * Community-maintained and first-party (GitHub's own `actions/*`) Actions\n * with known version input schemas.\n */\nexport const knownActions: Record<string, KnownActionConfig> = {\n // https://github.com/abatilo/actions-poetry\n 'abatilo/actions-poetry': {\n datasource: PypiDatasource.id,\n packageName: 'poetry',\n withSchema: valSchema('poetry-version'),\n },\n // https://github.com/actions-rust-lang/setup-rust-toolchain\n 'actions-rust-lang/setup-rust-toolchain': {\n datasource: RustVersionDatasource.id,\n packageName: 'rust',\n withSchema: SetupRustToolchainWith,\n },\n // https://github.com/actions/setup-dotnet\n 'actions/setup-dotnet': {\n datasource: DotnetVersionDatasource.id,\n packageName: 'dotnet-sdk',\n withSchema: valSchema('dotnet-version', (val) => val.includes('\\n')),\n },\n // https://github.com/actions/setup-go\n 'actions/setup-go': {\n datasource: GithubReleasesDatasource.id,\n depName: 'go',\n packageName: 'actions/go-versions',\n versioning: npmVersioning.id,\n extractVersion: actionsVersionsExtractVersion,\n withSchema: valSchema('go-version'),\n },\n // https://github.com/actions/setup-java\n 'actions/setup-java': {\n datasource: JavaVersionDatasource.id,\n packageName: '', // determined from `distribution`/`java-package` inputs\n withSchema: SetupJavaWith,\n },\n // https://github.com/actions/setup-node\n 'actions/setup-node': {\n datasource: GithubReleasesDatasource.id,\n depName: 'node',\n packageName: 'actions/node-versions',\n versioning: nodeVersioning.id,\n extractVersion: actionsVersionsExtractVersion,\n withSchema: valSchema('node-version'),\n },\n // https://github.com/actions/setup-python\n 'actions/setup-python': {\n datasource: GithubReleasesDatasource.id,\n depName: 'python',\n packageName: 'actions/python-versions',\n versioning: npmVersioning.id,\n extractVersion: actionsVersionsExtractVersion,\n withSchema: valSchema('python-version'),\n },\n // https://github.com/aquaproj/aqua-installer\n 'aquaproj/aqua-installer': {\n datasource: GithubReleasesDatasource.id,\n depName: 'aqua',\n packageName: 'aquaproj/aqua',\n withSchema: valSchema('aqua_version'),\n },\n // https://github.com/aquasecurity/setup-trivy\n 'aquasecurity/setup-trivy': {\n datasource: GithubReleasesDatasource.id,\n packageName: 'aquasecurity/trivy',\n },\n // https://github.com/aquasecurity/trivy-action\n 'aquasecurity/trivy-action': {\n datasource: GithubReleasesDatasource.id,\n packageName: 'aquasecurity/trivy',\n },\n // https://github.com/astral-sh/ruff-action\n 'astral-sh/ruff-action': {\n datasource: GithubReleasesDatasource.id,\n depName: 'ruff',\n packageName: 'astral-sh/ruff',\n },\n // https://github.com/astral-sh/setup-uv\n 'astral-sh/setup-uv': {\n datasource: GithubReleasesDatasource.id,\n versioning: npmVersioning.id,\n packageName: 'astral-sh/uv',\n },\n // https://github.com/aws-actions/amazon-ecs-render-task-definition\n 'aws-actions/amazon-ecs-render-task-definition': {\n datasource: DockerDatasource.id,\n packageName: '', // determined from `image` input\n withSchema: EcsRenderTaskDefinitionWith,\n },\n 'azure/setup-helm': {\n datasource: GithubReleasesDatasource.id,\n depName: 'helm',\n packageName: 'helm/helm',\n },\n // https://github.com/azure/setup-kubectl\n 'azure/setup-kubectl': {\n datasource: GithubReleasesDatasource.id,\n depName: 'kubectl',\n packageName: 'kubernetes/kubernetes',\n },\n // https://github.com/biomejs/setup-biome\n 'biomejs/setup-biome': {\n datasource: NpmDatasource.id,\n packageName: '@biomejs/biome',\n },\n // https://github.com/bufbuild/buf-setup-action\n 'bufbuild/buf-setup-action': {\n datasource: GithubReleasesDatasource.id,\n depName: 'buf',\n packageName: 'bufbuild/buf',\n },\n // https://github.com/cargo-bins/cargo-binstall\n 'cargo-bins/cargo-binstall': {\n datasource: GithubReleasesDatasource.id,\n packageName: 'cargo-bins/cargo-binstall',\n // the repo also publishes releases for its internal sub-crates (e.g.\n // `detect-targets-v0.1.91`, `binstalk-v0.28.81`) — only match the bare\n // main-tool release tag\n extractVersion: '^v(?<version>\\\\d+\\\\.\\\\d+\\\\.\\\\d+)$',\n },\n // https://github.com/cloudflare/wrangler-action\n 'cloudflare/wrangler-action': {\n datasource: NpmDatasource.id,\n packageName: 'wrangler',\n withSchema: valSchema('wranglerVersion'),\n },\n // https://github.com/cue-lang/setup-cue\n 'cue-lang/setup-cue': {\n datasource: GithubReleasesDatasource.id,\n depName: 'cue',\n packageName: 'cue-lang/cue',\n },\n // https://github.com/cycjimmy/semantic-release-action\n 'cycjimmy/semantic-release-action': {\n datasource: NpmDatasource.id,\n packageName: 'semantic-release',\n // the action's docs describe `semantic_version` as a version range, not\n // a pinned exact version\n versioning: npmVersioning.id,\n withSchema: valSchema('semantic_version'),\n },\n // https://github.com/dagger/dagger-for-github\n 'dagger/dagger-for-github': {\n datasource: GithubReleasesDatasource.id,\n depName: 'dagger',\n packageName: 'dagger/dagger',\n // the repo also publishes per-SDK/component tags sharing the same\n // version (e.g. `sdk/typescript/v0.21.9`, `helm/chart/v0.21.9`) — only\n // match the bare release tag\n extractVersion: '^v(?<version>\\\\d+\\\\..*)$',\n },\n // https://github.com/dart-lang/setup-dart\n 'dart-lang/setup-dart': {\n datasource: DartVersionDatasource.id,\n depName: 'dart',\n packageName: 'dart-lang/sdk',\n withSchema: valSchema('sdk'),\n },\n // https://github.com/azure/setup-helm\n 'denoland/setup-deno': {\n datasource: NpmDatasource.id,\n packageName: 'deno',\n withSchema: valSchema('deno-version'),\n },\n // https://github.com/docker/setup-buildx-action\n 'docker/setup-buildx-action': {\n datasource: GithubReleasesDatasource.id,\n depName: 'buildx',\n packageName: 'docker/buildx',\n },\n // https://github.com/docker/setup-compose-action\n 'docker/setup-compose-action': {\n datasource: GithubReleasesDatasource.id,\n packageName: 'docker/compose',\n },\n // https://github.com/docker/setup-docker-action\n 'docker/setup-docker-action': {\n datasource: GithubReleasesDatasource.id,\n depName: 'docker',\n packageName: 'moby/moby',\n extractVersion: '^docker-(?<version>.+)$',\n },\n // https://github.com/dtolnay/rust-toolchain\n 'dtolnay/rust-toolchain': {\n datasource: RustVersionDatasource.id,\n packageName: 'rust',\n withSchema: valSchema('toolchain'),\n },\n // https://github.com/erlef/setup-beam\n 'erlef/setup-beam': {\n datasource: GithubReleasesDatasource.id,\n packageName: '', // determined per dependency: OTP, Elixir, Gleam, rebar3\n withSchema: ErlefSetupBeamWith,\n },\n // https://github.com/expo/expo-github-action\n 'expo/expo-github-action': {\n datasource: NpmDatasource.id,\n packageName: 'eas-cli',\n withSchema: valSchema('eas-version'),\n },\n // https://github.com/extractions/setup-just\n 'extractions/setup-just': {\n datasource: GithubReleasesDatasource.id,\n depName: 'just',\n packageName: 'casey/just',\n withSchema: valSchema('just-version'),\n },\n // https://github.com/foundry-rs/foundry-toolchain\n 'foundry-rs/foundry-toolchain': {\n datasource: GithubReleasesDatasource.id,\n depName: 'foundry',\n packageName: 'foundry-rs/foundry',\n },\n // https://github.com/GitTools/actions (there is no root-level Action, only\n // subpaths are usable; the sibling `GitTools/actions/gitreleasemanager/setup`\n // is a separate, unrelated Action)\n 'GitTools/actions/gitversion/setup': {\n datasource: GithubReleasesDatasource.id,\n depName: 'gitversion',\n packageName: 'GitTools/GitVersion',\n withSchema: valSchema('versionSpec'),\n },\n 'golangci/golangci-lint-action': {\n datasource: GithubReleasesDatasource.id,\n packageName: 'golangci/golangci-lint',\n },\n // https://github.com/goreleaser/goreleaser-action\n 'goreleaser/goreleaser-action': {\n datasource: GithubReleasesDatasource.id,\n packageName: 'goreleaser/goreleaser',\n // the default value (`~> v2`) is itself a range, not a pinned version\n versioning: npmVersioning.id,\n },\n // https://github.com/gradle/actions (there is no root-level Action, only\n // subpaths such as `setup-gradle` are usable)\n 'gradle/actions/setup-gradle': {\n datasource: GradleVersionDatasource.id,\n depName: 'gradle',\n packageName: 'gradle/gradle',\n versioning: gradleVersioning.id,\n withSchema: valSchema('gradle-version'),\n },\n // https://github.com/hashicorp/setup-packer\n 'hashicorp/setup-packer': {\n datasource: GithubReleasesDatasource.id,\n depName: 'packer',\n packageName: 'hashicorp/packer',\n },\n // https://github.com/hashicorp/setup-terraform\n 'hashicorp/setup-terraform': {\n datasource: GithubReleasesDatasource.id,\n depName: 'terraform',\n packageName: 'hashicorp/terraform',\n withSchema: valSchema('terraform_version'),\n },\n // https://github.com/helm/chart-releaser-action\n 'helm/chart-releaser-action': {\n datasource: GithubReleasesDatasource.id,\n depName: 'chart-releaser',\n packageName: 'helm/chart-releaser',\n },\n // https://github.com/helm/chart-testing-action\n 'helm/chart-testing-action': {\n datasource: GithubReleasesDatasource.id,\n depName: 'chart-testing',\n packageName: 'helm/chart-testing',\n },\n // https://github.com/helm/kind-action\n 'helm/kind-action': {\n datasource: GithubReleasesDatasource.id,\n packageName: '', // determined per dependency: `version`, `node_image`, `kubectl_version`\n withSchema: KindActionWith,\n },\n // https://github.com/j178/prek-action\n 'j178/prek-action': {\n datasource: GithubReleasesDatasource.id,\n depName: 'prek',\n packageName: 'j178/prek',\n // the value may be a semver range (e.g. `0.3.x`, `<=1.0.0`), not just a\n // pinned version\n versioning: npmVersioning.id,\n withSchema: valSchema('prek-version'),\n },\n 'jakebailey/pyright-action': {\n datasource: NpmDatasource.id,\n packageName: 'pyright',\n withSchema: valSchema('version', (val) => val === 'PATH'),\n },\n 'jaxxstorm/action-install-gh-release': {\n datasource: GithubReleasesDatasource.id,\n packageName: '', // determined from `repo` input\n withSchema: InstallBinaryWith,\n },\n 'jdx/mise-action': {\n datasource: GithubReleaseAttachmentsDatasource.id,\n packageName: 'jdx/mise',\n withSchema: MiseWith,\n },\n // https://github.com/jfrog/setup-jfrog-cli\n 'jfrog/setup-jfrog-cli': {\n datasource: GithubReleasesDatasource.id,\n depName: 'jfrog-cli',\n packageName: 'jfrog/jfrog-cli',\n },\n // https://github.com/julia-actions/setup-julia\n 'julia-actions/setup-julia': {\n datasource: GithubReleasesDatasource.id,\n depName: 'julia',\n packageName: 'JuliaLang/julia',\n },\n // https://github.com/mozilla-actions/sccache-action\n 'mozilla-actions/sccache-action': {\n datasource: GithubReleasesDatasource.id,\n depName: 'sccache',\n packageName: 'mozilla/sccache',\n },\n // https://github.com/opentofu/setup-opentofu\n 'opentofu/setup-opentofu': {\n datasource: GithubReleasesDatasource.id,\n depName: 'opentofu',\n packageName: 'opentofu/opentofu',\n withSchema: valSchema('tofu_version'),\n },\n 'oven-sh/setup-bun': {\n datasource: NpmDatasource.id,\n packageName: 'bun',\n withSchema: valSchema('bun-version'),\n },\n 'pdm-project/setup-pdm': {\n datasource: PypiDatasource.id,\n packageName: 'pdm',\n },\n // https://github.com/peaceiris/actions-hugo\n 'peaceiris/actions-hugo': {\n datasource: GithubReleasesDatasource.id,\n depName: 'hugo',\n packageName: 'gohugoio/hugo',\n withSchema: valSchema('hugo-version'),\n },\n 'pnpm/action-setup': {\n datasource: NpmDatasource.id,\n packageName: 'pnpm',\n },\n 'pnpm/setup': {\n datasource: NpmDatasource.id,\n packageName: 'pnpm',\n withSchema: PnpmSetupWith,\n },\n 'prefix-dev/setup-pixi': {\n datasource: GithubReleasesDatasource.id,\n versioning: condaVersioning.id,\n packageName: 'prefix-dev/pixi',\n withSchema: valSchema('pixi-version'),\n },\n // https://github.com/pulumi/actions\n 'pulumi/actions': {\n datasource: GithubReleasesDatasource.id,\n depName: 'pulumi',\n packageName: 'pulumi/pulumi',\n withSchema: valSchema('pulumi-version'),\n },\n // https://github.com/PyO3/maturin-action\n 'PyO3/maturin-action': {\n datasource: PypiDatasource.id,\n packageName: 'maturin',\n withSchema: valSchema('maturin-version'),\n },\n // https://github.com/pypa/hatch/tree/install\n 'pypa/hatch': {\n datasource: GithubReleasesDatasource.id,\n packageName: 'pypa/hatch',\n // Strip hatch- prefix from release tags\n extractVersion: '^hatch-(?<version>.+)$',\n },\n // https://github.com/raven-actions/actionlint\n 'raven-actions/actionlint': {\n datasource: GithubReleasesDatasource.id,\n depName: 'actionlint',\n packageName: 'rhysd/actionlint',\n },\n // https://github.com/renovatebot/github-action\n 'renovatebot/github-action': {\n datasource: DockerDatasource.id,\n packageName: '', // determined from `renovate-image` input, if set\n withSchema: RenovateGithubActionWith,\n },\n // https://github.com/reviewdog/action-setup\n 'reviewdog/action-setup': {\n datasource: GithubReleasesDatasource.id,\n depName: 'reviewdog',\n packageName: 'reviewdog/reviewdog',\n withSchema: valSchema('reviewdog_version'),\n },\n 'ruby/setup-ruby': {\n datasource: RubyVersionDatasource.id,\n packageName: 'ruby',\n withSchema: valSchema('ruby-version'),\n },\n 'sigoden/install-binary': {\n datasource: GithubReleasesDatasource.id,\n packageName: '', // determined from `repo` input\n withSchema: InstallBinaryWith,\n },\n 'sigstore/cosign-installer': {\n datasource: GithubReleasesDatasource.id,\n packageName: 'sigstore/cosign',\n withSchema: valSchema('cosign-release'),\n },\n // https://github.com/snok/install-poetry\n 'snok/install-poetry': {\n datasource: PypiDatasource.id,\n packageName: 'poetry',\n },\n // https://github.com/stCarolas/setup-maven\n 'stCarolas/setup-maven': {\n datasource: GithubReleasesDatasource.id,\n depName: 'maven',\n packageName: 'apache/maven',\n // apache/maven tags its releases as `maven-X.Y.Z`\n extractVersion: '^maven-(?<version>.+)$',\n // the input also documents range/glob specs (e.g. `10.x`, `>=10.15.0`),\n // not just pinned versions\n versioning: npmVersioning.id,\n withSchema: valSchema('maven-version'),\n },\n // https://github.com/subosito/flutter-action\n 'subosito/flutter-action': {\n datasource: GithubReleasesDatasource.id,\n depName: 'flutter',\n packageName: 'flutter/flutter',\n withSchema: valSchema('flutter-version'),\n },\n // https://github.com/supabase/setup-cli\n 'supabase/setup-cli': {\n datasource: NpmDatasource.id,\n packageName: 'supabase',\n },\n // https://github.com/terraform-linters/setup-tflint\n 'terraform-linters/setup-tflint': {\n datasource: GithubReleasesDatasource.id,\n depName: 'tflint',\n packageName: 'terraform-linters/tflint',\n withSchema: TflintWith,\n },\n 'UpCloudLtd/upcloud-cli-action': {\n datasource: GithubReleasesDatasource.id,\n packageName: 'UpCloudLtd/upcloud-cli',\n },\n 'zizmorcore/zizmor-action': {\n datasource: DockerDatasource.id,\n packageName: 'ghcr.io/zizmorcore/zizmor',\n },\n};\n"],"mappings":"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"}
|
|
@@ -93,6 +93,7 @@ async function extractAllPackageFiles(config, packageFiles) {
|
|
|
93
93
|
filesToExamine.push(file);
|
|
94
94
|
}
|
|
95
95
|
const result = extractPackageFile(content, file, config);
|
|
96
|
+
// v8 ignore else -- needs a listed file that yields no deps
|
|
96
97
|
if (result !== null) results.push({
|
|
97
98
|
packageFile: file,
|
|
98
99
|
deps: result.deps
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract.js","names":["semverPartialId"],"sources":["../../../../lib/modules/manager/gitlabci/extract.ts"],"sourcesContent":["import { logger } from '../../../logger/index.ts';\nimport { readLocalFile } from '../../../util/fs/index.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport { Result } from '../../../util/result.ts';\nimport { parseYaml } from '../../../util/yaml.ts';\nimport { GitlabTagsDatasource } from '../../datasource/gitlab-tags/index.ts';\nimport { id as semverPartialId } from '../../versioning/semver-partial/index.ts';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFile,\n PackageFileContent,\n} from '../types.ts';\nimport {\n GitlabDocument,\n Job,\n Jobs,\n MultiDocumentLocalIncludes,\n} from './schema.ts';\nimport { getGitlabDep } from './utils.ts';\n\n// See https://docs.gitlab.com/ee/ci/components/index.html#use-a-component\nconst componentReferenceRegex = regEx(\n /(?<fqdn>[^/]+)\\/(?<projectPath>.+)\\/(?:.+)@(?<specificVersion>.+)/,\n);\n\nfunction extractDepFromIncludeComponent(\n component: string,\n registryAliases?: Record<string, string>,\n): PackageDependency | null {\n let componentUrl = component;\n if (registryAliases) {\n for (const key in registryAliases) {\n componentUrl = componentUrl.replace(key, registryAliases[key]);\n }\n }\n const componentReference = componentReferenceRegex.exec(componentUrl)?.groups;\n if (!componentReference) {\n logger.debug(\n { componentReference: componentUrl },\n 'Ignoring malformed component reference',\n );\n return null;\n }\n const projectPathParts = componentReference.projectPath.split('/');\n if (projectPathParts.length < 2) {\n logger.debug(\n { componentReference: componentUrl },\n 'Ignoring component reference with incomplete project path',\n );\n return null;\n }\n\n const dep: PackageDependency = {\n datasource: GitlabTagsDatasource.id,\n depName: componentReference.projectPath,\n depType: 'repository',\n currentValue: componentReference.specificVersion,\n registryUrls: [`https://${componentReference.fqdn}`],\n versioning: semverPartialId,\n };\n return dep;\n}\n\nexport function extractPackageFile(\n content: string,\n packageFile: string,\n config: ExtractConfig,\n): PackageFileContent | null {\n const deps: PackageDependency[] = [];\n try {\n const docs = parseYaml(content, { uniqueKeys: false });\n\n for (const doc of docs) {\n const topLevel = Job.parse(doc);\n const jobs = Jobs.parse(doc);\n\n for (const job of [topLevel, ...jobs]) {\n const { image, services } = job;\n\n if (image) {\n const dep = getGitlabDep(image.value, config.registryAliases);\n dep.depType = image.type;\n deps.push(dep);\n }\n\n for (const service of services) {\n const dep = getGitlabDep(service, config.registryAliases);\n dep.depType = 'service-image';\n deps.push(dep);\n }\n }\n\n const includedComponents = GitlabDocument.parse(doc);\n for (const includedComponent of includedComponents) {\n const dep = extractDepFromIncludeComponent(\n includedComponent,\n config.registryAliases,\n );\n if (dep) {\n deps.push(dep);\n }\n }\n }\n } catch (err) /* istanbul ignore next */ {\n if (err.stack?.startsWith('YAMLException:')) {\n logger.debug(\n { err, packageFile },\n 'YAML exception extracting GitLab CI includes',\n );\n } else {\n logger.debug(\n { err, packageFile },\n 'Error extracting GitLab CI dependencies',\n );\n }\n }\n\n return deps.length ? { deps } : null;\n}\n\nexport async function extractAllPackageFiles(\n config: ExtractConfig,\n packageFiles: string[],\n): Promise<PackageFile[] | null> {\n const filesToExamine = [...packageFiles];\n const seen = new Set<string>(packageFiles);\n const results: PackageFile[] = [];\n\n // extract all includes from the files\n while (filesToExamine.length > 0) {\n const file = filesToExamine.pop()!;\n\n const content = await readLocalFile(file, 'utf8');\n if (!content) {\n logger.debug(\n { packageFile: file },\n `Empty or non existent gitlabci file`,\n );\n continue;\n }\n\n const { val: docs, err } = Result.wrap(() =>\n parseYaml(content, { uniqueKeys: false }),\n ).unwrap();\n\n if (err) {\n logger.debug(\n { err, packageFile: file },\n 'Error extracting GitLab CI dependencies',\n );\n continue;\n }\n\n const localIncludes = MultiDocumentLocalIncludes.parse(docs);\n for (const file of localIncludes) {\n if (!seen.has(file)) {\n seen.add(file);\n filesToExamine.push(file);\n }\n }\n\n const result = extractPackageFile(content, file, config);\n if (result !== null) {\n results.push({\n packageFile: file,\n deps: result.deps,\n });\n }\n }\n\n logger.trace(\n { packageFiles, files: filesToExamine.entries() },\n 'extracted all GitLab CI files',\n );\n\n if (!results.length) {\n return null;\n }\n\n return results;\n}\n"],"mappings":";;;;;;;;;;AAsBA,MAAM,0BAA0B,MAC9B,mEACF;AAEA,SAAS,+BACP,WACA,iBAC0B;CAC1B,IAAI,eAAe;CACnB,IAAI,iBACF,KAAK,MAAM,OAAO,iBAChB,eAAe,aAAa,QAAQ,KAAK,gBAAgB,IAAI;CAGjE,MAAM,qBAAqB,wBAAwB,KAAK,YAAY,CAAC,EAAE;CACvE,IAAI,CAAC,oBAAoB;EACvB,OAAO,MACL,EAAE,oBAAoB,aAAa,GACnC,wCACF;EACA,OAAO;CACT;CAEA,IADyB,mBAAmB,YAAY,MAAM,GAC3C,CAAC,CAAC,SAAS,GAAG;EAC/B,OAAO,MACL,EAAE,oBAAoB,aAAa,GACnC,2DACF;EACA,OAAO;CACT;CAUA,OAAO;EAPL,YAAY,qBAAqB;EACjC,SAAS,mBAAmB;EAC5B,SAAS;EACT,cAAc,mBAAmB;EACjC,cAAc,CAAC,WAAW,mBAAmB,MAAM;EACnD,YAAYA;CAEL;AACX;AAEA,SAAgB,mBACd,SACA,aACA,QAC2B;CAC3B,MAAM,OAA4B,CAAC;CACnC,IAAI;EACF,MAAM,OAAO,UAAU,SAAS,EAAE,YAAY,MAAM,CAAC;EAErD,KAAK,MAAM,OAAO,MAAM;GACtB,MAAM,WAAW,IAAI,MAAM,GAAG;GAC9B,MAAM,OAAO,KAAK,MAAM,GAAG;GAE3B,KAAK,MAAM,OAAO,CAAC,UAAU,GAAG,IAAI,GAAG;IACrC,MAAM,EAAE,OAAO,aAAa;IAE5B,IAAI,OAAO;KACT,MAAM,MAAM,aAAa,MAAM,OAAO,OAAO,eAAe;KAC5D,IAAI,UAAU,MAAM;KACpB,KAAK,KAAK,GAAG;IACf;IAEA,KAAK,MAAM,WAAW,UAAU;KAC9B,MAAM,MAAM,aAAa,SAAS,OAAO,eAAe;KACxD,IAAI,UAAU;KACd,KAAK,KAAK,GAAG;IACf;GACF;GAEA,MAAM,qBAAqB,eAAe,MAAM,GAAG;GACnD,KAAK,MAAM,qBAAqB,oBAAoB;IAClD,MAAM,MAAM,+BACV,mBACA,OAAO,eACT;IACA,IAAI,KACF,KAAK,KAAK,GAAG;GAEjB;EACF;CACF,SAAS,gCAAgC;EACvC,IAAI,IAAI,OAAO,WAAW,gBAAgB,GACxC,OAAO,MACL;GAAE;GAAK;EAAY,GACnB,8CACF;OAEA,OAAO,MACL;GAAE;GAAK;EAAY,GACnB,yCACF;CAEJ;CAEA,OAAO,KAAK,SAAS,EAAE,KAAK,IAAI;AAClC;AAEA,eAAsB,uBACpB,QACA,cAC+B;CAC/B,MAAM,iBAAiB,CAAC,GAAG,YAAY;CACvC,MAAM,OAAO,IAAI,IAAY,YAAY;CACzC,MAAM,UAAyB,CAAC;CAGhC,OAAO,eAAe,SAAS,GAAG;EAChC,MAAM,OAAO,eAAe,IAAI;EAEhC,MAAM,UAAU,MAAM,cAAc,MAAM,MAAM;EAChD,IAAI,CAAC,SAAS;GACZ,OAAO,MACL,EAAE,aAAa,KAAK,GACpB,qCACF;GACA;EACF;EAEA,MAAM,EAAE,KAAK,MAAM,QAAQ,OAAO,WAChC,UAAU,SAAS,EAAE,YAAY,MAAM,CAAC,CAC1C,CAAC,CAAC,OAAO;EAET,IAAI,KAAK;GACP,OAAO,MACL;IAAE;IAAK,aAAa;GAAK,GACzB,yCACF;GACA;EACF;EAEA,MAAM,gBAAgB,2BAA2B,MAAM,IAAI;EAC3D,KAAK,MAAM,QAAQ,eACjB,IAAI,CAAC,KAAK,IAAI,IAAI,GAAG;GACnB,KAAK,IAAI,IAAI;GACb,eAAe,KAAK,IAAI;EAC1B;EAGF,MAAM,SAAS,mBAAmB,SAAS,MAAM,MAAM
|
|
1
|
+
{"version":3,"file":"extract.js","names":["semverPartialId"],"sources":["../../../../lib/modules/manager/gitlabci/extract.ts"],"sourcesContent":["import { logger } from '../../../logger/index.ts';\nimport { readLocalFile } from '../../../util/fs/index.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport { Result } from '../../../util/result.ts';\nimport { parseYaml } from '../../../util/yaml.ts';\nimport { GitlabTagsDatasource } from '../../datasource/gitlab-tags/index.ts';\nimport { id as semverPartialId } from '../../versioning/semver-partial/index.ts';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFile,\n PackageFileContent,\n} from '../types.ts';\nimport {\n GitlabDocument,\n Job,\n Jobs,\n MultiDocumentLocalIncludes,\n} from './schema.ts';\nimport { getGitlabDep } from './utils.ts';\n\n// See https://docs.gitlab.com/ee/ci/components/index.html#use-a-component\nconst componentReferenceRegex = regEx(\n /(?<fqdn>[^/]+)\\/(?<projectPath>.+)\\/(?:.+)@(?<specificVersion>.+)/,\n);\n\nfunction extractDepFromIncludeComponent(\n component: string,\n registryAliases?: Record<string, string>,\n): PackageDependency | null {\n let componentUrl = component;\n if (registryAliases) {\n for (const key in registryAliases) {\n componentUrl = componentUrl.replace(key, registryAliases[key]);\n }\n }\n const componentReference = componentReferenceRegex.exec(componentUrl)?.groups;\n if (!componentReference) {\n logger.debug(\n { componentReference: componentUrl },\n 'Ignoring malformed component reference',\n );\n return null;\n }\n const projectPathParts = componentReference.projectPath.split('/');\n if (projectPathParts.length < 2) {\n logger.debug(\n { componentReference: componentUrl },\n 'Ignoring component reference with incomplete project path',\n );\n return null;\n }\n\n const dep: PackageDependency = {\n datasource: GitlabTagsDatasource.id,\n depName: componentReference.projectPath,\n depType: 'repository',\n currentValue: componentReference.specificVersion,\n registryUrls: [`https://${componentReference.fqdn}`],\n versioning: semverPartialId,\n };\n return dep;\n}\n\nexport function extractPackageFile(\n content: string,\n packageFile: string,\n config: ExtractConfig,\n): PackageFileContent | null {\n const deps: PackageDependency[] = [];\n try {\n const docs = parseYaml(content, { uniqueKeys: false });\n\n for (const doc of docs) {\n const topLevel = Job.parse(doc);\n const jobs = Jobs.parse(doc);\n\n for (const job of [topLevel, ...jobs]) {\n const { image, services } = job;\n\n if (image) {\n const dep = getGitlabDep(image.value, config.registryAliases);\n dep.depType = image.type;\n deps.push(dep);\n }\n\n for (const service of services) {\n const dep = getGitlabDep(service, config.registryAliases);\n dep.depType = 'service-image';\n deps.push(dep);\n }\n }\n\n const includedComponents = GitlabDocument.parse(doc);\n for (const includedComponent of includedComponents) {\n const dep = extractDepFromIncludeComponent(\n includedComponent,\n config.registryAliases,\n );\n if (dep) {\n deps.push(dep);\n }\n }\n }\n } catch (err) /* istanbul ignore next */ {\n if (err.stack?.startsWith('YAMLException:')) {\n logger.debug(\n { err, packageFile },\n 'YAML exception extracting GitLab CI includes',\n );\n } else {\n logger.debug(\n { err, packageFile },\n 'Error extracting GitLab CI dependencies',\n );\n }\n }\n\n return deps.length ? { deps } : null;\n}\n\nexport async function extractAllPackageFiles(\n config: ExtractConfig,\n packageFiles: string[],\n): Promise<PackageFile[] | null> {\n const filesToExamine = [...packageFiles];\n const seen = new Set<string>(packageFiles);\n const results: PackageFile[] = [];\n\n // extract all includes from the files\n while (filesToExamine.length > 0) {\n const file = filesToExamine.pop()!;\n\n const content = await readLocalFile(file, 'utf8');\n if (!content) {\n logger.debug(\n { packageFile: file },\n `Empty or non existent gitlabci file`,\n );\n continue;\n }\n\n const { val: docs, err } = Result.wrap(() =>\n parseYaml(content, { uniqueKeys: false }),\n ).unwrap();\n\n if (err) {\n logger.debug(\n { err, packageFile: file },\n 'Error extracting GitLab CI dependencies',\n );\n continue;\n }\n\n const localIncludes = MultiDocumentLocalIncludes.parse(docs);\n for (const file of localIncludes) {\n if (!seen.has(file)) {\n seen.add(file);\n filesToExamine.push(file);\n }\n }\n\n const result = extractPackageFile(content, file, config);\n // v8 ignore else -- needs a listed file that yields no deps\n if (result !== null) {\n results.push({\n packageFile: file,\n deps: result.deps,\n });\n }\n }\n\n logger.trace(\n { packageFiles, files: filesToExamine.entries() },\n 'extracted all GitLab CI files',\n );\n\n if (!results.length) {\n return null;\n }\n\n return results;\n}\n"],"mappings":"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"}
|
|
@@ -37,6 +37,7 @@ function resolvePackageDependencies(packages, repositories) {
|
|
|
37
37
|
function findRepository(name, repositories) {
|
|
38
38
|
for (const repository of repositories) {
|
|
39
39
|
if (name === repository.metadata.name) return repository;
|
|
40
|
+
// v8 ignore else -- needs a manifest whose repositories match no name
|
|
40
41
|
if (isFalsy(name) && isDefaultRepository(repository)) return repository;
|
|
41
42
|
}
|
|
42
43
|
return null;
|
|
@@ -53,6 +54,7 @@ async function extractAllPackageFiles(_config, packageFiles) {
|
|
|
53
54
|
const glasskubeResourceFiles = [];
|
|
54
55
|
for (const packageFile of packageFiles) {
|
|
55
56
|
const content = await readLocalFile(packageFile, "utf8");
|
|
57
|
+
// v8 ignore else -- needs a listed package file that cannot be read
|
|
56
58
|
if (content !== null) {
|
|
57
59
|
const resources = parseResources(content, packageFile);
|
|
58
60
|
allRepositories.push(...resources.repositories);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract.js","names":[],"sources":["../../../../lib/modules/manager/glasskube/extract.ts"],"sourcesContent":["import { isFalsy } from '@sindresorhus/is';\nimport { readLocalFile } from '../../../util/fs/index.ts';\nimport { parseYaml } from '../../../util/yaml.ts';\nimport { GlasskubePackagesDatasource } from '../../datasource/glasskube-packages/index.ts';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFile,\n PackageFileContent,\n} from '../types.ts';\nimport {\n GlasskubeResource,\n type Package,\n type PackageRepository,\n} from './schema.ts';\nimport type { GlasskubeResources } from './types.ts';\n\nfunction parseResources(\n content: string,\n packageFile: string,\n): GlasskubeResources {\n const resources: GlasskubeResource[] = parseYaml(content, {\n customSchema: GlasskubeResource,\n failureBehaviour: 'filter',\n });\n\n const packages: Package[] = [];\n const repositories: PackageRepository[] = [];\n\n for (const resource of resources) {\n if (resource.kind === 'ClusterPackage' || resource.kind === 'Package') {\n packages.push(resource);\n } else if (resource.kind === 'PackageRepository') {\n repositories.push(resource);\n }\n }\n\n return { packageFile, repositories, packages };\n}\n\nfunction resolvePackageDependencies(\n packages: Package[],\n repositories: PackageRepository[],\n): PackageDependency[] {\n const deps: PackageDependency[] = [];\n for (const pkg of packages) {\n const dep: PackageDependency = {\n depName: pkg.spec.packageInfo.name,\n currentValue: pkg.spec.packageInfo.version,\n datasource: GlasskubePackagesDatasource.id,\n };\n\n const repository = findRepository(\n pkg.spec.packageInfo.repositoryName ?? null,\n repositories,\n );\n\n if (repository === null) {\n dep.skipReason = 'unknown-registry';\n } else {\n dep.registryUrls = [repository.spec.url];\n }\n\n deps.push(dep);\n }\n return deps;\n}\n\nfunction findRepository(\n name: string | null,\n repositories: PackageRepository[],\n): PackageRepository | null {\n for (const repository of repositories) {\n if (name === repository.metadata.name) {\n return repository;\n }\n if (isFalsy(name) && isDefaultRepository(repository)) {\n return repository;\n }\n }\n return null;\n}\n\nfunction isDefaultRepository(repository: PackageRepository): boolean {\n return (\n repository.metadata.annotations?.[\n 'packages.glasskube.dev/default-repository'\n ] === 'true'\n );\n}\n\nexport function extractPackageFile(\n content: string,\n packageFile: string,\n _config?: ExtractConfig,\n): PackageFileContent | null {\n const { packages, repositories } = parseResources(content, packageFile);\n const deps = resolvePackageDependencies(packages, repositories);\n return { deps };\n}\n\nexport async function extractAllPackageFiles(\n _config: ExtractConfig,\n packageFiles: string[],\n): Promise<PackageFile[] | null> {\n const allRepositories: PackageRepository[] = [];\n const glasskubeResourceFiles: GlasskubeResources[] = [];\n for (const packageFile of packageFiles) {\n const content = await readLocalFile(packageFile, 'utf8');\n if (content !== null) {\n const resources = parseResources(content, packageFile);\n allRepositories.push(...resources.repositories);\n glasskubeResourceFiles.push(resources);\n }\n }\n\n const result: PackageFile[] = [];\n for (const file of glasskubeResourceFiles) {\n const deps = resolvePackageDependencies(file.packages, allRepositories);\n if (deps.length > 0) {\n result.push({ packageFile: file.packageFile, deps });\n }\n }\n return result.length ? result : null;\n}\n"],"mappings":";;;;;;AAiBA,SAAS,eACP,SACA,aACoB;CACpB,MAAM,YAAiC,UAAU,SAAS;EACxD,cAAc;EACd,kBAAkB;CACpB,CAAC;CAED,MAAM,WAAsB,CAAC;CAC7B,MAAM,eAAoC,CAAC;CAE3C,KAAK,MAAM,YAAY,WACrB,IAAI,SAAS,SAAS,oBAAoB,SAAS,SAAS,WAC1D,SAAS,KAAK,QAAQ;
|
|
1
|
+
{"version":3,"file":"extract.js","names":[],"sources":["../../../../lib/modules/manager/glasskube/extract.ts"],"sourcesContent":["import { isFalsy } from '@sindresorhus/is';\nimport { readLocalFile } from '../../../util/fs/index.ts';\nimport { parseYaml } from '../../../util/yaml.ts';\nimport { GlasskubePackagesDatasource } from '../../datasource/glasskube-packages/index.ts';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFile,\n PackageFileContent,\n} from '../types.ts';\nimport {\n GlasskubeResource,\n type Package,\n type PackageRepository,\n} from './schema.ts';\nimport type { GlasskubeResources } from './types.ts';\n\nfunction parseResources(\n content: string,\n packageFile: string,\n): GlasskubeResources {\n const resources: GlasskubeResource[] = parseYaml(content, {\n customSchema: GlasskubeResource,\n failureBehaviour: 'filter',\n });\n\n const packages: Package[] = [];\n const repositories: PackageRepository[] = [];\n\n for (const resource of resources) {\n if (resource.kind === 'ClusterPackage' || resource.kind === 'Package') {\n packages.push(resource);\n // NOTE: the schema only parses these two kinds, so the implicit else\n // never runs. A coverage-ignore hint cannot suppress it on an `else if`.\n } else if (resource.kind === 'PackageRepository') {\n repositories.push(resource);\n }\n }\n\n return { packageFile, repositories, packages };\n}\n\nfunction resolvePackageDependencies(\n packages: Package[],\n repositories: PackageRepository[],\n): PackageDependency[] {\n const deps: PackageDependency[] = [];\n for (const pkg of packages) {\n const dep: PackageDependency = {\n depName: pkg.spec.packageInfo.name,\n currentValue: pkg.spec.packageInfo.version,\n datasource: GlasskubePackagesDatasource.id,\n };\n\n const repository = findRepository(\n pkg.spec.packageInfo.repositoryName ?? null,\n repositories,\n );\n\n if (repository === null) {\n dep.skipReason = 'unknown-registry';\n } else {\n dep.registryUrls = [repository.spec.url];\n }\n\n deps.push(dep);\n }\n return deps;\n}\n\nfunction findRepository(\n name: string | null,\n repositories: PackageRepository[],\n): PackageRepository | null {\n for (const repository of repositories) {\n if (name === repository.metadata.name) {\n return repository;\n }\n // v8 ignore else -- needs a manifest whose repositories match no name\n if (isFalsy(name) && isDefaultRepository(repository)) {\n return repository;\n }\n }\n return null;\n}\n\nfunction isDefaultRepository(repository: PackageRepository): boolean {\n return (\n repository.metadata.annotations?.[\n 'packages.glasskube.dev/default-repository'\n ] === 'true'\n );\n}\n\nexport function extractPackageFile(\n content: string,\n packageFile: string,\n _config?: ExtractConfig,\n): PackageFileContent | null {\n const { packages, repositories } = parseResources(content, packageFile);\n const deps = resolvePackageDependencies(packages, repositories);\n return { deps };\n}\n\nexport async function extractAllPackageFiles(\n _config: ExtractConfig,\n packageFiles: string[],\n): Promise<PackageFile[] | null> {\n const allRepositories: PackageRepository[] = [];\n const glasskubeResourceFiles: GlasskubeResources[] = [];\n for (const packageFile of packageFiles) {\n const content = await readLocalFile(packageFile, 'utf8');\n // v8 ignore else -- needs a listed package file that cannot be read\n if (content !== null) {\n const resources = parseResources(content, packageFile);\n allRepositories.push(...resources.repositories);\n glasskubeResourceFiles.push(resources);\n }\n }\n\n const result: PackageFile[] = [];\n for (const file of glasskubeResourceFiles) {\n const deps = resolvePackageDependencies(file.packages, allRepositories);\n if (deps.length > 0) {\n result.push({ packageFile: file.packageFile, deps });\n }\n }\n return result.length ? result : null;\n}\n"],"mappings":";;;;;;AAiBA,SAAS,eACP,SACA,aACoB;CACpB,MAAM,YAAiC,UAAU,SAAS;EACxD,cAAc;EACd,kBAAkB;CACpB,CAAC;CAED,MAAM,WAAsB,CAAC;CAC7B,MAAM,eAAoC,CAAC;CAE3C,KAAK,MAAM,YAAY,WACrB,IAAI,SAAS,SAAS,oBAAoB,SAAS,SAAS,WAC1D,SAAS,KAAK,QAAQ;MAGjB,IAAI,SAAS,SAAS,qBAC3B,aAAa,KAAK,QAAQ;CAI9B,OAAO;EAAE;EAAa;EAAc;CAAS;AAC/C;AAEA,SAAS,2BACP,UACA,cACqB;CACrB,MAAM,OAA4B,CAAC;CACnC,KAAK,MAAM,OAAO,UAAU;EAC1B,MAAM,MAAyB;GAC7B,SAAS,IAAI,KAAK,YAAY;GAC9B,cAAc,IAAI,KAAK,YAAY;GACnC,YAAY,4BAA4B;EAC1C;EAEA,MAAM,aAAa,eACjB,IAAI,KAAK,YAAY,kBAAkB,MACvC,YACF;EAEA,IAAI,eAAe,MACjB,IAAI,aAAa;OAEjB,IAAI,eAAe,CAAC,WAAW,KAAK,GAAG;EAGzC,KAAK,KAAK,GAAG;CACf;CACA,OAAO;AACT;AAEA,SAAS,eACP,MACA,cAC0B;CAC1B,KAAK,MAAM,cAAc,cAAc;EACrC,IAAI,SAAS,WAAW,SAAS,MAC/B,OAAO;;EAGT,IAAI,QAAQ,IAAI,KAAK,oBAAoB,UAAU,GACjD,OAAO;CAEX;CACA,OAAO;AACT;AAEA,SAAS,oBAAoB,YAAwC;CACnE,OACE,WAAW,SAAS,cAClB,iDACI;AAEV;AAEA,SAAgB,mBACd,SACA,aACA,SAC2B;CAC3B,MAAM,EAAE,UAAU,iBAAiB,eAAe,SAAS,WAAW;CAEtE,OAAO,EAAE,MADI,2BAA2B,UAAU,YACtC,EAAE;AAChB;AAEA,eAAsB,uBACpB,SACA,cAC+B;CAC/B,MAAM,kBAAuC,CAAC;CAC9C,MAAM,yBAA+C,CAAC;CACtD,KAAK,MAAM,eAAe,cAAc;EACtC,MAAM,UAAU,MAAM,cAAc,aAAa,MAAM;;EAEvD,IAAI,YAAY,MAAM;GACpB,MAAM,YAAY,eAAe,SAAS,WAAW;GACrD,gBAAgB,KAAK,GAAG,UAAU,YAAY;GAC9C,uBAAuB,KAAK,SAAS;EACvC;CACF;CAEA,MAAM,SAAwB,CAAC;CAC/B,KAAK,MAAM,QAAQ,wBAAwB;EACzC,MAAM,OAAO,2BAA2B,KAAK,UAAU,eAAe;EACtE,IAAI,KAAK,SAAS,GAChB,OAAO,KAAK;GAAE,aAAa,KAAK;GAAa;EAAK,CAAC;CAEvD;CACA,OAAO,OAAO,SAAS,SAAS;AAClC"}
|
|
@@ -21,6 +21,7 @@ function getExtraDeps(goModBefore, goModAfter, excludeDeps) {
|
|
|
21
21
|
for (const [depName, currentValue] of Object.entries(rmDeps)) {
|
|
22
22
|
if (excludeDeps.includes(depName)) continue;
|
|
23
23
|
const newValue = addDeps[depName];
|
|
24
|
+
// v8 ignore else -- needs a removed dep that is not added back
|
|
24
25
|
if (newValue) result.push({
|
|
25
26
|
depName,
|
|
26
27
|
currentValue,
|