From 18bdac9d35b63e1ab2a6eed3f061b7c921cb03f3 Mon Sep 17 00:00:00 2001 From: Adam Setch Date: Thu, 23 Feb 2023 01:01:44 -0500 Subject: [PATCH 001/228] fix(platform/bitbucket): remove blockquote markdown from bitbucket issue description (#20588) --- .../bitbucket/__snapshots__/index.spec.ts.snap | 12 +++++++++++- lib/modules/platform/bitbucket/index.spec.ts | 6 ++++-- lib/modules/platform/bitbucket/index.ts | 7 ++++--- 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/lib/modules/platform/bitbucket/__snapshots__/index.spec.ts.snap b/lib/modules/platform/bitbucket/__snapshots__/index.spec.ts.snap index 02bcf79aa67c85..1818c5b6361ede 100644 --- a/lib/modules/platform/bitbucket/__snapshots__/index.spec.ts.snap +++ b/lib/modules/platform/bitbucket/__snapshots__/index.spec.ts.snap @@ -140,7 +140,17 @@ exports[`modules/platform/bitbucket/index initRepo() works with username and pas } `; -exports[`modules/platform/bitbucket/index massageMarkdown() returns diff files 1`] = `"**foo**bartext"`; +exports[`modules/platform/bitbucket/index massageMarkdown() returns diff files 1`] = ` +"**foo** + + +**text** + + + + +" +`; exports[`modules/platform/bitbucket/index updatePr() rethrows exception when PR update error due to unknown reviewers error 1`] = `"Response code 400 (Bad Request)"`; diff --git a/lib/modules/platform/bitbucket/index.spec.ts b/lib/modules/platform/bitbucket/index.spec.ts index 32a85c0b5148c2..6007fe9fdbcdcc 100644 --- a/lib/modules/platform/bitbucket/index.spec.ts +++ b/lib/modules/platform/bitbucket/index.spec.ts @@ -1059,8 +1059,10 @@ describe('modules/platform/bitbucket/index', () => { describe('massageMarkdown()', () => { it('returns diff files', () => { const prBody = - '
foobar
text
' + - '\n---\n\n - [ ] rebase\n'; + '
foo\n
\n\n
text' + + '\n---\n\n - [ ] rebase\n' + + '\n\n
\n\n
\n
'; + expect(bitbucket.massageMarkdown(prBody)).toMatchSnapshot(); }); }); diff --git a/lib/modules/platform/bitbucket/index.ts b/lib/modules/platform/bitbucket/index.ts index 818351c0d82ff5..9755dc18060d73 100644 --- a/lib/modules/platform/bitbucket/index.ts +++ b/lib/modules/platform/bitbucket/index.ts @@ -486,7 +486,7 @@ export function massageMarkdown(input: string): string { 'by renaming this PR to start with "rebase!"' ) .replace(regEx(/<\/?summary>/g), '**') - .replace(regEx(/<\/?details>/g), '') + .replace(regEx(/<\/?(details|blockquote)>/g), '') .replace(regEx(`\n---\n\n.*?.*?\n`), '') .replace(regEx(/\]\(\.\.\/pull\//g), '](../../pull-requests/') .replace(regEx(//g), ''); @@ -498,8 +498,6 @@ export async function ensureIssue({ body, }: EnsureIssueConfig): Promise { logger.debug(`ensureIssue()`); - const description = massageMarkdown(sanitize(body)); - /* istanbul ignore if */ if (!config.has_issues) { logger.warn('Issues are disabled - cannot ensureIssue'); @@ -508,6 +506,8 @@ export async function ensureIssue({ } try { let issues = await findOpenIssues(title); + const description = massageMarkdown(sanitize(body)); + if (!issues.length && reuseTitle) { issues = await findOpenIssues(reuseTitle); } @@ -517,6 +517,7 @@ export async function ensureIssue({ await closeIssue(issue.id); } const [issue] = issues; + if ( issue.title !== title || String(issue.content?.raw).trim() !== description.trim() From 9f96c1e224b181c37bc574e1fda0713e5732dcbf Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Thu, 23 Feb 2023 10:13:27 +0100 Subject: [PATCH 002/228] chore: remove unnecessary Range types (#20582) --- lib/config/types.ts | 3 +-- lib/modules/versioning/types.ts | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/lib/config/types.ts b/lib/config/types.ts index d4572fafb49e74..f453db98d7ce83 100644 --- a/lib/config/types.ts +++ b/lib/config/types.ts @@ -1,5 +1,4 @@ import type { LogLevel } from 'bunyan'; -import type { Range } from 'semver'; import type { PlatformId } from '../constants'; import type { HostRule } from '../types'; import type { GitNoVerifyOption } from '../util/git/types'; @@ -317,7 +316,7 @@ export interface PackageRule excludePackagePatterns?: string[]; excludePackagePrefixes?: string[]; matchCurrentValue?: string; - matchCurrentVersion?: string | Range; + matchCurrentVersion?: string; matchSourceUrlPrefixes?: string[]; matchSourceUrls?: string[]; matchUpdateTypes?: UpdateType[]; diff --git a/lib/modules/versioning/types.ts b/lib/modules/versioning/types.ts index 362a6bd0d0d78e..bb16fe5d70c5f5 100644 --- a/lib/modules/versioning/types.ts +++ b/lib/modules/versioning/types.ts @@ -1,4 +1,4 @@ -import type { Range, SemVer } from 'semver'; +import type { SemVer } from 'semver'; import type { RangeStrategy } from '../../types'; export interface NewValueConfig { @@ -94,7 +94,7 @@ export interface VersioningApi { /** * Check whether the `version` satisfies the `range` constraint. */ - matches(version: string, range: string | Range): boolean; + matches(version: string, range: string): boolean; valueToVersion?(version: string): string; } From e387b8225eeb1f28be64172a693d35aee6723acc Mon Sep 17 00:00:00 2001 From: HonkingGoose <34918129+HonkingGoose@users.noreply.github.com> Date: Thu, 23 Feb 2023 10:14:58 +0100 Subject: [PATCH 003/228] docs(best-practices): prefer `satisfies` operator over `as` (#20566) Co-authored-by: Rhys Arkins --- docs/development/best-practices.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/development/best-practices.md b/docs/development/best-practices.md index 5f06bc6af06681..30cec02983a843 100644 --- a/docs/development/best-practices.md +++ b/docs/development/best-practices.md @@ -32,6 +32,7 @@ Read the [GitHub Docs, renaming a branch](https://docs.github.com/en/repositorie - Only use `istanbul` comments for unreachable code coverage that is needed for `codecov` completion - Use descriptive `istanbul` comments - Avoid cast or prefer `x as T` instead of `x` cast +- Prefer `satisfies` operator over `as`, read the [TypeScript release notes for `satisfies` operator](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-4-9.html#the-satisfies-operator) to learn more - Avoid `Boolean` instead use `is` functions from `@sindresorhus/is` package, for example: `is.string` ```ts From a340830ee6de5cea806f0db27fce379382d3c07e Mon Sep 17 00:00:00 2001 From: Tobias Kongsvik Date: Thu, 23 Feb 2023 12:23:40 +0100 Subject: [PATCH 004/228] fix(gomod): Use correct major version to update go import paths (#20140) Co-authored-by: Rhys Arkins Co-authored-by: Michael Kriese --- lib/modules/manager/gomod/artifacts.spec.ts | 134 ++++++++++++++++---- lib/modules/manager/gomod/artifacts.ts | 40 ++++-- 2 files changed, 139 insertions(+), 35 deletions(-) diff --git a/lib/modules/manager/gomod/artifacts.spec.ts b/lib/modules/manager/gomod/artifacts.spec.ts index 16c65b5fdfafbd..410a1d04b8967e 100644 --- a/lib/modules/manager/gomod/artifacts.spec.ts +++ b/lib/modules/manager/gomod/artifacts.spec.ts @@ -1249,12 +1249,13 @@ describe('modules/manager/gomod/artifacts', () => { expect( await gomod.updateArtifacts({ packageFileName: 'go.mod', - updatedDeps: [{ depName: 'github.com/google/go-github/v24' }], + updatedDeps: [ + { depName: 'github.com/google/go-github/v24', newVersion: 'v28.0.0' }, + ], newPackageFileContent: gomod1, config: { ...config, updateType: 'major', - newMajor: 28, postUpdateOptions: ['gomodUpdateImportPaths'], }, }) @@ -1287,29 +1288,36 @@ describe('modules/manager/gomod/artifacts', () => { ]); }); - it('returns go.mod if only go.mod changes', async () => { + it('updates correct import paths with gomodUpdateImportPaths and multiple dependencies', async () => { fs.readLocalFile.mockResolvedValueOnce('Current go.sum'); fs.readLocalFile.mockResolvedValueOnce(null); // vendor modules filename const execSnapshots = mockExecAll(); git.getRepoStatus.mockResolvedValueOnce( partial({ - modified: ['go.mod'], + modified: ['go.sum', 'main.go'], }) ); - fs.readLocalFile.mockResolvedValueOnce('New go.mod'); + fs.readLocalFile + .mockResolvedValueOnce('New go.sum') + .mockResolvedValueOnce('New main.go') + .mockResolvedValueOnce('New go.mod'); expect( await gomod.updateArtifacts({ packageFileName: 'go.mod', - updatedDeps: [{ depName: 'github.com/google/go-github/v24' }], + updatedDeps: [ + { depName: 'github.com/google/go-github/v24', newVersion: 'v28.0.0' }, + { depName: 'github.com/caarlos0/env/v6', newVersion: 'v7.0.0' }, + ], newPackageFileContent: gomod1, config: { ...config, updateType: 'major', - newMajor: 28, - postUpdateOptions: [], + postUpdateOptions: ['gomodUpdateImportPaths'], }, }) ).toEqual([ + { file: { type: 'addition', path: 'go.sum', contents: 'New go.sum' } }, + { file: { type: 'addition', path: 'main.go', contents: 'New main.go' } }, { file: { type: 'addition', path: 'go.mod', contents: 'New go.mod' } }, ]); expect(execSnapshots).toMatchObject([ @@ -1317,6 +1325,26 @@ describe('modules/manager/gomod/artifacts', () => { cmd: 'go get -d -t ./...', options: { cwd: '/tmp/github/some/repo' }, }, + { + cmd: 'go install github.com/marwan-at-work/mod/cmd/mod@latest', + options: { cwd: '/tmp/github/some/repo' }, + }, + { + cmd: 'mod upgrade --mod-name=github.com/google/go-github/v24 -t=28', + options: { cwd: '/tmp/github/some/repo' }, + }, + { + cmd: 'mod upgrade --mod-name=github.com/caarlos0/env/v6 -t=7', + options: { cwd: '/tmp/github/some/repo' }, + }, + { + cmd: 'go mod tidy', + options: { cwd: '/tmp/github/some/repo' }, + }, + { + cmd: 'go mod tidy', + options: { cwd: '/tmp/github/some/repo' }, + }, ]); }); @@ -1324,23 +1352,65 @@ describe('modules/manager/gomod/artifacts', () => { fs.readLocalFile.mockResolvedValueOnce('Current go.sum'); fs.readLocalFile.mockResolvedValueOnce(null); // vendor modules filename const execSnapshots = mockExecAll(); - git.getRepoStatus.mockResolvedValueOnce( - partial({ - modified: ['go.sum', 'main.go'], + git.getRepoStatus.mockResolvedValueOnce({ + modified: ['go.sum'], + } as StatusResult); + fs.readLocalFile + .mockResolvedValueOnce('New go.sum') + .mockResolvedValueOnce('New go.mod'); + expect( + await gomod.updateArtifacts({ + packageFileName: 'go.mod', + updatedDeps: [ + { depName: 'github.com/pkg/errors', newVersion: 'v1.0.0' }, + ], + newPackageFileContent: gomod1, + config: { + ...config, + updateType: 'major', + postUpdateOptions: ['gomodUpdateImportPaths'], + }, }) - ); + ).toEqual([ + { file: { type: 'addition', path: 'go.sum', contents: 'New go.sum' } }, + { file: { type: 'addition', path: 'go.mod', contents: 'New go.mod' } }, + ]); + expect(execSnapshots).toMatchObject([ + { + cmd: 'go get -d -t ./...', + options: { cwd: '/tmp/github/some/repo' }, + }, + { + cmd: 'go mod tidy', + options: { cwd: '/tmp/github/some/repo' }, + }, + { + cmd: 'go mod tidy', + options: { cwd: '/tmp/github/some/repo' }, + }, + ]); + }); + + it('skips updating import paths when invalid major version', async () => { + fs.readLocalFile.mockResolvedValueOnce('Current go.sum'); + fs.readLocalFile.mockResolvedValueOnce(null); // vendor modules filename + const execSnapshots = mockExecAll(); + git.getRepoStatus.mockResolvedValueOnce({ + modified: ['go.sum'], + } as StatusResult); fs.readLocalFile .mockResolvedValueOnce('New go.sum') .mockResolvedValueOnce('New go.mod'); expect( await gomod.updateArtifacts({ packageFileName: 'go.mod', - updatedDeps: [{ depName: 'github.com/pkg/errors' }], + updatedDeps: [ + { depName: 'github.com/pkg/errors', newVersion: 'vx.0.0' }, + ], newPackageFileContent: gomod1, config: { ...config, updateType: 'major', - newMajor: 1, postUpdateOptions: ['gomodUpdateImportPaths'], }, }) @@ -1353,6 +1423,14 @@ describe('modules/manager/gomod/artifacts', () => { cmd: 'go get -d -t ./...', options: { cwd: '/tmp/github/some/repo' }, }, + { + cmd: 'go mod tidy', + options: { cwd: '/tmp/github/some/repo' }, + }, + { + cmd: 'go mod tidy', + options: { cwd: '/tmp/github/some/repo' }, + }, ]); }); @@ -1446,12 +1524,13 @@ describe('modules/manager/gomod/artifacts', () => { expect( await gomod.updateArtifacts({ packageFileName: 'go.mod', - updatedDeps: [{ depName: 'github.com/google/go-github/v24' }], + updatedDeps: [ + { depName: 'github.com/google/go-github/v24', newVersion: 'v28.0.0' }, + ], newPackageFileContent: gomod1, config: { ...config, updateType: 'major', - newMajor: 28, postUpdateOptions: ['gomodUpdateImportPaths'], constraints: { gomodMod: 'v1.2.3', @@ -1504,12 +1583,13 @@ describe('modules/manager/gomod/artifacts', () => { expect( await gomod.updateArtifacts({ packageFileName: 'go.mod', - updatedDeps: [{ depName: 'github.com/google/go-github/v24' }], + updatedDeps: [ + { depName: 'github.com/google/go-github/v24', newVersion: 'v28.0.0' }, + ], newPackageFileContent: gomod1, config: { ...config, updateType: 'major', - newMajor: 28, postUpdateOptions: ['gomodUpdateImportPaths'], constraints: { gomodMod: 'a.b.c', @@ -1560,12 +1640,11 @@ describe('modules/manager/gomod/artifacts', () => { expect( await gomod.updateArtifacts({ packageFileName: 'go.mod', - updatedDeps: [{ depName: 'gopkg.in/yaml.v2' }], + updatedDeps: [{ depName: 'gopkg.in/yaml.v2', newVersion: 'v28.0.0' }], newPackageFileContent: gomod1, config: { ...config, updateType: 'major', - newMajor: 28, postUpdateOptions: ['gomodUpdateImportPaths'], }, }) @@ -1609,11 +1688,12 @@ describe('modules/manager/gomod/artifacts', () => { }); const res = await gomod.updateArtifacts({ packageFileName: 'go.mod', - updatedDeps: [{ depName: 'github.com/google/go-github/v24' }], + updatedDeps: [ + { depName: 'github.com/google/go-github/v24', newVersion: 'v28.0.0' }, + ], newPackageFileContent: gomod1, config: { updateType: 'major', - newMajor: 28, postUpdateOptions: ['gomodUpdateImportPaths'], }, }); @@ -1667,11 +1747,12 @@ describe('modules/manager/gomod/artifacts', () => { }); const res = await gomod.updateArtifacts({ packageFileName: 'go.mod', - updatedDeps: [{ depName: 'github.com/google/go-github/v24' }], + updatedDeps: [ + { depName: 'github.com/google/go-github/v24', newVersion: 'v28.0.0' }, + ], newPackageFileContent: gomod1, config: { updateType: 'major', - newMajor: 28, postUpdateOptions: ['gomodUpdateImportPaths'], }, }); @@ -1739,11 +1820,12 @@ describe('modules/manager/gomod/artifacts', () => { }); const res = await gomod.updateArtifacts({ packageFileName: 'go.mod', - updatedDeps: [{ depName: 'github.com/google/go-github/v24' }], + updatedDeps: [ + { depName: 'github.com/google/go-github/v24', newVersion: 'v28.0.0' }, + ], newPackageFileContent: gomod1, config: { updateType: 'major', - newMajor: 28, postUpdateOptions: ['gomodUpdateImportPaths'], constraints: { go: '1.14', diff --git a/lib/modules/manager/gomod/artifacts.ts b/lib/modules/manager/gomod/artifacts.ts index 512178edc60397..6378f7cd534764 100644 --- a/lib/modules/manager/gomod/artifacts.ts +++ b/lib/modules/manager/gomod/artifacts.ts @@ -1,4 +1,5 @@ import is from '@sindresorhus/is'; +import semver from 'semver'; import upath from 'upath'; import { GlobalConfig } from '../../../config/global'; import type { PlatformId } from '../../../constants'; @@ -32,6 +33,8 @@ const githubApiUrls = new Set([ 'https://api.github.com/', ]); +const { major, valid } = semver; + function getGitEnvironmentVariables(): NodeJS.ProcessEnv { let environmentVariables: NodeJS.ProcessEnv = {}; @@ -113,14 +116,33 @@ function addAuthFromHostRule( function getUpdateImportPathCmds( updatedDeps: PackageDependency[], - { constraints, newMajor }: UpdateArtifactsConfig + { constraints }: UpdateArtifactsConfig ): string[] { + // Check if we fail to parse any major versions and log that they're skipped + const invalidMajorDeps = updatedDeps.filter( + ({ newVersion }) => !valid(newVersion) + ); + if (invalidMajorDeps.length > 0) { + invalidMajorDeps.forEach(({ depName }) => + logger.warn(`Could not get major version of ${depName!}. Ignoring`) + ); + } + const updateImportCommands = updatedDeps - .map((dep) => dep.depName!) - .filter((x) => !x.startsWith('gopkg.in')) - // TODO: types (#7154) - // eslint-disable-next-line @typescript-eslint/restrict-template-expressions - .map((depName) => `mod upgrade --mod-name=${depName} -t=${newMajor}`); + .filter(({ newVersion }) => valid(newVersion)) + .map(({ depName, newVersion }) => ({ + depName: depName!, + newMajor: major(newVersion!), + })) + // Skip path upates going from v0 to v1 + .filter( + ({ depName, newMajor }) => !depName.startsWith('gopkg.in') && newMajor > 1 + ) + + .map( + ({ depName, newMajor }) => + `mod upgrade --mod-name=${depName} -t=${newMajor}` + ); if (updateImportCommands.length > 0) { let installMarwanModArgs = @@ -275,11 +297,11 @@ export async function updateArtifacts({ logger.trace({ cmd, args }, 'go get command included'); execCommands.push(`${cmd} ${args}`); - // Update import paths on major updates above v1 + // Update import paths on major updates const isImportPathUpdateRequired = config.postUpdateOptions?.includes('gomodUpdateImportPaths') && - config.updateType === 'major' && - config.newMajor! > 1; + config.updateType === 'major'; + if (isImportPathUpdateRequired) { const updateImportCmds = getUpdateImportPathCmds(updatedDeps, config); if (updateImportCmds.length > 0) { From e132c34c53c351be22e9459988a6d8cc190ddb16 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 23 Feb 2023 18:25:54 +0000 Subject: [PATCH 005/228] build(deps): update dependency openpgp to v5.6.0 (#20600) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 6347a21eb9f8cf..8d6318c968c5ee 100644 --- a/package.json +++ b/package.json @@ -213,7 +213,7 @@ "ms": "2.1.3", "nanoid": "3.3.4", "node-html-parser": "6.1.4", - "openpgp": "5.5.0", + "openpgp": "5.6.0", "p-all": "3.0.0", "p-map": "4.0.0", "p-queue": "6.6.2", diff --git a/yarn.lock b/yarn.lock index b7d2be403b33ac..87ac70fc391c37 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8185,10 +8185,10 @@ opener@^1.5.2: resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== -openpgp@5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/openpgp/-/openpgp-5.5.0.tgz#235ae5a49d5fda5cfd1d82c4c42cd91433478c14" - integrity sha512-SpwcJnxrK9Y0HRM6KxSFqkAEOSWEabCH/c8dII/+y2e5f6KvuDG5ZE7JXaPBaVJNE4VUZZeTphxXDoZD0KOHrw== +openpgp@5.6.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/openpgp/-/openpgp-5.6.0.tgz#2bbcce109f789d7d9b317fbdec7cc3cd4dc7dbac" + integrity sha512-m0UGCSefapbPssLmxJ7z7KydLEdpWjaY5gXoxZgTuNeWDfeRG5lzaORWNxyKg1K4tJnRwSoTp01Vtt8Cenbmgw== dependencies: asn1.js "^5.0.0" From 54dd427670425c5eac57b5cb6d648ca9cb21e4cc Mon Sep 17 00:00:00 2001 From: Johannes Feichtner <343448+Churro@users.noreply.github.com> Date: Fri, 24 Feb 2023 06:00:17 +0100 Subject: [PATCH 006/228] fix(gradle): set Java 17 as constraint for gradle >= 7.3 (#20603) --- lib/modules/manager/gradle-wrapper/util.spec.ts | 6 ++++++ lib/modules/manager/gradle-wrapper/utils.ts | 4 ++++ lib/modules/manager/gradle/artifacts.spec.ts | 2 +- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/modules/manager/gradle-wrapper/util.spec.ts b/lib/modules/manager/gradle-wrapper/util.spec.ts index e5e3ba7bb2d93d..c743eb8dd510b8 100644 --- a/lib/modules/manager/gradle-wrapper/util.spec.ts +++ b/lib/modules/manager/gradle-wrapper/util.spec.ts @@ -39,6 +39,12 @@ describe('modules/manager/gradle-wrapper/util', () => { GlobalConfig.set({ binarySource: 'docker' }); expect(getJavaConstraint('7.0.1')).toBe('^16.0.0'); }); + + it('return ^17.0.0 for docker gradle >= 7.3', () => { + GlobalConfig.set({ binarySource: 'docker' }); + expect(getJavaConstraint('7.3.0')).toBe('^17.0.0'); + expect(getJavaConstraint('8.0.1')).toBe('^17.0.0'); + }); }); describe('extractGradleVersion()', () => { diff --git a/lib/modules/manager/gradle-wrapper/utils.ts b/lib/modules/manager/gradle-wrapper/utils.ts index cbd7a0f9629120..473e958f3cf4cb 100644 --- a/lib/modules/manager/gradle-wrapper/utils.ts +++ b/lib/modules/manager/gradle-wrapper/utils.ts @@ -48,6 +48,10 @@ export function getJavaConstraint( gradleVersion: string | null | undefined ): string | null { const major = gradleVersion ? gradleVersioning.getMajor(gradleVersion) : null; + const minor = gradleVersion ? gradleVersioning.getMinor(gradleVersion) : null; + if (major && (major > 7 || (major >= 7 && minor && minor >= 3))) { + return '^17.0.0'; + } if (major && major >= 7) { return '^16.0.0'; } diff --git a/lib/modules/manager/gradle/artifacts.spec.ts b/lib/modules/manager/gradle/artifacts.spec.ts index b3b0426da2b3d9..8e0f07e19dba67 100644 --- a/lib/modules/manager/gradle/artifacts.spec.ts +++ b/lib/modules/manager/gradle/artifacts.spec.ts @@ -83,7 +83,7 @@ describe('modules/manager/gradle/artifacts', () => { content = 'New gradle.lockfile'; } else if (fileName === 'gradle/wrapper/gradle-wrapper.properties') { content = - 'distributionUrl=https\\://services.gradle.org/distributions/gradle-7.4-bin.zip'; + 'distributionUrl=https\\://services.gradle.org/distributions/gradle-7.2-bin.zip'; } return Promise.resolve(content); From fd200d4198531a4deaf3a7c15c335593c989ce85 Mon Sep 17 00:00:00 2001 From: Sergei Zharinov Date: Fri, 24 Feb 2023 08:55:04 +0300 Subject: [PATCH 007/228] refactor(packagist): Refactor `RegistryMeta` to inferred via schema (#20592) --- .../datasource/packagist/index.spec.ts | 12 ++- lib/modules/datasource/packagist/index.ts | 80 ++++--------------- .../datasource/packagist/schema.spec.ts | 14 ++++ lib/modules/datasource/packagist/schema.ts | 66 ++++++++++++++- lib/modules/datasource/packagist/types.ts | 27 ------- 5 files changed, 102 insertions(+), 97 deletions(-) diff --git a/lib/modules/datasource/packagist/index.spec.ts b/lib/modules/datasource/packagist/index.spec.ts index 88d6775fe1c46d..3fe8837bf41cb5 100644 --- a/lib/modules/datasource/packagist/index.spec.ts +++ b/lib/modules/datasource/packagist/index.spec.ts @@ -145,16 +145,20 @@ describe('modules/datasource/packagist/index', () => { const packagesJson = { packages: [], includes: { - 'include/all$afbf74d51f31c7cbb5ff10304f9290bfb4f4e68b.json': { - sha1: 'afbf74d51f31c7cbb5ff10304f9290bfb4f4e68b', - }, + 'include/all$093530b127abe74defbf21affc9589bf713e4e08f898bf11986842f9956eda86.json': + { + sha256: + '093530b127abe74defbf21affc9589bf713e4e08f898bf11986842f9956eda86', + }, }, }; httpMock .scope('https://composer.renovatebot.com') .get('/packages.json') .reply(200, packagesJson) - .get('/include/all$afbf74d51f31c7cbb5ff10304f9290bfb4f4e68b.json') + .get( + '/include/all$093530b127abe74defbf21affc9589bf713e4e08f898bf11986842f9956eda86.json' + ) .reply(200, includesJson); const res = await getPkgReleases({ ...config, diff --git a/lib/modules/datasource/packagist/index.ts b/lib/modules/datasource/packagist/index.ts index b2f9849e540ace..b82cde4b5953ce 100644 --- a/lib/modules/datasource/packagist/index.ts +++ b/lib/modules/datasource/packagist/index.ts @@ -10,13 +10,7 @@ import { Datasource } from '../datasource'; import type { GetReleasesConfig, ReleaseResult } from '../types'; import * as schema from './schema'; import { extractDepReleases } from './schema'; -import type { - AllPackages, - PackageMeta, - PackagistFile, - RegistryFile, - RegistryMeta, -} from './types'; +import type { PackagistFile, RegistryFile } from './types'; export class PackagistDatasource extends Datasource { static readonly id = 'packagist'; @@ -40,45 +34,11 @@ export class PackagistDatasource extends Datasource { return username && password ? { username, password } : {}; } - private async getRegistryMeta(regUrl: string): Promise { + private async getRegistryMeta(regUrl: string): Promise { const url = resolveBaseUrl(regUrl, 'packages.json'); const opts = PackagistDatasource.getHostOpts(url); - const res = (await this.http.getJson(url, opts)).body; - const meta: RegistryMeta = { - providerPackages: {}, - packages: res.packages, - }; - if (res.includes) { - meta.includesFiles = []; - for (const [name, val] of Object.entries(res.includes)) { - const file = { - key: name.replace(val.sha256, '%hash%'), - sha256: val.sha256, - }; - meta.includesFiles.push(file); - } - } - if (res['providers-url']) { - meta.providersUrl = res['providers-url']; - } - if (res['providers-lazy-url']) { - meta.providersLazyUrl = res['providers-lazy-url']; - } - if (res['provider-includes']) { - meta.files = []; - for (const [key, val] of Object.entries(res['provider-includes'])) { - const file = { - key, - sha256: val.sha256, - }; - meta.files.push(file); - } - } - if (res.providers) { - for (const [key, val] of Object.entries(res.providers)) { - meta.providerPackages[key] = val.sha256; - } - } + const { body } = await this.http.getJson(url, opts); + const meta = schema.RegistryMeta.parse(body); return meta; } @@ -122,23 +82,19 @@ export class PackagistDatasource extends Datasource { namespace: `datasource-${PackagistDatasource.id}`, key: (regUrl: string) => regUrl, }) - async getAllPackages(regUrl: string): Promise { + async getAllPackages(regUrl: string): Promise { const registryMeta = await this.getRegistryMeta(regUrl); - // istanbul ignore if: needs test - if (!registryMeta) { - return null; - } const { packages, providersUrl, providersLazyUrl, - files = [], - includesFiles = [], + files, + includesFiles, providerPackages, } = registryMeta; - const includesPackages: Record = {}; + const includesPackages: schema.AllPackages['includesPackages'] = {}; const tasks: (() => Promise)[] = []; @@ -162,7 +118,7 @@ export class PackagistDatasource extends Datasource { await p.all(tasks); - const allPackages: AllPackages = { + const allPackages: schema.AllPackages = { packages, providersUrl, providersLazyUrl, @@ -204,10 +160,6 @@ export class PackagistDatasource extends Datasource { return packagistResult; } const allPackages = await this.getAllPackages(registryUrl); - // istanbul ignore if: needs test - if (!allPackages) { - return null; - } const { packages, providersUrl, @@ -223,13 +175,13 @@ export class PackagistDatasource extends Datasource { return includesPackages[packageName]; } let pkgUrl: string; - if (packageName in providerPackages) { - pkgUrl = resolveBaseUrl( - registryUrl, - providersUrl! - .replace('%package%', packageName) - .replace('%hash%', providerPackages[packageName]) - ); + if (providersUrl && packageName in providerPackages) { + let url = providersUrl.replace('%package%', packageName); + const hash = providerPackages[packageName]; + if (hash) { + url = url.replace('%hash%', hash); + } + pkgUrl = resolveBaseUrl(registryUrl, url); } else if (providersLazyUrl) { pkgUrl = resolveBaseUrl( registryUrl, diff --git a/lib/modules/datasource/packagist/schema.spec.ts b/lib/modules/datasource/packagist/schema.spec.ts index 9fde962fcc2d5f..3f3eb45ca7c448 100644 --- a/lib/modules/datasource/packagist/schema.spec.ts +++ b/lib/modules/datasource/packagist/schema.spec.ts @@ -3,6 +3,7 @@ import { ComposerRelease, ComposerReleases, MinifiedArray, + RegistryMeta, parsePackagesResponse, parsePackagesResponses, } from './schema'; @@ -242,4 +243,17 @@ describe('modules/datasource/packagist/schema', () => { } satisfies ReleaseResult); }); }); + + describe('RegistryMeta', () => { + it('falls back to default values', () => { + expect(RegistryMeta.parse('nonsense')).toEqual({ + files: [], + includesFiles: [], + packages: {}, + providerPackages: {}, + providersLazyUrl: null, + providersUrl: null, + }); + }); + }); }); diff --git a/lib/modules/datasource/packagist/schema.ts b/lib/modules/datasource/packagist/schema.ts index 166a668d5dd8c0..6a6ac2e227143e 100644 --- a/lib/modules/datasource/packagist/schema.ts +++ b/lib/modules/datasource/packagist/schema.ts @@ -1,7 +1,7 @@ import is from '@sindresorhus/is'; import { z } from 'zod'; import { logger } from '../../../logger'; -import { looseObject, looseValue } from '../../../util/schema'; +import { looseObject, looseRecord, looseValue } from '../../../util/schema'; import type { Release, ReleaseResult } from '../types'; export const MinifiedArray = z.array(z.record(z.unknown())).transform((xs) => { @@ -56,10 +56,10 @@ export type ComposerRelease = z.infer; export const ComposerReleases = z .union([ - z.array(looseValue(ComposerRelease)), z .record(looseValue(ComposerRelease)) .transform((map) => Object.values(map)), + z.array(looseValue(ComposerRelease)), ]) .catch([]) .transform((xs) => xs.filter((x): x is ComposerRelease => x !== null)); @@ -154,3 +154,65 @@ export function parsePackagesResponses( ); return extractReleaseResult(...releaseArrays); } + +export const RegistryMeta = z + .preprocess( + (x) => (is.plainObject(x) ? x : {}), + z.object({ + ['includes']: looseRecord( + z.object({ + sha256: z.string(), + }) + ).transform((x) => + Object.entries(x).map(([name, { sha256 }]) => ({ + key: name.replace(sha256, '%hash%'), + sha256, + })) + ), + ['packages']: looseRecord(ComposerReleases), + ['provider-includes']: looseRecord( + z.object({ + sha256: z.string(), + }) + ).transform((x) => + Object.entries(x).map(([key, { sha256 }]) => ({ key, sha256 })) + ), + ['providers']: looseRecord( + z.object({ + sha256: looseValue(z.string()), + }) + ).transform((x) => + Object.fromEntries( + Object.entries(x).map(([key, { sha256 }]) => [key, sha256]) + ) + ), + ['providers-lazy-url']: looseValue(z.string()), + ['providers-url']: looseValue(z.string()), + }) + ) + .transform( + ({ + ['includes']: includesFiles, + ['packages']: packages, + ['provider-includes']: files, + ['providers']: providerPackages, + ['providers-lazy-url']: providersLazyUrl, + ['providers-url']: providersUrl, + }) => ({ + packages, + includesFiles, + providerPackages, + files, + providersUrl, + providersLazyUrl, + }) + ); +export type RegistryMeta = z.infer; + +export interface AllPackages + extends Pick< + RegistryMeta, + 'packages' | 'providersUrl' | 'providersLazyUrl' | 'providerPackages' + > { + includesPackages: Record; +} diff --git a/lib/modules/datasource/packagist/types.ts b/lib/modules/datasource/packagist/types.ts index 73948fe1df8aed..8687dd3d929eb8 100644 --- a/lib/modules/datasource/packagist/types.ts +++ b/lib/modules/datasource/packagist/types.ts @@ -1,36 +1,9 @@ -import type { ReleaseResult } from '../types'; - -export interface PackageMeta { - includes?: Record; - packages: Record; - 'provider-includes': Record; - providers: Record; - 'providers-lazy-url'?: string; - 'providers-url'?: string; -} export interface RegistryFile { key: string; sha256: string; } -export interface RegistryMeta { - files?: RegistryFile[]; - providerPackages: Record; - providersUrl?: string; - providersLazyUrl?: string; - includesFiles?: RegistryFile[]; - packages: Record; -} export interface PackagistFile { providers: Record; packages?: Record; } - -export interface AllPackages { - packages: Record; - providersUrl?: string; - providersLazyUrl?: string; - providerPackages: Record; - - includesPackages: Record; -} From 78a384b9eede13ddb0f5380afd8c597190de1016 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 24 Feb 2023 06:54:51 +0000 Subject: [PATCH 008/228] chore(deps): update dependency type-fest to v3.6.0 (#20605) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 8d6318c968c5ee..19c57c50182442 100644 --- a/package.json +++ b/package.json @@ -328,7 +328,7 @@ "tmp-promise": "3.0.3", "ts-jest": "29.0.5", "ts-node": "10.9.1", - "type-fest": "3.5.7", + "type-fest": "3.6.0", "typescript": "4.9.5", "unified": "9.2.2" }, diff --git a/yarn.lock b/yarn.lock index 87ac70fc391c37..a6c965a61905d9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9959,10 +9959,10 @@ type-detect@4.0.8, type-detect@^4.0.8: resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== -type-fest@3.5.7: - version "3.5.7" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-3.5.7.tgz#1ee9efc9a172f4002c40b896689928a7bba537f2" - integrity sha512-6J4bYzb4sdkcLBty4XW7F18VPI66M4boXNE+CY40532oq2OJe6AVMB5NmjOp6skt/jw5mRjz/hLRpuglz0U+FA== +type-fest@3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-3.6.0.tgz#827c36c0e7fcff0cb2d55d091a5c4cf586432b8a" + integrity sha512-RqTRtKTzvPpNdDUp1dVkKQRunlPITk4mXeqFlAZoJsS+fLRn8AdPK0TcQDumGayhU7fjlBfiBjsq3pe3rIfXZQ== type-fest@^0.13.1: version "0.13.1" From eb8a02c37ff04fe3eb3e6e7f60eeef2ed47ee6f4 Mon Sep 17 00:00:00 2001 From: Sergei Zharinov Date: Fri, 24 Feb 2023 12:01:58 +0300 Subject: [PATCH 009/228] refactor(github): Use schema validation for GraphQL (#20519) --- .../github/graphql/datasource-fetcher.spec.ts | 14 ++++-- lib/util/github/graphql/datasource-fetcher.ts | 8 +++- lib/util/github/graphql/index.spec.ts | 14 +++--- .../releases-query-adapter.spec.ts | 6 ++- .../query-adapters/releases-query-adapter.ts | 36 ++++++++++++-- .../query-adapters/tags-query-adapter.ts | 47 +++++++++++++------ lib/util/github/graphql/types.ts | 42 ++--------------- 7 files changed, 96 insertions(+), 71 deletions(-) diff --git a/lib/util/github/graphql/datasource-fetcher.spec.ts b/lib/util/github/graphql/datasource-fetcher.spec.ts index 673a96c0eefa29..e9489664772f8c 100644 --- a/lib/util/github/graphql/datasource-fetcher.spec.ts +++ b/lib/util/github/graphql/datasource-fetcher.spec.ts @@ -44,11 +44,14 @@ const adapter: GithubGraphqlDatasourceAdapter< version, releaseTimestamp, foo, - }: TestAdapterInput): TestAdapterOutput => ({ - version, - releaseTimestamp, - bar: foo, - }), + }: TestAdapterInput): TestAdapterOutput | null => + version && releaseTimestamp && foo + ? { + version, + releaseTimestamp, + bar: foo, + } + : null, }; function resp( @@ -208,6 +211,7 @@ describe('util/github/graphql/datasource-fetcher', () => { resp(false, [ { version: v3, releaseTimestamp: t3, foo: '3' }, { version: v2, releaseTimestamp: t2, foo: '2' }, + {} as never, { version: v1, releaseTimestamp: t1, foo: '1' }, ]) ); diff --git a/lib/util/github/graphql/datasource-fetcher.ts b/lib/util/github/graphql/datasource-fetcher.ts index 6ab09ebb56f75d..ca53fb6eff753b 100644 --- a/lib/util/github/graphql/datasource-fetcher.ts +++ b/lib/util/github/graphql/datasource-fetcher.ts @@ -239,8 +239,14 @@ export class GithubGraphqlDatasourceFetcher< const resultItems: ResultItem[] = []; for (const node of queryResult.nodes) { const item = this.datasourceAdapter.transform(node); - // istanbul ignore if: will be tested later if (!item) { + logger.once.info( + { + packageName: `${this.repoOwner}/${this.repoName}`, + baseUrl: this.baseUrl, + }, + `GitHub GraphQL datasource: skipping empty item` + ); continue; } resultItems.push(item); diff --git a/lib/util/github/graphql/index.spec.ts b/lib/util/github/graphql/index.spec.ts index 315ee6afc57cdd..a234bac6dd19c0 100644 --- a/lib/util/github/graphql/index.spec.ts +++ b/lib/util/github/graphql/index.spec.ts @@ -52,12 +52,14 @@ describe('util/github/graphql/index', () => { payload: { nodes: [ { - id: 123, - name: 'name', - description: 'description', version: '1.2.3', releaseTimestamp: '2024-09-24', + isDraft: false, + isPrerelease: false, url: 'https://example.com', + id: 123, + name: 'name', + description: 'description', }, ], }, @@ -69,12 +71,12 @@ describe('util/github/graphql/index', () => { expect(res).toEqual([ { - id: 123, - name: 'name', - description: 'description', version: '1.2.3', releaseTimestamp: '2024-09-24', url: 'https://example.com', + id: 123, + name: 'name', + description: 'description', }, ]); }); diff --git a/lib/util/github/graphql/query-adapters/releases-query-adapter.spec.ts b/lib/util/github/graphql/query-adapters/releases-query-adapter.spec.ts index 0bd88165e6b2d9..7e874c311eff30 100644 --- a/lib/util/github/graphql/query-adapters/releases-query-adapter.spec.ts +++ b/lib/util/github/graphql/query-adapters/releases-query-adapter.spec.ts @@ -1,5 +1,5 @@ -import type { GithubGraphqlRelease } from '../types'; import { adapter } from './releases-query-adapter'; +import type { GithubGraphqlRelease } from './releases-query-adapter'; const item: GithubGraphqlRelease = { version: '1.2.3', @@ -28,6 +28,10 @@ describe('util/github/graphql/query-adapters/releases-query-adapter', () => { expect(adapter.transform({ ...item, isDraft: true })).toBeNull(); }); + it('handles invalid items', () => { + expect(adapter.transform({} as never)).toBeNull(); + }); + it('marks prereleases as unstable', () => { expect(adapter.transform({ ...item, isPrerelease: true })).toMatchObject({ isStable: false, diff --git a/lib/util/github/graphql/query-adapters/releases-query-adapter.ts b/lib/util/github/graphql/query-adapters/releases-query-adapter.ts index e149a0b25a4ced..65cf0cfb10a2d5 100644 --- a/lib/util/github/graphql/query-adapters/releases-query-adapter.ts +++ b/lib/util/github/graphql/query-adapters/releases-query-adapter.ts @@ -1,6 +1,6 @@ +import { z } from 'zod'; import type { GithubGraphqlDatasourceAdapter, - GithubGraphqlRelease, GithubReleaseItem, } from '../types'; import { prepareQuery } from '../util'; @@ -30,7 +30,24 @@ const query = prepareQuery(` } `); +const GithubGraphqlRelease = z.object({ + version: z.string(), + releaseTimestamp: z.string(), + isDraft: z.boolean(), + isPrerelease: z.boolean(), + url: z.string(), + id: z.number().nullable(), + name: z.string().nullable(), + description: z.string().nullable(), +}); +export type GithubGraphqlRelease = z.infer; + function transform(item: GithubGraphqlRelease): GithubReleaseItem | null { + const releaseItem = GithubGraphqlRelease.safeParse(item); + if (!releaseItem.success) { + return null; + } + const { version, releaseTimestamp, @@ -40,7 +57,7 @@ function transform(item: GithubGraphqlRelease): GithubReleaseItem | null { id, name, description, - } = item; + } = releaseItem.data; if (isDraft) { return null; @@ -50,11 +67,20 @@ function transform(item: GithubGraphqlRelease): GithubReleaseItem | null { version, releaseTimestamp, url, - id, - name, - description, }; + if (id) { + result.id = id; + } + + if (name) { + result.name = name; + } + + if (description) { + result.description = description; + } + if (isPrerelease) { result.isStable = false; } diff --git a/lib/util/github/graphql/query-adapters/tags-query-adapter.ts b/lib/util/github/graphql/query-adapters/tags-query-adapter.ts index 7d1e034bfa1595..0fbb2cf7728ccc 100644 --- a/lib/util/github/graphql/query-adapters/tags-query-adapter.ts +++ b/lib/util/github/graphql/query-adapters/tags-query-adapter.ts @@ -1,12 +1,30 @@ -import type { - GithubGraphqlDatasourceAdapter, - GithubGraphqlTag, - GithubTagItem, -} from '../types'; +import { z } from 'zod'; +import type { GithubGraphqlDatasourceAdapter, GithubTagItem } from '../types'; import { prepareQuery } from '../util'; const key = 'github-tags-datasource-v2'; +const GithubGraphqlTag = z.object({ + version: z.string(), + target: z.union([ + z.object({ + type: z.literal('Commit'), + oid: z.string(), + releaseTimestamp: z.string(), + }), + z.object({ + type: z.literal('Tag'), + target: z.object({ + oid: z.string(), + }), + tagger: z.object({ + releaseTimestamp: z.string(), + }), + }), + ]), +}); +export type GithubGraphqlTag = z.infer; + const query = prepareQuery(` refs( first: $count @@ -41,16 +59,17 @@ const query = prepareQuery(` }`); function transform(item: GithubGraphqlTag): GithubTagItem | null { - const { version, target } = item; - if (target.type === 'Commit') { - const { oid: hash, releaseTimestamp } = target; - return { version, gitRef: version, hash, releaseTimestamp }; - } else if (target.type === 'Tag') { - const { oid: hash } = target.target; - const { releaseTimestamp } = target.tagger; - return { version, gitRef: version, hash, releaseTimestamp }; + const res = GithubGraphqlTag.safeParse(item); + if (!res.success) { + return null; } - return null; + const { version, target } = item; + const releaseTimestamp = + target.type === 'Commit' + ? target.releaseTimestamp + : target.tagger.releaseTimestamp; + const hash = target.type === 'Commit' ? target.oid : target.target.oid; + return { version, gitRef: version, hash, releaseTimestamp }; } export const adapter: GithubGraphqlDatasourceAdapter< diff --git a/lib/util/github/graphql/types.ts b/lib/util/github/graphql/types.ts index 7b20caeed7b8b2..7bcfa4ec4adb35 100644 --- a/lib/util/github/graphql/types.ts +++ b/lib/util/github/graphql/types.ts @@ -58,51 +58,15 @@ export interface GithubPackageConfig { registryUrl?: string; } -/** - * GraphQL shape for releases - */ -export interface GithubGraphqlRelease { - version: string; - releaseTimestamp: string; - isDraft: boolean; - isPrerelease: boolean; - url: string; - id: number; - name: string; - description: string; -} - /** * Result of GraphQL response transformation for releases (via adapter) */ export interface GithubReleaseItem extends GithubDatasourceItem { isStable?: boolean; url: string; - id: number; - name: string; - description: string; -} - -/** - * GraphQL shape for tags - */ -export interface GithubGraphqlTag { - version: string; - target: - | { - type: 'Commit'; - oid: string; - releaseTimestamp: string; - } - | { - type: 'Tag'; - target: { - oid: string; - }; - tagger: { - releaseTimestamp: string; - }; - }; + id?: number; + name?: string; + description?: string; } /** From 8621d8cbbfd710d414301bed8329a52907b1fe60 Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Fri, 24 Feb 2023 16:28:35 +0100 Subject: [PATCH 010/228] chore: simplify package types (#20598) --- lib/modules/manager/types.ts | 52 +++++++++++++++++------------------- 1 file changed, 24 insertions(+), 28 deletions(-) diff --git a/lib/modules/manager/types.ts b/lib/modules/manager/types.ts index c1fc93c79c3f81..ee8bb0874dd5aa 100644 --- a/lib/modules/manager/types.ts +++ b/lib/modules/manager/types.ts @@ -73,32 +73,6 @@ export interface PackageFile> packageFile: string; } -export interface Package extends ManagerData { - currentValue?: string | null; - currentDigest?: string; - depName?: string; - depType?: string; - fileReplacePosition?: number; - groupName?: string; - lineNumber?: number; - packageName?: string | null; - target?: string; - versioning?: string; - dataType?: string; - enabled?: boolean; - - // npm manager - bumpVersion?: ReleaseType | string; - npmPackageAlias?: boolean; - packageFileVersion?: string; - gitRef?: boolean; - sourceUrl?: string | null; - pinDigests?: boolean; - currentRawValue?: string; - major?: { enabled?: boolean }; - prettyDepType?: string; -} - export interface LookupUpdate { bucket?: string; branchName?: string; @@ -127,7 +101,29 @@ export interface LookupUpdate { registryUrl?: string; } -export interface PackageDependency> extends Package { +export interface PackageDependency> + extends ManagerData { + currentValue?: string | null; + currentDigest?: string; + depName?: string; + depType?: string; + fileReplacePosition?: number; + groupName?: string; + lineNumber?: number; + packageName?: string | null; + target?: string; + versioning?: string; + dataType?: string; + enabled?: boolean; + bumpVersion?: ReleaseType | string; + npmPackageAlias?: boolean; + packageFileVersion?: string; + gitRef?: boolean; + sourceUrl?: string | null; + pinDigests?: boolean; + currentRawValue?: string; + major?: { enabled?: boolean }; + prettyDepType?: string; newValue?: string; warnings?: ValidationMessage[]; commitMessageTopic?: string; @@ -155,7 +151,7 @@ export interface PackageDependency> extends Package { variableName?: string; } -export interface Upgrade> extends Package { +export interface Upgrade> extends PackageDependency { isLockfileUpdate?: boolean; currentRawValue?: any; depGroup?: string; From 9fc68ddf7a0bb65798b3b2eb548666bc15e1106e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 25 Feb 2023 01:03:12 +0000 Subject: [PATCH 011/228] chore(deps): update github/codeql-action action to v2.2.5 (#20620) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/codeql-analysis.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 1ec9794ef098d1..14cbf892af6981 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -30,7 +30,7 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@17573ee1cc1b9d061760f3a006fc4aac4f944fd5 # v2.2.4 + uses: github/codeql-action/init@32dc499307d133bb5085bae78498c0ac2cf762d5 # v2.2.5 with: languages: javascript @@ -40,7 +40,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@17573ee1cc1b9d061760f3a006fc4aac4f944fd5 # v2.2.4 + uses: github/codeql-action/autobuild@32dc499307d133bb5085bae78498c0ac2cf762d5 # v2.2.5 # ℹī¸ Command-line programs to run using the OS shell. # 📚 https://git.io/JvXDl @@ -54,4 +54,4 @@ jobs: # make release - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@17573ee1cc1b9d061760f3a006fc4aac4f944fd5 # v2.2.4 + uses: github/codeql-action/analyze@32dc499307d133bb5085bae78498c0ac2cf762d5 # v2.2.5 From 352c9db9045f3cc4a0611e45dba530d8c6762289 Mon Sep 17 00:00:00 2001 From: RahulGautamSingh Date: Sat, 25 Feb 2023 12:16:32 +0530 Subject: [PATCH 012/228] test: add new wrapper for partial (#20618) --- lib/modules/datasource/datasource.spec.ts | 2 +- lib/modules/manager/gradle/extract.spec.ts | 46 +++--- .../manager/gradle/parser/common.spec.ts | 4 +- .../manager/npm/post-update/lerna.spec.ts | 2 +- .../manager/npm/post-update/pnpm.spec.ts | 6 +- lib/modules/platform/gitea/index.spec.ts | 4 +- lib/modules/versioning/python/index.spec.ts | 2 +- .../repository/changelog/index.spec.ts | 6 +- .../config-migration/branch/create.spec.ts | 2 +- .../config-migration/branch/rebase.spec.ts | 2 +- .../repository/config-migration/index.spec.ts | 2 +- .../config-migration/pr/index.spec.ts | 6 +- .../repository/init/vulnerability.spec.ts | 2 +- .../repository/onboarding/pr/index.spec.ts | 2 +- lib/workers/repository/process/write.spec.ts | 4 +- .../repository/update/branch/index.spec.ts | 140 +++++++++--------- .../repository/update/pr/automerge.spec.ts | 2 +- .../update/pr/changelog/release-notes.spec.ts | 12 +- test/util.ts | 3 +- 19 files changed, 125 insertions(+), 124 deletions(-) diff --git a/lib/modules/datasource/datasource.spec.ts b/lib/modules/datasource/datasource.spec.ts index e36bd37b2eb867..bf74641b1c7b8f 100644 --- a/lib/modules/datasource/datasource.spec.ts +++ b/lib/modules/datasource/datasource.spec.ts @@ -30,7 +30,7 @@ describe('modules/datasource/datasource', () => { httpMock.scope(exampleUrl).get('/').reply(429); await expect( - testDatasource.getReleases(partial({})) + testDatasource.getReleases(partial()) ).rejects.toThrow(EXTERNAL_HOST_ERROR); }); }); diff --git a/lib/modules/manager/gradle/extract.spec.ts b/lib/modules/manager/gradle/extract.spec.ts index 32ceb9a1e5f922..c5ea256fcc971c 100644 --- a/lib/modules/manager/gradle/extract.spec.ts +++ b/lib/modules/manager/gradle/extract.spec.ts @@ -41,7 +41,7 @@ describe('modules/manager/gradle/extract', () => { expect( await extractAllPackageFiles( - partial({}), + partial(), Object.keys(fsMock) ) ).toBeNull(); @@ -54,7 +54,7 @@ describe('modules/manager/gradle/extract', () => { jest.spyOn(parser, 'parseGradle').mockImplementationOnce(() => { throw err; }); - await extractAllPackageFiles(partial({}), [filename]); + await extractAllPackageFiles(partial(), [filename]); expect(logger.logger.warn).toHaveBeenCalledWith( { err, config: {}, packageFile: filename }, @@ -70,7 +70,7 @@ describe('modules/manager/gradle/extract', () => { mockFs(fsMock); const res = await extractAllPackageFiles( - partial({}), + partial(), Object.keys(fsMock) ); @@ -97,7 +97,7 @@ describe('modules/manager/gradle/extract', () => { mockFs(fsMock); const res = await extractAllPackageFiles( - partial({}), + partial(), Object.keys(fsMock) ); @@ -127,7 +127,7 @@ describe('modules/manager/gradle/extract', () => { mockFs(fsMock); const res = await extractAllPackageFiles( - partial({}), + partial(), Object.keys(fsMock) ); @@ -174,7 +174,7 @@ describe('modules/manager/gradle/extract', () => { mockFs(fsMock); const res = await extractAllPackageFiles( - partial({}), + partial(), Object.keys(fsMock) ); @@ -199,7 +199,7 @@ describe('modules/manager/gradle/extract', () => { mockFs(fsMock); const res = await extractAllPackageFiles( - partial({}), + partial(), Object.keys(fsMock) ); @@ -233,7 +233,7 @@ describe('modules/manager/gradle/extract', () => { mockFs(fsMock); const res = await extractAllPackageFiles( - partial({}), + partial(), Object.keys(fsMock) ); @@ -281,7 +281,7 @@ describe('modules/manager/gradle/extract', () => { mockFs(fsMock); const res = await extractAllPackageFiles( - partial({}), + partial(), Object.keys(fsMock) ); @@ -342,7 +342,7 @@ describe('modules/manager/gradle/extract', () => { mockFs(fsMock); const res = await extractAllPackageFiles( - partial({}), + partial(), Object.keys(fsMock) ); @@ -380,7 +380,7 @@ describe('modules/manager/gradle/extract', () => { mockFs(fsMock); const res = await extractAllPackageFiles( - partial({}), + partial(), Object.keys(fsMock) ); expect(res).toMatchObject([ @@ -494,7 +494,7 @@ describe('modules/manager/gradle/extract', () => { mockFs(fsMock); const res = await extractAllPackageFiles( - partial({}), + partial(), Object.keys(fsMock) ); @@ -610,7 +610,7 @@ describe('modules/manager/gradle/extract', () => { expect( await extractAllPackageFiles( - partial({}), + partial(), Object.keys(fsMock) ) ).toBeNull(); @@ -632,7 +632,7 @@ describe('modules/manager/gradle/extract', () => { mockFs(fsMock); const res = await extractAllPackageFiles( - partial({}), + partial(), Object.keys(fsMock) ); expect(res).toMatchObject([ @@ -675,7 +675,7 @@ describe('modules/manager/gradle/extract', () => { mockFs(fsMock); const res = await extractAllPackageFiles( - partial({}), + partial(), Object.keys(fsMock) ); expect(res).toMatchObject([ @@ -745,7 +745,7 @@ describe('modules/manager/gradle/extract', () => { mockFs(fsMock); const res = await extractAllPackageFiles( - partial({}), + partial(), Object.keys(fsMock) ); @@ -825,7 +825,7 @@ describe('modules/manager/gradle/extract', () => { mockFs(fsMock); const res = await extractAllPackageFiles( - partial({}), + partial(), Object.keys(fsMock) ); @@ -847,7 +847,7 @@ describe('modules/manager/gradle/extract', () => { expect( await extractAllPackageFiles( - partial({}), + partial(), Object.keys(fsMock) ) ).toBeNull(); @@ -861,7 +861,7 @@ describe('modules/manager/gradle/extract', () => { expect( await extractAllPackageFiles( - partial({}), + partial(), Object.keys(fsMock) ) ).toBeNull(); @@ -881,7 +881,7 @@ describe('modules/manager/gradle/extract', () => { mockFs(fsMock); const res = await extractAllPackageFiles( - partial({}), + partial(), Object.keys(fsMock) ); @@ -929,7 +929,7 @@ describe('modules/manager/gradle/extract', () => { mockFs(fsMock); const res = await extractAllPackageFiles( - partial({}), + partial(), Object.keys(fsMock) ); expect(res).toBeNull(); @@ -943,7 +943,7 @@ describe('modules/manager/gradle/extract', () => { mockFs(fsMock); const res = await extractAllPackageFiles( - partial({}), + partial(), Object.keys(fsMock) ); expect(res).toBeNull(); @@ -970,7 +970,7 @@ describe('modules/manager/gradle/extract', () => { mockFs(fsMock); const res = await extractAllPackageFiles( - partial({}), + partial(), Object.keys(fsMock) ); diff --git a/lib/modules/manager/gradle/parser/common.spec.ts b/lib/modules/manager/gradle/parser/common.spec.ts index c1b6879406d73b..7b8779b0a17f79 100644 --- a/lib/modules/manager/gradle/parser/common.spec.ts +++ b/lib/modules/manager/gradle/parser/common.spec.ts @@ -98,13 +98,13 @@ describe('modules/manager/gradle/parser/common', () => { expect( interpolateString( partial([{ type: 'symbol', value: 'foo' }]), - partial({}) + partial() ) ).toBeNull(); expect( interpolateString( partial([{ type: '_', value: 'foo' }]), - partial({}) + partial() ) ).toBeNull(); }); diff --git a/lib/modules/manager/npm/post-update/lerna.spec.ts b/lib/modules/manager/npm/post-update/lerna.spec.ts index 40a219bd9bbde7..cacc6fb2a514ec 100644 --- a/lib/modules/manager/npm/post-update/lerna.spec.ts +++ b/lib/modules/manager/npm/post-update/lerna.spec.ts @@ -27,7 +27,7 @@ function lernaPkgFileWithoutLernaDep( }; } -const config = partial({}); +const config = partial(); describe('modules/manager/npm/post-update/lerna', () => { const globalConfig: RepoGlobalConfig = { diff --git a/lib/modules/manager/npm/post-update/pnpm.spec.ts b/lib/modules/manager/npm/post-update/pnpm.spec.ts index 8f5091329b7dfe..8b23def995ecc5 100644 --- a/lib/modules/manager/npm/post-update/pnpm.spec.ts +++ b/lib/modules/manager/npm/post-update/pnpm.spec.ts @@ -108,7 +108,7 @@ describe('modules/manager/npm/post-update/pnpm', () => { it('uses constraint version if parent json has constraints', async () => { const execSnapshots = mockExecAll(); - const configTemp = partial({}); + const configTemp = partial(); const fileContent = Fixtures.get('parent/package.json'); fs.readLocalFile .mockResolvedValueOnce(fileContent) @@ -150,7 +150,7 @@ describe('modules/manager/npm/post-update/pnpm', () => { it('uses packageManager version and puts it into constraint', async () => { const execSnapshots = mockExecAll(); - const configTemp = partial({}); + const configTemp = partial(); const fileContent = Fixtures.get('manager-field/package.json'); fs.readLocalFile .mockResolvedValueOnce(fileContent) @@ -192,7 +192,7 @@ describe('modules/manager/npm/post-update/pnpm', () => { it('uses skips pnpm v7 if lockfileVersion indicates <7', async () => { mockExecAll(); - const configTemp = partial({}); + const configTemp = partial(); fs.readLocalFile .mockResolvedValueOnce('{}') // package.json .mockResolvedValue('lockfileVersion: 5.3\n'); // pnpm-lock.yaml diff --git a/lib/modules/platform/gitea/index.spec.ts b/lib/modules/platform/gitea/index.spec.ts index 8a27641c73037d..060c7e57b111ef 100644 --- a/lib/modules/platform/gitea/index.spec.ts +++ b/lib/modules/platform/gitea/index.spec.ts @@ -1075,7 +1075,7 @@ describe('modules/platform/gitea/index', () => { }); it('should abort when response for created pull request is invalid', async () => { - helper.createPR.mockResolvedValueOnce(partial({})); + helper.createPR.mockResolvedValueOnce(partial()); await initFakeRepo(); await expect( @@ -1940,7 +1940,7 @@ describe('modules/platform/gitea/index', () => { }); it('returns null on missing content', async () => { - helper.getRepoContents.mockResolvedValueOnce(partial({})); + helper.getRepoContents.mockResolvedValueOnce(partial()); await initFakeRepo({ full_name: 'some/repo' }); expect(await gitea.getJsonFile('file.json')).toBeNull(); }); diff --git a/lib/modules/versioning/python/index.spec.ts b/lib/modules/versioning/python/index.spec.ts index 7cd3b9edfa11fb..041a12605795ec 100644 --- a/lib/modules/versioning/python/index.spec.ts +++ b/lib/modules/versioning/python/index.spec.ts @@ -97,6 +97,6 @@ describe('modules/versioning/python/index', () => { ); test('getNewValue()', () => { - expect(versioning.getNewValue(partial({}))).toBeNull(); + expect(versioning.getNewValue(partial())).toBeNull(); }); }); diff --git a/lib/workers/repository/changelog/index.spec.ts b/lib/workers/repository/changelog/index.spec.ts index ad2a87d84a8428..5ad0dd54bf60c4 100644 --- a/lib/workers/repository/changelog/index.spec.ts +++ b/lib/workers/repository/changelog/index.spec.ts @@ -17,8 +17,8 @@ describe('workers/repository/changelog/index', () => { mockedFunction(getChangeLogJSON).mockResolvedValueOnce(null); const branches = [ partial({ logJSON: null }), - partial({}), - partial({}), + partial(), + partial(), ]; await expect(embedChangelogs(branches)).toResolve(); expect(branches).toEqual([ @@ -29,7 +29,7 @@ describe('workers/repository/changelog/index', () => { }); it('needsChangelogs', () => { - expect(needsChangelogs(partial({}))).toBeFalse(); + expect(needsChangelogs(partial())).toBeFalse(); expect( needsChangelogs( partial({ diff --git a/lib/workers/repository/config-migration/branch/create.spec.ts b/lib/workers/repository/config-migration/branch/create.spec.ts index 820333110d73d8..d1e450be9d8598 100644 --- a/lib/workers/repository/config-migration/branch/create.spec.ts +++ b/lib/workers/repository/config-migration/branch/create.spec.ts @@ -29,7 +29,7 @@ describe('workers/repository/config-migration/branch/create', () => { migratedConfigData = { content: renovateConfig, filename, - indent: partial({}), + indent: partial(), }; prettierSpy.mockResolvedValueOnce(migratedConfigData.content); }); diff --git a/lib/workers/repository/config-migration/branch/rebase.spec.ts b/lib/workers/repository/config-migration/branch/rebase.spec.ts index 836ef9fda72bad..1ac78e49ad3322 100644 --- a/lib/workers/repository/config-migration/branch/rebase.spec.ts +++ b/lib/workers/repository/config-migration/branch/rebase.spec.ts @@ -43,7 +43,7 @@ describe('workers/repository/config-migration/branch/rebase', () => { const migratedConfigData: MigratedData = { content: '', filename: '', - indent: partial({}), + indent: partial(), }; beforeEach(() => { diff --git a/lib/workers/repository/config-migration/index.spec.ts b/lib/workers/repository/config-migration/index.spec.ts index f15f4bd75d5d75..3ab683886d360c 100644 --- a/lib/workers/repository/config-migration/index.spec.ts +++ b/lib/workers/repository/config-migration/index.spec.ts @@ -24,7 +24,7 @@ describe('workers/repository/config-migration/index', () => { mockedFunction(MigratedDataFactory.getAsync).mockResolvedValue({ filename, content, - indent: partial({}), + indent: partial(), }); }); diff --git a/lib/workers/repository/config-migration/pr/index.spec.ts b/lib/workers/repository/config-migration/pr/index.spec.ts index 10ca2b4c46ac5d..e0dc57d32f908c 100644 --- a/lib/workers/repository/config-migration/pr/index.spec.ts +++ b/lib/workers/repository/config-migration/pr/index.spec.ts @@ -29,7 +29,7 @@ describe('workers/repository/config-migration/pr/index', () => { const migratedData: MigratedData = { content: migratedContent, filename: configFileName, - indent: partial({}), + indent: partial(), }; let config: RenovateConfig; @@ -49,7 +49,7 @@ describe('workers/repository/config-migration/pr/index', () => { describe('ensureConfigMigrationPr()', () => { beforeEach(() => { spy.mockImplementation((input) => input); - platform.createPr.mockResolvedValueOnce(partial({})); + platform.createPr.mockResolvedValueOnce(partial()); }); let createPrBody: string; @@ -166,7 +166,7 @@ describe('workers/repository/config-migration/pr/index', () => { await ensureConfigMigrationPr(config, { content: migratedContent, filename: 'renovate.json5', - indent: partial({}), + indent: partial(), }); expect(platform.createPr).toHaveBeenCalledTimes(1); expect(platform.createPr.mock.calls[0][0].prBody).toMatchSnapshot(); diff --git a/lib/workers/repository/init/vulnerability.spec.ts b/lib/workers/repository/init/vulnerability.spec.ts index 527fa506a5c1bd..10e1df6b8b6bb8 100644 --- a/lib/workers/repository/init/vulnerability.spec.ts +++ b/lib/workers/repository/init/vulnerability.spec.ts @@ -48,7 +48,7 @@ describe('workers/repository/init/vulnerability', () => { // TODO #7154 delete config.vulnerabilityAlerts!.enabled; platform.getVulnerabilityAlerts.mockResolvedValue([ - partial({}), + partial(), { dismissReason: null, vulnerableManifestFilename: 'package-lock.json', diff --git a/lib/workers/repository/onboarding/pr/index.spec.ts b/lib/workers/repository/onboarding/pr/index.spec.ts index 4ec902ae2f662f..500a62d1e71ea0 100644 --- a/lib/workers/repository/onboarding/pr/index.spec.ts +++ b/lib/workers/repository/onboarding/pr/index.spec.ts @@ -39,7 +39,7 @@ describe('workers/repository/onboarding/pr/index', () => { packageFiles = { npm: [{ packageFile: 'package.json', deps: [] }] }; branches = []; platform.massageMarkdown = jest.fn((input) => input); - platform.createPr.mockResolvedValueOnce(partial({})); + platform.createPr.mockResolvedValueOnce(partial()); GlobalConfig.reset(); }); diff --git a/lib/workers/repository/process/write.spec.ts b/lib/workers/repository/process/write.spec.ts index af3c6bae8b390a..0f96102ee3fdcf 100644 --- a/lib/workers/repository/process/write.spec.ts +++ b/lib/workers/repository/process/write.spec.ts @@ -307,7 +307,7 @@ describe('workers/repository/process/write', () => { ], }, ]; - const repoCacheObj = partial({}); + const repoCacheObj = partial(); repoCache.getCache.mockReturnValueOnce(repoCacheObj); branchWorker.processBranch.mockResolvedValueOnce({ branchExists: true, @@ -377,7 +377,7 @@ describe('workers/repository/process/write', () => { describe('syncBranchState()', () => { it('creates minimal branch state when cache is not populated', () => { - const repoCacheObj = partial({}); + const repoCacheObj = partial(); repoCache.getCache.mockReturnValue(repoCacheObj); scm.getBranchCommit.mockResolvedValueOnce('sha'); scm.getBranchCommit.mockResolvedValueOnce('base_sha'); diff --git a/lib/workers/repository/update/branch/index.spec.ts b/lib/workers/repository/update/branch/index.spec.ts index 7fdd1cbc22acda..915f2ff92c4f28 100644 --- a/lib/workers/repository/update/branch/index.spec.ts +++ b/lib/workers/repository/update/branch/index.spec.ts @@ -557,12 +557,12 @@ describe('workers/repository/update/branch/index', () => { it('returns if branch automerged', async () => { getUpdated.getUpdatedPackageFiles.mockResolvedValueOnce( partial({ - updatedPackageFiles: [partial({})], + updatedPackageFiles: [partial()], }) ); npmPostExtract.getAdditionalFiles.mockResolvedValueOnce({ artifactErrors: [], - updatedArtifacts: [partial({})], + updatedArtifacts: [partial()], }); scm.branchExists.mockResolvedValue(true); commit.commitFilesToBranch.mockResolvedValueOnce(null); @@ -575,12 +575,12 @@ describe('workers/repository/update/branch/index', () => { it('returns if branch automerged and no checks', async () => { getUpdated.getUpdatedPackageFiles.mockResolvedValueOnce( partial({ - updatedPackageFiles: [partial({})], + updatedPackageFiles: [partial()], }) ); npmPostExtract.getAdditionalFiles.mockResolvedValueOnce({ artifactErrors: [], - updatedArtifacts: [partial({})], + updatedArtifacts: [partial()], }); scm.branchExists.mockResolvedValue(false); scm.getBranchCommit.mockResolvedValue('123test'); //TODO: not needed? @@ -596,12 +596,12 @@ describe('workers/repository/update/branch/index', () => { it('returns if branch automerged (dry-run)', async () => { getUpdated.getUpdatedPackageFiles.mockResolvedValueOnce( partial({ - updatedPackageFiles: [partial({})], + updatedPackageFiles: [partial()], }) ); npmPostExtract.getAdditionalFiles.mockResolvedValueOnce({ artifactErrors: [], - updatedArtifacts: [partial({})], + updatedArtifacts: [partial()], }); scm.branchExists.mockResolvedValue(true); commit.commitFilesToBranch.mockResolvedValueOnce(null); @@ -616,12 +616,12 @@ describe('workers/repository/update/branch/index', () => { it('returns if branch exists and prCreation set to approval', async () => { getUpdated.getUpdatedPackageFiles.mockResolvedValueOnce( partial({ - updatedPackageFiles: [partial({})], + updatedPackageFiles: [partial()], }) ); npmPostExtract.getAdditionalFiles.mockResolvedValueOnce({ artifactErrors: [], - updatedArtifacts: [partial({})], + updatedArtifacts: [partial()], }); scm.branchExists.mockResolvedValue(true); commit.commitFilesToBranch.mockResolvedValueOnce(null); @@ -642,12 +642,12 @@ describe('workers/repository/update/branch/index', () => { expect.assertions(1); getUpdated.getUpdatedPackageFiles.mockResolvedValueOnce( partial({ - updatedPackageFiles: [partial({})], + updatedPackageFiles: [partial()], }) ); npmPostExtract.getAdditionalFiles.mockResolvedValueOnce({ artifactErrors: [], - updatedArtifacts: [partial({})], + updatedArtifacts: [partial()], }); scm.branchExists.mockResolvedValue(true); commit.commitFilesToBranch.mockResolvedValueOnce(null); @@ -668,12 +668,12 @@ describe('workers/repository/update/branch/index', () => { expect.assertions(1); getUpdated.getUpdatedPackageFiles.mockResolvedValueOnce( partial({ - updatedPackageFiles: [partial({})], + updatedPackageFiles: [partial()], }) ); npmPostExtract.getAdditionalFiles.mockResolvedValueOnce({ artifactErrors: [], - updatedArtifacts: [partial({})], + updatedArtifacts: [partial()], }); scm.branchExists.mockResolvedValue(true); commit.commitFilesToBranch.mockResolvedValueOnce(null); @@ -694,12 +694,12 @@ describe('workers/repository/update/branch/index', () => { expect.assertions(1); getUpdated.getUpdatedPackageFiles.mockResolvedValueOnce( partial({ - updatedPackageFiles: [partial({})], + updatedPackageFiles: [partial()], }) ); npmPostExtract.getAdditionalFiles.mockResolvedValueOnce({ artifactErrors: [], - updatedArtifacts: [partial({})], + updatedArtifacts: [partial()], }); scm.branchExists.mockResolvedValue(true); commit.commitFilesToBranch.mockResolvedValueOnce(null); @@ -720,12 +720,12 @@ describe('workers/repository/update/branch/index', () => { expect.assertions(1); getUpdated.getUpdatedPackageFiles.mockResolvedValueOnce( partial({ - updatedPackageFiles: [partial({})], + updatedPackageFiles: [partial()], }) ); npmPostExtract.getAdditionalFiles.mockResolvedValueOnce({ artifactErrors: [], - updatedArtifacts: [partial({})], + updatedArtifacts: [partial()], }); scm.branchExists.mockResolvedValue(true); commit.commitFilesToBranch.mockResolvedValueOnce(null); @@ -746,12 +746,12 @@ describe('workers/repository/update/branch/index', () => { expect.assertions(3); getUpdated.getUpdatedPackageFiles.mockResolvedValueOnce( partial({ - updatedPackageFiles: [partial({})], + updatedPackageFiles: [partial()], }) ); npmPostExtract.getAdditionalFiles.mockResolvedValueOnce({ artifactErrors: [], - updatedArtifacts: [partial({})], + updatedArtifacts: [partial()], }); const inconfig = { ...config, @@ -777,18 +777,18 @@ describe('workers/repository/update/branch/index', () => { it('ensures PR and tries automerge', async () => { getUpdated.getUpdatedPackageFiles.mockResolvedValueOnce( partial({ - updatedPackageFiles: [partial({})], + updatedPackageFiles: [partial()], }) ); npmPostExtract.getAdditionalFiles.mockResolvedValueOnce({ artifactErrors: [], - updatedArtifacts: [partial({})], + updatedArtifacts: [partial()], }); scm.branchExists.mockResolvedValue(true); automerge.tryBranchAutomerge.mockResolvedValueOnce('failed'); prWorker.ensurePr.mockResolvedValueOnce({ type: 'with-pr', - pr: partial({}), + pr: partial(), }); prAutomerge.checkAutoMerge.mockResolvedValueOnce({ automerged: true }); commit.commitFilesToBranch.mockResolvedValueOnce(null); @@ -801,18 +801,18 @@ describe('workers/repository/update/branch/index', () => { it('ensures PR when impossible to automerge', async () => { getUpdated.getUpdatedPackageFiles.mockResolvedValueOnce( partial({ - updatedPackageFiles: [partial({})], + updatedPackageFiles: [partial()], }) ); npmPostExtract.getAdditionalFiles.mockResolvedValueOnce({ artifactErrors: [], - updatedArtifacts: [partial({})], + updatedArtifacts: [partial()], }); scm.branchExists.mockResolvedValue(true); automerge.tryBranchAutomerge.mockResolvedValueOnce('stale'); prWorker.ensurePr.mockResolvedValueOnce({ type: 'with-pr', - pr: partial({}), + pr: partial(), }); prAutomerge.checkAutoMerge.mockResolvedValueOnce({ automerged: false }); commit.commitFilesToBranch.mockResolvedValueOnce(null); @@ -828,7 +828,7 @@ describe('workers/repository/update/branch/index', () => { it('skips when automerge is off schedule', async () => { getUpdated.getUpdatedPackageFiles.mockResolvedValueOnce( - partial({}) + partial() ); npmPostExtract.getAdditionalFiles.mockResolvedValueOnce( partial({ @@ -864,18 +864,18 @@ describe('workers/repository/update/branch/index', () => { it('ensures PR and adds lock file error comment if no releaseTimestamp', async () => { getUpdated.getUpdatedPackageFiles.mockResolvedValueOnce( partial({ - updatedPackageFiles: [partial({})], + updatedPackageFiles: [partial()], }) ); npmPostExtract.getAdditionalFiles.mockResolvedValueOnce({ - artifactErrors: [partial({})], - updatedArtifacts: [partial({})], + artifactErrors: [partial()], + updatedArtifacts: [partial()], }); scm.branchExists.mockResolvedValue(true); automerge.tryBranchAutomerge.mockResolvedValueOnce('failed'); prWorker.ensurePr.mockResolvedValueOnce({ type: 'with-pr', - pr: partial({}), + pr: partial(), }); prAutomerge.checkAutoMerge.mockResolvedValueOnce({ automerged: true }); commit.commitFilesToBranch.mockResolvedValueOnce(null); @@ -888,18 +888,18 @@ describe('workers/repository/update/branch/index', () => { it('ensures PR and adds lock file error comment if old releaseTimestamp', async () => { getUpdated.getUpdatedPackageFiles.mockResolvedValueOnce( partial({ - updatedPackageFiles: [partial({})], + updatedPackageFiles: [partial()], }) ); npmPostExtract.getAdditionalFiles.mockResolvedValueOnce({ - artifactErrors: [partial({})], - updatedArtifacts: [partial({})], + artifactErrors: [partial()], + updatedArtifacts: [partial()], }); scm.branchExists.mockResolvedValue(true); automerge.tryBranchAutomerge.mockResolvedValueOnce('failed'); prWorker.ensurePr.mockResolvedValueOnce({ type: 'with-pr', - pr: partial({}), + pr: partial(), }); prAutomerge.checkAutoMerge.mockResolvedValueOnce({ automerged: true }); config.releaseTimestamp = '2018-04-26T05:15:51.877Z'; @@ -913,18 +913,18 @@ describe('workers/repository/update/branch/index', () => { it('ensures PR and adds lock file error comment if new releaseTimestamp and branch exists', async () => { getUpdated.getUpdatedPackageFiles.mockResolvedValueOnce( partial({ - updatedPackageFiles: [partial({})], + updatedPackageFiles: [partial()], }) ); npmPostExtract.getAdditionalFiles.mockResolvedValueOnce({ - artifactErrors: [partial({})], - updatedArtifacts: [partial({})], + artifactErrors: [partial()], + updatedArtifacts: [partial()], }); scm.branchExists.mockResolvedValue(true); automerge.tryBranchAutomerge.mockResolvedValueOnce('failed'); prWorker.ensurePr.mockResolvedValueOnce({ type: 'with-pr', - pr: partial({}), + pr: partial(), }); prAutomerge.checkAutoMerge.mockResolvedValueOnce({ automerged: true }); config.releaseTimestamp = new Date().toISOString(); @@ -938,18 +938,18 @@ describe('workers/repository/update/branch/index', () => { it('throws error if lock file errors and new releaseTimestamp', async () => { getUpdated.getUpdatedPackageFiles.mockResolvedValueOnce( partial({ - updatedPackageFiles: [partial({})], + updatedPackageFiles: [partial()], }) ); npmPostExtract.getAdditionalFiles.mockResolvedValueOnce({ - artifactErrors: [partial({})], - updatedArtifacts: [partial({})], + artifactErrors: [partial()], + updatedArtifacts: [partial()], }); scm.branchExists.mockResolvedValue(false); automerge.tryBranchAutomerge.mockResolvedValueOnce('failed'); prWorker.ensurePr.mockResolvedValueOnce({ type: 'with-pr', - pr: partial({}), + pr: partial(), }); prAutomerge.checkAutoMerge.mockResolvedValueOnce({ automerged: true }); config.releaseTimestamp = new Date().toISOString(); @@ -961,19 +961,19 @@ describe('workers/repository/update/branch/index', () => { it('ensures PR and adds lock file error comment recreate closed', async () => { getUpdated.getUpdatedPackageFiles.mockResolvedValueOnce( partial({ - updatedPackageFiles: [partial({})], + updatedPackageFiles: [partial()], }) ); npmPostExtract.getAdditionalFiles.mockResolvedValueOnce({ - artifactErrors: [partial({})], - updatedArtifacts: [partial({})], + artifactErrors: [partial()], + updatedArtifacts: [partial()], }); config.recreateClosed = true; scm.branchExists.mockResolvedValue(true); automerge.tryBranchAutomerge.mockResolvedValueOnce('failed'); prWorker.ensurePr.mockResolvedValueOnce({ type: 'with-pr', - pr: partial({}), + pr: partial(), }); prAutomerge.checkAutoMerge.mockResolvedValueOnce({ automerged: true }); commit.commitFilesToBranch.mockResolvedValueOnce(null); @@ -999,12 +999,12 @@ describe('workers/repository/update/branch/index', () => { it('throws and swallows branch errors', async () => { getUpdated.getUpdatedPackageFiles.mockResolvedValueOnce( partial({ - updatedPackageFiles: [partial({})], + updatedPackageFiles: [partial()], }) ); npmPostExtract.getAdditionalFiles.mockResolvedValueOnce({ - artifactErrors: [partial({})], - updatedArtifacts: [partial({})], + artifactErrors: [partial()], + updatedArtifacts: [partial()], }); scm.getBranchCommit.mockResolvedValue('123test'); //TODO:not needed? const processBranchResult = await branchWorker.processBranch(config); @@ -1020,12 +1020,12 @@ describe('workers/repository/update/branch/index', () => { it('swallows pr errors', async () => { getUpdated.getUpdatedPackageFiles.mockResolvedValueOnce( partial({ - updatedPackageFiles: [partial({})], + updatedPackageFiles: [partial()], }) ); npmPostExtract.getAdditionalFiles.mockResolvedValueOnce({ artifactErrors: [], - updatedArtifacts: [partial({})], + updatedArtifacts: [partial()], }); scm.branchExists.mockResolvedValue(true); automerge.tryBranchAutomerge.mockResolvedValueOnce('failed'); @@ -1089,13 +1089,13 @@ describe('workers/repository/update/branch/index', () => { }, }); getUpdated.getUpdatedPackageFiles.mockResolvedValueOnce({ - updatedPackageFiles: [partial({})], - updatedArtifacts: [partial({})], + updatedPackageFiles: [partial()], + updatedArtifacts: [partial()], artifactErrors: [{}], }); npmPostExtract.getAdditionalFiles.mockResolvedValueOnce({ artifactErrors: [], - updatedArtifacts: [partial({})], + updatedArtifacts: [partial()], }); scm.branchExists.mockResolvedValue(true); platform.getBranchPr.mockResolvedValueOnce(pr); @@ -1130,7 +1130,7 @@ describe('workers/repository/update/branch/index', () => { ); npmPostExtract.getAdditionalFiles.mockResolvedValueOnce({ artifactErrors: [], - updatedArtifacts: [partial({})], + updatedArtifacts: [partial()], }); scm.branchExists.mockResolvedValue(true); platform.getBranchPr.mockResolvedValueOnce( @@ -1147,7 +1147,7 @@ describe('workers/repository/update/branch/index', () => { schedule.isScheduledNow.mockReturnValueOnce(false); prWorker.ensurePr.mockResolvedValueOnce({ type: 'with-pr', - pr: partial({}), + pr: partial(), }); commit.commitFilesToBranch.mockResolvedValueOnce(null); GlobalConfig.set({ ...adminConfig, dryRun: 'full' }); @@ -1171,14 +1171,14 @@ describe('workers/repository/update/branch/index', () => { it('branch pr no schedule', async () => { getUpdated.getUpdatedPackageFiles.mockResolvedValueOnce( partial({ - updatedPackageFiles: [partial({})], + updatedPackageFiles: [partial()], artifactErrors: [], updatedArtifacts: [], }) ); npmPostExtract.getAdditionalFiles.mockResolvedValueOnce({ artifactErrors: [], - updatedArtifacts: [partial({})], + updatedArtifacts: [partial()], }); scm.branchExists.mockResolvedValue(true); platform.getBranchPr.mockResolvedValueOnce( @@ -1212,14 +1212,14 @@ describe('workers/repository/update/branch/index', () => { it('skips branch update if stopUpdatingLabel presents', async () => { getUpdated.getUpdatedPackageFiles.mockResolvedValueOnce( partial({ - updatedPackageFiles: [partial({})], + updatedPackageFiles: [partial()], artifactErrors: [], updatedArtifacts: [], }) ); npmPostExtract.getAdditionalFiles.mockResolvedValueOnce({ artifactErrors: [], - updatedArtifacts: [partial({})], + updatedArtifacts: [partial()], }); scm.branchExists.mockResolvedValue(true); platform.getBranchPr.mockResolvedValueOnce( @@ -1276,14 +1276,14 @@ describe('workers/repository/update/branch/index', () => { it('updates branch if stopUpdatingLabel presents and PR rebase/retry box checked', async () => { getUpdated.getUpdatedPackageFiles.mockResolvedValueOnce( partial({ - updatedPackageFiles: [partial({})], + updatedPackageFiles: [partial()], artifactErrors: [], updatedArtifacts: [], }) ); npmPostExtract.getAdditionalFiles.mockResolvedValueOnce({ artifactErrors: [], - updatedArtifacts: [partial({})], + updatedArtifacts: [partial()], }); scm.branchExists.mockResolvedValue(true); platform.getBranchPr.mockResolvedValueOnce( @@ -1318,14 +1318,14 @@ describe('workers/repository/update/branch/index', () => { it('updates branch if stopUpdatingLabel presents and dependency dashboard box checked', async () => { getUpdated.getUpdatedPackageFiles.mockResolvedValueOnce( partial({ - updatedPackageFiles: [partial({})], + updatedPackageFiles: [partial()], artifactErrors: [], updatedArtifacts: [], }) ); npmPostExtract.getAdditionalFiles.mockResolvedValueOnce({ artifactErrors: [], - updatedArtifacts: [partial({})], + updatedArtifacts: [partial()], }); scm.branchExists.mockResolvedValue(true); platform.getBranchPr.mockResolvedValueOnce( @@ -2020,13 +2020,13 @@ describe('workers/repository/update/branch/index', () => { it('Dependency Dashboard All Pending approval', async () => { jest.spyOn(getUpdated, 'getUpdatedPackageFiles').mockResolvedValueOnce( partial({ - updatedPackageFiles: [partial({})], + updatedPackageFiles: [partial()], artifactErrors: [{}], }) ); npmPostExtract.getAdditionalFiles.mockResolvedValueOnce({ artifactErrors: [], - updatedArtifacts: [partial({})], + updatedArtifacts: [partial()], }); scm.branchExists.mockResolvedValue(true); platform.getBranchPr.mockResolvedValueOnce( @@ -2057,13 +2057,13 @@ describe('workers/repository/update/branch/index', () => { it('Dependency Dashboard open all rate-limited', async () => { jest.spyOn(getUpdated, 'getUpdatedPackageFiles').mockResolvedValueOnce( partial({ - updatedPackageFiles: [partial({})], + updatedPackageFiles: [partial()], artifactErrors: [{}], }) ); npmPostExtract.getAdditionalFiles.mockResolvedValueOnce({ artifactErrors: [], - updatedArtifacts: [partial({})], + updatedArtifacts: [partial()], }); scm.branchExists.mockResolvedValue(true); platform.getBranchPr.mockResolvedValueOnce( @@ -2094,7 +2094,7 @@ describe('workers/repository/update/branch/index', () => { it('continues branch, skips automerge if there are artifact errors', async () => { jest.spyOn(getUpdated, 'getUpdatedPackageFiles').mockResolvedValueOnce( partial({ - updatedPackageFiles: [partial({})], + updatedPackageFiles: [partial()], artifactErrors: [{}], }) ); @@ -2124,7 +2124,7 @@ describe('workers/repository/update/branch/index', () => { scm.getBranchCommit.mockResolvedValueOnce('123test'); npmPostExtract.getAdditionalFiles.mockResolvedValueOnce({ artifactErrors: [], - updatedArtifacts: [partial({})], + updatedArtifacts: [partial()], }); platform.getBranchPr.mockResolvedValueOnce( partial({ @@ -2133,7 +2133,7 @@ describe('workers/repository/update/branch/index', () => { ); jest.spyOn(getUpdated, 'getUpdatedPackageFiles').mockResolvedValueOnce( partial({ - updatedPackageFiles: [partial({})], + updatedPackageFiles: [partial()], }) ); const inconfig = { diff --git a/lib/workers/repository/update/pr/automerge.spec.ts b/lib/workers/repository/update/pr/automerge.spec.ts index 720c06638a55d2..dfe4913afb4770 100644 --- a/lib/workers/repository/update/pr/automerge.spec.ts +++ b/lib/workers/repository/update/pr/automerge.spec.ts @@ -16,7 +16,7 @@ describe('workers/repository/update/pr/automerge', () => { config = { ...getConfig(), } as BranchConfig; - pr = partial({}); + pr = partial(); }); it('should not automerge if not configured', async () => { diff --git a/lib/workers/repository/update/pr/changelog/release-notes.spec.ts b/lib/workers/repository/update/pr/changelog/release-notes.spec.ts index 11037405065cc1..25ccfaccf02142 100644 --- a/lib/workers/repository/update/pr/changelog/release-notes.spec.ts +++ b/lib/workers/repository/update/pr/changelog/release-notes.spec.ts @@ -174,8 +174,8 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { describe('getReleaseList()', () => { it('should return empty array if no apiBaseUrl', async () => { const res = await getReleaseList( - partial({}), - partial({}) + partial(), + partial() ); expect(res).toBeEmptyArray(); }); @@ -205,7 +205,7 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { ...githubProject, repository: 'some/yet-other-repository', }, - partial({}) + partial() ); expect(res).toMatchObject([ { @@ -240,7 +240,7 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { ...gitlabProject, repository: 'some/yet-other-repository', }, - partial({}) + partial() ); expect(res).toMatchObject([ { @@ -279,7 +279,7 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { apiBaseUrl: 'https://my.custom.domain/api/v4/', baseUrl: 'https://my.custom.domain/', }, - partial({}) + partial() ); expect(res).toMatchObject([ { @@ -833,7 +833,7 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { version: '1.0.1', gitRef: '1.0.1', }), - partial({}) + partial() ); expect(res).toBeNull(); }); diff --git a/test/util.ts b/test/util.ts index df65067d0b4128..369a08f4ec1fbe 100644 --- a/test/util.ts +++ b/test/util.ts @@ -35,9 +35,10 @@ export function mockedFunction any>( * Simply wrapper to create partial mocks. * @param obj Object to cast to final type */ +export function partial(): T; export function partial(obj: Partial): T; export function partial(obj: Partial[]): T[]; -export function partial(obj: unknown): unknown { +export function partial(obj: unknown = {}): unknown { return obj; } From 422ab7098f6ab7e10ef094f633b24b163164e41d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 25 Feb 2023 11:53:15 +0000 Subject: [PATCH 013/228] chore(deps): update dependency jest-extended to v3.2.4 (#20624) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 19c57c50182442..329bdf5a1d2bfa 100644 --- a/package.json +++ b/package.json @@ -311,7 +311,7 @@ "graphql": "16.6.0", "husky": "8.0.3", "jest": "29.4.3", - "jest-extended": "3.2.3", + "jest-extended": "3.2.4", "jest-junit": "15.0.0", "jest-mock-extended": "3.0.1", "lint-staged": "13.1.2", diff --git a/yarn.lock b/yarn.lock index a6c965a61905d9..7e1bd03d9ef11d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6505,10 +6505,10 @@ jest-environment-node@^29.4.3: jest-mock "^29.4.3" jest-util "^29.4.3" -jest-extended@3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/jest-extended/-/jest-extended-3.2.3.tgz#286c19b4622e2ab828e1bb28d3b2d4a1ed64f8b9" - integrity sha512-YcdjfFv3+N2AiWq4aG6gT/r1mfLtDKnbXs0hKXNlL/hf37TKQJTlh2zNwuMUYnvwKRRMtO/X9CfZU1EmOgUREA== +jest-extended@3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/jest-extended/-/jest-extended-3.2.4.tgz#4ee93c9e495f983ceb911170613ce305f3533b94" + integrity sha512-lSEYhSmvXZG/7YXI7KO3LpiUiQ90gi5giwCJNDMMsX5a+/NZhdbQF2G4ALOBN+KcXVT3H6FPVPohAuMXooaLTQ== dependencies: jest-diff "^29.0.0" jest-get-type "^29.0.0" From acc6c59138f483cbadecbaaf5dce5fe4123ff84d Mon Sep 17 00:00:00 2001 From: RahulGautamSingh Date: Sun, 26 Feb 2023 00:26:23 +0530 Subject: [PATCH 014/228] test: replace as assertions (#20527) Co-authored-by: Michael Kriese --- lib/modules/platform/default-scm.spec.ts | 2 +- .../execute-post-upgrade-commands.spec.ts | 4 +- .../repository/update/branch/index.spec.ts | 35 +++---- .../update/pr/body/updates-table.spec.ts | 13 +-- .../update/pr/changelog/github.spec.ts | 8 +- .../update/pr/changelog/gitlab.spec.ts | 5 +- .../update/pr/changelog/index.spec.ts | 2 +- .../update/pr/changelog/release-notes.spec.ts | 50 +++++----- .../repository/update/pr/index.spec.ts | 17 +++- .../repository/updates/generate.spec.ts | 96 ++++++++++--------- 10 files changed, 123 insertions(+), 109 deletions(-) diff --git a/lib/modules/platform/default-scm.spec.ts b/lib/modules/platform/default-scm.spec.ts index 2ec02871c8d32d..023948fa3dacae 100644 --- a/lib/modules/platform/default-scm.spec.ts +++ b/lib/modules/platform/default-scm.spec.ts @@ -15,7 +15,7 @@ describe('modules/platform/default-scm', () => { it('delegate commitAndPush to util/git', async () => { git.commitFiles.mockResolvedValueOnce('sha'); - await defaultGitScm.commitAndPush(partial({})); + await defaultGitScm.commitAndPush(partial()); expect(git.commitFiles).toHaveBeenCalledTimes(1); }); diff --git a/lib/workers/repository/update/branch/execute-post-upgrade-commands.spec.ts b/lib/workers/repository/update/branch/execute-post-upgrade-commands.spec.ts index 583a2c4d62cc1e..242f1b37d2af83 100644 --- a/lib/workers/repository/update/branch/execute-post-upgrade-commands.spec.ts +++ b/lib/workers/repository/update/branch/execute-post-upgrade-commands.spec.ts @@ -10,7 +10,7 @@ jest.mock('../../../../util/git'); describe('workers/repository/update/branch/execute-post-upgrade-commands', () => { describe('postUpgradeCommandsExecutor', () => { it('handles an artifact which is a directory', async () => { - const commands: BranchUpgradeConfig[] = [ + const commands = partial([ { manager: 'some-manager', branchName: 'main', @@ -19,7 +19,7 @@ describe('workers/repository/update/branch/execute-post-upgrade-commands', () => commands: ['disallowed_command'], }, }, - ]; + ]); const config: BranchConfig = { manager: 'some-manager', updatedPackageFiles: [], diff --git a/lib/workers/repository/update/branch/index.spec.ts b/lib/workers/repository/update/branch/index.spec.ts index 915f2ff92c4f28..ff9b3fac8a1a98 100644 --- a/lib/workers/repository/update/branch/index.spec.ts +++ b/lib/workers/repository/update/branch/index.spec.ts @@ -108,7 +108,7 @@ describe('workers/repository/update/branch/index', () => { branchName: 'renovate/some-branch', errors: [], warnings: [], - upgrades: [partial({ depName: 'some-dep-name' })], + upgrades: partial([{ depName: 'some-dep-name' }]), } as BranchConfig; schedule.isScheduledNow.mockReturnValue(true); commit.commitFilesToBranch.mockResolvedValue('123test'); @@ -185,12 +185,12 @@ describe('workers/repository/update/branch/index', () => { it('skips branch if not stabilityDays not met', async () => { schedule.isScheduledNow.mockReturnValueOnce(true); config.prCreation = 'not-pending'; - (config.upgrades as Partial[]) = [ + config.upgrades = partial([ { releaseTimestamp: '2099-12-31', stabilityDays: 1, }, - ]; + ]); const res = await branchWorker.processBranch(config); expect(res).toEqual({ branchExists: false, @@ -221,11 +221,11 @@ describe('workers/repository/update/branch/index', () => { it('processes branch if minimumConfidence is met', async () => { schedule.isScheduledNow.mockReturnValueOnce(true); config.prCreation = 'not-pending'; - (config.upgrades as Partial[]) = [ + config.upgrades = partial([ { minimumConfidence: 'high', }, - ]; + ]); mergeConfidence.isActiveConfidenceLevel.mockReturnValue(true); mergeConfidence.satisfiesConfidenceLevel.mockReturnValueOnce(true); const res = await branchWorker.processBranch(config); @@ -1597,15 +1597,14 @@ describe('workers/repository/update/branch/index', () => { fileFilters: ['modified_file', 'deleted_file'], }, upgrades: [ - { - ...getConfig(), + partial({ depName: 'some-dep-name', postUpgradeTasks: { executionMode: 'update', commands: ['echo {{{versioning}}}', 'disallowed task'], fileFilters: ['modified_file', 'deleted_file'], }, - } as BranchUpgradeConfig, + }), ], } as BranchConfig; const result = await branchWorker.processBranch(inconfig); @@ -1705,9 +1704,8 @@ describe('workers/repository/update/branch/index', () => { 'modified_then_deleted_file', ], }, - upgrades: [ + upgrades: partial([ { - ...getConfig(), depName: 'some-dep-name-1', postUpgradeTasks: { executionMode: 'update', @@ -1719,9 +1717,8 @@ describe('workers/repository/update/branch/index', () => { 'modified_then_deleted_file', ], }, - } as BranchUpgradeConfig, + }, { - ...getConfig(), depName: 'some-dep-name-2', postUpgradeTasks: { executionMode: 'update', @@ -1733,8 +1730,8 @@ describe('workers/repository/update/branch/index', () => { 'modified_then_deleted_file', ], }, - } as BranchUpgradeConfig, - ], + }, + ]), }; const result = await branchWorker.processBranch(inconfig); @@ -1856,9 +1853,8 @@ describe('workers/repository/update/branch/index', () => { 'modified_then_deleted_file', ], }, - upgrades: [ + upgrades: partial([ { - ...getConfig(), depName: 'some-dep-name-1', postUpgradeTasks: { executionMode: 'branch', @@ -1870,9 +1866,8 @@ describe('workers/repository/update/branch/index', () => { 'modified_then_deleted_file', ], }, - } as BranchUpgradeConfig, + }, { - ...getConfig(), depName: 'some-dep-name-2', postUpgradeTasks: { executionMode: 'branch', @@ -1884,8 +1879,8 @@ describe('workers/repository/update/branch/index', () => { 'modified_then_deleted_file', ], }, - } as BranchUpgradeConfig, - ], + }, + ]), }; const result = await branchWorker.processBranch(inconfig); diff --git a/lib/workers/repository/update/pr/body/updates-table.spec.ts b/lib/workers/repository/update/pr/body/updates-table.spec.ts index 36f2154afbbcd8..e321e930eb5f4f 100644 --- a/lib/workers/repository/update/pr/body/updates-table.spec.ts +++ b/lib/workers/repository/update/pr/body/updates-table.spec.ts @@ -1,3 +1,4 @@ +import { partial } from '../../../../../../test/util'; import type { BranchConfig, BranchUpgradeConfig } from '../../../../types'; import { getPrUpdatesTable } from './updates-table'; @@ -15,7 +16,7 @@ describe('workers/repository/update/pr/body/updates-table', () => { }); it('checks results for getPrUpdatesTable', () => { - const upgrade0: BranchUpgradeConfig = { + const upgrade0 = partial({ manager: 'some-manager', branchName: 'some-branch', prBodyDefinitions: { @@ -30,9 +31,9 @@ describe('workers/repository/update/pr/body/updates-table', () => { 'Package file': '{{{packageFile}}}', }, updateType: 'lockFileMaintenance', - }; + }); - const upgrade1: BranchUpgradeConfig = { + const upgrade1 = partial({ manager: 'some-manager', branchName: 'some-branch', prBodyDefinitions: { @@ -57,9 +58,9 @@ describe('workers/repository/update/pr/body/updates-table', () => { newVersion: '1.7.0', displayFrom: '^1.7.0', displayTo: '1.7.0', - }; + }); - const upgrade2: BranchUpgradeConfig = { + const upgrade2 = partial({ manager: 'some-manager', branchName: 'some-branch', prBodyDefinitions: { @@ -85,7 +86,7 @@ describe('workers/repository/update/pr/body/updates-table', () => { newVersion: '6.2.3', displayFrom: '^6.2.3', displayTo: '6.2.3', - }; + }); // TODO #7154 allow or filter undefined const upgrade3 = undefined as never; const configObj: BranchConfig = { diff --git a/lib/workers/repository/update/pr/changelog/github.spec.ts b/lib/workers/repository/update/pr/changelog/github.spec.ts index 7d1e4c746c72e1..84419c7e26ff32 100644 --- a/lib/workers/repository/update/pr/changelog/github.spec.ts +++ b/lib/workers/repository/update/pr/changelog/github.spec.ts @@ -10,7 +10,7 @@ import { getChangeLogJSON } from '.'; jest.mock('../../../../../modules/datasource/npm'); -const upgrade: BranchUpgradeConfig = { +const upgrade = partial({ manager: 'some-manager', branchName: '', depName: 'renovate', @@ -31,7 +31,7 @@ const upgrade: BranchUpgradeConfig = { { version: '2.4.2', releaseTimestamp: '2017-12-24T03:20:46.238Z' }, { version: '2.5.2' }, ], -}; +}); describe('workers/repository/update/pr/changelog/github', () => { afterEach(() => { @@ -369,7 +369,7 @@ describe('workers/repository/update/pr/changelog/github', () => { ]) ); - const upgradeData: BranchUpgradeConfig = { + const upgradeData = partial({ manager: 'some-manager', branchName: '', depName: 'correctPrefix/target', @@ -382,7 +382,7 @@ describe('workers/repository/update/pr/changelog/github', () => { { version: '1.0.1', gitRef: '123456' }, { version: '0.1.1', gitRef: 'npm_1.0.0' }, ], - }; + }); expect( await getChangeLogJSON({ ...upgradeData, diff --git a/lib/workers/repository/update/pr/changelog/gitlab.spec.ts b/lib/workers/repository/update/pr/changelog/gitlab.spec.ts index 92108071fb819f..5f9828046e31e3 100644 --- a/lib/workers/repository/update/pr/changelog/gitlab.spec.ts +++ b/lib/workers/repository/update/pr/changelog/gitlab.spec.ts @@ -1,4 +1,5 @@ import * as httpMock from '../../../../../../test/http-mock'; +import { partial } from '../../../../../../test/util'; import * as semverVersioning from '../../../../../modules/versioning/semver'; import * as hostRules from '../../../../../util/host-rules'; import type { BranchUpgradeConfig } from '../../../../types'; @@ -6,7 +7,7 @@ import { getChangeLogJSON } from '.'; jest.mock('../../../../../modules/datasource/npm'); -const upgrade: BranchUpgradeConfig = { +const upgrade = partial({ manager: 'some-manager', branchName: '', endpoint: 'https://gitlab.com/api/v4/ ', @@ -26,7 +27,7 @@ const upgrade: BranchUpgradeConfig = { { version: '5.6.0', releaseTimestamp: '2020-02-13T15:37:00.000Z' }, { version: '5.6.1' }, ], -}; +}); const matchHost = 'https://gitlab.com/'; diff --git a/lib/workers/repository/update/pr/changelog/index.spec.ts b/lib/workers/repository/update/pr/changelog/index.spec.ts index c99c2f0e877a06..51748a88e5aaf0 100644 --- a/lib/workers/repository/update/pr/changelog/index.spec.ts +++ b/lib/workers/repository/update/pr/changelog/index.spec.ts @@ -14,7 +14,7 @@ const githubApiHost = 'https://api.github.com'; const githubTagsMock = jest.spyOn(githubGraphql, 'queryTags'); const githubReleasesMock = jest.spyOn(githubGraphql, 'queryReleases'); -const upgrade: BranchConfig = partial({ +const upgrade = partial({ endpoint: 'https://api.github.com/', depName: 'renovate', versioning: semverVersioning.id, diff --git a/lib/workers/repository/update/pr/changelog/release-notes.spec.ts b/lib/workers/repository/update/pr/changelog/release-notes.spec.ts index 25ccfaccf02142..9810c7dba4ad97 100644 --- a/lib/workers/repository/update/pr/changelog/release-notes.spec.ts +++ b/lib/workers/repository/update/pr/changelog/release-notes.spec.ts @@ -97,14 +97,14 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { it('returns input if invalid', async () => { const input = { a: 1 }; expect( - await addReleaseNotes(input as never, {} as BranchUpgradeConfig) + await addReleaseNotes(input as never, partial()) ).toEqual(input); - expect(await addReleaseNotes(null, {} as BranchUpgradeConfig)).toBeNull(); expect( - await addReleaseNotes({ versions: [] }, {} as BranchUpgradeConfig) - ).toStrictEqual({ - versions: [], - }); + await addReleaseNotes(null, partial()) + ).toBeNull(); + expect( + await addReleaseNotes({ versions: [] }, partial()) + ).toStrictEqual({ versions: [] }); }); it('returns ChangeLogResult', async () => { @@ -117,7 +117,7 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { versions: [{ version: '3.10.0', compare: { url: '' } }], }; expect( - await addReleaseNotes(input as never, {} as BranchUpgradeConfig) + await addReleaseNotes(input as never, partial()) ).toEqual({ a: 1, hasReleaseNotes: false, @@ -151,7 +151,9 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { }), ], } as ChangeLogResult; - expect(await addReleaseNotes(input, {} as BranchUpgradeConfig)).toEqual({ + expect( + await addReleaseNotes(input, partial()) + ).toEqual({ a: 1, hasReleaseNotes: false, project: { @@ -328,7 +330,7 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { version: '1.0.0', gitRef: '1.0.0', }), - {} as BranchUpgradeConfig + partial() ); expect(res).toBeNull(); }); @@ -363,7 +365,7 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { version: '1.0.1', gitRef: '1.0.1', }), - {} as BranchUpgradeConfig + partial() ); expect(res).toEqual({ body: 'some body [#123](https://github.com/some/other-repository/issues/123), [#124](https://github.com/some/yet-other-repository/issues/124)\n', @@ -405,7 +407,7 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { version: '1.0.1', gitRef: '1.0.1', }), - {} as BranchUpgradeConfig + partial() ); expect(res).toEqual({ body: '', @@ -447,7 +449,7 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { version: '1.0.1', gitRef: '1.0.1', }), - {} as BranchUpgradeConfig + partial() ); expect(res).toEqual({ body: 'some body\n', @@ -489,7 +491,7 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { version: '1.0.1', gitRef: '1.0.1', }), - {} as BranchUpgradeConfig + partial() ); expect(res).toEqual({ body: 'some body\n', @@ -531,7 +533,7 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { version: '1.0.1', gitRef: '1.0.1', }), - {} as BranchUpgradeConfig + partial() ); expect(res).toBeNull(); }); @@ -566,7 +568,7 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { version: '1.0.1', gitRef: '1.0.1', }), - {} as BranchUpgradeConfig + partial() ); expect(res).toEqual({ body: 'some body [#123](https://github.com/some/other-repository/issues/123), [#124](https://github.com/some/yet-other-repository/issues/124)\n', @@ -610,7 +612,7 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { version: '1.0.1', gitRef: '1.0.1', }), - {} as BranchUpgradeConfig + partial() ); expect(res).toEqual({ body: 'some body [#123](https://github.com/some/other-repository/issues/123), [#124](https://github.com/some/yet-other-repository/issues/124)\n', @@ -654,7 +656,7 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { version: '1.0.1', gitRef: '1.0.1', }), - {} as BranchUpgradeConfig + partial() ); expect(res).toEqual({ body: 'some body [#123](https://github.com/some/other-repository/issues/123), [#124](https://github.com/some/yet-other-repository/issues/124)\n', @@ -697,7 +699,7 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { version: '1.0.1', gitRef: '1.0.1', }), - {} as BranchUpgradeConfig + partial() ); expect(res).toEqual({ body: 'some body [#123](https://github.com/some/other-repository/issues/123), [#124](https://github.com/some/yet-other-repository/issues/124)\n', @@ -735,7 +737,7 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { version: '1.0.1', gitRef: '1.0.1', }), - {} as BranchUpgradeConfig + partial() ); expect(res).toEqual({ body: 'some body #123, [#124](https://gitlab.com/some/yet-other-repository/issues/124)', @@ -772,7 +774,7 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { version: '1.0.1', gitRef: '1.0.1', }), - {} as BranchUpgradeConfig + partial() ); expect(res).toEqual({ body: 'some body #123, [#124](https://gitlab.com/some/yet-other-repository/issues/124)', @@ -809,7 +811,7 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { version: '1.0.1', gitRef: '1.0.1', }), - {} as BranchUpgradeConfig + partial() ); expect(res).toEqual({ body: 'some body #123, [#124](https://gitlab.com/some/yet-other-repository/issues/124)', @@ -876,7 +878,7 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { version: '1.0.0', gitRef: '1.0.0', }), - {} as BranchUpgradeConfig + partial() ); expect(res).toEqual({ url: 'correct/url/tag.com', @@ -910,7 +912,9 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { version: '1.0.0', gitRef: '1.0.0', }), - { extractVersion: 'app-(?[0-9.]*)' } as BranchUpgradeConfig + partial({ + extractVersion: 'app-(?[0-9.]*)', + }) ); expect(res).toEqual({ url: 'correct/url/tag.com', diff --git a/lib/workers/repository/update/pr/index.spec.ts b/lib/workers/repository/update/pr/index.spec.ts index 72abd9f414a45e..425bc8d3bd6232 100644 --- a/lib/workers/repository/update/pr/index.spec.ts +++ b/lib/workers/repository/update/pr/index.spec.ts @@ -1,5 +1,12 @@ import { DateTime } from 'luxon'; -import { git, logger, mocked, platform, scm } from '../../../../../test/util'; +import { + git, + logger, + mocked, + partial, + platform, + scm, +} from '../../../../../test/util'; import { GlobalConfig } from '../../../../config/global'; import { PLATFORM_INTEGRATION_UNAUTHORIZED, @@ -620,7 +627,7 @@ describe('workers/repository/update/pr/index', () => { date: '', }; - const dummyUpgrade: BranchUpgradeConfig = { + const dummyUpgrade = partial({ branchName: sourceBranch, depType: 'foo', depName: 'bar', @@ -642,7 +649,7 @@ describe('workers/repository/update/pr/index', () => { { ...dummyRelease, version: '4.5.6' }, ], }, - }; + }); it('processes changelogs', async () => { platform.createPr.mockResolvedValueOnce(pr); @@ -695,11 +702,11 @@ describe('workers/repository/update/pr/index', () => { it('removes duplicate changelogs', async () => { platform.createPr.mockResolvedValueOnce(pr); - const upgrade: BranchUpgradeConfig = { + const upgrade = partial({ ...dummyUpgrade, sourceUrl: 'https://github.com/foo/bar', sourceDirectory: '/src', - }; + }); const res = await ensurePr({ ...config, upgrades: [upgrade, upgrade, { ...upgrade, depType: 'test' }], diff --git a/lib/workers/repository/updates/generate.spec.ts b/lib/workers/repository/updates/generate.spec.ts index d5f409246cc65d..2f436d4bf62d8a 100644 --- a/lib/workers/repository/updates/generate.spec.ts +++ b/lib/workers/repository/updates/generate.spec.ts @@ -1,5 +1,5 @@ import { codeBlock } from 'common-tags'; -import { getConfig } from '../../../../test/util'; +import { getConfig, partial } from '../../../../test/util'; import type { RenovateConfig, UpdateType } from '../../../config/types'; import { NpmDatasource } from '../../../modules/datasource/npm'; import type { BranchUpgradeConfig } from '../../types'; @@ -15,7 +15,7 @@ beforeEach(() => { describe('workers/repository/updates/generate', () => { describe('generateBranchConfig()', () => { it('does not group single upgrade', () => { - const branch: BranchUpgradeConfig[] = [ + const branch = partial([ { manager: 'some-manager', depName: 'some-dep', @@ -28,7 +28,7 @@ describe('workers/repository/updates/generate', () => { foo: 2, }, }, - ]; + ]); const res = generateBranchConfig(branch); expect(res.foo).toBe(1); expect(res.groupName).toBeUndefined(); @@ -36,14 +36,14 @@ describe('workers/repository/updates/generate', () => { }); it('handles lockFileMaintenance', () => { - const branch: BranchUpgradeConfig[] = [ + const branch = partial([ { manager: 'some-manager', branchName: 'some-branch', prTitle: 'some-title', isLockFileMaintenance: true, }, - ]; + ]); const res = generateBranchConfig(branch); expect(res).toMatchSnapshot({ branchName: 'some-branch', @@ -60,7 +60,7 @@ describe('workers/repository/updates/generate', () => { }); it('handles lockFileUpdate', () => { - const branch: BranchUpgradeConfig[] = [ + const branch = partial([ { manager: 'some-manager', branchName: 'some-branch', @@ -72,7 +72,7 @@ describe('workers/repository/updates/generate', () => { newValue: '^1.0.0', newVersion: '1.0.1', }, - ]; + ]); const res = generateBranchConfig(branch); expect(res).toMatchSnapshot({ branchName: 'some-branch', @@ -102,7 +102,7 @@ describe('workers/repository/updates/generate', () => { }); it('does not group same upgrades', () => { - const branch: BranchUpgradeConfig[] = [ + const branch = partial([ { manager: 'some-manager', depName: 'some-dep', @@ -125,14 +125,14 @@ describe('workers/repository/updates/generate', () => { foo: 2, }, }, - ]; + ]); const res = generateBranchConfig(branch); expect(res.foo).toBe(1); expect(res.groupName).toBeUndefined(); }); it('groups multiple upgrades same version', () => { - const branch: BranchUpgradeConfig[] = [ + const branch = partial([ { manager: 'some-manager', depName: 'some-dep', @@ -191,7 +191,7 @@ describe('workers/repository/updates/generate', () => { releaseTimestamp: '2017-02-06T20:01:41+00:00', automerge: false, }, - ]; + ]); const res = generateBranchConfig(branch); expect(res.foo).toBe(2); expect(res.groupName).toBeDefined(); @@ -204,7 +204,7 @@ describe('workers/repository/updates/generate', () => { }); it('groups major updates with different versions but same newValue, no recreateClosed', () => { - const branch: BranchUpgradeConfig[] = [ + const branch = partial([ { manager: 'some-manager', depName: 'some-dep', @@ -233,14 +233,14 @@ describe('workers/repository/updates/generate', () => { isMajor: true, newMajor: 5, }, - ]; + ]); const res = generateBranchConfig(branch); expect(res.groupName).toBeDefined(); expect(res.recreateClosed).toBeFalsy(); }); it('groups multiple digest updates immortally', () => { - const branch: BranchUpgradeConfig[] = [ + const branch = partial([ { manager: 'some-manager', depName: 'some-dep', @@ -263,7 +263,7 @@ describe('workers/repository/updates/generate', () => { newDigest: 'sha256:abcdef987654321', isDigest: true, }, - ]; + ]); const res = generateBranchConfig(branch); expect(res.groupName).toBeDefined(); expect(res.recreateClosed).toBeTrue(); @@ -340,7 +340,7 @@ describe('workers/repository/updates/generate', () => { }); it('groups multiple upgrades different version', () => { - const branch: BranchUpgradeConfig[] = [ + const branch = partial([ { manager: 'some-manager', depName: 'depB', @@ -379,7 +379,7 @@ describe('workers/repository/updates/generate', () => { updateType: 'minor', separateMinorPatch: true, }, - ]; + ]); const res = generateBranchConfig(branch); expect(res).toMatchObject({ foo: 2, @@ -393,7 +393,7 @@ describe('workers/repository/updates/generate', () => { }); it('groups multiple upgrades different version but same value', () => { - const branch: BranchUpgradeConfig[] = [ + const branch = partial([ { manager: 'some-manager', depName: 'depB', @@ -426,7 +426,7 @@ describe('workers/repository/updates/generate', () => { }, releaseTimestamp: '2017-02-08T20:01:41+00:00', }, - ]; + ]); const res = generateBranchConfig(branch); expect(res.foo).toBe(2); expect(res.singleVersion).toBeUndefined(); @@ -436,7 +436,7 @@ describe('workers/repository/updates/generate', () => { }); it('groups multiple upgrades different value but same version', () => { - const branch: BranchUpgradeConfig[] = [ + const branch = partial([ { manager: 'some-manager', depName: 'depB', @@ -469,7 +469,7 @@ describe('workers/repository/updates/generate', () => { }, releaseTimestamp: '2017-02-08T20:01:41+00:00', }, - ]; + ]); const res = generateBranchConfig(branch); expect(res.foo).toBe(2); expect(res.singleVersion).toBeUndefined(); @@ -479,7 +479,7 @@ describe('workers/repository/updates/generate', () => { }); it('groups multiple digest updates', () => { - const branch: BranchUpgradeConfig[] = [ + const branch = partial([ { manager: 'some-manager', depName: 'foo/bar', @@ -510,7 +510,7 @@ describe('workers/repository/updates/generate', () => { foo: 2, }, }, - ]; + ]); const res = generateBranchConfig(branch); expect(res.foo).toBe(2); expect(res.singleVersion).toBeUndefined(); @@ -536,7 +536,7 @@ describe('workers/repository/updates/generate', () => { }); it('fixes different messages', () => { - const branch: BranchUpgradeConfig[] = [ + const branch = partial([ { manager: 'some-manager', depName: 'depA', @@ -569,7 +569,7 @@ describe('workers/repository/updates/generate', () => { }, releaseTimestamp: '2017-02-08T20:01:41+00:00', }, - ]; + ]); const res = generateBranchConfig(branch); expect(res.foo).toBe(1); expect(res.groupName).toBeUndefined(); @@ -693,6 +693,7 @@ describe('workers/repository/updates/generate', () => { }); it('use prettyVersion in pr title when there is a v', () => { + // TODO #7154 incompatible types const branch: BranchUpgradeConfig[] = [ { ...defaultConfig, @@ -719,6 +720,7 @@ describe('workers/repository/updates/generate', () => { }); it('use prettyVersion in pr title there is no v', () => { + // TODO #7154 incompatible types const branch: BranchUpgradeConfig[] = [ { ...defaultConfig, @@ -745,6 +747,7 @@ describe('workers/repository/updates/generate', () => { }); it('use newMajor in pr title with v', () => { + // TODO #7154 incompatible types const branch: BranchUpgradeConfig[] = [ { ...defaultConfig, @@ -769,6 +772,7 @@ describe('workers/repository/updates/generate', () => { }); it('Default commitMessageExtra pr title', () => { + // TODO #7154 incompatible types const branch: BranchUpgradeConfig[] = [ { ...defaultConfig, @@ -828,7 +832,7 @@ describe('workers/repository/updates/generate', () => { }); it('handles @types specially', () => { - const branch: BranchUpgradeConfig[] = [ + const branch = partial([ { manager: 'some-manager', commitBodyTable: true, @@ -865,7 +869,7 @@ describe('workers/repository/updates/generate', () => { newValue: '1.0.0', group: {}, }, - ]; + ]); const res = generateBranchConfig(branch); expect(res.recreateClosed).toBeFalse(); expect(res.groupName).toBeUndefined(); @@ -893,7 +897,7 @@ describe('workers/repository/updates/generate', () => { }); it('handles @types specially (reversed)', () => { - const branch: BranchUpgradeConfig[] = [ + const branch = partial([ { manager: 'some-manager', depName: 'some-dep', @@ -926,7 +930,7 @@ describe('workers/repository/updates/generate', () => { labels: ['a'], group: {}, }, - ]; + ]); expect(generateBranchConfig(branch)).toMatchSnapshot({ upgrades: [ { @@ -1008,7 +1012,7 @@ describe('workers/repository/updates/generate', () => { }); it('combines prBodyColumns', () => { - const branch: BranchUpgradeConfig[] = [ + const branch = partial([ { manager: 'some-manager', branchName: 'some-branch', @@ -1019,13 +1023,13 @@ describe('workers/repository/updates/generate', () => { branchName: 'some-branch', prBodyColumns: ['column-c', 'column-b', 'column-a'], }, - ]; + ]); const res = generateBranchConfig(branch); expect(res.prBodyColumns).toEqual(['column-a', 'column-b', 'column-c']); }); it('sorts upgrades, without position first', () => { - const branch: BranchUpgradeConfig[] = [ + const branch = partial([ { manager: 'some-manager', depName: 'some-dep1', @@ -1058,7 +1062,7 @@ describe('workers/repository/updates/generate', () => { newValue: '0.6.0', fileReplacePosition: undefined, }, - ]; + ]); const res = generateBranchConfig(branch); expect( res.upgrades.map((upgrade) => upgrade.fileReplacePosition) @@ -1066,7 +1070,7 @@ describe('workers/repository/updates/generate', () => { }); it('passes through pendingChecks', () => { - const branch: BranchUpgradeConfig[] = [ + const branch = partial([ { manager: 'some-manager', depName: 'some-dep', @@ -1083,14 +1087,14 @@ describe('workers/repository/updates/generate', () => { prTitle: 'some-title', pendingChecks: true, }, - ]; + ]); const res = generateBranchConfig(branch); expect(res.pendingChecks).toBeTrue(); expect(res.upgrades).toHaveLength(2); }); it('filters pendingChecks', () => { - const branch: BranchUpgradeConfig[] = [ + const branch = partial([ { manager: 'some-manager', depName: 'some-dep', @@ -1106,14 +1110,14 @@ describe('workers/repository/updates/generate', () => { branchName: 'some-branch', prTitle: 'some-title', }, - ]; + ]); const res = generateBranchConfig(branch); expect(res.pendingChecks).toBeUndefined(); expect(res.upgrades).toHaveLength(1); }); it('displays pending versions', () => { - const branch: BranchUpgradeConfig[] = [ + const branch = partial([ { manager: 'some-manager', depName: 'some-dep', @@ -1137,7 +1141,7 @@ describe('workers/repository/updates/generate', () => { prTitle: 'Two pending versions', pendingVersions: ['1.1.0', '1.1.1'], }, - ]; + ]); const res = generateBranchConfig(branch); expect(res.upgrades.map((u) => u.displayPending)).toStrictEqual([ '', @@ -1147,7 +1151,7 @@ describe('workers/repository/updates/generate', () => { }); it('merge excludeCommitPaths if appears in upgrade', () => { - const branch: BranchUpgradeConfig[] = [ + const branch = partial([ { manager: 'some-manager', depName: 'some-dep1', @@ -1171,7 +1175,7 @@ describe('workers/repository/updates/generate', () => { newValue: '0.9.0', excludeCommitPaths: ['some/path', 'some/other-manager/path'], }, - ]; + ]); const res = generateBranchConfig(branch); const excludeCommitPaths = res.excludeCommitPaths ?? []; expect(excludeCommitPaths.sort()).toStrictEqual( @@ -1203,19 +1207,20 @@ describe('workers/repository/updates/generate', () => { }); it('prevents issue with duplicating "v" character', () => { - const branch: BranchUpgradeConfig[] = [ + const branch = partial([ { manager: 'some-manager', branchName: 'some-branch', commitMessage: 'update to vv1.2.0', }, - ]; + ]); const res = generateBranchConfig(branch); expect(res.prTitle).toBe('update to v1.2.0'); expect(res.commitMessage).toBe('update to v1.2.0'); }); it('apply semanticCommits and commitMessagePrefix together', () => { + // TODO #7154 incompatible types const branch: BranchUpgradeConfig[] = [ { ...defaultConfig, @@ -1236,7 +1241,7 @@ describe('workers/repository/updates/generate', () => { }); it('dedupes duplicate table rows', () => { - const branch: BranchUpgradeConfig[] = [ + const branch = partial([ { commitBodyTable: true, manager: 'some-manager', @@ -1281,7 +1286,7 @@ describe('workers/repository/updates/generate', () => { currentVersion: '5.1.1', newVersion: '5.1.2', }, - ]; + ]); const res = generateBranchConfig(branch); expect(res.commitMessage?.trim()).toBe(codeBlock` | datasource | package | from | to | @@ -1299,6 +1304,7 @@ describe('workers/repository/updates/generate', () => { }); it('using commitMessagePrefix without separator', () => { + // TODO #7154 incompatible types const branch: BranchUpgradeConfig[] = [ { ...defaultConfig, From e97cde57ddec63480bb8e69f3e0887166107e0ee Mon Sep 17 00:00:00 2001 From: Sergei Zharinov Date: Sat, 25 Feb 2023 22:33:47 +0300 Subject: [PATCH 015/228] refactor(packagist): Reorganize datasource methods (#20595) --- lib/modules/datasource/packagist/index.ts | 181 +++++++++--------- .../datasource/packagist/schema.spec.ts | 1 + lib/modules/datasource/packagist/schema.ts | 89 +++++---- lib/modules/datasource/packagist/types.ts | 9 - 4 files changed, 140 insertions(+), 140 deletions(-) delete mode 100644 lib/modules/datasource/packagist/types.ts diff --git a/lib/modules/datasource/packagist/index.ts b/lib/modules/datasource/packagist/index.ts index b82cde4b5953ce..14e52140015568 100644 --- a/lib/modules/datasource/packagist/index.ts +++ b/lib/modules/datasource/packagist/index.ts @@ -1,3 +1,4 @@ +import type { z } from 'zod'; import { logger } from '../../../logger'; import { ExternalHostError } from '../../../types/errors/external-host-error'; import { cache } from '../../../util/cache/package/decorator'; @@ -8,9 +9,14 @@ import { joinUrlParts, resolveBaseUrl } from '../../../util/url'; import * as composerVersioning from '../../versioning/composer'; import { Datasource } from '../datasource'; import type { GetReleasesConfig, ReleaseResult } from '../types'; -import * as schema from './schema'; -import { extractDepReleases } from './schema'; -import type { PackagistFile, RegistryFile } from './types'; +import { + PackagesResponse, + PackagistFile, + RegistryFile, + RegistryMeta, + extractDepReleases, + parsePackagesResponses, +} from './schema'; export class PackagistDatasource extends Datasource { static readonly id = 'packagist'; @@ -34,12 +40,23 @@ export class PackagistDatasource extends Datasource { return username && password ? { username, password } : {}; } - private async getRegistryMeta(regUrl: string): Promise { - const url = resolveBaseUrl(regUrl, 'packages.json'); + private async getJson>( + url: string, + schema: U + ): Promise> { const opts = PackagistDatasource.getHostOpts(url); const { body } = await this.http.getJson(url, opts); - const meta = schema.RegistryMeta.parse(body); - return meta; + return schema.parse(body); + } + + @cache({ + namespace: `datasource-${PackagistDatasource.id}`, + key: (regUrl: string) => `getRegistryMeta:${regUrl}`, + }) + async getRegistryMeta(regUrl: string): Promise { + const url = resolveBaseUrl(regUrl, 'packages.json'); + const result = await this.getJson(url, RegistryMeta); + return result; } private static isPrivatePackage(regUrl: string): boolean { @@ -70,62 +87,30 @@ export class PackagistDatasource extends Datasource { regFile: RegistryFile ): Promise { const url = PackagistDatasource.getPackagistFileUrl(regUrl, regFile); - const opts = PackagistDatasource.getHostOpts(regUrl); - const { body: packagistFile } = await this.http.getJson( - url, - opts - ); + const packagistFile = await this.getJson(url, PackagistFile); return packagistFile; } - @cache({ - namespace: `datasource-${PackagistDatasource.id}`, - key: (regUrl: string) => regUrl, - }) - async getAllPackages(regUrl: string): Promise { - const registryMeta = await this.getRegistryMeta(regUrl); - - const { - packages, - providersUrl, - providersLazyUrl, - files, - includesFiles, - providerPackages, - } = registryMeta; - - const includesPackages: schema.AllPackages['includesPackages'] = {}; - - const tasks: (() => Promise)[] = []; - - for (const file of files) { - tasks.push(async () => { - const res = await this.getPackagistFile(regUrl, file); - for (const [name, val] of Object.entries(res.providers)) { - providerPackages[name] = val.sha256; - } - }); - } - - for (const file of includesFiles) { - tasks.push(async () => { - const res = await this.getPackagistFile(regUrl, file); - for (const [key, val] of Object.entries(res.packages ?? {})) { - includesPackages[key] = extractDepReleases(val); - } - }); - } - - await p.all(tasks); + async fetchProviderPackages( + regUrl: string, + meta: RegistryMeta + ): Promise { + await p.map(meta.files, async (file) => { + const res = await this.getPackagistFile(regUrl, file); + Object.assign(meta.providerPackages, res.providers); + }); + } - const allPackages: schema.AllPackages = { - packages, - providersUrl, - providersLazyUrl, - providerPackages, - includesPackages, - }; - return allPackages; + async fetchIncludesPackages( + regUrl: string, + meta: RegistryMeta + ): Promise { + await p.map(meta.includesFiles, async (file) => { + const res = await this.getPackagistFile(regUrl, file); + for (const [key, val] of Object.entries(res.packages)) { + meta.includesPackages[key] = extractDepReleases(val); + } + }); } @cache({ @@ -140,7 +125,34 @@ export class PackagistDatasource extends Datasource { const results = await p.map([pkgUrl, devUrl], (url) => this.http.getJson(url).then(({ body }) => body) ); - return schema.parsePackagesResponses(name, results); + return parsePackagesResponses(name, results); + } + + public getPkgUrl( + packageName: string, + registryUrl: string, + registryMeta: RegistryMeta + ): string | null { + if ( + registryMeta.providersUrl && + packageName in registryMeta.providerPackages + ) { + let url = registryMeta.providersUrl.replace('%package%', packageName); + const hash = registryMeta.providerPackages[packageName]; + if (hash) { + url = url.replace('%hash%', hash); + } + return resolveBaseUrl(registryUrl, url); + } + + if (registryMeta.providersLazyUrl) { + return resolveBaseUrl( + registryUrl, + registryMeta.providersLazyUrl.replace('%package%', packageName) + ); + } + + return null; } public override async getReleases({ @@ -159,42 +171,27 @@ export class PackagistDatasource extends Datasource { const packagistResult = await this.packagistOrgLookup(packageName); return packagistResult; } - const allPackages = await this.getAllPackages(registryUrl); - const { - packages, - providersUrl, - providersLazyUrl, - providerPackages, - includesPackages, - } = allPackages; - if (packages?.[packageName]) { - const dep = extractDepReleases(packages[packageName]); - return dep; + + const meta = await this.getRegistryMeta(registryUrl); + + if (meta.packages[packageName]) { + const result = extractDepReleases(meta.packages[packageName]); + return result; } - if (includesPackages?.[packageName]) { - return includesPackages[packageName]; + + await this.fetchIncludesPackages(registryUrl, meta); + if (meta.includesPackages[packageName]) { + return meta.includesPackages[packageName]; } - let pkgUrl: string; - if (providersUrl && packageName in providerPackages) { - let url = providersUrl.replace('%package%', packageName); - const hash = providerPackages[packageName]; - if (hash) { - url = url.replace('%hash%', hash); - } - pkgUrl = resolveBaseUrl(registryUrl, url); - } else if (providersLazyUrl) { - pkgUrl = resolveBaseUrl( - registryUrl, - providersLazyUrl.replace('%package%', packageName) - ); - } else { + + await this.fetchProviderPackages(registryUrl, meta); + const pkgUrl = this.getPkgUrl(packageName, registryUrl, meta); + if (!pkgUrl) { return null; } - const opts = PackagistDatasource.getHostOpts(registryUrl); - // TODO: fix types (#9610) - const versions = (await this.http.getJson(pkgUrl, opts)).body - .packages[packageName]; - const dep = extractDepReleases(versions); + + const pkgRes = await this.getJson(pkgUrl, PackagesResponse); + const dep = extractDepReleases(pkgRes.packages[packageName]); logger.trace({ dep }, 'dep'); return dep; } catch (err) /* istanbul ignore next */ { diff --git a/lib/modules/datasource/packagist/schema.spec.ts b/lib/modules/datasource/packagist/schema.spec.ts index 3f3eb45ca7c448..9e82858be9f945 100644 --- a/lib/modules/datasource/packagist/schema.spec.ts +++ b/lib/modules/datasource/packagist/schema.spec.ts @@ -251,6 +251,7 @@ describe('modules/datasource/packagist/schema', () => { includesFiles: [], packages: {}, providerPackages: {}, + includesPackages: {}, providersLazyUrl: null, providersUrl: null, }); diff --git a/lib/modules/datasource/packagist/schema.ts b/lib/modules/datasource/packagist/schema.ts index 6a6ac2e227143e..32de3ca10c8360 100644 --- a/lib/modules/datasource/packagist/schema.ts +++ b/lib/modules/datasource/packagist/schema.ts @@ -155,40 +155,58 @@ export function parsePackagesResponses( return extractReleaseResult(...releaseArrays); } +export const RegistryFile = z.object({ + key: z.string(), + sha256: z.string(), +}); +export type RegistryFile = z.infer; + +export const PackagesResponse = z.object({ + packages: looseRecord(ComposerReleases), +}); +export type PackagesResponse = z.infer; + +export const PackagistFile = PackagesResponse.merge( + z.object({ + providers: looseRecord( + z.object({ + sha256: looseValue(z.string()), + }) + ).transform((x) => + Object.fromEntries( + Object.entries(x).map(([key, { sha256 }]) => [key, sha256]) + ) + ), + }) +); +export type PackagistFile = z.infer; + export const RegistryMeta = z .preprocess( (x) => (is.plainObject(x) ? x : {}), - z.object({ - ['includes']: looseRecord( - z.object({ - sha256: z.string(), - }) - ).transform((x) => - Object.entries(x).map(([name, { sha256 }]) => ({ - key: name.replace(sha256, '%hash%'), - sha256, - })) - ), - ['packages']: looseRecord(ComposerReleases), - ['provider-includes']: looseRecord( - z.object({ - sha256: z.string(), - }) - ).transform((x) => - Object.entries(x).map(([key, { sha256 }]) => ({ key, sha256 })) - ), - ['providers']: looseRecord( - z.object({ - sha256: looseValue(z.string()), - }) - ).transform((x) => - Object.fromEntries( - Object.entries(x).map(([key, { sha256 }]) => [key, sha256]) - ) - ), - ['providers-lazy-url']: looseValue(z.string()), - ['providers-url']: looseValue(z.string()), - }) + PackagistFile.merge( + z.object({ + ['includes']: looseRecord( + z.object({ + sha256: z.string(), + }) + ).transform((x) => + Object.entries(x).map(([name, { sha256 }]) => ({ + key: name.replace(sha256, '%hash%'), + sha256, + })) + ), + ['provider-includes']: looseRecord( + z.object({ + sha256: z.string(), + }) + ).transform((x) => + Object.entries(x).map(([key, { sha256 }]) => ({ key, sha256 })) + ), + ['providers-lazy-url']: looseValue(z.string()), + ['providers-url']: looseValue(z.string()), + }) + ) ) .transform( ({ @@ -205,14 +223,7 @@ export const RegistryMeta = z files, providersUrl, providersLazyUrl, + includesPackages: {} as Record, }) ); export type RegistryMeta = z.infer; - -export interface AllPackages - extends Pick< - RegistryMeta, - 'packages' | 'providersUrl' | 'providersLazyUrl' | 'providerPackages' - > { - includesPackages: Record; -} diff --git a/lib/modules/datasource/packagist/types.ts b/lib/modules/datasource/packagist/types.ts deleted file mode 100644 index 8687dd3d929eb8..00000000000000 --- a/lib/modules/datasource/packagist/types.ts +++ /dev/null @@ -1,9 +0,0 @@ -export interface RegistryFile { - key: string; - sha256: string; -} - -export interface PackagistFile { - providers: Record; - packages?: Record; -} From 36b1e4e86e6cb2141853b0bed938baea309d4d51 Mon Sep 17 00:00:00 2001 From: Sergei Zharinov Date: Sun, 26 Feb 2023 12:02:33 +0300 Subject: [PATCH 016/228] fix(github): Reconcile entire GraphQL pages (#20630) --- .../abstract-cache-strategy.ts | 1 - .../memory-cache-strategy.spec.ts | 37 +++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/lib/util/github/graphql/cache-strategies/abstract-cache-strategy.ts b/lib/util/github/graphql/cache-strategies/abstract-cache-strategy.ts index 26d75d8d54c358..3e2de9f2898e12 100644 --- a/lib/util/github/graphql/cache-strategies/abstract-cache-strategy.ts +++ b/lib/util/github/graphql/cache-strategies/abstract-cache-strategy.ts @@ -101,7 +101,6 @@ export abstract class AbstractGithubGraphqlCacheStrategy< const oldItem = cachedItems[version]; if (oldItem && this.isStabilized(oldItem)) { isPaginationDone = true; - break; } cachedItems[version] = item; diff --git a/lib/util/github/graphql/cache-strategies/memory-cache-strategy.spec.ts b/lib/util/github/graphql/cache-strategies/memory-cache-strategy.spec.ts index 1e725e36c5b4c4..a5479a547a7db6 100644 --- a/lib/util/github/graphql/cache-strategies/memory-cache-strategy.spec.ts +++ b/lib/util/github/graphql/cache-strategies/memory-cache-strategy.spec.ts @@ -127,6 +127,43 @@ describe('util/github/graphql/cache-strategies/memory-cache-strategy', () => { expect(isPaginationDone).toBe(true); }); + it('reconciles entire page', async () => { + const oldItems = { + '1': { releaseTimestamp: isoTs('2020-01-01 00:00'), version: '1' }, + '2': { releaseTimestamp: isoTs('2020-01-01 01:00'), version: '2' }, + '3': { releaseTimestamp: isoTs('2020-01-01 02:00'), version: '3' }, + }; + const cacheRecord: CacheRecord = { + items: oldItems, + createdAt: isoTs('2022-12-31 12:00'), + updatedAt: isoTs('2022-12-31 12:00'), + }; + memCache.set('github-graphql-cache:foo:bar', clone(cacheRecord)); + + const now = '2022-12-31 23:59'; + mockTime(now); + + const page = [ + { version: '1', releaseTimestamp: isoTs('2022-12-31 10:00') }, + { version: '2', releaseTimestamp: isoTs('2022-12-31 11:00') }, + { version: '3', releaseTimestamp: isoTs('2022-12-31 12:00') }, + { version: '4', releaseTimestamp: isoTs('2022-12-31 13:00') }, + ].reverse(); + + const strategy = new GithubGraphqlMemoryCacheStrategy('foo', 'bar'); + const isPaginationDone = await strategy.reconcile(page); + + expect(isPaginationDone).toBe(true); + expect(memCache.get('github-graphql-cache:foo:bar')).toMatchObject({ + items: { + '1': { releaseTimestamp: isoTs('2022-12-31 10:00') }, + '2': { releaseTimestamp: isoTs('2022-12-31 11:00') }, + '3': { releaseTimestamp: isoTs('2022-12-31 12:00') }, + '4': { releaseTimestamp: isoTs('2022-12-31 13:00') }, + }, + }); + }); + it('detects removed packages', async () => { const items = { // stabilized From dc4a7a77f56689f63ea759e84900b67798411c62 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 26 Feb 2023 21:42:19 +0000 Subject: [PATCH 017/228] chore(deps): update node.js to 5bd1534 (#20635) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .devcontainer/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index a749f1d5c4dad9..5171e580247f86 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,4 +1,4 @@ -FROM containerbase/node:18.14.2@sha256:cb68fa4baae8632f43734cd9d98a80cf0a3c6a6f7898beb4173563a1ddd98a80 +FROM containerbase/node:18.14.2@sha256:5bd153416a969e3eaccaab8c5f9c98c753fbc7d1912e7965a99acea07e0b89aa USER root From 50e67f4ce64c546a214a7bc4c8671d767688b72d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 27 Feb 2023 01:22:34 +0000 Subject: [PATCH 018/228] docs: update references to renovate/renovate to v34.152.5 (#20637) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- docs/usage/docker.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage/docker.md b/docs/usage/docker.md index a484795a4c957e..98ebc8e8167cff 100644 --- a/docs/usage/docker.md +++ b/docs/usage/docker.md @@ -388,7 +388,7 @@ To get access to the token a custom Renovate Docker image is needed that include The Dockerfile to create such an image can look like this: ```Dockerfile -FROM renovate/renovate:34.132.4 +FROM renovate/renovate:34.152.5 # Include the "Docker tip" which you can find here https://cloud.google.com/sdk/docs/install # under "Installation" for "Debian/Ubuntu" RUN ... From e7d82a49f5e7a6fa53d509d572dd13e6f018a31d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 27 Feb 2023 01:27:51 +0000 Subject: [PATCH 019/228] chore(deps): lock file maintenance (#20638) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 349 ++++++++++++++++++++++++++---------------------------- 1 file changed, 169 insertions(+), 180 deletions(-) diff --git a/yarn.lock b/yarn.lock index 7e1bd03d9ef11d..1593d79ee69160 100644 --- a/yarn.lock +++ b/yarn.lock @@ -17,7 +17,7 @@ dependencies: tunnel "^0.0.6" -"@ampproject/remapping@^2.1.0": +"@ampproject/remapping@^2.2.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== @@ -1050,9 +1050,9 @@ tslib "^2.3.1" "@aws-sdk/types@^3.222.0": - version "3.271.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.271.0.tgz#151086e6a3d2cf01fe627f150e3056bffecf76c7" - integrity sha512-w4oNKEaBul7eh2IM97c89xaH9Ti8+e+u/Rc1ZkgNtpnfOpDUU2t3ugJ91ihGH+xtASQCWJTopTDfX5CuKsQQtQ== + version "3.272.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.272.0.tgz#83670e4009c2e72f1fdf55816c55c9f8b5935e0a" + integrity sha512-MmmL6vxMGP5Bsi+4wRx4mxYlU/LX6M0noOXrDh/x5FfG7/4ZOar/nDxqDadhJtNM88cuWVHZWY59P54JzkGWmA== dependencies: tslib "^2.3.1" @@ -1278,38 +1278,39 @@ "@babel/highlight" "^7.18.6" "@babel/compat-data@^7.20.5": - version "7.20.14" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.14.tgz#4106fc8b755f3e3ee0a0a7c27dde5de1d2b2baf8" - integrity sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw== + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.21.0.tgz#c241dc454e5b5917e40d37e525e2f4530c399298" + integrity sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g== "@babel/core@^7.11.6", "@babel/core@^7.12.3": - version "7.20.12" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.12.tgz#7930db57443c6714ad216953d1356dac0eb8496d" - integrity sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg== + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.21.0.tgz#1341aefdcc14ccc7553fcc688dd8986a2daffc13" + integrity sha512-PuxUbxcW6ZYe656yL3EAhpy7qXKq0DmYsrJLpbB8XrsCP9Nm+XCg9XFMb5vIDliPD7+U/+M+QJlH17XOcB7eXA== dependencies: - "@ampproject/remapping" "^2.1.0" + "@ampproject/remapping" "^2.2.0" "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.20.7" + "@babel/generator" "^7.21.0" "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-module-transforms" "^7.20.11" - "@babel/helpers" "^7.20.7" - "@babel/parser" "^7.20.7" + "@babel/helper-module-transforms" "^7.21.0" + "@babel/helpers" "^7.21.0" + "@babel/parser" "^7.21.0" "@babel/template" "^7.20.7" - "@babel/traverse" "^7.20.12" - "@babel/types" "^7.20.7" + "@babel/traverse" "^7.21.0" + "@babel/types" "^7.21.0" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.2" semver "^6.3.0" -"@babel/generator@^7.20.7", "@babel/generator@^7.7.2": - version "7.20.14" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.14.tgz#9fa772c9f86a46c6ac9b321039400712b96f64ce" - integrity sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg== +"@babel/generator@^7.21.0", "@babel/generator@^7.21.1", "@babel/generator@^7.7.2": + version "7.21.1" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.1.tgz#951cc626057bc0af2c35cd23e9c64d384dea83dd" + integrity sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA== dependencies: - "@babel/types" "^7.20.7" + "@babel/types" "^7.21.0" "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" "@babel/helper-compilation-targets@^7.20.7": @@ -1328,13 +1329,13 @@ resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== -"@babel/helper-function-name@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" - integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== +"@babel/helper-function-name@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz#d552829b10ea9f120969304023cd0645fa00b1b4" + integrity sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg== dependencies: - "@babel/template" "^7.18.10" - "@babel/types" "^7.19.0" + "@babel/template" "^7.20.7" + "@babel/types" "^7.21.0" "@babel/helper-hoist-variables@^7.18.6": version "7.18.6" @@ -1350,10 +1351,10 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-module-transforms@^7.20.11": - version "7.20.11" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz#df4c7af713c557938c50ea3ad0117a7944b2f1b0" - integrity sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg== +"@babel/helper-module-transforms@^7.21.0": + version "7.21.2" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz#160caafa4978ac8c00ac66636cb0fa37b024e2d2" + integrity sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ== dependencies: "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-module-imports" "^7.18.6" @@ -1361,8 +1362,8 @@ "@babel/helper-split-export-declaration" "^7.18.6" "@babel/helper-validator-identifier" "^7.19.1" "@babel/template" "^7.20.7" - "@babel/traverse" "^7.20.10" - "@babel/types" "^7.20.7" + "@babel/traverse" "^7.21.2" + "@babel/types" "^7.21.2" "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.8.0": version "7.20.2" @@ -1394,18 +1395,18 @@ integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== "@babel/helper-validator-option@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" - integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz#8224c7e13ace4bafdc4004da2cf064ef42673180" + integrity sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ== -"@babel/helpers@^7.20.7": - version "7.20.13" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.13.tgz#e3cb731fb70dc5337134cadc24cbbad31cc87ad2" - integrity sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg== +"@babel/helpers@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.21.0.tgz#9dd184fb5599862037917cdc9eecb84577dc4e7e" + integrity sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA== dependencies: "@babel/template" "^7.20.7" - "@babel/traverse" "^7.20.13" - "@babel/types" "^7.20.7" + "@babel/traverse" "^7.21.0" + "@babel/types" "^7.21.0" "@babel/highlight@^7.18.6": version "7.18.6" @@ -1416,10 +1417,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.13", "@babel/parser@^7.20.7": - version "7.20.15" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.15.tgz#eec9f36d8eaf0948bb88c87a46784b5ee9fd0c89" - integrity sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.21.0", "@babel/parser@^7.21.2": + version "7.21.2" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.2.tgz#dacafadfc6d7654c3051a66d6fe55b6cb2f2a0b3" + integrity sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ== "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -1520,14 +1521,14 @@ "@babel/helper-plugin-utils" "^7.19.0" "@babel/runtime-corejs3@^7.14.9": - version "7.20.13" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.20.13.tgz#ad012857db412ab0b5ccf184b67be2cfcc2a1dcf" - integrity sha512-p39/6rmY9uvlzRiLZBIB3G9/EBr66LBMcYm7fIDeSBNdRjF2AGD3rFZucUyAgGHC2N+7DdLvVi33uTjSE44FIw== + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.21.0.tgz#6e4939d9d9789ff63e2dc58e88f13a3913a24eba" + integrity sha512-TDD4UJzos3JJtM+tHX+w2Uc+KWj7GV+VKKFdMVd2Rx8sdA19hcc3P3AHFYd5LVOw+pYuSd5lICC3gm52B6Rwxw== dependencies: core-js-pure "^3.25.1" regenerator-runtime "^0.13.11" -"@babel/template@^7.18.10", "@babel/template@^7.20.7", "@babel/template@^7.3.3": +"@babel/template@^7.20.7", "@babel/template@^7.3.3": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== @@ -1536,26 +1537,26 @@ "@babel/parser" "^7.20.7" "@babel/types" "^7.20.7" -"@babel/traverse@^7.20.10", "@babel/traverse@^7.20.12", "@babel/traverse@^7.20.13", "@babel/traverse@^7.7.2": - version "7.20.13" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.13.tgz#817c1ba13d11accca89478bd5481b2d168d07473" - integrity sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ== +"@babel/traverse@^7.21.0", "@babel/traverse@^7.21.2", "@babel/traverse@^7.7.2": + version "7.21.2" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.2.tgz#ac7e1f27658750892e815e60ae90f382a46d8e75" + integrity sha512-ts5FFU/dSUPS13tv8XiEObDu9K+iagEKME9kAbaP7r0Y9KtZJZ+NGndDvWoRAYNpeWafbpFeki3q9QoMD6gxyw== dependencies: "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.20.7" + "@babel/generator" "^7.21.1" "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.19.0" + "@babel/helper-function-name" "^7.21.0" "@babel/helper-hoist-variables" "^7.18.6" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.20.13" - "@babel/types" "^7.20.7" + "@babel/parser" "^7.21.2" + "@babel/types" "^7.21.2" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.20.2", "@babel/types@^7.20.7", "@babel/types@^7.3.0", "@babel/types@^7.3.3": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.7.tgz#54ec75e252318423fc07fb644dc6a58a64c09b7f" - integrity sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg== +"@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.20.2", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.2", "@babel/types@^7.3.0", "@babel/types@^7.3.3": + version "7.21.2" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.2.tgz#92246f6e00f91755893c2876ad653db70c8310d1" + integrity sha512-3wRZSs7jiFaB8AjxiiD+VqN5DTG2iRvJGQ+qYFrs/654lg6kGTQWIOFjlBo5RaXuAZjBmP3+OQH4dmhqiiyYxw== dependencies: "@babel/helper-string-parser" "^7.19.4" "@babel/helper-validator-identifier" "^7.19.1" @@ -1798,13 +1799,6 @@ strip-ansi "^6.0.0" v8-to-istanbul "^9.0.1" -"@jest/schemas@^29.4.2": - version "29.4.2" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.2.tgz#cf7cfe97c5649f518452b176c47ed07486270fc1" - integrity sha512-ZrGzGfh31NtdVH8tn0mgJw4khQuNHiKqdzJAFbCaERbyCP9tHlxWuL/mnMu8P7e/+k4puWjI1NOzi/sFsjce/g== - dependencies: - "@sinclair/typebox" "^0.25.16" - "@jest/schemas@^29.4.3": version "29.4.3" resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.3.tgz#39cf1b8469afc40b6f5a2baaa146e332c4151788" @@ -1862,18 +1856,6 @@ slash "^3.0.0" write-file-atomic "^4.0.2" -"@jest/types@^29.4.2": - version "29.4.2" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.4.2.tgz#8f724a414b1246b2bfd56ca5225d9e1f39540d82" - integrity sha512-CKlngyGP0fwlgC1BRUtPZSiWLBhyS9dKwKmyGxk8Z6M82LBEGB2aLQSg+U1MyLsU+M7UjnlLllBM2BLWKVm/Uw== - dependencies: - "@jest/schemas" "^29.4.2" - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^17.0.8" - chalk "^4.0.0" - "@jest/types@^29.4.3": version "29.4.3" resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.4.3.tgz#9069145f4ef09adf10cec1b2901b2d390031431f" @@ -1926,7 +1908,7 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.9": +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": version "0.3.17" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== @@ -2661,9 +2643,9 @@ read-pkg-up "^7.0.0" "@sinclair/typebox@^0.25.16": - version "0.25.21" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.21.tgz#763b05a4b472c93a8db29b2c3e359d55b29ce272" - integrity sha512-gFukHN4t8K4+wVC+ECqeqwzBDeFeTzBXroBTqE6vcWrQGbEUpHO7LYdG0f4xnvYq4VOEwITSlHlp0JBAIFMS/g== + version "0.25.24" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.24.tgz#8c7688559979f7079aacaf31aa881c3aa410b718" + integrity sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ== "@sindresorhus/is@4.6.0", "@sindresorhus/is@^4.0.0": version "4.6.0" @@ -2937,9 +2919,9 @@ integrity sha512-B/SvVZMrLRUI9mOoguNNz58gV8A5PDtcGIaUe5PYmzAUTsIJ+ZAn/ujwBIuGIU3mRHY5SfV9dyWfnhOWtOVh6A== "@types/glob@*": - version "8.0.1" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-8.0.1.tgz#6e3041640148b7764adf21ce5c7138ad454725b0" - integrity sha512-8bVUjXZvJacUFkJXHdyZ9iH1Eaj5V7I8c4NdH5sQJsdXkqT4CA5Dhb4yb4VE/3asyx4L9ayZr1NIhTsWHczmMw== + version "8.1.0" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-8.1.0.tgz#b63e70155391b0584dce44e7ea25190bbc38f2fc" + integrity sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w== dependencies: "@types/minimatch" "^5.1.2" "@types/node" "*" @@ -3099,9 +3081,9 @@ "@types/node" "*" "@types/node@*": - version "18.13.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.13.0.tgz#0400d1e6ce87e9d3032c19eb6c58205b0d3f7850" - integrity sha512-gC3TazRzGoOnoKAhUx+Q0t8S9Tzs74z7m0ipwGpSqQrleP14hKxP4/JUeEQcD3W1/aIpnWl8pHowI7WokuZpXg== + version "18.14.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.14.2.tgz#c076ed1d7b6095078ad3cf21dfeea951842778b1" + integrity sha512-1uEQxww3DaghA0RxqHx0O0ppVlo43pJhepY51OxuQIKHpjbnYLA7vcdwioNPzIqmC2u3I/dmylcqjlh0e7AyUA== "@types/node@16.18.12": version "16.18.12" @@ -3251,11 +3233,11 @@ tsutils "^3.21.0" "@typescript-eslint/experimental-utils@^5.3.0": - version "5.52.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.52.0.tgz#cc79b91ea62f43bb5e9bec2d94a7df513220e9df" - integrity sha512-kd8CRr04mNE3hw4et6+0T0NI5vli2H6dJCGzjX1r12s/FXUehLVadmvo2Nl3DN80YqAh1cVC6zYZAkpmGiVJ5g== + version "5.53.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.53.0.tgz#e249e3a47ace290ea3d83a5a08c8d90cd7fe2a53" + integrity sha512-4SklZEwRn0jqkhtW+pPZpbKFXprwGneBndRM0TGzJu/LWdb9QV2hBgFIVU9AREo02BzqFvyG/ypd+xAW5YGhXw== dependencies: - "@typescript-eslint/utils" "5.52.0" + "@typescript-eslint/utils" "5.53.0" "@typescript-eslint/parser@5.52.0": version "5.52.0" @@ -3275,6 +3257,14 @@ "@typescript-eslint/types" "5.52.0" "@typescript-eslint/visitor-keys" "5.52.0" +"@typescript-eslint/scope-manager@5.53.0": + version "5.53.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.53.0.tgz#42b54f280e33c82939275a42649701024f3fafef" + integrity sha512-Opy3dqNsp/9kBBeCPhkCNR7fmdSQqA+47r21hr9a14Bx0xnkElEQmhoHga+VoaoQ6uDHjDKmQPIYcUcKJifS7w== + dependencies: + "@typescript-eslint/types" "5.53.0" + "@typescript-eslint/visitor-keys" "5.53.0" + "@typescript-eslint/type-utils@5.52.0": version "5.52.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.52.0.tgz#9fd28cd02e6f21f5109e35496df41893f33167aa" @@ -3290,6 +3280,11 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.52.0.tgz#19e9abc6afb5bd37a1a9bea877a1a836c0b3241b" integrity sha512-oV7XU4CHYfBhk78fS7tkum+/Dpgsfi91IIDy7fjCyq2k6KB63M6gMC0YIvy+iABzmXThCRI6xpCEyVObBdWSDQ== +"@typescript-eslint/types@5.53.0": + version "5.53.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.53.0.tgz#f79eca62b97e518ee124086a21a24f3be267026f" + integrity sha512-5kcDL9ZUIP756K6+QOAfPkigJmCPHcLN7Zjdz76lQWWDdzfOhZDTj1irs6gPBKiXx5/6O3L0+AvupAut3z7D2A== + "@typescript-eslint/typescript-estree@5.52.0": version "5.52.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.52.0.tgz#6408cb3c2ccc01c03c278cb201cf07e73347dfca" @@ -3303,7 +3298,20 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/utils@5.52.0", "@typescript-eslint/utils@^5.10.0": +"@typescript-eslint/typescript-estree@5.53.0": + version "5.53.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.53.0.tgz#bc651dc28cf18ab248ecd18a4c886c744aebd690" + integrity sha512-eKmipH7QyScpHSkhbptBBYh9v8FxtngLquq292YTEQ1pxVs39yFBlLC1xeIZcPPz1RWGqb7YgERJRGkjw8ZV7w== + dependencies: + "@typescript-eslint/types" "5.53.0" + "@typescript-eslint/visitor-keys" "5.53.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/utils@5.52.0": version "5.52.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.52.0.tgz#b260bb5a8f6b00a0ed51db66bdba4ed5e4845a72" integrity sha512-As3lChhrbwWQLNk2HC8Ree96hldKIqk98EYvypd3It8Q1f8d5zWyIoaZEp2va5667M4ZyE7X8UUR+azXrFl+NA== @@ -3317,6 +3325,20 @@ eslint-utils "^3.0.0" semver "^7.3.7" +"@typescript-eslint/utils@5.53.0", "@typescript-eslint/utils@^5.10.0": + version "5.53.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.53.0.tgz#e55eaad9d6fffa120575ffaa530c7e802f13bce8" + integrity sha512-VUOOtPv27UNWLxFwQK/8+7kvxVC+hPHNsJjzlJyotlaHjLSIgOCKj9I0DBUjwOOA64qjBwx5afAPjksqOxMO0g== + dependencies: + "@types/json-schema" "^7.0.9" + "@types/semver" "^7.3.12" + "@typescript-eslint/scope-manager" "5.53.0" + "@typescript-eslint/types" "5.53.0" + "@typescript-eslint/typescript-estree" "5.53.0" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" + semver "^7.3.7" + "@typescript-eslint/visitor-keys@5.52.0": version "5.52.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.52.0.tgz#e38c971259f44f80cfe49d97dbffa38e3e75030f" @@ -3325,6 +3347,14 @@ "@typescript-eslint/types" "5.52.0" eslint-visitor-keys "^3.3.0" +"@typescript-eslint/visitor-keys@5.53.0": + version "5.53.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.53.0.tgz#8a5126623937cdd909c30d8fa72f79fa56cc1a9f" + integrity sha512-JqNLnX3leaHFZEN0gCh81sIvgrp/2GOACZNgO4+Tkf64u51kTpAyWFOY8XHx8XuXr3N2C9zgPPHtcpMg6z1g0w== + dependencies: + "@typescript-eslint/types" "5.53.0" + eslint-visitor-keys "^3.3.0" + "@yarnpkg/core@3.4.0": version "3.4.0" resolved "https://registry.yarnpkg.com/@yarnpkg/core/-/core-3.4.0.tgz#1684dfcbd4e68ff28a11a25154d415f7de2c8224" @@ -3991,9 +4021,9 @@ camelcase@^6.2.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001449: - version "1.0.30001452" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001452.tgz#dff7b8bb834b3a91808f0a9ff0453abb1fbba02a" - integrity sha512-Lkp0vFjMkBB3GTpLR8zk4NwW5EdRdnitwYJHDOOKIU85x4ckYCPQ+9WlVvSVClHxVReefkUMtWZH2l9KGlD51w== + version "1.0.30001458" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001458.tgz#871e35866b4654a7d25eccca86864f411825540c" + integrity sha512-lQ1VlUUq5q9ro9X+5gOEyH7i3vm+AYVT1WDCVB69XOZ17KZRhnZ9J0Sqz7wTHQaLBJccNCHq8/Ww5LlOIZbB0w== cardinal@^2.1.1: version "2.1.1" @@ -4357,9 +4387,9 @@ convert-source-map@^2.0.0: integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== core-js-pure@^3.25.1: - version "3.28.0" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.28.0.tgz#4ef2888475b6c856ef6f5aeef8b4f618b76ad048" - integrity sha512-DSOVleA9/v3LNj/vFxAPfUHttKTzrB2RXhAPvR5TPXn4vrra3Z2ssytvRyt8eruJwAfwAiFADEbrjcRdcvPLQQ== + version "3.29.0" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.29.0.tgz#0e1ac889214398641ea4bb1c6cf25ff0959ec1d2" + integrity sha512-v94gUjN5UTe1n0yN/opTihJ8QBWD2O8i19RfTZR7foONPWArnjB96QA/wk5ozu1mm6ja3udQCzOzwQXTxi3xOQ== core-util-is@~1.0.0: version "1.0.3" @@ -4367,9 +4397,9 @@ core-util-is@~1.0.0: integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== cosmiconfig@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.0.0.tgz#e9feae014eab580f858f8a0288f38997a7bebe97" - integrity sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ== + version "8.1.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.1.0.tgz#947e174c796483ccf0a48476c24e4fefb7e1aea8" + integrity sha512-0tLZ9URlPGU7JsKq0DQOQ3FoRsYX8xDZ7xMiATQfaiGMz7EHowNkbU9u1coAOmnh9p/1ySpm0RB3JNWRXM5GCg== dependencies: import-fresh "^3.2.1" js-yaml "^4.1.0" @@ -4597,11 +4627,6 @@ dezalgo@^1.0.0: asap "^2.0.0" wrappy "1" -diff-sequences@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.4.2.tgz#711fe6bd8a5869fe2539cee4a5152425ff671fda" - integrity sha512-R6P0Y6PrsH3n4hUXxL3nns0rbRk6Q33js3ygJBeEpbzLzgcNuJ61+u0RXasFpTKISw99TxUzFnumSnRLsjhLaw== - diff-sequences@^29.4.3: version "29.4.3" resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.4.3.tgz#9314bc1fabe09267ffeca9cbafc457d8499a13f2" @@ -4705,9 +4730,9 @@ editorconfig@1.0.2: semver "^7.3.8" electron-to-chromium@^1.4.284: - version "1.4.295" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.295.tgz#911d5df67542bf7554336142eb302c5ec90bba66" - integrity sha512-lEO94zqf1bDA3aepxwnWoHUjA8sZ+2owgcSZjYQy0+uOSEclJX0VieZC+r+wLpSxUHRd6gG32znTWmr+5iGzFw== + version "1.4.311" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.311.tgz#953bc9a4767f5ce8ec125f9a1ad8e00e8f67e479" + integrity sha512-RoDlZufvrtr2Nx3Yx5MB8jX3aHIxm8nRWPJm3yVvyHmyKaRvn90RjzB6hNnt0AkhS3IInJdyRfQb4mWhPvUjVw== email-addresses@5.0.0: version "5.0.0" @@ -5102,9 +5127,9 @@ esprima@^4.0.0, esprima@~4.0.0: integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== esquery@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" - integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== + version "1.4.2" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.2.tgz#c6d3fee05dd665808e2ad870631f221f5617b1d1" + integrity sha512-JVSoLdTlTDkmjFmab7H/9SL9qGSyjElT3myyKp7krqjVFQCDLmj1QFaCLRFBszBKI0XVZaiiXvuPIX3ZwHe1Ng== dependencies: estraverse "^5.1.0" @@ -6455,17 +6480,7 @@ jest-config@^29.4.3: slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@^29.0.0, jest-diff@^29.4.1: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.4.2.tgz#b88502d5dc02d97f6512d73c37da8b36f49b4871" - integrity sha512-EK8DSajVtnjx9sa1BkjZq3mqChm2Cd8rIzdXkQMA8e0wuXq53ypz6s5o5V8HRZkoEt2ywJ3eeNWFKWeYr8HK4g== - dependencies: - chalk "^4.0.0" - diff-sequences "^29.4.2" - jest-get-type "^29.4.2" - pretty-format "^29.4.2" - -jest-diff@^29.4.3: +jest-diff@^29.0.0, jest-diff@^29.4.1, jest-diff@^29.4.3: version "29.4.3" resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.4.3.tgz#42f4eb34d0bf8c0fb08b0501069b87e8e84df347" integrity sha512-YB+ocenx7FZ3T5O9lMVMeLYV4265socJKtkwgk/6YUz/VsEzYDkiMuMhWzZmxm3wDRQvayJu/PjkjjSkjoHsCA== @@ -6513,12 +6528,7 @@ jest-extended@3.2.4: jest-diff "^29.0.0" jest-get-type "^29.0.0" -jest-get-type@^29.0.0, jest-get-type@^29.2.0, jest-get-type@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.4.2.tgz#7cb63f154bca8d8f57364d01614477d466fa43fe" - integrity sha512-vERN30V5i2N6lqlFu4ljdTqQAgrkTFMC9xaIIfOPYBw04pufjXRty5RuXBiB1d72tGbURa/UgoiHB90ruOSivg== - -jest-get-type@^29.4.3: +jest-get-type@^29.0.0, jest-get-type@^29.2.0, jest-get-type@^29.4.3: version "29.4.3" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.4.3.tgz#1ab7a5207c995161100b5187159ca82dd48b3dd5" integrity sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg== @@ -6729,19 +6739,7 @@ jest-snapshot@^29.4.3: pretty-format "^29.4.3" semver "^7.3.5" -jest-util@^29.0.0: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.4.2.tgz#3db8580b295df453a97de4a1b42dd2578dabd2c2" - integrity sha512-wKnm6XpJgzMUSRFB7YF48CuwdzuDIHenVuoIb1PLuJ6F+uErZsuDkU+EiExkChf6473XcawBrSfDSnXl+/YG4g== - dependencies: - "@jest/types" "^29.4.2" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - -jest-util@^29.4.3: +jest-util@^29.0.0, jest-util@^29.4.3: version "29.4.3" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.4.3.tgz#851a148e23fc2b633c55f6dad2e45d7f4579f496" integrity sha512-ToSGORAz4SSSoqxDSylWX8JzkOQR7zoBtNRsA7e+1WUX5F8jrOwaNpuh1YfJHJKDHXLHmObv5eOjejUd+/Ws+Q== @@ -6892,7 +6890,7 @@ json5@2.2.3, json5@^2.2.1, json5@^2.2.2, json5@^2.2.3: resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== -json5@^1.0.1: +json5@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== @@ -7269,9 +7267,9 @@ lru-cache@^6.0.0: yallist "^4.0.0" lru-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1: - version "7.14.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.14.1.tgz#8da8d2f5f59827edb388e63e459ac23d6d408fea" - integrity sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA== + version "7.17.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.17.0.tgz#00c7ba5919e5ea7c69ff94ddabbf32cb09ab805c" + integrity sha512-zSxlVVwOabhVyTi6E8gYv2cr6bXK+8ifYz5/uyJb9feXX6NACVDwY4p5Ut3WC3Ivo/QhpARHU3iujx2xGAYHbQ== luxon@3.2.1, luxon@^3.2.1: version "3.2.1" @@ -7639,9 +7637,9 @@ minipass@^3.0.0, minipass@^3.1.1, minipass@^3.1.6: yallist "^4.0.0" minipass@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.0.3.tgz#00bfbaf1e16e35e804f4aa31a7c1f6b8d9f0ee72" - integrity sha512-OW2r4sQ0sI+z5ckEt5c1Tri4xTgZwYDxpE54eqWlQloQRoWtXjqt9udJ5Z4dSv7wK+nfFI7FRXyCpBSft+gpFw== + version "4.2.4" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.2.4.tgz#7d0d97434b6a19f59c5c3221698b48bbf3b2cd06" + integrity sha512-lwycX3cBMTvcejsHITUgYj6Gy6A7Nh4Q6h9NP4sTHY1ccJlC7yKzDmiShEHsJ16Jf1nKGDEaiHxiltsJEvk0nQ== minizlib@^2.1.1, minizlib@^2.1.2: version "2.1.2" @@ -8172,9 +8170,9 @@ onetime@^6.0.0: mimic-fn "^4.0.0" open@^8.4.0: - version "8.4.1" - resolved "https://registry.yarnpkg.com/open/-/open-8.4.1.tgz#2ab3754c07f5d1f99a7a8d6a82737c95e3101cff" - integrity sha512-/4b7qZNhv6Uhd7jjnREh1NjnPxlTq+XNWPG88Ydkj5AILcA5m3ajvcg57pB24EQjKv0dK62XnDqk9c/hkIG5Kg== + version "8.4.2" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" + integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== dependencies: define-lazy-prop "^2.0.0" is-docker "^2.1.1" @@ -8580,16 +8578,7 @@ pretty-bytes@^5.1.0: resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== -pretty-format@^29.4.1, pretty-format@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.4.2.tgz#64bf5ccc0d718c03027d94ac957bdd32b3fb2401" - integrity sha512-qKlHR8yFVCbcEWba0H0TOC8dnLlO4vPlyEjRPw31FZ2Rupy9nLa8ZLbYny8gWEl8CkEhJqAE6IzdNELTBVcBEg== - dependencies: - "@jest/schemas" "^29.4.2" - ansi-styles "^5.0.0" - react-is "^18.0.0" - -pretty-format@^29.4.3: +pretty-format@^29.4.1, pretty-format@^29.4.3: version "29.4.3" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.4.3.tgz#25500ada21a53c9e8423205cf0337056b201244c" integrity sha512-cvpcHTc42lcsvOOAzd3XuNWTcvk1Jmnzqeu+WsOuiPmxUJTnkbAcFNsRKvEpBEUFVUgy/GTZLulZDcDEi+CIlA== @@ -8838,18 +8827,18 @@ read@1, read@^1.0.7, read@~1.0.7: mute-stream "~0.0.4" readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + version "3.6.1" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.1.tgz#f9f9b5f536920253b3d26e7660e7da4ccff9bb62" + integrity sha512-+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ== dependencies: inherits "^2.0.3" string_decoder "^1.1.1" util-deprecate "^1.0.1" readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@~2.3.6: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + version "2.3.8" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== dependencies: core-util-is "~1.0.0" inherits "~2.0.3" @@ -9911,12 +9900,12 @@ ts-node@10.9.1: yn "3.1.1" tsconfig-paths@^3.14.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a" - integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ== + version "3.14.2" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" + integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== dependencies: "@types/json5" "^0.0.29" - json5 "^1.0.1" + json5 "^1.0.2" minimist "^1.2.6" strip-bom "^3.0.0" @@ -10454,9 +10443,9 @@ yargs-parser@^21.0.1, yargs-parser@^21.1.1: integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== yargs@^17.3.1, yargs@^17.5.1: - version "17.6.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.6.2.tgz#2e23f2944e976339a1ee00f18c77fedee8332541" - integrity sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw== + version "17.7.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.1.tgz#34a77645201d1a8fc5213ace787c220eabbd0967" + integrity sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw== dependencies: cliui "^8.0.1" escalade "^3.1.1" From ad4523468e8b9468e17c6379caa430897c155008 Mon Sep 17 00:00:00 2001 From: Johannes Feichtner <343448+Churro@users.noreply.github.com> Date: Mon, 27 Feb 2023 07:05:46 +0100 Subject: [PATCH 020/228] refactor(manager/gradle): reduce code redundancy when parsing maps (#20636) --- .../manager/gradle/parser/assignments.ts | 112 +++++++----------- 1 file changed, 45 insertions(+), 67 deletions(-) diff --git a/lib/modules/manager/gradle/parser/assignments.ts b/lib/modules/manager/gradle/parser/assignments.ts index b820145d49dea7..e8af871ffa3674 100644 --- a/lib/modules/manager/gradle/parser/assignments.ts +++ b/lib/modules/manager/gradle/parser/assignments.ts @@ -1,4 +1,4 @@ -import { query as q } from 'good-enough-parser'; +import { parser, query as q } from 'good-enough-parser'; import { regEx } from '../../../../util/regex'; import type { Ctx } from '../types'; import { @@ -81,6 +81,27 @@ const qGroovySingleMapOfVarAssignment = q return ctx; }); +const qGroovyMapOfExpr = ( + search: q.QueryBuilder +): q.QueryBuilder => + q.alt( + q + .sym(storeVarToken) + .op(':') + .tree({ + type: 'wrapped-tree', + maxDepth: 1, + startsWith: '[', + endsWith: ']', + search, + postHandler: (ctx: Ctx) => { + ctx.varTokens.pop(); + return ctx; + }, + }), + qGroovySingleMapOfVarAssignment + ); + // versions = [ android: [ buildTools: '30.0.3' ], kotlin: '1.4.30' ] const qGroovyMultiVarAssignment = qVariableAssignmentIdentifier .alt(q.op('='), q.op('+=')) @@ -89,39 +110,7 @@ const qGroovyMultiVarAssignment = qVariableAssignmentIdentifier maxDepth: 1, startsWith: '[', endsWith: ']', - search: q.alt( - q - .sym(storeVarToken) - .op(':') - .tree({ - type: 'wrapped-tree', - maxDepth: 1, - startsWith: '[', - endsWith: ']', - search: q.alt( - q - .sym(storeVarToken) - .op(':') - .tree({ - type: 'wrapped-tree', - maxDepth: 1, - startsWith: '[', - endsWith: ']', - search: qGroovySingleMapOfVarAssignment, - postHandler: (ctx) => { - ctx.varTokens.pop(); - return ctx; - }, - }), - qGroovySingleMapOfVarAssignment - ), - postHandler: (ctx) => { - ctx.varTokens.pop(); - return ctx; - }, - }), - qGroovySingleMapOfVarAssignment - ), + search: qGroovyMapOfExpr(qGroovyMapOfExpr(qGroovySingleMapOfVarAssignment)), }) .handler(cleanupTempVars); @@ -143,6 +132,27 @@ const qKotlinSingleMapOfVarAssignment = qStringValue return ctx; }); +const qKotlinMapOfExpr = ( + search: q.QueryBuilder +): q.QueryBuilder => + q.alt( + qStringValue + .sym('to') + .sym('mapOf') + .tree({ + type: 'wrapped-tree', + maxDepth: 1, + startsWith: '(', + endsWith: ')', + search, + postHandler: (ctx: Ctx) => { + ctx.varTokens.pop(); + return ctx; + }, + }), + qKotlinSingleMapOfVarAssignment + ); + // val versions = mapOf("foo1" to "bar1", "foo2" to "bar2", "foo3" to "bar3") const qKotlinMultiMapOfVarAssignment = qVariableAssignmentIdentifier .op('=') @@ -152,39 +162,7 @@ const qKotlinMultiMapOfVarAssignment = qVariableAssignmentIdentifier maxDepth: 1, startsWith: '(', endsWith: ')', - search: q.alt( - qStringValue - .sym('to') - .sym('mapOf') - .tree({ - type: 'wrapped-tree', - maxDepth: 1, - startsWith: '(', - endsWith: ')', - search: q.alt( - qStringValue - .sym('to') - .sym('mapOf') - .tree({ - type: 'wrapped-tree', - maxDepth: 1, - startsWith: '(', - endsWith: ')', - search: qKotlinSingleMapOfVarAssignment, - postHandler: (ctx: Ctx) => { - ctx.varTokens.pop(); - return ctx; - }, - }), - qKotlinSingleMapOfVarAssignment - ), - postHandler: (ctx: Ctx) => { - ctx.varTokens.pop(); - return ctx; - }, - }), - qKotlinSingleMapOfVarAssignment - ), + search: qKotlinMapOfExpr(qKotlinMapOfExpr(qKotlinSingleMapOfVarAssignment)), }) .handler(cleanupTempVars); From a8ec421a7d1bc456e781f1b625e1c51b66395224 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20Jourdan-Weil?= Date: Mon, 27 Feb 2023 07:06:14 +0100 Subject: [PATCH 021/228] feat(manager/sbt): Extract sbt version from build.properties (#20587) Co-authored-by: Michael Kriese --- lib/modules/manager/sbt/extract.spec.ts | 59 +++++++++++++++++++++++++ lib/modules/manager/sbt/extract.ts | 36 ++++++++++++++- lib/modules/manager/sbt/index.ts | 8 +++- 3 files changed, 100 insertions(+), 3 deletions(-) diff --git a/lib/modules/manager/sbt/extract.spec.ts b/lib/modules/manager/sbt/extract.spec.ts index c40d21fb74f01e..24bce088c6bd82 100644 --- a/lib/modules/manager/sbt/extract.spec.ts +++ b/lib/modules/manager/sbt/extract.spec.ts @@ -1,3 +1,4 @@ +import { codeBlock } from 'common-tags'; import { Fixtures } from '../../../../test/fixtures'; import { extractPackageFile as extract } from '.'; @@ -378,5 +379,63 @@ describe('modules/manager/sbt/extract', () => { packageFileVersion: undefined, }); }); + + it('extract sbt version', () => { + expect( + extract( + codeBlock` + sbt.version=1.6.0 + `, + 'project/build.properties' + ) + ).toMatchObject({ + deps: [ + { + datasource: 'github-releases', + packageName: 'sbt/sbt', + depName: 'sbt/sbt', + currentValue: '1.6.0', + replaceString: 'sbt.version=1.6.0', + versioning: 'semver', + extractVersion: '^v(?\\S+)', + }, + ], + }); + }); + + it('extract sbt version if the file contains other properties', () => { + expect( + extract( + codeBlock` + sbt.version=1.6.0 + another.conf=1.4.0 + `, + 'project/build.properties' + ) + ).toMatchObject({ + deps: [ + { + datasource: 'github-releases', + packageName: 'sbt/sbt', + depName: 'sbt/sbt', + currentValue: '1.6.0', + replaceString: 'sbt.version=1.6.0', + versioning: 'semver', + extractVersion: '^v(?\\S+)', + }, + ], + }); + }); + + it('ignores build.properties file if does not contain sbt version', () => { + expect( + extract( + codeBlock` + another.conf=1.4.0 + `, + 'project/build.properties' + ) + ).toBeNull(); + }); }); }); diff --git a/lib/modules/manager/sbt/extract.ts b/lib/modules/manager/sbt/extract.ts index 7ad6d298bb3b8a..db076c8f5b1e9f 100644 --- a/lib/modules/manager/sbt/extract.ts +++ b/lib/modules/manager/sbt/extract.ts @@ -2,6 +2,7 @@ import { lang, query as q } from 'good-enough-parser'; import { logger } from '../../../logger'; import { regEx } from '../../../util/regex'; import { parseUrl } from '../../../util/url'; +import { GithubReleasesDatasource } from '../../datasource/github-releases'; import { MavenDatasource } from '../../datasource/maven'; import { SbtPackageDatasource } from '../../datasource/sbt-package'; import { @@ -10,6 +11,7 @@ import { } from '../../datasource/sbt-plugin'; import { get } from '../../versioning'; import * as mavenVersioning from '../../versioning/maven'; +import * as semverVersioning from '../../versioning/semver'; import { REGISTRY_URLS } from '../gradle/parser/common'; import type { PackageDependency, PackageFileContent } from '../types'; import { normalizeScalaVersion } from './util'; @@ -36,6 +38,10 @@ interface Ctx { const scala = lang.createLang('scala'); +const sbtVersionRegex = regEx( + 'sbt\\.version *= *(?\\d+\\.\\d+\\.\\d+)' +); + const scalaVersionMatch = q .sym('scalaVersion') .op(':=') @@ -285,8 +291,34 @@ const query = q.tree({ export function extractPackageFile( content: string, - _packageFile: string + packageFile: string ): PackageFileContent | null { + if ( + packageFile === 'project/build.properties' || + packageFile.endsWith('/project/build.properties') + ) { + const regexResult = sbtVersionRegex.exec(content); + const sbtVersion = regexResult?.groups?.version; + const matchString = regexResult?.[0]; + if (sbtVersion) { + const sbtDependency: PackageDependency = { + datasource: GithubReleasesDatasource.id, + depName: 'sbt/sbt', + packageName: 'sbt/sbt', + versioning: semverVersioning.id, + currentValue: sbtVersion, + replaceString: matchString, + extractVersion: '^v(?\\S+)', + }; + + return { + deps: [sbtDependency], + }; + } else { + return null; + } + } + let parsedResult: Ctx | null = null; try { @@ -296,7 +328,7 @@ export function extractPackageFile( registryUrls: [REGISTRY_URLS.mavenCentral], }); } catch (err) /* istanbul ignore next */ { - logger.warn({ err }, 'Sbt parsing error'); + logger.warn({ err, packageFile }, 'Sbt parsing error'); } if (!parsedResult) { diff --git a/lib/modules/manager/sbt/index.ts b/lib/modules/manager/sbt/index.ts index 48e0fa094b3b47..111c1e52e5da6b 100644 --- a/lib/modules/manager/sbt/index.ts +++ b/lib/modules/manager/sbt/index.ts @@ -1,3 +1,4 @@ +import { GithubReleasesDatasource } from '../../datasource/github-releases'; import { MavenDatasource } from '../../datasource/maven'; import { SbtPackageDatasource } from '../../datasource/sbt-package'; import { SbtPluginDatasource } from '../../datasource/sbt-plugin'; @@ -10,9 +11,14 @@ export const supportedDatasources = [ MavenDatasource.id, SbtPackageDatasource.id, SbtPluginDatasource.id, + GithubReleasesDatasource.id, // For sbt itself ]; export const defaultConfig = { - fileMatch: ['\\.sbt$', 'project/[^/]*.scala$'], + fileMatch: [ + '\\.sbt$', + 'project/[^/]*\\.scala$', + 'project/build\\.properties$', + ], versioning: ivyVersioning.id, }; From 9a5a770cecc67a44cdb51ef95f1a1c6b648f157e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 27 Feb 2023 10:21:00 +0000 Subject: [PATCH 022/228] build(deps): update dependency graph-data-structure to v3.2.0 (#20642) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 329bdf5a1d2bfa..f2814eeb74248d 100644 --- a/package.json +++ b/package.json @@ -195,7 +195,7 @@ "global-agent": "3.0.0", "good-enough-parser": "1.1.22", "got": "11.8.6", - "graph-data-structure": "3.1.1", + "graph-data-structure": "3.2.0", "handlebars": "4.7.7", "hasha": "5.2.2", "hcl2-parser": "1.0.3", diff --git a/yarn.lock b/yarn.lock index 1593d79ee69160..e947bbef8d3225 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5721,10 +5721,10 @@ graceful-fs@4.2.10, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== -graph-data-structure@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/graph-data-structure/-/graph-data-structure-3.1.1.tgz#9c45dbd61ff22f2cbf1790c888d6fdff85c5c1c8" - integrity sha512-8hN+cbuxQPX16u6XsNHD365ywgsizdb3/4EQgCADNb/XUpqIWSNfZ2oCuEs59kn0XezVaxz/LK7oJ+kOE7wmMQ== +graph-data-structure@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/graph-data-structure/-/graph-data-structure-3.2.0.tgz#db7886a69a2073c76291eef75c973d532eea3b48" + integrity sha512-GtMD5xvFX947d04IzH0dIPnncglFVQKZpLqLb0jy7OM+dMcm4gY9QNAUfHJryNc0Gd0cSvlMfwulUQ/CPyGczg== grapheme-splitter@^1.0.4: version "1.0.4" From d7ad01298871c3b8300d5180a3044d6315c49ee9 Mon Sep 17 00:00:00 2001 From: Sergei Zharinov Date: Mon, 27 Feb 2023 21:22:02 +0300 Subject: [PATCH 023/228] fix(packagist): Fix url resolving (#20650) --- lib/modules/datasource/packagist/index.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/modules/datasource/packagist/index.ts b/lib/modules/datasource/packagist/index.ts index 14e52140015568..1f4897842ced56 100644 --- a/lib/modules/datasource/packagist/index.ts +++ b/lib/modules/datasource/packagist/index.ts @@ -133,6 +133,8 @@ export class PackagistDatasource extends Datasource { registryUrl: string, registryMeta: RegistryMeta ): string | null { + const { origin: registryHost } = new URL(registryUrl); + if ( registryMeta.providersUrl && packageName in registryMeta.providerPackages @@ -142,12 +144,12 @@ export class PackagistDatasource extends Datasource { if (hash) { url = url.replace('%hash%', hash); } - return resolveBaseUrl(registryUrl, url); + return resolveBaseUrl(registryHost, url); } if (registryMeta.providersLazyUrl) { return resolveBaseUrl( - registryUrl, + registryHost, registryMeta.providersLazyUrl.replace('%package%', packageName) ); } From 92faf443af2fa82754445ace0f0889c539cb1d12 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 27 Feb 2023 20:30:39 +0000 Subject: [PATCH 024/228] chore(deps): update node.js to d3817b7 (#20653) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .devcontainer/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 5171e580247f86..2630cf5ec0e7b8 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,4 +1,4 @@ -FROM containerbase/node:18.14.2@sha256:5bd153416a969e3eaccaab8c5f9c98c753fbc7d1912e7965a99acea07e0b89aa +FROM containerbase/node:18.14.2@sha256:d3817b7251a8b3389d759394171e84c5afb7352f61d5ed5b12703977673a444c USER root From 2a002719cdbebe6c4aa98254268273e3b0e3d72d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 27 Feb 2023 20:31:11 +0000 Subject: [PATCH 025/228] chore(deps): update linters to v5.53.0 (#20654) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +-- yarn.lock | 90 ++++++++++++---------------------------------------- 2 files changed, 23 insertions(+), 71 deletions(-) diff --git a/package.json b/package.json index f2814eeb74248d..b052c08361323a 100644 --- a/package.json +++ b/package.json @@ -288,8 +288,8 @@ "@types/url-join": "4.0.1", "@types/validate-npm-package-name": "4.0.0", "@types/xmldoc": "1.1.6", - "@typescript-eslint/eslint-plugin": "5.52.0", - "@typescript-eslint/parser": "5.52.0", + "@typescript-eslint/eslint-plugin": "5.53.0", + "@typescript-eslint/parser": "5.53.0", "aws-sdk-client-mock": "2.0.1", "callsite": "1.0.0", "common-tags": "1.8.2", diff --git a/yarn.lock b/yarn.lock index e947bbef8d3225..c0c1b4d874e8a6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3216,14 +3216,14 @@ dependencies: "@types/node" "*" -"@typescript-eslint/eslint-plugin@5.52.0": - version "5.52.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.52.0.tgz#5fb0d43574c2411f16ea80f5fc335b8eaa7b28a8" - integrity sha512-lHazYdvYVsBokwCdKOppvYJKaJ4S41CgKBcPvyd0xjZNbvQdhn/pnJlGtQksQ/NhInzdaeaSarlBjDXHuclEbg== - dependencies: - "@typescript-eslint/scope-manager" "5.52.0" - "@typescript-eslint/type-utils" "5.52.0" - "@typescript-eslint/utils" "5.52.0" +"@typescript-eslint/eslint-plugin@5.53.0": + version "5.53.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.53.0.tgz#24b8b4a952f3c615fe070e3c461dd852b5056734" + integrity sha512-alFpFWNucPLdUOySmXCJpzr6HKC3bu7XooShWM+3w/EL6J2HIoB2PFxpLnq4JauWVk6DiVeNKzQlFEaE+X9sGw== + dependencies: + "@typescript-eslint/scope-manager" "5.53.0" + "@typescript-eslint/type-utils" "5.53.0" + "@typescript-eslint/utils" "5.53.0" debug "^4.3.4" grapheme-splitter "^1.0.4" ignore "^5.2.0" @@ -3239,24 +3239,16 @@ dependencies: "@typescript-eslint/utils" "5.53.0" -"@typescript-eslint/parser@5.52.0": - version "5.52.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.52.0.tgz#73c136df6c0133f1d7870de7131ccf356f5be5a4" - integrity sha512-e2KiLQOZRo4Y0D/b+3y08i3jsekoSkOYStROYmPUnGMEoA0h+k2qOH5H6tcjIc68WDvGwH+PaOrP1XRzLJ6QlA== +"@typescript-eslint/parser@5.53.0": + version "5.53.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.53.0.tgz#a1f2b9ae73b83181098747e96683f1b249ecab52" + integrity sha512-MKBw9i0DLYlmdOb3Oq/526+al20AJZpANdT6Ct9ffxcV8nKCHz63t/S0IhlTFNsBIHJv+GY5SFJ0XfqVeydQrQ== dependencies: - "@typescript-eslint/scope-manager" "5.52.0" - "@typescript-eslint/types" "5.52.0" - "@typescript-eslint/typescript-estree" "5.52.0" + "@typescript-eslint/scope-manager" "5.53.0" + "@typescript-eslint/types" "5.53.0" + "@typescript-eslint/typescript-estree" "5.53.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.52.0": - version "5.52.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.52.0.tgz#a993d89a0556ea16811db48eabd7c5b72dcb83d1" - integrity sha512-AR7sxxfBKiNV0FWBSARxM8DmNxrwgnYMPwmpkC1Pl1n+eT8/I2NAUPuwDy/FmDcC6F8pBfmOcaxcxRHspgOBMw== - dependencies: - "@typescript-eslint/types" "5.52.0" - "@typescript-eslint/visitor-keys" "5.52.0" - "@typescript-eslint/scope-manager@5.53.0": version "5.53.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.53.0.tgz#42b54f280e33c82939275a42649701024f3fafef" @@ -3265,39 +3257,21 @@ "@typescript-eslint/types" "5.53.0" "@typescript-eslint/visitor-keys" "5.53.0" -"@typescript-eslint/type-utils@5.52.0": - version "5.52.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.52.0.tgz#9fd28cd02e6f21f5109e35496df41893f33167aa" - integrity sha512-tEKuUHfDOv852QGlpPtB3lHOoig5pyFQN/cUiZtpw99D93nEBjexRLre5sQZlkMoHry/lZr8qDAt2oAHLKA6Jw== +"@typescript-eslint/type-utils@5.53.0": + version "5.53.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.53.0.tgz#41665449935ba9b4e6a1ba6e2a3f4b2c31d6cf97" + integrity sha512-HO2hh0fmtqNLzTAme/KnND5uFNwbsdYhCZghK2SoxGp3Ifn2emv+hi0PBUjzzSh0dstUIFqOj3bp0AwQlK4OWw== dependencies: - "@typescript-eslint/typescript-estree" "5.52.0" - "@typescript-eslint/utils" "5.52.0" + "@typescript-eslint/typescript-estree" "5.53.0" + "@typescript-eslint/utils" "5.53.0" debug "^4.3.4" tsutils "^3.21.0" -"@typescript-eslint/types@5.52.0": - version "5.52.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.52.0.tgz#19e9abc6afb5bd37a1a9bea877a1a836c0b3241b" - integrity sha512-oV7XU4CHYfBhk78fS7tkum+/Dpgsfi91IIDy7fjCyq2k6KB63M6gMC0YIvy+iABzmXThCRI6xpCEyVObBdWSDQ== - "@typescript-eslint/types@5.53.0": version "5.53.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.53.0.tgz#f79eca62b97e518ee124086a21a24f3be267026f" integrity sha512-5kcDL9ZUIP756K6+QOAfPkigJmCPHcLN7Zjdz76lQWWDdzfOhZDTj1irs6gPBKiXx5/6O3L0+AvupAut3z7D2A== -"@typescript-eslint/typescript-estree@5.52.0": - version "5.52.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.52.0.tgz#6408cb3c2ccc01c03c278cb201cf07e73347dfca" - integrity sha512-WeWnjanyEwt6+fVrSR0MYgEpUAuROxuAH516WPjUblIrClzYJj0kBbjdnbQXLpgAN8qbEuGywiQsXUVDiAoEuQ== - dependencies: - "@typescript-eslint/types" "5.52.0" - "@typescript-eslint/visitor-keys" "5.52.0" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.3.7" - tsutils "^3.21.0" - "@typescript-eslint/typescript-estree@5.53.0": version "5.53.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.53.0.tgz#bc651dc28cf18ab248ecd18a4c886c744aebd690" @@ -3311,20 +3285,6 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/utils@5.52.0": - version "5.52.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.52.0.tgz#b260bb5a8f6b00a0ed51db66bdba4ed5e4845a72" - integrity sha512-As3lChhrbwWQLNk2HC8Ree96hldKIqk98EYvypd3It8Q1f8d5zWyIoaZEp2va5667M4ZyE7X8UUR+azXrFl+NA== - dependencies: - "@types/json-schema" "^7.0.9" - "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.52.0" - "@typescript-eslint/types" "5.52.0" - "@typescript-eslint/typescript-estree" "5.52.0" - eslint-scope "^5.1.1" - eslint-utils "^3.0.0" - semver "^7.3.7" - "@typescript-eslint/utils@5.53.0", "@typescript-eslint/utils@^5.10.0": version "5.53.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.53.0.tgz#e55eaad9d6fffa120575ffaa530c7e802f13bce8" @@ -3339,14 +3299,6 @@ eslint-utils "^3.0.0" semver "^7.3.7" -"@typescript-eslint/visitor-keys@5.52.0": - version "5.52.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.52.0.tgz#e38c971259f44f80cfe49d97dbffa38e3e75030f" - integrity sha512-qMwpw6SU5VHCPr99y274xhbm+PRViK/NATY6qzt+Et7+mThGuFSl/ompj2/hrBlRP/kq+BFdgagnOSgw9TB0eA== - dependencies: - "@typescript-eslint/types" "5.52.0" - eslint-visitor-keys "^3.3.0" - "@typescript-eslint/visitor-keys@5.53.0": version "5.53.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.53.0.tgz#8a5126623937cdd909c30d8fa72f79fa56cc1a9f" From 456a8dad4462994538615ba844131e880f4333a4 Mon Sep 17 00:00:00 2001 From: Kelly Su Date: Mon, 27 Feb 2023 21:35:00 -0800 Subject: [PATCH 026/228] fix(setup_cfg): parsing for requirements install requires (#20657) --- lib/modules/manager/setup-cfg/__fixtures__/setup-cfg-1.txt | 2 ++ .../manager/setup-cfg/__snapshots__/extract.spec.ts.snap | 6 ++++++ lib/modules/manager/setup-cfg/extract.spec.ts | 1 + lib/modules/manager/setup-cfg/extract.ts | 2 +- 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/modules/manager/setup-cfg/__fixtures__/setup-cfg-1.txt b/lib/modules/manager/setup-cfg/__fixtures__/setup-cfg-1.txt index 9eb2f867909aa2..1fb0cbd0328acd 100644 --- a/lib/modules/manager/setup-cfg/__fixtures__/setup-cfg-1.txt +++ b/lib/modules/manager/setup-cfg/__fixtures__/setup-cfg-1.txt @@ -17,6 +17,8 @@ install_requires = requests[security] ~=2.18 compact~=1.2.3;python>'3.10' +install_requires= + responses >=2.27.0 setup_requires = six ~=1.4 diff --git a/lib/modules/manager/setup-cfg/__snapshots__/extract.spec.ts.snap b/lib/modules/manager/setup-cfg/__snapshots__/extract.spec.ts.snap index 453adf55dcd223..bef317998567c0 100644 --- a/lib/modules/manager/setup-cfg/__snapshots__/extract.spec.ts.snap +++ b/lib/modules/manager/setup-cfg/__snapshots__/extract.spec.ts.snap @@ -83,6 +83,12 @@ exports[`modules/manager/setup-cfg/extract extractPackageFile() extracts depende "depName": "compact", "depType": "install", }, + { + "currentValue": ">=2.27.0", + "datasource": "pypi", + "depName": "responses", + "depType": "install", + }, { "currentValue": "~=1.4", "datasource": "pypi", diff --git a/lib/modules/manager/setup-cfg/extract.spec.ts b/lib/modules/manager/setup-cfg/extract.spec.ts index c369d075955985..efa02d5cc1fb70 100644 --- a/lib/modules/manager/setup-cfg/extract.spec.ts +++ b/lib/modules/manager/setup-cfg/extract.spec.ts @@ -24,6 +24,7 @@ describe('modules/manager/setup-cfg/extract', () => { { depName: 'nmspc.pkg', currentValue: '==1.0' }, { depName: 'requests', currentValue: '~=2.18' }, { depName: 'compact', currentValue: '~=1.2.3' }, + { depName: 'responses', currentValue: '>=2.27.0' }, { depName: 'six', currentValue: '~=1.4' }, { depName: 'tqdm', currentValue: '~=4.19' }, { depName: 'tenacity', currentValue: '~=6.0' }, diff --git a/lib/modules/manager/setup-cfg/extract.ts b/lib/modules/manager/setup-cfg/extract.ts index f006ef70ba6378..1b73ebb63c22da 100644 --- a/lib/modules/manager/setup-cfg/extract.ts +++ b/lib/modules/manager/setup-cfg/extract.ts @@ -11,7 +11,7 @@ function getSectionName(str: string): string { } function getSectionRecord(str: string): string { - const [, sectionRecord] = regEx(/^([^\s]+)\s+=/).exec(str) ?? []; + const [, sectionRecord] = regEx(/^([^\s]+)\s*=/).exec(str) ?? []; return sectionRecord; } From 54196346a1e475a26c44aea278738333766dc678 Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Tue, 28 Feb 2023 07:16:25 +0100 Subject: [PATCH 027/228] refactor(autoreplace): extractPackageFile (#20660) --- .../repository/update/branch/auto-replace.ts | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/lib/workers/repository/update/branch/auto-replace.ts b/lib/workers/repository/update/branch/auto-replace.ts index 2843f15c1ddfb5..38a64a001cbd2f 100644 --- a/lib/workers/repository/update/branch/auto-replace.ts +++ b/lib/workers/repository/update/branch/auto-replace.ts @@ -2,7 +2,7 @@ import is from '@sindresorhus/is'; import { WORKER_FILE_UPDATE_FAILED } from '../../../../constants/error-messages'; import { logger } from '../../../../logger'; -import { get } from '../../../../modules/manager'; +import { extractPackageFile } from '../../../../modules/manager'; import type { PackageDependency } from '../../../../modules/manager/types'; import { writeLocalFile } from '../../../../util/fs'; import { escapeRegExp, regEx } from '../../../../util/regex'; @@ -23,12 +23,12 @@ export async function confirmIfDepUpdated( currentDigest, pinDigests, } = upgrade; - const extractPackageFile = get(manager, 'extractPackageFile'); let newUpgrade: PackageDependency; try { - const newExtract = await extractPackageFile!( + const newExtract = await extractPackageFile( + manager, newContent, - packageFile, + packageFile!, upgrade ); // istanbul ignore if @@ -104,9 +104,13 @@ export async function checkBranchDepsMatchBaseDeps( branchContent: string ): Promise { const { baseDeps, manager, packageFile } = upgrade; - const extractPackageFile = get(manager, 'extractPackageFile'); try { - const res = await extractPackageFile!(branchContent, packageFile, upgrade)!; + const res = await extractPackageFile( + manager, + branchContent, + packageFile!, + upgrade + )!; const branchDeps = res!.deps; return getDepsSignature(baseDeps!) === getDepsSignature(branchDeps); } catch (err) /* istanbul ignore next */ { From c9fe3b99fadf6db92c2ce3cbc02e1189b8327b5f Mon Sep 17 00:00:00 2001 From: Sergei Zharinov Date: Tue, 28 Feb 2023 12:31:16 +0300 Subject: [PATCH 028/228] feat(packagist): Support for `v2` protocol (#20626) --- .../datasource/packagist/index.spec.ts | 58 +++++++++++++++++-- lib/modules/datasource/packagist/index.ts | 43 +++++++++----- .../datasource/packagist/schema.spec.ts | 1 + lib/modules/datasource/packagist/schema.ts | 3 + 4 files changed, 85 insertions(+), 20 deletions(-) diff --git a/lib/modules/datasource/packagist/index.spec.ts b/lib/modules/datasource/packagist/index.spec.ts index 3fe8837bf41cb5..845c19082fdd88 100644 --- a/lib/modules/datasource/packagist/index.spec.ts +++ b/lib/modules/datasource/packagist/index.spec.ts @@ -84,6 +84,8 @@ describe('modules/datasource/packagist/index', () => { .replyWithError({ code: 'ETIMEDOUT' }); httpMock .scope(baseUrl) + .get('/packages.json') + .reply(200, { 'metadata-url': '/p2/%package%.json' }) .get('/p2/vendor/package-name2.json') .reply(200) .get('/p2/vendor/package-name2~dev.json') @@ -104,6 +106,8 @@ describe('modules/datasource/packagist/index', () => { .reply(403); httpMock .scope(baseUrl) + .get('/packages.json') + .reply(200, { 'metadata-url': '/p2/%package%.json' }) .get('/p2/vendor/package-name.json') .reply(200) .get('/p2/vendor/package-name~dev.json') @@ -124,6 +128,8 @@ describe('modules/datasource/packagist/index', () => { .reply(404); httpMock .scope(baseUrl) + .get('/packages.json') + .reply(200, { 'metadata-url': '/p2/%package%.json' }) .get('/p2/drewm/mailchimp-api.json') .reply(200) .get('/p2/drewm/mailchimp-api~dev.json') @@ -287,6 +293,8 @@ describe('modules/datasource/packagist/index', () => { .reply(200, fileJson); httpMock .scope(baseUrl) + .get('/packages.json') + .reply(200, { 'metadata-url': '/p2/%package%.json' }) .get('/p2/some/other.json') .reply(200, beytJson) .get('/p2/some/other~dev.json') @@ -383,6 +391,8 @@ describe('modules/datasource/packagist/index', () => { .reply(200, packagesJson); httpMock .scope(baseUrl) + .get('/packages.json') + .reply(200, { 'metadata-url': '/p2/%package%.json' }) .get('/p2/some/other.json') .reply(200, beytJson) .get('/p2/some/other~dev.json') @@ -399,10 +409,10 @@ describe('modules/datasource/packagist/index', () => { it('processes real versioned data', async () => { httpMock .scope(baseUrl) + .get('/packages.json') + .reply(200, { 'metadata-url': '/p2/%package%.json' }) .get('/p2/drewm/mailchimp-api.json') - .reply(200, mailchimpJson); - httpMock - .scope(baseUrl) + .reply(200, mailchimpJson) .get('/p2/drewm/mailchimp-api~dev.json') .reply(200, mailchimpDevJson); config.registryUrls = ['https://packagist.org']; @@ -419,10 +429,10 @@ describe('modules/datasource/packagist/index', () => { it('adds packagist source implicitly', async () => { httpMock .scope(baseUrl) + .get('/packages.json') + .reply(200, { 'metadata-url': '/p2/%package%.json' }) .get('/p2/drewm/mailchimp-api.json') - .reply(200, mailchimpJson); - httpMock - .scope(baseUrl) + .reply(200, mailchimpJson) .get('/p2/drewm/mailchimp-api~dev.json') .reply(200, mailchimpDevJson); config.registryUrls = []; @@ -435,5 +445,41 @@ describe('modules/datasource/packagist/index', () => { }) ).toMatchSnapshot(); }); + + it('fetches packagist V2 packages', async () => { + httpMock + .scope('https://example.com') + .get('/packages.json') + .reply(200, { + 'metadata-url': 'https://example.com/p2/%package%.json', + }) + .get('/p2/drewm/mailchimp-api.json') + .reply(200, { + minified: 'composer/2.0', + packages: { + 'drewm/mailchimp-api': [ + { + name: 'drewm/mailchimp-api', + version: 'v2.5.4', + }, + ], + }, + }) + .get('/p2/drewm/mailchimp-api~dev.json') + .reply(404); + config.registryUrls = ['https://example.com']; + + const res = await getPkgReleases({ + ...config, + datasource, + versioning, + depName: 'drewm/mailchimp-api', + }); + + expect(res).toEqual({ + registryUrl: 'https://example.com', + releases: [{ gitRef: 'v2.5.4', version: '2.5.4' }], + }); + }); }); }); diff --git a/lib/modules/datasource/packagist/index.ts b/lib/modules/datasource/packagist/index.ts index 1f4897842ced56..8d902f99f39174 100644 --- a/lib/modules/datasource/packagist/index.ts +++ b/lib/modules/datasource/packagist/index.ts @@ -1,11 +1,11 @@ -import type { z } from 'zod'; +import { z } from 'zod'; import { logger } from '../../../logger'; import { ExternalHostError } from '../../../types/errors/external-host-error'; import { cache } from '../../../util/cache/package/decorator'; import * as hostRules from '../../../util/host-rules'; import type { HttpOptions } from '../../../util/http/types'; import * as p from '../../../util/promises'; -import { joinUrlParts, resolveBaseUrl } from '../../../util/url'; +import { parseUrl, resolveBaseUrl } from '../../../util/url'; import * as composerVersioning from '../../versioning/composer'; import { Datasource } from '../datasource'; import type { GetReleasesConfig, ReleaseResult } from '../types'; @@ -115,17 +115,28 @@ export class PackagistDatasource extends Datasource { @cache({ namespace: `datasource-${PackagistDatasource.id}-org`, - key: (regUrl: string) => regUrl, + key: (registryUrl: string, metadataUrl: string, packageName: string) => + `${registryUrl}:${metadataUrl}:${packageName}`, ttlMinutes: 10, }) - async packagistOrgLookup(name: string): Promise { - const regUrl = 'https://packagist.org'; - const pkgUrl = joinUrlParts(regUrl, `/p2/${name}.json`); - const devUrl = joinUrlParts(regUrl, `/p2/${name}~dev.json`); - const results = await p.map([pkgUrl, devUrl], (url) => - this.http.getJson(url).then(({ body }) => body) + async packagistV2Lookup( + registryUrl: string, + metadataUrl: string, + packageName: string + ): Promise { + let pkgUrl = metadataUrl.replace('%package%', packageName); + pkgUrl = parseUrl(pkgUrl) ? pkgUrl : resolveBaseUrl(registryUrl, pkgUrl); + const pkgPromise = this.getJson(pkgUrl, z.unknown()); + + let devUrl = metadataUrl.replace('%package%', `${packageName}~dev`); + devUrl = parseUrl(devUrl) ? devUrl : resolveBaseUrl(registryUrl, devUrl); + const devPromise = this.getJson(devUrl, z.unknown()).then( + (x) => x, + () => null ); - return parsePackagesResponses(name, results); + + const results = await Promise.all([pkgPromise, devPromise]); + return parsePackagesResponses(packageName, results); } public getPkgUrl( @@ -169,13 +180,17 @@ export class PackagistDatasource extends Datasource { } try { - if (registryUrl === 'https://packagist.org') { - const packagistResult = await this.packagistOrgLookup(packageName); + const meta = await this.getRegistryMeta(registryUrl); + + if (meta.metadataUrl) { + const packagistResult = await this.packagistV2Lookup( + registryUrl, + meta.metadataUrl, + packageName + ); return packagistResult; } - const meta = await this.getRegistryMeta(registryUrl); - if (meta.packages[packageName]) { const result = extractDepReleases(meta.packages[packageName]); return result; diff --git a/lib/modules/datasource/packagist/schema.spec.ts b/lib/modules/datasource/packagist/schema.spec.ts index 9e82858be9f945..035a8a1660cb21 100644 --- a/lib/modules/datasource/packagist/schema.spec.ts +++ b/lib/modules/datasource/packagist/schema.spec.ts @@ -254,6 +254,7 @@ describe('modules/datasource/packagist/schema', () => { includesPackages: {}, providersLazyUrl: null, providersUrl: null, + metadataUrl: null, }); }); }); diff --git a/lib/modules/datasource/packagist/schema.ts b/lib/modules/datasource/packagist/schema.ts index 32de3ca10c8360..d71a9b27da9cec 100644 --- a/lib/modules/datasource/packagist/schema.ts +++ b/lib/modules/datasource/packagist/schema.ts @@ -205,6 +205,7 @@ export const RegistryMeta = z ), ['providers-lazy-url']: looseValue(z.string()), ['providers-url']: looseValue(z.string()), + ['metadata-url']: looseValue(z.string()), }) ) ) @@ -216,6 +217,7 @@ export const RegistryMeta = z ['providers']: providerPackages, ['providers-lazy-url']: providersLazyUrl, ['providers-url']: providersUrl, + ['metadata-url']: metadataUrl, }) => ({ packages, includesFiles, @@ -223,6 +225,7 @@ export const RegistryMeta = z files, providersUrl, providersLazyUrl, + metadataUrl, includesPackages: {} as Record, }) ); From b2fc81b571785ac7e22ab471b3c89ae828cd67ef Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 28 Feb 2023 10:31:34 +0100 Subject: [PATCH 029/228] build(deps): update dependency node-html-parser to v6.1.5 (#20662) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index b052c08361323a..642bf39d713982 100644 --- a/package.json +++ b/package.json @@ -212,7 +212,7 @@ "moo": "0.5.2", "ms": "2.1.3", "nanoid": "3.3.4", - "node-html-parser": "6.1.4", + "node-html-parser": "6.1.5", "openpgp": "5.6.0", "p-all": "3.0.0", "p-map": "4.0.0", diff --git a/yarn.lock b/yarn.lock index c0c1b4d874e8a6..697f1f491c6328 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7772,10 +7772,10 @@ node-gyp@^9.0.0, node-gyp@^9.1.0, node-gyp@^9.3.0: tar "^6.1.2" which "^2.0.2" -node-html-parser@6.1.4: - version "6.1.4" - resolved "https://registry.yarnpkg.com/node-html-parser/-/node-html-parser-6.1.4.tgz#763cd362497e427d51fc73dda3dcd8ac52ba85a3" - integrity sha512-3muP9Uy/Pz7bQa9TNYVQzWJhNZMqyCx7xJle8kz2/y1UgzAUyXXShc1IcPaJy6u07CE3K5rQcRwlvHzmlySRjg== +node-html-parser@6.1.5: + version "6.1.5" + resolved "https://registry.yarnpkg.com/node-html-parser/-/node-html-parser-6.1.5.tgz#c819dceb13a10a7642ff92f94f870b4f77968097" + integrity sha512-fAaM511feX++/Chnhe475a0NHD8M7AxDInsqQpz6x63GRF7xYNdS8Vo5dKsIVPgsOvG7eioRRTZQnWBrhDHBSg== dependencies: css-select "^5.1.0" he "1.2.0" From 14e2c7d3cfbc0238291bb4bb80f2a85f7b47ae8f Mon Sep 17 00:00:00 2001 From: Adam Setch Date: Tue, 28 Feb 2023 04:32:03 -0500 Subject: [PATCH 030/228] docs: add replacement to matchUpdateTypes (#20656) --- lib/config/options/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/config/options/index.ts b/lib/config/options/index.ts index a401297e2dafee..82d917cf83733a 100644 --- a/lib/config/options/index.ts +++ b/lib/config/options/index.ts @@ -1224,6 +1224,7 @@ const options: RenovateOptions[] = [ 'lockFileMaintenance', 'rollback', 'bump', + 'replacement', ], allowString: true, stage: 'package', From 2f8aa56fd8ac999a8618d6f781ce5b597f600f41 Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Tue, 28 Feb 2023 11:16:33 +0100 Subject: [PATCH 031/228] refactor(autoreplace): set depIndex during flatten (#20665) --- lib/modules/manager/types.ts | 1 - lib/workers/repository/extract/manager-files.spec.ts | 2 +- lib/workers/repository/extract/manager-files.ts | 10 ---------- lib/workers/repository/updates/flatten.spec.ts | 9 +++++++++ lib/workers/repository/updates/flatten.ts | 3 +++ lib/workers/types.ts | 1 + 6 files changed, 14 insertions(+), 12 deletions(-) diff --git a/lib/modules/manager/types.ts b/lib/modules/manager/types.ts index ee8bb0874dd5aa..a05fe36edadb13 100644 --- a/lib/modules/manager/types.ts +++ b/lib/modules/manager/types.ts @@ -143,7 +143,6 @@ export interface PackageDependency> updates?: LookupUpdate[]; replaceString?: string; autoReplaceStringTemplate?: string; - depIndex?: number; editFile?: string; separateMinorPatch?: boolean; extractVersion?: string; diff --git a/lib/workers/repository/extract/manager-files.spec.ts b/lib/workers/repository/extract/manager-files.spec.ts index 502ab7a53a2abb..3dbafbc1512a0c 100644 --- a/lib/workers/repository/extract/manager-files.spec.ts +++ b/lib/workers/repository/extract/manager-files.spec.ts @@ -59,7 +59,7 @@ describe('workers/repository/extract/manager-files', () => { expect(res).toEqual([ { packageFile: 'Dockerfile', - deps: [{ depIndex: 0 }, { depIndex: 1, replaceString: 'abc' }], + deps: [{}, { replaceString: 'abc' }], }, ]); }); diff --git a/lib/workers/repository/extract/manager-files.ts b/lib/workers/repository/extract/manager-files.ts index 561456a27bd0f8..f74196bd6b0835 100644 --- a/lib/workers/repository/extract/manager-files.ts +++ b/lib/workers/repository/extract/manager-files.ts @@ -35,13 +35,6 @@ export async function getManagerPackageFiles( config, fileList ); - if (allPackageFiles) { - for (const packageFile of allPackageFiles) { - for (let index = 0; index < packageFile.deps.length; index += 1) { - packageFile.deps[index].depIndex = index; - } - } - } return allPackageFiles; } const packageFiles: PackageFile[] = []; @@ -56,9 +49,6 @@ export async function getManagerPackageFiles( config ); if (res) { - for (let index = 0; index < res.deps.length; index += 1) { - res.deps[index].depIndex = index; - } packageFiles.push({ ...res, packageFile, diff --git a/lib/workers/repository/updates/flatten.spec.ts b/lib/workers/repository/updates/flatten.spec.ts index 50f242e71fbded..b0c83caf13de27 100644 --- a/lib/workers/repository/updates/flatten.spec.ts +++ b/lib/workers/repository/updates/flatten.spec.ts @@ -1,3 +1,4 @@ +import is from '@sindresorhus/is'; import { RenovateConfig, getConfig } from '../../../../test/util'; import { flattenUpdates } from './flatten'; @@ -144,6 +145,14 @@ describe('workers/repository/updates/flatten', () => { }; const res = await flattenUpdates(config, packageFiles); expect(res).toHaveLength(14); + expect( + res.every( + (upgrade) => + upgrade.isLockFileMaintenance || + upgrade.isRemediation || + is.number(upgrade.depIndex) + ) + ).toBeTrue(); expect( res.filter((update) => update.sourceRepoSlug)[0].sourceRepoSlug ).toBe('org-repo'); diff --git a/lib/workers/repository/updates/flatten.ts b/lib/workers/repository/updates/flatten.ts index 0bbde1440b48f4..77612b799af668 100644 --- a/lib/workers/repository/updates/flatten.ts +++ b/lib/workers/repository/updates/flatten.ts @@ -91,10 +91,12 @@ export async function flattenUpdates( packageFileConfig.parentDir = ''; packageFileConfig.packageFileDir = ''; } + let depIndex = 0; for (const dep of packageFile.deps) { if (dep.updates.length) { const depConfig = mergeChildConfig(packageFileConfig, dep); delete depConfig.deps; + depConfig.depIndex = depIndex; // used for autoreplace for (const update of dep.updates) { let updateConfig = mergeChildConfig(depConfig, update); delete updateConfig.updates; @@ -128,6 +130,7 @@ export async function flattenUpdates( updates.push(updateConfig); } } + depIndex += 1; } if ( get(manager, 'supportsLockFileMaintenance') && diff --git a/lib/workers/types.ts b/lib/workers/types.ts index 8236081cb5cd44..845ef59737627c 100644 --- a/lib/workers/types.ts +++ b/lib/workers/types.ts @@ -38,6 +38,7 @@ export interface BranchUpgradeConfig currentDigest?: string; currentDigestShort?: string; currentValue?: string; + depIndex?: number; excludeCommitPaths?: string[]; githubName?: string; group?: GroupConfig; From 8cd9f43cbce3a47ef25151974c5eba1447fb4103 Mon Sep 17 00:00:00 2001 From: Sergei Zharinov Date: Tue, 28 Feb 2023 14:16:51 +0300 Subject: [PATCH 032/228] fix(datasource/packagist): Support for obsolete SHA1 hashes (#20664) --- .../datasource/packagist/index.spec.ts | 61 +++++++++++++++++++ lib/modules/datasource/packagist/index.ts | 4 +- lib/modules/datasource/packagist/schema.ts | 45 ++++++-------- 3 files changed, 83 insertions(+), 27 deletions(-) diff --git a/lib/modules/datasource/packagist/index.spec.ts b/lib/modules/datasource/packagist/index.spec.ts index 845c19082fdd88..c82a69ccac52fe 100644 --- a/lib/modules/datasource/packagist/index.spec.ts +++ b/lib/modules/datasource/packagist/index.spec.ts @@ -176,6 +176,67 @@ describe('modules/datasource/packagist/index', () => { expect(res).not.toBeNull(); }); + it('supports older sha1 hashes', async () => { + hostRules.find = jest.fn(() => ({ + username: 'some-username', + password: 'some-password', + })); + const packagesJson = { + packages: [], + includes: { + 'include/all$afbf74d51f31c7cbb5ff10304f9290bfb4f4e68b.json': { + sha1: 'afbf74d51f31c7cbb5ff10304f9290bfb4f4e68b', + }, + }, + }; + httpMock + .scope('https://composer.renovatebot.com') + .get('/packages.json') + .reply(200, packagesJson) + .get('/include/all$afbf74d51f31c7cbb5ff10304f9290bfb4f4e68b.json') + .reply(200, includesJson); + const res = await getPkgReleases({ + ...config, + datasource, + versioning, + depName: 'guzzlehttp/guzzle', + }); + expect(res).toMatchObject({ + homepage: 'http://guzzlephp.org/', + registryUrl: 'https://composer.renovatebot.com', + releases: [ + { version: '3.0.0' }, + { version: '3.0.1' }, + { version: '3.0.2' }, + { version: '3.0.3' }, + { version: '3.0.4' }, + { version: '3.0.5' }, + { version: '3.0.6' }, + { version: '3.0.7' }, + { version: '3.1.0' }, + { version: '3.1.1' }, + { version: '3.1.2' }, + { version: '3.2.0' }, + { version: '3.3.0' }, + { version: '3.3.1' }, + { version: '3.4.0' }, + { version: '3.4.1' }, + { version: '3.4.2' }, + { version: '3.4.3' }, + { version: '3.5.0' }, + { version: '3.6.0' }, + { version: '3.7.0' }, + { version: '3.7.1' }, + { version: '3.7.2' }, + { version: '3.7.3' }, + { version: '3.7.4' }, + { version: '3.8.0' }, + { version: '3.8.1' }, + ], + sourceUrl: 'https://github.com/guzzle/guzzle', + }); + }); + it('supports lazy repositories', async () => { const packagesJson = { packages: [], diff --git a/lib/modules/datasource/packagist/index.ts b/lib/modules/datasource/packagist/index.ts index 8d902f99f39174..9928405698b248 100644 --- a/lib/modules/datasource/packagist/index.ts +++ b/lib/modules/datasource/packagist/index.ts @@ -68,8 +68,8 @@ export class PackagistDatasource extends Datasource { regUrl: string, regFile: RegistryFile ): string { - const { key, sha256 } = regFile; - const fileName = key.replace('%hash%', sha256); + const { key, hash } = regFile; + const fileName = hash ? key.replace('%hash%', hash) : key; const url = `${regUrl}/${fileName}`; return url; } diff --git a/lib/modules/datasource/packagist/schema.ts b/lib/modules/datasource/packagist/schema.ts index d71a9b27da9cec..0205605fb9aca2 100644 --- a/lib/modules/datasource/packagist/schema.ts +++ b/lib/modules/datasource/packagist/schema.ts @@ -155,10 +155,20 @@ export function parsePackagesResponses( return extractReleaseResult(...releaseArrays); } -export const RegistryFile = z.object({ - key: z.string(), - sha256: z.string(), -}); +export const HashSpec = z.union([ + z + .object({ sha256: z.string().nullable() }) + .transform(({ sha256 }) => ({ hash: sha256 })), + z + .object({ sha1: z.string().nullable() }) + .transform(({ sha1 }) => ({ hash: sha1 })), +]); +export type HashSpec = z.infer; + +export const RegistryFile = z.intersection( + HashSpec, + z.object({ key: z.string() }) +); export type RegistryFile = z.infer; export const PackagesResponse = z.object({ @@ -168,13 +178,9 @@ export type PackagesResponse = z.infer; export const PackagistFile = PackagesResponse.merge( z.object({ - providers: looseRecord( - z.object({ - sha256: looseValue(z.string()), - }) - ).transform((x) => + providers: looseRecord(HashSpec).transform((x) => Object.fromEntries( - Object.entries(x).map(([key, { sha256 }]) => [key, sha256]) + Object.entries(x).map(([key, { hash }]) => [key, hash]) ) ), }) @@ -186,22 +192,11 @@ export const RegistryMeta = z (x) => (is.plainObject(x) ? x : {}), PackagistFile.merge( z.object({ - ['includes']: looseRecord( - z.object({ - sha256: z.string(), - }) - ).transform((x) => - Object.entries(x).map(([name, { sha256 }]) => ({ - key: name.replace(sha256, '%hash%'), - sha256, - })) + ['includes']: looseRecord(HashSpec).transform((x) => + Object.entries(x).map(([name, { hash }]) => ({ key: name, hash })) ), - ['provider-includes']: looseRecord( - z.object({ - sha256: z.string(), - }) - ).transform((x) => - Object.entries(x).map(([key, { sha256 }]) => ({ key, sha256 })) + ['provider-includes']: looseRecord(HashSpec).transform((x) => + Object.entries(x).map(([key, { hash }]) => ({ key, hash })) ), ['providers-lazy-url']: looseValue(z.string()), ['providers-url']: looseValue(z.string()), From e57966329f1c629d232385190a836dd6a9c83047 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 28 Feb 2023 16:53:31 +0000 Subject: [PATCH 033/228] chore(deps): update node.js to c2a0ae2 (#20674) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .devcontainer/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 2630cf5ec0e7b8..5bb5c2360e4b24 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,4 +1,4 @@ -FROM containerbase/node:18.14.2@sha256:d3817b7251a8b3389d759394171e84c5afb7352f61d5ed5b12703977673a444c +FROM containerbase/node:18.14.2@sha256:c2a0ae2585fd58e07bc648b125ffec66d6a157368c30da4a3ec730558f0693a6 USER root From 34d26700cf32ff7a32cdf93179773b10db75ec0a Mon Sep 17 00:00:00 2001 From: Andreas Hippler Date: Tue, 28 Feb 2023 20:29:28 +0100 Subject: [PATCH 034/228] fix: support docker /library retry with abortOnError (#20652) Co-authored-by: Michael Kriese --- lib/modules/datasource/docker/index.spec.ts | 48 +++++++++++---------- lib/modules/datasource/docker/index.ts | 9 ++-- 2 files changed, 30 insertions(+), 27 deletions(-) diff --git a/lib/modules/datasource/docker/index.spec.ts b/lib/modules/datasource/docker/index.spec.ts index 30b17f3afe7d20..e19389b4bb8f1e 100644 --- a/lib/modules/datasource/docker/index.spec.ts +++ b/lib/modules/datasource/docker/index.spec.ts @@ -1193,28 +1193,32 @@ describe('modules/datasource/docker/index', () => { await expect(getPkgReleases(config)).rejects.toThrow(EXTERNAL_HOST_ERROR); }); - it('jfrog artifactory - retry tags for official images by injecting `/library` after repository and before image', async () => { - const tags = ['18.0.0']; - httpMock - .scope('https://org.jfrog.io/v2') - .get('/virtual-mirror/node/tags/list?n=10000') - .reply(200, '', {}) - .get('/virtual-mirror/node/tags/list?n=10000') - .reply(404, '', { 'x-jfrog-version': 'Artifactory/7.42.2 74202900' }) - .get('/virtual-mirror/library/node/tags/list?n=10000') - .reply(200, '', {}) - .get('/virtual-mirror/library/node/tags/list?n=10000') - .reply(200, { tags }, {}) - .get('/') - .reply(200, '', {}) - .get('/virtual-mirror/node/manifests/18.0.0') - .reply(200, '', {}); - const res = await getPkgReleases({ - datasource: DockerDatasource.id, - depName: 'org.jfrog.io/virtual-mirror/node', - }); - expect(res?.releases).toHaveLength(1); - }); + it.each([[true], [false]])( + 'jfrog artifactory - retry tags for official images by injecting `/library` after repository and before image, abortOnError=%p', + async (abortOnError) => { + hostRules.find.mockReturnValue({ abortOnError }); + const tags = ['18.0.0']; + httpMock + .scope('https://org.jfrog.io/v2') + .get('/virtual-mirror/node/tags/list?n=10000') + .reply(200, '', {}) + .get('/virtual-mirror/node/tags/list?n=10000') + .reply(404, '', { 'x-jfrog-version': 'Artifactory/7.42.2 74202900' }) + .get('/virtual-mirror/library/node/tags/list?n=10000') + .reply(200, '', {}) + .get('/virtual-mirror/library/node/tags/list?n=10000') + .reply(200, { tags }, {}) + .get('/') + .reply(200, '', {}) + .get('/virtual-mirror/node/manifests/18.0.0') + .reply(200, '', {}); + const res = await getPkgReleases({ + datasource: DockerDatasource.id, + depName: 'org.jfrog.io/virtual-mirror/node', + }); + expect(res?.releases).toHaveLength(1); + } + ); it('uses lower tag limit for ECR deps', async () => { httpMock diff --git a/lib/modules/datasource/docker/index.ts b/lib/modules/datasource/docker/index.ts index 4e8127e60426ae..83bcd6dabfb865 100644 --- a/lib/modules/datasource/docker/index.ts +++ b/lib/modules/datasource/docker/index.ts @@ -909,10 +909,9 @@ export class DockerDatasource extends Datasource { tags = await this.getDockerApiTags(registryHost, dockerRepository); } return tags; - } catch (err) /* istanbul ignore next */ { - if (err instanceof ExternalHostError) { - throw err; - } + } catch (_err) /* istanbul ignore next */ { + const err = _err instanceof ExternalHostError ? _err.err : _err; + if ( (err.statusCode === 404 || err.message === PAGE_NOT_FOUND_ERROR) && !dockerRepository.includes('/') @@ -974,7 +973,7 @@ export class DockerDatasource extends Datasource { if (isDockerHost(registryHost)) { logger.info({ err }, 'Docker Hub lookup failure'); } - throw err; + throw _err; } } From 56c161a8d4bc8ebf661a641fdcd12d803492749f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 28 Feb 2023 21:49:33 +0000 Subject: [PATCH 035/228] build(deps): update dependency openpgp to v5.7.0 (#20677) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 642bf39d713982..b2ab4b11c3051f 100644 --- a/package.json +++ b/package.json @@ -213,7 +213,7 @@ "ms": "2.1.3", "nanoid": "3.3.4", "node-html-parser": "6.1.5", - "openpgp": "5.6.0", + "openpgp": "5.7.0", "p-all": "3.0.0", "p-map": "4.0.0", "p-queue": "6.6.2", diff --git a/yarn.lock b/yarn.lock index 697f1f491c6328..6ff8c000fc04f8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8135,10 +8135,10 @@ opener@^1.5.2: resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== -openpgp@5.6.0: - version "5.6.0" - resolved "https://registry.yarnpkg.com/openpgp/-/openpgp-5.6.0.tgz#2bbcce109f789d7d9b317fbdec7cc3cd4dc7dbac" - integrity sha512-m0UGCSefapbPssLmxJ7z7KydLEdpWjaY5gXoxZgTuNeWDfeRG5lzaORWNxyKg1K4tJnRwSoTp01Vtt8Cenbmgw== +openpgp@5.7.0: + version "5.7.0" + resolved "https://registry.yarnpkg.com/openpgp/-/openpgp-5.7.0.tgz#fe0a346f26171ffb726636ae7ccb24a504281dbc" + integrity sha512-wchYJQfFbSaocUvUIYqNrWD+lRSmFSG1d3Ak2CHeXFocDSEsf7Uc1zUzHjSdlZPTvGeeXPQ+MJrwVtalL4QCBg== dependencies: asn1.js "^5.0.0" From 23ae5770234398159cfa74021bf026d6e3f297c2 Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Wed, 1 Mar 2023 19:22:38 +0100 Subject: [PATCH 036/228] chore: update templates to recommend discussions (#20694) --- .github/DISCUSSION_TEMPLATE/mend-renovate-app-support.yml | 4 ++-- .github/ISSUE_TEMPLATE/bug_report.yml | 7 +++---- .github/ISSUE_TEMPLATE/config.yml | 4 ++-- .github/ISSUE_TEMPLATE/feature_request.yml | 2 +- 4 files changed, 8 insertions(+), 9 deletions(-) diff --git a/.github/DISCUSSION_TEMPLATE/mend-renovate-app-support.yml b/.github/DISCUSSION_TEMPLATE/mend-renovate-app-support.yml index 01ffd46594e03c..29d3acbfb85fb3 100644 --- a/.github/DISCUSSION_TEMPLATE/mend-renovate-app-support.yml +++ b/.github/DISCUSSION_TEMPLATE/mend-renovate-app-support.yml @@ -2,8 +2,8 @@ body: - type: checkboxes id: hosted-app-checkbox attributes: - label: I'm using the Mend Renovate hosted app. - description: Only use this discussion if you're using the Mend Renovate hosted app. + label: I'm using the Mend Renovate hosted app on github.com. + description: Only use this discussion if you're using the Mend Renovate hosted app and have a "it's not running" type of problem. options: - label: I'm using the Mend Renovate hosted app. required: true diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index d705ebf2d60aae..483122857ab419 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -1,13 +1,12 @@ name: Bug report -description: Confirmed bugs only. If in doubt, create a Discussion instead. +description: Confirmed bugs only. Create a discussion first. labels: ['type:bug', 'status:requirements', 'priority-5-triage'] body: - type: markdown attributes: value: | - Before you begin to fill out the form, make sure you have actually found a bug. - If you're not sure then create a [discussion](https://github.com/renovatebot/renovate/discussions) first. - If you have questions or want help with Renovate, then also create a [discussion](https://github.com/renovatebot/renovate/discussions). + Please don't create these bug reports unless you're an experienced user or absolutely certain you found a bug. + It is preferred that you create a [discussion](https://github.com/renovatebot/renovate/discussions/new) first and allow maintainers to decide. - type: dropdown id: how-are-you-running-renovate diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index a12f338bb64b60..4fc4b36e860ad1 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,5 +1,5 @@ blank_issues_enabled: false contact_links: - - name: Start a discussion (config, doubts, docs) + - name: Start a discussion url: https://github.com/renovatebot/renovate/discussions/new - about: If you have any questions about bot configuration or doubts about whether you should create a feature request or bug report, or have problems with the documentation please select the button to create a Discussion instead of an Issue. + about: Our preferred starting point if you have any questions or suggestions about bot configuration, features or behavior. diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index e902133f6b5d27..36a1c425aee1c0 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -1,5 +1,5 @@ name: Feature request -description: Suggest an idea for this project. +description: For maintainers only. For everyone else, please start an Ideas [discussion](https://github.com/renovatebot/renovate/discussions/new). labels: ['type:feature', 'status:requirements', 'priority-5-triage'] body: - type: textarea From b4feac1ec832482f878764fb0c65a64a8d7fcbad Mon Sep 17 00:00:00 2001 From: HonkingGoose <34918129+HonkingGoose@users.noreply.github.com> Date: Thu, 2 Mar 2023 06:59:58 +0100 Subject: [PATCH 037/228] docs(self hosted experimental): monospace style heading (#20698) --- docs/usage/self-hosted-experimental.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage/self-hosted-experimental.md b/docs/usage/self-hosted-experimental.md index 3b0cfb6d780d30..c172bdac0aaf18 100644 --- a/docs/usage/self-hosted-experimental.md +++ b/docs/usage/self-hosted-experimental.md @@ -40,7 +40,7 @@ If set to any string, Renovate will use this as the `user-agent` it sends with H If set to any value, Renovate will use a "hard" `process.exit()` once all work is done, even if a sub-process is otherwise delaying Node.js from exiting. See for background on why this was created. -## RENOVATE_X_IGNORE_NODE_WARN +## `RENOVATE_X_IGNORE_NODE_WARN` Suppress the default warning when a deprecated version of Node.js is used to run Renovate. From c5edc5d54edaed93084b27026a7adf9c52e79296 Mon Sep 17 00:00:00 2001 From: jingyang Date: Thu, 2 Mar 2023 19:58:13 +0800 Subject: [PATCH 038/228] fix: checkout base branch after commit files (#20658) Co-authored-by: Rhys Arkins --- .../repository/update/branch/index.spec.ts | 22 +++++++++++++++++++ lib/workers/repository/update/branch/index.ts | 3 +++ 2 files changed, 25 insertions(+) diff --git a/lib/workers/repository/update/branch/index.spec.ts b/lib/workers/repository/update/branch/index.spec.ts index ff9b3fac8a1a98..da9c8329a42ebb 100644 --- a/lib/workers/repository/update/branch/index.spec.ts +++ b/lib/workers/repository/update/branch/index.spec.ts @@ -2145,5 +2145,27 @@ describe('workers/repository/update/branch/index', () => { expect(automerge.tryBranchAutomerge).not.toHaveBeenCalled(); expect(prWorker.ensurePr).toHaveBeenCalledTimes(1); }); + + it('checks out baseBranch after committing files', async () => { + getUpdated.getUpdatedPackageFiles.mockResolvedValueOnce({ + ...updatedPackageFiles, + }); + npmPostExtract.getAdditionalFiles.mockResolvedValueOnce({ + artifactErrors: [], + updatedArtifacts: [], + }); + config.baseBranch = 'main'; + await branchWorker.processBranch(config); + expect(git.checkoutBranch).toHaveBeenLastCalledWith('main'); + // Check that the last checkoutBranch call is after the only commitFilesToBranch call + const checkoutBranchCalledTimes = git.checkoutBranch.mock.calls.length; + expect( + commit.commitFilesToBranch.mock.invocationCallOrder[0] + ).toBeLessThan( + git.checkoutBranch.mock.invocationCallOrder[ + checkoutBranchCalledTimes - 1 + ] + ); + }); }); }); diff --git a/lib/workers/repository/update/branch/index.ts b/lib/workers/repository/update/branch/index.ts index b3e609ee104860..b779a277aa1344 100644 --- a/lib/workers/repository/update/branch/index.ts +++ b/lib/workers/repository/update/branch/index.ts @@ -498,6 +498,9 @@ export async function processBranch( } commitSha = await commitFilesToBranch(config); + // Checkout to base branch to ensure that the next branch processing always starts with git being on the baseBranch + // baseBranch is not checked out at the start of processBranch() due to pull/16246 + await checkoutBranch(config.baseBranch); updatesVerified = true; } // istanbul ignore if From cd06651f89441b275860ec8e67224c66126bc64e Mon Sep 17 00:00:00 2001 From: Sergei Zharinov Date: Thu, 2 Mar 2023 17:19:55 +0300 Subject: [PATCH 039/228] fix(packagist): Replace V2 URL path instead of joining it (#20709) --- lib/modules/datasource/packagist/index.ts | 24 +++-- lib/util/url.spec.ts | 118 ++++++++++++++-------- lib/util/url.ts | 21 ++++ 3 files changed, 110 insertions(+), 53 deletions(-) diff --git a/lib/modules/datasource/packagist/index.ts b/lib/modules/datasource/packagist/index.ts index 9928405698b248..8970551bbd8669 100644 --- a/lib/modules/datasource/packagist/index.ts +++ b/lib/modules/datasource/packagist/index.ts @@ -5,7 +5,7 @@ import { cache } from '../../../util/cache/package/decorator'; import * as hostRules from '../../../util/host-rules'; import type { HttpOptions } from '../../../util/http/types'; import * as p from '../../../util/promises'; -import { parseUrl, resolveBaseUrl } from '../../../util/url'; +import { replaceUrlPath, resolveBaseUrl } from '../../../util/url'; import * as composerVersioning from '../../versioning/composer'; import { Datasource } from '../datasource'; import type { GetReleasesConfig, ReleaseResult } from '../types'; @@ -70,7 +70,7 @@ export class PackagistDatasource extends Datasource { ): string { const { key, hash } = regFile; const fileName = hash ? key.replace('%hash%', hash) : key; - const url = `${regUrl}/${fileName}`; + const url = resolveBaseUrl(regUrl, fileName); return url; } @@ -124,12 +124,16 @@ export class PackagistDatasource extends Datasource { metadataUrl: string, packageName: string ): Promise { - let pkgUrl = metadataUrl.replace('%package%', packageName); - pkgUrl = parseUrl(pkgUrl) ? pkgUrl : resolveBaseUrl(registryUrl, pkgUrl); + const pkgUrl = replaceUrlPath( + registryUrl, + metadataUrl.replace('%package%', packageName) + ); const pkgPromise = this.getJson(pkgUrl, z.unknown()); - let devUrl = metadataUrl.replace('%package%', `${packageName}~dev`); - devUrl = parseUrl(devUrl) ? devUrl : resolveBaseUrl(registryUrl, devUrl); + const devUrl = replaceUrlPath( + registryUrl, + metadataUrl.replace('%package%', `${packageName}~dev`) + ); const devPromise = this.getJson(devUrl, z.unknown()).then( (x) => x, () => null @@ -144,8 +148,6 @@ export class PackagistDatasource extends Datasource { registryUrl: string, registryMeta: RegistryMeta ): string | null { - const { origin: registryHost } = new URL(registryUrl); - if ( registryMeta.providersUrl && packageName in registryMeta.providerPackages @@ -155,12 +157,12 @@ export class PackagistDatasource extends Datasource { if (hash) { url = url.replace('%hash%', hash); } - return resolveBaseUrl(registryHost, url); + return replaceUrlPath(registryUrl, url); } if (registryMeta.providersLazyUrl) { - return resolveBaseUrl( - registryHost, + return replaceUrlPath( + registryUrl, registryMeta.providersLazyUrl.replace('%package%', packageName) ); } diff --git a/lib/util/url.spec.ts b/lib/util/url.spec.ts index d1e9e0e17ede33..27652dc9c515f6 100644 --- a/lib/util/url.spec.ts +++ b/lib/util/url.spec.ts @@ -6,57 +6,91 @@ import { joinUrlParts, parseLinkHeader, parseUrl, + replaceUrlPath, resolveBaseUrl, trimTrailingSlash, validateUrl, } from './url'; describe('util/url', () => { - test.each([ - ['http://foo.io', '', 'http://foo.io'], - ['http://foo.io/', '', 'http://foo.io'], - ['http://foo.io', '/', 'http://foo.io/'], - ['http://foo.io/', '/', 'http://foo.io/'], - - ['http://foo.io', '/aaa', 'http://foo.io/aaa'], - ['http://foo.io', 'aaa', 'http://foo.io/aaa'], - ['http://foo.io/', '/aaa', 'http://foo.io/aaa'], - ['http://foo.io/', 'aaa', 'http://foo.io/aaa'], - ['http://foo.io', '/aaa/', 'http://foo.io/aaa/'], - ['http://foo.io', 'aaa/', 'http://foo.io/aaa/'], - ['http://foo.io/', '/aaa/', 'http://foo.io/aaa/'], - ['http://foo.io/', 'aaa/', 'http://foo.io/aaa/'], - - ['http://foo.io/aaa', '/bbb', 'http://foo.io/aaa/bbb'], - ['http://foo.io/aaa', 'bbb', 'http://foo.io/aaa/bbb'], - ['http://foo.io/aaa/', '/bbb', 'http://foo.io/aaa/bbb'], - ['http://foo.io/aaa/', 'bbb', 'http://foo.io/aaa/bbb'], - - ['http://foo.io/aaa', '/bbb/', 'http://foo.io/aaa/bbb/'], - ['http://foo.io/aaa', 'bbb/', 'http://foo.io/aaa/bbb/'], - ['http://foo.io/aaa/', '/bbb/', 'http://foo.io/aaa/bbb/'], - ['http://foo.io/aaa/', 'bbb/', 'http://foo.io/aaa/bbb/'], - - ['http://foo.io', 'http://bar.io/bbb', 'http://bar.io/bbb'], - ['http://foo.io/', 'http://bar.io/bbb', 'http://bar.io/bbb'], - ['http://foo.io/aaa', 'http://bar.io/bbb', 'http://bar.io/bbb'], - ['http://foo.io/aaa/', 'http://bar.io/bbb', 'http://bar.io/bbb'], - - ['http://foo.io', 'http://bar.io/bbb/', 'http://bar.io/bbb/'], - ['http://foo.io/', 'http://bar.io/bbb/', 'http://bar.io/bbb/'], - ['http://foo.io/aaa', 'http://bar.io/bbb/', 'http://bar.io/bbb/'], - ['http://foo.io/aaa/', 'http://bar.io/bbb/', 'http://bar.io/bbb/'], - - ['http://foo.io', 'aaa?bbb=z', 'http://foo.io/aaa?bbb=z'], - ['http://foo.io', '/aaa?bbb=z', 'http://foo.io/aaa?bbb=z'], - ['http://foo.io/', 'aaa?bbb=z', 'http://foo.io/aaa?bbb=z'], - ['http://foo.io/', '/aaa?bbb=z', 'http://foo.io/aaa?bbb=z'], - - ['http://foo.io', 'aaa/?bbb=z', 'http://foo.io/aaa?bbb=z'], - ])('%s + %s => %s', (baseUrl, x, result) => { + test.each` + baseUrl | x | result + ${'http://foo.io'} | ${''} | ${'http://foo.io'} + ${'http://foo.io/'} | ${''} | ${'http://foo.io'} + ${'http://foo.io'} | ${'/'} | ${'http://foo.io/'} + ${'http://foo.io/'} | ${'/'} | ${'http://foo.io/'} + ${'http://foo.io'} | ${'/aaa'} | ${'http://foo.io/aaa'} + ${'http://foo.io'} | ${'aaa'} | ${'http://foo.io/aaa'} + ${'http://foo.io/'} | ${'/aaa'} | ${'http://foo.io/aaa'} + ${'http://foo.io/'} | ${'aaa'} | ${'http://foo.io/aaa'} + ${'http://foo.io'} | ${'/aaa/'} | ${'http://foo.io/aaa/'} + ${'http://foo.io'} | ${'aaa/'} | ${'http://foo.io/aaa/'} + ${'http://foo.io/'} | ${'/aaa/'} | ${'http://foo.io/aaa/'} + ${'http://foo.io/'} | ${'aaa/'} | ${'http://foo.io/aaa/'} + ${'http://foo.io/aaa'} | ${'/bbb'} | ${'http://foo.io/aaa/bbb'} + ${'http://foo.io/aaa'} | ${'bbb'} | ${'http://foo.io/aaa/bbb'} + ${'http://foo.io/aaa/'} | ${'/bbb'} | ${'http://foo.io/aaa/bbb'} + ${'http://foo.io/aaa/'} | ${'bbb'} | ${'http://foo.io/aaa/bbb'} + ${'http://foo.io/aaa'} | ${'/bbb/'} | ${'http://foo.io/aaa/bbb/'} + ${'http://foo.io/aaa'} | ${'bbb/'} | ${'http://foo.io/aaa/bbb/'} + ${'http://foo.io/aaa/'} | ${'/bbb/'} | ${'http://foo.io/aaa/bbb/'} + ${'http://foo.io/aaa/'} | ${'bbb/'} | ${'http://foo.io/aaa/bbb/'} + ${'http://foo.io'} | ${'http://bar.io/bbb'} | ${'http://bar.io/bbb'} + ${'http://foo.io/'} | ${'http://bar.io/bbb'} | ${'http://bar.io/bbb'} + ${'http://foo.io/aaa'} | ${'http://bar.io/bbb'} | ${'http://bar.io/bbb'} + ${'http://foo.io/aaa/'} | ${'http://bar.io/bbb'} | ${'http://bar.io/bbb'} + ${'http://foo.io'} | ${'http://bar.io/bbb/'} | ${'http://bar.io/bbb/'} + ${'http://foo.io/'} | ${'http://bar.io/bbb/'} | ${'http://bar.io/bbb/'} + ${'http://foo.io/aaa'} | ${'http://bar.io/bbb/'} | ${'http://bar.io/bbb/'} + ${'http://foo.io/aaa/'} | ${'http://bar.io/bbb/'} | ${'http://bar.io/bbb/'} + ${'http://foo.io'} | ${'aaa?bbb=z'} | ${'http://foo.io/aaa?bbb=z'} + ${'http://foo.io'} | ${'/aaa?bbb=z'} | ${'http://foo.io/aaa?bbb=z'} + ${'http://foo.io/'} | ${'aaa?bbb=z'} | ${'http://foo.io/aaa?bbb=z'} + ${'http://foo.io/'} | ${'/aaa?bbb=z'} | ${'http://foo.io/aaa?bbb=z'} + ${'http://foo.io'} | ${'aaa/?bbb=z'} | ${'http://foo.io/aaa?bbb=z'} + `('$baseUrl + $x => $result', ({ baseUrl, x, result }) => { expect(resolveBaseUrl(baseUrl, x)).toBe(result); }); + test.each` + baseUrl | x | result + ${'http://foo.io'} | ${''} | ${'http://foo.io'} + ${'http://foo.io/'} | ${''} | ${'http://foo.io'} + ${'http://foo.io'} | ${'/'} | ${'http://foo.io/'} + ${'http://foo.io/'} | ${'/'} | ${'http://foo.io/'} + ${'http://foo.io'} | ${'/aaa'} | ${'http://foo.io/aaa'} + ${'http://foo.io'} | ${'aaa'} | ${'http://foo.io/aaa'} + ${'http://foo.io/'} | ${'/aaa'} | ${'http://foo.io/aaa'} + ${'http://foo.io/'} | ${'aaa'} | ${'http://foo.io/aaa'} + ${'http://foo.io'} | ${'/aaa/'} | ${'http://foo.io/aaa/'} + ${'http://foo.io'} | ${'aaa/'} | ${'http://foo.io/aaa/'} + ${'http://foo.io/'} | ${'/aaa/'} | ${'http://foo.io/aaa/'} + ${'http://foo.io/'} | ${'aaa/'} | ${'http://foo.io/aaa/'} + ${'http://foo.io/aaa'} | ${'/bbb'} | ${'http://foo.io/bbb'} + ${'http://foo.io/aaa'} | ${'bbb'} | ${'http://foo.io/bbb'} + ${'http://foo.io/aaa/'} | ${'/bbb'} | ${'http://foo.io/bbb'} + ${'http://foo.io/aaa/'} | ${'bbb'} | ${'http://foo.io/bbb'} + ${'http://foo.io/aaa'} | ${'/bbb/'} | ${'http://foo.io/bbb/'} + ${'http://foo.io/aaa'} | ${'bbb/'} | ${'http://foo.io/bbb/'} + ${'http://foo.io/aaa/'} | ${'/bbb/'} | ${'http://foo.io/bbb/'} + ${'http://foo.io/aaa/'} | ${'bbb/'} | ${'http://foo.io/bbb/'} + ${'http://foo.io'} | ${'http://bar.io/bbb'} | ${'http://bar.io/bbb'} + ${'http://foo.io/'} | ${'http://bar.io/bbb'} | ${'http://bar.io/bbb'} + ${'http://foo.io/aaa'} | ${'http://bar.io/bbb'} | ${'http://bar.io/bbb'} + ${'http://foo.io/aaa/'} | ${'http://bar.io/bbb'} | ${'http://bar.io/bbb'} + ${'http://foo.io'} | ${'http://bar.io/bbb/'} | ${'http://bar.io/bbb/'} + ${'http://foo.io/'} | ${'http://bar.io/bbb/'} | ${'http://bar.io/bbb/'} + ${'http://foo.io/aaa'} | ${'http://bar.io/bbb/'} | ${'http://bar.io/bbb/'} + ${'http://foo.io/aaa/'} | ${'http://bar.io/bbb/'} | ${'http://bar.io/bbb/'} + ${'http://foo.io'} | ${'aaa?bbb=z'} | ${'http://foo.io/aaa?bbb=z'} + ${'http://foo.io'} | ${'/aaa?bbb=z'} | ${'http://foo.io/aaa?bbb=z'} + ${'http://foo.io/'} | ${'aaa?bbb=z'} | ${'http://foo.io/aaa?bbb=z'} + ${'http://foo.io/'} | ${'/aaa?bbb=z'} | ${'http://foo.io/aaa?bbb=z'} + ${'http://foo.io'} | ${'aaa/?bbb=z'} | ${'http://foo.io/aaa?bbb=z'} + `('replaceUrlPath("$baseUrl", "$x") => $result', ({ baseUrl, x, result }) => { + expect(replaceUrlPath(baseUrl, x)).toBe(result); + }); + it('getQueryString', () => { expect(getQueryString({ a: 1, b: [1, 2] })).toBe('a=1&b=1&b=2'); }); diff --git a/lib/util/url.ts b/lib/util/url.ts index 0f48f048ff15e4..fda64af82b880b 100644 --- a/lib/util/url.ts +++ b/lib/util/url.ts @@ -30,6 +30,12 @@ export function trimLeadingSlash(path: string): string { return path.replace(/^\/+/, ''); } +/** + * Resolves an input path against a base URL + * + * @param baseUrl - base URL to resolve against + * @param input - input path (if this is a full URL, it will be returned) + */ export function resolveBaseUrl(baseUrl: string, input: string | URL): string { const inputString = input.toString(); @@ -44,6 +50,21 @@ export function resolveBaseUrl(baseUrl: string, input: string | URL): string { return host ? inputString : urlJoin(baseUrl, pathname || ''); } +/** + * Replaces the path of a URL with a new path + * + * @param baseUrl - source URL + * @param path - replacement path (if this is a full URL, it will be returned) + */ +export function replaceUrlPath(baseUrl: string | URL, path: string): string { + if (parseUrl(path)) { + return path; + } + + const { origin } = is.string(baseUrl) ? new URL(baseUrl) : baseUrl; + return urlJoin(origin, path); +} + export function getQueryString(params: Record): string { const usp = new URLSearchParams(); for (const [k, v] of Object.entries(params)) { From 814a58bf687f6e5f1af68272543c2a1cd1aa3347 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 2 Mar 2023 17:24:26 +0000 Subject: [PATCH 040/228] chore(deps): update node.js to a72354f (#20714) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .devcontainer/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 5bb5c2360e4b24..c425e180ea2624 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,4 +1,4 @@ -FROM containerbase/node:18.14.2@sha256:c2a0ae2585fd58e07bc648b125ffec66d6a157368c30da4a3ec730558f0693a6 +FROM containerbase/node:18.14.2@sha256:a72354f9adea2a6b7230c64403f77a13a201e2356843e012f3be5edd259adec1 USER root From 5249759b391cc5a6251c40ef732419453b4b31d1 Mon Sep 17 00:00:00 2001 From: HonkingGoose <34918129+HonkingGoose@users.noreply.github.com> Date: Fri, 3 Mar 2023 07:04:08 +0100 Subject: [PATCH 041/228] docs(config options): PAT triage rights to apply labels forking renovate (#20684) --- lib/modules/platform/github/index.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/modules/platform/github/index.md b/lib/modules/platform/github/index.md index 6540a424234468..6c06159d857b38 100644 --- a/lib/modules/platform/github/index.md +++ b/lib/modules/platform/github/index.md @@ -20,6 +20,11 @@ You can choose where you want to set `endpoint`: - In a environment variable - In a CLI parameter + +!!! tip "Labels and forking mode" + If you're self-hosting Renovate on GitHub.com with GitHub Actions in forking mode, and want Renovate to apply labels then you must give the PAT `triage` level rights on `issues`. + The `triage` level allows the PAT to apply/dismiss existing labels. + ## Running as a GitHub App Instead of a bot account with a Personal Access Token you can run `renovate` as a self-hosted [GitHub App](https://docs.github.com/en/developers/apps/getting-started-with-apps). From d37a372356d581ce24dc32d81968818ad284519f Mon Sep 17 00:00:00 2001 From: Sergei Zharinov Date: Fri, 3 Mar 2023 10:03:18 +0300 Subject: [PATCH 042/228] fix(packagist): Support both objects and minified arrays in v2 (#20720) --- .../datasource/packagist/schema.spec.ts | 8 ++++ lib/modules/datasource/packagist/schema.ts | 40 ++++++++++++------- 2 files changed, 34 insertions(+), 14 deletions(-) diff --git a/lib/modules/datasource/packagist/schema.spec.ts b/lib/modules/datasource/packagist/schema.spec.ts index 035a8a1660cb21..ee0f6bbe93ae9a 100644 --- a/lib/modules/datasource/packagist/schema.spec.ts +++ b/lib/modules/datasource/packagist/schema.spec.ts @@ -141,6 +141,14 @@ describe('modules/datasource/packagist/schema', () => { }, }) ).toEqual([{ version: '1.2.3' }]); + expect( + parsePackagesResponse('foo/bar', { + packages: { + 'foo/bar': { '1.2.3': { version: '1.2.3' } }, + 'baz/qux': { '4.5.6': { version: '4.5.6' } }, + }, + }) + ).toEqual([{ version: '1.2.3' }]); }); it('expands minified fields', () => { diff --git a/lib/modules/datasource/packagist/schema.ts b/lib/modules/datasource/packagist/schema.ts index 0205605fb9aca2..2dca13a950e0f8 100644 --- a/lib/modules/datasource/packagist/schema.ts +++ b/lib/modules/datasource/packagist/schema.ts @@ -1,7 +1,12 @@ import is from '@sindresorhus/is'; import { z } from 'zod'; import { logger } from '../../../logger'; -import { looseObject, looseRecord, looseValue } from '../../../util/schema'; +import { + looseArray, + looseObject, + looseRecord, + looseValue, +} from '../../../util/schema'; import type { Release, ReleaseResult } from '../types'; export const MinifiedArray = z.array(z.record(z.unknown())).transform((xs) => { @@ -54,30 +59,37 @@ export const ComposerRelease = z ); export type ComposerRelease = z.infer; +const ComposerReleasesLooseArray = looseArray(ComposerRelease); +type ComposerReleasesLooseArray = z.infer; + export const ComposerReleases = z .union([ - z - .record(looseValue(ComposerRelease)) - .transform((map) => Object.values(map)), - z.array(looseValue(ComposerRelease)), + MinifiedArray.transform((xs) => ComposerReleasesLooseArray.parse(xs)), + looseRecord(ComposerRelease).transform((map) => Object.values(map)), ]) - .catch([]) - .transform((xs) => xs.filter((x): x is ComposerRelease => x !== null)); + .catch([]); export type ComposerReleases = z.infer; -export const ComposerPackagesResponse = z.object({ - packages: z.record(z.unknown()), -}); +export const ComposerPackagesResponse = z + .object({ + packageName: z.string(), + packagesResponse: z.object({ + packages: z.record(z.unknown()), + }), + }) + .transform( + ({ packageName, packagesResponse }) => + packagesResponse.packages[packageName] + ) + .transform((xs) => ComposerReleases.parse(xs)); +export type ComposerPackagesResponse = z.infer; export function parsePackagesResponse( packageName: string, packagesResponse: unknown ): ComposerReleases { try { - const { packages } = ComposerPackagesResponse.parse(packagesResponse); - const array = MinifiedArray.parse(packages[packageName]); - const releases = ComposerReleases.parse(array); - return releases; + return ComposerPackagesResponse.parse({ packageName, packagesResponse }); } catch (err) { logger.debug( { packageName, err }, From 387b6a49fd9e7d06c38a0d9cf5009ab762ff7b12 Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Fri, 3 Mar 2023 09:32:17 +0100 Subject: [PATCH 043/228] chore: firm up bug report (#20724) --- .github/ISSUE_TEMPLATE/bug_report.yml | 12 ++++++------ .github/label-actions.yml | 15 +++++++++++++++ 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 483122857ab419..68e657e9f2aff8 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -1,12 +1,13 @@ name: Bug report -description: Confirmed bugs only. Create a discussion first. +description: Bug reports require a minimal reproduction and should be preceded by a Discussion first. labels: ['type:bug', 'status:requirements', 'priority-5-triage'] body: - type: markdown attributes: value: | - Please don't create these bug reports unless you're an experienced user or absolutely certain you found a bug. - It is preferred that you create a [discussion](https://github.com/renovatebot/renovate/discussions/new) first and allow maintainers to decide. + Please don't create these bug reports unless you're an experienced user or absolutely certain you found a bug, and you have a [minimal reproduction](https://github.com/renovatebot/renovate/blob/main/docs/development/minimal-reproductions.md). + Otherwise, it is preferred that you create a [discussion](https://github.com/renovatebot/renovate/discussions/new) first and allow maintainers to decide. + Invalid bug reports can confuse users so will be _deleted_, not closed. - type: dropdown id: how-are-you-running-renovate @@ -106,8 +107,7 @@ body: label: Have you created a minimal reproduction repository? description: Please read the [minimal reproductions documentation](https://github.com/renovatebot/renovate/blob/main/docs/development/minimal-reproductions.md) to learn how to make a good minimal reproduction repository. options: - - 'No reproduction repository' - - 'No reproduction, but I have linked to a public repo where it occurs' - - 'I have linked to a minimal reproduction repository in the bug description' + - 'I have read the minimal reproductions documentation and linked to such a repository in the bug description' + - 'I have explained in the description why a minimal reproduction is impossible' validations: required: true diff --git a/.github/label-actions.yml b/.github/label-actions.yml index f99c29d2fb9fb4..ca278c2ed28f7e 100644 --- a/.github/label-actions.yml +++ b/.github/label-actions.yml @@ -164,4 +164,19 @@ Good luck, + The Renovate team + +'invalid': + comment: > + Hi there, + + + This issue has been marked as invalid and will be closed and potentially deleted too. + Deletion is done so that invalid issues (such as mistaken bug reports) don't show up in repository searches and confuse future users. + + In future, please create _Discussions_ instead of Issues (including for the topic of this Issue if you still wish to discuss it). + + Good luck, + + The Renovate team From bacba2d05d12e301287a51f5df1525f9f4091715 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 3 Mar 2023 09:40:50 +0000 Subject: [PATCH 044/228] chore(deps): lock file maintenance (#20727) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 96 +++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 72 insertions(+), 24 deletions(-) diff --git a/yarn.lock b/yarn.lock index 6ff8c000fc04f8..e93d42ff19d828 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3081,9 +3081,9 @@ "@types/node" "*" "@types/node@*": - version "18.14.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.14.2.tgz#c076ed1d7b6095078ad3cf21dfeea951842778b1" - integrity sha512-1uEQxww3DaghA0RxqHx0O0ppVlo43pJhepY51OxuQIKHpjbnYLA7vcdwioNPzIqmC2u3I/dmylcqjlh0e7AyUA== + version "18.14.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.14.5.tgz#4a13a6445862159303fc38586598a9396fc408b3" + integrity sha512-CRT4tMK/DHYhw1fcCEBwME9CSaZNclxfzVMe7GsO6ULSwsttbj70wSiX6rZdIjGblu93sTJxLdhNIT85KKI7Qw== "@types/node@16.18.12": version "16.18.12" @@ -3233,11 +3233,11 @@ tsutils "^3.21.0" "@typescript-eslint/experimental-utils@^5.3.0": - version "5.53.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.53.0.tgz#e249e3a47ace290ea3d83a5a08c8d90cd7fe2a53" - integrity sha512-4SklZEwRn0jqkhtW+pPZpbKFXprwGneBndRM0TGzJu/LWdb9QV2hBgFIVU9AREo02BzqFvyG/ypd+xAW5YGhXw== + version "5.54.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.54.0.tgz#78ffdbc10a46be943f07d82ebfc7ea3ab8148cd0" + integrity sha512-rRYECOTh5V3iWsrOzXi7h1jp3Bi9OkJHrb3wECi3DVqMGTilo9wAYmCbT+6cGdrzUY3MWcAa2mESM6FMik6tVw== dependencies: - "@typescript-eslint/utils" "5.53.0" + "@typescript-eslint/utils" "5.54.0" "@typescript-eslint/parser@5.53.0": version "5.53.0" @@ -3257,6 +3257,14 @@ "@typescript-eslint/types" "5.53.0" "@typescript-eslint/visitor-keys" "5.53.0" +"@typescript-eslint/scope-manager@5.54.0": + version "5.54.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.54.0.tgz#74b28ac9a3fc8166f04e806c957adb8c1fd00536" + integrity sha512-VTPYNZ7vaWtYna9M4oD42zENOBrb+ZYyCNdFs949GcN8Miwn37b8b7eMj+EZaq7VK9fx0Jd+JhmkhjFhvnovhg== + dependencies: + "@typescript-eslint/types" "5.54.0" + "@typescript-eslint/visitor-keys" "5.54.0" + "@typescript-eslint/type-utils@5.53.0": version "5.53.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.53.0.tgz#41665449935ba9b4e6a1ba6e2a3f4b2c31d6cf97" @@ -3272,6 +3280,11 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.53.0.tgz#f79eca62b97e518ee124086a21a24f3be267026f" integrity sha512-5kcDL9ZUIP756K6+QOAfPkigJmCPHcLN7Zjdz76lQWWDdzfOhZDTj1irs6gPBKiXx5/6O3L0+AvupAut3z7D2A== +"@typescript-eslint/types@5.54.0": + version "5.54.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.54.0.tgz#7d519df01f50739254d89378e0dcac504cab2740" + integrity sha512-nExy+fDCBEgqblasfeE3aQ3NuafBUxZxgxXcYfzYRZFHdVvk5q60KhCSkG0noHgHRo/xQ/BOzURLZAafFpTkmQ== + "@typescript-eslint/typescript-estree@5.53.0": version "5.53.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.53.0.tgz#bc651dc28cf18ab248ecd18a4c886c744aebd690" @@ -3285,7 +3298,20 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/utils@5.53.0", "@typescript-eslint/utils@^5.10.0": +"@typescript-eslint/typescript-estree@5.54.0": + version "5.54.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.54.0.tgz#f6f3440cabee8a43a0b25fa498213ebb61fdfe99" + integrity sha512-X2rJG97Wj/VRo5YxJ8Qx26Zqf0RRKsVHd4sav8NElhbZzhpBI8jU54i6hfo9eheumj4oO4dcRN1B/zIVEqR/MQ== + dependencies: + "@typescript-eslint/types" "5.54.0" + "@typescript-eslint/visitor-keys" "5.54.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/utils@5.53.0": version "5.53.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.53.0.tgz#e55eaad9d6fffa120575ffaa530c7e802f13bce8" integrity sha512-VUOOtPv27UNWLxFwQK/8+7kvxVC+hPHNsJjzlJyotlaHjLSIgOCKj9I0DBUjwOOA64qjBwx5afAPjksqOxMO0g== @@ -3299,6 +3325,20 @@ eslint-utils "^3.0.0" semver "^7.3.7" +"@typescript-eslint/utils@5.54.0", "@typescript-eslint/utils@^5.10.0": + version "5.54.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.54.0.tgz#3db758aae078be7b54b8ea8ea4537ff6cd3fbc21" + integrity sha512-cuwm8D/Z/7AuyAeJ+T0r4WZmlnlxQ8wt7C7fLpFlKMR+dY6QO79Cq1WpJhvZbMA4ZeZGHiRWnht7ZJ8qkdAunw== + dependencies: + "@types/json-schema" "^7.0.9" + "@types/semver" "^7.3.12" + "@typescript-eslint/scope-manager" "5.54.0" + "@typescript-eslint/types" "5.54.0" + "@typescript-eslint/typescript-estree" "5.54.0" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" + semver "^7.3.7" + "@typescript-eslint/visitor-keys@5.53.0": version "5.53.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.53.0.tgz#8a5126623937cdd909c30d8fa72f79fa56cc1a9f" @@ -3307,6 +3347,14 @@ "@typescript-eslint/types" "5.53.0" eslint-visitor-keys "^3.3.0" +"@typescript-eslint/visitor-keys@5.54.0": + version "5.54.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.54.0.tgz#846878afbf0cd67c19cfa8d75947383d4490db8f" + integrity sha512-xu4wT7aRCakGINTLGeyGqDn+78BwFlggwBjnHa1ar/KaGagnmwLYmlrXIrgAaQ3AE1Vd6nLfKASm7LrFHNbKGA== + dependencies: + "@typescript-eslint/types" "5.54.0" + eslint-visitor-keys "^3.3.0" + "@yarnpkg/core@3.4.0": version "3.4.0" resolved "https://registry.yarnpkg.com/@yarnpkg/core/-/core-3.4.0.tgz#1684dfcbd4e68ff28a11a25154d415f7de2c8224" @@ -3973,9 +4021,9 @@ camelcase@^6.2.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001449: - version "1.0.30001458" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001458.tgz#871e35866b4654a7d25eccca86864f411825540c" - integrity sha512-lQ1VlUUq5q9ro9X+5gOEyH7i3vm+AYVT1WDCVB69XOZ17KZRhnZ9J0Sqz7wTHQaLBJccNCHq8/Ww5LlOIZbB0w== + version "1.0.30001460" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001460.tgz#31d2e26f0a2309860ed3eff154e03890d9d851a7" + integrity sha512-Bud7abqjvEjipUkpLs4D7gR0l8hBYBHoa+tGtKJHvT2AYzLp1z7EmVkUT4ERpVUfca8S2HGIVs883D8pUH1ZzQ== cardinal@^2.1.1: version "2.1.1" @@ -4682,9 +4730,9 @@ editorconfig@1.0.2: semver "^7.3.8" electron-to-chromium@^1.4.284: - version "1.4.311" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.311.tgz#953bc9a4767f5ce8ec125f9a1ad8e00e8f67e479" - integrity sha512-RoDlZufvrtr2Nx3Yx5MB8jX3aHIxm8nRWPJm3yVvyHmyKaRvn90RjzB6hNnt0AkhS3IInJdyRfQb4mWhPvUjVw== + version "1.4.317" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.317.tgz#9a3d38a1a37f26a417d3d95dafe198ff11ed072b" + integrity sha512-JhCRm9v30FMNzQSsjl4kXaygU+qHBD0Yh7mKxyjmF0V8VwYVB6qpBRX28GyAucrM9wDCpSUctT6FpMUQxbyKuA== email-addresses@5.0.0: version "5.0.0" @@ -5079,9 +5127,9 @@ esprima@^4.0.0, esprima@~4.0.0: integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== esquery@^1.4.0: - version "1.4.2" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.2.tgz#c6d3fee05dd665808e2ad870631f221f5617b1d1" - integrity sha512-JVSoLdTlTDkmjFmab7H/9SL9qGSyjElT3myyKp7krqjVFQCDLmj1QFaCLRFBszBKI0XVZaiiXvuPIX3ZwHe1Ng== + version "1.5.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== dependencies: estraverse "^5.1.0" @@ -6022,12 +6070,12 @@ is-arguments@^1.0.4: has-tostringtag "^1.0.0" is-array-buffer@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.1.tgz#deb1db4fcae48308d54ef2442706c0393997052a" - integrity sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ== + version "3.0.2" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" + integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== dependencies: call-bind "^1.0.2" - get-intrinsic "^1.1.3" + get-intrinsic "^1.2.0" is-typed-array "^1.1.10" is-arrayish@^0.2.1: @@ -7219,9 +7267,9 @@ lru-cache@^6.0.0: yallist "^4.0.0" lru-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1: - version "7.17.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.17.0.tgz#00c7ba5919e5ea7c69ff94ddabbf32cb09ab805c" - integrity sha512-zSxlVVwOabhVyTi6E8gYv2cr6bXK+8ifYz5/uyJb9feXX6NACVDwY4p5Ut3WC3Ivo/QhpARHU3iujx2xGAYHbQ== + version "7.18.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.1.tgz#4716408dec51d5d0104732647f584d1f6738b109" + integrity sha512-8/HcIENyQnfUTCDizRu9rrDyG6XG/21M4X7/YEGZeD76ZJilFPAUVb/2zysFf7VVO1LEjCDFyHp8pMMvozIrvg== luxon@3.2.1, luxon@^3.2.1: version "3.2.1" From 26e6da209d6d8512017a762dd5f493df64b37be2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 3 Mar 2023 10:32:33 +0000 Subject: [PATCH 045/228] build(deps): update aws-sdk-js-v3 monorepo to v3.282.0 (#20728) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 12 +- yarn.lock | 1502 ++++++++++++++++++++++++-------------------------- 2 files changed, 741 insertions(+), 773 deletions(-) diff --git a/package.json b/package.json index b2ab4b11c3051f..a5b4193b0252a3 100644 --- a/package.json +++ b/package.json @@ -135,12 +135,12 @@ "node": ">= 18.12.0" }, "dependencies": { - "@aws-sdk/client-codecommit": "3.256.0", - "@aws-sdk/client-ec2": "3.256.0", - "@aws-sdk/client-ecr": "3.256.0", - "@aws-sdk/client-iam": "3.256.0", - "@aws-sdk/client-rds": "3.256.0", - "@aws-sdk/client-s3": "3.256.0", + "@aws-sdk/client-codecommit": "3.282.0", + "@aws-sdk/client-ec2": "3.282.0", + "@aws-sdk/client-ecr": "3.282.0", + "@aws-sdk/client-iam": "3.282.0", + "@aws-sdk/client-rds": "3.282.0", + "@aws-sdk/client-s3": "3.282.0", "@breejs/later": "4.1.0", "@cheap-glitch/mi-cron": "1.0.1", "@iarna/toml": "3.0.0", diff --git a/yarn.lock b/yarn.lock index e93d42ff19d828..b537cdd5f5fc94 100644 --- a/yarn.lock +++ b/yarn.lock @@ -109,12 +109,12 @@ "@aws-sdk/util-utf8-browser" "^3.0.0" tslib "^1.11.1" -"@aws-sdk/abort-controller@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/abort-controller/-/abort-controller-3.254.0.tgz#62dfcbb2e58831b3fb26833227806ee06698f3f6" - integrity sha512-ZBJFCCU7mIXGLk5GFXrSReyUR/kOBju0kzd7nVAAQQlfkmHZEuFhKFFMXkfJZG0SC0ezCbmR/EzIqJ2mTI+pRA== +"@aws-sdk/abort-controller@3.272.0": + version "3.272.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/abort-controller/-/abort-controller-3.272.0.tgz#c2d244e9d422583a786dfb75485316cb1d4793ce" + integrity sha512-s2TV3phapcTwZNr4qLxbfuQuE9ZMP4RoJdkvRRCkKdm6jslsWLJf2Zlcxti/23hOlINUMYv2iXE2pftIgWGdpg== dependencies: - "@aws-sdk/types" "3.254.0" + "@aws-sdk/types" "3.272.0" tslib "^2.3.1" "@aws-sdk/chunked-blob-reader-native@3.208.0": @@ -132,593 +132,584 @@ dependencies: tslib "^2.3.1" -"@aws-sdk/client-codecommit@3.256.0": - version "3.256.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-codecommit/-/client-codecommit-3.256.0.tgz#bc57f4394ac975d338336e5697573ddcbe86216f" - integrity sha512-ENtJGttlcF+G90gaL8YxkAPpZJUbateBDxbjq4liTFcj2yg8AIZhkkXKplVIDyoi9ff02wxwb9CsHYfa+gOOfw== +"@aws-sdk/client-codecommit@3.282.0": + version "3.282.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-codecommit/-/client-codecommit-3.282.0.tgz#ab8713de15e3cd1a2d7aa1d845973c71881aaa21" + integrity sha512-7MCPH9O87FEKWAJ6PGAnqNgsOvEhLQ+N8oBVMzZgZZ/qdj+EaSMdZaMdooVRYL6APQ05yrNtZHD2VhCMpOYy6Q== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/client-sts" "3.256.0" - "@aws-sdk/config-resolver" "3.254.0" - "@aws-sdk/credential-provider-node" "3.256.0" - "@aws-sdk/fetch-http-handler" "3.254.0" - "@aws-sdk/hash-node" "3.254.0" - "@aws-sdk/invalid-dependency" "3.254.0" - "@aws-sdk/middleware-content-length" "3.254.0" - "@aws-sdk/middleware-endpoint" "3.254.0" - "@aws-sdk/middleware-host-header" "3.254.0" - "@aws-sdk/middleware-logger" "3.254.0" - "@aws-sdk/middleware-recursion-detection" "3.254.0" - "@aws-sdk/middleware-retry" "3.254.0" - "@aws-sdk/middleware-serde" "3.254.0" - "@aws-sdk/middleware-signing" "3.254.0" - "@aws-sdk/middleware-stack" "3.254.0" - "@aws-sdk/middleware-user-agent" "3.254.0" - "@aws-sdk/node-config-provider" "3.254.0" - "@aws-sdk/node-http-handler" "3.254.0" - "@aws-sdk/protocol-http" "3.254.0" - "@aws-sdk/smithy-client" "3.254.0" - "@aws-sdk/types" "3.254.0" - "@aws-sdk/url-parser" "3.254.0" + "@aws-sdk/client-sts" "3.282.0" + "@aws-sdk/config-resolver" "3.282.0" + "@aws-sdk/credential-provider-node" "3.282.0" + "@aws-sdk/fetch-http-handler" "3.282.0" + "@aws-sdk/hash-node" "3.272.0" + "@aws-sdk/invalid-dependency" "3.272.0" + "@aws-sdk/middleware-content-length" "3.282.0" + "@aws-sdk/middleware-endpoint" "3.282.0" + "@aws-sdk/middleware-host-header" "3.282.0" + "@aws-sdk/middleware-logger" "3.272.0" + "@aws-sdk/middleware-recursion-detection" "3.282.0" + "@aws-sdk/middleware-retry" "3.282.0" + "@aws-sdk/middleware-serde" "3.272.0" + "@aws-sdk/middleware-signing" "3.282.0" + "@aws-sdk/middleware-stack" "3.272.0" + "@aws-sdk/middleware-user-agent" "3.282.0" + "@aws-sdk/node-config-provider" "3.272.0" + "@aws-sdk/node-http-handler" "3.282.0" + "@aws-sdk/protocol-http" "3.282.0" + "@aws-sdk/smithy-client" "3.279.0" + "@aws-sdk/types" "3.272.0" + "@aws-sdk/url-parser" "3.272.0" "@aws-sdk/util-base64" "3.208.0" "@aws-sdk/util-body-length-browser" "3.188.0" "@aws-sdk/util-body-length-node" "3.208.0" - "@aws-sdk/util-defaults-mode-browser" "3.254.0" - "@aws-sdk/util-defaults-mode-node" "3.254.0" - "@aws-sdk/util-endpoints" "3.254.0" - "@aws-sdk/util-retry" "3.254.0" - "@aws-sdk/util-user-agent-browser" "3.254.0" - "@aws-sdk/util-user-agent-node" "3.254.0" - "@aws-sdk/util-utf8-browser" "3.188.0" - "@aws-sdk/util-utf8-node" "3.208.0" + "@aws-sdk/util-defaults-mode-browser" "3.279.0" + "@aws-sdk/util-defaults-mode-node" "3.282.0" + "@aws-sdk/util-endpoints" "3.272.0" + "@aws-sdk/util-retry" "3.272.0" + "@aws-sdk/util-user-agent-browser" "3.282.0" + "@aws-sdk/util-user-agent-node" "3.282.0" + "@aws-sdk/util-utf8" "3.254.0" tslib "^2.3.1" uuid "^8.3.2" -"@aws-sdk/client-ec2@3.256.0": - version "3.256.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-ec2/-/client-ec2-3.256.0.tgz#397b58e9eff7bfdbb61848f5fc1d6326d84c9970" - integrity sha512-XRwxeYVQtXe121VYkCyNEQ2e4lgQNcf64qHK03pynHhCP0QSGfAVIpTjGWflA0AbeabgWKztrRWZM/bqlo2jvA== +"@aws-sdk/client-ec2@3.282.0": + version "3.282.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-ec2/-/client-ec2-3.282.0.tgz#97b3d2e0489d62b9389b7789d933e2d5b0f372d6" + integrity sha512-6tVTvhmQxIyyRwIamg8FHJF/4rowUF49dEm72s0iKuZYoad244BHHSIm9EeWeKFeHV32UMh36pI+phLtvpL1SQ== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/client-sts" "3.256.0" - "@aws-sdk/config-resolver" "3.254.0" - "@aws-sdk/credential-provider-node" "3.256.0" - "@aws-sdk/fetch-http-handler" "3.254.0" - "@aws-sdk/hash-node" "3.254.0" - "@aws-sdk/invalid-dependency" "3.254.0" - "@aws-sdk/middleware-content-length" "3.254.0" - "@aws-sdk/middleware-endpoint" "3.254.0" - "@aws-sdk/middleware-host-header" "3.254.0" - "@aws-sdk/middleware-logger" "3.254.0" - "@aws-sdk/middleware-recursion-detection" "3.254.0" - "@aws-sdk/middleware-retry" "3.254.0" - "@aws-sdk/middleware-sdk-ec2" "3.254.0" - "@aws-sdk/middleware-serde" "3.254.0" - "@aws-sdk/middleware-signing" "3.254.0" - "@aws-sdk/middleware-stack" "3.254.0" - "@aws-sdk/middleware-user-agent" "3.254.0" - "@aws-sdk/node-config-provider" "3.254.0" - "@aws-sdk/node-http-handler" "3.254.0" - "@aws-sdk/protocol-http" "3.254.0" - "@aws-sdk/smithy-client" "3.254.0" - "@aws-sdk/types" "3.254.0" - "@aws-sdk/url-parser" "3.254.0" + "@aws-sdk/client-sts" "3.282.0" + "@aws-sdk/config-resolver" "3.282.0" + "@aws-sdk/credential-provider-node" "3.282.0" + "@aws-sdk/fetch-http-handler" "3.282.0" + "@aws-sdk/hash-node" "3.272.0" + "@aws-sdk/invalid-dependency" "3.272.0" + "@aws-sdk/middleware-content-length" "3.282.0" + "@aws-sdk/middleware-endpoint" "3.282.0" + "@aws-sdk/middleware-host-header" "3.282.0" + "@aws-sdk/middleware-logger" "3.272.0" + "@aws-sdk/middleware-recursion-detection" "3.282.0" + "@aws-sdk/middleware-retry" "3.282.0" + "@aws-sdk/middleware-sdk-ec2" "3.282.0" + "@aws-sdk/middleware-serde" "3.272.0" + "@aws-sdk/middleware-signing" "3.282.0" + "@aws-sdk/middleware-stack" "3.272.0" + "@aws-sdk/middleware-user-agent" "3.282.0" + "@aws-sdk/node-config-provider" "3.272.0" + "@aws-sdk/node-http-handler" "3.282.0" + "@aws-sdk/protocol-http" "3.282.0" + "@aws-sdk/smithy-client" "3.279.0" + "@aws-sdk/types" "3.272.0" + "@aws-sdk/url-parser" "3.272.0" "@aws-sdk/util-base64" "3.208.0" "@aws-sdk/util-body-length-browser" "3.188.0" "@aws-sdk/util-body-length-node" "3.208.0" - "@aws-sdk/util-defaults-mode-browser" "3.254.0" - "@aws-sdk/util-defaults-mode-node" "3.254.0" - "@aws-sdk/util-endpoints" "3.254.0" - "@aws-sdk/util-retry" "3.254.0" - "@aws-sdk/util-user-agent-browser" "3.254.0" - "@aws-sdk/util-user-agent-node" "3.254.0" - "@aws-sdk/util-utf8-browser" "3.188.0" - "@aws-sdk/util-utf8-node" "3.208.0" - "@aws-sdk/util-waiter" "3.254.0" - fast-xml-parser "4.0.11" + "@aws-sdk/util-defaults-mode-browser" "3.279.0" + "@aws-sdk/util-defaults-mode-node" "3.282.0" + "@aws-sdk/util-endpoints" "3.272.0" + "@aws-sdk/util-retry" "3.272.0" + "@aws-sdk/util-user-agent-browser" "3.282.0" + "@aws-sdk/util-user-agent-node" "3.282.0" + "@aws-sdk/util-utf8" "3.254.0" + "@aws-sdk/util-waiter" "3.272.0" + fast-xml-parser "4.1.2" tslib "^2.3.1" uuid "^8.3.2" -"@aws-sdk/client-ecr@3.256.0": - version "3.256.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-ecr/-/client-ecr-3.256.0.tgz#f1ab2f83254e954ac250ac3216bb1c0fafbf0ae6" - integrity sha512-12LIhUGfD+9M+oL5RSdq3ZCuHw8qI4Z66VNidQP0f0ATr52d80c2qARPvo7Bh6QR0GRBeiDygm8BIuJE/v2QhQ== +"@aws-sdk/client-ecr@3.282.0": + version "3.282.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-ecr/-/client-ecr-3.282.0.tgz#7369fbe8970ab04b91bd1a285a7d3790948ecd67" + integrity sha512-r2KpgoXHGlL91xVVEClwR3NcNQ1mzdxghloynN+62VCOZOlaReQD2yhnh8oPhjpQbvWeFiuBjBNMZY8pXT1ILA== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/client-sts" "3.256.0" - "@aws-sdk/config-resolver" "3.254.0" - "@aws-sdk/credential-provider-node" "3.256.0" - "@aws-sdk/fetch-http-handler" "3.254.0" - "@aws-sdk/hash-node" "3.254.0" - "@aws-sdk/invalid-dependency" "3.254.0" - "@aws-sdk/middleware-content-length" "3.254.0" - "@aws-sdk/middleware-endpoint" "3.254.0" - "@aws-sdk/middleware-host-header" "3.254.0" - "@aws-sdk/middleware-logger" "3.254.0" - "@aws-sdk/middleware-recursion-detection" "3.254.0" - "@aws-sdk/middleware-retry" "3.254.0" - "@aws-sdk/middleware-serde" "3.254.0" - "@aws-sdk/middleware-signing" "3.254.0" - "@aws-sdk/middleware-stack" "3.254.0" - "@aws-sdk/middleware-user-agent" "3.254.0" - "@aws-sdk/node-config-provider" "3.254.0" - "@aws-sdk/node-http-handler" "3.254.0" - "@aws-sdk/protocol-http" "3.254.0" - "@aws-sdk/smithy-client" "3.254.0" - "@aws-sdk/types" "3.254.0" - "@aws-sdk/url-parser" "3.254.0" + "@aws-sdk/client-sts" "3.282.0" + "@aws-sdk/config-resolver" "3.282.0" + "@aws-sdk/credential-provider-node" "3.282.0" + "@aws-sdk/fetch-http-handler" "3.282.0" + "@aws-sdk/hash-node" "3.272.0" + "@aws-sdk/invalid-dependency" "3.272.0" + "@aws-sdk/middleware-content-length" "3.282.0" + "@aws-sdk/middleware-endpoint" "3.282.0" + "@aws-sdk/middleware-host-header" "3.282.0" + "@aws-sdk/middleware-logger" "3.272.0" + "@aws-sdk/middleware-recursion-detection" "3.282.0" + "@aws-sdk/middleware-retry" "3.282.0" + "@aws-sdk/middleware-serde" "3.272.0" + "@aws-sdk/middleware-signing" "3.282.0" + "@aws-sdk/middleware-stack" "3.272.0" + "@aws-sdk/middleware-user-agent" "3.282.0" + "@aws-sdk/node-config-provider" "3.272.0" + "@aws-sdk/node-http-handler" "3.282.0" + "@aws-sdk/protocol-http" "3.282.0" + "@aws-sdk/smithy-client" "3.279.0" + "@aws-sdk/types" "3.272.0" + "@aws-sdk/url-parser" "3.272.0" "@aws-sdk/util-base64" "3.208.0" "@aws-sdk/util-body-length-browser" "3.188.0" "@aws-sdk/util-body-length-node" "3.208.0" - "@aws-sdk/util-defaults-mode-browser" "3.254.0" - "@aws-sdk/util-defaults-mode-node" "3.254.0" - "@aws-sdk/util-endpoints" "3.254.0" - "@aws-sdk/util-retry" "3.254.0" - "@aws-sdk/util-user-agent-browser" "3.254.0" - "@aws-sdk/util-user-agent-node" "3.254.0" - "@aws-sdk/util-utf8-browser" "3.188.0" - "@aws-sdk/util-utf8-node" "3.208.0" - "@aws-sdk/util-waiter" "3.254.0" + "@aws-sdk/util-defaults-mode-browser" "3.279.0" + "@aws-sdk/util-defaults-mode-node" "3.282.0" + "@aws-sdk/util-endpoints" "3.272.0" + "@aws-sdk/util-retry" "3.272.0" + "@aws-sdk/util-user-agent-browser" "3.282.0" + "@aws-sdk/util-user-agent-node" "3.282.0" + "@aws-sdk/util-utf8" "3.254.0" + "@aws-sdk/util-waiter" "3.272.0" tslib "^2.3.1" -"@aws-sdk/client-iam@3.256.0": - version "3.256.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-iam/-/client-iam-3.256.0.tgz#d7cb5fed443d273a4003f2f13d03af4a0ee639eb" - integrity sha512-9NMLpF15O+k8EA96Yon6cIik+3IqZ0LQEDVp8ad/bP3kWAgExCiu7nI50a/55RZ3rA7+wn1ZcGnHA0W3unbKng== +"@aws-sdk/client-iam@3.282.0": + version "3.282.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-iam/-/client-iam-3.282.0.tgz#b7559b44d080c9cdcb2c625ef6f47e72e2057c36" + integrity sha512-rWSxgNeSYRwaE1XXSeQHHBpQpZSByJZ5nbM57oqatzwpquxpFEy+P4x2CZNBrXSr3lfp860TpYvk63XRobrzIg== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/client-sts" "3.256.0" - "@aws-sdk/config-resolver" "3.254.0" - "@aws-sdk/credential-provider-node" "3.256.0" - "@aws-sdk/fetch-http-handler" "3.254.0" - "@aws-sdk/hash-node" "3.254.0" - "@aws-sdk/invalid-dependency" "3.254.0" - "@aws-sdk/middleware-content-length" "3.254.0" - "@aws-sdk/middleware-endpoint" "3.254.0" - "@aws-sdk/middleware-host-header" "3.254.0" - "@aws-sdk/middleware-logger" "3.254.0" - "@aws-sdk/middleware-recursion-detection" "3.254.0" - "@aws-sdk/middleware-retry" "3.254.0" - "@aws-sdk/middleware-serde" "3.254.0" - "@aws-sdk/middleware-signing" "3.254.0" - "@aws-sdk/middleware-stack" "3.254.0" - "@aws-sdk/middleware-user-agent" "3.254.0" - "@aws-sdk/node-config-provider" "3.254.0" - "@aws-sdk/node-http-handler" "3.254.0" - "@aws-sdk/protocol-http" "3.254.0" - "@aws-sdk/smithy-client" "3.254.0" - "@aws-sdk/types" "3.254.0" - "@aws-sdk/url-parser" "3.254.0" + "@aws-sdk/client-sts" "3.282.0" + "@aws-sdk/config-resolver" "3.282.0" + "@aws-sdk/credential-provider-node" "3.282.0" + "@aws-sdk/fetch-http-handler" "3.282.0" + "@aws-sdk/hash-node" "3.272.0" + "@aws-sdk/invalid-dependency" "3.272.0" + "@aws-sdk/middleware-content-length" "3.282.0" + "@aws-sdk/middleware-endpoint" "3.282.0" + "@aws-sdk/middleware-host-header" "3.282.0" + "@aws-sdk/middleware-logger" "3.272.0" + "@aws-sdk/middleware-recursion-detection" "3.282.0" + "@aws-sdk/middleware-retry" "3.282.0" + "@aws-sdk/middleware-serde" "3.272.0" + "@aws-sdk/middleware-signing" "3.282.0" + "@aws-sdk/middleware-stack" "3.272.0" + "@aws-sdk/middleware-user-agent" "3.282.0" + "@aws-sdk/node-config-provider" "3.272.0" + "@aws-sdk/node-http-handler" "3.282.0" + "@aws-sdk/protocol-http" "3.282.0" + "@aws-sdk/smithy-client" "3.279.0" + "@aws-sdk/types" "3.272.0" + "@aws-sdk/url-parser" "3.272.0" "@aws-sdk/util-base64" "3.208.0" "@aws-sdk/util-body-length-browser" "3.188.0" "@aws-sdk/util-body-length-node" "3.208.0" - "@aws-sdk/util-defaults-mode-browser" "3.254.0" - "@aws-sdk/util-defaults-mode-node" "3.254.0" - "@aws-sdk/util-endpoints" "3.254.0" - "@aws-sdk/util-retry" "3.254.0" - "@aws-sdk/util-user-agent-browser" "3.254.0" - "@aws-sdk/util-user-agent-node" "3.254.0" - "@aws-sdk/util-utf8-browser" "3.188.0" - "@aws-sdk/util-utf8-node" "3.208.0" - "@aws-sdk/util-waiter" "3.254.0" - fast-xml-parser "4.0.11" + "@aws-sdk/util-defaults-mode-browser" "3.279.0" + "@aws-sdk/util-defaults-mode-node" "3.282.0" + "@aws-sdk/util-endpoints" "3.272.0" + "@aws-sdk/util-retry" "3.272.0" + "@aws-sdk/util-user-agent-browser" "3.282.0" + "@aws-sdk/util-user-agent-node" "3.282.0" + "@aws-sdk/util-utf8" "3.254.0" + "@aws-sdk/util-waiter" "3.272.0" + fast-xml-parser "4.1.2" tslib "^2.3.1" -"@aws-sdk/client-rds@3.256.0": - version "3.256.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-rds/-/client-rds-3.256.0.tgz#d9ce54f62c122a88459f76f4cf1f55b55103a648" - integrity sha512-+ODx1AMHnshteDGzJHlggyLsuN/ZkyqhvCj/gb1a2HQ84bo3juL/90NgCAleqkTzKVEpWJZnCtLwySkymbFBqQ== +"@aws-sdk/client-rds@3.282.0": + version "3.282.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-rds/-/client-rds-3.282.0.tgz#1f3e79bfd0786daa8cd81c9d6ac1d7e708ae0550" + integrity sha512-LxxnZ+AmG0pC5ddWEcYCtUzQcZw1+aMBlGEjPGSZWSs+5ll4BOSeyO/h+78mjKLoRRt1b0k6uP8GxO2QyX37Hw== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/client-sts" "3.256.0" - "@aws-sdk/config-resolver" "3.254.0" - "@aws-sdk/credential-provider-node" "3.256.0" - "@aws-sdk/fetch-http-handler" "3.254.0" - "@aws-sdk/hash-node" "3.254.0" - "@aws-sdk/invalid-dependency" "3.254.0" - "@aws-sdk/middleware-content-length" "3.254.0" - "@aws-sdk/middleware-endpoint" "3.254.0" - "@aws-sdk/middleware-host-header" "3.254.0" - "@aws-sdk/middleware-logger" "3.254.0" - "@aws-sdk/middleware-recursion-detection" "3.254.0" - "@aws-sdk/middleware-retry" "3.254.0" - "@aws-sdk/middleware-sdk-rds" "3.254.0" - "@aws-sdk/middleware-serde" "3.254.0" - "@aws-sdk/middleware-signing" "3.254.0" - "@aws-sdk/middleware-stack" "3.254.0" - "@aws-sdk/middleware-user-agent" "3.254.0" - "@aws-sdk/node-config-provider" "3.254.0" - "@aws-sdk/node-http-handler" "3.254.0" - "@aws-sdk/protocol-http" "3.254.0" - "@aws-sdk/smithy-client" "3.254.0" - "@aws-sdk/types" "3.254.0" - "@aws-sdk/url-parser" "3.254.0" + "@aws-sdk/client-sts" "3.282.0" + "@aws-sdk/config-resolver" "3.282.0" + "@aws-sdk/credential-provider-node" "3.282.0" + "@aws-sdk/fetch-http-handler" "3.282.0" + "@aws-sdk/hash-node" "3.272.0" + "@aws-sdk/invalid-dependency" "3.272.0" + "@aws-sdk/middleware-content-length" "3.282.0" + "@aws-sdk/middleware-endpoint" "3.282.0" + "@aws-sdk/middleware-host-header" "3.282.0" + "@aws-sdk/middleware-logger" "3.272.0" + "@aws-sdk/middleware-recursion-detection" "3.282.0" + "@aws-sdk/middleware-retry" "3.282.0" + "@aws-sdk/middleware-sdk-rds" "3.282.0" + "@aws-sdk/middleware-serde" "3.272.0" + "@aws-sdk/middleware-signing" "3.282.0" + "@aws-sdk/middleware-stack" "3.272.0" + "@aws-sdk/middleware-user-agent" "3.282.0" + "@aws-sdk/node-config-provider" "3.272.0" + "@aws-sdk/node-http-handler" "3.282.0" + "@aws-sdk/protocol-http" "3.282.0" + "@aws-sdk/smithy-client" "3.279.0" + "@aws-sdk/types" "3.272.0" + "@aws-sdk/url-parser" "3.272.0" "@aws-sdk/util-base64" "3.208.0" "@aws-sdk/util-body-length-browser" "3.188.0" "@aws-sdk/util-body-length-node" "3.208.0" - "@aws-sdk/util-defaults-mode-browser" "3.254.0" - "@aws-sdk/util-defaults-mode-node" "3.254.0" - "@aws-sdk/util-endpoints" "3.254.0" - "@aws-sdk/util-retry" "3.254.0" - "@aws-sdk/util-user-agent-browser" "3.254.0" - "@aws-sdk/util-user-agent-node" "3.254.0" - "@aws-sdk/util-utf8-browser" "3.188.0" - "@aws-sdk/util-utf8-node" "3.208.0" - "@aws-sdk/util-waiter" "3.254.0" - fast-xml-parser "4.0.11" + "@aws-sdk/util-defaults-mode-browser" "3.279.0" + "@aws-sdk/util-defaults-mode-node" "3.282.0" + "@aws-sdk/util-endpoints" "3.272.0" + "@aws-sdk/util-retry" "3.272.0" + "@aws-sdk/util-user-agent-browser" "3.282.0" + "@aws-sdk/util-user-agent-node" "3.282.0" + "@aws-sdk/util-utf8" "3.254.0" + "@aws-sdk/util-waiter" "3.272.0" + fast-xml-parser "4.1.2" tslib "^2.3.1" -"@aws-sdk/client-s3@3.256.0": - version "3.256.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.256.0.tgz#9a9aa77f13a54f6e1da67d4cba3d0e2552e59c82" - integrity sha512-9SpZGe+PVLvIbn6VFthjl9OxIqYJCiesUDwcMYz2CdF1mVVKnyyrW52zooH6wz1u7tbJCwr5Vdjn9IhJpu6PcQ== +"@aws-sdk/client-s3@3.282.0": + version "3.282.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.282.0.tgz#1b794762ce0278e5b50d8095765a58b18fa31a52" + integrity sha512-Pc3GqSvsQhhsMwbbs+iqv/Ju2HK0z0Hwat1k+bIdzXnEBb8L+KQFuvabqlXd3QAkjkGuG+uHYqB6FheUwN3amg== dependencies: "@aws-crypto/sha1-browser" "3.0.0" "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/client-sts" "3.256.0" - "@aws-sdk/config-resolver" "3.254.0" - "@aws-sdk/credential-provider-node" "3.256.0" - "@aws-sdk/eventstream-serde-browser" "3.254.0" - "@aws-sdk/eventstream-serde-config-resolver" "3.254.0" - "@aws-sdk/eventstream-serde-node" "3.254.0" - "@aws-sdk/fetch-http-handler" "3.254.0" - "@aws-sdk/hash-blob-browser" "3.254.0" - "@aws-sdk/hash-node" "3.254.0" - "@aws-sdk/hash-stream-node" "3.254.0" - "@aws-sdk/invalid-dependency" "3.254.0" - "@aws-sdk/md5-js" "3.254.0" - "@aws-sdk/middleware-bucket-endpoint" "3.254.0" - "@aws-sdk/middleware-content-length" "3.254.0" - "@aws-sdk/middleware-endpoint" "3.254.0" - "@aws-sdk/middleware-expect-continue" "3.254.0" - "@aws-sdk/middleware-flexible-checksums" "3.254.0" - "@aws-sdk/middleware-host-header" "3.254.0" - "@aws-sdk/middleware-location-constraint" "3.254.0" - "@aws-sdk/middleware-logger" "3.254.0" - "@aws-sdk/middleware-recursion-detection" "3.254.0" - "@aws-sdk/middleware-retry" "3.254.0" - "@aws-sdk/middleware-sdk-s3" "3.254.0" - "@aws-sdk/middleware-serde" "3.254.0" - "@aws-sdk/middleware-signing" "3.254.0" - "@aws-sdk/middleware-ssec" "3.254.0" - "@aws-sdk/middleware-stack" "3.254.0" - "@aws-sdk/middleware-user-agent" "3.254.0" - "@aws-sdk/node-config-provider" "3.254.0" - "@aws-sdk/node-http-handler" "3.254.0" - "@aws-sdk/protocol-http" "3.254.0" - "@aws-sdk/signature-v4-multi-region" "3.254.0" - "@aws-sdk/smithy-client" "3.254.0" - "@aws-sdk/types" "3.254.0" - "@aws-sdk/url-parser" "3.254.0" + "@aws-sdk/client-sts" "3.282.0" + "@aws-sdk/config-resolver" "3.282.0" + "@aws-sdk/credential-provider-node" "3.282.0" + "@aws-sdk/eventstream-serde-browser" "3.272.0" + "@aws-sdk/eventstream-serde-config-resolver" "3.272.0" + "@aws-sdk/eventstream-serde-node" "3.272.0" + "@aws-sdk/fetch-http-handler" "3.282.0" + "@aws-sdk/hash-blob-browser" "3.272.0" + "@aws-sdk/hash-node" "3.272.0" + "@aws-sdk/hash-stream-node" "3.272.0" + "@aws-sdk/invalid-dependency" "3.272.0" + "@aws-sdk/md5-js" "3.272.0" + "@aws-sdk/middleware-bucket-endpoint" "3.282.0" + "@aws-sdk/middleware-content-length" "3.282.0" + "@aws-sdk/middleware-endpoint" "3.282.0" + "@aws-sdk/middleware-expect-continue" "3.282.0" + "@aws-sdk/middleware-flexible-checksums" "3.282.0" + "@aws-sdk/middleware-host-header" "3.282.0" + "@aws-sdk/middleware-location-constraint" "3.272.0" + "@aws-sdk/middleware-logger" "3.272.0" + "@aws-sdk/middleware-recursion-detection" "3.282.0" + "@aws-sdk/middleware-retry" "3.282.0" + "@aws-sdk/middleware-sdk-s3" "3.282.0" + "@aws-sdk/middleware-serde" "3.272.0" + "@aws-sdk/middleware-signing" "3.282.0" + "@aws-sdk/middleware-ssec" "3.272.0" + "@aws-sdk/middleware-stack" "3.272.0" + "@aws-sdk/middleware-user-agent" "3.282.0" + "@aws-sdk/node-config-provider" "3.272.0" + "@aws-sdk/node-http-handler" "3.282.0" + "@aws-sdk/protocol-http" "3.282.0" + "@aws-sdk/signature-v4-multi-region" "3.282.0" + "@aws-sdk/smithy-client" "3.279.0" + "@aws-sdk/types" "3.272.0" + "@aws-sdk/url-parser" "3.272.0" "@aws-sdk/util-base64" "3.208.0" "@aws-sdk/util-body-length-browser" "3.188.0" "@aws-sdk/util-body-length-node" "3.208.0" - "@aws-sdk/util-defaults-mode-browser" "3.254.0" - "@aws-sdk/util-defaults-mode-node" "3.254.0" - "@aws-sdk/util-endpoints" "3.254.0" - "@aws-sdk/util-retry" "3.254.0" - "@aws-sdk/util-stream-browser" "3.254.0" - "@aws-sdk/util-stream-node" "3.254.0" - "@aws-sdk/util-user-agent-browser" "3.254.0" - "@aws-sdk/util-user-agent-node" "3.254.0" - "@aws-sdk/util-utf8-browser" "3.188.0" - "@aws-sdk/util-utf8-node" "3.208.0" - "@aws-sdk/util-waiter" "3.254.0" + "@aws-sdk/util-defaults-mode-browser" "3.279.0" + "@aws-sdk/util-defaults-mode-node" "3.282.0" + "@aws-sdk/util-endpoints" "3.272.0" + "@aws-sdk/util-retry" "3.272.0" + "@aws-sdk/util-stream-browser" "3.282.0" + "@aws-sdk/util-stream-node" "3.282.0" + "@aws-sdk/util-user-agent-browser" "3.282.0" + "@aws-sdk/util-user-agent-node" "3.282.0" + "@aws-sdk/util-utf8" "3.254.0" + "@aws-sdk/util-waiter" "3.272.0" "@aws-sdk/xml-builder" "3.201.0" - fast-xml-parser "4.0.11" + fast-xml-parser "4.1.2" tslib "^2.3.1" -"@aws-sdk/client-sso-oidc@3.256.0": - version "3.256.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.256.0.tgz#c71f29df3fb1cd152208575bd7f3ee102211bebf" - integrity sha512-HR57pMdL5zGpxHnKYx1HjgnbVYlhTDZwyBS7k9JfiEDwPnGH8y169aNgVs+iaX0rIRlv6AyVstjqjZXGxODS4w== +"@aws-sdk/client-sso-oidc@3.282.0": + version "3.282.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.282.0.tgz#538259969e472e4497f01c8b6fe6fafd59db4147" + integrity sha512-upC4yBZllAXg5OVIuS8Lu9MI1aqfAObl2BBixj9fIYbDanQ02s0b1IwfZqlOqNNkGzMko1AWyiOSyOdVgyJ+xg== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/config-resolver" "3.254.0" - "@aws-sdk/fetch-http-handler" "3.254.0" - "@aws-sdk/hash-node" "3.254.0" - "@aws-sdk/invalid-dependency" "3.254.0" - "@aws-sdk/middleware-content-length" "3.254.0" - "@aws-sdk/middleware-endpoint" "3.254.0" - "@aws-sdk/middleware-host-header" "3.254.0" - "@aws-sdk/middleware-logger" "3.254.0" - "@aws-sdk/middleware-recursion-detection" "3.254.0" - "@aws-sdk/middleware-retry" "3.254.0" - "@aws-sdk/middleware-serde" "3.254.0" - "@aws-sdk/middleware-stack" "3.254.0" - "@aws-sdk/middleware-user-agent" "3.254.0" - "@aws-sdk/node-config-provider" "3.254.0" - "@aws-sdk/node-http-handler" "3.254.0" - "@aws-sdk/protocol-http" "3.254.0" - "@aws-sdk/smithy-client" "3.254.0" - "@aws-sdk/types" "3.254.0" - "@aws-sdk/url-parser" "3.254.0" + "@aws-sdk/config-resolver" "3.282.0" + "@aws-sdk/fetch-http-handler" "3.282.0" + "@aws-sdk/hash-node" "3.272.0" + "@aws-sdk/invalid-dependency" "3.272.0" + "@aws-sdk/middleware-content-length" "3.282.0" + "@aws-sdk/middleware-endpoint" "3.282.0" + "@aws-sdk/middleware-host-header" "3.282.0" + "@aws-sdk/middleware-logger" "3.272.0" + "@aws-sdk/middleware-recursion-detection" "3.282.0" + "@aws-sdk/middleware-retry" "3.282.0" + "@aws-sdk/middleware-serde" "3.272.0" + "@aws-sdk/middleware-stack" "3.272.0" + "@aws-sdk/middleware-user-agent" "3.282.0" + "@aws-sdk/node-config-provider" "3.272.0" + "@aws-sdk/node-http-handler" "3.282.0" + "@aws-sdk/protocol-http" "3.282.0" + "@aws-sdk/smithy-client" "3.279.0" + "@aws-sdk/types" "3.272.0" + "@aws-sdk/url-parser" "3.272.0" "@aws-sdk/util-base64" "3.208.0" "@aws-sdk/util-body-length-browser" "3.188.0" "@aws-sdk/util-body-length-node" "3.208.0" - "@aws-sdk/util-defaults-mode-browser" "3.254.0" - "@aws-sdk/util-defaults-mode-node" "3.254.0" - "@aws-sdk/util-endpoints" "3.254.0" - "@aws-sdk/util-retry" "3.254.0" - "@aws-sdk/util-user-agent-browser" "3.254.0" - "@aws-sdk/util-user-agent-node" "3.254.0" - "@aws-sdk/util-utf8-browser" "3.188.0" - "@aws-sdk/util-utf8-node" "3.208.0" + "@aws-sdk/util-defaults-mode-browser" "3.279.0" + "@aws-sdk/util-defaults-mode-node" "3.282.0" + "@aws-sdk/util-endpoints" "3.272.0" + "@aws-sdk/util-retry" "3.272.0" + "@aws-sdk/util-user-agent-browser" "3.282.0" + "@aws-sdk/util-user-agent-node" "3.282.0" + "@aws-sdk/util-utf8" "3.254.0" tslib "^2.3.1" -"@aws-sdk/client-sso@3.256.0": - version "3.256.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.256.0.tgz#8dfd3e69e0eae9937f1b7cee0d95dca7995ad867" - integrity sha512-e+BNJ95IqUU1nmmX51T3ehy8yqHDN8J4DH6FReK1vrFIMEra/wERGJBcm+pdojyllQ20FQRBvGtOzN/WspH74w== +"@aws-sdk/client-sso@3.282.0": + version "3.282.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.282.0.tgz#9d31cf2eacd6d022213d40ad976ae3a00f99838f" + integrity sha512-VzdCCaxlDyU+7wvLDWh+uACQ6RPfaKLQ3yJ2UY0B0SkH4R0E4GLDJ2OJzqS5eyyOsnq1rxfY75S4WYzj8E2cvg== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/config-resolver" "3.254.0" - "@aws-sdk/fetch-http-handler" "3.254.0" - "@aws-sdk/hash-node" "3.254.0" - "@aws-sdk/invalid-dependency" "3.254.0" - "@aws-sdk/middleware-content-length" "3.254.0" - "@aws-sdk/middleware-endpoint" "3.254.0" - "@aws-sdk/middleware-host-header" "3.254.0" - "@aws-sdk/middleware-logger" "3.254.0" - "@aws-sdk/middleware-recursion-detection" "3.254.0" - "@aws-sdk/middleware-retry" "3.254.0" - "@aws-sdk/middleware-serde" "3.254.0" - "@aws-sdk/middleware-stack" "3.254.0" - "@aws-sdk/middleware-user-agent" "3.254.0" - "@aws-sdk/node-config-provider" "3.254.0" - "@aws-sdk/node-http-handler" "3.254.0" - "@aws-sdk/protocol-http" "3.254.0" - "@aws-sdk/smithy-client" "3.254.0" - "@aws-sdk/types" "3.254.0" - "@aws-sdk/url-parser" "3.254.0" + "@aws-sdk/config-resolver" "3.282.0" + "@aws-sdk/fetch-http-handler" "3.282.0" + "@aws-sdk/hash-node" "3.272.0" + "@aws-sdk/invalid-dependency" "3.272.0" + "@aws-sdk/middleware-content-length" "3.282.0" + "@aws-sdk/middleware-endpoint" "3.282.0" + "@aws-sdk/middleware-host-header" "3.282.0" + "@aws-sdk/middleware-logger" "3.272.0" + "@aws-sdk/middleware-recursion-detection" "3.282.0" + "@aws-sdk/middleware-retry" "3.282.0" + "@aws-sdk/middleware-serde" "3.272.0" + "@aws-sdk/middleware-stack" "3.272.0" + "@aws-sdk/middleware-user-agent" "3.282.0" + "@aws-sdk/node-config-provider" "3.272.0" + "@aws-sdk/node-http-handler" "3.282.0" + "@aws-sdk/protocol-http" "3.282.0" + "@aws-sdk/smithy-client" "3.279.0" + "@aws-sdk/types" "3.272.0" + "@aws-sdk/url-parser" "3.272.0" "@aws-sdk/util-base64" "3.208.0" "@aws-sdk/util-body-length-browser" "3.188.0" "@aws-sdk/util-body-length-node" "3.208.0" - "@aws-sdk/util-defaults-mode-browser" "3.254.0" - "@aws-sdk/util-defaults-mode-node" "3.254.0" - "@aws-sdk/util-endpoints" "3.254.0" - "@aws-sdk/util-retry" "3.254.0" - "@aws-sdk/util-user-agent-browser" "3.254.0" - "@aws-sdk/util-user-agent-node" "3.254.0" - "@aws-sdk/util-utf8-browser" "3.188.0" - "@aws-sdk/util-utf8-node" "3.208.0" + "@aws-sdk/util-defaults-mode-browser" "3.279.0" + "@aws-sdk/util-defaults-mode-node" "3.282.0" + "@aws-sdk/util-endpoints" "3.272.0" + "@aws-sdk/util-retry" "3.272.0" + "@aws-sdk/util-user-agent-browser" "3.282.0" + "@aws-sdk/util-user-agent-node" "3.282.0" + "@aws-sdk/util-utf8" "3.254.0" tslib "^2.3.1" -"@aws-sdk/client-sts@3.256.0": - version "3.256.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.256.0.tgz#c71610393736b63c58c4cdc1caec302508fe8fc8" - integrity sha512-6jqaM7/Lw41kuEz8CqLU+fOLDF8C6W+jG30zBQrAC+iYSTB0w9uGOzVxsan1Nesg1FpoBqnWcF7xWi6Ox+OeDg== +"@aws-sdk/client-sts@3.282.0": + version "3.282.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.282.0.tgz#1c4355a5d6a8e6af03e752c3273a59c57aaf1715" + integrity sha512-JZybEaST0rloS9drlX/0yJAnKHuV7DlS1n1WZxgaM2DY704ydlGiviiPQvC/q/dItsX4017gscC0blGJcUjK1g== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/config-resolver" "3.254.0" - "@aws-sdk/credential-provider-node" "3.256.0" - "@aws-sdk/fetch-http-handler" "3.254.0" - "@aws-sdk/hash-node" "3.254.0" - "@aws-sdk/invalid-dependency" "3.254.0" - "@aws-sdk/middleware-content-length" "3.254.0" - "@aws-sdk/middleware-endpoint" "3.254.0" - "@aws-sdk/middleware-host-header" "3.254.0" - "@aws-sdk/middleware-logger" "3.254.0" - "@aws-sdk/middleware-recursion-detection" "3.254.0" - "@aws-sdk/middleware-retry" "3.254.0" - "@aws-sdk/middleware-sdk-sts" "3.254.0" - "@aws-sdk/middleware-serde" "3.254.0" - "@aws-sdk/middleware-signing" "3.254.0" - "@aws-sdk/middleware-stack" "3.254.0" - "@aws-sdk/middleware-user-agent" "3.254.0" - "@aws-sdk/node-config-provider" "3.254.0" - "@aws-sdk/node-http-handler" "3.254.0" - "@aws-sdk/protocol-http" "3.254.0" - "@aws-sdk/smithy-client" "3.254.0" - "@aws-sdk/types" "3.254.0" - "@aws-sdk/url-parser" "3.254.0" + "@aws-sdk/config-resolver" "3.282.0" + "@aws-sdk/credential-provider-node" "3.282.0" + "@aws-sdk/fetch-http-handler" "3.282.0" + "@aws-sdk/hash-node" "3.272.0" + "@aws-sdk/invalid-dependency" "3.272.0" + "@aws-sdk/middleware-content-length" "3.282.0" + "@aws-sdk/middleware-endpoint" "3.282.0" + "@aws-sdk/middleware-host-header" "3.282.0" + "@aws-sdk/middleware-logger" "3.272.0" + "@aws-sdk/middleware-recursion-detection" "3.282.0" + "@aws-sdk/middleware-retry" "3.282.0" + "@aws-sdk/middleware-sdk-sts" "3.282.0" + "@aws-sdk/middleware-serde" "3.272.0" + "@aws-sdk/middleware-signing" "3.282.0" + "@aws-sdk/middleware-stack" "3.272.0" + "@aws-sdk/middleware-user-agent" "3.282.0" + "@aws-sdk/node-config-provider" "3.272.0" + "@aws-sdk/node-http-handler" "3.282.0" + "@aws-sdk/protocol-http" "3.282.0" + "@aws-sdk/smithy-client" "3.279.0" + "@aws-sdk/types" "3.272.0" + "@aws-sdk/url-parser" "3.272.0" "@aws-sdk/util-base64" "3.208.0" "@aws-sdk/util-body-length-browser" "3.188.0" "@aws-sdk/util-body-length-node" "3.208.0" - "@aws-sdk/util-defaults-mode-browser" "3.254.0" - "@aws-sdk/util-defaults-mode-node" "3.254.0" - "@aws-sdk/util-endpoints" "3.254.0" - "@aws-sdk/util-retry" "3.254.0" - "@aws-sdk/util-user-agent-browser" "3.254.0" - "@aws-sdk/util-user-agent-node" "3.254.0" - "@aws-sdk/util-utf8-browser" "3.188.0" - "@aws-sdk/util-utf8-node" "3.208.0" - fast-xml-parser "4.0.11" + "@aws-sdk/util-defaults-mode-browser" "3.279.0" + "@aws-sdk/util-defaults-mode-node" "3.282.0" + "@aws-sdk/util-endpoints" "3.272.0" + "@aws-sdk/util-retry" "3.272.0" + "@aws-sdk/util-user-agent-browser" "3.282.0" + "@aws-sdk/util-user-agent-node" "3.282.0" + "@aws-sdk/util-utf8" "3.254.0" + fast-xml-parser "4.1.2" tslib "^2.3.1" -"@aws-sdk/config-resolver@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/config-resolver/-/config-resolver-3.254.0.tgz#82504a1886f90fc1374b77d65187058a04430204" - integrity sha512-+t5mi/SrZdAbSgg/5b/q3zVZsNQSyty2XX+znaRvBdANtIWIBdFLEMQp/L5NA+PSiW6VUXu9eXcsj0kJlAhTgQ== +"@aws-sdk/config-resolver@3.282.0": + version "3.282.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/config-resolver/-/config-resolver-3.282.0.tgz#b76f3b7daedc2dfca261445f0d222b3d15d693e5" + integrity sha512-30qFLh2N4NXQ2EAook7NIFeu1K/nlrRLrdVb2BtGFi/F3cZnz+sy9o0XmL6x+sO9TznWjdNxD1RKQdqoAwGnCQ== dependencies: - "@aws-sdk/signature-v4" "3.254.0" - "@aws-sdk/types" "3.254.0" + "@aws-sdk/signature-v4" "3.282.0" + "@aws-sdk/types" "3.272.0" "@aws-sdk/util-config-provider" "3.208.0" - "@aws-sdk/util-middleware" "3.254.0" + "@aws-sdk/util-middleware" "3.272.0" tslib "^2.3.1" -"@aws-sdk/credential-provider-env@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.254.0.tgz#8ad17baa3108ed25509db1b994a3a51cb17ff427" - integrity sha512-2CDwb7L1XGTY7Y8N3EsE1xqas0zNvrs4aOEv5XZNrKqE+9bvs8CiUwV4SB6VwSD+EPcOSm3QYEURUmj5EyLEZQ== +"@aws-sdk/credential-provider-env@3.272.0": + version "3.272.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.272.0.tgz#c647799806d2cf491b9b0d8d32682393caf74e20" + integrity sha512-QI65NbLnKLYHyTYhXaaUrq6eVsCCrMUb05WDA7+TJkWkjXesovpjc8vUKgFiLSxmgKmb2uOhHNcDyObKMrYQFw== dependencies: - "@aws-sdk/property-provider" "3.254.0" - "@aws-sdk/types" "3.254.0" + "@aws-sdk/property-provider" "3.272.0" + "@aws-sdk/types" "3.272.0" tslib "^2.3.1" -"@aws-sdk/credential-provider-imds@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.254.0.tgz#876282edc865747b574a537d59c4cf47cf4b37d3" - integrity sha512-sM3N7FLz+svRGjTgwAybKBmu5tVfCJmd5HPEfKR0jfBWB1uq0u0J+65JiO/wfqn/ix+3ZyFfacSJDFjnSPu/KA== +"@aws-sdk/credential-provider-imds@3.272.0": + version "3.272.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.272.0.tgz#8e740961c2e1f9b93a467e8d5e836e359e18592c" + integrity sha512-wwAfVY1jTFQEfxVfdYD5r5ieYGl+0g4nhekVxNMqE8E1JeRDd18OqiwAflzpgBIqxfqvCUkf+vl5JYyacMkNAQ== dependencies: - "@aws-sdk/node-config-provider" "3.254.0" - "@aws-sdk/property-provider" "3.254.0" - "@aws-sdk/types" "3.254.0" - "@aws-sdk/url-parser" "3.254.0" + "@aws-sdk/node-config-provider" "3.272.0" + "@aws-sdk/property-provider" "3.272.0" + "@aws-sdk/types" "3.272.0" + "@aws-sdk/url-parser" "3.272.0" tslib "^2.3.1" -"@aws-sdk/credential-provider-ini@3.256.0": - version "3.256.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.256.0.tgz#6fc7905cedbdb33df40bdbfc7bbfe0a0a5200e4a" - integrity sha512-tZacj/dVnu2GuNSVpYaO6JHrpaWqz9wvOkf/lYxh1Ga993uhF6SWLfENM29gF/EjvV0Nn0beHfyz5Em7dFbw8g== - dependencies: - "@aws-sdk/credential-provider-env" "3.254.0" - "@aws-sdk/credential-provider-imds" "3.254.0" - "@aws-sdk/credential-provider-process" "3.254.0" - "@aws-sdk/credential-provider-sso" "3.256.0" - "@aws-sdk/credential-provider-web-identity" "3.254.0" - "@aws-sdk/property-provider" "3.254.0" - "@aws-sdk/shared-ini-file-loader" "3.254.0" - "@aws-sdk/types" "3.254.0" +"@aws-sdk/credential-provider-ini@3.282.0": + version "3.282.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.282.0.tgz#60bc1d0fb3cf7053335f42f95f01601f5fdcf4bc" + integrity sha512-2GKduXORcUgOigF1jZF7A1Wh4W/aJt3ynh7xb1vfx020nHx6YDljrEGpzgH6pOVzl7ZhgthpojicCuy2UumkMA== + dependencies: + "@aws-sdk/credential-provider-env" "3.272.0" + "@aws-sdk/credential-provider-imds" "3.272.0" + "@aws-sdk/credential-provider-process" "3.272.0" + "@aws-sdk/credential-provider-sso" "3.282.0" + "@aws-sdk/credential-provider-web-identity" "3.272.0" + "@aws-sdk/property-provider" "3.272.0" + "@aws-sdk/shared-ini-file-loader" "3.272.0" + "@aws-sdk/types" "3.272.0" tslib "^2.3.1" -"@aws-sdk/credential-provider-node@3.256.0": - version "3.256.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.256.0.tgz#ab9954548416130152d8496a3b6494d78dc555e6" - integrity sha512-A/C8379FjeDYzfG+KQOyMgUnH/Fr7MFoeyhH9pECp5KWzts6H4IIQ1XUN7H/dmeqGfFxU7E7Hya2k1BX4qrKwQ== - dependencies: - "@aws-sdk/credential-provider-env" "3.254.0" - "@aws-sdk/credential-provider-imds" "3.254.0" - "@aws-sdk/credential-provider-ini" "3.256.0" - "@aws-sdk/credential-provider-process" "3.254.0" - "@aws-sdk/credential-provider-sso" "3.256.0" - "@aws-sdk/credential-provider-web-identity" "3.254.0" - "@aws-sdk/property-provider" "3.254.0" - "@aws-sdk/shared-ini-file-loader" "3.254.0" - "@aws-sdk/types" "3.254.0" +"@aws-sdk/credential-provider-node@3.282.0": + version "3.282.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.282.0.tgz#90b71f75ae25b8e654b15271b14b0af736a2b2b3" + integrity sha512-qyHipZW0ep8STY+SO+Me8ObQ1Ee/aaZTmAK0Os/gB+EsiZhIE+mi6zRcScwdnpgJPLRYMEe4p/Cr6DOrA0G0GQ== + dependencies: + "@aws-sdk/credential-provider-env" "3.272.0" + "@aws-sdk/credential-provider-imds" "3.272.0" + "@aws-sdk/credential-provider-ini" "3.282.0" + "@aws-sdk/credential-provider-process" "3.272.0" + "@aws-sdk/credential-provider-sso" "3.282.0" + "@aws-sdk/credential-provider-web-identity" "3.272.0" + "@aws-sdk/property-provider" "3.272.0" + "@aws-sdk/shared-ini-file-loader" "3.272.0" + "@aws-sdk/types" "3.272.0" tslib "^2.3.1" -"@aws-sdk/credential-provider-process@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.254.0.tgz#31e6c0c709d47b9a87397698ab942a820dfa5f38" - integrity sha512-vNm1AHMu5Lg1kOMk4ucWgaNO4zNAD7aeRssdBMnC7WqRT2xB8CUEWi+zJGNjbxzEeTLXQZuMa1VeRT3nPjYrzg== +"@aws-sdk/credential-provider-process@3.272.0": + version "3.272.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.272.0.tgz#bd0c859554e705c085f0e2ad5dad7e1e43c967ad" + integrity sha512-hiCAjWWm2PeBFp5cjkxqyam/XADjiS+e7GzwC34TbZn3LisS0uoweLojj9tD11NnnUhyhbLteUvu5+rotOLwrg== dependencies: - "@aws-sdk/property-provider" "3.254.0" - "@aws-sdk/shared-ini-file-loader" "3.254.0" - "@aws-sdk/types" "3.254.0" + "@aws-sdk/property-provider" "3.272.0" + "@aws-sdk/shared-ini-file-loader" "3.272.0" + "@aws-sdk/types" "3.272.0" tslib "^2.3.1" -"@aws-sdk/credential-provider-sso@3.256.0": - version "3.256.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.256.0.tgz#5aa418c87ec6018ed768fe02bab42a1b5d6a3420" - integrity sha512-5WV62oxuM1LM9udmouxkGbnkN7sKqF4drYBBt2DetQzq4NStaOtZgcY0fxcX/HFv0Q2wjSWCBtDQ31Jo1CJRew== +"@aws-sdk/credential-provider-sso@3.282.0": + version "3.282.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.282.0.tgz#a922821d9e0fa892af131c3774f1ecbd62545cd2" + integrity sha512-c4nibry7u0hkYRMi7+cWzdwYXfDDG+j3VYFxk2oOvU1VIJRyE6oeJqVaz3jgYLX9brHyrLJjuFCIJCUV/WXgIA== dependencies: - "@aws-sdk/client-sso" "3.256.0" - "@aws-sdk/property-provider" "3.254.0" - "@aws-sdk/shared-ini-file-loader" "3.254.0" - "@aws-sdk/token-providers" "3.256.0" - "@aws-sdk/types" "3.254.0" + "@aws-sdk/client-sso" "3.282.0" + "@aws-sdk/property-provider" "3.272.0" + "@aws-sdk/shared-ini-file-loader" "3.272.0" + "@aws-sdk/token-providers" "3.282.0" + "@aws-sdk/types" "3.272.0" tslib "^2.3.1" -"@aws-sdk/credential-provider-web-identity@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.254.0.tgz#17ef2052180c929f1f3807704522bd1931b7c2ab" - integrity sha512-R/5qjAoCHEe7xmY5j0vges4xKpFpTgrwzdST822JVNWUobZmiDUqnn+1Xw4Qmomst625NOpgzsV4JuHsA4a8Ig== +"@aws-sdk/credential-provider-web-identity@3.272.0": + version "3.272.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.272.0.tgz#2a1d8f73654c2d50bf27c6355a550bc389d6057e" + integrity sha512-ImrHMkcgneGa/HadHAQXPwOrX26sAKuB8qlMxZF/ZCM2B55u8deY+ZVkVuraeKb7YsahMGehPFOfRAF6mvFI5Q== dependencies: - "@aws-sdk/property-provider" "3.254.0" - "@aws-sdk/types" "3.254.0" + "@aws-sdk/property-provider" "3.272.0" + "@aws-sdk/types" "3.272.0" tslib "^2.3.1" -"@aws-sdk/eventstream-codec@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-codec/-/eventstream-codec-3.254.0.tgz#cbeaa2a4104cc4fe29b576e1d08359d1296f50cb" - integrity sha512-Xy1mCNB//HGXFs5jeFbhmIPiqLqNOZ2E8aiOwVx1iD/9Y/mRprkegFM+BzPiVuzRErrgZmjFlf0B00QsJvpoJg== +"@aws-sdk/eventstream-codec@3.272.0": + version "3.272.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-codec/-/eventstream-codec-3.272.0.tgz#9d5cbc6c2e438eee18eb8532bc4a3cab16315214" + integrity sha512-HYMzglDnqUhvx3u9MdzZ/OjLuavaaH9zF9XMXRuv7bdsN9AAi3/0he0FEx84ZXNXSAZCebLwXJYf0ZrN6g37QA== dependencies: "@aws-crypto/crc32" "3.0.0" - "@aws-sdk/types" "3.254.0" + "@aws-sdk/types" "3.272.0" "@aws-sdk/util-hex-encoding" "3.201.0" tslib "^2.3.1" -"@aws-sdk/eventstream-serde-browser@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-serde-browser/-/eventstream-serde-browser-3.254.0.tgz#66692a152638ba22c947363d953e73885b3cf5bd" - integrity sha512-wETH2hJEO7fmleHWzF+kPkwKOiF4IE6DcCiTsnNa8JonSTkV/Y2uDkmYScXIsoQ2p6j3oPIrhg8oPcLENYFT1w== +"@aws-sdk/eventstream-serde-browser@3.272.0": + version "3.272.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-serde-browser/-/eventstream-serde-browser-3.272.0.tgz#c8b4a98beb9473db508a4669bd0dc25de4c0c825" + integrity sha512-mE1+mevS+KVKpnTLi5FytsBwAK1kWZ92ERtAiElp58SKE1OpfSg8lEY8VI6JKGlueN540Qq3LeIgA2/HJOcK/w== dependencies: - "@aws-sdk/eventstream-serde-universal" "3.254.0" - "@aws-sdk/types" "3.254.0" + "@aws-sdk/eventstream-serde-universal" "3.272.0" + "@aws-sdk/types" "3.272.0" tslib "^2.3.1" -"@aws-sdk/eventstream-serde-config-resolver@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.254.0.tgz#d7a909c7947d6ba7b3d9d3bf9aea0342e4f61511" - integrity sha512-2+i3h2WxUpYS++dWbZd439QNT7uoiS4mQAYmZQm/6lY8QdooWMiJ4zqqwTJ97l8f1JQPjtO3GkKh0y0jlgYo8w== +"@aws-sdk/eventstream-serde-config-resolver@3.272.0": + version "3.272.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.272.0.tgz#f72ab037404ecb01e35dc619d7971813c269346c" + integrity sha512-e47BhGBvx+me53cvYx+47ml5KNDj7XoTth80krHlyLrimFELE1ij4tHSKR/XzilKKH1uIWmJQdlAi29129ZX5w== dependencies: - "@aws-sdk/types" "3.254.0" + "@aws-sdk/types" "3.272.0" tslib "^2.3.1" -"@aws-sdk/eventstream-serde-node@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-serde-node/-/eventstream-serde-node-3.254.0.tgz#1dd4c0118dfb3e99854572e6d8c790e3629ca848" - integrity sha512-ipfDXmDn+xygYoipg6C2kDFsQCg+WwHebKPgQR1WyhuW3c3b+QJxlnyV8RuBbJl8VSfs9uxaLuijZRE4kx6l8w== +"@aws-sdk/eventstream-serde-node@3.272.0": + version "3.272.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-serde-node/-/eventstream-serde-node-3.272.0.tgz#5f3e97e14419938271a2e62d2f759347a093530a" + integrity sha512-uto8y4FoZugWnczM1TKwv6oV2Po2Jgrp+W1Ws3baRQ4Lan+QpFx3Tps1N5rNzQ+7Uz0xT1BhbSNPAkKs22/jtg== dependencies: - "@aws-sdk/eventstream-serde-universal" "3.254.0" - "@aws-sdk/types" "3.254.0" + "@aws-sdk/eventstream-serde-universal" "3.272.0" + "@aws-sdk/types" "3.272.0" tslib "^2.3.1" -"@aws-sdk/eventstream-serde-universal@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-serde-universal/-/eventstream-serde-universal-3.254.0.tgz#3025908512e2f12ef616a0d4c62d73d556daf6bf" - integrity sha512-PXOb8iKCWuoXqzaYEddknVOxoqZt55bPNNIpAf2fTX3HTcRSH7YDHnTbGEYuoHtJaLRdSqnG76Rt912YD0B19w== +"@aws-sdk/eventstream-serde-universal@3.272.0": + version "3.272.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-serde-universal/-/eventstream-serde-universal-3.272.0.tgz#3dbc2a92486f3c1772ab1aba52324376cc112013" + integrity sha512-E9jlt8tzDcEMoNlgv3+01jGPJPHmbmw2NsajZhB4axVMpEy247JV6qvCZe+5R+EGy96t0pfsO2naViEB4Va47g== dependencies: - "@aws-sdk/eventstream-codec" "3.254.0" - "@aws-sdk/types" "3.254.0" + "@aws-sdk/eventstream-codec" "3.272.0" + "@aws-sdk/types" "3.272.0" tslib "^2.3.1" -"@aws-sdk/fetch-http-handler@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.254.0.tgz#cdc646f48bbfe35ea87ebcc2b5b050e17bbda7a8" - integrity sha512-/bbtNHe5JHFdKnCVr3Zx55sqs4c0F+7f1CC5cvTgH3O46wgIRM/6/rvE0YieXmfm3ho/GOhxBUzy59A0haKQGg== +"@aws-sdk/fetch-http-handler@3.282.0": + version "3.282.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.282.0.tgz#aee6e441013880553b15db7ce66cbebba2e26f6b" + integrity sha512-RTd53UzKtUucIEdVLGGgtlbVwp0QkOt3ZfHuA/A1lOH7meChSh1kz7B5z3p4HQDpXO+MQ1Y6Ble9Vg2fh1zwJQ== dependencies: - "@aws-sdk/protocol-http" "3.254.0" - "@aws-sdk/querystring-builder" "3.254.0" - "@aws-sdk/types" "3.254.0" + "@aws-sdk/protocol-http" "3.282.0" + "@aws-sdk/querystring-builder" "3.272.0" + "@aws-sdk/types" "3.272.0" "@aws-sdk/util-base64" "3.208.0" tslib "^2.3.1" -"@aws-sdk/hash-blob-browser@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/hash-blob-browser/-/hash-blob-browser-3.254.0.tgz#8862a849418b7d91ffa2b53fac9aa104cc572d44" - integrity sha512-FUqO4meoGnzzuSnhSsIp3pzlpoAD7cpm8PErKZDKU8izrEOHR+rDmVgx3xKLU1+53QmF72JSS7xCFpjStX+AAg== +"@aws-sdk/hash-blob-browser@3.272.0": + version "3.272.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/hash-blob-browser/-/hash-blob-browser-3.272.0.tgz#c3f71c082f1c3f86fb4f7632e1a9cb418f8d8a03" + integrity sha512-IRCIMG42fXcdD92C8Sb0CQI8D/msxDwHGAIqP94iGhVEnKX2egyx5J8lmPY4gEky5UzyMMaH7cayBv89ZMEBmQ== dependencies: "@aws-sdk/chunked-blob-reader" "3.188.0" "@aws-sdk/chunked-blob-reader-native" "3.208.0" - "@aws-sdk/types" "3.254.0" + "@aws-sdk/types" "3.272.0" tslib "^2.3.1" -"@aws-sdk/hash-node@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/hash-node/-/hash-node-3.254.0.tgz#b69c9dba780ce86cf24effb3c8416eb16586a502" - integrity sha512-7FoB6BVbO+Z/NEOHeOAoUTyj8q+Pcdn4QpKvA4epRDrzMNcXy7MUNzzt148nkDssES09rgsN+KM8Zo2qgRYngg== +"@aws-sdk/hash-node@3.272.0": + version "3.272.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/hash-node/-/hash-node-3.272.0.tgz#a39d80fd118ad306f17191f0565ea4db88aa0563" + integrity sha512-40dwND+iAm3VtPHPZu7/+CIdVJFk2s0cWZt1lOiMPMSXycSYJ45wMk7Lly3uoqRx0uWfFK5iT2OCv+fJi5jTng== dependencies: - "@aws-sdk/types" "3.254.0" + "@aws-sdk/types" "3.272.0" "@aws-sdk/util-buffer-from" "3.208.0" "@aws-sdk/util-utf8" "3.254.0" tslib "^2.3.1" -"@aws-sdk/hash-stream-node@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/hash-stream-node/-/hash-stream-node-3.254.0.tgz#70b8dcd70c4ae229cfdcc7a408b73c5aaee80a80" - integrity sha512-xGuKFRm1XkZg8bn3aYxkBDqTEIwtKkL0p2zk3KEN22b7qGIZ9+CGIN+wKGXiGsur+YsPE9CR1YOlvkCz5GqkNQ== +"@aws-sdk/hash-stream-node@3.272.0": + version "3.272.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/hash-stream-node/-/hash-stream-node-3.272.0.tgz#543fb22d16b9fffae8b071f076fcbd39c8822fff" + integrity sha512-mWwQWdfVYoR6PXRLkHP6pC1cghZMg0ULuOAm70EtTO2YXiyLlMIDb+VD4RRbjh3hNkzh+y/W47wSUJthGBM1kg== dependencies: - "@aws-sdk/types" "3.254.0" + "@aws-sdk/types" "3.272.0" "@aws-sdk/util-utf8" "3.254.0" tslib "^2.3.1" -"@aws-sdk/invalid-dependency@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/invalid-dependency/-/invalid-dependency-3.254.0.tgz#a2df8be8257a2edda41301600a73520f7539540d" - integrity sha512-ueV0tXyGndCTZXnEv+AMeTfu+IqV2QzmGMXcakiwxDjg48H9X/bLnj+C96Sexond8jD8K0ub9HWhkBrvvAXlPA== +"@aws-sdk/invalid-dependency@3.272.0": + version "3.272.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/invalid-dependency/-/invalid-dependency-3.272.0.tgz#93b34dc0f78d0c44a4beae6dc75dde4801915f1c" + integrity sha512-ysW6wbjl1Y78txHUQ/Tldj2Rg1BI7rpMO9B9xAF6yAX3mQ7t6SUPQG/ewOGvH2208NBIl3qP5e/hDf0Q6r/1iw== dependencies: - "@aws-sdk/types" "3.254.0" + "@aws-sdk/types" "3.272.0" tslib "^2.3.1" "@aws-sdk/is-array-buffer@3.201.0": @@ -728,341 +719,333 @@ dependencies: tslib "^2.3.1" -"@aws-sdk/md5-js@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/md5-js/-/md5-js-3.254.0.tgz#53c6633ec2353cd0f55aae28acaa6a62b5d890e8" - integrity sha512-J7PTkuX+E37ed4npAV41B6HDEyqM6f8xmorOPPP9Zu3uoR1FDeymK+U0jqOa8HCWxdOle8h1i3ZfghY1D8bozQ== +"@aws-sdk/md5-js@3.272.0": + version "3.272.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/md5-js/-/md5-js-3.272.0.tgz#2f4dc06541a60979bb807c8adc438f13fc3ad958" + integrity sha512-/GK32mgAarhn/F0xCeBKbYfLRof3tOCNrg8mAGNz9Di8E1/qMOnX/OXUGag0lsvNZ6DTjdjln29t4e8iKmOVqA== dependencies: - "@aws-sdk/types" "3.254.0" - "@aws-sdk/util-utf8-browser" "3.188.0" - "@aws-sdk/util-utf8-node" "3.208.0" + "@aws-sdk/types" "3.272.0" + "@aws-sdk/util-utf8" "3.254.0" tslib "^2.3.1" -"@aws-sdk/middleware-bucket-endpoint@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.254.0.tgz#bfaf8e8261b518e86a5e7dabfd5939feffc4471a" - integrity sha512-S4rXBv6F9NQaGamuLqqwB38d9ahsaQeQk+tno/WarY2quh7HouS49yhApDmCEj3z7mrl3eFsf3ahAueLy9fGjw== +"@aws-sdk/middleware-bucket-endpoint@3.282.0": + version "3.282.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.282.0.tgz#08f09690b4b01d13cfc297964a0373e5dc9db031" + integrity sha512-yXsUigRNGFbFVC1h9WIcB9Dc5bDr0hTah3PARXq/Wa+tUwzWFTIawYDEhRF9w7fJyWfJUsVJbfIldlSmJnQM5w== dependencies: - "@aws-sdk/protocol-http" "3.254.0" - "@aws-sdk/types" "3.254.0" + "@aws-sdk/protocol-http" "3.282.0" + "@aws-sdk/types" "3.272.0" "@aws-sdk/util-arn-parser" "3.208.0" "@aws-sdk/util-config-provider" "3.208.0" tslib "^2.3.1" -"@aws-sdk/middleware-content-length@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-content-length/-/middleware-content-length-3.254.0.tgz#ecf39dac8b056fb6c32860d65080b9b71d02a72c" - integrity sha512-IT7nDZA6WsaZSNp9M79xfkk/us4kGV4SIZ2R9gHT9MFqdmpmbr3EGhFLKXUHcAZfCcOdw+JNV/wHJiiN1JD/hg== +"@aws-sdk/middleware-content-length@3.282.0": + version "3.282.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-content-length/-/middleware-content-length-3.282.0.tgz#aa05051b33e94b0db46ede2e9839b601503e081a" + integrity sha512-SDgMLRRTMr9LlHSNk4bXUXynYnkT4oNMqE+FxhjsdbT8hK36eS4AadM58R7nPwgjR3EuWRW4ZRRawLWatpWspA== dependencies: - "@aws-sdk/protocol-http" "3.254.0" - "@aws-sdk/types" "3.254.0" + "@aws-sdk/protocol-http" "3.282.0" + "@aws-sdk/types" "3.272.0" tslib "^2.3.1" -"@aws-sdk/middleware-endpoint@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.254.0.tgz#9af598ce63a87eed13f84d1a9bfff4da9dd25790" - integrity sha512-9fkDtSJdhEr91tWp4zLyKhHDGVyvUA0gDK+6wGYyorKCae2qX2TL+Fl6vsqY4PxrdTpXRBJDlJnEly9i48YKxg== - dependencies: - "@aws-sdk/middleware-serde" "3.254.0" - "@aws-sdk/protocol-http" "3.254.0" - "@aws-sdk/signature-v4" "3.254.0" - "@aws-sdk/types" "3.254.0" - "@aws-sdk/url-parser" "3.254.0" +"@aws-sdk/middleware-endpoint@3.282.0": + version "3.282.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.282.0.tgz#c69615330932db1292206926752cac84428fde47" + integrity sha512-8U9Mv/Sbdo1KI6/ip7IIUdBl5pgmalFbfkYAyO+AtmkEvawI9ipdWFs5HB0Dwd1BGVup5choY72Ik/7sCAAFTQ== + dependencies: + "@aws-sdk/middleware-serde" "3.272.0" + "@aws-sdk/protocol-http" "3.282.0" + "@aws-sdk/signature-v4" "3.282.0" + "@aws-sdk/types" "3.272.0" + "@aws-sdk/url-parser" "3.272.0" "@aws-sdk/util-config-provider" "3.208.0" - "@aws-sdk/util-middleware" "3.254.0" + "@aws-sdk/util-middleware" "3.272.0" tslib "^2.3.1" -"@aws-sdk/middleware-expect-continue@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.254.0.tgz#0e36d66aa48639400824198d450175847af4d766" - integrity sha512-8vl1mEYG9eK8IxoVixrOZYNVxRMxebK/ROzWgzcyUNmVnxEYQpRnnkpAU4C6Z7AAx5nxqxMaM8Gg/Lu9wxMM/g== +"@aws-sdk/middleware-expect-continue@3.282.0": + version "3.282.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.282.0.tgz#6b02205c917a485ca7de96f63c7660446e0a4b17" + integrity sha512-BMzziPjQ4SozKgObdt9PJ1Cs7BLOz6RKzj9nSJKuLzxix8TX2XZhLY3Xuxu/fWXvuDYxly/NA6d/rIvqjcPk3A== dependencies: - "@aws-sdk/protocol-http" "3.254.0" - "@aws-sdk/types" "3.254.0" + "@aws-sdk/protocol-http" "3.282.0" + "@aws-sdk/types" "3.272.0" tslib "^2.3.1" -"@aws-sdk/middleware-flexible-checksums@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.254.0.tgz#50a1745c9a8811c373b4c69523533358701d3593" - integrity sha512-ubm+e035DW45+aYtIq1j8QXCyw7shor62L6XJM3SPI33JMDJWVoofFG5q2mUm1D1syeo8WZuf8VJORujBQCJEA== +"@aws-sdk/middleware-flexible-checksums@3.282.0": + version "3.282.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.282.0.tgz#57864f19473348306d4f86bb15416808c37d81b1" + integrity sha512-yru/1bVrT4EV+Mpcr5docVgZ5/ywsy/mRyvZBfHD3qC5Ydd9fakOnFhHzxSCbKSWQN2jlxPNuAzWVznSuBbSqg== dependencies: "@aws-crypto/crc32" "3.0.0" "@aws-crypto/crc32c" "3.0.0" "@aws-sdk/is-array-buffer" "3.201.0" - "@aws-sdk/protocol-http" "3.254.0" - "@aws-sdk/types" "3.254.0" + "@aws-sdk/protocol-http" "3.282.0" + "@aws-sdk/types" "3.272.0" "@aws-sdk/util-utf8" "3.254.0" tslib "^2.3.1" -"@aws-sdk/middleware-host-header@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.254.0.tgz#6cdf432132e546f248f626dc6d955285abee6595" - integrity sha512-JG+OoyCMivnqTYiPZxRF+sgYEyQG68+PMl2843owvSxQQ25nH2Ih6DzLqH10c/uAN0PsiA8s/FfJBzhw9Xf0KA== +"@aws-sdk/middleware-host-header@3.282.0": + version "3.282.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.282.0.tgz#3df90724f9a97b1bf8151faf7534ac7f7fa2c5e9" + integrity sha512-90dfYow4zh4tCatTOnqB3nE/dIAucQLZnMqwN/WBPu0fUqjymzpsNkPchqWBPnSWdNE8w3PiKMqqD9rjYwqw4Q== dependencies: - "@aws-sdk/protocol-http" "3.254.0" - "@aws-sdk/types" "3.254.0" + "@aws-sdk/protocol-http" "3.282.0" + "@aws-sdk/types" "3.272.0" tslib "^2.3.1" -"@aws-sdk/middleware-location-constraint@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.254.0.tgz#400d402cca11ef62099fdb37428f644dfb9ce447" - integrity sha512-FkCQAyGd0J1SRT5lUVrxRG6dReu/2dbF57jxMUyEpT1gTHXc/cxR4A1xk2Z4ihqUviXFwjJQALkfOZbMwglxEg== +"@aws-sdk/middleware-location-constraint@3.272.0": + version "3.272.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.272.0.tgz#5f6b54479b2f0526288ea767e503349d382fa971" + integrity sha512-tROQ1DM9djxfXmXPTT0XietrUt6y6QEHShPI9rQMstjXYiaHBVXRveuRLcLAKwl4nXIrgmnIU7ygyj2ZyD8gcA== dependencies: - "@aws-sdk/types" "3.254.0" + "@aws-sdk/types" "3.272.0" tslib "^2.3.1" -"@aws-sdk/middleware-logger@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.254.0.tgz#d5ece30ef193da78c71c9abe38ae30b6511000c0" - integrity sha512-h3jEw58VUJkfqrwWMmp3Qc8293RFo4LMqxNAVsVwYEG6xb/RQ+JamsOx+t6aDsoOdKqhYngWwDGtgUZQ5wQQvg== +"@aws-sdk/middleware-logger@3.272.0": + version "3.272.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.272.0.tgz#372e2514b17b826a2b40562667e2543125980705" + integrity sha512-u2SQ0hWrFwxbxxYMG5uMEgf01pQY5jauK/LYWgGIvuCmFgiyRQQP3oN7kkmsxnS9MWmNmhbyQguX2NY02s5e9w== dependencies: - "@aws-sdk/types" "3.254.0" + "@aws-sdk/types" "3.272.0" tslib "^2.3.1" -"@aws-sdk/middleware-recursion-detection@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.254.0.tgz#605ab3ff47c8ac1fca2d092d570151d7afbe8ae8" - integrity sha512-/4tTvAXmIIMCs3giPIXN9aVJUGMoBMWw+9WS22u7nYNzwTe/k30DhS91uvwj7TLOOpFN0IBNXPCJ+T1OZn+ZXQ== +"@aws-sdk/middleware-recursion-detection@3.282.0": + version "3.282.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.282.0.tgz#7766d7dc95fa59e8fdfe2dc8cc5af647063eaa0f" + integrity sha512-cSLq/daEaTEucbP/TgAXIOcpwLu7Bfw3VGzH1U56ngDjI4KWvUheF16JiB6OqKQXduPBPsdZ9dVmkDVKddmCRw== dependencies: - "@aws-sdk/protocol-http" "3.254.0" - "@aws-sdk/types" "3.254.0" + "@aws-sdk/protocol-http" "3.282.0" + "@aws-sdk/types" "3.272.0" tslib "^2.3.1" -"@aws-sdk/middleware-retry@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-retry/-/middleware-retry-3.254.0.tgz#0af8f8c06e42879cbc1f23e6d2166d61953c0f2d" - integrity sha512-nHgris8NmtLzsH5iUA8geW6RAT1VRymjlieKFmM3CAYt2h2X8AtAiL/Wod+Pj3+jjRGk9YeGzOOGbzODHiRxnA== - dependencies: - "@aws-sdk/protocol-http" "3.254.0" - "@aws-sdk/service-error-classification" "3.254.0" - "@aws-sdk/types" "3.254.0" - "@aws-sdk/util-middleware" "3.254.0" - "@aws-sdk/util-retry" "3.254.0" +"@aws-sdk/middleware-retry@3.282.0": + version "3.282.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-retry/-/middleware-retry-3.282.0.tgz#0ddc73f9a41d7990bac2b8221452beb244cf88c5" + integrity sha512-3+0M1GP9o480IdqHVZbkhTgge63uKhDFlS6cQznpNGj0eIuQPhXRnlEz2/rma0INUqFm6+7qJ5yzHR4WQbfHpw== + dependencies: + "@aws-sdk/protocol-http" "3.282.0" + "@aws-sdk/service-error-classification" "3.272.0" + "@aws-sdk/types" "3.272.0" + "@aws-sdk/util-middleware" "3.272.0" + "@aws-sdk/util-retry" "3.272.0" tslib "^2.3.1" uuid "^8.3.2" -"@aws-sdk/middleware-sdk-ec2@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-ec2/-/middleware-sdk-ec2-3.254.0.tgz#04d94315a442c0841eed4af9d686f75a33c22893" - integrity sha512-AVgywJVeC4B8dsR61KA7+yU3HF6huVJtPbwB45gGzFrAC/VqcYJ9W67hTZFWXz0vqTgGv5JhFBZelHSsHIjwKg== - dependencies: - "@aws-sdk/middleware-endpoint" "3.254.0" - "@aws-sdk/protocol-http" "3.254.0" - "@aws-sdk/signature-v4" "3.254.0" - "@aws-sdk/types" "3.254.0" - "@aws-sdk/util-format-url" "3.254.0" +"@aws-sdk/middleware-sdk-ec2@3.282.0": + version "3.282.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-ec2/-/middleware-sdk-ec2-3.282.0.tgz#56cd9ab2c8cc6dd310a1259e21c66453ba9b692f" + integrity sha512-2gbfWGbIamprX+r2qUDWsRK3/Gk7siEVnqc1xhJIyFk+ZBKOe1y/Ye9Lf4e8vioVZbzwTc09muuAmyGv2iPSWQ== + dependencies: + "@aws-sdk/middleware-endpoint" "3.282.0" + "@aws-sdk/protocol-http" "3.282.0" + "@aws-sdk/signature-v4" "3.282.0" + "@aws-sdk/types" "3.272.0" + "@aws-sdk/util-format-url" "3.272.0" tslib "^2.3.1" -"@aws-sdk/middleware-sdk-rds@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-rds/-/middleware-sdk-rds-3.254.0.tgz#561085eae276745c00e99dcbbd215e8eb4da51c4" - integrity sha512-+J2w5RgaiPkwATfBG5CPfAn83GQ83BV13SMzyDOiZNYCxvGb7B12w1xTIZDXzu3JHhen5chb39t3kkjPbMemBg== - dependencies: - "@aws-sdk/middleware-endpoint" "3.254.0" - "@aws-sdk/protocol-http" "3.254.0" - "@aws-sdk/signature-v4" "3.254.0" - "@aws-sdk/types" "3.254.0" - "@aws-sdk/util-format-url" "3.254.0" +"@aws-sdk/middleware-sdk-rds@3.282.0": + version "3.282.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-rds/-/middleware-sdk-rds-3.282.0.tgz#c6242436a1ef0e7cc7802b6b684c0aed4a887e76" + integrity sha512-k0Rj9z7yPF7fc99qhCKmqOZasmBjcOSNszZTRA2ISUG6AkEg378w4N7lcNmi5zXZxyyyTs2VmtTLInF9vyj/eg== + dependencies: + "@aws-sdk/middleware-endpoint" "3.282.0" + "@aws-sdk/protocol-http" "3.282.0" + "@aws-sdk/signature-v4" "3.282.0" + "@aws-sdk/types" "3.272.0" + "@aws-sdk/util-format-url" "3.272.0" tslib "^2.3.1" -"@aws-sdk/middleware-sdk-s3@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.254.0.tgz#df086d595457180013dad3a7bd1ca4c7b70f1c99" - integrity sha512-BanSacykPn5Gr1ygaQ8ts6tE7vxcdh9wLGAuYJD+WNkyQdMjgWQiPkDWuDp9+K+xf0Wx39/ITj9xjdDH6+QNIw== +"@aws-sdk/middleware-sdk-s3@3.282.0": + version "3.282.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.282.0.tgz#ab0a43bac7309cb81b2c5f9705d42d49044318a4" + integrity sha512-AUHHbLG1tAw7kDtKtXCsiBUdENwHyFL/h0GD24gyupGmis3AwtLfxYsjsKjByCzB6xKAi8TuPHvIvelvGdgcuA== dependencies: - "@aws-sdk/protocol-http" "3.254.0" - "@aws-sdk/types" "3.254.0" + "@aws-sdk/protocol-http" "3.282.0" + "@aws-sdk/types" "3.272.0" "@aws-sdk/util-arn-parser" "3.208.0" tslib "^2.3.1" -"@aws-sdk/middleware-sdk-sts@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.254.0.tgz#5382f65872fe9917ac817273ae6e1ffa6cbcdffa" - integrity sha512-Y074nmTp07thuOI6GePv8IKdL/OvkO1tn2l7QvnwQa3Sy/HyNai1V3MVtq4hRi1dgDjheKPVHPE+TnOmF3w5uA== - dependencies: - "@aws-sdk/middleware-signing" "3.254.0" - "@aws-sdk/property-provider" "3.254.0" - "@aws-sdk/protocol-http" "3.254.0" - "@aws-sdk/signature-v4" "3.254.0" - "@aws-sdk/types" "3.254.0" +"@aws-sdk/middleware-sdk-sts@3.282.0": + version "3.282.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.282.0.tgz#f8a52a0ef2b5e0bc7c3df697d0f24f85ea4f12c9" + integrity sha512-Qe20mtJcF6lxt7280FhTFD2IpBDn39MEXmbm/zIkXR2/cAmvji8YhcxhNrq1l7XiuMM6SokBDC/f3dlF1oOC6g== + dependencies: + "@aws-sdk/middleware-signing" "3.282.0" + "@aws-sdk/property-provider" "3.272.0" + "@aws-sdk/protocol-http" "3.282.0" + "@aws-sdk/signature-v4" "3.282.0" + "@aws-sdk/types" "3.272.0" tslib "^2.3.1" -"@aws-sdk/middleware-serde@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-serde/-/middleware-serde-3.254.0.tgz#57b6579d6d5b6dcd260c088bec8f4cacb6adf5f0" - integrity sha512-YuItb2nlKADTBItcn68eA8amX4quuR1+0GyFRkwssKS/iTjbIk+3gJ2s1zxkUhlyozH3U38Jvvqd+W9+gNpYIg== +"@aws-sdk/middleware-serde@3.272.0": + version "3.272.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-serde/-/middleware-serde-3.272.0.tgz#9cb23aaa93fbf404fdb8e01b514b36b2d6fb5bc8" + integrity sha512-kW1uOxgPSwtXPB5rm3QLdWomu42lkYpQL94tM1BjyFOWmBLO2lQhk5a7Dw6HkTozT9a+vxtscLChRa6KZe61Hw== dependencies: - "@aws-sdk/types" "3.254.0" + "@aws-sdk/types" "3.272.0" tslib "^2.3.1" -"@aws-sdk/middleware-signing@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.254.0.tgz#d08cf8c163a90d76a5139c23eecfffb475b6494f" - integrity sha512-HMVGf+yANjlKCUMFZJU2PNzbI9hbCgL+IX/Y4DGuQW9cp7EgZOxQre1LBKpcCqqPVQ4toIdfNH/K8uM2fpO6dg== - dependencies: - "@aws-sdk/property-provider" "3.254.0" - "@aws-sdk/protocol-http" "3.254.0" - "@aws-sdk/signature-v4" "3.254.0" - "@aws-sdk/types" "3.254.0" - "@aws-sdk/util-middleware" "3.254.0" +"@aws-sdk/middleware-signing@3.282.0": + version "3.282.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.282.0.tgz#10551814e112300bfae906e00f9045ddad9fa05f" + integrity sha512-eE5qMDcqqxZPdSwybUEph/knrA2j2cHjW+B2ddROw3Ojg0XLjep5hOhithAudgBREQhYF9pdsBr6mUMynUIrKw== + dependencies: + "@aws-sdk/property-provider" "3.272.0" + "@aws-sdk/protocol-http" "3.282.0" + "@aws-sdk/signature-v4" "3.282.0" + "@aws-sdk/types" "3.272.0" + "@aws-sdk/util-middleware" "3.272.0" tslib "^2.3.1" -"@aws-sdk/middleware-ssec@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.254.0.tgz#b2eb62170336215de314ae1ea9ca6f67564d5359" - integrity sha512-7y9KRvvwhoPhbYJePFfBRxSQukgpO5fcZ6KJHWSyCNZEkAIIB2h9rjZGhZGppKaCTrO/yQCDVpLgdXEQepme1w== +"@aws-sdk/middleware-ssec@3.272.0": + version "3.272.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.272.0.tgz#fa4a0e19df3bbec515794e6398b9656ab91ec8c9" + integrity sha512-WDPcNPkscTmJUzdAvfx8p+YuUn2YR9ocmZA7yYUJ5kA94MyGH6Rbjp8tleWwQvah/HweeCQrYUzJk9wsH64LPA== dependencies: - "@aws-sdk/types" "3.254.0" + "@aws-sdk/types" "3.272.0" tslib "^2.3.1" -"@aws-sdk/middleware-stack@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-stack/-/middleware-stack-3.254.0.tgz#1ec3b7ce4a9e62c630119cb3d4ec47df8cf2c185" - integrity sha512-yPWRnjeLC0lPAEQbiqbC3+hnqXZ+uCSoSevGndU5KWMMiXLxKZn7Y0B3kG8NAnNNuPid+wYFWWU9rKiBRvWR/w== +"@aws-sdk/middleware-stack@3.272.0": + version "3.272.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-stack/-/middleware-stack-3.272.0.tgz#e62048e47b8ce2ff71d6d32234b6c0be70b0b008" + integrity sha512-jhwhknnPBGhfXAGV5GXUWfEhDFoP/DN8MPCO2yC5OAxyp6oVJ8lTPLkZYMTW5VL0c0eG44dXpF4Ib01V+PlDrQ== dependencies: tslib "^2.3.1" -"@aws-sdk/middleware-user-agent@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.254.0.tgz#b0b54aae78044db72605bfb3cda7099c840f600f" - integrity sha512-hp5UYRg3ysZXMFMv34nYexyom6Z3pdx+OmisJz4w3AMigT8y57Ps30Vg+1QYaGlQkI4vfvcmdZX2Q+kp+mb9gQ== +"@aws-sdk/middleware-user-agent@3.282.0": + version "3.282.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.282.0.tgz#6f6f3ed06bbf90c871516e1cdbce4cb98b90da2e" + integrity sha512-P1ealsSrUALo0w0Qu5nBKsNQwsmqIfsoNtFWpaznjIcXE5rRMlZL69zb0KnGbQCBfEXsgaMOWjeGT8I3/XbOHQ== dependencies: - "@aws-sdk/protocol-http" "3.254.0" - "@aws-sdk/types" "3.254.0" + "@aws-sdk/protocol-http" "3.282.0" + "@aws-sdk/types" "3.272.0" tslib "^2.3.1" -"@aws-sdk/node-config-provider@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/node-config-provider/-/node-config-provider-3.254.0.tgz#0919e198e28144a85f97928ceccaf509db796a5b" - integrity sha512-3Bp3Gp2NOY9gab738xf07TysO5iB0Ib9qRNGDlxX8SX8fZDRnxrF2cn+Tjte42wrO54orwhSyuTaIlAqKeii8Q== +"@aws-sdk/node-config-provider@3.272.0": + version "3.272.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/node-config-provider/-/node-config-provider-3.272.0.tgz#7797a8f500593b1a7b91fc70bcd7a7245afd9a61" + integrity sha512-YYCIBh9g1EQo7hm2l22HX5Yr9RoPQ2RCvhzKvF1n1e8t1QH4iObQrYUtqHG4khcm64Cft8C5MwZmgzHbya5Z6Q== dependencies: - "@aws-sdk/property-provider" "3.254.0" - "@aws-sdk/shared-ini-file-loader" "3.254.0" - "@aws-sdk/types" "3.254.0" + "@aws-sdk/property-provider" "3.272.0" + "@aws-sdk/shared-ini-file-loader" "3.272.0" + "@aws-sdk/types" "3.272.0" tslib "^2.3.1" -"@aws-sdk/node-http-handler@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/node-http-handler/-/node-http-handler-3.254.0.tgz#5007434b0ed387f110639cf74f7cbb6abebd6e68" - integrity sha512-DX2WJ3pub+3FF9GpoF5doERCn06MxS/UmmbKnIIokWQHjPZVomNh/1P3Cf9Jn9jeIPgh4UOg0uPD8cUm/cwHQw== +"@aws-sdk/node-http-handler@3.282.0": + version "3.282.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/node-http-handler/-/node-http-handler-3.282.0.tgz#dde64a0977d98dc862770fc99b5127ff48726a9e" + integrity sha512-LIA4lsSKA/l1kTR5ERkJG2gARveB7Y40MR6yDwtIuhXeVu7Xo9m4BJFanCYIbyc093W0T53x438bwoBR+R+/fw== dependencies: - "@aws-sdk/abort-controller" "3.254.0" - "@aws-sdk/protocol-http" "3.254.0" - "@aws-sdk/querystring-builder" "3.254.0" - "@aws-sdk/types" "3.254.0" + "@aws-sdk/abort-controller" "3.272.0" + "@aws-sdk/protocol-http" "3.282.0" + "@aws-sdk/querystring-builder" "3.272.0" + "@aws-sdk/types" "3.272.0" tslib "^2.3.1" -"@aws-sdk/property-provider@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/property-provider/-/property-provider-3.254.0.tgz#4c815471e0aade6644b2923bb3c1a26c1e2cb1e8" - integrity sha512-BLZF/LDFjAgv2ZY0vhThU58k++Aw+SK7qNU7XT0D84q5iWlYRKptQEvSSvIkBSI/rZoppOFhK7W80I8kNNbh+Q== +"@aws-sdk/property-provider@3.272.0": + version "3.272.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/property-provider/-/property-provider-3.272.0.tgz#a626604303acfe83c1a1471f99872dee5641c1a4" + integrity sha512-V1pZTaH5eqpAt8O8CzbItHhOtzIfFuWymvwZFkAtwKuaHpnl7jjrTouV482zoq8AD/fF+VVSshwBKYA7bhidIw== dependencies: - "@aws-sdk/types" "3.254.0" + "@aws-sdk/types" "3.272.0" tslib "^2.3.1" -"@aws-sdk/protocol-http@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/protocol-http/-/protocol-http-3.254.0.tgz#b1ea17a599e50f30a3fc252de7aa4ced1f99acdd" - integrity sha512-4o/I/qhMUTp70njwWe3ttyRJSAKegnr8l3oVWAf1/q1ZHpcxbRRZEDvrkx4KSunFeXTTGHcff1oyLSRG/cKMsQ== +"@aws-sdk/protocol-http@3.282.0": + version "3.282.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/protocol-http/-/protocol-http-3.282.0.tgz#ed6b345fad824bea27bd78dcc3f6b54c55118d70" + integrity sha512-aOPv5DhsbG06WKfeh2g0H8RGnaeI8pLhaA+Mq1BvzXcghhlDu+FM9K/GjC/f1lWk1UNryfevOR7SdQm95ciHQg== dependencies: - "@aws-sdk/types" "3.254.0" + "@aws-sdk/types" "3.272.0" tslib "^2.3.1" -"@aws-sdk/querystring-builder@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-builder/-/querystring-builder-3.254.0.tgz#e542ca41e9b24828a92087d24e1f37aec1c3c4b3" - integrity sha512-Er+pOGTrPxelrzggibduO+eB1ClaU2BhjA8gd0nORS3kqktQggG3tKmRSIilegi9WOa3awCk6CnnuAf0pBrbUA== +"@aws-sdk/querystring-builder@3.272.0": + version "3.272.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-builder/-/querystring-builder-3.272.0.tgz#788ca037e21942bb039c920c5dfa4d412b84ea27" + integrity sha512-ndo++7GkdCj5tBXE6rGcITpSpZS4PfyV38wntGYAlj9liL1omk3bLZRY6uzqqkJpVHqbg2fD7O2qHNItzZgqhw== dependencies: - "@aws-sdk/types" "3.254.0" + "@aws-sdk/types" "3.272.0" "@aws-sdk/util-uri-escape" "3.201.0" tslib "^2.3.1" -"@aws-sdk/querystring-parser@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-parser/-/querystring-parser-3.254.0.tgz#ebca5a4e78bb5ad4e2e6a44447083d09212cf450" - integrity sha512-WwRD99dwGo2aIrRjLHUAXaWCZ+3fj88IhIwciWTqrHBS3TQWXllOOQmYo7f+aMBB4Q1K6KdKITNi8L7aUuDv2g== +"@aws-sdk/querystring-parser@3.272.0": + version "3.272.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-parser/-/querystring-parser-3.272.0.tgz#68db5798d10a353c35f62bf34cfcebaa53580e51" + integrity sha512-5oS4/9n6N1LZW9tI3qq/0GnCuWoOXRgcHVB+AJLRBvDbEe+GI+C/xK1tKLsfpDNgsQJHc4IPQoIt4megyZ/1+A== dependencies: - "@aws-sdk/types" "3.254.0" + "@aws-sdk/types" "3.272.0" tslib "^2.3.1" -"@aws-sdk/service-error-classification@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/service-error-classification/-/service-error-classification-3.254.0.tgz#1cf2a2e79fd73d48e751207e25527988dd6716d1" - integrity sha512-8GHqMJBBF9yoMBG/Nf9PusUSMFjG8ygps/cSJPlgcG2vbFn8BCdBZVc4ptXqICZUnBB/6lrxy8nCmNUaru48jg== +"@aws-sdk/service-error-classification@3.272.0": + version "3.272.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/service-error-classification/-/service-error-classification-3.272.0.tgz#cf19b82c2ab1e63bb03793c68e6a2b2e7cbd8382" + integrity sha512-REoltM1LK9byyIufLqx9znhSolPcHQgVHIA2S0zu5sdt5qER4OubkLAXuo4MBbisUTmh8VOOvIyUb5ijZCXq1w== -"@aws-sdk/shared-ini-file-loader@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.254.0.tgz#1d26b8d98541755dc6a4b8027110fea2b86b6257" - integrity sha512-UH4YTXuG+q004vA+jNrVhrD5XQCIAgpL/eriObJnQpKUVef1mkkEDHZs8+8+ZPsk4p/iBrIJ3lXNf7iDA/BFzw== +"@aws-sdk/shared-ini-file-loader@3.272.0": + version "3.272.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.272.0.tgz#f924ec6e7c183ec749d42e204d8f0d0b7c58fa25" + integrity sha512-lzFPohp5sy2XvwFjZIzLVCRpC0i5cwBiaXmFzXYQZJm6FSCszHO4ax+m9yrtlyVFF/2YPWl+/bzNthy4aJtseA== dependencies: - "@aws-sdk/types" "3.254.0" + "@aws-sdk/types" "3.272.0" tslib "^2.3.1" -"@aws-sdk/signature-v4-multi-region@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.254.0.tgz#8f1e0e8cff9fb47dcade7dfcc5af88aa8c1590e8" - integrity sha512-pm1UlY98DnqtYJvG2NLOQfMHAvoJRE3gmH0i4U0qyZ1UFYsgLpWaxdRAr9fGI1icxqmArYKkXR9NlzmJYASotw== +"@aws-sdk/signature-v4-multi-region@3.282.0": + version "3.282.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.282.0.tgz#2fe9ef19c1564c93c3ba0205b9cc02e0810cf629" + integrity sha512-0+WZqFGL2Qjo9Upvn0clrK8hzjgp8I5EzJ81oGga1IQqgpJItl+nMGqfV8pv9xVw3Je5hk4GWCVjS2arXF9s4g== dependencies: - "@aws-sdk/protocol-http" "3.254.0" - "@aws-sdk/signature-v4" "3.254.0" - "@aws-sdk/types" "3.254.0" + "@aws-sdk/protocol-http" "3.282.0" + "@aws-sdk/signature-v4" "3.282.0" + "@aws-sdk/types" "3.272.0" "@aws-sdk/util-arn-parser" "3.208.0" tslib "^2.3.1" -"@aws-sdk/signature-v4@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4/-/signature-v4-3.254.0.tgz#a68a1f420c98cbfe1d5f15227172d26bb7980338" - integrity sha512-9FoEnipA9hAgEp6oqIT3+hobF+JgIXIn5QV8kAB7QGxEDqs/pdpEbGc9qbxi0ghdjvqzOSDir9gNI3w0cL8Aug== +"@aws-sdk/signature-v4@3.282.0": + version "3.282.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4/-/signature-v4-3.282.0.tgz#5ce58267b8225fadbf5134e616e02fae567cfc0a" + integrity sha512-rnSL3UyF/No7+O2EMtN1sTCiqL1a+odbfnfo3wCSl8DH5PEYINt2kZgVEvT1Fgaffk1pUggBBOZoR+arPIIDJA== dependencies: "@aws-sdk/is-array-buffer" "3.201.0" - "@aws-sdk/types" "3.254.0" + "@aws-sdk/types" "3.272.0" "@aws-sdk/util-hex-encoding" "3.201.0" - "@aws-sdk/util-middleware" "3.254.0" + "@aws-sdk/util-middleware" "3.272.0" "@aws-sdk/util-uri-escape" "3.201.0" "@aws-sdk/util-utf8" "3.254.0" tslib "^2.3.1" -"@aws-sdk/smithy-client@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/smithy-client/-/smithy-client-3.254.0.tgz#053bb490fe6db91ce90471e285e37c8adb77440c" - integrity sha512-SI0jz9JfWi1IaakDX/26xliKTIMJpzwwDoyQPEfZ/L0KKdpr2gNhljA3sR2pZ2EM1oqOaXpMHAunSzv7EBpBWg== +"@aws-sdk/smithy-client@3.279.0": + version "3.279.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/smithy-client/-/smithy-client-3.279.0.tgz#a3d90b7fb8e335cb8da46b70133c3db0d4ada8c5" + integrity sha512-ZcYWUQDGAYN6NXRpJuSn46PetrpPCA6TrDVwP9+3pERzTXZ66npXoG2XhHjNrOXy/Ted5A3OxKrM4/zLu9tK3A== dependencies: - "@aws-sdk/middleware-stack" "3.254.0" - "@aws-sdk/types" "3.254.0" + "@aws-sdk/middleware-stack" "3.272.0" + "@aws-sdk/types" "3.272.0" tslib "^2.3.1" -"@aws-sdk/token-providers@3.256.0": - version "3.256.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.256.0.tgz#a07ddab7649ff70ccb5dc419d0d457553531dc56" - integrity sha512-R8FnhJShIJsvmDzTG2y8WrJYijY7cmK2G4VqqhOx34jCuDFM1/Ml8BzN/o2RvHzJH/7qCqfUMTsJEpt+KOuMPA== - dependencies: - "@aws-sdk/client-sso-oidc" "3.256.0" - "@aws-sdk/property-provider" "3.254.0" - "@aws-sdk/shared-ini-file-loader" "3.254.0" - "@aws-sdk/types" "3.254.0" - tslib "^2.3.1" - -"@aws-sdk/types@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.254.0.tgz#760b4a876efa2edcec191dd8b18b989fa717a42e" - integrity sha512-xDEDk6ZAGFO0URPgB6R2mvQANYlojHLjLC9zzOzl07F+uqYS30yZDIg4UFcqPt/x48v7mxlKZpbaZgYI2ZLgGA== +"@aws-sdk/token-providers@3.282.0": + version "3.282.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.282.0.tgz#a3983a121e430f1dce043aeb3251dc6a0887e009" + integrity sha512-Qk/D6i+Hpc0fp/2SRHbfJeKPgUIugzsmye3NL0OV1bqd1Y40dW5LT4u67VcZHwqxzYDKe6Eo+7NHJu7qfvwhog== dependencies: + "@aws-sdk/client-sso-oidc" "3.282.0" + "@aws-sdk/property-provider" "3.272.0" + "@aws-sdk/shared-ini-file-loader" "3.272.0" + "@aws-sdk/types" "3.272.0" tslib "^2.3.1" -"@aws-sdk/types@^3.222.0": +"@aws-sdk/types@3.272.0", "@aws-sdk/types@^3.222.0": version "3.272.0" resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.272.0.tgz#83670e4009c2e72f1fdf55816c55c9f8b5935e0a" integrity sha512-MmmL6vxMGP5Bsi+4wRx4mxYlU/LX6M0noOXrDh/x5FfG7/4ZOar/nDxqDadhJtNM88cuWVHZWY59P54JzkGWmA== dependencies: tslib "^2.3.1" -"@aws-sdk/url-parser@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/url-parser/-/url-parser-3.254.0.tgz#4b1fd769a4c546bd6571181feac2be1e8feaacab" - integrity sha512-Za0JGUa9p5GQ8t2tVtKaRSjLUxrmEdnBlUiZ2zKm86wFxgQnjbMwzD3mvyJ5OaVsXScU5vzc3CXHIXSvS7h7Ng== +"@aws-sdk/url-parser@3.272.0": + version "3.272.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/url-parser/-/url-parser-3.272.0.tgz#1a21abb8815ccc2c1344a3dfab0343f4e3eff4d3" + integrity sha512-vX/Tx02PlnQ/Kgtf5TnrNDHPNbY+amLZjW0Z1d9vzAvSZhQ4i9Y18yxoRDIaDTCNVRDjdhV8iuctW+05PB5JtQ== dependencies: - "@aws-sdk/querystring-parser" "3.254.0" - "@aws-sdk/types" "3.254.0" + "@aws-sdk/querystring-parser" "3.272.0" + "@aws-sdk/types" "3.272.0" tslib "^2.3.1" "@aws-sdk/util-arn-parser@3.208.0": @@ -1109,43 +1092,43 @@ dependencies: tslib "^2.3.1" -"@aws-sdk/util-defaults-mode-browser@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.254.0.tgz#6baa31a48521f2758f919130e0bd5180b179c7ad" - integrity sha512-vj/s+BuqNKTHN9bsZ/HY7vpBWbo3F+4c3/ZoKSZa5Jc7jAuGCbx3zWwHdJFDgvbqLvsTBw80Q9d/CDy9pKj/tQ== +"@aws-sdk/util-defaults-mode-browser@3.279.0": + version "3.279.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.279.0.tgz#8d16977f0162e272b2d77d67c4588a6374e8bd6e" + integrity sha512-RnchYRrpapTT5Hu23LOfk6e8RMVq0kUzho6xA6TJj1a4uGxkcRMvgzPipCq1P5uHu0mrkQBg9pGPEVNOUs38/Q== dependencies: - "@aws-sdk/property-provider" "3.254.0" - "@aws-sdk/types" "3.254.0" + "@aws-sdk/property-provider" "3.272.0" + "@aws-sdk/types" "3.272.0" bowser "^2.11.0" tslib "^2.3.1" -"@aws-sdk/util-defaults-mode-node@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.254.0.tgz#e92b3196ddc93fe5851b584aa5ac7fb22215d0ba" - integrity sha512-gvD2+Uf60c2BgUYv2d6R4dSpO/CbvybqblgF8lKZCsHkDWzfEdPv9nlJgUWM1cuMKQ0hBZ3cL3ilOwVKRVPyiQ== - dependencies: - "@aws-sdk/config-resolver" "3.254.0" - "@aws-sdk/credential-provider-imds" "3.254.0" - "@aws-sdk/node-config-provider" "3.254.0" - "@aws-sdk/property-provider" "3.254.0" - "@aws-sdk/types" "3.254.0" +"@aws-sdk/util-defaults-mode-node@3.282.0": + version "3.282.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.282.0.tgz#827c6d7c7b6de1493873a789be4d4916ae3163b2" + integrity sha512-D1BlFoA7ZMeK2diDUWFx1xBFrSaJuBZMRBuWbnbT9AnRYNCsASZ8DRU1KkZ8LuFQIwmZz94P9q683emYnZBhiw== + dependencies: + "@aws-sdk/config-resolver" "3.282.0" + "@aws-sdk/credential-provider-imds" "3.272.0" + "@aws-sdk/node-config-provider" "3.272.0" + "@aws-sdk/property-provider" "3.272.0" + "@aws-sdk/types" "3.272.0" tslib "^2.3.1" -"@aws-sdk/util-endpoints@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.254.0.tgz#b21eed05e60210ac533ed96784d039015295895d" - integrity sha512-BzBIOnhVrs4RFTpGZErZfAV1VhqWglxn047VYijmCQe8Aejq4mJAaepSwHYar++XC0+pduD5YO8IidW8z/1vQQ== +"@aws-sdk/util-endpoints@3.272.0": + version "3.272.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.272.0.tgz#4e4c849708634c3dd840a11abaacb02c89db46d3" + integrity sha512-c4MPUaJt2G6gGpoiwIOqDfUa98c1J63RpYvf/spQEKOtC/tF5Gfqlxuq8FnAl5lHnrqj1B9ZXLLxFhHtDR0IiQ== dependencies: - "@aws-sdk/types" "3.254.0" + "@aws-sdk/types" "3.272.0" tslib "^2.3.1" -"@aws-sdk/util-format-url@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-format-url/-/util-format-url-3.254.0.tgz#c50d4d5d33a652535b67da6a7c27e20a128dbc51" - integrity sha512-WOAF5KMhmMnk93AoryvXHYlvO4V8kjBEY9YfZ+ppQZp/K1ITwbm2xz2PQ/mWNywSDV0H6yX6f+a9v/gx3CcLEw== +"@aws-sdk/util-format-url@3.272.0": + version "3.272.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-format-url/-/util-format-url-3.272.0.tgz#4ecf7267cc060b953afeb2e706c7d8e3ecc87da8" + integrity sha512-ZvYRnzDOjyR7UEZtCicDcV80nuk148IaBJfnzacVdsB3eu+rCcqZDCuGao/jKGNZGroMHmL8b4Tskwc4vZlDDw== dependencies: - "@aws-sdk/querystring-builder" "3.254.0" - "@aws-sdk/types" "3.254.0" + "@aws-sdk/querystring-builder" "3.272.0" + "@aws-sdk/types" "3.272.0" tslib "^2.3.1" "@aws-sdk/util-hex-encoding@3.201.0": @@ -1162,40 +1145,40 @@ dependencies: tslib "^2.3.1" -"@aws-sdk/util-middleware@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-middleware/-/util-middleware-3.254.0.tgz#17e8c578c3905753aeb44289885d48fc6e16c864" - integrity sha512-gn7vInNTRBo2QatOB+uU99JwV53wf/zlTUnUK0qOuebtSDLMdiO+msiMi2ctz9vMIrtc2XMXNQro1aE0aUPy4w== +"@aws-sdk/util-middleware@3.272.0": + version "3.272.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-middleware/-/util-middleware-3.272.0.tgz#ed7d732a34659b07f949e2de39cde66271a3c632" + integrity sha512-Abw8m30arbwxqmeMMha5J11ESpHUNmCeSqSzE8/C4B8jZQtHY4kq7f+upzcNIQ11lsd+uzBEzNG3+dDRi0XOJQ== dependencies: tslib "^2.3.1" -"@aws-sdk/util-retry@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-retry/-/util-retry-3.254.0.tgz#c4cdf051439b4c12d1865dd2944b9eeb1d489bcc" - integrity sha512-IVA4wAOJpVssEIbJmeq1fdDYvrkOqYFK9Pz4tERmMz33003fyY92dU468Lulw8MnsSALYiwWUoWSFg9L5RCTug== +"@aws-sdk/util-retry@3.272.0": + version "3.272.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-retry/-/util-retry-3.272.0.tgz#049f777d4a8f9fd7b7ed02e116d3a23ceb34f128" + integrity sha512-Ngha5414LR4gRHURVKC9ZYXsEJhMkm+SJ+44wlzOhavglfdcKKPUsibz5cKY1jpUV7oKECwaxHWpBB8r6h+hOg== dependencies: - "@aws-sdk/service-error-classification" "3.254.0" + "@aws-sdk/service-error-classification" "3.272.0" tslib "^2.3.1" -"@aws-sdk/util-stream-browser@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-stream-browser/-/util-stream-browser-3.254.0.tgz#27c67e9c2d5948d4903c9fc6eee2bea7aa6b99bf" - integrity sha512-ayfjKdKpd6x0M0tkdipKfIWvoR7/tKLca/mFv2KX896jTSRBKZ6rtArvU7OGmm4oC0CCBlMfwjpjiBOZJHKUyA== +"@aws-sdk/util-stream-browser@3.282.0": + version "3.282.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-stream-browser/-/util-stream-browser-3.282.0.tgz#25d02a7f37860c33ff0708759ffcaef0c0566900" + integrity sha512-84yUR9MYykbMeiAPYNSgnkEnQm7WWVXjYGNfCXQ+xL6hiQXG3F0q1NZ45aT1bIlCL8L/yck1bdfIvPHYHTpmsg== dependencies: - "@aws-sdk/fetch-http-handler" "3.254.0" - "@aws-sdk/types" "3.254.0" + "@aws-sdk/fetch-http-handler" "3.282.0" + "@aws-sdk/types" "3.272.0" "@aws-sdk/util-base64" "3.208.0" "@aws-sdk/util-hex-encoding" "3.201.0" - "@aws-sdk/util-utf8-browser" "3.188.0" + "@aws-sdk/util-utf8" "3.254.0" tslib "^2.3.1" -"@aws-sdk/util-stream-node@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-stream-node/-/util-stream-node-3.254.0.tgz#d0756a366dd2df4d9880e0118f0792ee51ba7ae9" - integrity sha512-Kfa2yKEQyoI66mHvRbU2qdFlvyet4awwgT9ygZ93U/MoxHQMDyJQXdbI6sodG5Lxo76ejyh+pR7zzGa6GgWixA== +"@aws-sdk/util-stream-node@3.282.0": + version "3.282.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-stream-node/-/util-stream-node-3.282.0.tgz#e173c31cc41aee9c31ac1fa5268b8876a81cd3e2" + integrity sha512-zZLIxDTShpx4+n+2OE/fBIHKsltJYFl53J75pDycMi4LjeD/yZD3Paz68wexTznjwggnaespPsklGEB2Ug2/rQ== dependencies: - "@aws-sdk/node-http-handler" "3.254.0" - "@aws-sdk/types" "3.254.0" + "@aws-sdk/node-http-handler" "3.282.0" + "@aws-sdk/types" "3.272.0" "@aws-sdk/util-buffer-from" "3.208.0" tslib "^2.3.1" @@ -1206,29 +1189,22 @@ dependencies: tslib "^2.3.1" -"@aws-sdk/util-user-agent-browser@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.254.0.tgz#a1e7783d4210eb6f4cfda3e6c9403e4a565f8244" - integrity sha512-2HvwH8l7ln4qTDsU3rgH9NvSSo5qhX+2Lenb6XvNnIMkL4r/tPhNIaGKtoQRfpzLH378Mm9XEQnJM5UXFRWuTA== +"@aws-sdk/util-user-agent-browser@3.282.0": + version "3.282.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.282.0.tgz#00998e8bbab30baa45c38701907b80338abe55cc" + integrity sha512-Z639oyTa5fZfyi4Xr64+eiAwBCxfpe9Op4Vhnr1z/RwonQM/qywydv6Ttpeq1q5uQ0nG4wTkOMpfh39g+VqIgw== dependencies: - "@aws-sdk/types" "3.254.0" + "@aws-sdk/types" "3.272.0" bowser "^2.11.0" tslib "^2.3.1" -"@aws-sdk/util-user-agent-node@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.254.0.tgz#044de697c3e7d151ecb80ccef529fec345e4c440" - integrity sha512-6nc9bmRP+2JqbBJ5oRZZRU8l35X3VcWF5j8XvmamWjIABsanc6Gv6NV4qAa3imPjIyWNiShZn/YkTBYs1exsdg== - dependencies: - "@aws-sdk/node-config-provider" "3.254.0" - "@aws-sdk/types" "3.254.0" - tslib "^2.3.1" - -"@aws-sdk/util-utf8-browser@3.188.0": - version "3.188.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.188.0.tgz#484762bd600401350e148277731d6744a4a92225" - integrity sha512-jt627x0+jE+Ydr9NwkFstg3cUvgWh56qdaqAMDsqgRlKD21md/6G226z/Qxl7lb1VEW2LlmCx43ai/37Qwcj2Q== +"@aws-sdk/util-user-agent-node@3.282.0": + version "3.282.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.282.0.tgz#1e8c59b32f7567a07e222ecebb4bcf91398b01f2" + integrity sha512-GSOdWNmzEd554wR9HBrgeYptKBOybveVwUkd6ws+YTdCOz4xD5Gga+I5JomKkcMEUVdBrJnYVUtq7ZsJy2f11w== dependencies: + "@aws-sdk/node-config-provider" "3.272.0" + "@aws-sdk/types" "3.272.0" tslib "^2.3.1" "@aws-sdk/util-utf8-browser@^3.0.0": @@ -1238,14 +1214,6 @@ dependencies: tslib "^2.3.1" -"@aws-sdk/util-utf8-node@3.208.0": - version "3.208.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-node/-/util-utf8-node-3.208.0.tgz#eba17de0f92f87b98481c2e2d0ceaa05c7994d67" - integrity sha512-jKY87Acv0yWBdFxx6bveagy5FYjz+dtV8IPT7ay1E2WPWH1czoIdMAkc8tSInK31T6CRnHWkLZ1qYwCbgRfERQ== - dependencies: - "@aws-sdk/util-buffer-from" "3.208.0" - tslib "^2.3.1" - "@aws-sdk/util-utf8@3.254.0": version "3.254.0" resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8/-/util-utf8-3.254.0.tgz#909af9c6549833a9a9bf77004b7484bfc96b2c35" @@ -1254,13 +1222,13 @@ "@aws-sdk/util-buffer-from" "3.208.0" tslib "^2.3.1" -"@aws-sdk/util-waiter@3.254.0": - version "3.254.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-waiter/-/util-waiter-3.254.0.tgz#b506286e9df90dcc02aaf99c958f57f99435a316" - integrity sha512-A9w23+tat+xkYdV1GprATue3JD8TzcdRxXsNOh4n33L3Xd6l3blXxPJjgi1wAVAeXy7Q8Lku7rsAc+YgKZ059w== +"@aws-sdk/util-waiter@3.272.0": + version "3.272.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-waiter/-/util-waiter-3.272.0.tgz#958448b6522709d795327f658882ddf0277af273" + integrity sha512-N25/XsJ2wkPh1EgkFyb/GRgfHDityScfD49Hk1AwJWpfetzgkcEtWdeW4IuPymXlSKhrm5L+SBw49USxo9kBag== dependencies: - "@aws-sdk/abort-controller" "3.254.0" - "@aws-sdk/types" "3.254.0" + "@aws-sdk/abort-controller" "3.272.0" + "@aws-sdk/types" "3.272.0" tslib "^2.3.1" "@aws-sdk/xml-builder@3.201.0": @@ -5262,10 +5230,10 @@ fast-levenshtein@^2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== -fast-xml-parser@4.0.11: - version "4.0.11" - resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.0.11.tgz#42332a9aca544520631c8919e6ea871c0185a985" - integrity sha512-4aUg3aNRR/WjQAcpceODG1C3x3lFANXRo8+1biqfieHmg9pyMt7qB4lQV/Ta6sJCTbA5vfD8fnA8S54JATiFUA== +fast-xml-parser@4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.1.2.tgz#5a98c18238d28a57bbdfa9fe4cda01211fff8f4a" + integrity sha512-CDYeykkle1LiA/uqQyNwYpFbyF6Axec6YapmpUP+/RHWIoR1zKjocdvNaTsxCxZzQ6v9MLXaSYm9Qq0thv0DHg== dependencies: strnum "^1.0.5" From 5259897dd5d283dd0fbc3c38e749c1df0d971f8c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 3 Mar 2023 11:26:38 +0000 Subject: [PATCH 046/228] chore(deps): update dependency jest-mock-extended to v3.0.2 (#20732) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index a5b4193b0252a3..1f9ef32f89ec4c 100644 --- a/package.json +++ b/package.json @@ -313,7 +313,7 @@ "jest": "29.4.3", "jest-extended": "3.2.4", "jest-junit": "15.0.0", - "jest-mock-extended": "3.0.1", + "jest-mock-extended": "3.0.2", "lint-staged": "13.1.2", "markdownlint-cli2": "0.6.0", "memfs": "3.4.13", diff --git a/yarn.lock b/yarn.lock index b537cdd5f5fc94..518721f40e4015 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6573,10 +6573,10 @@ jest-message-util@^29.4.3: slash "^3.0.0" stack-utils "^2.0.3" -jest-mock-extended@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/jest-mock-extended/-/jest-mock-extended-3.0.1.tgz#5f109d5e1da62851ffc9126a01e83cd6470b810b" - integrity sha512-RF4Ow8pXvbRuEcCTj56oYHmig5311BSFvbEGxPNYL51wGKGu93MvVQgx0UpFmjqyBXIcElkZo2Rke88kR1iSKQ== +jest-mock-extended@3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/jest-mock-extended/-/jest-mock-extended-3.0.2.tgz#49c1ae666f6aec38a49b6630e82cf48c44ebf72e" + integrity sha512-R0fIVQ0ZQtquXeiAlKMYU8/KwwrBiM7cDlwFXNWCvcZIjpT91p7jjyYLXlj7IUzFIqlTkiDYLa9N0DzAp/N42w== dependencies: ts-essentials "^7.0.3" From e3c92d2f0139be2301a80bbb3086c79cbce6f9bd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 4 Mar 2023 02:14:56 +0000 Subject: [PATCH 047/228] build(deps): update dependency redis to v4.6.5 (#20744) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 28 ++++++++++++++-------------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index 1f9ef32f89ec4c..e93b1a3303e319 100644 --- a/package.json +++ b/package.json @@ -221,7 +221,7 @@ "parse-link-header": "2.0.0", "prettier": "2.8.4", "quick-lru": "5.1.1", - "redis": "4.6.4", + "redis": "4.6.5", "remark": "13.0.0", "remark-github": "10.1.0", "safe-stable-stringify": "2.4.2", diff --git a/yarn.lock b/yarn.lock index 518721f40e4015..214ee9074099cd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2446,10 +2446,10 @@ resolved "https://registry.yarnpkg.com/@redis/bloom/-/bloom-1.2.0.tgz#d3fd6d3c0af3ef92f26767b56414a370c7b63b71" integrity sha512-HG2DFjYKbpNmVXsa0keLHp/3leGJz1mjh09f2RLGGLQZzSHpkmZWuwJbAvo3QcRY8p80m5+ZdXZdYOSBLlp7Cg== -"@redis/client@1.5.5": - version "1.5.5" - resolved "https://registry.yarnpkg.com/@redis/client/-/client-1.5.5.tgz#330aa9c2dafe1e2a2aa603619e58095fe33c3a1e" - integrity sha512-fuMnpDYSjT5JXR9rrCW1YWA4L8N/9/uS4ImT3ZEC/hcaQRI1D/9FvwjriRj1UvepIgzZXthFVKMNRzP/LNL7BQ== +"@redis/client@1.5.6": + version "1.5.6" + resolved "https://registry.yarnpkg.com/@redis/client/-/client-1.5.6.tgz#869cc65718d7d5493ef655a71dc40f3bc64a1b28" + integrity sha512-dFD1S6je+A47Lj22jN/upVU2fj4huR7S9APd7/ziUXsIXDL+11GPYti4Suv5y8FuXaN+0ZG4JF+y1houEJ7ToA== dependencies: cluster-key-slot "1.1.2" generic-pool "3.9.0" @@ -2465,10 +2465,10 @@ resolved "https://registry.yarnpkg.com/@redis/json/-/json-1.0.4.tgz#f372b5f93324e6ffb7f16aadcbcb4e5c3d39bda1" integrity sha512-LUZE2Gdrhg0Rx7AN+cZkb1e6HjoSKaeeW8rYnt89Tly13GBI5eP4CwDVr+MY8BAYfCg4/N15OUrtLoona9uSgw== -"@redis/search@1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@redis/search/-/search-1.1.1.tgz#f547b76b74f267831d3b368e3d7bba3a6a9e32bd" - integrity sha512-pqCXTc5e7wJJgUuJiC3hBgfoFRoPxYzwn0BEfKgejTM7M/9zP3IpUcqcjgfp8hF+LoV8rHZzcNTz7V+pEIY7LQ== +"@redis/search@1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@redis/search/-/search-1.1.2.tgz#6a8f66ba90812d39c2457420f859ce8fbd8f3838" + integrity sha512-/cMfstG/fOh/SsE+4/BQGeuH/JJloeWuH+qJzM8dbxuWvdWibWAOAHHCZTMPhV3xIlH4/cUEIA8OV5QnYpaVoA== "@redis/time-series@1.0.4": version "1.0.4" @@ -8848,16 +8848,16 @@ redeyed@~2.1.0: dependencies: esprima "~4.0.0" -redis@4.6.4: - version "4.6.4" - resolved "https://registry.yarnpkg.com/redis/-/redis-4.6.4.tgz#fe84169de000b247009c70c2740f22d1f85bc2de" - integrity sha512-wi2tgDdQ+Q8q+PR5FLRx4QvDiWaA+PoJbrzsyFqlClN5R4LplHqN3scs/aGjE//mbz++W19SgxiEnQ27jnCRaA== +redis@4.6.5: + version "4.6.5" + resolved "https://registry.yarnpkg.com/redis/-/redis-4.6.5.tgz#f32fbde44429e96f562bb0c9b1db0143ab8cfa4f" + integrity sha512-O0OWA36gDQbswOdUuAhRL6mTZpHFN525HlgZgDaVNgCJIAZR3ya06NTESb0R+TUZ+BFaDpz6NnnVvoMx9meUFg== dependencies: "@redis/bloom" "1.2.0" - "@redis/client" "1.5.5" + "@redis/client" "1.5.6" "@redis/graph" "1.1.0" "@redis/json" "1.0.4" - "@redis/search" "1.1.1" + "@redis/search" "1.1.2" "@redis/time-series" "1.0.4" regenerator-runtime@^0.13.11: From f2d162e7eaa80e330256a4dcae48aa112ad4dc58 Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Sat, 4 Mar 2023 07:29:07 +0100 Subject: [PATCH 048/228] refactor: non-null packageName (#20485) --- lib/modules/manager/swift/extract.ts | 4 ++++ lib/modules/manager/types.ts | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/modules/manager/swift/extract.ts b/lib/modules/manager/swift/extract.ts index a969fd99f905b0..9af1fa74196a7b 100644 --- a/lib/modules/manager/swift/extract.ts +++ b/lib/modules/manager/swift/extract.ts @@ -154,6 +154,10 @@ export function extractPackageFile(content: string): PackageFileContent | null { let currentValue: string | null = null; function yieldDep(): void { + // istanbul ignore if + if (!packageName) { + return; + } const depName = getDepName(packageName); if (depName && currentValue) { const dep: PackageDependency = { diff --git a/lib/modules/manager/types.ts b/lib/modules/manager/types.ts index a05fe36edadb13..27edf51ab2c219 100644 --- a/lib/modules/manager/types.ts +++ b/lib/modules/manager/types.ts @@ -110,7 +110,7 @@ export interface PackageDependency> fileReplacePosition?: number; groupName?: string; lineNumber?: number; - packageName?: string | null; + packageName?: string; target?: string; versioning?: string; dataType?: string; From c41cfdbef6e944ad374ae506d469c587d3567947 Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Sat, 4 Mar 2023 07:38:17 +0100 Subject: [PATCH 049/228] docs: gomod artifacts hostRules (#20222) Co-authored-by: HonkingGoose <34918129+HonkingGoose@users.noreply.github.com> --- lib/modules/manager/gomod/readme.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/lib/modules/manager/gomod/readme.md b/lib/modules/manager/gomod/readme.md index e17e507cc135e3..62d912c31d59ac 100644 --- a/lib/modules/manager/gomod/readme.md +++ b/lib/modules/manager/gomod/readme.md @@ -1,3 +1,5 @@ +### Post-Update Options + You might be interested in the following `postUpdateOptions`: 1. `gomodTidy` - if you'd like Renovate to run `go mod tidy` after every update before raising the PR @@ -23,3 +25,20 @@ Indirect updates are disabled by default. To enable them, add a package rule suc ] } ``` + +### Private Modules Authentication + +Before running the `go` commands to update the `go.sum`, Renovate exports `git` [`insteadOf`](https://git-scm.com/docs/git-config#Documentation/git-config.txt-urlltbasegtinsteadOf) directives in environment variables. + +The following logic is executed prior to "artifacts" updating: + +The token from the `hostRules` entry matching `hostType=github` and `matchHost=api.github.com` is added as the default authentication for `github.com`. +For those running against `github.com`, this token will be the default platform token. + +Next, all `hostRules` with both a token and `matchHost` will be fetched, except for any github.com one from above. + +Rules from this list are converted to environment variable directives if they match _any_ of the following characteristics: + +- No `hostType` is defined, or +- `hostType` is `go`, or +- `hostType` is a platform (`github`, `gitlab`, `azure`, etc.) From 7ff1a3b730d2239d21df1d5d897911be1819f6c6 Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Sat, 4 Mar 2023 09:30:54 +0100 Subject: [PATCH 050/228] chore: fix swift coverage --- lib/modules/manager/swift/extract.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/modules/manager/swift/extract.ts b/lib/modules/manager/swift/extract.ts index 9af1fa74196a7b..c142e44cd59869 100644 --- a/lib/modules/manager/swift/extract.ts +++ b/lib/modules/manager/swift/extract.ts @@ -119,6 +119,7 @@ function getMatch(str: string, state: string | null): MatchResult | null { } function getDepName(url: string | null): string | null { + // istanbul ignore if if (!url) { return null; } From 14019fed169623ca71db15ada2d7677da542761c Mon Sep 17 00:00:00 2001 From: Maxime Brunet Date: Sat, 4 Mar 2023 00:32:04 -0800 Subject: [PATCH 051/228] feat(gomod): enable gomodUpdateImportPaths for gopkg.in (#20743) --- lib/modules/manager/gomod/artifacts.spec.ts | 19 +++++++++++++++++-- lib/modules/manager/gomod/artifacts.ts | 4 ++-- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/lib/modules/manager/gomod/artifacts.spec.ts b/lib/modules/manager/gomod/artifacts.spec.ts index 410a1d04b8967e..869d5891cf3cd5 100644 --- a/lib/modules/manager/gomod/artifacts.spec.ts +++ b/lib/modules/manager/gomod/artifacts.spec.ts @@ -1625,7 +1625,7 @@ describe('modules/manager/gomod/artifacts', () => { ]); }); - it('skips updating import paths for gopkg.in dependencies', async () => { + it('updates import paths for gopkg.in dependencies including v0 to v1', async () => { fs.readLocalFile.mockResolvedValueOnce('Current go.sum'); fs.readLocalFile.mockResolvedValueOnce(null); // vendor modules filename const execSnapshots = mockExecAll(); @@ -1640,7 +1640,10 @@ describe('modules/manager/gomod/artifacts', () => { expect( await gomod.updateArtifacts({ packageFileName: 'go.mod', - updatedDeps: [{ depName: 'gopkg.in/yaml.v2', newVersion: 'v28.0.0' }], + updatedDeps: [ + { depName: 'gopkg.in/yaml.v2', newVersion: 'v28.0.0' }, + { depName: 'gopkg.in/foo.v0', newVersion: 'v1.0.0' }, + ], newPackageFileContent: gomod1, config: { ...config, @@ -1657,6 +1660,18 @@ describe('modules/manager/gomod/artifacts', () => { cmd: 'go get -d -t ./...', options: { cwd: '/tmp/github/some/repo' }, }, + { + cmd: 'go install github.com/marwan-at-work/mod/cmd/mod@latest', + options: { cwd: '/tmp/github/some/repo' }, + }, + { + cmd: 'mod upgrade --mod-name=gopkg.in/yaml.v2 -t=28', + options: { cwd: '/tmp/github/some/repo' }, + }, + { + cmd: 'mod upgrade --mod-name=gopkg.in/foo.v0 -t=1', + options: { cwd: '/tmp/github/some/repo' }, + }, { cmd: 'go mod tidy', options: { cwd: '/tmp/github/some/repo' }, diff --git a/lib/modules/manager/gomod/artifacts.ts b/lib/modules/manager/gomod/artifacts.ts index 6378f7cd534764..570ffed67a64be 100644 --- a/lib/modules/manager/gomod/artifacts.ts +++ b/lib/modules/manager/gomod/artifacts.ts @@ -134,9 +134,9 @@ function getUpdateImportPathCmds( depName: depName!, newMajor: major(newVersion!), })) - // Skip path upates going from v0 to v1 + // Skip path updates going from v0 to v1 .filter( - ({ depName, newMajor }) => !depName.startsWith('gopkg.in') && newMajor > 1 + ({ depName, newMajor }) => depName.startsWith('gopkg.in') || newMajor > 1 ) .map( From 9ec48045793f93e25a887d26f5470af380f47991 Mon Sep 17 00:00:00 2001 From: Sergei Zharinov Date: Sat, 4 Mar 2023 13:32:38 +0300 Subject: [PATCH 052/228] feat(bazel): Use Gradle versioning for `maven_install` by default (#20748) --- docs/usage/bazel.md | 19 ++++++++++++++++++- lib/modules/manager/bazel/rules/index.spec.ts | 3 +++ lib/modules/manager/bazel/rules/maven.ts | 2 ++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/docs/usage/bazel.md b/docs/usage/bazel.md index 01c8008dcd9e3c..2ab85e9923d1ce 100644 --- a/docs/usage/bazel.md +++ b/docs/usage/bazel.md @@ -11,7 +11,7 @@ Renovate supports upgrading dependencies in Bazel `WORKSPACE` files. 1. Bazel support is enabled automatically 2. Renovate will search repositories for any `WORKSPACE` files in the repository -3. Existing dependencies will be extracted from `git_repository` and `http_archive` declarations +3. Existing dependencies will be extracted from `container_pull`, `git_repository`, `go_repository`, `maven_install`, and `http_archive`/`http_file` declarations 4. Renovate will replace any old versions with the latest version available ## git_repository @@ -54,6 +54,23 @@ http_archive( Renovate uses the list of **releases** that it finds at the `url` to detect a new version. +## maven_install + +By default, Maven dependencies are extracted in the context of Gradle versioning scheme. +To change it, configure `packageRules` like this: + +```json +{ + "packageRules": [ + { + "matchManagers": ["bazel"], + "matchDatasources": ["maven"], + "versioning": "maven" + } + ] +} +``` + ## Future work Contributions and/or feature requests are welcome to support more patterns or additional use cases. diff --git a/lib/modules/manager/bazel/rules/index.spec.ts b/lib/modules/manager/bazel/rules/index.spec.ts index a1b9a955361469..6bdfbc9fde6406 100644 --- a/lib/modules/manager/bazel/rules/index.spec.ts +++ b/lib/modules/manager/bazel/rules/index.spec.ts @@ -378,6 +378,7 @@ describe('modules/manager/bazel/rules/index', () => { { currentValue: '1.1.1', datasource: 'maven', + versioning: 'gradle', depType: 'maven_install', depName: 'com.example1:foo', registryUrls: [ @@ -388,6 +389,7 @@ describe('modules/manager/bazel/rules/index', () => { { currentValue: '2.2.2', datasource: 'maven', + versioning: 'gradle', depType: 'maven_install', depName: 'com.example2:bar', registryUrls: [ @@ -398,6 +400,7 @@ describe('modules/manager/bazel/rules/index', () => { { currentValue: '3.3.3', datasource: 'maven', + versioning: 'gradle', depType: 'maven_install', depName: 'com.example3:baz', registryUrls: [ diff --git a/lib/modules/manager/bazel/rules/maven.ts b/lib/modules/manager/bazel/rules/maven.ts index 448185e371a0fc..5107ea1ad49905 100644 --- a/lib/modules/manager/bazel/rules/maven.ts +++ b/lib/modules/manager/bazel/rules/maven.ts @@ -1,6 +1,7 @@ import is from '@sindresorhus/is'; import { z } from 'zod'; import { MavenDatasource } from '../../../datasource/maven'; +import { id as versioning } from '../../../versioning/gradle'; import type { PackageDependency } from '../../types'; export const mavenRules = ['maven_install'] as const; @@ -52,6 +53,7 @@ export const MavenTarget = z }): PackageDependency[] => artifacts.map(({ group, artifact, version: currentValue }) => ({ datasource: MavenDatasource.id, + versioning, depName: `${group}:${artifact}`, currentValue, depType, From ecc60897ef4149caebee1fb108d426e6bc9ac468 Mon Sep 17 00:00:00 2001 From: RahulGautamSingh Date: Sat, 4 Mar 2023 19:53:29 +0530 Subject: [PATCH 053/228] feat(datasource/nuget): support password only registry auth (#20749) --- lib/modules/manager/nuget/artifacts.spec.ts | 33 ++++++++++++++------- lib/modules/manager/nuget/artifacts.ts | 13 +++++--- 2 files changed, 32 insertions(+), 14 deletions(-) diff --git a/lib/modules/manager/nuget/artifacts.spec.ts b/lib/modules/manager/nuget/artifacts.spec.ts index aa22079b096e2c..870701c93eee76 100644 --- a/lib/modules/manager/nuget/artifacts.spec.ts +++ b/lib/modules/manager/nuget/artifacts.spec.ts @@ -6,6 +6,7 @@ import type { RepoGlobalConfig } from '../../../config/types'; import * as docker from '../../../util/exec/docker'; import * as _hostRules from '../../../util/host-rules'; import type { UpdateArtifactsConfig } from '../types'; +import type { Registry } from './types'; import * as util from './util'; import * as nuget from '.'; @@ -420,16 +421,23 @@ describe('modules/manager/nuget/artifacts', () => { name: 'myRegistry', url: 'https://my-registry.example.org', }, - ] as never); - hostRules.find.mockImplementationOnce((search) => { - if ( - search.hostType === 'nuget' && - search.url === 'https://my-registry.example.org' - ) { - return { - username: 'some-username', - password: 'some-password', - }; + { + name: 'myRegistry2', + url: 'https://my-registry2.example.org', + }, + ] satisfies Registry[]); + hostRules.find.mockImplementation((search) => { + if (search.hostType === 'nuget') { + if (search.url === 'https://my-registry.example.org') { + return { + username: 'some-username', + password: 'some-password', + }; + } else { + return { + password: 'some-password', + }; + } } return {}; }); @@ -455,6 +463,11 @@ describe('modules/manager/nuget/artifacts', () => { 'dotnet nuget add source https://my-registry.example.org/ --configfile /tmp/renovate/cache/__renovate-private-cache/nuget/nuget.config ' + '--name myRegistry --username some-username --password some-password --store-password-in-clear-text', }, + { + cmd: + 'dotnet nuget add source https://my-registry2.example.org/ --configfile /tmp/renovate/cache/__renovate-private-cache/nuget/nuget.config ' + + '--name myRegistry2 --password some-password --store-password-in-clear-text', + }, { cmd: 'dotnet restore project.csproj --force-evaluate --configfile /tmp/renovate/cache/__renovate-private-cache/nuget/nuget.config', }, diff --git a/lib/modules/manager/nuget/artifacts.ts b/lib/modules/manager/nuget/artifacts.ts index 2d2f4e1a6af3bf..4b84ca0406edac 100644 --- a/lib/modules/manager/nuget/artifacts.ts +++ b/lib/modules/manager/nuget/artifacts.ts @@ -38,7 +38,7 @@ async function addSourceCmds( (await getConfiguredRegistries(packageFileName)) ?? getDefaultRegistries(); const result: string[] = []; for (const registry of registries) { - const { username, password } = hostRules.find({ + const { password, username } = hostRules.find({ hostType: NugetDatasource.id, url: registry.url, }); @@ -50,9 +50,14 @@ async function addSourceCmds( // Add name for registry, if known. addSourceCmd += ` --name ${quote(registry.name)}`; } - if (username && password) { - // Add registry credentials from host rules, if configured. - addSourceCmd += ` --username ${quote(username)} --password ${quote( + // Add registry credentials from host rules, if configured. + if (username) { + // Add username from host rules, if configured. + addSourceCmd += ` --username ${quote(username)}`; + } + if (password) { + // Add password from host rules, if configured. + addSourceCmd += ` --password ${quote( password )} --store-password-in-clear-text`; } From 865608a91d0b3cdf32f036c18cb84e4d7af3fece Mon Sep 17 00:00:00 2001 From: Sergei Zharinov Date: Sat, 4 Mar 2023 18:25:03 +0300 Subject: [PATCH 054/228] test(schedule): Use template literal with `test.each` (#20750) --- .../repository/update/branch/schedule.spec.ts | 25 ++++++------------- 1 file changed, 7 insertions(+), 18 deletions(-) diff --git a/lib/workers/repository/update/branch/schedule.spec.ts b/lib/workers/repository/update/branch/schedule.spec.ts index 2f9ab17bb2d089..6c395ffc47f9f7 100644 --- a/lib/workers/repository/update/branch/schedule.spec.ts +++ b/lib/workers/repository/update/branch/schedule.spec.ts @@ -264,24 +264,13 @@ describe('workers/repository/update/branch/schedule', () => { }); describe('supports timezone', () => { - const cases: [string, string, string, boolean][] = [ - ['after 4pm', 'Asia/Singapore', '2017-06-30T15:59:00.000+0800', false], - ['after 4pm', 'Asia/Singapore', '2017-06-30T16:01:00.000+0800', true], - [ - 'before 3am on Monday', - 'Asia/Tokyo', - '2017-06-26T02:59:00.000+0900', - true, - ], - [ - 'before 3am on Monday', - 'Asia/Tokyo', - '2017-06-26T03:01:00.000+0900', - false, - ], - ]; - - test.each(cases)('%p, %p, %p', (sched, tz, datetime, expected) => { + test.each` + sched | tz | datetime | expected + ${'after 4pm'} | ${'Asia/Singapore'} | ${'2017-06-30T15:59:00.000+0800'} | ${false} + ${'after 4pm'} | ${'Asia/Singapore'} | ${'2017-06-30T16:01:00.000+0800'} | ${true} + ${'before 3am on Monday'} | ${'Asia/Tokyo'} | ${'2017-06-26T02:59:00.000+0900'} | ${true} + ${'before 3am on Monday'} | ${'Asia/Tokyo'} | ${'2017-06-26T03:01:00.000+0900'} | ${false} + `('$sched, $tz, $datetime', ({ sched, tz, datetime, expected }) => { config.schedule = [sched]; config.timezone = tz; mockDate.set(datetime); From a610800d0bcd6a53034f01c2a31cf921c200d7e2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 4 Mar 2023 17:09:16 +0100 Subject: [PATCH 055/228] chore(deps): update dependency eslint-formatter-gha to v1.4.2 (#20747) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index e93b1a3303e319..d01e973d6987a6 100644 --- a/package.json +++ b/package.json @@ -299,7 +299,7 @@ "emojibase-data": "7.0.1", "eslint": "8.34.0", "eslint-config-prettier": "8.6.0", - "eslint-formatter-gha": "1.4.1", + "eslint-formatter-gha": "1.4.2", "eslint-import-resolver-typescript": "3.5.3", "eslint-plugin-import": "2.27.5", "eslint-plugin-jest": "27.2.1", diff --git a/yarn.lock b/yarn.lock index 214ee9074099cd..cb62886ab0172c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4905,10 +4905,10 @@ eslint-config-prettier@8.6.0: resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.6.0.tgz#dec1d29ab728f4fa63061774e1672ac4e363d207" integrity sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA== -eslint-formatter-gha@1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/eslint-formatter-gha/-/eslint-formatter-gha-1.4.1.tgz#e787a68171c5486fb7e8b514224a722a5f59a8ec" - integrity sha512-c2L/p4Xtnzlb3ascN4vERcXTMNPePedxZNRZcKG19DDpViBIG1WLMyMIeC2FSW7yGLBANZNb9N66sV2PDCdIqQ== +eslint-formatter-gha@1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/eslint-formatter-gha/-/eslint-formatter-gha-1.4.2.tgz#95330dbf026a34faf877a5893c210d5e19b40e6c" + integrity sha512-V+i+jdUOAkkCWK0gESohLjYk/fJpgMgE0L6QPGd8b5jtBQlG+MT/zb7yy2/HlqccIkRBYq/brT2rLW2K8H9kqA== dependencies: "@actions/core" "^1.2.6" eslint-formatter-json "^8.0.0" From d0f66ed7be0ebb8f35a69f9f00103b36e16c4e5e Mon Sep 17 00:00:00 2001 From: Michael Kriese Date: Sun, 5 Mar 2023 08:48:03 +0100 Subject: [PATCH 056/228] ci: wrong node version (#20756) --- .github/workflows/update-data.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update-data.yml b/.github/workflows/update-data.yml index 20f19ed2a4b808..cce07ba198d0c8 100644 --- a/.github/workflows/update-data.yml +++ b/.github/workflows/update-data.yml @@ -5,7 +5,7 @@ on: workflow_dispatch: env: - NODE_VERSION: 16 + NODE_VERSION: 18 permissions: contents: write From 06b9f709f81580cc0014c4cdf6d052d7e5c470aa Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 5 Mar 2023 09:49:25 +0000 Subject: [PATCH 057/228] chore(deps): update dependency eslint to v8.35.0 (#20757) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 28 +++++++++++++++++----------- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index d01e973d6987a6..85b632ec527419 100644 --- a/package.json +++ b/package.json @@ -297,7 +297,7 @@ "cross-env": "7.0.3", "diff": "5.1.0", "emojibase-data": "7.0.1", - "eslint": "8.34.0", + "eslint": "8.35.0", "eslint-config-prettier": "8.6.0", "eslint-formatter-gha": "1.4.2", "eslint-import-resolver-typescript": "3.5.3", diff --git a/yarn.lock b/yarn.lock index cb62886ab0172c..8619489c187222 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1567,10 +1567,10 @@ dependencies: "@jridgewell/trace-mapping" "0.3.9" -"@eslint/eslintrc@^1.4.1": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.4.1.tgz#af58772019a2d271b7e2d4c23ff4ddcba3ccfb3e" - integrity sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA== +"@eslint/eslintrc@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.0.tgz#943309d8697c52fc82c076e90c1c74fbbe69dbff" + integrity sha512-fluIaaV+GyV24CCu/ggiHdV+j4RNh85yQnAYS/G2mZODZgGmmlrgCydjUcV3YvxCm9x8nMAfThsqTni4KiXT4A== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -1582,6 +1582,11 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" +"@eslint/js@8.35.0": + version "8.35.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.35.0.tgz#b7569632b0b788a0ca0e438235154e45d42813a7" + integrity sha512-JXdzbRiWclLVoD8sNUjR443VVlYqiYmDVT6rGUEIEHU5YJW0gaVZwV2xgM7D4arkvASqD0IlLUVjHiFuxaftRw== + "@gar/promisify@^1.1.3": version "1.1.3" resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" @@ -5035,12 +5040,13 @@ eslint-visitor-keys@^3.3.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== -eslint@8.34.0: - version "8.34.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.34.0.tgz#fe0ab0ef478104c1f9ebc5537e303d25a8fb22d6" - integrity sha512-1Z8iFsucw+7kSqXNZVslXS8Ioa4u2KM7GPwuKtkTFAqZ/cHMcEaR+1+Br0wLlot49cNxIiZk5wp8EAbPcYZxTg== +eslint@8.35.0: + version "8.35.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.35.0.tgz#fffad7c7e326bae606f0e8f436a6158566d42323" + integrity sha512-BxAf1fVL7w+JLRQhWl2pzGeSiGqbWumV4WNvc9Rhp6tiCtm4oHnyPBSEtMGZwrQgudFQ+otqzWoPB7x+hxoWsw== dependencies: - "@eslint/eslintrc" "^1.4.1" + "@eslint/eslintrc" "^2.0.0" + "@eslint/js" "8.35.0" "@humanwhocodes/config-array" "^0.11.8" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" @@ -5054,7 +5060,7 @@ eslint@8.34.0: eslint-utils "^3.0.0" eslint-visitor-keys "^3.3.0" espree "^9.4.0" - esquery "^1.4.0" + esquery "^1.4.2" esutils "^2.0.2" fast-deep-equal "^3.1.3" file-entry-cache "^6.0.1" @@ -5094,7 +5100,7 @@ esprima@^4.0.0, esprima@~4.0.0: resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.4.0: +esquery@^1.4.2: version "1.5.0" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== From 939c79303c7da07dd0a32da755faca72b1c9b4f3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 5 Mar 2023 10:41:30 +0000 Subject: [PATCH 058/228] chore(deps): update dependency type-fest to v3.6.1 (#20758) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 85b632ec527419..fed89a8e93cac8 100644 --- a/package.json +++ b/package.json @@ -328,7 +328,7 @@ "tmp-promise": "3.0.3", "ts-jest": "29.0.5", "ts-node": "10.9.1", - "type-fest": "3.6.0", + "type-fest": "3.6.1", "typescript": "4.9.5", "unified": "9.2.2" }, diff --git a/yarn.lock b/yarn.lock index 8619489c187222..f1ff448322e995 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9922,10 +9922,10 @@ type-detect@4.0.8, type-detect@^4.0.8: resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== -type-fest@3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-3.6.0.tgz#827c36c0e7fcff0cb2d55d091a5c4cf586432b8a" - integrity sha512-RqTRtKTzvPpNdDUp1dVkKQRunlPITk4mXeqFlAZoJsS+fLRn8AdPK0TcQDumGayhU7fjlBfiBjsq3pe3rIfXZQ== +type-fest@3.6.1: + version "3.6.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-3.6.1.tgz#cf8025edeebfd6cf48de73573a5e1423350b9993" + integrity sha512-htXWckxlT6U4+ilVgweNliPqlsVSSucbxVexRYllyMVJDtf5rTjv6kF/s+qAd4QSL1BZcnJPEJavYBPQiWuZDA== type-fest@^0.13.1: version "0.13.1" From eb5db5b492dae1b4e41e78fe58c661b596ae020a Mon Sep 17 00:00:00 2001 From: Shawn Smith Date: Sun, 5 Mar 2023 10:29:06 -0800 Subject: [PATCH 059/228] fix(datasource/docker): Artifactory next link is broken for tags api (#20745) Co-authored-by: Rhys Arkins Co-authored-by: Michael Kriese --- lib/modules/datasource/docker/common.ts | 4 +- lib/modules/datasource/docker/index.spec.ts | 66 +++++++++++++-------- lib/modules/datasource/docker/index.ts | 10 +++- 3 files changed, 52 insertions(+), 28 deletions(-) diff --git a/lib/modules/datasource/docker/common.ts b/lib/modules/datasource/docker/common.ts index f91b85c1e2049a..467755d9779f6b 100644 --- a/lib/modules/datasource/docker/common.ts +++ b/lib/modules/datasource/docker/common.ts @@ -10,6 +10,8 @@ export const gitRefLabel = 'org.opencontainers.image.revision'; const JFROG_ARTIFACTORY_RES_HEADER = 'x-jfrog-version'; -export function isArtifactoryServer(res: HttpResponse | undefined): boolean { +export function isArtifactoryServer( + res: HttpResponse | undefined +): boolean { return is.string(res?.headers[JFROG_ARTIFACTORY_RES_HEADER]); } diff --git a/lib/modules/datasource/docker/index.spec.ts b/lib/modules/datasource/docker/index.spec.ts index e19389b4bb8f1e..321f65932f2659 100644 --- a/lib/modules/datasource/docker/index.spec.ts +++ b/lib/modules/datasource/docker/index.spec.ts @@ -5,6 +5,7 @@ import { } from '@aws-sdk/client-ecr'; import { mockClient } from 'aws-sdk-client-mock'; import { getDigest, getPkgReleases } from '..'; +import { range } from '../../../../lib/util/range'; import * as httpMock from '../../../../test/http-mock'; import { logger, mocked } from '../../../../test/util'; import { @@ -1193,32 +1194,45 @@ describe('modules/datasource/docker/index', () => { await expect(getPkgReleases(config)).rejects.toThrow(EXTERNAL_HOST_ERROR); }); - it.each([[true], [false]])( - 'jfrog artifactory - retry tags for official images by injecting `/library` after repository and before image, abortOnError=%p', - async (abortOnError) => { - hostRules.find.mockReturnValue({ abortOnError }); - const tags = ['18.0.0']; - httpMock - .scope('https://org.jfrog.io/v2') - .get('/virtual-mirror/node/tags/list?n=10000') - .reply(200, '', {}) - .get('/virtual-mirror/node/tags/list?n=10000') - .reply(404, '', { 'x-jfrog-version': 'Artifactory/7.42.2 74202900' }) - .get('/virtual-mirror/library/node/tags/list?n=10000') - .reply(200, '', {}) - .get('/virtual-mirror/library/node/tags/list?n=10000') - .reply(200, { tags }, {}) - .get('/') - .reply(200, '', {}) - .get('/virtual-mirror/node/manifests/18.0.0') - .reply(200, '', {}); - const res = await getPkgReleases({ - datasource: DockerDatasource.id, - depName: 'org.jfrog.io/virtual-mirror/node', - }); - expect(res?.releases).toHaveLength(1); - } - ); + it('jfrog artifactory - retry tags for official images by injecting `/library` after repository and before image', async () => { + const tags1 = [...range(1, 10000)].map((i) => `${i}.0.0`); + const tags2 = [...range(10000, 10050)].map((i) => `${i}.0.0`); + httpMock + .scope('https://org.jfrog.io/v2') + .get('/virtual-mirror/node/tags/list?n=10000') + .reply(200, '', { 'x-jfrog-version': 'Artifactory/7.42.2 74202900' }) + .get('/virtual-mirror/node/tags/list?n=10000') + .reply(404, '', { 'x-jfrog-version': 'Artifactory/7.42.2 74202900' }) + .get('/virtual-mirror/library/node/tags/list?n=10000') + .reply(200, '', {}) + .get('/virtual-mirror/library/node/tags/list?n=10000') + // Note the Link is incorrect and should be `; rel="next", ` + // Artifactory incorrectly returns a next link without the virtual repository name + // this is due to a bug in Artifactory https://jfrog.atlassian.net/browse/RTFACT-18971 + .reply( + 200, + { tags: tags1 }, + { + 'x-jfrog-version': 'Artifactory/7.42.2 74202900', + link: '; rel="next", ', + } + ) + .get('/virtual-mirror/library/node/tags/list?n=10000&last=10000') + .reply( + 200, + { tags: tags2 }, + { 'x-jfrog-version': 'Artifactory/7.42.2 74202900' } + ) + .get('/') + .reply(200, '', {}) + .get('/virtual-mirror/node/manifests/10050.0.0') + .reply(200, '', {}); + const res = await getPkgReleases({ + datasource: DockerDatasource.id, + depName: 'org.jfrog.io/virtual-mirror/node', + }); + expect(res?.releases).toHaveLength(10050); + }); it('uses lower tag limit for ECR deps', async () => { httpMock diff --git a/lib/modules/datasource/docker/index.ts b/lib/modules/datasource/docker/index.ts index 83bcd6dabfb865..c2192fec8dfd01 100644 --- a/lib/modules/datasource/docker/index.ts +++ b/lib/modules/datasource/docker/index.ts @@ -883,7 +883,15 @@ export class DockerDatasource extends Datasource { } tags = tags.concat(res.body.tags); const linkHeader = parseLinkHeader(res.headers.link); - url = linkHeader?.next ? URL.resolve(url, linkHeader.next.url) : null; + if (isArtifactoryServer(res)) { + // Artifactory incorrectly returns a next link without the virtual repository name + // this is due to a bug in Artifactory https://jfrog.atlassian.net/browse/RTFACT-18971 + url = linkHeader?.next?.last + ? `${url}&last=${linkHeader.next.last}` + : null; + } else { + url = linkHeader?.next ? URL.resolve(url, linkHeader.next.url) : null; + } page += 1; } while (url && page < 20); return tags; From 923755e1e7d1b4973524617167ecb2159ca52b7c Mon Sep 17 00:00:00 2001 From: Adam Setch Date: Sun, 5 Mar 2023 13:34:05 -0500 Subject: [PATCH 060/228] fix: auto-replace pinning (#20627) --- .../update/branch/auto-replace.spec.ts | 46 ++++++++++----- .../repository/update/branch/auto-replace.ts | 57 +++++++++++-------- 2 files changed, 64 insertions(+), 39 deletions(-) diff --git a/lib/workers/repository/update/branch/auto-replace.spec.ts b/lib/workers/repository/update/branch/auto-replace.spec.ts index e5082c25bc8c84..7b2c928d6d16df 100644 --- a/lib/workers/repository/update/branch/auto-replace.spec.ts +++ b/lib/workers/repository/update/branch/auto-replace.spec.ts @@ -233,6 +233,24 @@ describe('workers/repository/update/branch/auto-replace', () => { await expect(res).rejects.toThrow(WORKER_FILE_UPDATE_FAILED); }); + it('fails with digest mismatch', async () => { + const dockerfile = codeBlock` + FROM java:11@sha256-1234 as build + `; + upgrade.manager = 'dockerfile'; + upgrade.pinDigests = true; + upgrade.depName = 'java'; + upgrade.currentValue = '11'; + upgrade.currentDigest = 'sha256-1234'; + upgrade.depIndex = 0; + upgrade.newName = 'java'; + upgrade.newValue = '11'; + upgrade.newDigest = 'sha256-5678'; + upgrade.packageFile = 'Dockerfile'; + const res = doAutoReplace(upgrade, dockerfile, reuseExistingBranch); + await expect(res).rejects.toThrow(WORKER_FILE_UPDATE_FAILED); + }); + it('updates with docker replacement', async () => { const dockerfile = 'FROM bitnami/redis:6.0.8'; upgrade.manager = 'dockerfile'; @@ -1044,12 +1062,12 @@ describe('workers/repository/update/branch/auto-replace', () => { FROM ubuntu:18.04 `; upgrade.manager = 'dockerfile'; + upgrade.updateType = 'replacement'; + upgrade.pinDigests = true; upgrade.depName = 'ubuntu'; upgrade.currentValue = '18.04'; upgrade.currentDigest = undefined; upgrade.depIndex = 0; - upgrade.pinDigests = true; - upgrade.updateType = 'replacement'; upgrade.replaceString = 'ubuntu:18.04'; upgrade.newName = 'alpine'; upgrade.newValue = '3.16'; @@ -1068,12 +1086,12 @@ describe('workers/repository/update/branch/auto-replace', () => { FROM ubuntu:18.04@sha256:q1w2e3r4t5z6u7i8o9p0 `; upgrade.manager = 'dockerfile'; + upgrade.updateType = 'replacement'; + upgrade.pinDigests = true; upgrade.depName = 'ubuntu'; upgrade.currentValue = '18.04'; upgrade.currentDigest = 'sha256:q1w2e3r4t5z6u7i8o9p0'; upgrade.depIndex = 0; - upgrade.pinDigests = true; - upgrade.updateType = 'replacement'; upgrade.replaceString = 'ubuntu:18.04@sha256:q1w2e3r4t5z6u7i8o9p0'; upgrade.newName = 'alpine'; upgrade.newValue = '3.16'; @@ -1090,6 +1108,7 @@ describe('workers/repository/update/branch/auto-replace', () => { it('regex: updates with pinDigest enabled but no currentDigest value', async () => { const yml = 'image: "some.url.com/my-repository:1.0"'; upgrade.manager = 'regex'; + upgrade.updateType = 'replacement'; upgrade.pinDigests = true; upgrade.depName = 'some.url.com/my-repository'; upgrade.currentValue = '1.0'; @@ -1111,6 +1130,7 @@ describe('workers/repository/update/branch/auto-replace', () => { const yml = 'image: "some.url.com/my-repository:1.0@sha256:q1w2e3r4t5z6u7i8o9p0"'; upgrade.manager = 'regex'; + upgrade.updateType = 'replacement'; upgrade.pinDigests = true; upgrade.depName = 'some.url.com/my-repository'; upgrade.currentValue = '1.0'; @@ -1131,7 +1151,7 @@ describe('workers/repository/update/branch/auto-replace', () => { ); }); - it('github-actions: update with newValue only', async () => { + it('github-actions: updates with newValue only', async () => { const githubAction = codeBlock` jobs: build: @@ -1140,6 +1160,7 @@ describe('workers/repository/update/branch/auto-replace', () => { - uses: actions/checkout@v1.0.0 `; upgrade.manager = 'github-actions'; + upgrade.updateType = 'replacement'; upgrade.autoReplaceStringTemplate = '{{depName}}@{{#if newDigest}}{{newDigest}}{{#if newValue}} # {{newValue}}{{/if}}{{/if}}{{#unless newDigest}}{{newValue}}{{/unless}}'; upgrade.depName = 'actions/checkout'; @@ -1147,8 +1168,6 @@ describe('workers/repository/update/branch/auto-replace', () => { upgrade.currentDigest = undefined; upgrade.currentDigestShort = undefined; upgrade.depIndex = 0; - upgrade.pinDigests = true; - upgrade.updateType = 'replacement'; upgrade.replaceString = 'actions/checkout@v1.0.0'; upgrade.newValue = 'v2.0.0'; upgrade.newDigest = undefined; @@ -1169,7 +1188,7 @@ describe('workers/repository/update/branch/auto-replace', () => { ); }); - it('github-actions: update with newValue and newDigest', async () => { + it('github-actions: updates with newValue and newDigest', async () => { const githubAction = codeBlock` jobs: build: @@ -1178,6 +1197,7 @@ describe('workers/repository/update/branch/auto-replace', () => { - uses: actions/checkout@v1.0.0 `; upgrade.manager = 'github-actions'; + upgrade.updateType = 'replacement'; upgrade.autoReplaceStringTemplate = '{{depName}}@{{#if newDigest}}{{newDigest}}{{#if newValue}} # {{newValue}}{{/if}}{{/if}}{{#unless newDigest}}{{newValue}}{{/unless}}'; upgrade.depName = 'actions/checkout'; @@ -1185,8 +1205,6 @@ describe('workers/repository/update/branch/auto-replace', () => { upgrade.currentDigest = undefined; upgrade.currentDigestShort = undefined; upgrade.depIndex = 0; - upgrade.pinDigests = true; - upgrade.updateType = 'replacement'; upgrade.replaceString = 'actions/checkout@v1.0.0'; upgrade.newValue = 'v2.0.0'; upgrade.newDigest = '1cf887'; @@ -1216,6 +1234,8 @@ describe('workers/repository/update/branch/auto-replace', () => { - uses: actions/checkout@v1.0.0 `; upgrade.manager = 'github-actions'; + upgrade.updateType = 'replacement'; + upgrade.pinDigests = true; upgrade.autoReplaceStringTemplate = '{{depName}}@{{#if newDigest}}{{newDigest}}{{#if newValue}} # {{newValue}}{{/if}}{{/if}}{{#unless newDigest}}{{newValue}}{{/unless}}'; upgrade.depName = 'actions/checkout'; @@ -1223,8 +1243,6 @@ describe('workers/repository/update/branch/auto-replace', () => { upgrade.currentDigest = undefined; upgrade.currentDigestShort = undefined; upgrade.depIndex = 0; - upgrade.pinDigests = true; - upgrade.updateType = 'replacement'; upgrade.replaceString = 'actions/checkout@v1.0.0'; upgrade.newName = 'some-other-action/checkout'; upgrade.newValue = 'v2.0.0'; @@ -1255,14 +1273,14 @@ describe('workers/repository/update/branch/auto-replace', () => { - uses: actions/checkout@2485f4 # tag=v1.0.0 `; upgrade.manager = 'github-actions'; + upgrade.updateType = 'replacement'; + upgrade.pinDigests = true; upgrade.autoReplaceStringTemplate = '{{depName}}@{{#if newDigest}}{{newDigest}}{{#if newValue}} # {{newValue}}{{/if}}{{/if}}{{#unless newDigest}}{{newValue}}{{/unless}}'; upgrade.depName = 'actions/checkout'; upgrade.currentValue = 'v1.0.0'; upgrade.currentDigestShort = '2485f4'; upgrade.depIndex = 0; - upgrade.pinDigests = true; - upgrade.updateType = 'replacement'; upgrade.replaceString = 'actions/checkout@2485f4 # tag=v1.0.0'; upgrade.newName = 'some-other-action/checkout'; upgrade.newValue = 'v2.0.0'; diff --git a/lib/workers/repository/update/branch/auto-replace.ts b/lib/workers/repository/update/branch/auto-replace.ts index 38a64a001cbd2f..727ec6562c68be 100644 --- a/lib/workers/repository/update/branch/auto-replace.ts +++ b/lib/workers/repository/update/branch/auto-replace.ts @@ -14,15 +14,7 @@ export async function confirmIfDepUpdated( upgrade: BranchUpgradeConfig, newContent: string ): Promise { - const { - manager, - packageFile, - newValue, - newDigest, - depIndex, - currentDigest, - pinDigests, - } = upgrade; + const { manager, packageFile, depIndex } = upgrade; let newUpgrade: PackageDependency; try { const newExtract = await extractPackageFile( @@ -63,12 +55,25 @@ export async function confirmIfDepUpdated( return false; } - if (newValue && newUpgrade.currentValue !== newValue) { + if (upgrade.newName && upgrade.newName !== newUpgrade.depName) { + logger.debug( + { + manager, + packageFile, + currentDepName: upgrade.depName, + newDepName: newUpgrade.depName, + }, + 'depName is not updated' + ); + return false; + } + + if (upgrade.newValue && upgrade.newValue !== newUpgrade.currentValue) { logger.debug( { manager, packageFile, - expectedValue: newValue, + expectedValue: upgrade.newValue, foundValue: newUpgrade.currentValue, }, 'Value is not updated' @@ -76,22 +81,24 @@ export async function confirmIfDepUpdated( return false; } - if (!newDigest) { - return true; - } - if (newUpgrade.currentDigest === newDigest) { - return true; - } - if (!currentDigest) { - if (!pinDigests) { - return true; - } else if (newDigest) { - return true; - } + if ( + upgrade.newDigest && + (upgrade.isPinDigest || upgrade.currentDigest) && + upgrade.newDigest !== newUpgrade.currentDigest + ) { + logger.debug( + { + manager, + packageFile, + expectedValue: upgrade.newDigest, + foundValue: newUpgrade.currentDigest, + }, + 'Digest is not updated' + ); + return false; } - // istanbul ignore next - return false; + return true; } function getDepsSignature(deps: PackageDependency[]): string { From fc2fd01a410a9305a5484c8a71dfdb3ce383da07 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 5 Mar 2023 21:50:23 +0000 Subject: [PATCH 061/228] chore(deps): update dependency @types/node to v16.18.13 (#20766) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index fed89a8e93cac8..53d9c928f7d647 100644 --- a/package.json +++ b/package.json @@ -278,7 +278,7 @@ "@types/marshal": "0.5.1", "@types/moo": "0.5.5", "@types/nock": "10.0.3", - "@types/node": "16.18.12", + "@types/node": "16.18.13", "@types/parse-link-header": "2.0.1", "@types/semver": "7.3.13", "@types/semver-stable": "3.0.0", diff --git a/yarn.lock b/yarn.lock index f1ff448322e995..688dbfcf781b00 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3058,10 +3058,10 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-18.14.5.tgz#4a13a6445862159303fc38586598a9396fc408b3" integrity sha512-CRT4tMK/DHYhw1fcCEBwME9CSaZNclxfzVMe7GsO6ULSwsttbj70wSiX6rZdIjGblu93sTJxLdhNIT85KKI7Qw== -"@types/node@16.18.12": - version "16.18.12" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.12.tgz#e3bfea80e31523fde4292a6118f19ffa24fd6f65" - integrity sha512-vzLe5NaNMjIE3mcddFVGlAXN1LEWueUsMsOJWaT6wWMJGyljHAWHznqfnKUQWGzu7TLPrGvWdNAsvQYW+C0xtw== +"@types/node@16.18.13": + version "16.18.13" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.13.tgz#c572f8837094c6e3b73918a68674c784f6877fc0" + integrity sha512-l0/3XZ153UTlNOnZK8xSNoJlQda9/WnYgiTdcKKPJSZjdjI9MU+A9oMXOesAWLSnqAaaJhj3qfQsU07Dr8OUwg== "@types/node@^13.7.0": version "13.13.52" From f1e3803d96c3eb37e66f827b80f85824c3ec0233 Mon Sep 17 00:00:00 2001 From: Johannes Feichtner <343448+Churro@users.noreply.github.com> Date: Mon, 6 Mar 2023 06:37:48 +0100 Subject: [PATCH 062/228] refactor(manager/gradle): manage nesting depth separate from tokens (#20763) --- lib/modules/manager/gradle/parser.ts | 1 + .../manager/gradle/parser/assignments.ts | 77 +++++++------------ .../manager/gradle/parser/common.spec.ts | 33 +++++++- lib/modules/manager/gradle/parser/common.ts | 17 ++++ lib/modules/manager/gradle/types.ts | 1 + 5 files changed, 80 insertions(+), 49 deletions(-) diff --git a/lib/modules/manager/gradle/parser.ts b/lib/modules/manager/gradle/parser.ts index 02a788145d25c7..edc00409118741 100644 --- a/lib/modules/manager/gradle/parser.ts +++ b/lib/modules/manager/gradle/parser.ts @@ -56,6 +56,7 @@ export function parseGradle( registryUrls: [], varTokens: [], + tmpNestingDepth: [], tmpTokenStore: {}, tokenMap: {}, }); diff --git a/lib/modules/manager/gradle/parser/assignments.ts b/lib/modules/manager/gradle/parser/assignments.ts index e8af871ffa3674..9b5ccbd49ba461 100644 --- a/lib/modules/manager/gradle/parser/assignments.ts +++ b/lib/modules/manager/gradle/parser/assignments.ts @@ -4,9 +4,12 @@ import type { Ctx } from '../types'; import { cleanupTempVars, coalesceVariable, + increaseNestingDepth, + prependNestingDepth, qStringValue, qTemplateString, qVariableAssignmentIdentifier, + reduceNestingDepth, storeInTokenMap, storeVarToken, } from './common'; @@ -65,40 +68,27 @@ const qKotlinSingleExtraVarAssignment = q // foo: "1.2.3" const qGroovySingleMapOfVarAssignment = q .sym(storeVarToken) - .handler((ctx) => { - ctx.tmpTokenStore.backupVarTokens = ctx.varTokens; - return ctx; - }) + .handler(prependNestingDepth) .handler(coalesceVariable) .handler((ctx) => storeInTokenMap(ctx, 'keyToken')) .op(':') .join(qTemplateString) .handler((ctx) => storeInTokenMap(ctx, 'valToken')) - .handler(handleAssignment) - .handler((ctx) => { - ctx.varTokens = ctx.tmpTokenStore.backupVarTokens!; - ctx.varTokens.pop(); - return ctx; - }); + .handler(handleAssignment); const qGroovyMapOfExpr = ( search: q.QueryBuilder ): q.QueryBuilder => q.alt( - q - .sym(storeVarToken) - .op(':') - .tree({ - type: 'wrapped-tree', - maxDepth: 1, - startsWith: '[', - endsWith: ']', - search, - postHandler: (ctx: Ctx) => { - ctx.varTokens.pop(); - return ctx; - }, - }), + q.sym(storeVarToken).op(':').tree({ + type: 'wrapped-tree', + maxDepth: 1, + startsWith: '[', + endsWith: ']', + preHandler: increaseNestingDepth, + search, + postHandler: reduceNestingDepth, + }), qGroovySingleMapOfVarAssignment ); @@ -110,46 +100,35 @@ const qGroovyMultiVarAssignment = qVariableAssignmentIdentifier maxDepth: 1, startsWith: '[', endsWith: ']', + preHandler: increaseNestingDepth, search: qGroovyMapOfExpr(qGroovyMapOfExpr(qGroovySingleMapOfVarAssignment)), + postHandler: reduceNestingDepth, }) .handler(cleanupTempVars); // "foo1" to "bar1" const qKotlinSingleMapOfVarAssignment = qStringValue .sym('to') - .handler((ctx) => { - ctx.tmpTokenStore.backupVarTokens = ctx.varTokens; - return ctx; - }) + .handler(prependNestingDepth) .handler(coalesceVariable) .handler((ctx) => storeInTokenMap(ctx, 'keyToken')) .join(qTemplateString) .handler((ctx) => storeInTokenMap(ctx, 'valToken')) - .handler(handleAssignment) - .handler((ctx) => { - ctx.varTokens = ctx.tmpTokenStore.backupVarTokens!; - ctx.varTokens.pop(); - return ctx; - }); + .handler(handleAssignment); const qKotlinMapOfExpr = ( search: q.QueryBuilder ): q.QueryBuilder => q.alt( - qStringValue - .sym('to') - .sym('mapOf') - .tree({ - type: 'wrapped-tree', - maxDepth: 1, - startsWith: '(', - endsWith: ')', - search, - postHandler: (ctx: Ctx) => { - ctx.varTokens.pop(); - return ctx; - }, - }), + qStringValue.sym('to').sym('mapOf').tree({ + type: 'wrapped-tree', + maxDepth: 1, + startsWith: '(', + endsWith: ')', + preHandler: increaseNestingDepth, + search, + postHandler: reduceNestingDepth, + }), qKotlinSingleMapOfVarAssignment ); @@ -162,7 +141,9 @@ const qKotlinMultiMapOfVarAssignment = qVariableAssignmentIdentifier maxDepth: 1, startsWith: '(', endsWith: ')', + preHandler: increaseNestingDepth, search: qKotlinMapOfExpr(qKotlinMapOfExpr(qKotlinSingleMapOfVarAssignment)), + postHandler: reduceNestingDepth, }) .handler(cleanupTempVars); diff --git a/lib/modules/manager/gradle/parser/common.spec.ts b/lib/modules/manager/gradle/parser/common.spec.ts index 7b8779b0a17f79..c2742363c049a7 100644 --- a/lib/modules/manager/gradle/parser/common.spec.ts +++ b/lib/modules/manager/gradle/parser/common.spec.ts @@ -4,8 +4,11 @@ import type { Ctx, PackageVariables } from '../types'; import { cleanupTempVars, coalesceVariable, + increaseNestingDepth, interpolateString, loadFromTokenMap, + prependNestingDepth, + reduceNestingDepth, storeInTokenMap, storeVarToken, stripReservedPrefixFromKeyTokens, @@ -13,7 +16,7 @@ import { describe('modules/manager/gradle/parser/common', () => { let ctx: Ctx; - const token = partial({}); + const token = partial({ value: 'test' }); beforeEach(() => { ctx = { @@ -26,6 +29,7 @@ describe('modules/manager/gradle/parser/common', () => { registryUrls: [], varTokens: [], + tmpNestingDepth: [], tmpTokenStore: {}, tokenMap: {}, }; @@ -36,6 +40,33 @@ describe('modules/manager/gradle/parser/common', () => { expect(ctx.varTokens).toStrictEqual([token]); }); + it('increaseNestingDepth', () => { + ctx.tmpNestingDepth = ctx.varTokens = [token]; + increaseNestingDepth(ctx); + expect(ctx).toMatchObject({ + tmpNestingDepth: [token, token], + varTokens: [], + }); + }); + + it('reduceNestingDepth', () => { + ctx.tmpNestingDepth = [token, token]; + reduceNestingDepth(ctx); + expect(ctx.tmpNestingDepth).toHaveLength(1); + }); + + it('prependNestingDepth', () => { + ctx.tmpNestingDepth = ctx.varTokens = [token]; + prependNestingDepth(ctx); + expect(ctx.varTokens).toStrictEqual([token, token]); + + coalesceVariable(ctx); + expect(ctx).toMatchObject({ + tmpNestingDepth: [{ value: 'test' }], + varTokens: [{ value: 'test.test' }], + }); + }); + it('storeInTokenMap', () => { ctx.varTokens = [token]; storeInTokenMap(ctx, 'foo'); diff --git a/lib/modules/manager/gradle/parser/common.ts b/lib/modules/manager/gradle/parser/common.ts index 6f73dae18b4178..69fddc91470dd8 100644 --- a/lib/modules/manager/gradle/parser/common.ts +++ b/lib/modules/manager/gradle/parser/common.ts @@ -1,4 +1,5 @@ import { lexer, parser, query as q } from 'good-enough-parser'; +import { clone } from '../../../../util/clone'; import { regEx } from '../../../../util/regex'; import type { Ctx, NonEmptyArray, PackageVariables } from '../types'; @@ -39,6 +40,22 @@ export function storeVarToken(ctx: Ctx, node: lexer.Token): Ctx { return ctx; } +export function increaseNestingDepth(ctx: Ctx): Ctx { + ctx.tmpNestingDepth.push(...ctx.varTokens); + ctx.varTokens = []; + return ctx; +} + +export function reduceNestingDepth(ctx: Ctx): Ctx { + ctx.tmpNestingDepth.pop(); + return ctx; +} + +export function prependNestingDepth(ctx: Ctx): Ctx { + ctx.varTokens = [...clone(ctx.tmpNestingDepth), ...ctx.varTokens]; + return ctx; +} + export function storeInTokenMap(ctx: Ctx, tokenMapKey: string): Ctx { ctx.tokenMap[tokenMapKey] = ctx.varTokens; ctx.varTokens = []; diff --git a/lib/modules/manager/gradle/types.ts b/lib/modules/manager/gradle/types.ts index a4646dbef8ab86..7222c36345aa71 100644 --- a/lib/modules/manager/gradle/types.ts +++ b/lib/modules/manager/gradle/types.ts @@ -82,6 +82,7 @@ export interface Ctx { registryUrls: PackageRegistry[]; varTokens: lexer.Token[]; + tmpNestingDepth: lexer.Token[]; tmpTokenStore: Record; tokenMap: Record; } From e8ecac83731a8502c8da28155cdd0c1f330c4271 Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Mon, 6 Mar 2023 10:24:00 +0100 Subject: [PATCH 063/228] chore: do more invalid actions (#20769) --- .github/label-actions.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/label-actions.yml b/.github/label-actions.yml index ca278c2ed28f7e..7e152cfc35fda2 100644 --- a/.github/label-actions.yml +++ b/.github/label-actions.yml @@ -167,6 +167,11 @@ The Renovate team 'invalid': + unlabel: + - 'type:bug' + - 'type:feature' + - 'priority-5-triage' + - 'status:requirements' comment: > Hi there, @@ -180,3 +185,6 @@ The Renovate team + close: true + lock: true + lock-reason: 'resolved' From f31d62810c90965582ec741c441c0573a1731c87 Mon Sep 17 00:00:00 2001 From: Johannes Feichtner <343448+Churro@users.noreply.github.com> Date: Tue, 7 Mar 2023 05:59:12 +0100 Subject: [PATCH 064/228] feat(manager/gradle): add support for jmh plugin (#20784) --- lib/modules/manager/gradle/parser.spec.ts | 31 ++++++------ lib/modules/manager/gradle/parser/common.ts | 22 +++++---- .../manager/gradle/parser/dependencies.ts | 47 +++++++++++-------- lib/modules/manager/gradle/parser/handlers.ts | 2 +- 4 files changed, 58 insertions(+), 44 deletions(-) diff --git a/lib/modules/manager/gradle/parser.spec.ts b/lib/modules/manager/gradle/parser.spec.ts index 5b1a99bcf741af..be59d51b673507 100644 --- a/lib/modules/manager/gradle/parser.spec.ts +++ b/lib/modules/manager/gradle/parser.spec.ts @@ -890,27 +890,28 @@ describe('modules/manager/gradle/parser', () => { describe('implicit gradle plugins', () => { test.each` def | input | output - ${'baz = "1.2.3"'} | ${'checkstyle { toolVersion = "${baz}" }'} | ${{ depName: 'checkstyle', packageName: GRADLE_PLUGINS['checkstyle'], currentValue: '1.2.3' }} - ${''} | ${'codenarc { toolVersion = "1.2.3" }'} | ${{ depName: 'codenarc', packageName: GRADLE_PLUGINS['codenarc'], currentValue: '1.2.3' }} - ${''} | ${'detekt { toolVersion = "1.2.3" }'} | ${{ depName: 'detekt', packageName: GRADLE_PLUGINS['detekt'], currentValue: '1.2.3' }} - ${''} | ${'findbugs { toolVersion = "1.2.3" }'} | ${{ depName: 'findbugs', packageName: GRADLE_PLUGINS['findbugs'], currentValue: '1.2.3' }} - ${''} | ${'googleJavaFormat { toolVersion = "1.2.3" }'} | ${{ depName: 'googleJavaFormat', packageName: GRADLE_PLUGINS['googleJavaFormat'], currentValue: '1.2.3' }} - ${'baz = "1.2.3"'} | ${'jacoco { toolVersion = baz }'} | ${{ depName: 'jacoco', packageName: GRADLE_PLUGINS['jacoco'], currentValue: '1.2.3', groupName: 'baz' }} - ${'baz = "1.2.3"'} | ${'jacoco { toolVersion = property("baz") }'} | ${{ depName: 'jacoco', packageName: GRADLE_PLUGINS['jacoco'], currentValue: '1.2.3' }} - ${''} | ${'lombok { version = "1.2.3" }'} | ${{ depName: 'lombok', packageName: GRADLE_PLUGINS['lombok'], currentValue: '1.2.3' }} - ${''} | ${'lombok { version.set("1.2.3") }'} | ${{ depName: 'lombok', packageName: GRADLE_PLUGINS['lombok'], currentValue: '1.2.3' }} - ${''} | ${'lombok { version.value("1.2.3") }'} | ${{ depName: 'lombok', packageName: GRADLE_PLUGINS['lombok'], currentValue: '1.2.3' }} - ${''} | ${'pmd { toolVersion = "1.2.3" }'} | ${{ depName: 'pmd', packageName: GRADLE_PLUGINS['pmd'], currentValue: '1.2.3' }} - ${''} | ${'pmd { toolVersion.set("1.2.3") }'} | ${{ depName: 'pmd', packageName: GRADLE_PLUGINS['pmd'], currentValue: '1.2.3' }} - ${''} | ${'pmd { toolVersion.value("1.2.3") }'} | ${{ depName: 'pmd', packageName: GRADLE_PLUGINS['pmd'], currentValue: '1.2.3' }} - ${''} | ${'pmd { foo = "bar"; toolVersion = "1.2.3" }'} | ${{ depName: 'pmd', packageName: GRADLE_PLUGINS['pmd'], currentValue: '1.2.3' }} - ${''} | ${'spotbugs { toolVersion = "1.2.3" }'} | ${{ depName: 'spotbugs', packageName: GRADLE_PLUGINS['spotbugs'], currentValue: '1.2.3' }} + ${'baz = "1.2.3"'} | ${'checkstyle { toolVersion = "${baz}" }'} | ${{ depName: 'checkstyle', packageName: GRADLE_PLUGINS['checkstyle'][1], currentValue: '1.2.3' }} + ${''} | ${'codenarc { toolVersion = "1.2.3" }'} | ${{ depName: 'codenarc', packageName: GRADLE_PLUGINS['codenarc'][1], currentValue: '1.2.3' }} + ${''} | ${'detekt { toolVersion = "1.2.3" }'} | ${{ depName: 'detekt', packageName: GRADLE_PLUGINS['detekt'][1], currentValue: '1.2.3' }} + ${''} | ${'findbugs { toolVersion = "1.2.3" }'} | ${{ depName: 'findbugs', packageName: GRADLE_PLUGINS['findbugs'][1], currentValue: '1.2.3' }} + ${''} | ${'googleJavaFormat { toolVersion = "1.2.3" }'} | ${{ depName: 'googleJavaFormat', packageName: GRADLE_PLUGINS['googleJavaFormat'][1], currentValue: '1.2.3' }} + ${'baz = "1.2.3"'} | ${'jacoco { toolVersion = baz }'} | ${{ depName: 'jacoco', packageName: GRADLE_PLUGINS['jacoco'][1], currentValue: '1.2.3', groupName: 'baz' }} + ${'baz = "1.2.3"'} | ${'jacoco { toolVersion = property("baz") }'} | ${{ depName: 'jacoco', packageName: GRADLE_PLUGINS['jacoco'][1], currentValue: '1.2.3' }} + ${''} | ${'lombok { version = "1.2.3" }'} | ${{ depName: 'lombok', packageName: GRADLE_PLUGINS['lombok'][1], currentValue: '1.2.3' }} + ${''} | ${'lombok { version.set("1.2.3") }'} | ${{ depName: 'lombok', packageName: GRADLE_PLUGINS['lombok'][1], currentValue: '1.2.3' }} + ${''} | ${'lombok { version.value("1.2.3") }'} | ${{ depName: 'lombok', packageName: GRADLE_PLUGINS['lombok'][1], currentValue: '1.2.3' }} + ${''} | ${'pmd { toolVersion = "1.2.3" }'} | ${{ depName: 'pmd', packageName: GRADLE_PLUGINS['pmd'][1], currentValue: '1.2.3' }} + ${''} | ${'pmd { toolVersion.set("1.2.3") }'} | ${{ depName: 'pmd', packageName: GRADLE_PLUGINS['pmd'][1], currentValue: '1.2.3' }} + ${''} | ${'pmd { toolVersion.value("1.2.3") }'} | ${{ depName: 'pmd', packageName: GRADLE_PLUGINS['pmd'][1], currentValue: '1.2.3' }} + ${''} | ${'pmd { foo = "bar"; toolVersion = "1.2.3" }'} | ${{ depName: 'pmd', packageName: GRADLE_PLUGINS['pmd'][1], currentValue: '1.2.3' }} + ${''} | ${'spotbugs { toolVersion = "1.2.3" }'} | ${{ depName: 'spotbugs', packageName: GRADLE_PLUGINS['spotbugs'][1], currentValue: '1.2.3' }} ${''} | ${'pmd { toolVersion = "@@@" }'} | ${null} ${''} | ${'pmd { toolVersion = "${baz}" }'} | ${null} ${'baz = "1.2.3"'} | ${'pmd { toolVersion = "${baz}.456" }'} | ${{ depName: 'pmd', currentValue: '1.2.3.456', skipReason: 'unknown-version' }} ${'baz = "1.2.3"'} | ${'pmd { toolVersion = baz + ".456" }'} | ${{ depName: 'pmd', currentValue: '1.2.3.456', skipReason: 'unknown-version' }} ${''} | ${'pmd { [toolVersion = "6.36.0"] }'} | ${null} ${''} | ${'unknown { toolVersion = "1.2.3" }'} | ${null} + ${''} | ${'jmh { jmhVersion = "1.2.3" }'} | ${{ depName: 'jmh', packageName: GRADLE_PLUGINS['jmh'][1], currentValue: '1.2.3' }} `('$def | $input', ({ def, input, output }) => { const { deps } = parseGradle([def, input].join('\n')); expect(deps).toMatchObject([output].filter(is.truthy)); diff --git a/lib/modules/manager/gradle/parser/common.ts b/lib/modules/manager/gradle/parser/common.ts index 69fddc91470dd8..b6f653bf1786f8 100644 --- a/lib/modules/manager/gradle/parser/common.ts +++ b/lib/modules/manager/gradle/parser/common.ts @@ -11,15 +11,19 @@ export const REGISTRY_URLS = { }; export const GRADLE_PLUGINS = { - checkstyle: 'com.puppycrawl.tools:checkstyle', - codenarc: 'org.codenarc:CodeNarc', - detekt: 'io.gitlab.arturbosch.detekt:detekt-core', - findbugs: 'com.google.code.findbugs:findbugs', - googleJavaFormat: 'com.google.googlejavaformat:google-java-format', - jacoco: 'org.jacoco:jacoco', - lombok: 'org.projectlombok:lombok', - pmd: 'net.sourceforge.pmd:pmd-java', - spotbugs: 'com.github.spotbugs:spotbugs', + checkstyle: ['toolVersion', 'com.puppycrawl.tools:checkstyle'], + codenarc: ['toolVersion', 'org.codenarc:CodeNarc'], + detekt: ['toolVersion', 'io.gitlab.arturbosch.detekt:detekt-core'], + findbugs: ['toolVersion', 'com.google.code.findbugs:findbugs'], + googleJavaFormat: [ + 'toolVersion', + 'com.google.googlejavaformat:google-java-format', + ], + jacoco: ['toolVersion', 'org.jacoco:jacoco'], + jmh: ['jmhVersion', 'org.openjdk.jmh:jmh-core'], + lombok: ['version', 'org.projectlombok:lombok'], + pmd: ['toolVersion', 'net.sourceforge.pmd:pmd-java'], + spotbugs: ['toolVersion', 'com.github.spotbugs:spotbugs'], }; export const ANNOYING_METHODS: ReadonlySet = new Set([ diff --git a/lib/modules/manager/gradle/parser/dependencies.ts b/lib/modules/manager/gradle/parser/dependencies.ts index 098a2367e0e79d..633633790273f9 100644 --- a/lib/modules/manager/gradle/parser/dependencies.ts +++ b/lib/modules/manager/gradle/parser/dependencies.ts @@ -162,29 +162,38 @@ export const qLongFormDep = q // pmd { toolVersion = "1.2.3" } const qImplicitGradlePlugin = q - .sym(regEx(`^(?:${Object.keys(GRADLE_PLUGINS).join('|')})$`), storeVarToken) - .handler((ctx) => storeInTokenMap(ctx, 'pluginName')) - .tree({ - type: 'wrapped-tree', - maxDepth: 1, - maxMatches: 1, - startsWith: '{', - endsWith: '}', - search: q.sym(regEx(/^(?:toolVersion|version)$/)).alt( - // toolVersion = "1.2.3" - q.op('=').join(qVersion), - // toolVersion.set("1.2.3"), toolVersion.value("1.2.3") + .alt( + ...Object.keys(GRADLE_PLUGINS).map((pluginName) => q - .op('.') - .sym(regEx(/^(?:set|value)$/)) + .sym(pluginName, storeVarToken) + .handler((ctx) => storeInTokenMap(ctx, 'pluginName')) .tree({ + type: 'wrapped-tree', maxDepth: 1, - startsWith: '(', - endsWith: ')', - search: q.begin().join(qVersion).end(), + maxMatches: 1, + startsWith: '{', + endsWith: '}', + search: q + .sym( + GRADLE_PLUGINS[pluginName as keyof typeof GRADLE_PLUGINS][0] + ) + .alt( + // toolVersion = "1.2.3" + q.op('=').join(qVersion), + // toolVersion.set("1.2.3"), toolVersion.value("1.2.3") + q + .op('.') + .sym(regEx(/^(?:set|value)$/)) + .tree({ + maxDepth: 1, + startsWith: '(', + endsWith: ')', + search: q.begin().join(qVersion).end(), + }) + ), }) - ), - }) + ) + ) .handler(handleImplicitGradlePlugin) .handler(cleanupTempVars); diff --git a/lib/modules/manager/gradle/parser/handlers.ts b/lib/modules/manager/gradle/parser/handlers.ts index 1b633d2d788359..44f3f970064a53 100644 --- a/lib/modules/manager/gradle/parser/handlers.ts +++ b/lib/modules/manager/gradle/parser/handlers.ts @@ -397,7 +397,7 @@ export function handleImplicitGradlePlugin(ctx: Ctx): Ctx { } const groupIdArtifactId = - GRADLE_PLUGINS[pluginName as keyof typeof GRADLE_PLUGINS]; + GRADLE_PLUGINS[pluginName as keyof typeof GRADLE_PLUGINS][1]; const dep = parseDependencyString(`${groupIdArtifactId}:${versionValue}`); if (!dep) { return ctx; From 6faefcdfa814935a65f1c0c24d24a5ace587e455 Mon Sep 17 00:00:00 2001 From: Seiya Kokushi Date: Tue, 7 Mar 2023 14:17:53 +0900 Subject: [PATCH 065/228] feat(manager/asdf): support dart and flutter (#20786) --- lib/modules/manager/asdf/extract.spec.ts | 12 ++++++++++++ lib/modules/manager/asdf/index.ts | 4 ++++ lib/modules/manager/asdf/upgradeable-tooling.ts | 14 ++++++++++++++ 3 files changed, 30 insertions(+) diff --git a/lib/modules/manager/asdf/extract.spec.ts b/lib/modules/manager/asdf/extract.spec.ts index 67126828fd6a66..28a1d057aecb36 100644 --- a/lib/modules/manager/asdf/extract.spec.ts +++ b/lib/modules/manager/asdf/extract.spec.ts @@ -49,12 +49,14 @@ bun 0.2.2 cargo-make 0.36.2 clojure 1.11.1.1182 crystal 1.6.1 +dart 2.19.3 deno 1.26.2 direnv 2.32.1 dprint 0.32.2 elixir 1.14.1 elm 0.19.1 erlang 25.1.2 +flutter 3.7.6 gauche 0.9.12 gohugo extended_0.104.3 golang 1.19.2 @@ -130,6 +132,11 @@ dummy 1.2.3 packageName: 'crystal-lang/crystal', depName: 'crystal', }, + { + currentValue: '2.19.3', + datasource: 'dart-version', + depName: 'dart', + }, { currentValue: '1.26.2', datasource: 'github-releases', @@ -170,6 +177,11 @@ dummy 1.2.3 'regex:^(?\\d+?)\\.(?\\d+?)(\\.(?\\d+))?$', depName: 'erlang', }, + { + currentValue: '3.7.6', + datasource: 'flutter-version', + depName: 'flutter', + }, { currentValue: '0.9.12', datasource: 'docker', diff --git a/lib/modules/manager/asdf/index.ts b/lib/modules/manager/asdf/index.ts index f488800413c158..134ac7e3663a5d 100644 --- a/lib/modules/manager/asdf/index.ts +++ b/lib/modules/manager/asdf/index.ts @@ -1,4 +1,6 @@ +import { DartVersionDatasource } from '../../datasource/dart-version'; import { DockerDatasource } from '../../datasource/docker'; +import { FlutterVersionDatasource } from '../../datasource/flutter-version'; import { GithubReleasesDatasource } from '../../datasource/github-releases'; import { GithubTagsDatasource } from '../../datasource/github-tags'; import { HexpmBobDatasource } from '../../datasource/hexpm-bob'; @@ -24,4 +26,6 @@ export const supportedDatasources = [ NodeDatasource.id, NpmDatasource.id, RubyVersionDatasource.id, + DartVersionDatasource.id, + FlutterVersionDatasource.id, ]; diff --git a/lib/modules/manager/asdf/upgradeable-tooling.ts b/lib/modules/manager/asdf/upgradeable-tooling.ts index 878f7d28a918e6..65960b4f58a07a 100644 --- a/lib/modules/manager/asdf/upgradeable-tooling.ts +++ b/lib/modules/manager/asdf/upgradeable-tooling.ts @@ -1,4 +1,6 @@ +import { DartVersionDatasource } from '../../datasource/dart-version'; import { DockerDatasource } from '../../datasource/docker'; +import { FlutterVersionDatasource } from '../../datasource/flutter-version'; import { GithubReleasesDatasource } from '../../datasource/github-releases'; import { GithubTagsDatasource } from '../../datasource/github-tags'; import { HexpmBobDatasource } from '../../datasource/hexpm-bob'; @@ -80,6 +82,12 @@ export const upgradeableTooling: Record = { packageName: 'crystal-lang/crystal', }, }, + dart: { + asdfPluginUrl: 'https://github.com/PatOConnor43/asdf-dart', + config: { + datasource: DartVersionDatasource.id, + }, + }, deno: { asdfPluginUrl: 'https://github.com/asdf-community/asdf-deno', config: { @@ -125,6 +133,12 @@ export const upgradeableTooling: Record = { versioning: `${regexVersioning.id}:^(?\\d+?)\\.(?\\d+?)(\\.(?\\d+))?$`, }, }, + flutter: { + asdfPluginUrl: 'https://github.com/oae/asdf-flutter', + config: { + datasource: FlutterVersionDatasource.id, + }, + }, gauche: { asdfPluginUrl: 'https://github.com/sakuro/asdf-gauche', config: { From f261379da6b83870546418daeb874bd6e933458d Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Tue, 7 Mar 2023 07:28:37 +0100 Subject: [PATCH 066/228] chore: reword bug guidance --- .github/ISSUE_TEMPLATE/bug_report.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 68e657e9f2aff8..7e8bf6bea06b61 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -5,9 +5,9 @@ body: - type: markdown attributes: value: | - Please don't create these bug reports unless you're an experienced user or absolutely certain you found a bug, and you have a [minimal reproduction](https://github.com/renovatebot/renovate/blob/main/docs/development/minimal-reproductions.md). - Otherwise, it is preferred that you create a [discussion](https://github.com/renovatebot/renovate/discussions/new) first and allow maintainers to decide. - Invalid bug reports can confuse users so will be _deleted_, not closed. + Don't create a Bug Report like this without a Discussion and [minimal reproduction](https://github.com/renovatebot/renovate/blob/main/docs/development/minimal-reproductions.md) first. + Invalid bug reports waste the time of maintainers and can confuse other users so they will closed, locked and deleted. + You are always welcome to create Discussions and new users should always do that instead. - type: dropdown id: how-are-you-running-renovate From b9bdfbb53ddc330298539ac80750e7799bed6431 Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Tue, 7 Mar 2023 07:49:34 +0100 Subject: [PATCH 067/228] chore: reword invalid comment --- .github/label-actions.yml | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/.github/label-actions.yml b/.github/label-actions.yml index 7e152cfc35fda2..0ed4abec8fcffa 100644 --- a/.github/label-actions.yml +++ b/.github/label-actions.yml @@ -173,18 +173,11 @@ - 'priority-5-triage' - 'status:requirements' comment: > - Hi there, - - - This issue has been marked as invalid and will be closed and potentially deleted too. - Deletion is done so that invalid issues (such as mistaken bug reports) don't show up in repository searches and confuse future users. - - In future, please create _Discussions_ instead of Issues (including for the topic of this Issue if you still wish to discuss it). + This issue has been labeled as `invalid` by a maintainer so is being automatically closed and locked. It will later be deleted to avoid polluting repository searches with duplicate or incorrect content. + + This doesn't necessarily mean that what you've reported isn't a problem or a reasonable idea, but it does mean that it should be raised as a Discussion first and not an Issue. Please create a Discussion now, assuming you still wish to discuss it. - Good luck, - - - The Renovate team + Thanks, The Renovate team close: true lock: true lock-reason: 'resolved' From 8ec07ac58a7480f84a4f44b7f63a0e6099980863 Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Tue, 7 Mar 2023 08:07:00 +0100 Subject: [PATCH 068/228] chore: fix prettier lint --- .github/label-actions.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/label-actions.yml b/.github/label-actions.yml index 0ed4abec8fcffa..52b6370279673d 100644 --- a/.github/label-actions.yml +++ b/.github/label-actions.yml @@ -174,7 +174,7 @@ - 'status:requirements' comment: > This issue has been labeled as `invalid` by a maintainer so is being automatically closed and locked. It will later be deleted to avoid polluting repository searches with duplicate or incorrect content. - + This doesn't necessarily mean that what you've reported isn't a problem or a reasonable idea, but it does mean that it should be raised as a Discussion first and not an Issue. Please create a Discussion now, assuming you still wish to discuss it. Thanks, The Renovate team From 4126234427dbf18b9f3c97e974b1ce9f28e30df2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 7 Mar 2023 06:59:26 +0000 Subject: [PATCH 069/228] chore(deps): update dependency jest-mock-extended to v3.0.3 (#20788) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 53d9c928f7d647..c1938cecfd8eea 100644 --- a/package.json +++ b/package.json @@ -313,7 +313,7 @@ "jest": "29.4.3", "jest-extended": "3.2.4", "jest-junit": "15.0.0", - "jest-mock-extended": "3.0.2", + "jest-mock-extended": "3.0.3", "lint-staged": "13.1.2", "markdownlint-cli2": "0.6.0", "memfs": "3.4.13", diff --git a/yarn.lock b/yarn.lock index 688dbfcf781b00..16d4b647d02fb3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6579,10 +6579,10 @@ jest-message-util@^29.4.3: slash "^3.0.0" stack-utils "^2.0.3" -jest-mock-extended@3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/jest-mock-extended/-/jest-mock-extended-3.0.2.tgz#49c1ae666f6aec38a49b6630e82cf48c44ebf72e" - integrity sha512-R0fIVQ0ZQtquXeiAlKMYU8/KwwrBiM7cDlwFXNWCvcZIjpT91p7jjyYLXlj7IUzFIqlTkiDYLa9N0DzAp/N42w== +jest-mock-extended@3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/jest-mock-extended/-/jest-mock-extended-3.0.3.tgz#570e33b099f8da87487acb4cd7d820712dcc3b52" + integrity sha512-yqpzvwFr2JWFArj4sPco4hPSanYH3erFgdkv7ahP8EMiAbVH+Rgjc8/cpAHJVG7+sZnQgl0AuTkxofD7eLJN+g== dependencies: ts-essentials "^7.0.3" From 0abab4371fbe7a980dd31c87c45a992c64823db0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 7 Mar 2023 08:07:51 +0100 Subject: [PATCH 070/228] build(deps): update dependency semantic-release to v20.1.1 (#20787) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 30 +++++++++++++++++++++++++----- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index c1938cecfd8eea..75251fb6630ec2 100644 --- a/package.json +++ b/package.json @@ -322,7 +322,7 @@ "nock": "13.3.0", "npm-run-all": "4.1.5", "rimraf": "4.1.2", - "semantic-release": "20.1.0", + "semantic-release": "20.1.1", "shelljs": "0.8.5", "strip-ansi": "6.0.1", "tmp-promise": "3.0.3", diff --git a/yarn.lock b/yarn.lock index 16d4b647d02fb3..1ea9d1dbca9d59 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5164,6 +5164,21 @@ execa@^6.1.0: signal-exit "^3.0.7" strip-final-newline "^3.0.0" +execa@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-7.0.0.tgz#2a44e20e73797f6c2df23889927972386157d7e4" + integrity sha512-tQbH0pH/8LHTnwTrsKWideqi6rFB/QNUawEwrn+WHyz7PX1Tuz2u7wfTvbaNBdP5JD5LVWxNo8/A8CHNZ3bV6g== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.1" + human-signals "^4.3.0" + is-stream "^3.0.0" + merge-stream "^2.0.0" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^3.0.7" + strip-final-newline "^3.0.0" + exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" @@ -5872,6 +5887,11 @@ human-signals@^3.0.1: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-3.0.1.tgz#c740920859dafa50e5a3222da9d3bf4bb0e5eef5" integrity sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ== +human-signals@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.0.tgz#2095c3cd5afae40049403d4b811235b03879db50" + integrity sha512-zyzVyMjpGBX2+6cDVZeFPCdtOtdsxOeseRhB9tkQ6xXmGUNrcnBzdEKPy3VPNYz+4gy1oukVOXcrJCunSyc6QQ== + humanize-ms@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" @@ -9103,10 +9123,10 @@ sax@^1.2.4: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== -semantic-release@20.1.0: - version "20.1.0" - resolved "https://registry.yarnpkg.com/semantic-release/-/semantic-release-20.1.0.tgz#07d493fe5431ad326018069e86cc50ba6927b65c" - integrity sha512-+9+n6RIr0Fz0F53cXrjpawxWlUg3O7/qr1jF9lrE+/v6WqwBrSWnavVHTPaf2WLerET2EngoqI0M4pahkKl6XQ== +semantic-release@20.1.1: + version "20.1.1" + resolved "https://registry.yarnpkg.com/semantic-release/-/semantic-release-20.1.1.tgz#8693ea760a778de31f846d55d44709a9f129ca5e" + integrity sha512-jXDr8y7ozo42N4+G9m/P5Qyx5oQO4aOS66a+Up8XECzEOFIpEoo3ngnr4R5lSix/sVJW69/fgNkOUZhsGFiQ5g== dependencies: "@semantic-release/commit-analyzer" "^9.0.2" "@semantic-release/error" "^3.0.0" @@ -9117,7 +9137,7 @@ semantic-release@20.1.0: cosmiconfig "^8.0.0" debug "^4.0.0" env-ci "^8.0.0" - execa "^6.1.0" + execa "^7.0.0" figures "^5.0.0" find-versions "^5.1.0" get-stream "^6.0.0" From 99c697a78d087024c7fb542c17948323e0a6341a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 7 Mar 2023 08:02:52 +0000 Subject: [PATCH 071/228] chore(deps): update linters to v5.54.0 (#20790) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +-- yarn.lock | 90 ++++++++++++---------------------------------------- 2 files changed, 23 insertions(+), 71 deletions(-) diff --git a/package.json b/package.json index 75251fb6630ec2..2a1b5449ee1948 100644 --- a/package.json +++ b/package.json @@ -288,8 +288,8 @@ "@types/url-join": "4.0.1", "@types/validate-npm-package-name": "4.0.0", "@types/xmldoc": "1.1.6", - "@typescript-eslint/eslint-plugin": "5.53.0", - "@typescript-eslint/parser": "5.53.0", + "@typescript-eslint/eslint-plugin": "5.54.0", + "@typescript-eslint/parser": "5.54.0", "aws-sdk-client-mock": "2.0.1", "callsite": "1.0.0", "common-tags": "1.8.2", diff --git a/yarn.lock b/yarn.lock index 1ea9d1dbca9d59..2845731267c02f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3189,14 +3189,14 @@ dependencies: "@types/node" "*" -"@typescript-eslint/eslint-plugin@5.53.0": - version "5.53.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.53.0.tgz#24b8b4a952f3c615fe070e3c461dd852b5056734" - integrity sha512-alFpFWNucPLdUOySmXCJpzr6HKC3bu7XooShWM+3w/EL6J2HIoB2PFxpLnq4JauWVk6DiVeNKzQlFEaE+X9sGw== - dependencies: - "@typescript-eslint/scope-manager" "5.53.0" - "@typescript-eslint/type-utils" "5.53.0" - "@typescript-eslint/utils" "5.53.0" +"@typescript-eslint/eslint-plugin@5.54.0": + version "5.54.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.54.0.tgz#2c821ad81b2c786d142279a8292090f77d1881f4" + integrity sha512-+hSN9BdSr629RF02d7mMtXhAJvDTyCbprNYJKrXETlul/Aml6YZwd90XioVbjejQeHbb3R8Dg0CkRgoJDxo8aw== + dependencies: + "@typescript-eslint/scope-manager" "5.54.0" + "@typescript-eslint/type-utils" "5.54.0" + "@typescript-eslint/utils" "5.54.0" debug "^4.3.4" grapheme-splitter "^1.0.4" ignore "^5.2.0" @@ -3212,24 +3212,16 @@ dependencies: "@typescript-eslint/utils" "5.54.0" -"@typescript-eslint/parser@5.53.0": - version "5.53.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.53.0.tgz#a1f2b9ae73b83181098747e96683f1b249ecab52" - integrity sha512-MKBw9i0DLYlmdOb3Oq/526+al20AJZpANdT6Ct9ffxcV8nKCHz63t/S0IhlTFNsBIHJv+GY5SFJ0XfqVeydQrQ== +"@typescript-eslint/parser@5.54.0": + version "5.54.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.54.0.tgz#def186eb1b1dbd0439df0dacc44fb6d8d5c417fe" + integrity sha512-aAVL3Mu2qTi+h/r04WI/5PfNWvO6pdhpeMRWk9R7rEV4mwJNzoWf5CCU5vDKBsPIFQFjEq1xg7XBI2rjiMXQbQ== dependencies: - "@typescript-eslint/scope-manager" "5.53.0" - "@typescript-eslint/types" "5.53.0" - "@typescript-eslint/typescript-estree" "5.53.0" + "@typescript-eslint/scope-manager" "5.54.0" + "@typescript-eslint/types" "5.54.0" + "@typescript-eslint/typescript-estree" "5.54.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.53.0": - version "5.53.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.53.0.tgz#42b54f280e33c82939275a42649701024f3fafef" - integrity sha512-Opy3dqNsp/9kBBeCPhkCNR7fmdSQqA+47r21hr9a14Bx0xnkElEQmhoHga+VoaoQ6uDHjDKmQPIYcUcKJifS7w== - dependencies: - "@typescript-eslint/types" "5.53.0" - "@typescript-eslint/visitor-keys" "5.53.0" - "@typescript-eslint/scope-manager@5.54.0": version "5.54.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.54.0.tgz#74b28ac9a3fc8166f04e806c957adb8c1fd00536" @@ -3238,39 +3230,21 @@ "@typescript-eslint/types" "5.54.0" "@typescript-eslint/visitor-keys" "5.54.0" -"@typescript-eslint/type-utils@5.53.0": - version "5.53.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.53.0.tgz#41665449935ba9b4e6a1ba6e2a3f4b2c31d6cf97" - integrity sha512-HO2hh0fmtqNLzTAme/KnND5uFNwbsdYhCZghK2SoxGp3Ifn2emv+hi0PBUjzzSh0dstUIFqOj3bp0AwQlK4OWw== +"@typescript-eslint/type-utils@5.54.0": + version "5.54.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.54.0.tgz#390717216eb61393a0cad2995da154b613ba7b26" + integrity sha512-WI+WMJ8+oS+LyflqsD4nlXMsVdzTMYTxl16myXPaCXnSgc7LWwMsjxQFZCK/rVmTZ3FN71Ct78ehO9bRC7erYQ== dependencies: - "@typescript-eslint/typescript-estree" "5.53.0" - "@typescript-eslint/utils" "5.53.0" + "@typescript-eslint/typescript-estree" "5.54.0" + "@typescript-eslint/utils" "5.54.0" debug "^4.3.4" tsutils "^3.21.0" -"@typescript-eslint/types@5.53.0": - version "5.53.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.53.0.tgz#f79eca62b97e518ee124086a21a24f3be267026f" - integrity sha512-5kcDL9ZUIP756K6+QOAfPkigJmCPHcLN7Zjdz76lQWWDdzfOhZDTj1irs6gPBKiXx5/6O3L0+AvupAut3z7D2A== - "@typescript-eslint/types@5.54.0": version "5.54.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.54.0.tgz#7d519df01f50739254d89378e0dcac504cab2740" integrity sha512-nExy+fDCBEgqblasfeE3aQ3NuafBUxZxgxXcYfzYRZFHdVvk5q60KhCSkG0noHgHRo/xQ/BOzURLZAafFpTkmQ== -"@typescript-eslint/typescript-estree@5.53.0": - version "5.53.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.53.0.tgz#bc651dc28cf18ab248ecd18a4c886c744aebd690" - integrity sha512-eKmipH7QyScpHSkhbptBBYh9v8FxtngLquq292YTEQ1pxVs39yFBlLC1xeIZcPPz1RWGqb7YgERJRGkjw8ZV7w== - dependencies: - "@typescript-eslint/types" "5.53.0" - "@typescript-eslint/visitor-keys" "5.53.0" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.3.7" - tsutils "^3.21.0" - "@typescript-eslint/typescript-estree@5.54.0": version "5.54.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.54.0.tgz#f6f3440cabee8a43a0b25fa498213ebb61fdfe99" @@ -3284,20 +3258,6 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/utils@5.53.0": - version "5.53.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.53.0.tgz#e55eaad9d6fffa120575ffaa530c7e802f13bce8" - integrity sha512-VUOOtPv27UNWLxFwQK/8+7kvxVC+hPHNsJjzlJyotlaHjLSIgOCKj9I0DBUjwOOA64qjBwx5afAPjksqOxMO0g== - dependencies: - "@types/json-schema" "^7.0.9" - "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.53.0" - "@typescript-eslint/types" "5.53.0" - "@typescript-eslint/typescript-estree" "5.53.0" - eslint-scope "^5.1.1" - eslint-utils "^3.0.0" - semver "^7.3.7" - "@typescript-eslint/utils@5.54.0", "@typescript-eslint/utils@^5.10.0": version "5.54.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.54.0.tgz#3db758aae078be7b54b8ea8ea4537ff6cd3fbc21" @@ -3312,14 +3272,6 @@ eslint-utils "^3.0.0" semver "^7.3.7" -"@typescript-eslint/visitor-keys@5.53.0": - version "5.53.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.53.0.tgz#8a5126623937cdd909c30d8fa72f79fa56cc1a9f" - integrity sha512-JqNLnX3leaHFZEN0gCh81sIvgrp/2GOACZNgO4+Tkf64u51kTpAyWFOY8XHx8XuXr3N2C9zgPPHtcpMg6z1g0w== - dependencies: - "@typescript-eslint/types" "5.53.0" - eslint-visitor-keys "^3.3.0" - "@typescript-eslint/visitor-keys@5.54.0": version "5.54.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.54.0.tgz#846878afbf0cd67c19cfa8d75947383d4490db8f" From bccf0997fb55b1ec4fe5a9e874e611a397aed35b Mon Sep 17 00:00:00 2001 From: RahulGautamSingh Date: Tue, 7 Mar 2023 15:39:04 +0530 Subject: [PATCH 072/228] refactor: delete cached configFilename (#20746) --- lib/workers/repository/init/merge.spec.ts | 19 +++++++++++++++++++ lib/workers/repository/init/merge.ts | 13 ++++++++++++- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/lib/workers/repository/init/merge.spec.ts b/lib/workers/repository/init/merge.spec.ts index 0c29c095427f39..5a03b80b845ced 100644 --- a/lib/workers/repository/init/merge.spec.ts +++ b/lib/workers/repository/init/merge.spec.ts @@ -3,12 +3,16 @@ import { fs, getConfig, git, + logger, mocked, + partial, platform, } from '../../../../test/util'; import * as _migrateAndValidate from '../../../config/migrate-validate'; import * as _migrate from '../../../config/migration'; +import * as repoCache from '../../../util/cache/repository'; import { initRepoCache } from '../../../util/cache/repository/init'; +import type { RepoCacheData } from '../../../util/cache/repository/types'; import { checkForRepoConfigError, detectRepoFileConfig, @@ -45,6 +49,21 @@ describe('workers/repository/init/merge', () => { expect(await detectRepoFileConfig()).toEqual({}); }); + it('returns config if not found - uses cache', async () => { + jest + .spyOn(repoCache, 'getCache') + .mockReturnValueOnce( + partial({ configFileName: 'renovate.json' }) + ); + platform.getRawFile.mockRejectedValueOnce(new Error()); + git.getFileList.mockResolvedValue(['package.json']); + fs.readLocalFile.mockResolvedValue('{}'); + expect(await detectRepoFileConfig()).toEqual({}); + expect(logger.logger.debug).toHaveBeenCalledWith( + 'Existing config file no longer exists' + ); + }); + it('uses package.json config if found', async () => { git.getFileList.mockResolvedValue(['package.json']); const pJson = JSON.stringify({ diff --git a/lib/workers/repository/init/merge.ts b/lib/workers/repository/init/merge.ts index cf4dd8106b9b55..04c3cba0e61cba 100644 --- a/lib/workers/repository/init/merge.ts +++ b/lib/workers/repository/init/merge.ts @@ -17,6 +17,7 @@ import { import { logger } from '../../../logger'; import * as npmApi from '../../../modules/datasource/npm'; import { platform } from '../../../modules/platform'; +import { ExternalHostError } from '../../../types/errors/external-host-error'; import { getCache } from '../../../util/cache/repository'; import { readLocalFile } from '../../../util/fs'; import { getFileList } from '../../../util/git'; @@ -51,7 +52,16 @@ export async function detectRepoFileConfig(): Promise { const cache = getCache(); let { configFileName } = cache; if (configFileName) { - const configFileRaw = await platform.getRawFile(configFileName); + let configFileRaw: string | null; + try { + configFileRaw = await platform.getRawFile(configFileName); + } catch (err) { + // istanbul ignore if + if (err instanceof ExternalHostError) { + throw err; + } + configFileRaw = null; + } if (configFileRaw) { let configFileParsed = JSON5.parse(configFileRaw); if (configFileName !== 'package.json') { @@ -61,6 +71,7 @@ export async function detectRepoFileConfig(): Promise { return { configFileName, configFileParsed }; // don't return raw 'package.json' } else { logger.debug('Existing config file no longer exists'); + delete cache.configFileName; } } configFileName = (await detectConfigFile()) ?? undefined; From a4555655a544a727be357abfa457333bb6a53f62 Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Tue, 7 Mar 2023 12:14:58 +0100 Subject: [PATCH 073/228] chore: needs-code-formatting label action --- .github/label-actions.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/label-actions.yml b/.github/label-actions.yml index 52b6370279673d..eb6440e5eb1538 100644 --- a/.github/label-actions.yml +++ b/.github/label-actions.yml @@ -181,3 +181,11 @@ close: true lock: true lock-reason: 'resolved' + +'needs-code-formatting': + comment: > + Hi, you need to format code or logs here so that they're more readable for others. + + You can find a Markdown code formatting guide [here](https://www.markdownguide.org/basic-syntax/#code) as well as some GitHub-specific information formatting code blocks [here](https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/creating-and-highlighting-code-blocks). + + Thanks, The Renovate team From fa90477f6c54f0b8f3794afb54b16ce3f6e259a7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 7 Mar 2023 13:10:00 +0000 Subject: [PATCH 074/228] build(deps): update dependency @renovatebot/ruby-semver to v2.1.9 (#20793) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 2a1b5449ee1948..b44dad0ba68b65 100644 --- a/package.json +++ b/package.json @@ -157,7 +157,7 @@ "@qnighy/marshal": "0.1.3", "@renovatebot/osv-offline": "1.2.1", "@renovatebot/pep440": "2.1.13", - "@renovatebot/ruby-semver": "2.1.8", + "@renovatebot/ruby-semver": "2.1.9", "@sindresorhus/is": "4.6.0", "@types/ms": "0.7.31", "@types/tmp": "0.2.3", diff --git a/yarn.lock b/yarn.lock index 2845731267c02f..9c6446192a9224 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2507,10 +2507,10 @@ resolved "https://registry.yarnpkg.com/@renovatebot/pep440/-/pep440-2.1.13.tgz#d630989b6abf9dd001edc526cf3e821450e6e45d" integrity sha512-PFnG9X7on77Gp9FPdossWfvDL6QTg1MafZP3hdKafo3n6SP89wiyZmjFVaQwlRlE5cEmZQwh11dE8Oos9H2paw== -"@renovatebot/ruby-semver@2.1.8": - version "2.1.8" - resolved "https://registry.yarnpkg.com/@renovatebot/ruby-semver/-/ruby-semver-2.1.8.tgz#8dd7cf4452c9660a7b8ac07852c53708040c1af0" - integrity sha512-yyCLzrwpKLoFZMwt1Dl52699k/FB68qszrKYWY0HOWc+R3h2SmVkeXZIOChJep3bAEB2UHV42I3u6g1lI1NbGA== +"@renovatebot/ruby-semver@2.1.9": + version "2.1.9" + resolved "https://registry.yarnpkg.com/@renovatebot/ruby-semver/-/ruby-semver-2.1.9.tgz#6edb8232a50d833157b17c8914468d3e301163dd" + integrity sha512-44udvdctC5SCjlPYIcyf7vDARlXE3tVRTfZ6/OHcSNBt5WCfMljP5T7QLekCslHZjXgPoep33TURuOfeLrV3Ag== dependencies: tslib "^2.5.0" From 98231804c3dc39cfd3745e76a2a5fb8a29b94b33 Mon Sep 17 00:00:00 2001 From: Johannes Feichtner <343448+Churro@users.noreply.github.com> Date: Wed, 8 Mar 2023 07:31:28 +0100 Subject: [PATCH 075/228] feat(manager/gradle): add support for map notation deps in Groovy maps (#20798) --- lib/modules/manager/gradle/parser.spec.ts | 6 +++++ .../manager/gradle/parser/assignments.ts | 25 +++++++++++-------- .../manager/gradle/parser/dependencies.ts | 2 +- 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/lib/modules/manager/gradle/parser.spec.ts b/lib/modules/manager/gradle/parser.spec.ts index be59d51b673507..3d45f553b8b405 100644 --- a/lib/modules/manager/gradle/parser.spec.ts +++ b/lib/modules/manager/gradle/parser.spec.ts @@ -157,6 +157,7 @@ describe('modules/manager/gradle/parser', () => { releaseCoroutines: "org.jetbrains.kotlinx:kotlinx-coroutines-core:0.26.1-eap13" api: "org.slf4j:slf4j-api:$slfj4Version", ] + foo = [ group: "org.slf4j", name: "slf4j-ext", version: slfj4Version ] `; const { deps } = parseGradle(input); @@ -176,6 +177,11 @@ describe('modules/manager/gradle/parser', () => { groupName: 'slfj4Version', currentValue: '2.0.0', }, + { + depName: 'org.slf4j:slf4j-ext', + groupName: 'slfj4Version', + currentValue: '2.0.0', + }, ]); }); }); diff --git a/lib/modules/manager/gradle/parser/assignments.ts b/lib/modules/manager/gradle/parser/assignments.ts index 9b5ccbd49ba461..a05802061829dc 100644 --- a/lib/modules/manager/gradle/parser/assignments.ts +++ b/lib/modules/manager/gradle/parser/assignments.ts @@ -13,6 +13,7 @@ import { storeInTokenMap, storeVarToken, } from './common'; +import { qGroovyMapNotationDependencies } from './dependencies'; import { handleAssignment } from './handlers'; // foo = "1.2.3" @@ -65,16 +66,20 @@ const qKotlinSingleExtraVarAssignment = q }) .handler(cleanupTempVars); -// foo: "1.2.3" -const qGroovySingleMapOfVarAssignment = q - .sym(storeVarToken) - .handler(prependNestingDepth) - .handler(coalesceVariable) - .handler((ctx) => storeInTokenMap(ctx, 'keyToken')) - .op(':') - .join(qTemplateString) - .handler((ctx) => storeInTokenMap(ctx, 'valToken')) - .handler(handleAssignment); +const qGroovySingleMapOfVarAssignment = q.alt( + // foo: [group: "foo", name: "bar", version: "1.2.3"] + q.begin().join(qGroovyMapNotationDependencies).end(), + // foo: "1.2.3" + q + .sym(storeVarToken) + .handler(prependNestingDepth) + .handler(coalesceVariable) + .handler((ctx) => storeInTokenMap(ctx, 'keyToken')) + .op(':') + .join(qTemplateString) + .handler((ctx) => storeInTokenMap(ctx, 'valToken')) + .handler(handleAssignment) +); const qGroovyMapOfExpr = ( search: q.QueryBuilder diff --git a/lib/modules/manager/gradle/parser/dependencies.ts b/lib/modules/manager/gradle/parser/dependencies.ts index 633633790273f9..0ec2b03129a7c5 100644 --- a/lib/modules/manager/gradle/parser/dependencies.ts +++ b/lib/modules/manager/gradle/parser/dependencies.ts @@ -79,7 +79,7 @@ const qDependencySet = q .handler(cleanupTempVars); // group: "foo", name: "bar", version: "1.2.3" -const qGroovyMapNotationDependencies = q +export const qGroovyMapNotationDependencies = q .sym('group') .op(':') .join(qGroupId) From 8512072d41015c14a2769021dc3029bd77a4efbf Mon Sep 17 00:00:00 2001 From: Johannes Feichtner <343448+Churro@users.noreply.github.com> Date: Wed, 8 Mar 2023 07:31:56 +0100 Subject: [PATCH 076/228] feat(manager/gradle): add support for AndroidX Compose plugin (#20796) --- lib/modules/manager/gradle/parser.spec.ts | 48 ++++++++++--------- lib/modules/manager/gradle/parser/common.ts | 4 ++ .../manager/gradle/parser/dependencies.ts | 2 +- 3 files changed, 30 insertions(+), 24 deletions(-) diff --git a/lib/modules/manager/gradle/parser.spec.ts b/lib/modules/manager/gradle/parser.spec.ts index 3d45f553b8b405..f47c12c93bb5fd 100644 --- a/lib/modules/manager/gradle/parser.spec.ts +++ b/lib/modules/manager/gradle/parser.spec.ts @@ -895,29 +895,31 @@ describe('modules/manager/gradle/parser', () => { describe('implicit gradle plugins', () => { test.each` - def | input | output - ${'baz = "1.2.3"'} | ${'checkstyle { toolVersion = "${baz}" }'} | ${{ depName: 'checkstyle', packageName: GRADLE_PLUGINS['checkstyle'][1], currentValue: '1.2.3' }} - ${''} | ${'codenarc { toolVersion = "1.2.3" }'} | ${{ depName: 'codenarc', packageName: GRADLE_PLUGINS['codenarc'][1], currentValue: '1.2.3' }} - ${''} | ${'detekt { toolVersion = "1.2.3" }'} | ${{ depName: 'detekt', packageName: GRADLE_PLUGINS['detekt'][1], currentValue: '1.2.3' }} - ${''} | ${'findbugs { toolVersion = "1.2.3" }'} | ${{ depName: 'findbugs', packageName: GRADLE_PLUGINS['findbugs'][1], currentValue: '1.2.3' }} - ${''} | ${'googleJavaFormat { toolVersion = "1.2.3" }'} | ${{ depName: 'googleJavaFormat', packageName: GRADLE_PLUGINS['googleJavaFormat'][1], currentValue: '1.2.3' }} - ${'baz = "1.2.3"'} | ${'jacoco { toolVersion = baz }'} | ${{ depName: 'jacoco', packageName: GRADLE_PLUGINS['jacoco'][1], currentValue: '1.2.3', groupName: 'baz' }} - ${'baz = "1.2.3"'} | ${'jacoco { toolVersion = property("baz") }'} | ${{ depName: 'jacoco', packageName: GRADLE_PLUGINS['jacoco'][1], currentValue: '1.2.3' }} - ${''} | ${'lombok { version = "1.2.3" }'} | ${{ depName: 'lombok', packageName: GRADLE_PLUGINS['lombok'][1], currentValue: '1.2.3' }} - ${''} | ${'lombok { version.set("1.2.3") }'} | ${{ depName: 'lombok', packageName: GRADLE_PLUGINS['lombok'][1], currentValue: '1.2.3' }} - ${''} | ${'lombok { version.value("1.2.3") }'} | ${{ depName: 'lombok', packageName: GRADLE_PLUGINS['lombok'][1], currentValue: '1.2.3' }} - ${''} | ${'pmd { toolVersion = "1.2.3" }'} | ${{ depName: 'pmd', packageName: GRADLE_PLUGINS['pmd'][1], currentValue: '1.2.3' }} - ${''} | ${'pmd { toolVersion.set("1.2.3") }'} | ${{ depName: 'pmd', packageName: GRADLE_PLUGINS['pmd'][1], currentValue: '1.2.3' }} - ${''} | ${'pmd { toolVersion.value("1.2.3") }'} | ${{ depName: 'pmd', packageName: GRADLE_PLUGINS['pmd'][1], currentValue: '1.2.3' }} - ${''} | ${'pmd { foo = "bar"; toolVersion = "1.2.3" }'} | ${{ depName: 'pmd', packageName: GRADLE_PLUGINS['pmd'][1], currentValue: '1.2.3' }} - ${''} | ${'spotbugs { toolVersion = "1.2.3" }'} | ${{ depName: 'spotbugs', packageName: GRADLE_PLUGINS['spotbugs'][1], currentValue: '1.2.3' }} - ${''} | ${'pmd { toolVersion = "@@@" }'} | ${null} - ${''} | ${'pmd { toolVersion = "${baz}" }'} | ${null} - ${'baz = "1.2.3"'} | ${'pmd { toolVersion = "${baz}.456" }'} | ${{ depName: 'pmd', currentValue: '1.2.3.456', skipReason: 'unknown-version' }} - ${'baz = "1.2.3"'} | ${'pmd { toolVersion = baz + ".456" }'} | ${{ depName: 'pmd', currentValue: '1.2.3.456', skipReason: 'unknown-version' }} - ${''} | ${'pmd { [toolVersion = "6.36.0"] }'} | ${null} - ${''} | ${'unknown { toolVersion = "1.2.3" }'} | ${null} - ${''} | ${'jmh { jmhVersion = "1.2.3" }'} | ${{ depName: 'jmh', packageName: GRADLE_PLUGINS['jmh'][1], currentValue: '1.2.3' }} + def | input | output + ${'baz = "1.2.3"'} | ${'checkstyle { toolVersion = "${baz}" }'} | ${{ depName: 'checkstyle', packageName: GRADLE_PLUGINS['checkstyle'][1], currentValue: '1.2.3' }} + ${'baz = "1.2.3"'} | ${'checkstyle { toolVersion "${baz}" }'} | ${{ depName: 'checkstyle', packageName: GRADLE_PLUGINS['checkstyle'][1], currentValue: '1.2.3' }} + ${''} | ${'codenarc { toolVersion = "1.2.3" }'} | ${{ depName: 'codenarc', packageName: GRADLE_PLUGINS['codenarc'][1], currentValue: '1.2.3' }} + ${''} | ${'detekt { toolVersion = "1.2.3" }'} | ${{ depName: 'detekt', packageName: GRADLE_PLUGINS['detekt'][1], currentValue: '1.2.3' }} + ${''} | ${'findbugs { toolVersion = "1.2.3" }'} | ${{ depName: 'findbugs', packageName: GRADLE_PLUGINS['findbugs'][1], currentValue: '1.2.3' }} + ${''} | ${'googleJavaFormat { toolVersion = "1.2.3" }'} | ${{ depName: 'googleJavaFormat', packageName: GRADLE_PLUGINS['googleJavaFormat'][1], currentValue: '1.2.3' }} + ${'baz = "1.2.3"'} | ${'jacoco { toolVersion = baz }'} | ${{ depName: 'jacoco', packageName: GRADLE_PLUGINS['jacoco'][1], currentValue: '1.2.3', groupName: 'baz' }} + ${'baz = "1.2.3"'} | ${'jacoco { toolVersion = property("baz") }'} | ${{ depName: 'jacoco', packageName: GRADLE_PLUGINS['jacoco'][1], currentValue: '1.2.3' }} + ${''} | ${'lombok { version = "1.2.3" }'} | ${{ depName: 'lombok', packageName: GRADLE_PLUGINS['lombok'][1], currentValue: '1.2.3' }} + ${''} | ${'lombok { version.set("1.2.3") }'} | ${{ depName: 'lombok', packageName: GRADLE_PLUGINS['lombok'][1], currentValue: '1.2.3' }} + ${''} | ${'lombok { version.value("1.2.3") }'} | ${{ depName: 'lombok', packageName: GRADLE_PLUGINS['lombok'][1], currentValue: '1.2.3' }} + ${''} | ${'pmd { toolVersion = "1.2.3" }'} | ${{ depName: 'pmd', packageName: GRADLE_PLUGINS['pmd'][1], currentValue: '1.2.3' }} + ${''} | ${'pmd { toolVersion.set("1.2.3") }'} | ${{ depName: 'pmd', packageName: GRADLE_PLUGINS['pmd'][1], currentValue: '1.2.3' }} + ${''} | ${'pmd { toolVersion.value("1.2.3") }'} | ${{ depName: 'pmd', packageName: GRADLE_PLUGINS['pmd'][1], currentValue: '1.2.3' }} + ${''} | ${'pmd { foo = "bar"; toolVersion = "1.2.3" }'} | ${{ depName: 'pmd', packageName: GRADLE_PLUGINS['pmd'][1], currentValue: '1.2.3' }} + ${''} | ${'spotbugs { toolVersion = "1.2.3" }'} | ${{ depName: 'spotbugs', packageName: GRADLE_PLUGINS['spotbugs'][1], currentValue: '1.2.3' }} + ${''} | ${'pmd { toolVersion = "@@@" }'} | ${null} + ${''} | ${'pmd { toolVersion = "${baz}" }'} | ${null} + ${'baz = "1.2.3"'} | ${'pmd { toolVersion = "${baz}.456" }'} | ${{ depName: 'pmd', currentValue: '1.2.3.456', skipReason: 'unknown-version' }} + ${'baz = "1.2.3"'} | ${'pmd { toolVersion = baz + ".456" }'} | ${{ depName: 'pmd', currentValue: '1.2.3.456', skipReason: 'unknown-version' }} + ${''} | ${'pmd { [toolVersion = "6.36.0"] }'} | ${null} + ${''} | ${'unknown { toolVersion = "1.2.3" }'} | ${null} + ${''} | ${'composeOptions { kotlinCompilerExtensionVersion = "1.2.3" }'} | ${{ depName: 'composeOptions', packageName: GRADLE_PLUGINS['composeOptions'][1], currentValue: '1.2.3' }} + ${''} | ${'jmh { jmhVersion = "1.2.3" }'} | ${{ depName: 'jmh', packageName: GRADLE_PLUGINS['jmh'][1], currentValue: '1.2.3' }} `('$def | $input', ({ def, input, output }) => { const { deps } = parseGradle([def, input].join('\n')); expect(deps).toMatchObject([output].filter(is.truthy)); diff --git a/lib/modules/manager/gradle/parser/common.ts b/lib/modules/manager/gradle/parser/common.ts index b6f653bf1786f8..4693da32c294f6 100644 --- a/lib/modules/manager/gradle/parser/common.ts +++ b/lib/modules/manager/gradle/parser/common.ts @@ -13,6 +13,10 @@ export const REGISTRY_URLS = { export const GRADLE_PLUGINS = { checkstyle: ['toolVersion', 'com.puppycrawl.tools:checkstyle'], codenarc: ['toolVersion', 'org.codenarc:CodeNarc'], + composeOptions: [ + 'kotlinCompilerExtensionVersion', + 'androidx.compose.compiler:compiler', + ], detekt: ['toolVersion', 'io.gitlab.arturbosch.detekt:detekt-core'], findbugs: ['toolVersion', 'com.google.code.findbugs:findbugs'], googleJavaFormat: [ diff --git a/lib/modules/manager/gradle/parser/dependencies.ts b/lib/modules/manager/gradle/parser/dependencies.ts index 0ec2b03129a7c5..bb194aea6be94d 100644 --- a/lib/modules/manager/gradle/parser/dependencies.ts +++ b/lib/modules/manager/gradle/parser/dependencies.ts @@ -179,7 +179,7 @@ const qImplicitGradlePlugin = q ) .alt( // toolVersion = "1.2.3" - q.op('=').join(qVersion), + q.opt(q.op('=')).join(qVersion), // toolVersion.set("1.2.3"), toolVersion.value("1.2.3") q .op('.') From 6e0ef61d988d5b169dbf4e255148f336abb9f589 Mon Sep 17 00:00:00 2001 From: Philip <42116482+PhilipAbed@users.noreply.github.com> Date: Wed, 8 Mar 2023 09:08:58 +0200 Subject: [PATCH 077/228] docs(platform/codecommit): add aws codebuild examples (#19374) Co-authored-by: Rhys Arkins Co-authored-by: HonkingGoose <34918129+HonkingGoose@users.noreply.github.com> --- lib/modules/platform/codecommit/index.md | 56 ++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/lib/modules/platform/codecommit/index.md b/lib/modules/platform/codecommit/index.md index de47f7b3aa5ab0..3ce6026ab4b6d7 100644 --- a/lib/modules/platform/codecommit/index.md +++ b/lib/modules/platform/codecommit/index.md @@ -142,3 +142,59 @@ module.exports = { ], }; ``` + +## CodeBuild examples + +Create a repository with `buildspec.yml`. +This repository will be your BuildProject job repository to run Renovate on your repositories. + +### Renovate Docker `buildspec.yml` + +```yml +version: 0.2 +env: + shell: bash + git-credential-helper: yes + variables: + RENOVATE_PLATFORM: 'codecommit' + RENOVATE_REPOSITORIES: '["repoName1", "repoName2"]' + RENOVATE_CONFIG: '{"extends":["config:base"]}' + LOG_LEVEL: 'debug' + AWS_REGION: 'us-east-1' +phases: + build: + on-failure: CONTINUE + commands: + - docker run --rm -e AWS_REGION -e RENOVATE_CONFIG -e RENOVATE_PLATFORM -e RENOVATE_REPOSITORIES -e LOG_LEVEL renovate/renovate +``` + +### Renovate CLI `buildspec.yml` + +```yml +version: 0.2 +env: + shell: bash + git-credential-helper: yes + variables: + RENOVATE_PLATFORM: 'codecommit' + RENOVATE_REPOSITORIES: '["repoName1", "repoName2"]' + RENOVATE_CONFIG: '{"extends":["config:base"]}' + LOG_LEVEL: 'debug' + AWS_REGION: 'us-east-1' +phases: + build: + on-failure: CONTINUE + commands: + - npm install -g renovate + - renovate +``` + +### Notes + +In order to reduce Renovate BuildProject time and avoid `npm install`. + +We recommend you install Renovate on the BuildProject Renovate job repository. + +You can add `config.js` global config to the repository. + +You can add the BuildProject repository to the `RENOVATE_REPOSITORIES` variable and get updates on new Renovate versions. From 045780f8cd0790f03cb558ce547be740c9adea9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcin=20Zaj=C4=85czkowski?= <148013+szpak@users.noreply.github.com> Date: Wed, 8 Mar 2023 08:09:43 +0100 Subject: [PATCH 078/228] docs: clarify that S3 cannot be used as lookup cache (#19711) Co-authored-by: Rhys Arkins --- docs/usage/self-hosted-configuration.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/usage/self-hosted-configuration.md b/docs/usage/self-hosted-configuration.md index f0a8e3787dcaba..b0f0c940a32741 100644 --- a/docs/usage/self-hosted-configuration.md +++ b/docs/usage/self-hosted-configuration.md @@ -709,6 +709,10 @@ Set this to an S3 URI to enable S3 backed repository cache. If you're storing the repository cache on Amazon S3 then you may set a folder hierarchy as part of `repositoryCacheType`. For example, `repositoryCacheType: 's3://bucket-name/dir1/.../dirN/'`. + +!!! note + S3 repository is used as a repository cache (e.g. extracted dependencies) and not a lookup cache (e.g. available versions of dependencies). To keep the later remotely, define [Redis URL](#redisurl). + ## requireConfig By default, Renovate needs a Renovate config file in each repository where it runs before it will propose any dependency updates. From d5ece8bf45c7a6784be362dd0325e37b72950012 Mon Sep 17 00:00:00 2001 From: Henrik Poulsen Date: Wed, 8 Mar 2023 12:25:00 +0100 Subject: [PATCH 079/228] fix(datasource): add warning when unable to find datasource (#20805) Co-authored-by: Rhys Arkins --- lib/modules/datasource/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/modules/datasource/index.ts b/lib/modules/datasource/index.ts index dd0d5f198228cc..7b08df36a839fa 100644 --- a/lib/modules/datasource/index.ts +++ b/lib/modules/datasource/index.ts @@ -278,6 +278,7 @@ async function fetchReleases( const datasource = getDatasourceFor(datasourceName); // istanbul ignore if: needs test if (!datasource) { + logger.warn({ datasource: datasourceName }, 'Unknown datasource'); return null; } registryUrls = resolveRegistryUrls( From 11b71b4f1cf289bc3aef0a74cf0a34f8f85d012c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 8 Mar 2023 15:02:01 +0100 Subject: [PATCH 080/228] chore(deps): update dependency @types/node to v16.18.14 (#20806) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index b44dad0ba68b65..529d8a0b71c536 100644 --- a/package.json +++ b/package.json @@ -278,7 +278,7 @@ "@types/marshal": "0.5.1", "@types/moo": "0.5.5", "@types/nock": "10.0.3", - "@types/node": "16.18.13", + "@types/node": "16.18.14", "@types/parse-link-header": "2.0.1", "@types/semver": "7.3.13", "@types/semver-stable": "3.0.0", diff --git a/yarn.lock b/yarn.lock index 9c6446192a9224..4d69062c414baa 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3058,10 +3058,10 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-18.14.5.tgz#4a13a6445862159303fc38586598a9396fc408b3" integrity sha512-CRT4tMK/DHYhw1fcCEBwME9CSaZNclxfzVMe7GsO6ULSwsttbj70wSiX6rZdIjGblu93sTJxLdhNIT85KKI7Qw== -"@types/node@16.18.13": - version "16.18.13" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.13.tgz#c572f8837094c6e3b73918a68674c784f6877fc0" - integrity sha512-l0/3XZ153UTlNOnZK8xSNoJlQda9/WnYgiTdcKKPJSZjdjI9MU+A9oMXOesAWLSnqAaaJhj3qfQsU07Dr8OUwg== +"@types/node@16.18.14": + version "16.18.14" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.14.tgz#5465ce598486a703caddbefe8603f8a2cffa3461" + integrity sha512-wvzClDGQXOCVNU4APPopC2KtMYukaF1MN/W3xAmslx22Z4/IF1/izDMekuyoUlwfnDHYCIZGaj7jMwnJKBTxKw== "@types/node@^13.7.0": version "13.13.52" From 01a1af5d7aefabf1b9a5fb22259247550bf6a3aa Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 8 Mar 2023 22:45:27 +0000 Subject: [PATCH 081/228] chore(deps): update dependency rimraf to v4.1.3 (#20813) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 529d8a0b71c536..6985eb964084b4 100644 --- a/package.json +++ b/package.json @@ -321,7 +321,7 @@ "mockdate": "3.0.5", "nock": "13.3.0", "npm-run-all": "4.1.5", - "rimraf": "4.1.2", + "rimraf": "4.1.3", "semantic-release": "20.1.1", "shelljs": "0.8.5", "strip-ansi": "6.0.1", diff --git a/yarn.lock b/yarn.lock index 4d69062c414baa..07709137330aa7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8991,10 +8991,10 @@ rfdc@^1.3.0: resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== -rimraf@4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-4.1.2.tgz#20dfbc98083bdfaa28b01183162885ef213dbf7c" - integrity sha512-BlIbgFryTbw3Dz6hyoWFhKk+unCcHMSkZGrTFVAx2WmttdBSonsdtRlwiuTbDqTKr+UlXIUqJVS4QT5tUzGENQ== +rimraf@4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-4.1.3.tgz#e8ace19d5f009b4fa6108deeaffe39ef68bba194" + integrity sha512-iyzalDLo3l5FZxxaIGUY7xI4Bf90Xt7pCipc1Mr7RsdU7H3538z+M0tlsUDrz0aHeGS9uNqiKHUJyTewwRP91Q== rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" From 67b076ae6ebc848048b1d6af21ac85dab4cb7429 Mon Sep 17 00:00:00 2001 From: Jamie Magee Date: Wed, 8 Mar 2023 22:31:16 -0800 Subject: [PATCH 082/228] refactor: safely parse emoji shortcodes (#20814) --- lib/util/emoji.ts | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/lib/util/emoji.ts b/lib/util/emoji.ts index a6aadb70375743..9fe537dc050079 100644 --- a/lib/util/emoji.ts +++ b/lib/util/emoji.ts @@ -7,8 +7,10 @@ import { } from 'emojibase'; import emojibaseEmojiRegex from 'emojibase-regex/emoji.js'; import SHORTCODE_REGEX from 'emojibase-regex/shortcode.js'; +import { z } from 'zod'; import type { RenovateConfig } from '../config/types'; import dataFiles from '../data-files.generated'; +import { logger } from '../logger'; import { regEx } from './regex'; let unicodeEmoji = true; @@ -17,13 +19,25 @@ let mappingsInitialized = false; const shortCodesByHex = new Map(); const hexCodesByShort = new Map(); +const EmojiShortcodesSchema = z.record( + z.string(), + z.union([z.string(), z.array(z.string())]) +); + function lazyInitMappings(): void { if (!mappingsInitialized) { - const table: Record = JSON.parse( - dataFiles.get('node_modules/emojibase-data/en/shortcodes/github.json')! + const result = EmojiShortcodesSchema.safeParse( + JSON.parse( + dataFiles.get('node_modules/emojibase-data/en/shortcodes/github.json')! + ) ); - for (const [hex, val] of Object.entries(table)) { - const shortCodes: string[] = is.array(val) ? val : [val]; + // istanbul ignore if: not easily testable + if (!result.success) { + logger.warn({ error: result.error }, 'Unable to parse emoji shortcodes'); + return; + } + for (const [hex, val] of Object.entries(result.data)) { + const shortCodes = is.array(val) ? val : [val]; shortCodesByHex.set(hex, `:${shortCodes[0]}:`); shortCodes.forEach((shortCode) => { hexCodesByShort.set(`:${shortCode}:`, hex); From a3cc159f7e30120da72b60196f3f8d706d5d5709 Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Thu, 9 Mar 2023 12:24:50 +0100 Subject: [PATCH 083/228] chore: extract and lookup duration logging (#20816) --- lib/util/cache/memory/types.ts | 4 +++ lib/workers/repository/extract/index.ts | 8 +++++ lib/workers/repository/index.ts | 3 +- lib/workers/repository/process/fetch.ts | 7 +++++ lib/workers/repository/stats.spec.ts | 41 ++++++++++++++++++++++++- lib/workers/repository/stats.ts | 19 ++++++++++++ 6 files changed, 80 insertions(+), 2 deletions(-) create mode 100644 lib/util/cache/memory/types.ts diff --git a/lib/util/cache/memory/types.ts b/lib/util/cache/memory/types.ts new file mode 100644 index 00000000000000..c122e353b083f3 --- /dev/null +++ b/lib/util/cache/memory/types.ts @@ -0,0 +1,4 @@ +export interface LookupStats { + datasource: string; + duration: number; +} diff --git a/lib/workers/repository/extract/index.ts b/lib/workers/repository/extract/index.ts index 57395bf4075eb9..a2337de4a45d26 100644 --- a/lib/workers/repository/extract/index.ts +++ b/lib/workers/repository/extract/index.ts @@ -52,12 +52,20 @@ export async function extractAllDependencies( extractResult.extractionFingerprints[manager] = hashMap.get(manager); } + const extractDurations: Record = {}; const extractResults = await Promise.all( extractList.map(async (managerConfig) => { + const start = Date.now(); const packageFiles = await getManagerPackageFiles(managerConfig); + const durationMs = Math.round(Date.now() - start); + extractDurations[managerConfig.manager] = durationMs; return { manager: managerConfig.manager, packageFiles }; }) ); + logger.debug( + { managers: extractDurations }, + 'manager extract durations (ms)' + ); let fileCount = 0; for (const { manager, packageFiles } of extractResults) { if (packageFiles?.length) { diff --git a/lib/workers/repository/index.ts b/lib/workers/repository/index.ts index 0d6f4dd0e7af91..5352b8123ed482 100644 --- a/lib/workers/repository/index.ts +++ b/lib/workers/repository/index.ts @@ -24,7 +24,7 @@ import { ensureOnboardingPr } from './onboarding/pr'; import { extractDependencies, updateRepo } from './process'; import type { ExtractResult } from './process/extract-update'; import { ProcessResult, processResult } from './result'; -import { printRequestStats } from './stats'; +import { printLookupStats, printRequestStats } from './stats'; // istanbul ignore next export async function renovateRepository( @@ -109,6 +109,7 @@ export async function renovateRepository( const splits = getSplits(); logger.debug(splits, 'Repository timing splits (milliseconds)'); printRequestStats(); + printLookupStats(); printDnsStats(); clearDnsCache(); schemaUtil.reportErrors(); diff --git a/lib/workers/repository/process/fetch.ts b/lib/workers/repository/process/fetch.ts index 6d46cb4402ee98..c4ad809e510689 100644 --- a/lib/workers/repository/process/fetch.ts +++ b/lib/workers/repository/process/fetch.ts @@ -12,6 +12,8 @@ import type { PackageFile, } from '../../../modules/manager/types'; import { ExternalHostError } from '../../../types/errors/external-host-error'; +import * as memCache from '../../../util/cache/memory'; +import type { LookupStats } from '../../../util/cache/memory/types'; import { clone } from '../../../util/clone'; import { applyPackageRules } from '../../../util/package-rules'; import * as p from '../../../util/promises'; @@ -54,10 +56,15 @@ async function fetchDepUpdates( } else { if (depConfig.datasource) { try { + const start = Date.now(); dep = { ...dep, ...(await lookupUpdates(depConfig as LookupUpdateConfig)), }; + const duration = Date.now() - start; + const lookups = memCache.get('lookup-stats') || []; + lookups.push({ datasource: depConfig.datasource, duration }); + memCache.set('lookup-stats', lookups); } catch (err) { if ( packageFileConfig.repoIsOnboarded || diff --git a/lib/workers/repository/stats.spec.ts b/lib/workers/repository/stats.spec.ts index 5c83dc53ecbd50..1b3d0cf4f408de 100644 --- a/lib/workers/repository/stats.spec.ts +++ b/lib/workers/repository/stats.spec.ts @@ -1,8 +1,9 @@ import { logger, mocked } from '../../../test/util'; import type { Logger } from '../../logger/types'; import * as _memCache from '../../util/cache/memory'; +import type { LookupStats } from '../../util/cache/memory/types'; import type { RequestStats } from '../../util/http/types'; -import { printRequestStats } from './stats'; +import { printLookupStats, printRequestStats } from './stats'; jest.mock('../../util/cache/memory'); @@ -10,6 +11,44 @@ const memCache = mocked(_memCache); const log = logger.logger as jest.Mocked; describe('workers/repository/stats', () => { + describe('printLookupStats()', () => { + it('runs', () => { + const stats: LookupStats[] = [ + { + datasource: 'npm', + duration: 100, + }, + { + datasource: 'npm', + duration: 200, + }, + { + datasource: 'docker', + duration: 1000, + }, + ]; + memCache.get.mockImplementationOnce(() => stats as any); + expect(printLookupStats()).toBeUndefined(); + expect(log.debug).toHaveBeenCalledTimes(1); + expect(log.debug.mock.calls[0][0]).toMatchInlineSnapshot(` + { + "docker": { + "averageMs": 1000, + "count": 1, + "maximumMs": 1000, + "totalMs": 1000, + }, + "npm": { + "averageMs": 150, + "count": 2, + "maximumMs": 200, + "totalMs": 300, + }, + } + `); + }); + }); + describe('printRequestStats()', () => { it('runs', () => { const getStats: number[] = [30, 100, 10, 20]; diff --git a/lib/workers/repository/stats.ts b/lib/workers/repository/stats.ts index dd95bb0b333993..049a4ce45a136f 100644 --- a/lib/workers/repository/stats.ts +++ b/lib/workers/repository/stats.ts @@ -2,6 +2,7 @@ import URL from 'url'; import { logger } from '../../logger'; import { sortNumeric } from '../../util/array'; import * as memCache from '../../util/cache/memory'; +import type { LookupStats } from '../../util/cache/memory/types'; import type { RequestStats } from '../../util/http/types'; interface CacheStats { @@ -11,6 +12,24 @@ interface CacheStats { maxMs?: number; } +export function printLookupStats(): void { + const lookups = memCache.get('lookup-stats') ?? []; + const datasourceDurations: Record = {}; + for (const lookup of lookups) { + datasourceDurations[lookup.datasource] ??= []; + datasourceDurations[lookup.datasource].push(lookup.duration); + } + const data: Record = {}; + for (const [datasource, durations] of Object.entries(datasourceDurations)) { + const count = durations.length; + const totalMs = durations.reduce((a, c) => a + c, 0); + const averageMs = Math.round(totalMs / count); + const maximumMs = Math.max(...durations); + data[datasource] = { count, averageMs, totalMs, maximumMs }; + } + logger.debug(data, 'Package lookup durations'); +} + export function printRequestStats(): void { const packageCacheGets = ( memCache.get('package-cache-gets') ?? [] From a72998724ef99bf2e887eedad7dd94c43bf61c83 Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Thu, 9 Mar 2023 13:16:21 +0100 Subject: [PATCH 084/228] fix(datasource/npm): cache public modules (#20815) Co-authored-by: Michael Kriese Co-authored-by: Sebastian Poxhofer --- .../npm/__snapshots__/index.spec.ts.snap | 13 +++++++++++++ lib/modules/datasource/npm/get.ts | 17 ++++++----------- lib/modules/datasource/npm/index.spec.ts | 5 ++++- 3 files changed, 23 insertions(+), 12 deletions(-) diff --git a/lib/modules/datasource/npm/__snapshots__/index.spec.ts.snap b/lib/modules/datasource/npm/__snapshots__/index.spec.ts.snap index 1eb91eb9fcbdb6..6b9b5b78f2eb9d 100644 --- a/lib/modules/datasource/npm/__snapshots__/index.spec.ts.snap +++ b/lib/modules/datasource/npm/__snapshots__/index.spec.ts.snap @@ -2,6 +2,7 @@ exports[`modules/datasource/npm/index should fetch package info from custom registry 1`] = ` { + "isPrivate": true, "name": "foobar", "registryUrl": "https://npm.mycustomregistry.com", "releases": [ @@ -25,6 +26,7 @@ exports[`modules/datasource/npm/index should fetch package info from custom regi exports[`modules/datasource/npm/index should fetch package info from npm 1`] = ` { + "isPrivate": false, "name": "foobar", "registryUrl": "https://registry.npmjs.org", "releases": [ @@ -48,6 +50,7 @@ exports[`modules/datasource/npm/index should fetch package info from npm 1`] = ` exports[`modules/datasource/npm/index should handle foobar 1`] = ` { + "isPrivate": true, "name": "foobar", "registryUrl": "https://registry.npmjs.org", "releases": [ @@ -71,6 +74,7 @@ exports[`modules/datasource/npm/index should handle foobar 1`] = ` exports[`modules/datasource/npm/index should handle no time 1`] = ` { + "isPrivate": true, "name": "foobar", "registryUrl": "https://registry.npmjs.org", "releases": [ @@ -93,6 +97,7 @@ exports[`modules/datasource/npm/index should handle no time 1`] = ` exports[`modules/datasource/npm/index should not send an authorization header if public package 1`] = ` { + "isPrivate": true, "name": "foobar", "registryUrl": "https://registry.npmjs.org", "releases": [ @@ -116,6 +121,7 @@ exports[`modules/datasource/npm/index should not send an authorization header if exports[`modules/datasource/npm/index should parse repo url (string) 1`] = ` { + "isPrivate": true, "name": "foobar", "registryUrl": "https://registry.npmjs.org", "releases": [ @@ -134,6 +140,7 @@ exports[`modules/datasource/npm/index should parse repo url (string) 1`] = ` exports[`modules/datasource/npm/index should parse repo url 1`] = ` { + "isPrivate": true, "name": "foobar", "registryUrl": "https://registry.npmjs.org", "releases": [ @@ -152,6 +159,7 @@ exports[`modules/datasource/npm/index should parse repo url 1`] = ` exports[`modules/datasource/npm/index should replace any environment variable in npmrc 1`] = ` { + "isPrivate": true, "name": "foobar", "registryUrl": "https://registry.from-env.com", "releases": [ @@ -181,6 +189,7 @@ exports[`modules/datasource/npm/index should return deprecated 1`] = ` Marking the latest version of an npm package as deprecated results in the entire package being considered deprecated, so contact the package author you think this is a mistake.", "deprecationSource": "npm", + "isPrivate": true, "name": "foobar", "registryUrl": "https://registry.npmjs.org", "releases": [ @@ -212,6 +221,7 @@ Marking the latest version of an npm package as deprecated results in the entire exports[`modules/datasource/npm/index should send an authorization header if provided 1`] = ` { + "isPrivate": true, "name": "@foobar/core", "registryUrl": "https://registry.npmjs.org", "releases": [ @@ -235,6 +245,7 @@ exports[`modules/datasource/npm/index should send an authorization header if pro exports[`modules/datasource/npm/index should use default registry if missing from npmrc 1`] = ` { + "isPrivate": true, "name": "foobar", "registryUrl": "https://registry.npmjs.org", "releases": [ @@ -258,6 +269,7 @@ exports[`modules/datasource/npm/index should use default registry if missing fro exports[`modules/datasource/npm/index should use host rules by baseUrl if provided 1`] = ` { + "isPrivate": true, "name": "foobar", "registryUrl": "https://npm.mycustomregistry.com/_packaging/mycustomregistry/npm/registry", "releases": [ @@ -281,6 +293,7 @@ exports[`modules/datasource/npm/index should use host rules by baseUrl if provid exports[`modules/datasource/npm/index should use host rules by hostName if provided 1`] = ` { + "isPrivate": true, "name": "foobar", "registryUrl": "https://npm.mycustomregistry.com", "releases": [ diff --git a/lib/modules/datasource/npm/get.ts b/lib/modules/datasource/npm/get.ts index 54e44742a1d987..4a66f58f519983 100644 --- a/lib/modules/datasource/npm/get.ts +++ b/lib/modules/datasource/npm/get.ts @@ -171,19 +171,12 @@ export async function getDependency( return release; }); logger.trace({ dep }, 'dep'); - // serialize first before saving - // TODO: use dynamic detection of public repos instead of a static list (#9587) - const whitelistedPublicScopes = [ - '@graphql-codegen', - '@storybook', - '@types', - '@typescript-eslint', - ]; + const cacheControl = raw.headers?.['cache-control']; if ( - !raw.authorization && - (whitelistedPublicScopes.includes(packageName.split('/')[0]) || - !packageName.startsWith('@')) + is.nonEmptyString(cacheControl) && + regEx(/(^|,)\s*public\s*(,|$)/).test(cacheControl) ) { + dep.isPrivate = false; const cacheData = { softExpireAt, etag }; await packageCache.set( cacheNamespace, @@ -191,6 +184,8 @@ export async function getDependency( { ...dep, cacheData }, etag ? cacheHardTtlMinutes : cacheMinutes ); + } else { + dep.isPrivate = true; } return dep; } catch (err) { diff --git a/lib/modules/datasource/npm/index.spec.ts b/lib/modules/datasource/npm/index.spec.ts index c40aff8a397f05..6dd04699db97b6 100644 --- a/lib/modules/datasource/npm/index.spec.ts +++ b/lib/modules/datasource/npm/index.spec.ts @@ -64,9 +64,10 @@ describe('modules/datasource/npm/index', () => { httpMock .scope('https://registry.npmjs.org') .get('/foobar') - .reply(200, npmResponse); + .reply(200, npmResponse, { 'Cache-control': 'public, expires=300' }); const res = await getPkgReleases({ datasource, depName: 'foobar' }); expect(res).toMatchSnapshot(); + expect(res?.isPrivate).toBeFalse(); }); it('should parse repo url', async () => { @@ -155,6 +156,7 @@ describe('modules/datasource/npm/index', () => { .reply(200, npmResponse); const res = await getPkgReleases({ datasource, depName: 'foobar' }); expect(res).toMatchSnapshot(); + expect(res?.isPrivate).toBeTrue(); }); it('should handle no time', async () => { @@ -307,6 +309,7 @@ describe('modules/datasource/npm/index', () => { const npmrc = `registry=https://npm.mycustomregistry.com/`; const res = await getPkgReleases({ datasource, depName: 'foobar', npmrc }); expect(res).toMatchSnapshot(); + expect(res?.isPrivate).toBeTrue(); }); it('should replace any environment variable in npmrc', async () => { From bca2cd2f5b7a57989f83ed23f94e9ec9cbecda18 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 9 Mar 2023 15:16:00 +0000 Subject: [PATCH 085/228] chore(deps): update actions/cache action to v3.3.0 (#20824) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e946a1a7625cee..fee617a3a47022 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -84,7 +84,7 @@ jobs: run: yarn build - name: Cache jest cache - uses: actions/cache@69d9d449aced6a2ede0bc19182fadc3a0a42d2b0 # v3.2.6 + uses: actions/cache@940f3d7cf195ba83374c77632d1e2cbb2f24ae68 # v3.3.0 with: path: .cache/jest key: ${{ runner.os }}-${{ matrix.node-version }}-jest-${{ hashFiles('yarn.lock') }} From e80d22ea887046104551fca45e0e7d4cb2eac6d5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 9 Mar 2023 23:03:41 +0000 Subject: [PATCH 086/228] chore(deps): update node.js to v18.15.0 (#20831) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .devcontainer/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index c425e180ea2624..0d51bf097652bd 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,4 +1,4 @@ -FROM containerbase/node:18.14.2@sha256:a72354f9adea2a6b7230c64403f77a13a201e2356843e012f3be5edd259adec1 +FROM containerbase/node:18.15.0@sha256:6c87133e7713b71b14d639bb3fa5e05d3569f7a60cf5ee1eaeeea054b5ca95df USER root From d11bfce0aa5087ba06aae604d927a17d7a8ffc7e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 10 Mar 2023 00:04:07 +0000 Subject: [PATCH 087/228] chore(deps): update dependency rimraf to v4.1.4 (#20832) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 6985eb964084b4..993675cd023844 100644 --- a/package.json +++ b/package.json @@ -321,7 +321,7 @@ "mockdate": "3.0.5", "nock": "13.3.0", "npm-run-all": "4.1.5", - "rimraf": "4.1.3", + "rimraf": "4.1.4", "semantic-release": "20.1.1", "shelljs": "0.8.5", "strip-ansi": "6.0.1", diff --git a/yarn.lock b/yarn.lock index 07709137330aa7..db40e6d0f27b5e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8991,10 +8991,10 @@ rfdc@^1.3.0: resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== -rimraf@4.1.3: - version "4.1.3" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-4.1.3.tgz#e8ace19d5f009b4fa6108deeaffe39ef68bba194" - integrity sha512-iyzalDLo3l5FZxxaIGUY7xI4Bf90Xt7pCipc1Mr7RsdU7H3538z+M0tlsUDrz0aHeGS9uNqiKHUJyTewwRP91Q== +rimraf@4.1.4: + version "4.1.4" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-4.1.4.tgz#f1af3c1278944c549c77157b011ba5e4c083efe4" + integrity sha512-CoUTSckPOFgu0m8PzkXWlp/e0IHxxv3fUxOivMspXfxcm1rPaNtj6lkkbi5NnFVoGDFj6kX7jPKVccafEf9HoA== rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" From 8e7101e6d77b58c08e6859090b6cb146f7ff06f8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 10 Mar 2023 01:07:35 +0000 Subject: [PATCH 088/228] chore(deps): update dependency rimraf to v4.2.0 (#20834) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 42 +++++++++++++++++++++++++++++++++++++----- 2 files changed, 38 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 993675cd023844..7580342fd2e801 100644 --- a/package.json +++ b/package.json @@ -321,7 +321,7 @@ "mockdate": "3.0.5", "nock": "13.3.0", "npm-run-all": "4.1.5", - "rimraf": "4.1.4", + "rimraf": "4.2.0", "semantic-release": "20.1.1", "shelljs": "0.8.5", "strip-ansi": "6.0.1", diff --git a/yarn.lock b/yarn.lock index db40e6d0f27b5e..2f6d2f19e81340 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5559,6 +5559,16 @@ glob@^7.0.0, glob@^7.1.3, glob@^7.1.4: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^9.2.0: + version "9.2.1" + resolved "https://registry.yarnpkg.com/glob/-/glob-9.2.1.tgz#f47e34e1119e7d4f93a546e75851ba1f1e68de50" + integrity sha512-Pxxgq3W0HyA3XUvSXcFhRSs+43Jsx0ddxcFrbjxNGkL2Ak5BAUBxLqI5G6ADDeCHLfzzXFhe0b1yYcctGmytMA== + dependencies: + fs.realpath "^1.0.0" + minimatch "^7.4.1" + minipass "^4.2.4" + path-scurry "^1.6.1" + global-agent@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-3.0.0.tgz#ae7cd31bd3583b93c5a16437a1afe27cc33a1ab6" @@ -7212,6 +7222,11 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" +lru-cache@^7.14.1: + version "7.18.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89" + integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== + lru-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1: version "7.18.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.1.tgz#4716408dec51d5d0104732647f584d1f6738b109" @@ -7514,6 +7529,13 @@ minimatch@6.1.6: dependencies: brace-expansion "^2.0.1" +minimatch@^7.4.1: + version "7.4.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-7.4.2.tgz#157e847d79ca671054253b840656720cb733f10f" + integrity sha512-xy4q7wou3vUoC9k1xGTXc+awNdGaGVHtFUaey8tiX4H1QRc04DZ/rmDFwNm2EBsuYEhAZ6SgMmYf3InGY6OauA== + dependencies: + brace-expansion "^2.0.1" + minimist-options@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" @@ -7582,7 +7604,7 @@ minipass@^3.0.0, minipass@^3.1.1, minipass@^3.1.6: dependencies: yallist "^4.0.0" -minipass@^4.0.0: +minipass@^4.0.0, minipass@^4.0.2, minipass@^4.2.4: version "4.2.4" resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.2.4.tgz#7d0d97434b6a19f59c5c3221698b48bbf3b2cd06" integrity sha512-lwycX3cBMTvcejsHITUgYj6Gy6A7Nh4Q6h9NP4sTHY1ccJlC7yKzDmiShEHsJ16Jf1nKGDEaiHxiltsJEvk0nQ== @@ -8427,6 +8449,14 @@ path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== +path-scurry@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.6.1.tgz#dab45f7bb1d3f45a0e271ab258999f4ab7e23132" + integrity sha512-OW+5s+7cw6253Q4E+8qQ/u1fVvcJQCJo/VFD8pje+dbJCF1n5ZRMV2AEHbGp+5Q7jxQIYJxkHopnj6nzdGeZLA== + dependencies: + lru-cache "^7.14.1" + minipass "^4.0.2" + path-to-regexp@^1.7.0: version "1.8.0" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" @@ -8991,10 +9021,12 @@ rfdc@^1.3.0: resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== -rimraf@4.1.4: - version "4.1.4" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-4.1.4.tgz#f1af3c1278944c549c77157b011ba5e4c083efe4" - integrity sha512-CoUTSckPOFgu0m8PzkXWlp/e0IHxxv3fUxOivMspXfxcm1rPaNtj6lkkbi5NnFVoGDFj6kX7jPKVccafEf9HoA== +rimraf@4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-4.2.0.tgz#f9c2a2b121f5133095c5d578983aec534c65f282" + integrity sha512-tPt+gLORNVqRCk0NwuJ5SlMEcOGvt4CCU8sUPqgCFtCbnoNCTd9Q6vq7JlBbxQlACiH14OR28y7piA2Bak9Sxw== + dependencies: + glob "^9.2.0" rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" From 29e865aee17ebe7021065c0bf6eb9bd208046a0f Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Fri, 10 Mar 2023 06:48:40 +0100 Subject: [PATCH 089/228] chore: better hashicorp versioning logging --- lib/modules/versioning/hashicorp/convertor.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/modules/versioning/hashicorp/convertor.ts b/lib/modules/versioning/hashicorp/convertor.ts index cf5ba17cdb275a..9f784f58f87829 100644 --- a/lib/modules/versioning/hashicorp/convertor.ts +++ b/lib/modules/versioning/hashicorp/convertor.ts @@ -1,3 +1,4 @@ +import { logger } from '../../../logger'; import { regEx } from '../../../util/regex'; /** @@ -16,10 +17,18 @@ export function hashicorp2npm(input: string): string { regEx(/^\s*(|=|!=|>|<|>=|<=|~>)\s*v?((\d+)(\.\d+){0,2}[\w-+]*)\s*$/) ); if (!r) { - throw new Error('invalid hashicorp constraint'); + logger.warn( + { constraint: input, element: single }, + 'Invalid hashicorp constraint' + ); + throw new Error('Invalid hashicorp constraint'); } if (r[1] === '!=') { - throw new Error('unsupported != in hashicorp constraint'); + logger.warn( + { constraint: input, element: single }, + 'Unsupported hashicorp constraint' + ); + throw new Error('Unsupported hashicorp constraint'); } return { operator: r[1], From bcb61d53601b70f7bd63b113ee4c169ef37ade86 Mon Sep 17 00:00:00 2001 From: Liora Milbaum Date: Fri, 10 Mar 2023 07:37:14 +0200 Subject: [PATCH 090/228] feat(manager/dockerfile): match Containerfile (#20804) Co-authored-by: Rhys Arkins --- lib/modules/manager/dockerfile/index.ts | 5 ++++- lib/modules/manager/dockerfile/readme.md | 8 ++++---- .../repository/extract/extract-fingerprint-config.spec.ts | 5 ++++- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/lib/modules/manager/dockerfile/index.ts b/lib/modules/manager/dockerfile/index.ts index 0f6e68b7f61ca3..0e011c1730d1d4 100644 --- a/lib/modules/manager/dockerfile/index.ts +++ b/lib/modules/manager/dockerfile/index.ts @@ -7,7 +7,10 @@ export const language: ProgrammingLanguage = 'docker'; export { extractPackageFile }; export const defaultConfig = { - fileMatch: ['(^|/|\\.)Dockerfile$', '(^|/)Dockerfile[^/]*$'], + fileMatch: [ + '(^|/|\\.)(Docker|Container)file$', + '(^|/)(Docker|Container)file[^/]*$', + ], }; export const supportedDatasources = [DockerDatasource.id]; diff --git a/lib/modules/manager/dockerfile/readme.md b/lib/modules/manager/dockerfile/readme.md index 24a3d124c558b1..f2158d91b4679b 100644 --- a/lib/modules/manager/dockerfile/readme.md +++ b/lib/modules/manager/dockerfile/readme.md @@ -1,10 +1,10 @@ -Extracts all Docker images in a `Dockerfile`. +Extracts image references in a `Dockerfile` and/or `Containerfile`. Renovate's managers does not understand versioning, that's up to Renovate's versioning modules. -The default Docker versioning for Docker datasources treats suffixes as "compatibility", for example: `-alpine`. -Many Docker images are _not_ SemVer compliant because they use such suffixes in their tags. +The default `docker` versioning for container image datasources treats suffixes as "compatibility", for example: `-alpine`. +Many container images are _not_ SemVer compliant because they use such suffixes in their tags. -If Renovate does not update your Dockerfile images correctly, you may need to tell Renovate what versioning it should use. +If Renovate does not update your container images correctly, you may need to tell Renovate what versioning it should use. For example, if you know that an image follows SemVer, you can tell Renovate to use `"semver"` versioning for that image: ```json diff --git a/lib/workers/repository/extract/extract-fingerprint-config.spec.ts b/lib/workers/repository/extract/extract-fingerprint-config.spec.ts index e18da13569c136..76977db7552183 100644 --- a/lib/workers/repository/extract/extract-fingerprint-config.spec.ts +++ b/lib/workers/repository/extract/extract-fingerprint-config.spec.ts @@ -99,7 +99,10 @@ describe('workers/repository/extract/extract-fingerprint-config', () => { ).toEqual({ enabled: true, fileList: [], - fileMatch: ['(^|/|\\.)Dockerfile$', '(^|/)Dockerfile[^/]*$'], + fileMatch: [ + '(^|/|\\.)(Docker|Container)file$', + '(^|/)(Docker|Container)file[^/]*$', + ], ignorePaths: ['**/node_modules/**', '**/bower_components/**'], includePaths: [], manager: 'dockerfile', From 9bd5b515a83b057ae5a71ea2ff382a5f88d338c3 Mon Sep 17 00:00:00 2001 From: Timothy Aaron Date: Fri, 10 Mar 2023 00:26:50 -0600 Subject: [PATCH 091/228] docs: link to all supported managers (#20826) Co-authored-by: Rhys Arkins Co-authored-by: HonkingGoose <34918129+HonkingGoose@users.noreply.github.com> --- docs/usage/python.md | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/docs/usage/python.md b/docs/usage/python.md index db5bb2420e58c3..83c3ed3672e054 100644 --- a/docs/usage/python.md +++ b/docs/usage/python.md @@ -5,13 +5,8 @@ description: Python/pip dependencies support in Renovate # Python package manager support -Renovate supports the following Python package managers: - -- `pip` (e.g. `requirements.txt`, `requirements.pip`) files -- `pipenv` (e.g. `Pipfile`) -- `poetry` (e.g. `pyproject.toml`) -- `setup.py` file -- `setup.cfg` file +Renovate supports several Python package managers, including `pip`, `pipenv`, `poetry`, etc. +See [all supported managers](https://docs.renovatebot.com/modules/manager/). ## Versioning support From dcd298a62528452d7a342153eb64fc679ee74696 Mon Sep 17 00:00:00 2001 From: RahulGautamSingh Date: Sat, 28 Jan 2023 11:49:08 +0530 Subject: [PATCH 092/228] feat(config)!: add new option `constraintsFiltering` (#19992) Adds new option `constraintsFiltering`. Closes #19979 BREAKING CHANGE: PyPI releases will no longer be filtered by default based on `constraints.python` compatibility. To retain existing functionality, set `constraintsFiltering=strict`. --- docs/usage/configuration-options.md | 13 ++++ lib/config/options/index.ts | 8 ++ lib/config/types.ts | 3 + lib/modules/datasource/index.spec.ts | 91 +++++++++++++++++++++++ lib/modules/datasource/index.ts | 42 ++++++----- lib/modules/datasource/pypi/index.spec.ts | 2 + lib/modules/datasource/types.ts | 2 + 7 files changed, 141 insertions(+), 20 deletions(-) diff --git a/docs/usage/configuration-options.md b/docs/usage/configuration-options.md index ba378faa185545..1e86f6a1062a08 100644 --- a/docs/usage/configuration-options.md +++ b/docs/usage/configuration-options.md @@ -544,6 +544,19 @@ If you need to _override_ constraints that Renovate detects from the repository, !!! note Make sure not to mix this up with the term `compatibility`, which Renovate uses in the context of version releases, e.g. if a Docker image is `node:12.16.0-alpine` then the `-alpine` suffix represents `compatibility`. +## constraintsFiltering + +This option controls whether Renovate filters new releases based on configured or detected `constraints`. +Renovate supports two options: + +- `none`: No release filtering (all releases allowed) +- `strict`: If the release's constraints match the package file constraints, then it's included + +We are working on adding more advanced filtering options. + +Note: There must be a `constraints` object in your Renovate config for this to work. +This feature is limited to `pypi` datasource only. + ## defaultRegistryUrls Override a datasource's default registries with this config option. diff --git a/lib/config/options/index.ts b/lib/config/options/index.ts index 82d917cf83733a..a767649136952f 100644 --- a/lib/config/options/index.ts +++ b/lib/config/options/index.ts @@ -217,6 +217,14 @@ const options: RenovateOptions[] = [ cli: false, env: false, }, + { + name: 'constraintsFiltering', + description: 'Perform release filtering based on language constraints.', + type: 'string', + allowedValues: ['none', 'strict'], + cli: false, + default: 'none', + }, { name: 'repositoryCache', description: diff --git a/lib/config/types.ts b/lib/config/types.ts index f453db98d7ce83..d27accb2d48793 100644 --- a/lib/config/types.ts +++ b/lib/config/types.ts @@ -187,6 +187,7 @@ export interface RegExManager extends RegexManagerTemplates { } export type UseBaseBranchConfigType = 'merge' | 'none'; +export type ConstraintsFilter = 'strict' | 'none'; // TODO: Proper typings export interface RenovateConfig @@ -251,6 +252,8 @@ export interface RenovateConfig constraints?: Record; skipInstalls?: boolean; + + constraintsFiltering?: ConstraintsFilter; } export interface AllConfig diff --git a/lib/modules/datasource/index.spec.ts b/lib/modules/datasource/index.spec.ts index 3202864da0a583..06fb982bada3ad 100644 --- a/lib/modules/datasource/index.spec.ts +++ b/lib/modules/datasource/index.spec.ts @@ -628,6 +628,97 @@ describe('modules/datasource/index', () => { expect(res).toBeNull(); }); }); + + describe('relaseConstraintFiltering', () => { + it('keeps all releases by default', async () => { + const registries = { + 'https://foo.bar': { + releases: [ + { + version: '0.0.1', + constraints: { + python: ['2.7'], + }, + }, + { + version: '0.0.2', + }, + ], + }, + } satisfies RegistriesMock; + datasources.set(datasource, new DummyDatasource(registries)); + const res = await getPkgReleases({ + datasource, + depName, + defaultRegistryUrls: ['https://foo.bar'], + }); + expect(res).toMatchObject({ + releases: [{ version: '0.0.1' }, { version: '0.0.2' }], + }); + }); + + it('keeps all releases if constraints is set but no value defined for constraintsFiltering', async () => { + const registries = { + 'https://foo.bar': { + releases: [ + { + version: '0.0.1', + constraints: { + python: ['2.7'], + }, + }, + { + version: '0.0.2', + }, + ], + }, + } satisfies RegistriesMock; + datasources.set(datasource, new DummyDatasource(registries)); + const res = await getPkgReleases({ + datasource, + depName, + defaultRegistryUrls: ['https://foo.bar'], + constraints: { + python: '2.7.0', + }, + }); + expect(res).toMatchObject({ + releases: [{ version: '0.0.1' }, { version: '0.0.2' }], + }); + }); + + it('filters releases if value is strict', async () => { + const registries = { + 'https://foo.bar': { + releases: [ + { + version: '0.0.1', + constraints: { + python: ['2.7'], + }, + }, + { + version: '0.0.2', + constraints: { + python: ['1.0'], + }, + }, + ], + }, + } satisfies RegistriesMock; + datasources.set(datasource, new DummyDatasource(registries)); + const res = await getPkgReleases({ + datasource, + depName, + defaultRegistryUrls: ['https://foo.bar'], + constraints: { python: '2.7.0' }, + constraintsFiltering: 'strict', + }); + expect(res).toMatchObject({ + releases: [{ version: '0.0.1' }], + }); + }); + }); }); }); }); diff --git a/lib/modules/datasource/index.ts b/lib/modules/datasource/index.ts index 7b08df36a839fa..495eae1aff1607 100644 --- a/lib/modules/datasource/index.ts +++ b/lib/modules/datasource/index.ts @@ -396,26 +396,28 @@ export async function getPkgReleases( (findRelease) => findRelease.version === filterRelease.version ) === filterIndex ); - // Filter releases for compatibility - for (const [constraintName, constraintValue] of Object.entries( - config.constraints ?? {} - )) { - // Currently we only support if the constraint is a plain version - // TODO: Support range/range compatibility filtering #8476 - if (version.isVersion(constraintValue)) { - res.releases = res.releases.filter((release) => { - const constraint = release.constraints?.[constraintName]; - if (!is.nonEmptyArray(constraint)) { - // A release with no constraints is OK - return true; - } - return constraint.some( - // If any of the release's constraints match, then it's OK - (releaseConstraint) => - !releaseConstraint || - version.matches(constraintValue, releaseConstraint) - ); - }); + if (config?.constraintsFiltering === 'strict') { + // Filter releases for compatibility + for (const [constraintName, constraintValue] of Object.entries( + config.constraints ?? {} + )) { + // Currently we only support if the constraint is a plain version + // TODO: Support range/range compatibility filtering #8476 + if (version.isVersion(constraintValue)) { + res.releases = res.releases.filter((release) => { + const constraint = release.constraints?.[constraintName]; + if (!is.nonEmptyArray(constraint)) { + // A release with no constraints is OK + return true; + } + return constraint.some( + // If any of the release's constraints match, then it's OK + (releaseConstraint) => + !releaseConstraint || + version.matches(constraintValue, releaseConstraint) + ); + }); + } } } // Strip constraints from releases result diff --git a/lib/modules/datasource/pypi/index.spec.ts b/lib/modules/datasource/pypi/index.spec.ts index 90a1a252ef7358..6f7123a3d53d74 100644 --- a/lib/modules/datasource/pypi/index.spec.ts +++ b/lib/modules/datasource/pypi/index.spec.ts @@ -271,6 +271,7 @@ describe('modules/datasource/pypi/index', () => { datasource, constraints: { python: '2.7' }, depName: 'doit', + constraintsFiltering: 'strict', }) ).toMatchSnapshot(); }); @@ -518,6 +519,7 @@ describe('modules/datasource/pypi/index', () => { constraints: { python: '2.7' }, ...config, depName: 'dj-database-url', + constraintsFiltering: 'strict', }) ).toMatchSnapshot(); }); diff --git a/lib/modules/datasource/types.ts b/lib/modules/datasource/types.ts index c9a9677b064bf0..b95f1395529026 100644 --- a/lib/modules/datasource/types.ts +++ b/lib/modules/datasource/types.ts @@ -1,3 +1,4 @@ +import type { ConstraintsFilter } from '../../config/types'; import type { ModuleApi } from '../../types'; export interface GetDigestInputConfig { @@ -37,6 +38,7 @@ export interface GetPkgReleasesConfig { constraints?: Record; replacementName?: string; replacementVersion?: string; + constraintsFiltering?: ConstraintsFilter; } export interface Release { From 016e64739008ec0f263d8a5799b82a4e01cb7e21 Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Sat, 28 Jan 2023 08:11:10 +0100 Subject: [PATCH 093/228] feat(config)!: default to rangeStrategy=auto, prefer update-lockfile (#19942) Changes `rangeStrategy` default value from `'replace'` to `'auto'`. Also changes `auto` behavior so that `update-lockfile` is preferred if the manager supports the `updateLockedDependency()` function. Closes #19800 BREAKING CHANGE: Renovate will now default to updating locked dependency versions. To revert to previous behavior, configure rangeStrategy=replace. --- lib/config/options/index.ts | 2 +- lib/config/presets/common.ts | 3 ++- lib/config/presets/index.spec.ts | 1 - lib/config/presets/internal/config.ts | 1 - lib/config/presets/internal/default.ts | 4 ---- lib/modules/manager/cargo/index.ts | 2 +- lib/modules/manager/cargo/range.spec.ts | 14 +++++++++++++ lib/modules/manager/cargo/range.ts | 8 ++++++++ lib/modules/manager/circleci/extract.ts | 1 - lib/modules/manager/circleci/index.ts | 1 + lib/modules/manager/circleci/range.spec.ts | 14 +++++++++++++ lib/modules/manager/circleci/range.ts | 8 ++++++++ lib/modules/manager/composer/range.spec.ts | 8 ++++---- lib/modules/manager/composer/range.ts | 2 +- lib/modules/manager/conan/index.ts | 2 +- lib/modules/manager/conan/range.spec.ts | 14 +++++++++++++ lib/modules/manager/conan/range.ts | 8 ++++++++ lib/modules/manager/gomod/extract.spec.ts | 1 - lib/modules/manager/gomod/extract.ts | 1 - lib/modules/manager/index.ts | 3 +++ lib/modules/manager/npm/range.spec.ts | 20 ++----------------- lib/modules/manager/npm/range.ts | 2 +- lib/modules/manager/range.spec.ts | 12 +++++++++-- lib/modules/manager/swift/index.ts | 2 +- lib/modules/manager/swift/range.spec.ts | 16 +++++++++++++++ lib/modules/manager/swift/range.ts | 8 ++++++++ .../__fixtures__/migrated-data-formatted.json | 2 +- .../branch/__fixtures__/migrated-data.json | 2 +- .../branch/__fixtures__/migrated-data.json5 | 2 +- .../branch/__fixtures__/migrated.json | 1 - .../branch/__fixtures__/renovate.json | 1 - .../branch/__fixtures__/renovate.json5 | 1 - .../pr/__fixtures__/migrated-data.json | 2 +- 33 files changed, 122 insertions(+), 47 deletions(-) create mode 100644 lib/modules/manager/cargo/range.spec.ts create mode 100644 lib/modules/manager/cargo/range.ts create mode 100644 lib/modules/manager/circleci/range.spec.ts create mode 100644 lib/modules/manager/circleci/range.ts create mode 100644 lib/modules/manager/conan/range.spec.ts create mode 100644 lib/modules/manager/conan/range.ts create mode 100644 lib/modules/manager/swift/range.spec.ts create mode 100644 lib/modules/manager/swift/range.ts diff --git a/lib/config/options/index.ts b/lib/config/options/index.ts index a767649136952f..5239b8d3ac68c3 100644 --- a/lib/config/options/index.ts +++ b/lib/config/options/index.ts @@ -1344,7 +1344,7 @@ const options: RenovateOptions[] = [ name: 'rangeStrategy', description: 'Determines how to modify or update existing ranges.', type: 'string', - default: 'replace', + default: 'auto', allowedValues: [ 'auto', 'pin', diff --git a/lib/config/presets/common.ts b/lib/config/presets/common.ts index 2f72e59cbc2726..b2ff01c1a9dc82 100644 --- a/lib/config/presets/common.ts +++ b/lib/config/presets/common.ts @@ -1,5 +1,6 @@ export const removedPresets: Record = { - ':autodetectPinVersions': ':autodetectRangeStrategy', + ':autodetectPinVersions': null, + ':autodetectRangeStrategy': null, ':automergeBranchMergeCommit': ':automergeBranch', ':automergeBranchPush': ':automergeBranch', ':base': 'config:base', diff --git a/lib/config/presets/index.spec.ts b/lib/config/presets/index.spec.ts index c7b432a0e52211..3bf5d5fffb5c49 100644 --- a/lib/config/presets/index.spec.ts +++ b/lib/config/presets/index.spec.ts @@ -839,7 +839,6 @@ describe('config/presets/index', () => { ':dependencyDashboard', ':semanticPrefixFixDepsChoreOthers', ':ignoreModulesAndTests', - ':autodetectRangeStrategy', ':prHourlyLimit2', ':prConcurrentLimit10', 'group:monorepos', diff --git a/lib/config/presets/internal/config.ts b/lib/config/presets/internal/config.ts index 044b55753753a4..355135deaa0727 100644 --- a/lib/config/presets/internal/config.ts +++ b/lib/config/presets/internal/config.ts @@ -9,7 +9,6 @@ export const presets: Record = { ':dependencyDashboard', ':semanticPrefixFixDepsChoreOthers', ':ignoreModulesAndTests', - ':autodetectRangeStrategy', ':prHourlyLimit2', ':prConcurrentLimit10', 'group:monorepos', diff --git a/lib/config/presets/internal/default.ts b/lib/config/presets/internal/default.ts index 0d1daebcef4033..8cef075470f4a3 100644 --- a/lib/config/presets/internal/default.ts +++ b/lib/config/presets/internal/default.ts @@ -10,10 +10,6 @@ export const presets: Record = { assignees: ['{{arg0}}'], description: 'Assign PRs to `{{arg0}}`.', }, - autodetectRangeStrategy: { - description: 'Automatically detect the best rangeStrategy to use.', - rangeStrategy: 'auto', - }, automergeAll: { automerge: true, description: diff --git a/lib/modules/manager/cargo/index.ts b/lib/modules/manager/cargo/index.ts index c7768858e33808..45ee9c4fada786 100644 --- a/lib/modules/manager/cargo/index.ts +++ b/lib/modules/manager/cargo/index.ts @@ -3,6 +3,7 @@ import { CrateDatasource } from '../../datasource/crate'; import * as cargoVersioning from '../../versioning/cargo'; import { updateArtifacts } from './artifacts'; import { extractPackageFile } from './extract'; +export { getRangeStrategy } from './range'; export const language: ProgrammingLanguage = 'rust'; export const supportsLockFileMaintenance = true; @@ -13,7 +14,6 @@ export const defaultConfig = { commitMessageTopic: 'Rust crate {{depName}}', fileMatch: ['(^|/)Cargo\\.toml$'], versioning: cargoVersioning.id, - rangeStrategy: 'bump', }; export const supportedDatasources = [CrateDatasource.id]; diff --git a/lib/modules/manager/cargo/range.spec.ts b/lib/modules/manager/cargo/range.spec.ts new file mode 100644 index 00000000000000..0356aac6a8cd22 --- /dev/null +++ b/lib/modules/manager/cargo/range.spec.ts @@ -0,0 +1,14 @@ +import type { RangeConfig } from '../types'; +import { getRangeStrategy } from '.'; + +describe('modules/manager/cargo/range', () => { + it('returns same if not auto', () => { + const config: RangeConfig = { rangeStrategy: 'widen' }; + expect(getRangeStrategy(config)).toBe('widen'); + }); + + it('defaults to bump', () => { + const config: RangeConfig = { rangeStrategy: 'auto' }; + expect(getRangeStrategy(config)).toBe('bump'); + }); +}); diff --git a/lib/modules/manager/cargo/range.ts b/lib/modules/manager/cargo/range.ts new file mode 100644 index 00000000000000..8f3d6e7eb54595 --- /dev/null +++ b/lib/modules/manager/cargo/range.ts @@ -0,0 +1,8 @@ +import type { RangeStrategy } from '../../../types'; +import type { RangeConfig } from '../types'; + +export function getRangeStrategy({ + rangeStrategy, +}: RangeConfig): RangeStrategy { + return rangeStrategy === 'auto' ? 'bump' : rangeStrategy; +} diff --git a/lib/modules/manager/circleci/extract.ts b/lib/modules/manager/circleci/extract.ts index 4f3bc24ab9c4ae..3557cb7a2f6a2b 100644 --- a/lib/modules/manager/circleci/extract.ts +++ b/lib/modules/manager/circleci/extract.ts @@ -41,7 +41,6 @@ export function extractPackageFile(content: string): PackageFileContent | null { packageName: orbName, commitMessageTopic: '{{{depName}}} orb', versioning: npmVersioning.id, - rangeStrategy: 'pin', }; deps.push(dep); } diff --git a/lib/modules/manager/circleci/index.ts b/lib/modules/manager/circleci/index.ts index 8505e9d39ce635..183098e281c8b8 100644 --- a/lib/modules/manager/circleci/index.ts +++ b/lib/modules/manager/circleci/index.ts @@ -1,6 +1,7 @@ import { DockerDatasource } from '../../datasource/docker'; import { OrbDatasource } from '../../datasource/orb'; import { extractPackageFile } from './extract'; +export { getRangeStrategy } from './range'; export { extractPackageFile }; diff --git a/lib/modules/manager/circleci/range.spec.ts b/lib/modules/manager/circleci/range.spec.ts new file mode 100644 index 00000000000000..40fb6c583d8d5e --- /dev/null +++ b/lib/modules/manager/circleci/range.spec.ts @@ -0,0 +1,14 @@ +import type { RangeConfig } from '../types'; +import { getRangeStrategy } from '.'; + +describe('modules/manager/circleci/range', () => { + it('returns same if not auto', () => { + const config: RangeConfig = { rangeStrategy: 'widen' }; + expect(getRangeStrategy(config)).toBe('widen'); + }); + + it('defaults to bump', () => { + const config: RangeConfig = { rangeStrategy: 'auto', depType: 'require' }; + expect(getRangeStrategy(config)).toBe('pin'); + }); +}); diff --git a/lib/modules/manager/circleci/range.ts b/lib/modules/manager/circleci/range.ts new file mode 100644 index 00000000000000..2c3311a8ca0c2a --- /dev/null +++ b/lib/modules/manager/circleci/range.ts @@ -0,0 +1,8 @@ +import type { RangeStrategy } from '../../../types'; +import type { RangeConfig } from '../types'; + +export function getRangeStrategy({ + rangeStrategy, +}: RangeConfig): RangeStrategy { + return rangeStrategy === 'auto' ? 'pin' : rangeStrategy; +} diff --git a/lib/modules/manager/composer/range.spec.ts b/lib/modules/manager/composer/range.spec.ts index 87f65b9c67c98a..944797d5c8b556 100644 --- a/lib/modules/manager/composer/range.spec.ts +++ b/lib/modules/manager/composer/range.spec.ts @@ -12,7 +12,7 @@ describe('modules/manager/composer/range', () => { rangeStrategy: 'auto', depType: 'require-dev', }; - expect(getRangeStrategy(config)).toBe('replace'); + expect(getRangeStrategy(config)).toBe('update-lockfile'); }); it('replaces project require', () => { @@ -21,7 +21,7 @@ describe('modules/manager/composer/range', () => { managerData: { composerJsonType: 'project' }, depType: 'require', }; - expect(getRangeStrategy(config)).toBe('replace'); + expect(getRangeStrategy(config)).toBe('update-lockfile'); }); it('widens complex ranges', () => { @@ -42,9 +42,9 @@ describe('modules/manager/composer/range', () => { expect(getRangeStrategy(config)).toBe('widen'); }); - it('defaults to replace', () => { + it('defaults to update-lockfile', () => { const config: RangeConfig = { rangeStrategy: 'auto', depType: 'require' }; - expect(getRangeStrategy(config)).toBe('replace'); + expect(getRangeStrategy(config)).toBe('update-lockfile'); }); it('defaults to widen for TYPO3 extensions', () => { diff --git a/lib/modules/manager/composer/range.ts b/lib/modules/manager/composer/range.ts index dd70eb54f92c38..a1faa3f6f1b8d4 100644 --- a/lib/modules/manager/composer/range.ts +++ b/lib/modules/manager/composer/range.ts @@ -23,5 +23,5 @@ export function getRangeStrategy(config: RangeConfig): RangeStrategy { ) { return 'widen'; } - return 'replace'; + return 'update-lockfile'; } diff --git a/lib/modules/manager/conan/index.ts b/lib/modules/manager/conan/index.ts index 2ac518f4609b76..3dc5571dedc4c7 100644 --- a/lib/modules/manager/conan/index.ts +++ b/lib/modules/manager/conan/index.ts @@ -1,4 +1,5 @@ export { extractPackageFile } from './extract'; +export { getRangeStrategy } from './range'; import { ConanDatasource } from '../../datasource/conan'; import * as conan from '../../versioning/conan'; @@ -6,7 +7,6 @@ export const defaultConfig = { fileMatch: ['(^|/)conanfile\\.(txt|py)$'], datasource: ConanDatasource.id, versioning: conan.id, - rangeStrategy: 'bump', enabled: false, // See https://github.com/renovatebot/renovate/issues/14170 }; diff --git a/lib/modules/manager/conan/range.spec.ts b/lib/modules/manager/conan/range.spec.ts new file mode 100644 index 00000000000000..7dcee82fb9712b --- /dev/null +++ b/lib/modules/manager/conan/range.spec.ts @@ -0,0 +1,14 @@ +import type { RangeConfig } from '../types'; +import { getRangeStrategy } from '.'; + +describe('modules/manager/conan/range', () => { + it('returns same if not auto', () => { + const config: RangeConfig = { rangeStrategy: 'widen' }; + expect(getRangeStrategy(config)).toBe('widen'); + }); + + it('defaults to bump', () => { + const config: RangeConfig = { rangeStrategy: 'auto', depType: 'require' }; + expect(getRangeStrategy(config)).toBe('bump'); + }); +}); diff --git a/lib/modules/manager/conan/range.ts b/lib/modules/manager/conan/range.ts new file mode 100644 index 00000000000000..8f3d6e7eb54595 --- /dev/null +++ b/lib/modules/manager/conan/range.ts @@ -0,0 +1,8 @@ +import type { RangeStrategy } from '../../../types'; +import type { RangeConfig } from '../types'; + +export function getRangeStrategy({ + rangeStrategy, +}: RangeConfig): RangeStrategy { + return rangeStrategy === 'auto' ? 'bump' : rangeStrategy; +} diff --git a/lib/modules/manager/gomod/extract.spec.ts b/lib/modules/manager/gomod/extract.spec.ts index 4d9b35b36ff95f..c1503da32c2656 100644 --- a/lib/modules/manager/gomod/extract.spec.ts +++ b/lib/modules/manager/gomod/extract.spec.ts @@ -67,7 +67,6 @@ replace ( currentValue: '1.18', datasource: 'golang-version', versioning: 'go-mod-directive', - rangeStrategy: 'replace', }, { managerData: { diff --git a/lib/modules/manager/gomod/extract.ts b/lib/modules/manager/gomod/extract.ts index 2d99d83f48ab5a..5f6352d2a35197 100644 --- a/lib/modules/manager/gomod/extract.ts +++ b/lib/modules/manager/gomod/extract.ts @@ -46,7 +46,6 @@ function getGoDep(lineNumber: number, goVer: string): PackageDependency { currentValue: goVer, datasource: GolangVersionDatasource.id, versioning: 'go-mod-directive', - rangeStrategy: 'replace', }; } diff --git a/lib/modules/manager/index.ts b/lib/modules/manager/index.ts index 4d7500b8836129..26befb170ef57b 100644 --- a/lib/modules/manager/index.ts +++ b/lib/modules/manager/index.ts @@ -87,6 +87,9 @@ export function getRangeStrategy(config: RangeConfig): RangeStrategy | null { return managerRangeStrategy; } if (rangeStrategy === 'auto') { + if (m.updateLockedDependency) { + return 'update-lockfile'; + } // default to 'replace' for auto return 'replace'; } diff --git a/lib/modules/manager/npm/range.spec.ts b/lib/modules/manager/npm/range.spec.ts index 997567a68da128..4898d3f18c5197 100644 --- a/lib/modules/manager/npm/range.spec.ts +++ b/lib/modules/manager/npm/range.spec.ts @@ -7,22 +7,6 @@ describe('modules/manager/npm/range', () => { expect(getRangeStrategy(config)).toBe('widen'); }); - it('replaces devDependencies', () => { - const config: RangeConfig = { - rangeStrategy: 'auto', - depType: 'devDependencies', - }; - expect(getRangeStrategy(config)).toBe('replace'); - }); - - it('replaces app dependencies', () => { - const config: RangeConfig = { - rangeStrategy: 'auto', - depType: 'dependencies', - }; - expect(getRangeStrategy(config)).toBe('replace'); - }); - it('widens peerDependencies', () => { const config: RangeConfig = { rangeStrategy: 'auto', @@ -49,11 +33,11 @@ describe('modules/manager/npm/range', () => { expect(getRangeStrategy(config)).toBe('widen'); }); - it('defaults to replace', () => { + it('defaults to update-lockfile', () => { const config: RangeConfig = { rangeStrategy: 'auto', depType: 'dependencies', }; - expect(getRangeStrategy(config)).toBe('replace'); + expect(getRangeStrategy(config)).toBe('update-lockfile'); }); }); diff --git a/lib/modules/manager/npm/range.ts b/lib/modules/manager/npm/range.ts index ed56cb10705d7a..91d8ceca3be5ac 100644 --- a/lib/modules/manager/npm/range.ts +++ b/lib/modules/manager/npm/range.ts @@ -25,5 +25,5 @@ export function getRangeStrategy(config: RangeConfig): RangeStrategy { if (isComplexRange) { return 'widen'; } - return 'replace'; + return 'update-lockfile'; } diff --git a/lib/modules/manager/range.spec.ts b/lib/modules/manager/range.spec.ts index 0cfbbe5a5176c7..7f1c3b2b58079e 100644 --- a/lib/modules/manager/range.spec.ts +++ b/lib/modules/manager/range.spec.ts @@ -16,12 +16,20 @@ describe('modules/manager/range', () => { rangeStrategy: 'auto', depType: 'dependencies', }; - expect(getRangeStrategy(config)).toBe('replace'); + expect(getRangeStrategy(config)).toBe('update-lockfile'); + }); + + it('defaults to update-lockfile if updateLockedDependency() is supported', () => { + const config: RangeConfig = { + manager: 'bundler', + rangeStrategy: 'auto', + }; + expect(getRangeStrategy(config)).toBe('update-lockfile'); }); it('defaults to replace', () => { const config: RangeConfig = { - manager: 'circleci', + manager: 'sbt', rangeStrategy: 'auto', }; expect(getRangeStrategy(config)).toBe('replace'); diff --git a/lib/modules/manager/swift/index.ts b/lib/modules/manager/swift/index.ts index c41cdba0bf620a..bbb83400ecc243 100644 --- a/lib/modules/manager/swift/index.ts +++ b/lib/modules/manager/swift/index.ts @@ -2,6 +2,7 @@ import { GitTagsDatasource } from '../../datasource/git-tags'; import * as swiftVersioning from '../../versioning/swift'; export { extractPackageFile } from './extract'; +export { getRangeStrategy } from './range'; export const displayName = 'Swift Package Manager'; export const url = 'https://www.swift.org/package-manager/'; @@ -11,6 +12,5 @@ export const supportedDatasources = [GitTagsDatasource.id]; export const defaultConfig = { fileMatch: ['(^|/)Package\\.swift'], versioning: swiftVersioning.id, - rangeStrategy: 'bump', pinDigests: false, }; diff --git a/lib/modules/manager/swift/range.spec.ts b/lib/modules/manager/swift/range.spec.ts new file mode 100644 index 00000000000000..4f20913fca3bc5 --- /dev/null +++ b/lib/modules/manager/swift/range.spec.ts @@ -0,0 +1,16 @@ +import type { RangeConfig } from '../types'; +import { getRangeStrategy } from '.'; + +describe('modules/manager/swift/range', () => { + describe('getRangeStrategy()', () => { + it('returns same if not auto', () => { + const config: RangeConfig = { rangeStrategy: 'widen' }; + expect(getRangeStrategy(config)).toBe('widen'); + }); + + it('defaults to update-lockfile', () => { + const config: RangeConfig = { rangeStrategy: 'auto' }; + expect(getRangeStrategy(config)).toBe('bump'); + }); + }); +}); diff --git a/lib/modules/manager/swift/range.ts b/lib/modules/manager/swift/range.ts new file mode 100644 index 00000000000000..8f3d6e7eb54595 --- /dev/null +++ b/lib/modules/manager/swift/range.ts @@ -0,0 +1,8 @@ +import type { RangeStrategy } from '../../../types'; +import type { RangeConfig } from '../types'; + +export function getRangeStrategy({ + rangeStrategy, +}: RangeConfig): RangeStrategy { + return rangeStrategy === 'auto' ? 'bump' : rangeStrategy; +} diff --git a/lib/workers/repository/config-migration/branch/__fixtures__/migrated-data-formatted.json b/lib/workers/repository/config-migration/branch/__fixtures__/migrated-data-formatted.json index 1891c1584d8928..4b038d5bb25af1 100644 --- a/lib/workers/repository/config-migration/branch/__fixtures__/migrated-data-formatted.json +++ b/lib/workers/repository/config-migration/branch/__fixtures__/migrated-data-formatted.json @@ -1,4 +1,4 @@ { "filename": "renovate.json", - "content": "{\n \"extends\": [\n \":separateMajorReleases\",\n \":prImmediately\",\n \":renovatePrefix\",\n \":semanticPrefixFixDepsChoreOthers\",\n \":updateNotScheduled\",\n \":automergeDisabled\",\n \":maintainLockFilesDisabled\",\n \":autodetectRangeStrategy\",\n \"group:monorepos\"\n ],\n \"onboarding\": false,\n \"rangeStrategy\": \"replace\",\n \"semanticCommits\": \"enabled\",\n \"timezone\": \"US/Central\",\n \"baseBranches\": [\"main\"]\n}\n" + "content": "{\n \"extends\": [\n \":separateMajorReleases\",\n \":prImmediately\",\n \":renovatePrefix\",\n \":semanticPrefixFixDepsChoreOthers\",\n \":updateNotScheduled\",\n \":automergeDisabled\",\n \":maintainLockFilesDisabled\",\n \"group:monorepos\"\n ],\n \"onboarding\": false,\n \"rangeStrategy\": \"replace\",\n \"semanticCommits\": \"enabled\",\n \"timezone\": \"US/Central\",\n \"baseBranches\": [\"main\"]\n}\n" } diff --git a/lib/workers/repository/config-migration/branch/__fixtures__/migrated-data.json b/lib/workers/repository/config-migration/branch/__fixtures__/migrated-data.json index 1266070dddb070..1e9f8833a3cd35 100644 --- a/lib/workers/repository/config-migration/branch/__fixtures__/migrated-data.json +++ b/lib/workers/repository/config-migration/branch/__fixtures__/migrated-data.json @@ -1,5 +1,5 @@ { - "content": "{\n \"extends\": [\n \":separateMajorReleases\",\n \":prImmediately\",\n \":renovatePrefix\",\n \":semanticPrefixFixDepsChoreOthers\",\n \":updateNotScheduled\",\n \":automergeDisabled\",\n \":maintainLockFilesDisabled\",\n \":autodetectRangeStrategy\",\n \"group:monorepos\"\n ],\n \"onboarding\": false,\n \"rangeStrategy\": \"replace\",\n \"semanticCommits\": \"enabled\",\n \"timezone\": \"US/Central\",\n \"baseBranches\": [\n \"main\"\n ]\n}\n", + "content": "{\n \"extends\": [\n \":separateMajorReleases\",\n \":prImmediately\",\n \":renovatePrefix\",\n \":semanticPrefixFixDepsChoreOthers\",\n \":updateNotScheduled\",\n \":automergeDisabled\",\n \":maintainLockFilesDisabled\",\n \"group:monorepos\"\n ],\n \"onboarding\": false,\n \"rangeStrategy\": \"replace\",\n \"semanticCommits\": \"enabled\",\n \"timezone\": \"US/Central\",\n \"baseBranches\": [\n \"main\"\n ]\n}\n", "filename": "renovate.json", "indent": { "amount": 2, diff --git a/lib/workers/repository/config-migration/branch/__fixtures__/migrated-data.json5 b/lib/workers/repository/config-migration/branch/__fixtures__/migrated-data.json5 index c80dcb42b6fc18..22888d346d99ef 100644 --- a/lib/workers/repository/config-migration/branch/__fixtures__/migrated-data.json5 +++ b/lib/workers/repository/config-migration/branch/__fixtures__/migrated-data.json5 @@ -1,5 +1,5 @@ { - "content": "{\n extends: [\n ':separateMajorReleases',\n ':prImmediately',\n ':renovatePrefix',\n ':semanticPrefixFixDepsChoreOthers',\n ':updateNotScheduled',\n ':automergeDisabled',\n ':maintainLockFilesDisabled',\n ':autodetectRangeStrategy',\n 'group:monorepos',\n ],\n onboarding: false,\n rangeStrategy: 'replace',\n semanticCommits: 'enabled',\n timezone: 'US/Central',\n baseBranches: [\n 'main',\n ],\n}\n", + "content": "{\n extends: [\n ':separateMajorReleases',\n ':prImmediately',\n ':renovatePrefix',\n ':semanticPrefixFixDepsChoreOthers',\n ':updateNotScheduled',\n ':automergeDisabled',\n ':maintainLockFilesDisabled',\n 'group:monorepos',\n ],\n onboarding: false,\n rangeStrategy: 'replace',\n semanticCommits: 'enabled',\n timezone: 'US/Central',\n baseBranches: [\n 'main',\n ],\n}\n", "filename": "renovate.json5", "indent": { "amount": 2, diff --git a/lib/workers/repository/config-migration/branch/__fixtures__/migrated.json b/lib/workers/repository/config-migration/branch/__fixtures__/migrated.json index 549d809c236d17..66b64ae3c892ba 100644 --- a/lib/workers/repository/config-migration/branch/__fixtures__/migrated.json +++ b/lib/workers/repository/config-migration/branch/__fixtures__/migrated.json @@ -7,7 +7,6 @@ ":updateNotScheduled", ":automergeDisabled", ":maintainLockFilesDisabled", - ":autodetectRangeStrategy", "group:monorepos" ], "onboarding": false, diff --git a/lib/workers/repository/config-migration/branch/__fixtures__/renovate.json b/lib/workers/repository/config-migration/branch/__fixtures__/renovate.json index 6ea0880bb10555..1a0a9efc29e9bc 100644 --- a/lib/workers/repository/config-migration/branch/__fixtures__/renovate.json +++ b/lib/workers/repository/config-migration/branch/__fixtures__/renovate.json @@ -8,7 +8,6 @@ ":updateNotScheduled", ":automergeDisabled", ":maintainLockFilesDisabled", - ":autodetectRangeStrategy", "group:monorepos", "helpers:oddIsUnstablePackages" ], diff --git a/lib/workers/repository/config-migration/branch/__fixtures__/renovate.json5 b/lib/workers/repository/config-migration/branch/__fixtures__/renovate.json5 index 2d13ebc63f59bc..559b6b98790621 100644 --- a/lib/workers/repository/config-migration/branch/__fixtures__/renovate.json5 +++ b/lib/workers/repository/config-migration/branch/__fixtures__/renovate.json5 @@ -7,7 +7,6 @@ ':updateNotScheduled', ':automergeDisabled', ':maintainLockFilesDisabled', - ':autodetectRangeStrategy', 'group:monorepos', 'helpers:oddIsUnstablePackages' ], diff --git a/lib/workers/repository/config-migration/pr/__fixtures__/migrated-data.json b/lib/workers/repository/config-migration/pr/__fixtures__/migrated-data.json index 0dce506326bb55..3375b555e6f10c 100644 --- a/lib/workers/repository/config-migration/pr/__fixtures__/migrated-data.json +++ b/lib/workers/repository/config-migration/pr/__fixtures__/migrated-data.json @@ -1,4 +1,4 @@ { "configFileName": "renovate.json", - "migratedContent": "{\n \"extends\": [\n \":separateMajorReleases\",\n \":prImmediately\",\n \":renovatePrefix\",\n \":semanticPrefixFixDepsChoreOthers\",\n \":updateNotScheduled\",\n \":automergeDisabled\",\n \":maintainLockFilesDisabled\",\n \":autodetectRangeStrategy\",\n \"group:monorepos\"\n ],\n \"onboarding\": false,\n \"rangeStrategy\": \"replace\",\n \"semanticCommits\": \"enabled\",\n \"timezone\": \"US/Central\",\n \"baseBranches\": [\n \"main\"\n ]\n}\n" + "migratedContent": "{\n \"extends\": [\n \":separateMajorReleases\",\n \":prImmediately\",\n \":renovatePrefix\",\n \":semanticPrefixFixDepsChoreOthers\",\n \":updateNotScheduled\",\n \":automergeDisabled\",\n \":maintainLockFilesDisabled\",\n \"group:monorepos\"\n ],\n \"onboarding\": false,\n \"rangeStrategy\": \"replace\",\n \"semanticCommits\": \"enabled\",\n \"timezone\": \"US/Central\",\n \"baseBranches\": [\n \"main\"\n ]\n}\n" } From a75f9d71c11bc4105cc71266554998894ef12519 Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Sat, 28 Jan 2023 08:52:05 +0100 Subject: [PATCH 094/228] feat(config)!: non-zero defaults for PR concurrent, hourly limits (#19958) Sets new defaults: - `prConcurrentLimit`: 10 (instead of 0) - `prHourlyLimit`: 2 (instead of 0) Closes #19800 BREAKING CHANGE: Renovate now defaults to applying hourly and concurrent PR limits. To revert to unlimited, configure them back to `0`. --- lib/config/options/index.ts | 8 ++++---- lib/config/presets/index.spec.ts | 2 -- lib/config/presets/internal/config.ts | 2 -- lib/modules/platform/codecommit/index.md | 1 - lib/workers/repository/process/limits.spec.ts | 18 ++++++++++-------- 5 files changed, 14 insertions(+), 17 deletions(-) diff --git a/lib/config/options/index.ts b/lib/config/options/index.ts index 5239b8d3ac68c3..9465b24c8fd8c7 100644 --- a/lib/config/options/index.ts +++ b/lib/config/options/index.ts @@ -1581,16 +1581,16 @@ const options: RenovateOptions[] = [ { name: 'prHourlyLimit', description: - 'Rate limit PRs to maximum x created per hour. 0 (default) means no limit.', + 'Rate limit PRs to maximum x created per hour. 0 means no limit.', type: 'integer', - default: 0, // no limit + default: 2, }, { name: 'prConcurrentLimit', description: - 'Limit to a maximum of x concurrent branches/PRs. 0 (default) means no limit.', + 'Limit to a maximum of x concurrent branches/PRs. 0 means no limit.', type: 'integer', - default: 0, // no limit + default: 10, }, { name: 'branchConcurrentLimit', diff --git a/lib/config/presets/index.spec.ts b/lib/config/presets/index.spec.ts index 3bf5d5fffb5c49..92784b5a581251 100644 --- a/lib/config/presets/index.spec.ts +++ b/lib/config/presets/index.spec.ts @@ -839,8 +839,6 @@ describe('config/presets/index', () => { ':dependencyDashboard', ':semanticPrefixFixDepsChoreOthers', ':ignoreModulesAndTests', - ':prHourlyLimit2', - ':prConcurrentLimit10', 'group:monorepos', 'group:recommended', 'workarounds:all', diff --git a/lib/config/presets/internal/config.ts b/lib/config/presets/internal/config.ts index 355135deaa0727..040c102aae93c5 100644 --- a/lib/config/presets/internal/config.ts +++ b/lib/config/presets/internal/config.ts @@ -9,8 +9,6 @@ export const presets: Record = { ':dependencyDashboard', ':semanticPrefixFixDepsChoreOthers', ':ignoreModulesAndTests', - ':prHourlyLimit2', - ':prConcurrentLimit10', 'group:monorepos', 'group:recommended', 'workarounds:all', diff --git a/lib/modules/platform/codecommit/index.md b/lib/modules/platform/codecommit/index.md index 3ce6026ab4b6d7..6e54fbf819a5d5 100644 --- a/lib/modules/platform/codecommit/index.md +++ b/lib/modules/platform/codecommit/index.md @@ -133,7 +133,6 @@ module.exports = { password: 'SECRET_ACCESS_KEY_GOES_HERE', token: 'AWS_SESSION_TOKEN_GOES_HERE', gitAuthor: 'your_email@domain', - prConcurrentLimit: 10, packageRules: [ { matchPackageNames: ['package_name', 'package_name2'], diff --git a/lib/workers/repository/process/limits.spec.ts b/lib/workers/repository/process/limits.spec.ts index 2b8feb28536ece..4e09fb513daee0 100644 --- a/lib/workers/repository/process/limits.spec.ts +++ b/lib/workers/repository/process/limits.spec.ts @@ -41,13 +41,14 @@ describe('workers/repository/process/limits', () => { }); it('returns prHourlyLimit if errored', async () => { - config.prHourlyLimit = 2; + config.prHourlyLimit = 5; platform.getPrList.mockRejectedValue('Unknown error'); const res = await limits.getPrHourlyRemaining(config); - expect(res).toBe(2); + expect(res).toBe(5); }); it('returns 99 if no hourly limit', async () => { + config.prHourlyLimit = 0; const res = await limits.getPrHourlyRemaining(config); expect(res).toBe(99); }); @@ -73,6 +74,7 @@ describe('workers/repository/process/limits', () => { }); it('returns 99 if no concurrent limit', async () => { + config.prConcurrentLimit = 0; const res = await limits.getConcurrentPrsRemaining(config, []); expect(res).toBe(99); }); @@ -80,16 +82,16 @@ describe('workers/repository/process/limits', () => { describe('getPrsRemaining()', () => { it('returns hourly limit', async () => { - config.prHourlyLimit = 5; + config.prHourlyLimit = 1; platform.getPrList.mockResolvedValueOnce([]); const res = await limits.getPrsRemaining(config, []); - expect(res).toBe(5); + expect(res).toBe(1); }); it('returns concurrent limit', async () => { - config.prConcurrentLimit = 5; + config.prConcurrentLimit = 1; const res = await limits.getPrsRemaining(config, []); - expect(res).toBe(5); + expect(res).toBe(1); }); }); @@ -120,9 +122,9 @@ describe('workers/repository/process/limits', () => { expect(res).toBe(99); }); - it('returns 99 if no limits are set', async () => { + it('returns 10 if no limits are set', async () => { const res = await limits.getConcurrentBranchesRemaining(config, []); - expect(res).toBe(99); + expect(res).toBe(10); }); it('returns prConcurrentLimit if errored', async () => { From d28763fa01632234d3fce20b9798a667cf45ee6b Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Sat, 28 Jan 2023 11:41:52 +0100 Subject: [PATCH 095/228] feat(datasource/npm): default cacheHardTtlMinutes to 24 hours (#20079) Renovate will now use "soft" expiry of npm datasource lookups, combined with a hard expiry of 24 hours. Soft expired results are used to improve performance plus can be reused in case npmjs errors on subsequent lookups BREAKING CHANGE: Package cache will include entries for up to 24 hours after the last lookup. Set cacheHardTtlMinutes=0 to revert to existing behavior. --- lib/config/options/index.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/config/options/index.ts b/lib/config/options/index.ts index 9465b24c8fd8c7..dc6b4c33395991 100644 --- a/lib/config/options/index.ts +++ b/lib/config/options/index.ts @@ -2258,9 +2258,8 @@ const options: RenovateOptions[] = [ 'Maximum duration in minutes to keep datasource cache entries.', type: 'integer', stage: 'repository', - default: 0, + default: 24 * 60, globalOnly: true, - experimental: true, }, { name: 'prBodyDefinitions', From d92e19437a2b0953d457a52f36aba0a2b6e08066 Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Sun, 29 Jan 2023 07:11:52 +0100 Subject: [PATCH 096/228] feat(go)!: default GOPROXY (#20081) Set default GOPROXY value to match `go`'s own default. Closes #20040 BREAKING CHANGE: Renovate will now use go's default `GOPROXY` settings. To avoid using the public proxy, configure `GOPROXY=direct`. --- lib/modules/datasource/go/index.spec.ts | 17 +----------- lib/modules/datasource/go/index.ts | 4 +-- lib/modules/datasource/go/readme.md | 5 ++++ .../datasource/go/releases-goproxy.spec.ts | 26 +++++++++++++++++-- lib/modules/datasource/go/releases-goproxy.ts | 6 +++-- 5 files changed, 35 insertions(+), 23 deletions(-) create mode 100644 lib/modules/datasource/go/readme.md diff --git a/lib/modules/datasource/go/index.spec.ts b/lib/modules/datasource/go/index.spec.ts index 170c1774e6a697..ab23fe6909d00b 100644 --- a/lib/modules/datasource/go/index.spec.ts +++ b/lib/modules/datasource/go/index.spec.ts @@ -53,25 +53,10 @@ describe('modules/datasource/go/index', () => { delete process.env.GOPROXY; }); - it('fetches release info directly from VCS', async () => { - const expected = { releases: [{ version: '0.0.1' }] }; - getReleasesProxyMock.mockResolvedValue(null); - getReleasesDirectMock.mockResolvedValue(expected); - - const res = await datasource.getReleases({ - packageName: 'golang.org/foo/bar', - }); - - expect(res).toBe(expected); - expect(getReleasesProxyMock).not.toHaveBeenCalled(); - expect(getReleasesDirectMock).toHaveBeenCalled(); - }); - - it('supports GOPROXY', async () => { + it('fetches releases', async () => { const expected = { releases: [{ version: '0.0.1' }] }; getReleasesProxyMock.mockResolvedValue(expected); getReleasesDirectMock.mockResolvedValue(null); - process.env.GOPROXY = 'https://proxy.golang.org,direct'; const res = await datasource.getReleases({ packageName: 'golang.org/foo/bar', diff --git a/lib/modules/datasource/go/index.ts b/lib/modules/datasource/go/index.ts index 6bd4934a63d1e0..89fcff28f1802c 100644 --- a/lib/modules/datasource/go/index.ts +++ b/lib/modules/datasource/go/index.ts @@ -36,9 +36,7 @@ export class GoDatasource extends Datasource { key: ({ packageName }: Partial) => `${packageName}-digest`, }) getReleases(config: GetReleasesConfig): Promise { - return process.env.GOPROXY - ? this.goproxy.getReleases(config) - : this.direct.getReleases(config); + return this.goproxy.getReleases(config); } /** diff --git a/lib/modules/datasource/go/readme.md b/lib/modules/datasource/go/readme.md new file mode 100644 index 00000000000000..1546b270d1796c --- /dev/null +++ b/lib/modules/datasource/go/readme.md @@ -0,0 +1,5 @@ +This datasource will default to using the `GOPROXY` settings `https://proxy.golang.org,direct` if there is no value defined in environment variables. + +To override this default and use a different proxy, simply configure `GOPROXY` to an alternative setting in env. + +To override this default and stop using any proxy at all, set `GOPROXY` to the value `direct`. diff --git a/lib/modules/datasource/go/releases-goproxy.spec.ts b/lib/modules/datasource/go/releases-goproxy.spec.ts index 4cbc7aa852300c..55250e597fadb4 100644 --- a/lib/modules/datasource/go/releases-goproxy.spec.ts +++ b/lib/modules/datasource/go/releases-goproxy.spec.ts @@ -285,6 +285,30 @@ describe('modules/datasource/go/releases-goproxy', () => { delete process.env.GOINSECURE; }); + it('handles direct', async () => { + process.env.GOPROXY = 'direct'; + + githubGetTags.mockResolvedValueOnce({ + releases: [ + { gitRef: 'v1.0.0', version: 'v1.0.0' }, + { gitRef: 'v1.0.1', version: 'v1.0.1' }, + ], + }); + githubGetReleases.mockResolvedValueOnce({ releases: [] }); + + const res = await datasource.getReleases({ + packageName: 'github.com/google/btree', + }); + + expect(res).toEqual({ + releases: [ + { gitRef: 'v1.0.0', version: 'v1.0.0' }, + { gitRef: 'v1.0.1', version: 'v1.0.1' }, + ], + sourceUrl: 'https://github.com/google/btree', + }); + }); + it('skips GONOPROXY and GOPRIVATE packages', async () => { process.env.GOPROXY = baseUrl; process.env.GOPRIVATE = 'github.com/google/*'; @@ -311,8 +335,6 @@ describe('modules/datasource/go/releases-goproxy', () => { }); it('fetches release data from goproxy', async () => { - process.env.GOPROXY = baseUrl; - httpMock .scope(`${baseUrl}/github.com/google/btree`) .get('/@v/list') diff --git a/lib/modules/datasource/go/releases-goproxy.ts b/lib/modules/datasource/go/releases-goproxy.ts index 000d2473e4ffbd..c3dd78d1608cbf 100644 --- a/lib/modules/datasource/go/releases-goproxy.ts +++ b/lib/modules/datasource/go/releases-goproxy.ts @@ -32,8 +32,10 @@ export class GoProxyDatasource extends Datasource { async getReleases(config: GetReleasesConfig): Promise { const { packageName } = config; logger.trace(`goproxy.getReleases(${packageName})`); - - const goproxy = process.env.GOPROXY; + const goproxy = process.env.GOPROXY ?? 'https://proxy.golang.org,direct'; + if (goproxy === 'direct') { + return this.direct.getReleases(config); + } const proxyList = this.parseGoproxy(goproxy); const noproxy = GoProxyDatasource.parseNoproxy(); From b6ed33ec012d13d814f7a27df4d620cb57c5ad40 Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Mon, 30 Jan 2023 07:37:24 +0100 Subject: [PATCH 097/228] =?UTF-8?q?fix(regex):=20don=E2=80=99t=20escape=20?= =?UTF-8?q?forward=20slash=20in=20fileMatch=20(#19314)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This cleanup of default `fileMatch` values should be backwards compatible. --- docs/usage/configuration-options.md | 4 ++-- lib/config/options/index.ts | 2 +- lib/config/presets/internal/group.ts | 2 +- lib/config/presets/internal/monorepo.ts | 2 +- lib/modules/datasource/deno/index.ts | 2 +- lib/modules/datasource/go/releases-goproxy.ts | 4 ++-- lib/modules/datasource/hermit/index.ts | 2 +- lib/modules/datasource/maven/index.ts | 2 +- lib/modules/datasource/pypi/common.ts | 2 +- lib/modules/manager/bazelisk/index.ts | 2 +- lib/modules/manager/cocoapods/extract.ts | 2 +- lib/modules/manager/flux/common.ts | 2 +- lib/modules/manager/fvm/index.ts | 2 +- lib/modules/manager/github-actions/index.ts | 4 ++-- lib/modules/manager/gitlabci/utils.ts | 2 +- lib/modules/manager/gradle/index.ts | 8 ++++---- lib/modules/manager/mint/index.ts | 2 +- lib/modules/manager/nix/index.ts | 2 +- lib/modules/manager/nuget/index.ts | 4 ++-- lib/modules/manager/pre-commit/extract.ts | 2 +- lib/modules/manager/puppet/index.ts | 2 +- lib/modules/manager/regex/readme.md | 4 ++-- lib/modules/manager/terraform/lockfile/hash.ts | 2 +- lib/modules/manager/terraform/lockfile/util.ts | 2 +- lib/modules/manager/woodpecker/index.ts | 2 +- lib/modules/versioning/kubernetes-api/index.ts | 2 +- lib/util/modules.ts | 5 ++--- .../repository/update/pr/changelog/release-notes.ts | 4 ++-- 28 files changed, 38 insertions(+), 39 deletions(-) diff --git a/docs/usage/configuration-options.md b/docs/usage/configuration-options.md index 1e86f6a1062a08..2f27ba582f733c 100644 --- a/docs/usage/configuration-options.md +++ b/docs/usage/configuration-options.md @@ -1809,7 +1809,7 @@ This field also supports Regular Expressions if they begin and end with `/`. e.g { "packageRules": [ { - "matchBaseBranches": ["/^release\\/.*/"], + "matchBaseBranches": ["/^release/.*/"], "excludePackagePatterns": ["^eslint"], "enabled": false } @@ -2782,7 +2782,7 @@ regex definition: { "fileMatch": ["values.yaml$"], "matchStrings": [ - "image:\\s+(?my\\.old\\.registry\\/aRepository\\/andImage):(?[^\\s]+)" + "image:\\s+(?my\\.old\\.registry/aRepository/andImage):(?[^\\s]+)" ], "depNameTemplate": "my.new.registry/aRepository/andImage", "autoReplaceStringTemplate": "image: {{{depName}}}:{{{newValue}}}", diff --git a/lib/config/options/index.ts b/lib/config/options/index.ts index dc6b4c33395991..e062c7f02ee02a 100644 --- a/lib/config/options/index.ts +++ b/lib/config/options/index.ts @@ -962,7 +962,7 @@ const options: RenovateOptions[] = [ { name: 'matchBaseBranches', description: - 'List of strings containing exact matches (e.g. `["main"]`) and/or regex expressions (e.g. `["/^release\\/.*/"]`). Valid only within a `packageRules` object.', + 'List of strings containing exact matches (e.g. `["main"]`) and/or regex expressions (e.g. `["/^release/.*/"]`). Valid only within a `packageRules` object.', type: 'array', subType: 'string', allowString: true, diff --git a/lib/config/presets/internal/group.ts b/lib/config/presets/internal/group.ts index 18a9bf8d2f68f8..4e4d71da789ad3 100644 --- a/lib/config/presets/internal/group.ts +++ b/lib/config/presets/internal/group.ts @@ -314,7 +314,7 @@ const staticGroups = { { groupName: 'PHPStan packages', matchDatasources: ['packagist'], - matchPackagePatterns: ['^phpstan\\/phpstan$', '\\/phpstan-'], + matchPackagePatterns: ['^phpstan/phpstan$', '/phpstan-'], }, ], }, diff --git a/lib/config/presets/internal/monorepo.ts b/lib/config/presets/internal/monorepo.ts index a471cdfbce0ce7..930bf6a3f73ee2 100644 --- a/lib/config/presets/internal/monorepo.ts +++ b/lib/config/presets/internal/monorepo.ts @@ -270,7 +270,7 @@ const patternGroups = { clarity: ['^@cds/', '^@clr/'], embroider: '^@embroider/', fullcalendar: '^@fullcalendar/', - spfx: ['^@microsoft\\/sp-', '^@microsoft\\/eslint-.+-spfx$'], + spfx: ['^@microsoft/sp-', '^@microsoft/eslint-.+-spfx$'], spock: '^org\\.spockframework:spock-', 'syncfusion-dotnet': '^Syncfusion\\.', wordpress: '^@wordpress/', diff --git a/lib/modules/datasource/deno/index.ts b/lib/modules/datasource/deno/index.ts index 1568c1d5cd8234..81b42542b57e2d 100644 --- a/lib/modules/datasource/deno/index.ts +++ b/lib/modules/datasource/deno/index.ts @@ -45,7 +45,7 @@ export class DenoDatasource extends Datasource { const massagedRegistryUrl = registryUrl!; const extractResult = regEx( - '^(https:\\/\\/deno.land\\/)(?[^@\\s]+)' + '^(https://deno.land/)(?[^@\\s]+)' ).exec(packageName); const rawPackageName = extractResult?.groups?.rawPackageName; if (is.nullOrUndefined(rawPackageName)) { diff --git a/lib/modules/datasource/go/releases-goproxy.ts b/lib/modules/datasource/go/releases-goproxy.ts index c3dd78d1608cbf..a541c06c2872b3 100644 --- a/lib/modules/datasource/go/releases-goproxy.ts +++ b/lib/modules/datasource/go/releases-goproxy.ts @@ -161,11 +161,11 @@ export class GoProxyDatasource extends Datasource { }, asterisk: { match: '*', - value: (_: string) => '[^\\/]*', + value: (_: string) => '[^/]*', }, qmark: { match: '?', - value: (_: string) => '[^\\/]', + value: (_: string) => '[^/]', }, characterRangeOpen: { match: '[', diff --git a/lib/modules/datasource/hermit/index.ts b/lib/modules/datasource/hermit/index.ts index f2015d3385674b..cb95421f5fe3f7 100644 --- a/lib/modules/datasource/hermit/index.ts +++ b/lib/modules/datasource/hermit/index.ts @@ -34,7 +34,7 @@ export class HermitDatasource extends Datasource { constructor() { super(HermitDatasource.id); this.http = new GithubHttp(id); - this.pathRegex = regEx('^\\/(?[^/]+)\\/(?[^/]+)$'); + this.pathRegex = regEx('^/(?[^/]+)/(?[^/]+)$'); } @cache({ diff --git a/lib/modules/datasource/maven/index.ts b/lib/modules/datasource/maven/index.ts index 19e327ec7dd365..a257edfcdeb526 100644 --- a/lib/modules/datasource/maven/index.ts +++ b/lib/modules/datasource/maven/index.ts @@ -53,7 +53,7 @@ function extractVersions(metadata: XmlDocument): string[] { } const mavenCentralHtmlVersionRegex = regEx( - '^(?:[^"]+)\\/<\\/a>\\s+(?\\d\\d\\d\\d-\\d\\d-\\d\\d \\d\\d:\\d\\d)\\s+-$', + '^(?:[^"]+)/\\s+(?\\d\\d\\d\\d-\\d\\d-\\d\\d \\d\\d:\\d\\d)\\s+-$', 'i' ); diff --git a/lib/modules/datasource/pypi/common.ts b/lib/modules/datasource/pypi/common.ts index 50310011e54b8f..ea46fddcc7530f 100644 --- a/lib/modules/datasource/pypi/common.ts +++ b/lib/modules/datasource/pypi/common.ts @@ -1,6 +1,6 @@ import { regEx } from '../../../util/regex'; -const githubRepoPattern = regEx(/^https?:\/\/github\.com\/[^\\/]+\/[^\\/]+$/); +const githubRepoPattern = regEx(/^https?:\/\/github\.com\/[^/]+\/[^/]+$/); export function isGitHubRepo(url: string): boolean { return !url.includes('sponsors') && githubRepoPattern.test(url); diff --git a/lib/modules/manager/bazelisk/index.ts b/lib/modules/manager/bazelisk/index.ts index 345989e1b4c99a..350125b3b3a06c 100644 --- a/lib/modules/manager/bazelisk/index.ts +++ b/lib/modules/manager/bazelisk/index.ts @@ -3,7 +3,7 @@ import { GithubReleasesDatasource } from '../../datasource/github-releases'; export { extractPackageFile } from './extract'; export const defaultConfig = { - fileMatch: ['(^|\\/)\\.bazelversion$'], + fileMatch: ['(^|/)\\.bazelversion$'], pinDigests: false, }; diff --git a/lib/modules/manager/cocoapods/extract.ts b/lib/modules/manager/cocoapods/extract.ts index e251df745da8ab..ddb17826e75413 100644 --- a/lib/modules/manager/cocoapods/extract.ts +++ b/lib/modules/manager/cocoapods/extract.ts @@ -9,7 +9,7 @@ import type { PackageDependency, PackageFileContent } from '../types'; import type { ParsedLine } from './types'; const regexMappings = [ - regEx(`^\\s*pod\\s+(['"])(?[^'"/]+)(\\/(?[^'"]+))?(['"])`), + regEx(`^\\s*pod\\s+(['"])(?[^'"/]+)(/(?[^'"]+))?(['"])`), regEx( `^\\s*pod\\s+(['"])[^'"]+(['"])\\s*,\\s*(['"])(?[^'"]+)(['"])\\s*$` ), diff --git a/lib/modules/manager/flux/common.ts b/lib/modules/manager/flux/common.ts index 320e7b9f31b92b..3d9b97896f1128 100644 --- a/lib/modules/manager/flux/common.ts +++ b/lib/modules/manager/flux/common.ts @@ -1,7 +1,7 @@ import { regEx } from '../../../util/regex'; export const systemManifestRegex = - '(^|\\/)flux-system\\/(?:.+\\/)?gotk-components\\.yaml$'; + '(^|/)flux-system/(?:.+/)?gotk-components\\.yaml$'; export function isSystemManifest(file: string): boolean { return regEx(systemManifestRegex).test(file); diff --git a/lib/modules/manager/fvm/index.ts b/lib/modules/manager/fvm/index.ts index 68b30f31387696..ebb67637e31e32 100644 --- a/lib/modules/manager/fvm/index.ts +++ b/lib/modules/manager/fvm/index.ts @@ -6,6 +6,6 @@ export { extractPackageFile } from './extract'; export const supportedDatasources = [FlutterVersionDatasource.id]; export const defaultConfig = { - fileMatch: ['(^|\\/)\\.fvm\\/fvm_config\\.json$'], + fileMatch: ['(^|/)\\.fvm/fvm_config\\.json$'], versioning: semverVersioning.id, }; diff --git a/lib/modules/manager/github-actions/index.ts b/lib/modules/manager/github-actions/index.ts index 8d6dc9282c5561..c2d7ad80bb6e42 100644 --- a/lib/modules/manager/github-actions/index.ts +++ b/lib/modules/manager/github-actions/index.ts @@ -4,8 +4,8 @@ export { extractPackageFile } from './extract'; export const defaultConfig = { fileMatch: [ - '^(workflow-templates|\\.github\\/workflows)\\/[^/]+\\.ya?ml$', - '(^|\\/)action\\.ya?ml$', + '^(workflow-templates|\\.github/workflows)/[^/]+\\.ya?ml$', + '(^|/)action\\.ya?ml$', ], }; diff --git a/lib/modules/manager/gitlabci/utils.ts b/lib/modules/manager/gitlabci/utils.ts index d8afde40bae366..15f094742b1282 100644 --- a/lib/modules/manager/gitlabci/utils.ts +++ b/lib/modules/manager/gitlabci/utils.ts @@ -16,7 +16,7 @@ export function replaceReferenceTags(content: string): string { } const depProxyRe = regEx( - `(?\\$\\{?CI_DEPENDENCY_PROXY_(?:DIRECT_)?GROUP_IMAGE_PREFIX\\}?\\/)(?.+)` + `(?\\$\\{?CI_DEPENDENCY_PROXY_(?:DIRECT_)?GROUP_IMAGE_PREFIX\\}?/)(?.+)` ); /** diff --git a/lib/modules/manager/gradle/index.ts b/lib/modules/manager/gradle/index.ts index bb0ce8edd10c74..ad83ff7f60ba5d 100644 --- a/lib/modules/manager/gradle/index.ts +++ b/lib/modules/manager/gradle/index.ts @@ -12,12 +12,12 @@ export const supportsLockFileMaintenance = true; export const defaultConfig = { fileMatch: [ '\\.gradle(\\.kts)?$', - '(^|\\/)gradle\\.properties$', - '(^|\\/)gradle\\/.+\\.toml$', + '(^|/)gradle\\.properties$', + '(^|/)gradle/.+\\.toml$', '\\.versions\\.toml$', // The two below is for gradle-consistent-versions plugin - `(^|\\/)versions.props$`, - `(^|\\/)versions.lock$`, + `(^|/)versions.props$`, + `(^|/)versions.lock$`, ], timeout: 600, versioning: gradleVersioning.id, diff --git a/lib/modules/manager/mint/index.ts b/lib/modules/manager/mint/index.ts index 34ac5845807e30..fffd5aadb1ddf5 100644 --- a/lib/modules/manager/mint/index.ts +++ b/lib/modules/manager/mint/index.ts @@ -8,5 +8,5 @@ export { extractPackageFile } from './extract'; export const supportedDatasources = [GitTagsDatasource.id]; export const defaultConfig = { - fileMatch: ['(^|\\/)Mintfile$'], + fileMatch: ['(^|/)Mintfile$'], }; diff --git a/lib/modules/manager/nix/index.ts b/lib/modules/manager/nix/index.ts index 58b43af4843689..7cdfa48cdeb1bd 100644 --- a/lib/modules/manager/nix/index.ts +++ b/lib/modules/manager/nix/index.ts @@ -6,7 +6,7 @@ export { updateArtifacts } from './artifacts'; export const supportsLockFileMaintenance = true; export const defaultConfig = { - fileMatch: ['(^|\\/)flake\\.nix$'], + fileMatch: ['(^|/)flake\\.nix$'], commitMessageTopic: 'nixpkgs', commitMessageExtra: 'to {{newValue}}', enabled: false, diff --git a/lib/modules/manager/nuget/index.ts b/lib/modules/manager/nuget/index.ts index 8f2a3253eb924f..c34ca3a67d8e78 100644 --- a/lib/modules/manager/nuget/index.ts +++ b/lib/modules/manager/nuget/index.ts @@ -12,8 +12,8 @@ export const defaultConfig = { fileMatch: [ '\\.(?:cs|fs|vb)proj$', '\\.(?:props|targets)$', - '(^|\\/)dotnet-tools\\.json$', - '(^|\\/)global\\.json$', + '(^|/)dotnet-tools\\.json$', + '(^|/)global\\.json$', ], }; diff --git a/lib/modules/manager/pre-commit/extract.ts b/lib/modules/manager/pre-commit/extract.ts index f7450cf713e9a8..7c9fba7561835f 100644 --- a/lib/modules/manager/pre-commit/extract.ts +++ b/lib/modules/manager/pre-commit/extract.ts @@ -83,7 +83,7 @@ function extractDependency( const urlMatchers = [ // This splits "http://my.github.com/user/repo" -> "my.github.com" "user/repo - regEx('^https?:\\/\\/(?[^\\/]+)\\/(?\\S*)'), + regEx('^https?://(?[^/]+)/(?\\S*)'), // This splits "git@private.registry.com:user/repo" -> "private.registry.com" "user/repo regEx('^git@(?[^:]+):(?\\S*)'), // This split "git://github.com/pre-commit/pre-commit-hooks" -> "github.com" "pre-commit/pre-commit-hooks" diff --git a/lib/modules/manager/puppet/index.ts b/lib/modules/manager/puppet/index.ts index 8743d2d408cfde..2b0735bb4c4c93 100644 --- a/lib/modules/manager/puppet/index.ts +++ b/lib/modules/manager/puppet/index.ts @@ -8,7 +8,7 @@ export { extractPackageFile } from './extract'; export const language: ProgrammingLanguage = 'ruby'; export const defaultConfig = { - fileMatch: ['(^|\\/)Puppetfile$'], + fileMatch: ['(^|/)Puppetfile$'], }; export const supportedDatasources = [ diff --git a/lib/modules/manager/regex/readme.md b/lib/modules/manager/regex/readme.md index a4a0ab618557b4..3adba3802f81bc 100644 --- a/lib/modules/manager/regex/readme.md +++ b/lib/modules/manager/regex/readme.md @@ -180,8 +180,8 @@ For example: "fileMatch": [".*y[a]?ml$"], "matchStringsStrategy": "combination", "matchStrings": [ - "['\"]?(?/pipeline-fragments\\/fragment-version-check)['\"]?\\s*ref:\\s['\"]?(?[\\d-]*)['\"]?", - "['\"]?(?pipeline-solutions\\/gitlab\\/fragments\\/fragment-version-check)['\"]?\\s*ref:\\s['\"]?(?[\\d-]*)['\"]?" + "['\"]?(?/pipeline-fragments/fragment-version-check)['\"]?\\s*ref:\\s['\"]?(?[\\d-]*)['\"]?", + "['\"]?(?pipeline-solutions/gitlab/fragments/fragment-version-check)['\"]?\\s*ref:\\s['\"]?(?[\\d-]*)['\"]?" ], "depNameTemplate": "pipeline-solutions/gitlab/fragments/fragment-version-check", "autoReplaceStringTemplate": "'{{{depName}}}'\n ref: {{{newValue}}}", diff --git a/lib/modules/manager/terraform/lockfile/hash.ts b/lib/modules/manager/terraform/lockfile/hash.ts index d3b37571630a2d..25afff41e2abef 100644 --- a/lib/modules/manager/terraform/lockfile/hash.ts +++ b/lib/modules/manager/terraform/lockfile/hash.ts @@ -32,7 +32,7 @@ export class TerraformProviderHash { // add double space, the filename and a new line char rootHash.update(' '); - const fileName = file.replace(regEx(/^.*[\\/]/), ''); + const fileName = file.replace(regEx(/^.*[/]/), ''); rootHash.update(fileName); rootHash.update('\n'); } diff --git a/lib/modules/manager/terraform/lockfile/util.ts b/lib/modules/manager/terraform/lockfile/util.ts index 774be9e7284914..2f59bb1e566722 100644 --- a/lib/modules/manager/terraform/lockfile/util.ts +++ b/lib/modules/manager/terraform/lockfile/util.ts @@ -10,7 +10,7 @@ import type { } from './types'; const providerStartLineRegex = regEx( - `^provider "(?[^/]*)\\/(?[^/]*)\\/(?[^/]*)"` + `^provider "(?[^/]*)/(?[^/]*)/(?[^/]*)"` ); const versionLineRegex = regEx( `^(?[\\s]*version[\\s]*=[\\s]*")(?[^"']+)(?".*)$` diff --git a/lib/modules/manager/woodpecker/index.ts b/lib/modules/manager/woodpecker/index.ts index aa823a82e0621e..07a0c38a5c7702 100644 --- a/lib/modules/manager/woodpecker/index.ts +++ b/lib/modules/manager/woodpecker/index.ts @@ -7,7 +7,7 @@ export const language: ProgrammingLanguage = 'docker'; export { extractPackageFile }; export const defaultConfig = { - fileMatch: ['^\\.woodpecker(?:\\/[^/]+)?\\.ya?ml$'], + fileMatch: ['^\\.woodpecker(?:/[^/]+)?\\.ya?ml$'], }; export const supportedDatasources = [DockerDatasource.id]; diff --git a/lib/modules/versioning/kubernetes-api/index.ts b/lib/modules/versioning/kubernetes-api/index.ts index c620991813d0fb..afcdf95438da3b 100644 --- a/lib/modules/versioning/kubernetes-api/index.ts +++ b/lib/modules/versioning/kubernetes-api/index.ts @@ -10,7 +10,7 @@ export const supportsRanges = false; export class KubernetesApiVersioningApi extends RegExpVersioningApi { private static readonly versionRegex = - '^(?:(?\\S+)\\/)?v(?\\d+)(?(?:alpha|beta)\\d+)?$'; + '^(?:(?\\S+)/)?v(?\\d+)(?(?:alpha|beta)\\d+)?$'; public constructor() { super(KubernetesApiVersioningApi.versionRegex); diff --git a/lib/util/modules.ts b/lib/util/modules.ts index e0bc3596cc0bf4..f0c6d4991335b3 100644 --- a/lib/util/modules.ts +++ b/lib/util/modules.ts @@ -1,10 +1,9 @@ import fs from 'fs'; import upath from 'upath'; -import { regEx } from './regex'; function relatePath(here: string, there: string): string { - const thereParts = upath.normalizeTrim(there).split(regEx(/[\\/]/)); - const hereParts = upath.normalizeTrim(here).split(regEx(/[\\/]/)); + const thereParts = upath.normalizeTrim(there).split('/'); + const hereParts = upath.normalizeTrim(here).split('/'); let idx = 0; while ( diff --git a/lib/workers/repository/update/pr/changelog/release-notes.ts b/lib/workers/repository/update/pr/changelog/release-notes.ts index 31446797c7c0f7..2cb7d2fbae582f 100644 --- a/lib/workers/repository/update/pr/changelog/release-notes.ts +++ b/lib/workers/repository/update/pr/changelog/release-notes.ts @@ -82,7 +82,7 @@ export function massageBody( body = body.replace(regEx(/^<\/a>\n/), ''); body = body.replace( regEx( - `^##? \\[[^\\]]*\\]\\(${baseUrl}[^/]*\\/[^/]*\\/compare\\/.*?\\n`, + `^##? \\[[^\\]]*\\]\\(${baseUrl}[^/]*/[^/]*/compare/.*?\\n`, undefined, false ), @@ -90,7 +90,7 @@ export function massageBody( ); // Clean-up unnecessary commits link body = `\n${body}\n`.replace( - regEx(`\\n${baseUrl}[^/]+\\/[^/]+\\/compare\\/[^\\n]+(\\n|$)`), + regEx(`\\n${baseUrl}[^/]+/[^/]+/compare/[^\\n]+(\\n|$)`), '\n' ); // Reduce headings size From 222cda6058ff36446f515dd3d249033305705946 Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Wed, 1 Feb 2023 12:48:43 +0100 Subject: [PATCH 098/228] feat(cache): file cache cleanup (#20061) Checks file cache for expired items at the end of a run. Non-breaking change but it may result in some long cleanup jobs for any bots which have been left to populate their package cache for a long time. Closes #13732 --- lib/util/cache/package/file.spec.ts | 13 +++++++++- lib/util/cache/package/file.ts | 37 ++++++++++++++++++++++++++++- lib/util/cache/package/index.ts | 4 ++++ lib/util/cache/package/types.ts | 2 ++ 4 files changed, 54 insertions(+), 2 deletions(-) diff --git a/lib/util/cache/package/file.spec.ts b/lib/util/cache/package/file.spec.ts index bc15188900ceb9..f34ef5ee3fdf54 100644 --- a/lib/util/cache/package/file.spec.ts +++ b/lib/util/cache/package/file.spec.ts @@ -1,5 +1,6 @@ import os from 'os'; -import { get, init, set } from './file'; +import cacache from 'cacache'; +import { cleanup, get, init, set } from './file'; describe('util/cache/package/file', () => { it('returns if uninitiated', async () => { @@ -23,4 +24,14 @@ describe('util/cache/package/file', () => { await set('test', 'key', 1234, -5); expect(await get('test', 'key')).toBeUndefined(); }); + + it('cleans up', async () => { + const cacheFileName = init(os.tmpdir()); + await set('test', 'valid', 1234); + await set('test', 'expired', 1234, -5); + await cacache.put(cacheFileName, 'invalid', 'not json'); + await cleanup(); + const entries = await cacache.ls(cacheFileName); + expect(Object.keys(entries)).toEqual(['test-valid']); + }); }); diff --git a/lib/util/cache/package/file.ts b/lib/util/cache/package/file.ts index 4ed8baaea7a325..1415f8f2d83bed 100644 --- a/lib/util/cache/package/file.ts +++ b/lib/util/cache/package/file.ts @@ -64,7 +64,42 @@ export async function set( ); } -export function init(cacheDir: string): void { +export function init(cacheDir: string): string { cacheFileName = upath.join(cacheDir, '/renovate/renovate-cache-v1'); logger.debug('Initializing Renovate internal cache into ' + cacheFileName); + return cacheFileName; +} + +export async function cleanup(): Promise { + logger.debug('Checking file package cache for expired items'); + try { + let totalCount = 0; + let deletedCount = 0; + const startTime = Date.now(); + for await (const item of cacache.ls.stream(cacheFileName)) { + totalCount += 1; + const cachedItem = item as unknown as cacache.CacheObject; + const res = await cacache.get(cacheFileName, cachedItem.key); + let cachedValue: any; + try { + cachedValue = JSON.parse(res.data.toString()); + } catch (err) { + logger.debug('Error parsing cached value - deleting'); + } + if ( + !cachedValue || + (cachedValue?.expiry && + DateTime.local() > DateTime.fromISO(cachedValue.expiry)) + ) { + await cacache.rm.entry(cacheFileName, cachedItem.key); + deletedCount += 1; + } + } + const durationMs = Math.round(Date.now() - startTime); + logger.debug( + `Deleted ${deletedCount} of ${totalCount} file cached entries in ${durationMs}ms` + ); + } catch (err) /* istanbul ignore next */ { + logger.warn({ err }, 'Error cleaning up expired file cache'); + } } diff --git a/lib/util/cache/package/index.ts b/lib/util/cache/package/index.ts index 635ceea48d84aa..9cb48a05b271b2 100644 --- a/lib/util/cache/package/index.ts +++ b/lib/util/cache/package/index.ts @@ -65,6 +65,7 @@ export async function init(config: AllConfig): Promise { cacheProxy = { get: fileCache.get, set: fileCache.set, + cleanup: fileCache.cleanup, }; } } @@ -73,4 +74,7 @@ export async function cleanup(config: AllConfig): Promise { if (config?.redisUrl) { await redisCache.end(); } + if (cacheProxy.cleanup) { + await cacheProxy.cleanup(); + } } diff --git a/lib/util/cache/package/types.ts b/lib/util/cache/package/types.ts index 51fa8a0e7ca520..d345b6d4d2670f 100644 --- a/lib/util/cache/package/types.ts +++ b/lib/util/cache/package/types.ts @@ -7,4 +7,6 @@ export interface PackageCache { value: T, ttlMinutes?: number ): Promise; + + cleanup?(): Promise; } From ec4b17b8b64ba52e4bfafc1d4f50b8855d216f33 Mon Sep 17 00:00:00 2001 From: Michael Kriese Date: Wed, 1 Feb 2023 17:47:24 +0100 Subject: [PATCH 099/228] feat(config)!: default `dockerImagePrefix` to `containerbase` (#20150) Sidecar containers will now use `containerbase/` prefix instead of `renovate/` prefix. BREAKING CHANGE: containerbase/ account used for sidecar containers instead of renovate/ --- docs/usage/self-hosted-configuration.md | 12 ++++---- lib/config/options/index.ts | 2 +- lib/modules/manager/bundler/artifacts.spec.ts | 28 +++++++++---------- lib/modules/manager/cargo/artifacts.spec.ts | 4 +-- .../__snapshots__/artifacts.spec.ts.snap | 8 +++--- .../manager/cocoapods/artifacts.spec.ts | 4 +-- .../manager/composer/artifacts.spec.ts | 4 +-- lib/modules/manager/gomod/artifacts.spec.ts | 26 ++++++++--------- .../manager/gradle-wrapper/artifacts.spec.ts | 4 +-- lib/modules/manager/gradle/artifacts.spec.ts | 6 ++-- .../__snapshots__/artifacts.spec.ts.snap | 8 +++--- .../manager/maven-wrapper/artifacts.spec.ts | 4 +-- .../mix/__snapshots__/artifacts.spec.ts.snap | 6 ++-- lib/modules/manager/nix/artifacts.spec.ts | 8 +++--- .../manager/npm/post-update/lerna.spec.ts | 4 +-- .../manager/npm/post-update/npm.spec.ts | 4 +-- .../manager/npm/post-update/pnpm.spec.ts | 4 +-- .../manager/npm/post-update/yarn.spec.ts | 4 +-- lib/modules/manager/nuget/artifacts.spec.ts | 4 +-- .../manager/pip-compile/artifacts.spec.ts | 8 +++--- .../pip_requirements/artifacts.spec.ts | 4 +-- .../__snapshots__/artifacts.spec.ts.snap | 16 +++++------ lib/modules/manager/poetry/artifacts.spec.ts | 8 +++--- lib/modules/manager/pub/artifacts.spec.ts | 4 +-- lib/util/exec/docker/index.spec.ts | 2 +- lib/util/exec/docker/index.ts | 4 ++- lib/util/exec/index.spec.ts | 18 ++++++------ 27 files changed, 105 insertions(+), 103 deletions(-) diff --git a/docs/usage/self-hosted-configuration.md b/docs/usage/self-hosted-configuration.md index b0f0c940a32741..61a3b3a44a7551 100644 --- a/docs/usage/self-hosted-configuration.md +++ b/docs/usage/self-hosted-configuration.md @@ -302,9 +302,9 @@ You can skip the host part, and use just the datasource and credentials. Adds a custom prefix to the default Renovate sidecar Docker containers name and label. -For example, if you set `dockerChildPrefix=myprefix_` then the final container created from the `renovate/node` is: +For example, if you set `dockerChildPrefix=myprefix_` then the final container created from the `containerbase/sidecar` is: -- called `myprefix_node` instead of `renovate_node` +- called `myprefix_sidecar` instead of `renovate_sidecar` - labeled `myprefix_child` instead of `renovate_child` @@ -313,19 +313,19 @@ For example, if you set `dockerChildPrefix=myprefix_` then the final container c ## dockerImagePrefix -By default Renovate pulls the sidecar Docker containers from `docker.io/renovate`. +By default Renovate pulls the sidecar Docker containers from `docker.io/containerbase`. You can use the `dockerImagePrefix` option to override this default. -Say you want to pull your images from `ghcr.io/renovatebot`. +Say you want to pull your images from `ghcr.io/containerbase` to bypass Docker Hub limits. You would put this in your configuration file: ```json { - "dockerImagePrefix": "ghcr.io/renovatebot" + "dockerImagePrefix": "ghcr.io/containerbase" } ``` -If you pulled a new `node` image, the final image would be `ghcr.io/renovatebot/node` instead of `docker.io/renovate/node`. +Now when Renovate pulls a new `sidecar` image, the final image is `ghcr.io/containerbase/sidecar` instead of `docker.io/containerbase/sidecar`. ## dockerUser diff --git a/lib/config/options/index.ts b/lib/config/options/index.ts index e062c7f02ee02a..cfbe1b596ecb34 100644 --- a/lib/config/options/index.ts +++ b/lib/config/options/index.ts @@ -348,7 +348,7 @@ const options: RenovateOptions[] = [ description: 'Change this value to override the default Renovate Docker sidecar image name prefix.', type: 'string', - default: 'docker.io/renovate', + default: 'docker.io/containerbase', globalOnly: true, }, { diff --git a/lib/modules/manager/bundler/artifacts.spec.ts b/lib/modules/manager/bundler/artifacts.spec.ts index 7271c99dab2035..a2eab121cdc71f 100644 --- a/lib/modules/manager/bundler/artifacts.spec.ts +++ b/lib/modules/manager/bundler/artifacts.spec.ts @@ -280,7 +280,7 @@ describe('modules/manager/bundler/artifacts', () => { }) ).toEqual([updatedGemfileLock]); expect(execSnapshots).toMatchObject([ - { cmd: 'docker pull renovate/sidecar' }, + { cmd: 'docker pull containerbase/sidecar' }, { cmd: 'docker ps --filter name=renovate_sidecar -aq' }, { cmd: @@ -291,7 +291,7 @@ describe('modules/manager/bundler/artifacts', () => { '-e BUILDPACK_CACHE_DIR ' + '-e CONTAINERBASE_CACHE_DIR ' + '-w "/tmp/github/some/repo" ' + - 'renovate/sidecar' + + 'containerbase/sidecar' + ' bash -l -c "' + 'install-tool ruby 1.2.0' + ' && ' + @@ -340,7 +340,7 @@ describe('modules/manager/bundler/artifacts', () => { }) ).toEqual([updatedGemfileLock]); expect(execSnapshots).toMatchObject([ - { cmd: 'docker pull renovate/sidecar' }, + { cmd: 'docker pull containerbase/sidecar' }, { cmd: 'docker ps --filter name=renovate_sidecar -aq' }, { cmd: @@ -351,7 +351,7 @@ describe('modules/manager/bundler/artifacts', () => { '-e BUILDPACK_CACHE_DIR ' + '-e CONTAINERBASE_CACHE_DIR ' + '-w "/tmp/github/some/repo" ' + - 'renovate/sidecar' + + 'containerbase/sidecar' + ' bash -l -c "' + 'install-tool ruby 1.2.5' + ' && ' + @@ -402,7 +402,7 @@ describe('modules/manager/bundler/artifacts', () => { }) ).toEqual([updatedGemfileLock]); expect(execSnapshots).toMatchObject([ - { cmd: 'docker pull renovate/sidecar' }, + { cmd: 'docker pull containerbase/sidecar' }, { cmd: 'docker ps --filter name=renovate_sidecar -aq' }, { cmd: @@ -413,7 +413,7 @@ describe('modules/manager/bundler/artifacts', () => { '-e BUILDPACK_CACHE_DIR ' + '-e CONTAINERBASE_CACHE_DIR ' + '-w "/tmp/github/some/repo" ' + - 'renovate/sidecar' + + 'containerbase/sidecar' + ' bash -l -c "' + 'install-tool ruby 1.3.0' + ' && ' + @@ -463,7 +463,7 @@ describe('modules/manager/bundler/artifacts', () => { }) ).toEqual([updatedGemfileLock]); expect(execSnapshots).toMatchObject([ - { cmd: 'docker pull renovate/sidecar' }, + { cmd: 'docker pull containerbase/sidecar' }, { cmd: 'docker ps --filter name=renovate_sidecar -aq' }, { cmd: @@ -475,7 +475,7 @@ describe('modules/manager/bundler/artifacts', () => { '-e BUILDPACK_CACHE_DIR ' + '-e CONTAINERBASE_CACHE_DIR ' + '-w "/tmp/github/some/repo" ' + - 'renovate/sidecar' + + 'containerbase/sidecar' + ' bash -l -c "' + 'install-tool ruby 1.2.0' + ' && ' + @@ -534,7 +534,7 @@ describe('modules/manager/bundler/artifacts', () => { }) ).toEqual([updatedGemfileLock]); expect(execSnapshots).toMatchObject([ - { cmd: 'docker pull renovate/sidecar' }, + { cmd: 'docker pull containerbase/sidecar' }, { cmd: 'docker ps --filter name=renovate_sidecar -aq' }, { cmd: @@ -545,7 +545,7 @@ describe('modules/manager/bundler/artifacts', () => { '-e BUILDPACK_CACHE_DIR ' + '-e CONTAINERBASE_CACHE_DIR ' + '-w "/tmp/github/some/repo" ' + - 'renovate/sidecar' + + 'containerbase/sidecar' + ' bash -l -c "' + 'install-tool ruby 1.2.0' + ' && ' + @@ -606,7 +606,7 @@ describe('modules/manager/bundler/artifacts', () => { }) ).toEqual([updatedGemfileLock]); expect(execSnapshots).toMatchObject([ - { cmd: 'docker pull renovate/sidecar' }, + { cmd: 'docker pull containerbase/sidecar' }, { cmd: 'docker ps --filter name=renovate_sidecar -aq' }, { cmd: @@ -617,7 +617,7 @@ describe('modules/manager/bundler/artifacts', () => { '-e BUILDPACK_CACHE_DIR ' + '-e CONTAINERBASE_CACHE_DIR ' + '-w "/tmp/github/some/repo" ' + - 'renovate/sidecar' + + 'containerbase/sidecar' + ' bash -l -c "' + 'install-tool ruby 1.2.0' + ' && ' + @@ -677,7 +677,7 @@ describe('modules/manager/bundler/artifacts', () => { }) ).toEqual([updatedGemfileLock]); expect(execSnapshots).toMatchObject([ - { cmd: 'docker pull renovate/sidecar' }, + { cmd: 'docker pull containerbase/sidecar' }, { cmd: 'docker ps --filter name=renovate_sidecar -aq' }, { cmd: @@ -688,7 +688,7 @@ describe('modules/manager/bundler/artifacts', () => { '-e BUILDPACK_CACHE_DIR ' + '-e CONTAINERBASE_CACHE_DIR ' + '-w "/tmp/github/some/repo" ' + - 'renovate/sidecar' + + 'containerbase/sidecar' + ' bash -l -c "' + 'install-tool ruby 1.2.0' + ' && ' + diff --git a/lib/modules/manager/cargo/artifacts.spec.ts b/lib/modules/manager/cargo/artifacts.spec.ts index f7be45d07709d6..1ad6453f3c6331 100644 --- a/lib/modules/manager/cargo/artifacts.spec.ts +++ b/lib/modules/manager/cargo/artifacts.spec.ts @@ -210,7 +210,7 @@ describe('modules/manager/cargo/artifacts', () => { }, ]); expect(execSnapshots).toMatchObject([ - { cmd: 'docker pull renovate/sidecar' }, + { cmd: 'docker pull containerbase/sidecar' }, {}, { cmd: @@ -220,7 +220,7 @@ describe('modules/manager/cargo/artifacts', () => { '-e BUILDPACK_CACHE_DIR ' + '-e CONTAINERBASE_CACHE_DIR ' + '-w "/tmp/github/some/repo" ' + - 'renovate/sidecar ' + + 'containerbase/sidecar ' + 'bash -l -c "' + 'install-tool rust 1.65.0' + ' && ' + diff --git a/lib/modules/manager/cocoapods/__snapshots__/artifacts.spec.ts.snap b/lib/modules/manager/cocoapods/__snapshots__/artifacts.spec.ts.snap index f23ccb9731a49f..3dab15063ae67d 100644 --- a/lib/modules/manager/cocoapods/__snapshots__/artifacts.spec.ts.snap +++ b/lib/modules/manager/cocoapods/__snapshots__/artifacts.spec.ts.snap @@ -57,13 +57,13 @@ exports[`modules/manager/cocoapods/artifacts returns pod exec error 1`] = ` exports[`modules/manager/cocoapods/artifacts returns updated Podfile 1`] = ` [ { - "cmd": "docker pull renovate/sidecar", + "cmd": "docker pull containerbase/sidecar", "options": { "encoding": "utf-8", }, }, { - "cmd": "docker run --rm --name=renovate_sidecar --label=renovate_child -v "/tmp/github/some/repo":"/tmp/github/some/repo" -v "/tmp/cache":"/tmp/cache" -e BUILDPACK_CACHE_DIR -e CONTAINERBASE_CACHE_DIR -w "/tmp/github/some/repo" renovate/sidecar bash -l -c "install-tool ruby 3.1.0 && install-tool cocoapods 3.1.0 && gem install cocoapods-acknowledgements && pod install"", + "cmd": "docker run --rm --name=renovate_sidecar --label=renovate_child -v "/tmp/github/some/repo":"/tmp/github/some/repo" -v "/tmp/cache":"/tmp/cache" -e BUILDPACK_CACHE_DIR -e CONTAINERBASE_CACHE_DIR -w "/tmp/github/some/repo" containerbase/sidecar bash -l -c "install-tool ruby 3.1.0 && install-tool cocoapods 3.1.0 && gem install cocoapods-acknowledgements && pod install"", "options": { "cwd": "/tmp/github/some/repo", "encoding": "utf-8", @@ -88,13 +88,13 @@ exports[`modules/manager/cocoapods/artifacts returns updated Podfile 1`] = ` exports[`modules/manager/cocoapods/artifacts returns updated Podfile and Pods files 1`] = ` [ { - "cmd": "docker pull renovate/sidecar", + "cmd": "docker pull containerbase/sidecar", "options": { "encoding": "utf-8", }, }, { - "cmd": "docker run --rm --name=renovate_sidecar --label=renovate_child -v "/tmp/github/some/repo":"/tmp/github/some/repo" -v "/tmp/cache":"/tmp/cache" -e BUILDPACK_CACHE_DIR -e CONTAINERBASE_CACHE_DIR -w "/tmp/github/some/repo" renovate/sidecar bash -l -c "install-tool ruby 3.1.0 && install-tool cocoapods 3.1.0 && pod install"", + "cmd": "docker run --rm --name=renovate_sidecar --label=renovate_child -v "/tmp/github/some/repo":"/tmp/github/some/repo" -v "/tmp/cache":"/tmp/cache" -e BUILDPACK_CACHE_DIR -e CONTAINERBASE_CACHE_DIR -w "/tmp/github/some/repo" containerbase/sidecar bash -l -c "install-tool ruby 3.1.0 && install-tool cocoapods 3.1.0 && pod install"", "options": { "cwd": "/tmp/github/some/repo", "encoding": "utf-8", diff --git a/lib/modules/manager/cocoapods/artifacts.spec.ts b/lib/modules/manager/cocoapods/artifacts.spec.ts index 514954474de213..a4caf0fe10d5b8 100644 --- a/lib/modules/manager/cocoapods/artifacts.spec.ts +++ b/lib/modules/manager/cocoapods/artifacts.spec.ts @@ -252,7 +252,7 @@ describe('modules/manager/cocoapods/artifacts', () => { config, }); expect(execSnapshots).toMatchObject([ - { cmd: 'docker pull renovate/sidecar' }, + { cmd: 'docker pull containerbase/sidecar' }, { cmd: 'docker run --rm --name=renovate_sidecar --label=renovate_child ' + @@ -261,7 +261,7 @@ describe('modules/manager/cocoapods/artifacts', () => { '-e BUILDPACK_CACHE_DIR ' + '-e CONTAINERBASE_CACHE_DIR ' + '-w "/tmp/github/some/repo" ' + - 'renovate/sidecar' + + 'containerbase/sidecar' + ' bash -l -c "' + 'install-tool ruby 3.1.0' + ' && ' + diff --git a/lib/modules/manager/composer/artifacts.spec.ts b/lib/modules/manager/composer/artifacts.spec.ts index 2191ab49e9998a..d7486171970396 100644 --- a/lib/modules/manager/composer/artifacts.spec.ts +++ b/lib/modules/manager/composer/artifacts.spec.ts @@ -461,7 +461,7 @@ describe('modules/manager/composer/artifacts', () => { ]); expect(execSnapshots).toMatchObject([ { - cmd: 'docker pull renovate/sidecar', + cmd: 'docker pull containerbase/sidecar', options: { encoding: 'utf-8', }, @@ -481,7 +481,7 @@ describe('modules/manager/composer/artifacts', () => { '-e BUILDPACK_CACHE_DIR ' + '-e CONTAINERBASE_CACHE_DIR ' + '-w "/tmp/github/some/repo" ' + - 'renovate/sidecar' + + 'containerbase/sidecar' + ' bash -l -c "' + 'install-tool php 7.3' + ' && ' + diff --git a/lib/modules/manager/gomod/artifacts.spec.ts b/lib/modules/manager/gomod/artifacts.spec.ts index 869d5891cf3cd5..66e40c293fbd0e 100644 --- a/lib/modules/manager/gomod/artifacts.spec.ts +++ b/lib/modules/manager/gomod/artifacts.spec.ts @@ -298,7 +298,7 @@ describe('modules/manager/gomod/artifacts', () => { }, ]); expect(execSnapshots).toMatchObject([ - { cmd: 'docker pull renovate/sidecar' }, + { cmd: 'docker pull containerbase/sidecar' }, { cmd: 'docker ps --filter name=renovate_sidecar -aq' }, { cmd: @@ -315,7 +315,7 @@ describe('modules/manager/gomod/artifacts', () => { '-e BUILDPACK_CACHE_DIR ' + '-e CONTAINERBASE_CACHE_DIR ' + '-w "/tmp/github/some/repo" ' + - 'renovate/sidecar' + + 'containerbase/sidecar' + ' bash -l -c "' + 'install-tool golang 1.14.0' + ' && ' + @@ -455,7 +455,7 @@ describe('modules/manager/gomod/artifacts', () => { }, ]); expect(execSnapshots).toMatchObject([ - { cmd: 'docker pull renovate/sidecar' }, + { cmd: 'docker pull containerbase/sidecar' }, { cmd: 'docker ps --filter name=renovate_sidecar -aq' }, { cmd: @@ -485,7 +485,7 @@ describe('modules/manager/gomod/artifacts', () => { '-e BUILDPACK_CACHE_DIR ' + '-e CONTAINERBASE_CACHE_DIR ' + '-w "/tmp/github/some/repo" ' + - 'renovate/sidecar' + + 'containerbase/sidecar' + ' bash -l -c "' + 'install-tool golang 1.14.0' + ' && ' + @@ -566,7 +566,7 @@ describe('modules/manager/gomod/artifacts', () => { }, ]); expect(execSnapshots).toMatchObject([ - { cmd: 'docker pull renovate/sidecar' }, + { cmd: 'docker pull containerbase/sidecar' }, {}, { options: { @@ -980,7 +980,7 @@ describe('modules/manager/gomod/artifacts', () => { { file: { contents: 'New go.sum 2', path: 'go.mod', type: 'addition' } }, ]); expect(execSnapshots).toMatchObject([ - { cmd: 'docker pull renovate/sidecar' }, + { cmd: 'docker pull containerbase/sidecar' }, {}, { cmd: @@ -997,7 +997,7 @@ describe('modules/manager/gomod/artifacts', () => { '-e BUILDPACK_CACHE_DIR ' + '-e CONTAINERBASE_CACHE_DIR ' + '-w "/tmp/github/some/repo" ' + - 'renovate/sidecar' + + 'containerbase/sidecar' + ' bash -l -c "' + 'install-tool golang 1.14.0' + ' && ' + @@ -1045,7 +1045,7 @@ describe('modules/manager/gomod/artifacts', () => { { file: { contents: 'New go.sum 2', path: 'go.mod', type: 'addition' } }, ]); expect(execSnapshots).toMatchObject([ - { cmd: 'docker pull renovate/sidecar' }, + { cmd: 'docker pull containerbase/sidecar' }, {}, { cmd: @@ -1062,7 +1062,7 @@ describe('modules/manager/gomod/artifacts', () => { '-e BUILDPACK_CACHE_DIR ' + '-e CONTAINERBASE_CACHE_DIR ' + '-w "/tmp/github/some/repo" ' + - 'renovate/sidecar' + + 'containerbase/sidecar' + ' bash -l -c "' + 'install-tool golang 1.14.0' + ' && ' + @@ -1779,7 +1779,7 @@ describe('modules/manager/gomod/artifacts', () => { ]); const expectedResult = [ { - cmd: 'docker pull renovate/sidecar', + cmd: 'docker pull containerbase/sidecar', }, {}, { @@ -1797,7 +1797,7 @@ describe('modules/manager/gomod/artifacts', () => { '-e BUILDPACK_CACHE_DIR ' + '-e CONTAINERBASE_CACHE_DIR ' + '-w "/tmp/github/some/repo" ' + - 'renovate/sidecar' + + 'containerbase/sidecar' + ' bash -l -c "' + 'install-tool golang 1.17.0' + ' && ' + @@ -1854,7 +1854,7 @@ describe('modules/manager/gomod/artifacts', () => { ]); const expectedResult = [ { - cmd: 'docker pull renovate/sidecar', + cmd: 'docker pull containerbase/sidecar', }, {}, { @@ -1872,7 +1872,7 @@ describe('modules/manager/gomod/artifacts', () => { '-e BUILDPACK_CACHE_DIR ' + '-e CONTAINERBASE_CACHE_DIR ' + '-w "/tmp/github/some/repo" ' + - 'renovate/sidecar' + + 'containerbase/sidecar' + ' bash -l -c "' + 'install-tool golang 1.14.0' + ' && ' + diff --git a/lib/modules/manager/gradle-wrapper/artifacts.spec.ts b/lib/modules/manager/gradle-wrapper/artifacts.spec.ts index 184e18eac25eab..d6996cde05251e 100644 --- a/lib/modules/manager/gradle-wrapper/artifacts.spec.ts +++ b/lib/modules/manager/gradle-wrapper/artifacts.spec.ts @@ -198,7 +198,7 @@ describe('modules/manager/gradle-wrapper/artifacts', () => { }, ]); expect(execSnapshots).toMatchObject([ - { cmd: 'docker pull renovate/sidecar' }, + { cmd: 'docker pull containerbase/sidecar' }, { cmd: 'docker ps --filter name=renovate_sidecar -aq' }, { cmd: @@ -209,7 +209,7 @@ describe('modules/manager/gradle-wrapper/artifacts', () => { '-e BUILDPACK_CACHE_DIR ' + '-e CONTAINERBASE_CACHE_DIR ' + '-w "/tmp/github/some/repo" ' + - 'renovate/sidecar' + + 'containerbase/sidecar' + ' bash -l -c "' + 'install-tool java 11.0.1' + ' && ' + diff --git a/lib/modules/manager/gradle/artifacts.spec.ts b/lib/modules/manager/gradle/artifacts.spec.ts index 8e0f07e19dba67..9d890b469d3923 100644 --- a/lib/modules/manager/gradle/artifacts.spec.ts +++ b/lib/modules/manager/gradle/artifacts.spec.ts @@ -279,7 +279,7 @@ describe('modules/manager/gradle/artifacts', () => { }, ]); expect(execSnapshots).toMatchObject([ - { cmd: 'docker pull renovate/sidecar' }, + { cmd: 'docker pull containerbase/sidecar' }, { cmd: 'docker ps --filter name=renovate_sidecar -aq' }, { cmd: @@ -290,7 +290,7 @@ describe('modules/manager/gradle/artifacts', () => { '-e BUILDPACK_CACHE_DIR ' + '-e CONTAINERBASE_CACHE_DIR ' + '-w "/tmp/github/some/repo" ' + - 'renovate/sidecar' + + 'containerbase/sidecar' + ' bash -l -c "' + 'install-tool java 16.0.1' + ' && ' + @@ -308,7 +308,7 @@ describe('modules/manager/gradle/artifacts', () => { '-e BUILDPACK_CACHE_DIR ' + '-e CONTAINERBASE_CACHE_DIR ' + '-w "/tmp/github/some/repo" ' + - 'renovate/sidecar' + + 'containerbase/sidecar' + ' bash -l -c "' + 'install-tool java 16.0.1' + ' && ' + diff --git a/lib/modules/manager/helmv3/__snapshots__/artifacts.spec.ts.snap b/lib/modules/manager/helmv3/__snapshots__/artifacts.spec.ts.snap index 205dd8746507ec..6fcb8eb6787c86 100644 --- a/lib/modules/manager/helmv3/__snapshots__/artifacts.spec.ts.snap +++ b/lib/modules/manager/helmv3/__snapshots__/artifacts.spec.ts.snap @@ -399,7 +399,7 @@ exports[`modules/manager/helmv3/artifacts returns updated Chart.lock for lockfil exports[`modules/manager/helmv3/artifacts returns updated Chart.lock with docker 1`] = ` [ { - "cmd": "docker pull renovate/sidecar", + "cmd": "docker pull containerbase/sidecar", "options": { "encoding": "utf-8", }, @@ -411,7 +411,7 @@ exports[`modules/manager/helmv3/artifacts returns updated Chart.lock with docker }, }, { - "cmd": "docker run --rm --name=renovate_sidecar --label=renovate_child -v "/tmp/github/some/repo":"/tmp/github/some/repo" -v "/tmp/renovate/cache":"/tmp/renovate/cache" -e HELM_EXPERIMENTAL_OCI -e BUILDPACK_CACHE_DIR -e CONTAINERBASE_CACHE_DIR -w "/tmp/github/some/repo" renovate/sidecar bash -l -c "install-tool helm v3.7.2 && helm repo add repo-test --registry-config /tmp/renovate/cache/__renovate-private-cache/registry.json --repository-config /tmp/renovate/cache/__renovate-private-cache/repositories.yaml --repository-cache /tmp/renovate/cache/__renovate-private-cache/repositories https://gitlab.com/api/v4/projects/xxxxxxx/packages/helm/stable && helm dependency update --registry-config /tmp/renovate/cache/__renovate-private-cache/registry.json --repository-config /tmp/renovate/cache/__renovate-private-cache/repositories.yaml --repository-cache /tmp/renovate/cache/__renovate-private-cache/repositories ''"", + "cmd": "docker run --rm --name=renovate_sidecar --label=renovate_child -v "/tmp/github/some/repo":"/tmp/github/some/repo" -v "/tmp/renovate/cache":"/tmp/renovate/cache" -e HELM_EXPERIMENTAL_OCI -e BUILDPACK_CACHE_DIR -e CONTAINERBASE_CACHE_DIR -w "/tmp/github/some/repo" containerbase/sidecar bash -l -c "install-tool helm v3.7.2 && helm repo add repo-test --registry-config /tmp/renovate/cache/__renovate-private-cache/registry.json --repository-config /tmp/renovate/cache/__renovate-private-cache/repositories.yaml --repository-cache /tmp/renovate/cache/__renovate-private-cache/repositories https://gitlab.com/api/v4/projects/xxxxxxx/packages/helm/stable && helm dependency update --registry-config /tmp/renovate/cache/__renovate-private-cache/registry.json --repository-config /tmp/renovate/cache/__renovate-private-cache/repositories.yaml --repository-cache /tmp/renovate/cache/__renovate-private-cache/repositories ''"", "options": { "cwd": "/tmp/github/some/repo", "encoding": "utf-8", @@ -518,7 +518,7 @@ exports[`modules/manager/helmv3/artifacts sets repositories from registryAliases exports[`modules/manager/helmv3/artifacts sets repositories from registryAliases with docker 1`] = ` [ { - "cmd": "docker pull renovate/sidecar", + "cmd": "docker pull containerbase/sidecar", "options": { "encoding": "utf-8", }, @@ -530,7 +530,7 @@ exports[`modules/manager/helmv3/artifacts sets repositories from registryAliases }, }, { - "cmd": "docker run --rm --name=renovate_sidecar --label=renovate_child -v "/tmp/github/some/repo":"/tmp/github/some/repo" -v "/tmp/renovate/cache":"/tmp/renovate/cache" -e HELM_EXPERIMENTAL_OCI -e BUILDPACK_CACHE_DIR -e CONTAINERBASE_CACHE_DIR -w "/tmp/github/some/repo" renovate/sidecar bash -l -c "install-tool helm v3.7.2 && helm repo add stable --registry-config /tmp/renovate/cache/__renovate-private-cache/registry.json --repository-config /tmp/renovate/cache/__renovate-private-cache/repositories.yaml --repository-cache /tmp/renovate/cache/__renovate-private-cache/repositories the_stable_url && helm repo add repo1 --registry-config /tmp/renovate/cache/__renovate-private-cache/registry.json --repository-config /tmp/renovate/cache/__renovate-private-cache/repositories.yaml --repository-cache /tmp/renovate/cache/__renovate-private-cache/repositories the_repo1_url && helm repo add repo-test --registry-config /tmp/renovate/cache/__renovate-private-cache/registry.json --repository-config /tmp/renovate/cache/__renovate-private-cache/repositories.yaml --repository-cache /tmp/renovate/cache/__renovate-private-cache/repositories https://gitlab.com/api/v4/projects/xxxxxxx/packages/helm/stable && helm dependency update --registry-config /tmp/renovate/cache/__renovate-private-cache/registry.json --repository-config /tmp/renovate/cache/__renovate-private-cache/repositories.yaml --repository-cache /tmp/renovate/cache/__renovate-private-cache/repositories ''"", + "cmd": "docker run --rm --name=renovate_sidecar --label=renovate_child -v "/tmp/github/some/repo":"/tmp/github/some/repo" -v "/tmp/renovate/cache":"/tmp/renovate/cache" -e HELM_EXPERIMENTAL_OCI -e BUILDPACK_CACHE_DIR -e CONTAINERBASE_CACHE_DIR -w "/tmp/github/some/repo" containerbase/sidecar bash -l -c "install-tool helm v3.7.2 && helm repo add stable --registry-config /tmp/renovate/cache/__renovate-private-cache/registry.json --repository-config /tmp/renovate/cache/__renovate-private-cache/repositories.yaml --repository-cache /tmp/renovate/cache/__renovate-private-cache/repositories the_stable_url && helm repo add repo1 --registry-config /tmp/renovate/cache/__renovate-private-cache/registry.json --repository-config /tmp/renovate/cache/__renovate-private-cache/repositories.yaml --repository-cache /tmp/renovate/cache/__renovate-private-cache/repositories the_repo1_url && helm repo add repo-test --registry-config /tmp/renovate/cache/__renovate-private-cache/registry.json --repository-config /tmp/renovate/cache/__renovate-private-cache/repositories.yaml --repository-cache /tmp/renovate/cache/__renovate-private-cache/repositories https://gitlab.com/api/v4/projects/xxxxxxx/packages/helm/stable && helm dependency update --registry-config /tmp/renovate/cache/__renovate-private-cache/registry.json --repository-config /tmp/renovate/cache/__renovate-private-cache/repositories.yaml --repository-cache /tmp/renovate/cache/__renovate-private-cache/repositories ''"", "options": { "cwd": "/tmp/github/some/repo", "encoding": "utf-8", diff --git a/lib/modules/manager/maven-wrapper/artifacts.spec.ts b/lib/modules/manager/maven-wrapper/artifacts.spec.ts index c90b68fc7018c8..01e55ce5b2f160 100644 --- a/lib/modules/manager/maven-wrapper/artifacts.spec.ts +++ b/lib/modules/manager/maven-wrapper/artifacts.spec.ts @@ -193,7 +193,7 @@ describe('modules/manager/maven-wrapper/artifacts', () => { ]); expect(execSnapshots).toMatchObject([ { - cmd: 'docker pull renovate/sidecar', + cmd: 'docker pull containerbase/sidecar', options: { encoding: 'utf-8' }, }, { cmd: 'docker ps --filter name=renovate_sidecar -aq' }, @@ -204,7 +204,7 @@ describe('modules/manager/maven-wrapper/artifacts', () => { '-e BUILDPACK_CACHE_DIR ' + '-e CONTAINERBASE_CACHE_DIR ' + '-w "../.." ' + - 'renovate/sidecar' + + 'containerbase/sidecar' + ' bash -l -c "' + 'install-tool java 17.0.0 ' + '&& ' + diff --git a/lib/modules/manager/mix/__snapshots__/artifacts.spec.ts.snap b/lib/modules/manager/mix/__snapshots__/artifacts.spec.ts.snap index 8970d0fae224e5..8c77419ecea365 100644 --- a/lib/modules/manager/mix/__snapshots__/artifacts.spec.ts.snap +++ b/lib/modules/manager/mix/__snapshots__/artifacts.spec.ts.snap @@ -21,7 +21,7 @@ exports[`modules/manager/mix/artifacts authenticates to private repositories 2`] }, }, { - "cmd": "docker run --rm --name=renovate_sidecar --label=renovate_child -v "/tmp/github/some/repo":"/tmp/github/some/repo" -v "/tmp/cache":"/tmp/cache" -e BUILDPACK_CACHE_DIR -e CONTAINERBASE_CACHE_DIR -w "/tmp/github/some/repo" renovate/sidecar bash -l -c "install-tool erlang 24.3.4.2 && install-tool elixir v1.13.4 && mix hex.organization auth renovate_test --key valid_test_token && mix deps.update private_package other_package"", + "cmd": "docker run --rm --name=renovate_sidecar --label=renovate_child -v "/tmp/github/some/repo":"/tmp/github/some/repo" -v "/tmp/cache":"/tmp/cache" -e BUILDPACK_CACHE_DIR -e CONTAINERBASE_CACHE_DIR -w "/tmp/github/some/repo" containerbase/sidecar bash -l -c "install-tool erlang 24.3.4.2 && install-tool elixir v1.13.4 && mix hex.organization auth renovate_test --key valid_test_token && mix deps.update private_package other_package"", "options": { "cwd": "/tmp/github/some/repo", "encoding": "utf-8", @@ -69,7 +69,7 @@ exports[`modules/manager/mix/artifacts returns null if unchanged 1`] = ` exports[`modules/manager/mix/artifacts returns updated mix.lock 1`] = ` [ { - "cmd": "docker pull renovate/sidecar", + "cmd": "docker pull containerbase/sidecar", "options": { "encoding": "utf-8", }, @@ -81,7 +81,7 @@ exports[`modules/manager/mix/artifacts returns updated mix.lock 1`] = ` }, }, { - "cmd": "docker run --rm --name=renovate_sidecar --label=renovate_child -v "/tmp/github/some/repo":"/tmp/github/some/repo" -v "/tmp/cache":"/tmp/cache" -e BUILDPACK_CACHE_DIR -e CONTAINERBASE_CACHE_DIR -w "/tmp/github/some/repo" renovate/sidecar bash -l -c "install-tool erlang 24.3.4.2 && install-tool elixir 1.13.4 && mix deps.update plug"", + "cmd": "docker run --rm --name=renovate_sidecar --label=renovate_child -v "/tmp/github/some/repo":"/tmp/github/some/repo" -v "/tmp/cache":"/tmp/cache" -e BUILDPACK_CACHE_DIR -e CONTAINERBASE_CACHE_DIR -w "/tmp/github/some/repo" containerbase/sidecar bash -l -c "install-tool erlang 24.3.4.2 && install-tool elixir 1.13.4 && mix deps.update plug"", "options": { "cwd": "/tmp/github/some/repo", "encoding": "utf-8", diff --git a/lib/modules/manager/nix/artifacts.spec.ts b/lib/modules/manager/nix/artifacts.spec.ts index 474768a28a4c60..7b4808aed1bb70 100644 --- a/lib/modules/manager/nix/artifacts.spec.ts +++ b/lib/modules/manager/nix/artifacts.spec.ts @@ -137,7 +137,7 @@ describe('modules/manager/nix/artifacts', () => { }, ]); expect(execSnapshots).toMatchObject([ - { cmd: 'docker pull renovate/sidecar' }, + { cmd: 'docker pull containerbase/sidecar' }, { cmd: 'docker ps --filter name=renovate_sidecar -aq' }, { cmd: @@ -147,7 +147,7 @@ describe('modules/manager/nix/artifacts', () => { '-e BUILDPACK_CACHE_DIR ' + '-e CONTAINERBASE_CACHE_DIR ' + '-w "/tmp/github/some/repo" ' + - 'renovate/sidecar ' + + 'containerbase/sidecar ' + 'bash -l -c "' + 'install-tool nix 2.10.0 ' + '&& ' + @@ -268,7 +268,7 @@ describe('modules/manager/nix/artifacts', () => { }, ]); expect(execSnapshots).toMatchObject([ - { cmd: 'docker pull renovate/sidecar' }, + { cmd: 'docker pull containerbase/sidecar' }, { cmd: 'docker ps --filter name=renovate_sidecar -aq' }, { cmd: @@ -278,7 +278,7 @@ describe('modules/manager/nix/artifacts', () => { '-e BUILDPACK_CACHE_DIR ' + '-e CONTAINERBASE_CACHE_DIR ' + '-w "/tmp/github/some/repo" ' + - 'renovate/sidecar ' + + 'containerbase/sidecar ' + 'bash -l -c "' + 'install-tool nix 2.10.0 ' + '&& ' + diff --git a/lib/modules/manager/npm/post-update/lerna.spec.ts b/lib/modules/manager/npm/post-update/lerna.spec.ts index cacc6fb2a514ec..b6ae8f2fe77b29 100644 --- a/lib/modules/manager/npm/post-update/lerna.spec.ts +++ b/lib/modules/manager/npm/post-update/lerna.spec.ts @@ -144,7 +144,7 @@ describe('modules/manager/npm/post-update/lerna', () => { ); expect(execSnapshots).toMatchObject([ { - cmd: 'docker pull renovate/sidecar', + cmd: 'docker pull containerbase/sidecar', }, { cmd: 'docker ps --filter name=renovate_sidecar -aq', @@ -155,7 +155,7 @@ describe('modules/manager/npm/post-update/lerna', () => { '-v "/tmp/cache":"/tmp/cache" ' + '-e BUILDPACK_CACHE_DIR ' + '-e CONTAINERBASE_CACHE_DIR ' + - '-w "some-dir" renovate/sidecar ' + + '-w "some-dir" containerbase/sidecar ' + 'bash -l -c "' + 'install-tool node 16.16.0 ' + '&& ' + diff --git a/lib/modules/manager/npm/post-update/npm.spec.ts b/lib/modules/manager/npm/post-update/npm.spec.ts index 73703f8ef0f92b..3ecda1373e87a0 100644 --- a/lib/modules/manager/npm/post-update/npm.spec.ts +++ b/lib/modules/manager/npm/post-update/npm.spec.ts @@ -258,7 +258,7 @@ describe('modules/manager/npm/post-update/npm', () => { expect(fs.readLocalFile).toHaveBeenCalledTimes(1); expect(res.lockFile).toBe('package-lock-contents'); expect(execSnapshots).toMatchObject([ - { cmd: 'docker pull renovate/sidecar' }, + { cmd: 'docker pull containerbase/sidecar' }, { cmd: 'docker ps --filter name=renovate_sidecar -aq' }, { cmd: @@ -267,7 +267,7 @@ describe('modules/manager/npm/post-update/npm', () => { '-e BUILDPACK_CACHE_DIR ' + '-e CONTAINERBASE_CACHE_DIR ' + '-w "some-dir" ' + - 'renovate/sidecar ' + + 'containerbase/sidecar ' + 'bash -l -c "' + 'install-tool node 16.16.0 ' + '&& ' + diff --git a/lib/modules/manager/npm/post-update/pnpm.spec.ts b/lib/modules/manager/npm/post-update/pnpm.spec.ts index 8b23def995ecc5..5089b185d1660f 100644 --- a/lib/modules/manager/npm/post-update/pnpm.spec.ts +++ b/lib/modules/manager/npm/post-update/pnpm.spec.ts @@ -223,7 +223,7 @@ describe('modules/manager/npm/post-update/pnpm', () => { expect(fs.readLocalFile).toHaveBeenCalledTimes(1); expect(res.lockFile).toBe('package-lock-contents'); expect(execSnapshots).toMatchObject([ - { cmd: 'docker pull renovate/sidecar' }, + { cmd: 'docker pull containerbase/sidecar' }, { cmd: 'docker ps --filter name=renovate_sidecar -aq' }, { cmd: @@ -232,7 +232,7 @@ describe('modules/manager/npm/post-update/pnpm', () => { '-e BUILDPACK_CACHE_DIR ' + '-e CONTAINERBASE_CACHE_DIR ' + '-w "some-dir" ' + - 'renovate/sidecar ' + + 'containerbase/sidecar ' + 'bash -l -c "' + 'install-tool node 16.16.0 ' + '&& install-tool pnpm 6.0.0 ' + diff --git a/lib/modules/manager/npm/post-update/yarn.spec.ts b/lib/modules/manager/npm/post-update/yarn.spec.ts index 43c775685d250b..3a525661942559 100644 --- a/lib/modules/manager/npm/post-update/yarn.spec.ts +++ b/lib/modules/manager/npm/post-update/yarn.spec.ts @@ -555,10 +555,10 @@ describe('modules/manager/npm/post-update/yarn', () => { expect(res.lockFile).toBe(plocktest1YarnLockV1); const options = { encoding: 'utf-8' }; expect(execSnapshots).toMatchObject([ - { cmd: 'docker pull renovate/sidecar', options }, + { cmd: 'docker pull containerbase/sidecar', options }, { cmd: - `docker run --rm --name=renovate_sidecar --label=renovate_child -v ".":"." -v "/tmp/cache":"/tmp/cache" -e CI -e BUILDPACK_CACHE_DIR -e CONTAINERBASE_CACHE_DIR -w "some-dir" renovate/sidecar ` + + `docker run --rm --name=renovate_sidecar --label=renovate_child -v ".":"." -v "/tmp/cache":"/tmp/cache" -e CI -e BUILDPACK_CACHE_DIR -e CONTAINERBASE_CACHE_DIR -w "some-dir" containerbase/sidecar ` + `bash -l -c "` + `install-tool node 16.16.0` + ` && ` + diff --git a/lib/modules/manager/nuget/artifacts.spec.ts b/lib/modules/manager/nuget/artifacts.spec.ts index 870701c93eee76..b6ae31d6cc5749 100644 --- a/lib/modules/manager/nuget/artifacts.spec.ts +++ b/lib/modules/manager/nuget/artifacts.spec.ts @@ -249,7 +249,7 @@ describe('modules/manager/nuget/artifacts', () => { ]); expect(execSnapshots).toMatchObject([ { - cmd: 'docker pull renovate/sidecar', + cmd: 'docker pull containerbase/sidecar', }, { cmd: 'docker ps --filter name=renovate_sidecar -aq', @@ -264,7 +264,7 @@ describe('modules/manager/nuget/artifacts', () => { '-e BUILDPACK_CACHE_DIR ' + '-e CONTAINERBASE_CACHE_DIR ' + '-w "/tmp/github/some/repo" ' + - 'renovate/sidecar ' + + 'containerbase/sidecar ' + 'bash -l -c "' + 'install-tool dotnet 7.0.100' + ' && ' + diff --git a/lib/modules/manager/pip-compile/artifacts.spec.ts b/lib/modules/manager/pip-compile/artifacts.spec.ts index c55714dda42a41..94c8463f29e48d 100644 --- a/lib/modules/manager/pip-compile/artifacts.spec.ts +++ b/lib/modules/manager/pip-compile/artifacts.spec.ts @@ -114,7 +114,7 @@ describe('modules/manager/pip-compile/artifacts', () => { ).not.toBeNull(); expect(execSnapshots).toMatchObject([ - { cmd: 'docker pull renovate/sidecar' }, + { cmd: 'docker pull containerbase/sidecar' }, { cmd: 'docker ps --filter name=renovate_sidecar -aq' }, { cmd: @@ -125,7 +125,7 @@ describe('modules/manager/pip-compile/artifacts', () => { '-e BUILDPACK_CACHE_DIR ' + '-e CONTAINERBASE_CACHE_DIR ' + '-w "/tmp/github/some/repo" ' + - 'renovate/sidecar ' + + 'containerbase/sidecar ' + 'bash -l -c "' + 'install-tool python 3.10.2 ' + '&& ' + @@ -231,7 +231,7 @@ describe('modules/manager/pip-compile/artifacts', () => { ).not.toBeNull(); expect(execSnapshots).toMatchObject([ - { cmd: 'docker pull renovate/sidecar' }, + { cmd: 'docker pull containerbase/sidecar' }, { cmd: 'docker ps --filter name=renovate_sidecar -aq' }, { cmd: @@ -242,7 +242,7 @@ describe('modules/manager/pip-compile/artifacts', () => { '-e BUILDPACK_CACHE_DIR ' + '-e CONTAINERBASE_CACHE_DIR ' + '-w "/tmp/github/some/repo" ' + - 'renovate/sidecar ' + + 'containerbase/sidecar ' + 'bash -l -c "' + 'install-tool python 3.10.2 ' + '&& ' + diff --git a/lib/modules/manager/pip_requirements/artifacts.spec.ts b/lib/modules/manager/pip_requirements/artifacts.spec.ts index 1031300d02734d..69e2152cea29b2 100644 --- a/lib/modules/manager/pip_requirements/artifacts.spec.ts +++ b/lib/modules/manager/pip_requirements/artifacts.spec.ts @@ -207,7 +207,7 @@ describe('modules/manager/pip_requirements/artifacts', () => { ]); expect(execSnapshots).toMatchObject([ - { cmd: 'docker pull renovate/sidecar' }, + { cmd: 'docker pull containerbase/sidecar' }, { cmd: 'docker ps --filter name=renovate_sidecar -aq' }, { cmd: @@ -218,7 +218,7 @@ describe('modules/manager/pip_requirements/artifacts', () => { '-e BUILDPACK_CACHE_DIR ' + '-e CONTAINERBASE_CACHE_DIR ' + '-w "/tmp/github/some/repo" ' + - 'renovate/sidecar ' + + 'containerbase/sidecar ' + 'bash -l -c "' + 'install-tool python 3.10.2 ' + '&& ' + diff --git a/lib/modules/manager/pipenv/__snapshots__/artifacts.spec.ts.snap b/lib/modules/manager/pipenv/__snapshots__/artifacts.spec.ts.snap index 231d1d43302a11..81581b65c5806e 100644 --- a/lib/modules/manager/pipenv/__snapshots__/artifacts.spec.ts.snap +++ b/lib/modules/manager/pipenv/__snapshots__/artifacts.spec.ts.snap @@ -99,7 +99,7 @@ exports[`modules/manager/pipenv/artifacts returns updated Pipfile.lock 1`] = ` exports[`modules/manager/pipenv/artifacts supports docker mode 1`] = ` [ { - "cmd": "docker pull renovate/sidecar", + "cmd": "docker pull containerbase/sidecar", "options": { "encoding": "utf-8", }, @@ -111,7 +111,7 @@ exports[`modules/manager/pipenv/artifacts supports docker mode 1`] = ` }, }, { - "cmd": "docker run --rm --name=renovate_sidecar --label=renovate_child -v "/tmp/github/some/repo":"/tmp/github/some/repo" -v "/tmp/renovate/cache":"/tmp/renovate/cache" -e PIPENV_CACHE_DIR -e PIP_CACHE_DIR -e BUILDPACK_CACHE_DIR -e CONTAINERBASE_CACHE_DIR -w "/tmp/github/some/repo" renovate/sidecar bash -l -c "install-tool python 3.7.6 && pip install --user pipenv && pipenv lock"", + "cmd": "docker run --rm --name=renovate_sidecar --label=renovate_child -v "/tmp/github/some/repo":"/tmp/github/some/repo" -v "/tmp/renovate/cache":"/tmp/renovate/cache" -e PIPENV_CACHE_DIR -e PIP_CACHE_DIR -e BUILDPACK_CACHE_DIR -e CONTAINERBASE_CACHE_DIR -w "/tmp/github/some/repo" containerbase/sidecar bash -l -c "install-tool python 3.7.6 && pip install --user pipenv && pipenv lock"", "options": { "cwd": "/tmp/github/some/repo", "encoding": "utf-8", @@ -138,7 +138,7 @@ exports[`modules/manager/pipenv/artifacts supports docker mode 1`] = ` exports[`modules/manager/pipenv/artifacts uses pipenv version from Pipfile 1`] = ` [ { - "cmd": "docker pull renovate/sidecar", + "cmd": "docker pull containerbase/sidecar", "options": { "encoding": "utf-8", }, @@ -150,7 +150,7 @@ exports[`modules/manager/pipenv/artifacts uses pipenv version from Pipfile 1`] = }, }, { - "cmd": "docker run --rm --name=renovate_sidecar --label=renovate_child -v "/tmp/github/some/repo":"/tmp/github/some/repo" -v "/tmp/renovate/cache":"/tmp/renovate/cache" -e PIPENV_CACHE_DIR -e BUILDPACK_CACHE_DIR -e CONTAINERBASE_CACHE_DIR -w "/tmp/github/some/repo" renovate/sidecar bash -l -c "install-tool python 3.10.2 && pip install --user pipenv==2020.8.13 && pipenv lock"", + "cmd": "docker run --rm --name=renovate_sidecar --label=renovate_child -v "/tmp/github/some/repo":"/tmp/github/some/repo" -v "/tmp/renovate/cache":"/tmp/renovate/cache" -e PIPENV_CACHE_DIR -e BUILDPACK_CACHE_DIR -e CONTAINERBASE_CACHE_DIR -w "/tmp/github/some/repo" containerbase/sidecar bash -l -c "install-tool python 3.10.2 && pip install --user pipenv==2020.8.13 && pipenv lock"", "options": { "cwd": "/tmp/github/some/repo", "encoding": "utf-8", @@ -176,7 +176,7 @@ exports[`modules/manager/pipenv/artifacts uses pipenv version from Pipfile 1`] = exports[`modules/manager/pipenv/artifacts uses pipenv version from Pipfile dev packages 1`] = ` [ { - "cmd": "docker pull renovate/sidecar", + "cmd": "docker pull containerbase/sidecar", "options": { "encoding": "utf-8", }, @@ -188,7 +188,7 @@ exports[`modules/manager/pipenv/artifacts uses pipenv version from Pipfile dev p }, }, { - "cmd": "docker run --rm --name=renovate_sidecar --label=renovate_child -v "/tmp/github/some/repo":"/tmp/github/some/repo" -v "/tmp/renovate/cache":"/tmp/renovate/cache" -e PIPENV_CACHE_DIR -e BUILDPACK_CACHE_DIR -e CONTAINERBASE_CACHE_DIR -w "/tmp/github/some/repo" renovate/sidecar bash -l -c "install-tool python 3.10.2 && pip install --user pipenv==2020.8.13 && pipenv lock"", + "cmd": "docker run --rm --name=renovate_sidecar --label=renovate_child -v "/tmp/github/some/repo":"/tmp/github/some/repo" -v "/tmp/renovate/cache":"/tmp/renovate/cache" -e PIPENV_CACHE_DIR -e BUILDPACK_CACHE_DIR -e CONTAINERBASE_CACHE_DIR -w "/tmp/github/some/repo" containerbase/sidecar bash -l -c "install-tool python 3.10.2 && pip install --user pipenv==2020.8.13 && pipenv lock"", "options": { "cwd": "/tmp/github/some/repo", "encoding": "utf-8", @@ -214,7 +214,7 @@ exports[`modules/manager/pipenv/artifacts uses pipenv version from Pipfile dev p exports[`modules/manager/pipenv/artifacts uses pipenv version from config 1`] = ` [ { - "cmd": "docker pull renovate/sidecar", + "cmd": "docker pull containerbase/sidecar", "options": { "encoding": "utf-8", }, @@ -226,7 +226,7 @@ exports[`modules/manager/pipenv/artifacts uses pipenv version from config 1`] = }, }, { - "cmd": "docker run --rm --name=renovate_sidecar --label=renovate_child -v "/tmp/github/some/repo":"/tmp/github/some/repo" -v "/tmp/renovate/cache":"/tmp/renovate/cache" -e PIPENV_CACHE_DIR -e BUILDPACK_CACHE_DIR -e CONTAINERBASE_CACHE_DIR -w "/tmp/github/some/repo" renovate/sidecar bash -l -c "install-tool python 3.10.2 && pip install --user pipenv==2020.1.1 && pipenv lock"", + "cmd": "docker run --rm --name=renovate_sidecar --label=renovate_child -v "/tmp/github/some/repo":"/tmp/github/some/repo" -v "/tmp/renovate/cache":"/tmp/renovate/cache" -e PIPENV_CACHE_DIR -e BUILDPACK_CACHE_DIR -e CONTAINERBASE_CACHE_DIR -w "/tmp/github/some/repo" containerbase/sidecar bash -l -c "install-tool python 3.10.2 && pip install --user pipenv==2020.1.1 && pipenv lock"", "options": { "cwd": "/tmp/github/some/repo", "encoding": "utf-8", diff --git a/lib/modules/manager/poetry/artifacts.spec.ts b/lib/modules/manager/poetry/artifacts.spec.ts index 7ca281a043d5cc..733d5ad9870bdc 100644 --- a/lib/modules/manager/poetry/artifacts.spec.ts +++ b/lib/modules/manager/poetry/artifacts.spec.ts @@ -267,7 +267,7 @@ describe('modules/manager/poetry/artifacts', () => { }, ]); expect(execSnapshots).toMatchObject([ - { cmd: 'docker pull renovate/sidecar' }, + { cmd: 'docker pull containerbase/sidecar' }, { cmd: 'docker ps --filter name=renovate_sidecar -aq' }, { cmd: @@ -278,7 +278,7 @@ describe('modules/manager/poetry/artifacts', () => { '-e BUILDPACK_CACHE_DIR ' + '-e CONTAINERBASE_CACHE_DIR ' + '-w "/tmp/github/some/repo" ' + - 'renovate/sidecar ' + + 'containerbase/sidecar ' + 'bash -l -c "' + 'install-tool python 3.4.2 ' + '&& ' + @@ -330,7 +330,7 @@ describe('modules/manager/poetry/artifacts', () => { }, ]); expect(execSnapshots).toMatchObject([ - { cmd: 'docker pull renovate/sidecar' }, + { cmd: 'docker pull containerbase/sidecar' }, { cmd: 'docker ps --filter name=renovate_sidecar -aq' }, { cmd: @@ -341,7 +341,7 @@ describe('modules/manager/poetry/artifacts', () => { '-e BUILDPACK_CACHE_DIR ' + '-e CONTAINERBASE_CACHE_DIR ' + '-w "/tmp/github/some/repo" ' + - 'renovate/sidecar ' + + 'containerbase/sidecar ' + 'bash -l -c "' + 'install-tool python 2.7.5 ' + '&& ' + diff --git a/lib/modules/manager/pub/artifacts.spec.ts b/lib/modules/manager/pub/artifacts.spec.ts index 857f67cd3d850d..af46405b091b6e 100644 --- a/lib/modules/manager/pub/artifacts.spec.ts +++ b/lib/modules/manager/pub/artifacts.spec.ts @@ -162,7 +162,7 @@ describe('modules/manager/pub/artifacts', () => { ]); expect(execSnapshots).toMatchObject([ { - cmd: 'docker pull renovate/sidecar', + cmd: 'docker pull containerbase/sidecar', }, { cmd: 'docker ps --filter name=renovate_sidecar -aq', @@ -175,7 +175,7 @@ describe('modules/manager/pub/artifacts', () => { '-e BUILDPACK_CACHE_DIR ' + '-e CONTAINERBASE_CACHE_DIR ' + '-w "/tmp/github/some/repo" ' + - 'renovate/sidecar ' + + 'containerbase/sidecar ' + 'bash -l -c "' + `install-tool ${params.sdk} 3.3.9` + ' && ' + diff --git a/lib/util/exec/docker/index.spec.ts b/lib/util/exec/docker/index.spec.ts index 8231750f0d7a24..cdbfade27138d0 100644 --- a/lib/util/exec/docker/index.spec.ts +++ b/lib/util/exec/docker/index.spec.ts @@ -216,7 +216,7 @@ describe('util/exec/docker/index', () => { (vol ? `${vol} ` : '') + `-e FOO -e BAR ` + `-w "/tmp/foobar" ` + - `renovate/${img} ` + + `containerbase/${img} ` + `bash -l -c "foo && bar"`; beforeEach(() => { diff --git a/lib/util/exec/docker/index.ts b/lib/util/exec/docker/index.ts index d980793c2e3879..291a97523a9a90 100644 --- a/lib/util/exec/docker/index.ts +++ b/lib/util/exec/docker/index.ts @@ -259,7 +259,9 @@ export async function generateDockerCommand( result.push(`-w "${cwd}"`); } - image = `${ensureTrailingSlash(dockerImagePrefix ?? 'renovate')}${image}`; + image = `${ensureTrailingSlash( + dockerImagePrefix ?? 'containerbase' + )}${image}`; // TODO: add constraint: const tag = getDockerTag(image, sideCarImageVersion, 'semver'); logger.debug( diff --git a/lib/util/exec/index.spec.ts b/lib/util/exec/index.spec.ts index 03f36081d68b88..909880e061ad0e 100644 --- a/lib/util/exec/index.spec.ts +++ b/lib/util/exec/index.spec.ts @@ -54,7 +54,7 @@ describe('util/exec/index', () => { }); const image = dockerModule.sideCarImage; - const fullImage = `renovate/${image}`; + const fullImage = `containerbase/${image}`; const name = `renovate_${image}`; const inCmd = 'echo hello'; const outCmd = ['echo hello']; @@ -397,9 +397,9 @@ describe('util/exec/index', () => { inCmd, inOpts: { docker }, outCmd: [ - `docker pull ghcr.io/renovatebot/${image}`, + `docker pull ghcr.io/containerbase/${image}`, dockerRemoveCmd, - `docker run --rm --name=${name} --label=renovate_child ${defaultVolumes} -e BUILDPACK_CACHE_DIR -e CONTAINERBASE_CACHE_DIR -w "${cwd}" ghcr.io/renovatebot/${image} bash -l -c "${inCmd}"`, + `docker run --rm --name=${name} --label=renovate_child ${defaultVolumes} -e BUILDPACK_CACHE_DIR -e CONTAINERBASE_CACHE_DIR -w "${cwd}" ghcr.io/containerbase/${image} bash -l -c "${inCmd}"`, ], outOpts: [ dockerPullOpts, @@ -413,7 +413,7 @@ describe('util/exec/index', () => { }, ], adminConfig: { - dockerImagePrefix: 'ghcr.io/renovatebot', + dockerImagePrefix: 'ghcr.io/containerbase', binarySource: 'docker', }, }, @@ -792,17 +792,17 @@ describe('util/exec/index', () => { expect(actualCmd).toEqual([ `echo hello`, `echo hello`, - `docker pull renovate/${image}`, + `docker pull ${fullImage}`, `docker ps --filter name=renovate_${image} -aq`, - `docker run --rm --name=renovate_${image} --label=renovate_child ${defaultCacheVolume} -e BUILDPACK_CACHE_DIR -e CONTAINERBASE_CACHE_DIR renovate/${image} bash -l -c "echo hello"`, + `docker run --rm --name=renovate_${image} --label=renovate_child ${defaultCacheVolume} -e BUILDPACK_CACHE_DIR -e CONTAINERBASE_CACHE_DIR ${fullImage} bash -l -c "echo hello"`, `docker ps --filter name=renovate_${image} -aq`, - `docker run --rm --name=renovate_${image} --label=renovate_child ${defaultCacheVolume} -e BUILDPACK_CACHE_DIR -e CONTAINERBASE_CACHE_DIR renovate/${image} bash -l -c "echo hello"`, + `docker run --rm --name=renovate_${image} --label=renovate_child ${defaultCacheVolume} -e BUILDPACK_CACHE_DIR -e CONTAINERBASE_CACHE_DIR ${fullImage} bash -l -c "echo hello"`, `echo hello`, `echo hello`, `docker ps --filter name=renovate_${image} -aq`, - `docker run --rm --name=renovate_${image} --label=renovate_child ${defaultCacheVolume} -e BUILDPACK_CACHE_DIR -e CONTAINERBASE_CACHE_DIR renovate/${image} bash -l -c "echo hello"`, + `docker run --rm --name=renovate_${image} --label=renovate_child ${defaultCacheVolume} -e BUILDPACK_CACHE_DIR -e CONTAINERBASE_CACHE_DIR ${fullImage} bash -l -c "echo hello"`, `docker ps --filter name=renovate_${image} -aq`, - `docker run --rm --name=renovate_${image} --label=renovate_child ${defaultCacheVolume} -e BUILDPACK_CACHE_DIR -e CONTAINERBASE_CACHE_DIR renovate/${image} bash -l -c "echo hello"`, + `docker run --rm --name=renovate_${image} --label=renovate_child ${defaultCacheVolume} -e BUILDPACK_CACHE_DIR -e CONTAINERBASE_CACHE_DIR ${fullImage} bash -l -c "echo hello"`, ]); }); From 0f86d313da0c03dd94e1add7e18ddede0332d999 Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Sat, 11 Feb 2023 08:21:27 +0100 Subject: [PATCH 100/228] chore: fix artifacts tests --- lib/modules/manager/gomod/artifacts.spec.ts | 8 ++++---- lib/modules/manager/helmfile/artifacts.spec.ts | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/modules/manager/gomod/artifacts.spec.ts b/lib/modules/manager/gomod/artifacts.spec.ts index 66e40c293fbd0e..4c913e7fdff302 100644 --- a/lib/modules/manager/gomod/artifacts.spec.ts +++ b/lib/modules/manager/gomod/artifacts.spec.ts @@ -1110,7 +1110,7 @@ describe('modules/manager/gomod/artifacts', () => { { file: { contents: 'New go.sum 2', path: 'go.mod', type: 'addition' } }, ]); expect(execSnapshots).toMatchObject([ - { cmd: 'docker pull renovate/sidecar' }, + { cmd: 'docker pull containerbase/sidecar' }, {}, { cmd: @@ -1127,7 +1127,7 @@ describe('modules/manager/gomod/artifacts', () => { '-e BUILDPACK_CACHE_DIR ' + '-e CONTAINERBASE_CACHE_DIR ' + '-w "/tmp/github/some/repo" ' + - 'renovate/sidecar' + + 'containerbase/sidecar' + ' bash -l -c "' + 'install-tool golang 1.14.0' + ' && ' + @@ -1175,7 +1175,7 @@ describe('modules/manager/gomod/artifacts', () => { { file: { contents: 'New go.sum 2', path: 'go.mod', type: 'addition' } }, ]); expect(execSnapshots).toMatchObject([ - { cmd: 'docker pull renovate/sidecar' }, + { cmd: 'docker pull containerbase/sidecar' }, {}, { cmd: @@ -1192,7 +1192,7 @@ describe('modules/manager/gomod/artifacts', () => { '-e BUILDPACK_CACHE_DIR ' + '-e CONTAINERBASE_CACHE_DIR ' + '-w "/tmp/github/some/repo" ' + - 'renovate/sidecar' + + 'containerbase/sidecar' + ' bash -l -c "' + 'install-tool golang 1.14.0' + ' && ' + diff --git a/lib/modules/manager/helmfile/artifacts.spec.ts b/lib/modules/manager/helmfile/artifacts.spec.ts index 9c699bcfbbf9e0..d2213cbb15902a 100644 --- a/lib/modules/manager/helmfile/artifacts.spec.ts +++ b/lib/modules/manager/helmfile/artifacts.spec.ts @@ -155,7 +155,7 @@ describe('modules/manager/helmfile/artifacts', () => { { binarySource: 'docker', expectedCommands: [ - { cmd: 'docker pull renovate/sidecar' }, + { cmd: 'docker pull containerbase/sidecar' }, { cmd: 'docker ps --filter name=renovate_sidecar -aq' }, { cmd: @@ -165,7 +165,7 @@ describe('modules/manager/helmfile/artifacts', () => { '-e BUILDPACK_CACHE_DIR ' + '-e CONTAINERBASE_CACHE_DIR ' + '-w "/tmp/github/some/repo" ' + - 'renovate/sidecar ' + + 'containerbase/sidecar ' + 'bash -l -c "' + 'install-tool helm v3.7.2' + ' && ' + From 73c8227132d42bb35694af12e381eb80bf1f29fe Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Mon, 20 Feb 2023 18:11:12 +0100 Subject: [PATCH 101/228] fix(versioning)!: bump short ranges to version (#20494) When rangeStrategy=bump, and the existing range is "short" (e.g. `^1`), and a bump is required, the new result will be a version range (e.g. `^1.0.7`). Closes #20488 --- lib/modules/versioning/cargo/index.spec.ts | 6 ++--- lib/modules/versioning/composer/index.spec.ts | 2 +- lib/modules/versioning/helm/index.spec.ts | 10 ++++---- lib/modules/versioning/npm/index.spec.ts | 10 ++++---- lib/modules/versioning/npm/range.ts | 24 ------------------- lib/modules/versioning/poetry/index.spec.ts | 8 +++---- 6 files changed, 18 insertions(+), 42 deletions(-) diff --git a/lib/modules/versioning/cargo/index.spec.ts b/lib/modules/versioning/cargo/index.spec.ts index beb92118f248e0..c9cc7d47f098a8 100644 --- a/lib/modules/versioning/cargo/index.spec.ts +++ b/lib/modules/versioning/cargo/index.spec.ts @@ -111,11 +111,11 @@ describe('modules/versioning/cargo/index', () => { ${' = 1.0.0'} | ${'bump'} | ${'1.0.0'} | ${'1.1.0'} | ${'=1.1.0'} ${'= 1.0.0'} | ${'bump'} | ${'1.0.0'} | ${'1.1.0'} | ${'= 1.1.0'} ${'1.0.0'} | ${'bump'} | ${'1.0.0'} | ${'1.1.0'} | ${'1.1.0'} - ${'^1.0'} | ${'bump'} | ${'1.0.0'} | ${'1.0.7'} | ${'^1.0'} + ${'^1.0'} | ${'bump'} | ${'1.0.0'} | ${'1.0.7'} | ${'^1.0.7'} ${'^1.0.0'} | ${'replace'} | ${'1.0.0'} | ${'2.0.7'} | ${'^2.0.0'} ${'1.0.0'} | ${'replace'} | ${'1.0.0'} | ${'2.0.7'} | ${'2.0.0'} - ${'^1'} | ${'bump'} | ${'1.0.0'} | ${'2.1.7'} | ${'^2'} - ${'~1'} | ${'bump'} | ${'1.0.0'} | ${'1.1.7'} | ${'~1'} + ${'^1'} | ${'bump'} | ${'1.0.0'} | ${'2.1.7'} | ${'^2.1.7'} + ${'~1'} | ${'bump'} | ${'1.0.0'} | ${'1.1.7'} | ${'~1.1.7'} ${'5'} | ${'bump'} | ${'5.0.0'} | ${'5.1.7'} | ${'5'} ${'5'} | ${'bump'} | ${'5.0.0'} | ${'6.1.7'} | ${'6'} ${'5.0'} | ${'bump'} | ${'5.0.0'} | ${'5.0.7'} | ${'5.0'} diff --git a/lib/modules/versioning/composer/index.spec.ts b/lib/modules/versioning/composer/index.spec.ts index 21b03a642a03a6..8f4e30b9283f92 100644 --- a/lib/modules/versioning/composer/index.spec.ts +++ b/lib/modules/versioning/composer/index.spec.ts @@ -147,7 +147,7 @@ describe('modules/versioning/composer/index', () => { ${'~1.0 || >=3.0 <=4.0'} | ${'widen'} | ${'2.9.0'} | ${'5.0.0'} | ${'~1.0 || >=3.0 <=5.0'} ${'+4.0.0'} | ${'replace'} | ${'4.0.0'} | ${'4.2.0'} | ${'4.2.0'} ${'v4.0.0'} | ${'replace'} | ${'4.0.0'} | ${'4.2.0'} | ${'v4.2.0'} - ${'^v1.0'} | ${'bump'} | ${'1.0.0'} | ${'1.1.7'} | ${'^v1.1'} + ${'^v1.0'} | ${'bump'} | ${'1.0.0'} | ${'1.1.7'} | ${'^v1.1.7'} ${'^v1.0@beta'} | ${'bump'} | ${'1.0.0-beta3'} | ${'1.0.0-beta5'} | ${'^v1.0.0-beta5@beta'} ${'^v1.0@beta'} | ${'replace'} | ${'1.0.0-beta3'} | ${'2.0.0-beta5'} | ${'^v2.0.0-beta5@beta'} ${'^4.0@alpha'} | ${'replace'} | ${'4.0.0-alpha1'} | ${'4.0.0-beta5'} | ${'^4.0.0-beta5@alpha'} diff --git a/lib/modules/versioning/helm/index.spec.ts b/lib/modules/versioning/helm/index.spec.ts index 58584c94858622..1ef08aa9b16cfe 100644 --- a/lib/modules/versioning/helm/index.spec.ts +++ b/lib/modules/versioning/helm/index.spec.ts @@ -34,13 +34,13 @@ describe('modules/versioning/helm/index', () => { test.each` currentValue | rangeStrategy | currentVersion | newVersion | expected ${'=1.0.0'} | ${'bump'} | ${'1.0.0'} | ${'1.1.0'} | ${'=1.1.0'} - ${'^1.0'} | ${'bump'} | ${'1.0.0'} | ${'1.0.7'} | ${'^1.0'} + ${'^1.0'} | ${'bump'} | ${'1.0.0'} | ${'1.0.7'} | ${'^1.0.7'} ${'^1'} | ${'bump'} | ${'1.0.0'} | ${'1.0.7-prerelease.1'} | ${'^1.0.7-prerelease.1'} - ${'^1.0'} | ${'bump'} | ${'1.0.0'} | ${'1.1.7'} | ${'^1.1'} - ${'~1.0'} | ${'bump'} | ${'1.0.0'} | ${'1.1.7'} | ${'~1.1'} + ${'^1.0'} | ${'bump'} | ${'1.0.0'} | ${'1.1.7'} | ${'^1.1.7'} + ${'~1.0'} | ${'bump'} | ${'1.0.0'} | ${'1.1.7'} | ${'~1.1.7'} ${'~1.0'} | ${'bump'} | ${'1.0.0'} | ${'1.0.7-prerelease.1'} | ${'~1.0.7-prerelease.1'} - ${'^1'} | ${'bump'} | ${'1.0.0'} | ${'2.1.7'} | ${'^2'} - ${'~1'} | ${'bump'} | ${'1.0.0'} | ${'1.1.7'} | ${'~1'} + ${'^1'} | ${'bump'} | ${'1.0.0'} | ${'2.1.7'} | ${'^2.1.7'} + ${'~1'} | ${'bump'} | ${'1.0.0'} | ${'1.1.7'} | ${'~1.1.7'} ${'5'} | ${'bump'} | ${'5.0.0'} | ${'5.1.7'} | ${'5'} ${'5'} | ${'bump'} | ${'5.0.0'} | ${'6.1.7'} | ${'6'} ${'5.0'} | ${'bump'} | ${'5.0.0'} | ${'5.0.7'} | ${'5.0'} diff --git a/lib/modules/versioning/npm/index.spec.ts b/lib/modules/versioning/npm/index.spec.ts index 8330064d653422..20dedb0f82616c 100644 --- a/lib/modules/versioning/npm/index.spec.ts +++ b/lib/modules/versioning/npm/index.spec.ts @@ -58,14 +58,14 @@ describe('modules/versioning/npm/index', () => { test.each` currentValue | rangeStrategy | currentVersion | newVersion | expected ${'=1.0.0'} | ${'bump'} | ${'1.0.0'} | ${'1.1.0'} | ${'=1.1.0'} - ${'^1.0'} | ${'bump'} | ${'1.0.0'} | ${'1.0.7'} | ${'^1.0'} + ${'^1.0'} | ${'bump'} | ${'1.0.0'} | ${'1.0.7'} | ${'^1.0.7'} ${'^1'} | ${'bump'} | ${'1.0.0'} | ${'1.0.7-prerelease.1'} | ${'^1.0.7-prerelease.1'} ${'~> 1.0.0'} | ${'replace'} | ${'1.0.0'} | ${'1.1.7'} | ${'~> 1.1.0'} - ${'^1.0'} | ${'bump'} | ${'1.0.0'} | ${'1.1.7'} | ${'^1.1'} - ${'~1.0'} | ${'bump'} | ${'1.0.0'} | ${'1.1.7'} | ${'~1.1'} + ${'^1.0'} | ${'bump'} | ${'1.0.0'} | ${'1.1.7'} | ${'^1.1.7'} + ${'~1.0'} | ${'bump'} | ${'1.0.0'} | ${'1.1.7'} | ${'~1.1.7'} ${'~1.0'} | ${'bump'} | ${'1.0.0'} | ${'1.0.7-prerelease.1'} | ${'~1.0.7-prerelease.1'} - ${'^1'} | ${'bump'} | ${'1.0.0'} | ${'2.1.7'} | ${'^2'} - ${'~1'} | ${'bump'} | ${'1.0.0'} | ${'1.1.7'} | ${'~1'} + ${'^1'} | ${'bump'} | ${'1.0.0'} | ${'2.1.7'} | ${'^2.1.7'} + ${'~1'} | ${'bump'} | ${'1.0.0'} | ${'1.1.7'} | ${'~1.1.7'} ${'5'} | ${'bump'} | ${'5.0.0'} | ${'5.1.7'} | ${'5'} ${'5'} | ${'bump'} | ${'5.0.0'} | ${'6.1.7'} | ${'6'} ${'5.0'} | ${'bump'} | ${'5.0.0'} | ${'5.0.7'} | ${'5.0'} diff --git a/lib/modules/versioning/npm/range.ts b/lib/modules/versioning/npm/range.ts index 37140e3d9cce2f..f8c37b0157bb65 100644 --- a/lib/modules/versioning/npm/range.ts +++ b/lib/modules/versioning/npm/range.ts @@ -136,33 +136,9 @@ export function getNewValue({ }); } if (element.operator === '^') { - const split = currentValue.split('.'); - if (suffix.length) { - return `^${newVersion}`; - } - if (split.length === 1) { - // ^4 - return `^${toVersionMajor}`; - } - if (split.length === 2) { - // ^4.1 - return `^${toVersionMajor}.${toVersionMinor}`; - } return `^${newVersion}`; } if (element.operator === '~') { - const split = currentValue.split('.'); - if (suffix.length) { - return `~${newVersion}`; - } - if (split.length === 1) { - // ~4 - return `~${toVersionMajor}`; - } - if (split.length === 2) { - // ~4.1 - return `~${toVersionMajor}.${toVersionMinor}`; - } return `~${newVersion}`; } if (element.operator === '=') { diff --git a/lib/modules/versioning/poetry/index.spec.ts b/lib/modules/versioning/poetry/index.spec.ts index 7d919a24c6cbb2..d0c69c2c3e5417 100644 --- a/lib/modules/versioning/poetry/index.spec.ts +++ b/lib/modules/versioning/poetry/index.spec.ts @@ -189,15 +189,15 @@ describe('modules/versioning/poetry/index', () => { ${' = 1.0.0'} | ${'bump'} | ${'1.0.0'} | ${'1.1.0'} | ${'=1.1.0'} ${' = 1.0.0'} | ${'bump'} | ${'1.0.0'} | ${'1.1.0'} | ${'=1.1.0'} ${'= 1.0.0'} | ${'bump'} | ${'1.0.0'} | ${'1.1.0'} | ${'=1.1.0'} - ${'^1.0'} | ${'bump'} | ${'1.0.0'} | ${'1.0.7'} | ${'^1.0'} + ${'^1.0'} | ${'bump'} | ${'1.0.0'} | ${'1.0.7'} | ${'^1.0.7'} ${'^1.0.0'} | ${'replace'} | ${'1.0.0'} | ${'2.0.7'} | ${'^2.0.0'} ${'^5.0.3'} | ${'replace'} | ${'5.3.1'} | ${'5.5'} | ${'^5.0.3'} ${'1.0.0'} | ${'replace'} | ${'1.0.0'} | ${'2.0.7'} | ${'2.0.7'} ${'^1.0.0'} | ${'replace'} | ${'1.0.0'} | ${'2.0.7'} | ${'^2.0.0'} ${'^0.5.15'} | ${'replace'} | ${'0.5.15'} | ${'0.6'} | ${'^0.5.15'} ${'^0.5.15'} | ${'replace'} | ${'0.5.15'} | ${'0.6b.4'} | ${'^0.5.15'} - ${'^1'} | ${'bump'} | ${'1.0.0'} | ${'2.1.7'} | ${'^2'} - ${'~1'} | ${'bump'} | ${'1.0.0'} | ${'1.1.7'} | ${'~1'} + ${'^1'} | ${'bump'} | ${'1.0.0'} | ${'2.1.7'} | ${'^2.1.7'} + ${'~1'} | ${'bump'} | ${'1.0.0'} | ${'1.1.7'} | ${'~1.1.7'} ${'5'} | ${'bump'} | ${'5.0.0'} | ${'5.1.7'} | ${'5'} ${'5'} | ${'bump'} | ${'5.0.0'} | ${'6.1.7'} | ${'6'} ${'5.0'} | ${'bump'} | ${'5.0.0'} | ${'5.0.7'} | ${'5.0'} @@ -211,7 +211,7 @@ describe('modules/versioning/poetry/index', () => { ${'^0.8.0-alpha.0'} | ${'bump'} | ${'0.8.0-alpha.0'} | ${'0.8.0-alpha.1'} | ${'^0.8.0-alpha.1'} ${'^0.8.0-alpha.0'} | ${'bump'} | ${'0.8.0-alpha.0'} | ${'0.8.0a1'} | ${'^0.8.0-alpha.1'} ${'^1.0.0'} | ${'replace'} | ${'1.0.0'} | ${'1.2.3'} | ${'^1.0.0'} - ${'~1.0'} | ${'bump'} | ${'1.0.0'} | ${'1.1.7'} | ${'~1.1'} + ${'~1.0'} | ${'bump'} | ${'1.0.0'} | ${'1.1.7'} | ${'~1.1.7'} ${'1.0.*'} | ${'replace'} | ${'1.0.0'} | ${'1.1.0'} | ${'1.1.*'} ${'1.*'} | ${'replace'} | ${'1.0.0'} | ${'2.1.0'} | ${'2.*'} ${'~0.6.1'} | ${'replace'} | ${'0.6.8'} | ${'0.7.0-rc.2'} | ${'~0.7.0-rc'} From b17bcf27895f27018a7a36c3bc7ccbcf3cfcae39 Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Tue, 21 Feb 2023 06:54:16 +0100 Subject: [PATCH 102/228] refactor(datasource): use packageName and not depName for datasource lookups (#20474) --- .../datasource/artifactory/index.spec.ts | 4 +- lib/modules/datasource/artifactory/readme.md | 2 +- .../aws-machine-image/index.spec.ts | 18 +- lib/modules/datasource/aws-rds/index.spec.ts | 6 +- .../azure-pipelines-tasks/index.spec.ts | 8 +- .../datasource/bitbucket-tags/index.spec.ts | 8 +- lib/modules/datasource/cdnjs/index.spec.ts | 20 +- lib/modules/datasource/clojure/index.spec.ts | 4 +- lib/modules/datasource/common.ts | 2 +- lib/modules/datasource/conan/common.ts | 4 +- lib/modules/datasource/conan/index.spec.ts | 19 +- lib/modules/datasource/conan/index.ts | 24 +- lib/modules/datasource/conan/types.ts | 2 +- lib/modules/datasource/conda/index.spec.ts | 24 +- lib/modules/datasource/cpan/index.spec.ts | 10 +- lib/modules/datasource/crate/index.spec.ts | 40 +-- .../datasource/dart-version/index.spec.ts | 10 +- lib/modules/datasource/dart/index.spec.ts | 14 +- lib/modules/datasource/docker/index.spec.ts | 120 ++++----- .../datasource/dotnet-version/index.spec.ts | 18 +- .../datasource/flutter-version/index.spec.ts | 10 +- .../galaxy-collection/index.spec.ts | 20 +- lib/modules/datasource/galaxy/index.spec.ts | 18 +- lib/modules/datasource/git-refs/index.spec.ts | 10 +- lib/modules/datasource/git-refs/readme.md | 2 +- lib/modules/datasource/git-tags/index.spec.ts | 8 +- .../datasource/github-releases/index.spec.ts | 14 +- .../datasource/github-tags/index.spec.ts | 4 +- .../datasource/gitlab-packages/index.spec.ts | 8 +- .../datasource/gitlab-packages/readme.md | 2 +- .../datasource/gitlab-releases/index.spec.ts | 6 +- .../datasource/gitlab-releases/readme.md | 2 +- .../datasource/gitlab-tags/index.spec.ts | 14 +- lib/modules/datasource/gitlab-tags/readme.md | 2 +- .../datasource/golang-version/index.spec.ts | 20 +- .../datasource/gradle-version/index.spec.ts | 2 +- lib/modules/datasource/helm/index.spec.ts | 24 +- lib/modules/datasource/hex/index.spec.ts | 22 +- .../datasource/hexpm-bob/index.spec.ts | 18 +- lib/modules/datasource/index.spec.ts | 71 ++--- lib/modules/datasource/index.ts | 11 +- .../datasource/java-version/index.spec.ts | 18 +- .../datasource/jenkins-plugins/index.spec.ts | 4 +- .../datasource/kubernetes-api/index.spec.ts | 6 +- lib/modules/datasource/maven/index.spec.ts | 4 +- lib/modules/datasource/maven/s3.spec.ts | 4 +- lib/modules/datasource/node/index.spec.ts | 8 +- lib/modules/datasource/npm/index.spec.ts | 62 +++-- lib/modules/datasource/nuget/index.spec.ts | 16 +- lib/modules/datasource/orb/index.spec.ts | 12 +- .../datasource/packagist/index.spec.ts | 32 +-- lib/modules/datasource/pod/index.spec.ts | 4 +- .../datasource/puppet-forge/index.spec.ts | 13 +- lib/modules/datasource/pypi/index.spec.ts | 54 ++-- lib/modules/datasource/repology/index.spec.ts | 36 +-- .../datasource/ruby-version/index.spec.ts | 6 +- lib/modules/datasource/rubygems/index.spec.ts | 2 +- .../datasource/sbt-package/index.spec.ts | 14 +- .../datasource/sbt-plugin/index.spec.ts | 10 +- .../datasource/terraform-module/index.spec.ts | 26 +- .../terraform-provider/index.spec.ts | 21 +- lib/modules/datasource/types.ts | 6 +- .../common/parent-version.ts | 10 +- .../manager/terraform/lockfile/index.ts | 2 +- lib/util/exec/containerbase.ts | 54 ++-- lib/util/exec/docker/index.ts | 12 +- lib/util/exec/types.ts | 2 +- .../process/__snapshots__/fetch.spec.ts.snap | 4 + lib/workers/repository/process/fetch.ts | 3 +- .../repository/process/lookup/index.spec.ts | 252 +++++++++--------- .../repository/process/lookup/index.ts | 32 +-- .../repository/process/lookup/types.ts | 2 +- .../update/pr/changelog/releases.spec.ts | 10 +- 73 files changed, 706 insertions(+), 680 deletions(-) diff --git a/lib/modules/datasource/artifactory/index.spec.ts b/lib/modules/datasource/artifactory/index.spec.ts index e0d6c1b9499e43..d84c402ef52403 100644 --- a/lib/modules/datasource/artifactory/index.spec.ts +++ b/lib/modules/datasource/artifactory/index.spec.ts @@ -12,7 +12,7 @@ const testRegistryUrl = 'https://jfrog.company.com/artifactory'; const testLookupName = 'project'; const testConfig = { registryUrls: [testRegistryUrl], - depName: testLookupName, + packageName: testLookupName, }; const fixtureReleasesAsFolders = Fixtures.get('releases-as-folders.html'); const fixtureReleasesAsFiles = Fixtures.get('releases-as-files.html'); @@ -70,7 +70,6 @@ describe('modules/datasource/artifactory/index', () => { .reply(200, '\n

Header

\n
1.3.0\n'); const res = await getPkgReleases({ registryUrls: [testRegistryUrl, secondRegistryUrl], - depName: testLookupName, datasource, packageName: testLookupName, }); @@ -81,7 +80,6 @@ describe('modules/datasource/artifactory/index', () => { it('returns null without registryUrl + warning', async () => { const res = await getPkgReleases({ datasource, - depName: testLookupName, packageName: testLookupName, }); expect(logger.warn).toHaveBeenCalledTimes(1); diff --git a/lib/modules/datasource/artifactory/readme.md b/lib/modules/datasource/artifactory/readme.md index 87b5342d66e82e..bebfc586c407bb 100644 --- a/lib/modules/datasource/artifactory/readme.md +++ b/lib/modules/datasource/artifactory/readme.md @@ -2,6 +2,6 @@ Artifactory is the recommended registry for Conan packages. This datasource returns releases from given custom `registryUrl`(s). -The target URL is composed by the `registryUrl` and the `packageName`, which defaults to `depName` when `packageName` is not defined. +The target URL is composed by the `registryUrl` and the `packageName`. The release timestamp is taken from the date in the directory listing, and is assumed to be in UTC time. diff --git a/lib/modules/datasource/aws-machine-image/index.spec.ts b/lib/modules/datasource/aws-machine-image/index.spec.ts index d3bca1ce1417f2..ff8f7aef304409 100644 --- a/lib/modules/datasource/aws-machine-image/index.spec.ts +++ b/lib/modules/datasource/aws-machine-image/index.spec.ts @@ -276,7 +276,7 @@ describe('modules/datasource/aws-machine-image/index', () => { mockDescribeImagesCommand(mockEmpty); const res = await getDigest({ datasource, - depName: + packageName: '[{"Name":"owner-id","Values":["602401143452"]},{"Name":"name","Values":["without newValue, without returned images to be null"]}]', }); expect(res).toBeNull(); @@ -286,7 +286,7 @@ describe('modules/datasource/aws-machine-image/index', () => { mockDescribeImagesCommand(mock1Image); const res = await getDigest({ datasource, - depName: + packageName: '[{"Name":"owner-id","Values":["602401143452"]},{"Name":"name","Values":["without newValue, with one matching image to return that image"]}]', }); expect(res).toStrictEqual(image3.Name); @@ -296,7 +296,7 @@ describe('modules/datasource/aws-machine-image/index', () => { mockDescribeImagesCommand(mock3Images); const res = await getDigest({ datasource, - depName: + packageName: '[{"Name":"owner-id","Values":["602401143452"]},{"Name":"name","Values":["without newValue, with 3 matching image to return the newest image"]}]', }); expect(res).toStrictEqual(image3.Name); @@ -307,7 +307,7 @@ describe('modules/datasource/aws-machine-image/index', () => { const res = await getDigest( { datasource, - depName: + packageName: '[{"Name":"owner-id","Values":["602401143452"]},{"Name":"name","Values":["with matching newValue, with 3 matching image to return the matching image"]}]', }, image1.ImageId @@ -320,7 +320,7 @@ describe('modules/datasource/aws-machine-image/index', () => { const res = await getDigest( { datasource, - depName: + packageName: '[{"Name":"owner-id","Values":["602401143452"]},{"Name":"name","Values":["with not matching newValue, with 3 matching images to return the matching image"]}]', }, 'will never match' @@ -334,7 +334,7 @@ describe('modules/datasource/aws-machine-image/index', () => { mockDescribeImagesCommand(mockEmpty); const res = await getPkgReleases({ datasource, - depName: + packageName: '[{"Name":"owner-id","Values":["602401143452"]},{"Name":"name","Values":["without returned images to be null"]}]', }); expect(res).toBeNull(); @@ -344,7 +344,7 @@ describe('modules/datasource/aws-machine-image/index', () => { mockDescribeImagesCommand(mock1Image); const res = await getPkgReleases({ datasource, - depName: + packageName: '[{"Name":"owner-id","Values":["602401143452"]},{"Name":"name","Values":["with one matching image to return that image"]}]', }); expect(res).toStrictEqual({ @@ -363,7 +363,7 @@ describe('modules/datasource/aws-machine-image/index', () => { mockDescribeImagesCommand({ Images: [image2] }); const res = await getPkgReleases({ datasource, - depName: + packageName: '[{"Name":"owner-id","Values":["602401143452"]},{"Name":"name","Values":["with one deprecated matching image to return that image"]}]', }); expect(res).toStrictEqual({ @@ -382,7 +382,7 @@ describe('modules/datasource/aws-machine-image/index', () => { mockDescribeImagesCommand(mock3Images); const res = await getPkgReleases({ datasource, - depName: + packageName: '[{"Name":"owner-id","Values":["602401143452"]},{"Name":"name","Values":["with 3 matching image to return the newest image"]}]', }); expect(res).toStrictEqual({ diff --git a/lib/modules/datasource/aws-rds/index.spec.ts b/lib/modules/datasource/aws-rds/index.spec.ts index fa94db92adcfe6..d0eda95cfac8ff 100644 --- a/lib/modules/datasource/aws-rds/index.spec.ts +++ b/lib/modules/datasource/aws-rds/index.spec.ts @@ -105,7 +105,7 @@ describe('modules/datasource/aws-rds/index', () => { }); const res = await getPkgReleases({ datasource: AwsRdsDataSource.id, - depName: '[{"Name":"engine","Values":["mysql"]}]', + packageName: '[{"Name":"engine","Values":["mysql"]}]', }); expect(res).toBeNull(); }); @@ -117,7 +117,7 @@ describe('modules/datasource/aws-rds/index', () => { }); const res = await getPkgReleases({ datasource: AwsRdsDataSource.id, - depName: '[{"Name":"engine","Values":["mysql"]}]', + packageName: '[{"Name":"engine","Values":["mysql"]}]', }); expect(res).toStrictEqual({ releases: [ @@ -136,7 +136,7 @@ describe('modules/datasource/aws-rds/index', () => { }); const res = await getPkgReleases({ datasource: AwsRdsDataSource.id, - depName: '[{"Name":"engine","Values":["mysql"]}]', + packageName: '[{"Name":"engine","Values":["mysql"]}]', }); expect(res).toStrictEqual({ releases: [ diff --git a/lib/modules/datasource/azure-pipelines-tasks/index.spec.ts b/lib/modules/datasource/azure-pipelines-tasks/index.spec.ts index 4b009a5ae85bfc..75d3b009e7932c 100644 --- a/lib/modules/datasource/azure-pipelines-tasks/index.spec.ts +++ b/lib/modules/datasource/azure-pipelines-tasks/index.spec.ts @@ -6,7 +6,7 @@ describe('modules/datasource/azure-pipelines-tasks/index', () => { expect( await getPkgReleases({ datasource: AzurePipelinesTasksDatasource.id, - depName: 'unknown', + packageName: 'unknown', }) ).toBeNull(); }); @@ -15,7 +15,7 @@ describe('modules/datasource/azure-pipelines-tasks/index', () => { expect( await getPkgReleases({ datasource: AzurePipelinesTasksDatasource.id, - depName: 'AutomatedAnalysis', + packageName: 'AutomatedAnalysis', }) ).toEqual({ releases: [{ version: '0.171.0' }, { version: '0.198.0' }] }); }); @@ -24,7 +24,7 @@ describe('modules/datasource/azure-pipelines-tasks/index', () => { expect( await getPkgReleases({ datasource: AzurePipelinesTasksDatasource.id, - depName: 'AutomatedAnalysis-Marketplace', + packageName: 'AutomatedAnalysis-Marketplace', }) ).toEqual({ releases: [{ version: '0.171.0' }, { version: '0.198.0' }] }); }); @@ -33,7 +33,7 @@ describe('modules/datasource/azure-pipelines-tasks/index', () => { expect( await getPkgReleases({ datasource: AzurePipelinesTasksDatasource.id, - depName: 'automatedanalysis', + packageName: 'automatedanalysis', }) ).toEqual({ releases: [{ version: '0.171.0' }, { version: '0.198.0' }] }); }); diff --git a/lib/modules/datasource/bitbucket-tags/index.spec.ts b/lib/modules/datasource/bitbucket-tags/index.spec.ts index 369f646c3cb170..79ac0913e9f30b 100644 --- a/lib/modules/datasource/bitbucket-tags/index.spec.ts +++ b/lib/modules/datasource/bitbucket-tags/index.spec.ts @@ -32,7 +32,7 @@ describe('modules/datasource/bitbucket-tags/index', () => { .reply(200, body); const res = await getPkgReleases({ datasource, - depName: 'some/dep2', + packageName: 'some/dep2', }); expect(res).toMatchSnapshot(); expect(res?.releases).toHaveLength(3); @@ -69,7 +69,7 @@ describe('modules/datasource/bitbucket-tags/index', () => { .reply(200, body); const res = await getDigest({ datasource, - depName: 'some/dep2', + packageName: 'some/dep2', }); expect(res).toMatchSnapshot(); expect(res).toBeString(); @@ -94,7 +94,7 @@ describe('modules/datasource/bitbucket-tags/index', () => { .reply(200, body); const res = await getDigest({ datasource, - depName: 'some/dep2', + packageName: 'some/dep2', }); expect(res).toBeNull(); }); @@ -116,7 +116,7 @@ describe('modules/datasource/bitbucket-tags/index', () => { const res = await getDigest( { datasource, - depName: 'some/dep2', + packageName: 'some/dep2', }, 'v1.0.0' ); diff --git a/lib/modules/datasource/cdnjs/index.spec.ts b/lib/modules/datasource/cdnjs/index.spec.ts index 922777da2e90a2..67b1945a07bfb1 100644 --- a/lib/modules/datasource/cdnjs/index.spec.ts +++ b/lib/modules/datasource/cdnjs/index.spec.ts @@ -18,7 +18,7 @@ describe('modules/datasource/cdnjs/index', () => { await expect( getPkgReleases({ datasource: CdnJsDatasource.id, - depName: 'foo/bar', + packageName: 'foo/bar', }) ).rejects.toThrow(EXTERNAL_HOST_ERROR); }); @@ -28,7 +28,7 @@ describe('modules/datasource/cdnjs/index', () => { await expect( getPkgReleases({ datasource: CdnJsDatasource.id, - depName: 'foo/bar', + packageName: 'foo/bar', }) ).rejects.toThrow(EXTERNAL_HOST_ERROR); }); @@ -38,7 +38,7 @@ describe('modules/datasource/cdnjs/index', () => { expect( await getPkgReleases({ datasource: CdnJsDatasource.id, - depName: 'foo/bar', + packageName: 'foo/bar', }) ).toBeNull(); }); @@ -51,7 +51,7 @@ describe('modules/datasource/cdnjs/index', () => { expect( await getPkgReleases({ datasource: CdnJsDatasource.id, - depName: 'doesnotexist/doesnotexist', + packageName: 'doesnotexist/doesnotexist', }) ).toBeNull(); }); @@ -61,7 +61,7 @@ describe('modules/datasource/cdnjs/index', () => { await expect( getPkgReleases({ datasource: CdnJsDatasource.id, - depName: 'foo/bar', + packageName: 'foo/bar', }) ).rejects.toThrow(EXTERNAL_HOST_ERROR); }); @@ -71,7 +71,7 @@ describe('modules/datasource/cdnjs/index', () => { await expect( getPkgReleases({ datasource: CdnJsDatasource.id, - depName: 'foo/bar', + packageName: 'foo/bar', }) ).rejects.toThrow(EXTERNAL_HOST_ERROR); }); @@ -81,7 +81,7 @@ describe('modules/datasource/cdnjs/index', () => { await expect( getPkgReleases({ datasource: CdnJsDatasource.id, - depName: 'foo/bar', + packageName: 'foo/bar', }) ).rejects.toThrow(EXTERNAL_HOST_ERROR); }); @@ -91,7 +91,7 @@ describe('modules/datasource/cdnjs/index', () => { await expect( getPkgReleases({ datasource: CdnJsDatasource.id, - depName: 'foo/bar', + packageName: 'foo/bar', }) ).rejects.toThrow(EXTERNAL_HOST_ERROR); }); @@ -103,7 +103,7 @@ describe('modules/datasource/cdnjs/index', () => { .reply(200, Fixtures.get('d3-force.json')); const res = await getPkgReleases({ datasource: CdnJsDatasource.id, - depName: 'd3-force/d3-force.js', + packageName: 'd3-force/d3-force.js', }); expect(res).toMatchSnapshot(); }); @@ -115,7 +115,7 @@ describe('modules/datasource/cdnjs/index', () => { .reply(200, Fixtures.get('bulma.json')); const res = await getPkgReleases({ datasource: CdnJsDatasource.id, - depName: 'bulma/only/0.7.5/style.css', + packageName: 'bulma/only/0.7.5/style.css', }); expect(res).toMatchSnapshot(); }); diff --git a/lib/modules/datasource/clojure/index.spec.ts b/lib/modules/datasource/clojure/index.spec.ts index 87b876cb4ef4d7..6e6fef32ebf9e2 100644 --- a/lib/modules/datasource/clojure/index.spec.ts +++ b/lib/modules/datasource/clojure/index.spec.ts @@ -144,10 +144,10 @@ function mockGenericPackage(opts: MockOpts = {}) { } } function get( - depName = 'org.example:package', + packageName = 'org.example:package', ...registryUrls: string[] ): Promise { - const conf = { versioning, datasource: ClojureDatasource.id, depName }; + const conf = { versioning, datasource: ClojureDatasource.id, packageName }; return getPkgReleases(registryUrls ? { ...conf, registryUrls } : conf); } diff --git a/lib/modules/datasource/common.ts b/lib/modules/datasource/common.ts index 69c68360b25a45..e02c77e620af85 100644 --- a/lib/modules/datasource/common.ts +++ b/lib/modules/datasource/common.ts @@ -5,6 +5,6 @@ export function isGetPkgReleasesConfig( ): input is GetPkgReleasesConfig { return ( (input as GetPkgReleasesConfig).datasource !== undefined && - (input as GetPkgReleasesConfig).depName !== undefined + (input as GetPkgReleasesConfig).packageName !== undefined ); } diff --git a/lib/modules/datasource/conan/common.ts b/lib/modules/datasource/conan/common.ts index 505aadb2c9669e..4758658f67b437 100644 --- a/lib/modules/datasource/conan/common.ts +++ b/lib/modules/datasource/conan/common.ts @@ -11,7 +11,7 @@ export const conanDatasourceRegex = regEx( ); export function getConanPackage(packageName: string): ConanPackage { - const depName = packageName.split('/')[0]; + const conanName = packageName.split('/')[0]; const userAndChannel = packageName.split('@')[1]; - return { depName, userAndChannel }; + return { conanName, userAndChannel }; } diff --git a/lib/modules/datasource/conan/index.spec.ts b/lib/modules/datasource/conan/index.spec.ts index 68fc393a514315..84c1a98c2fb56b 100644 --- a/lib/modules/datasource/conan/index.spec.ts +++ b/lib/modules/datasource/conan/index.spec.ts @@ -16,14 +16,14 @@ const datasource = ConanDatasource.id; const nonDefaultRegistryUrl = 'https://not.conan.io/'; const config: GetPkgReleasesConfig = { - depName: '', + packageName: '', datasource, versioning: conan.id, registryUrls: [nonDefaultRegistryUrl], }; const digestConfig: GetDigestInputConfig = { - depName: 'fake', + packageName: 'fake', datasource, registryUrls: [nonDefaultRegistryUrl], }; @@ -59,7 +59,6 @@ describe('modules/datasource/conan/index', () => { .scope(nonDefaultRegistryUrl) .get('/v2/conans/search?q=fakepackage') .reply(200); - config.depName = 'fakepackage'; expect( await getPkgReleases({ ...config, @@ -73,7 +72,6 @@ describe('modules/datasource/conan/index', () => { .scope(nonDefaultRegistryUrl) .get('/v2/conans/search?q=fakepackage') .reply(200, {}); - config.depName = 'fakepackage'; expect( await getPkgReleases({ ...config, @@ -88,7 +86,6 @@ describe('modules/datasource/conan/index', () => { .get('/v2/conans/search?q=poco') .reply(404); config.registryUrls = ['https://fake.bintray.com/']; - config.depName = 'poco'; expect( await getPkgReleases({ ...config, @@ -102,7 +99,6 @@ describe('modules/datasource/conan/index', () => { .scope(nonDefaultRegistryUrl) .get('/v2/conans/search?q=fakepackage') .reply(200, fakeJson); - config.depName = 'fakepackage'; expect( await getPkgReleases({ ...config, @@ -116,7 +112,6 @@ describe('modules/datasource/conan/index', () => { .scope(nonDefaultRegistryUrl) .get('/v2/conans/search?q=poco') .reply(200, pocoJson); - config.depName = 'poco'; expect( await getPkgReleases({ ...config, @@ -155,7 +150,6 @@ describe('modules/datasource/conan/index', () => { await getPkgReleases({ ...config, registryUrls: [defaultRegistryUrl], - depName: 'poco', packageName: 'poco/1.2@_/_', }) ).toEqual({ @@ -191,7 +185,6 @@ describe('modules/datasource/conan/index', () => { await getPkgReleases({ ...config, registryUrls: [defaultRegistryUrl], - depName: 'poco', packageName: 'poco/1.2@foo/bar', }) ).toBeNull(); @@ -202,7 +195,7 @@ describe('modules/datasource/conan/index', () => { .scope(nonDefaultRegistryUrl) .get('/v2/conans/search?q=poco') .reply(200, pocoJson); - config.depName = 'poco'; + config.packageName = 'poco'; expect( await getPkgReleases({ ...config, @@ -216,7 +209,7 @@ describe('modules/datasource/conan/index', () => { .scope(nonDefaultRegistryUrl) .get('/v2/conans/search?q=bad') .reply(200, malformedJson); - config.depName = 'bad'; + config.packageName = 'bad'; expect( await getPkgReleases({ ...config, @@ -238,7 +231,7 @@ describe('modules/datasource/conan/index', () => { .get('/v2/conans/search?q=poco') .replyWithError('error'); config.registryUrls = ['https://fake.bintray.com/']; - config.depName = 'poco'; + config.packageName = 'poco'; expect( await getPkgReleases({ ...config, @@ -253,7 +246,7 @@ describe('modules/datasource/conan/index', () => { .get('/v2/conans/search?q=poco') .reply(200, fakeJson); config.registryUrls = ['https://fake.bintray.com']; - config.depName = 'poco'; + config.packageName = 'poco'; expect( await getPkgReleases({ ...config, diff --git a/lib/modules/datasource/conan/index.ts b/lib/modules/datasource/conan/index.ts index 037062c1276140..c77dc6e8126049 100644 --- a/lib/modules/datasource/conan/index.ts +++ b/lib/modules/datasource/conan/index.ts @@ -36,17 +36,17 @@ export class ConanDatasource extends Datasource { } async getConanCenterReleases( - depName: string, + conanName: string, userAndChannel: string ): Promise { if (userAndChannel && userAndChannel !== '@_/_') { logger.debug( - { depName, userAndChannel }, + { conanName, userAndChannel }, 'User/channel not supported for Conan Center lookups' ); return null; } - const url = `https://api.github.com/repos/conan-io/conan-center-index/contents/recipes/${depName}/config.yml`; + const url = `https://api.github.com/repos/conan-io/conan-center-index/contents/recipes/${conanName}/config.yml`; const res = await this.githubHttp.get(url, { headers: { accept: 'application/vnd.github.v3.raw' }, }); @@ -78,7 +78,7 @@ export class ConanDatasource extends Datasource { const revisionLookUp = joinUrlParts( url, 'v2/conans/', - conanPackage.depName, + conanPackage.conanName, newValue, conanPackage.userAndChannel, '/revisions' @@ -102,19 +102,27 @@ export class ConanDatasource extends Datasource { packageName, }: GetReleasesConfig): Promise { const conanPackage = getConanPackage(packageName); - const depName = conanPackage.depName; const userAndChannel = '@' + conanPackage.userAndChannel; if ( is.string(registryUrl) && ensureTrailingSlash(registryUrl) === defaultRegistryUrl ) { - return this.getConanCenterReleases(depName, userAndChannel); + return this.getConanCenterReleases( + conanPackage.conanName, + userAndChannel + ); } - logger.trace({ depName, registryUrl }, 'Looking up conan api dependency'); + logger.trace( + { packageName, registryUrl }, + 'Looking up conan api dependency' + ); if (registryUrl) { const url = ensureTrailingSlash(registryUrl); - const lookupUrl = joinUrlParts(url, `v2/conans/search?q=${depName}`); + const lookupUrl = joinUrlParts( + url, + `v2/conans/search?q=${conanPackage.conanName}` + ); try { const rep = await this.http.getJson(lookupUrl); diff --git a/lib/modules/datasource/conan/types.ts b/lib/modules/datasource/conan/types.ts index 543ff3d6876386..854935c11c2d7b 100644 --- a/lib/modules/datasource/conan/types.ts +++ b/lib/modules/datasource/conan/types.ts @@ -16,6 +16,6 @@ export interface ConanYAML { } export interface ConanPackage { - depName: string; + conanName: string; userAndChannel: string; } diff --git a/lib/modules/datasource/conda/index.spec.ts b/lib/modules/datasource/conda/index.spec.ts index 44235fd2bea0c8..0085c36c69122e 100644 --- a/lib/modules/datasource/conda/index.spec.ts +++ b/lib/modules/datasource/conda/index.spec.ts @@ -5,8 +5,8 @@ import { EXTERNAL_HOST_ERROR } from '../../../constants/error-messages'; import { datasource, defaultRegistryUrl } from './common'; import { CondaDatasource } from './index'; -const depName = 'main/pytest'; -const depUrl = `/${depName}`; +const packageName = 'main/pytest'; +const depUrl = `/${packageName}`; describe('modules/datasource/conda/index', () => { describe('getReleases', () => { @@ -15,7 +15,7 @@ describe('modules/datasource/conda/index', () => { await expect( getPkgReleases({ datasource, - depName, + packageName, }) ).rejects.toThrow(EXTERNAL_HOST_ERROR); }); @@ -25,7 +25,7 @@ describe('modules/datasource/conda/index', () => { expect( await getPkgReleases({ datasource, - depName, + packageName, }) ).toBeNull(); }); @@ -35,7 +35,7 @@ describe('modules/datasource/conda/index', () => { expect( await getPkgReleases({ datasource, - depName, + packageName, }) ).toBeNull(); }); @@ -45,7 +45,7 @@ describe('modules/datasource/conda/index', () => { await expect( getPkgReleases({ datasource, - depName, + packageName, }) ).rejects.toThrow(EXTERNAL_HOST_ERROR); }); @@ -57,7 +57,7 @@ describe('modules/datasource/conda/index', () => { .reply(200, Fixtures.get('pytest.json')); const res = await getPkgReleases({ datasource, - depName, + packageName, }); expect(res).toMatchSnapshot(); expect(res?.releases).toHaveLength(94); @@ -67,20 +67,20 @@ describe('modules/datasource/conda/index', () => { const condaDatasource = new CondaDatasource(); const res = await condaDatasource.getReleases({ registryUrl: '', - packageName: depName, + packageName, }); expect(res).toBeNull(); }); it('supports multiple custom datasource urls', async () => { - const depName = 'pytest'; + const packageName = 'pytest'; httpMock .scope('https://api.anaconda.org/package/rapids') - .get(`/${depName}`) + .get(`/${packageName}`) .reply(404); httpMock .scope('https://api.anaconda.org/package/conda-forge') - .get(`/${depName}`) + .get(`/${packageName}`) .reply(200, { html_url: 'http://anaconda.org/anaconda/pytest', dev_url: 'https://github.com/pytest-dev/pytest/', @@ -96,7 +96,7 @@ describe('modules/datasource/conda/index', () => { const res = await getPkgReleases({ ...config, datasource, - depName, + packageName, }); expect(res).toMatchObject({ homepage: 'http://anaconda.org/anaconda/pytest', diff --git a/lib/modules/datasource/cpan/index.spec.ts b/lib/modules/datasource/cpan/index.spec.ts index 1f5f31882c5df3..291da75a49e7e6 100644 --- a/lib/modules/datasource/cpan/index.spec.ts +++ b/lib/modules/datasource/cpan/index.spec.ts @@ -20,7 +20,7 @@ describe('modules/datasource/cpan/index', () => { expect( await getPkgReleases({ datasource: CpanDatasource.id, - depName: 'FooBar', + packageName: 'FooBar', }) ).toBeNull(); }); @@ -30,7 +30,7 @@ describe('modules/datasource/cpan/index', () => { expect( await getPkgReleases({ datasource: CpanDatasource.id, - depName: 'Plack', + packageName: 'Plack', }) ).toBeNull(); }); @@ -40,7 +40,7 @@ describe('modules/datasource/cpan/index', () => { await expect( getPkgReleases({ datasource: CpanDatasource.id, - depName: 'Plack', + packageName: 'Plack', }) ).rejects.toThrow(EXTERNAL_HOST_ERROR); }); @@ -50,7 +50,7 @@ describe('modules/datasource/cpan/index', () => { expect( await getPkgReleases({ datasource: CpanDatasource.id, - depName: 'Plack', + packageName: 'Plack', }) ).toBeNull(); }); @@ -66,7 +66,7 @@ describe('modules/datasource/cpan/index', () => { .reply(200, Fixtures.get('Plack.json')); const res = await getPkgReleases({ datasource: CpanDatasource.id, - depName: 'Plack', + packageName: 'Plack', }); expect(res).toMatchObject({ changelogUrl: 'https://metacpan.org/dist/Plack/changes', diff --git a/lib/modules/datasource/crate/index.spec.ts b/lib/modules/datasource/crate/index.spec.ts index c8d0637391734f..4e4e76afbb3d55 100644 --- a/lib/modules/datasource/crate/index.spec.ts +++ b/lib/modules/datasource/crate/index.spec.ts @@ -126,7 +126,7 @@ describe('modules/datasource/crate/index', () => { expect( await getPkgReleases({ datasource, - depName: 'non_existent_crate', + packageName: 'non_existent_crate', registryUrls: [], }) ).toBeNull(); @@ -136,7 +136,7 @@ describe('modules/datasource/crate/index', () => { expect( await getPkgReleases({ datasource, - depName: 'non_existent_crate', + packageName: 'non_existent_crate', registryUrls: ['3'], }) ).toBeNull(); @@ -148,7 +148,7 @@ describe('modules/datasource/crate/index', () => { expect( await getPkgReleases({ datasource, - depName: 'non_existent_crate', + packageName: 'non_existent_crate', registryUrls: ['https://crates.io'], }) ).toBeNull(); @@ -163,7 +163,7 @@ describe('modules/datasource/crate/index', () => { expect( await getPkgReleases({ datasource, - depName: 'non_existent_crate', + packageName: 'non_existent_crate', registryUrls: ['https://crates.io'], }) ).toBeNull(); @@ -175,7 +175,7 @@ describe('modules/datasource/crate/index', () => { expect( await getPkgReleases({ datasource, - depName: 'non_existent_crate', + packageName: 'non_existent_crate', registryUrls: ['https://crates.io'], }) ).toBeNull(); @@ -186,7 +186,7 @@ describe('modules/datasource/crate/index', () => { expect( await getPkgReleases({ datasource, - depName: 'some_crate', + packageName: 'some_crate', registryUrls: ['https://crates.io'], }) ).toBeNull(); @@ -197,7 +197,7 @@ describe('modules/datasource/crate/index', () => { await expect( getPkgReleases({ datasource, - depName: 'some_crate', + packageName: 'some_crate', registryUrls: ['https://crates.io'], }) ).rejects.toThrow(EXTERNAL_HOST_ERROR); @@ -208,7 +208,7 @@ describe('modules/datasource/crate/index', () => { expect( await getPkgReleases({ datasource, - depName: 'some_crate', + packageName: 'some_crate', registryUrls: ['https://crates.io'], }) ).toBeNull(); @@ -223,7 +223,7 @@ describe('modules/datasource/crate/index', () => { .reply(200, Fixtures.get('libc')); const res = await getPkgReleases({ datasource, - depName: 'libc', + packageName: 'libc', registryUrls: ['https://crates.io'], }); expect(res).toMatchSnapshot(); @@ -240,7 +240,7 @@ describe('modules/datasource/crate/index', () => { .reply(200, Fixtures.get('amethyst')); const res = await getPkgReleases({ datasource, - depName: 'amethyst', + packageName: 'amethyst', registryUrls: ['https://crates.io'], }); expect(res).toMatchSnapshot(); @@ -254,7 +254,7 @@ describe('modules/datasource/crate/index', () => { const url = 'https://dl.cloudsmith.io/basic/myorg/myrepo/cargo/index.git'; const res = await getPkgReleases({ datasource, - depName: 'mypkg', + packageName: 'mypkg', registryUrls: [url], }); expect(mockClone).toHaveBeenCalledTimes(0); @@ -267,7 +267,7 @@ describe('modules/datasource/crate/index', () => { const url = 'https://dl.cloudsmith.io/basic/myorg/myrepo/cargo/index.git'; const res = await getPkgReleases({ datasource, - depName: 'mypkg', + packageName: 'mypkg', registryUrls: [url], }); expect(mockClone).toHaveBeenCalled(); @@ -282,7 +282,7 @@ describe('modules/datasource/crate/index', () => { const url = 'https://github.com/mcorbin/testregistry'; const res = await getPkgReleases({ datasource, - depName: 'mypkg', + packageName: 'mypkg', registryUrls: [url], }); expect(mockClone).toHaveBeenCalled(); @@ -297,12 +297,12 @@ describe('modules/datasource/crate/index', () => { const url = 'https://github.com/mcorbin/othertestregistry'; await getPkgReleases({ datasource, - depName: 'mypkg', + packageName: 'mypkg', registryUrls: [url], }); await getPkgReleases({ datasource, - depName: 'mypkg', + packageName: 'mypkg', registryUrls: [url], }); expect(mockClone).toHaveBeenCalledTimes(1); @@ -316,19 +316,19 @@ describe('modules/datasource/crate/index', () => { await Promise.all([ getPkgReleases({ datasource, - depName: 'mypkg', + packageName: 'mypkg', registryUrls: [url], }), getPkgReleases({ datasource, - depName: 'mypkg-2', + packageName: 'mypkg-2', registryUrls: [url], }), ]); await getPkgReleases({ datasource, - depName: 'mypkg-3', + packageName: 'mypkg-3', registryUrls: [url], }); @@ -342,12 +342,12 @@ describe('modules/datasource/crate/index', () => { const result = await getPkgReleases({ datasource, - depName: 'mypkg', + packageName: 'mypkg', registryUrls: [url], }); const result2 = await getPkgReleases({ datasource, - depName: 'mypkg-2', + packageName: 'mypkg-2', registryUrls: [url], }); diff --git a/lib/modules/datasource/dart-version/index.spec.ts b/lib/modules/datasource/dart-version/index.spec.ts index 798bab2496f07d..ae41cd725dfa84 100644 --- a/lib/modules/datasource/dart-version/index.spec.ts +++ b/lib/modules/datasource/dart-version/index.spec.ts @@ -8,7 +8,7 @@ const baseUrl = 'https://storage.googleapis.com'; const urlPath = '/storage/v1/b/dart-archive/o?delimiter=%2F&prefix=channels%2Fstable%2Frelease%2F&alt=json'; const datasource = DartVersionDatasource.id; -const depName = 'dart'; +const packageName = 'dart'; const channels = ['stable', 'beta', 'dev']; describe('modules/datasource/dart-version/index', () => { @@ -18,7 +18,7 @@ describe('modules/datasource/dart-version/index', () => { await expect( getPkgReleases({ datasource, - depName, + packageName, }) ).rejects.toThrow(EXTERNAL_HOST_ERROR); }); @@ -28,7 +28,7 @@ describe('modules/datasource/dart-version/index', () => { expect( await getPkgReleases({ datasource, - depName, + packageName, }) ).toBeNull(); }); @@ -38,7 +38,7 @@ describe('modules/datasource/dart-version/index', () => { expect( await getPkgReleases({ datasource, - depName, + packageName, }) ).toBeNull(); }); @@ -55,7 +55,7 @@ describe('modules/datasource/dart-version/index', () => { const res = await getPkgReleases({ datasource, - depName, + packageName, }); expect(res).toBeDefined(); diff --git a/lib/modules/datasource/dart/index.spec.ts b/lib/modules/datasource/dart/index.spec.ts index b3472322c6b6a1..06bad8e6f21dc4 100644 --- a/lib/modules/datasource/dart/index.spec.ts +++ b/lib/modules/datasource/dart/index.spec.ts @@ -15,7 +15,7 @@ describe('modules/datasource/dart/index', () => { expect( await getPkgReleases({ datasource: DartDatasource.id, - depName: 'non_sense', + packageName: 'non_sense', }) ).toBeNull(); }); @@ -32,7 +32,7 @@ describe('modules/datasource/dart/index', () => { expect( await getPkgReleases({ datasource: DartDatasource.id, - depName: 'shared_preferences', + packageName: 'shared_preferences', }) ).toBeNull(); @@ -47,7 +47,7 @@ describe('modules/datasource/dart/index', () => { expect( await getPkgReleases({ datasource: DartDatasource.id, - depName: 'shared_preferences', + packageName: 'shared_preferences', }) ).toBeNull(); }); @@ -57,7 +57,7 @@ describe('modules/datasource/dart/index', () => { expect( await getPkgReleases({ datasource: DartDatasource.id, - depName: 'shared_preferences', + packageName: 'shared_preferences', }) ).toBeNull(); }); @@ -67,7 +67,7 @@ describe('modules/datasource/dart/index', () => { await expect( getPkgReleases({ datasource: DartDatasource.id, - depName: 'shared_preferences', + packageName: 'shared_preferences', }) ).rejects.toThrow(EXTERNAL_HOST_ERROR); }); @@ -77,7 +77,7 @@ describe('modules/datasource/dart/index', () => { expect( await getPkgReleases({ datasource: DartDatasource.id, - depName: 'shared_preferences', + packageName: 'shared_preferences', }) ).toBeNull(); }); @@ -86,7 +86,7 @@ describe('modules/datasource/dart/index', () => { httpMock.scope(baseUrl).get('/shared_preferences').reply(200, body); const res = await getPkgReleases({ datasource: DartDatasource.id, - depName: 'shared_preferences', + packageName: 'shared_preferences', }); expect(res).toMatchSnapshot(); }); diff --git a/lib/modules/datasource/docker/index.spec.ts b/lib/modules/datasource/docker/index.spec.ts index 321f65932f2659..87f1e53a4d5e80 100644 --- a/lib/modules/datasource/docker/index.spec.ts +++ b/lib/modules/datasource/docker/index.spec.ts @@ -222,7 +222,7 @@ describe('modules/datasource/docker/index', () => { }) .reply(401); const res = await getDigest( - { datasource: 'docker', depName: 'some-dep' }, + { datasource: 'docker', packageName: 'some-dep' }, 'some-new-value' ); expect(res).toBeNull(); @@ -238,7 +238,7 @@ describe('modules/datasource/docker/index', () => { }) .replyWithError('error'); const res = await getDigest( - { datasource: 'docker', depName: 'some-dep' }, + { datasource: 'docker', packageName: 'some-dep' }, 'some-new-value' ); expect(res).toBeNull(); @@ -252,7 +252,7 @@ describe('modules/datasource/docker/index', () => { .head('/library/some-dep/manifests/some-new-value') .reply(200, undefined, { 'docker-content-digest': '' }); const res = await getDigest( - { datasource: 'docker', depName: 'some-dep' }, + { datasource: 'docker', packageName: 'some-dep' }, 'some-new-value' ); expect(res).toBeNull(); @@ -278,7 +278,7 @@ describe('modules/datasource/docker/index', () => { hostRules.find.mockReturnValue({}); const res = await getDigest({ datasource: 'docker', - depName: 'some-dep', + packageName: 'some-dep', }); expect(res).toBe('some-digest'); }); @@ -327,7 +327,7 @@ describe('modules/datasource/docker/index', () => { .twice() .reply(200, { token: 'some-token' }); const res = await getDigest( - { datasource: 'docker', depName: 'some-dep' }, + { datasource: 'docker', packageName: 'some-dep' }, 'some-new-value' ); expect(res).toBe( @@ -345,7 +345,7 @@ describe('modules/datasource/docker/index', () => { hostRules.find.mockReturnValue({ insecureRegistry: true }); const res = await getDigest({ datasource: 'docker', - depName: 'some-dep', + packageName: 'some-dep', }); expect(res).toBe('some-digest'); }); @@ -365,7 +365,7 @@ describe('modules/datasource/docker/index', () => { ) .reply(200, '', { 'docker-content-digest': 'some-digest' }); const res = await getDigest( - { datasource: 'docker', depName: 'some-dep' }, + { datasource: 'docker', packageName: 'some-dep' }, 'some-tag' ); expect(res).toBe('some-digest'); @@ -381,7 +381,7 @@ describe('modules/datasource/docker/index', () => { .head('/library/some-dep/manifests/some-tag') .reply(403); const res = await getDigest( - { datasource: 'docker', depName: 'some-dep' }, + { datasource: 'docker', packageName: 'some-dep' }, 'some-tag' ); expect(res).toBeNull(); @@ -406,7 +406,7 @@ describe('modules/datasource/docker/index', () => { await getDigest( { datasource: 'docker', - depName: '123456789.dkr.ecr.us-east-1.amazonaws.com/node', + packageName: '123456789.dkr.ecr.us-east-1.amazonaws.com/node', }, 'some-tag' ) @@ -445,7 +445,7 @@ describe('modules/datasource/docker/index', () => { await getDigest( { datasource: 'docker', - depName: '123456789.dkr.ecr.us-east-1.amazonaws.com/node', + packageName: '123456789.dkr.ecr.us-east-1.amazonaws.com/node', }, 'some-tag' ) @@ -478,7 +478,7 @@ describe('modules/datasource/docker/index', () => { const res = await getDigest( { datasource: 'docker', - depName: '123456789.dkr.ecr.us-east-1.amazonaws.com/node', + packageName: '123456789.dkr.ecr.us-east-1.amazonaws.com/node', }, 'some-tag' ); @@ -495,7 +495,7 @@ describe('modules/datasource/docker/index', () => { const res = await getDigest( { datasource: 'docker', - depName: '123456789.dkr.ecr.us-east-1.amazonaws.com/node', + packageName: '123456789.dkr.ecr.us-east-1.amazonaws.com/node', }, 'some-tag' ); @@ -511,7 +511,7 @@ describe('modules/datasource/docker/index', () => { const res = await getDigest( { datasource: 'docker', - depName: '123456789.dkr.ecr.us-east-1.amazonaws.com/node', + packageName: '123456789.dkr.ecr.us-east-1.amazonaws.com/node', }, 'some-tag' ); @@ -528,7 +528,7 @@ describe('modules/datasource/docker/index', () => { .head('/library/some-dep/manifests/some-new-value') .reply(200, {}, { 'docker-content-digest': 'some-digest' }); const res = await getDigest( - { datasource: 'docker', depName: 'some-dep' }, + { datasource: 'docker', packageName: 'some-dep' }, 'some-new-value' ); expect(res).toBe('some-digest'); @@ -549,7 +549,7 @@ describe('modules/datasource/docker/index', () => { .get('/token?service=&scope=repository:library/some-other-dep:pull') .reply(200, { access_token: 'test' }); const res = await getDigest( - { datasource: 'docker', depName: 'some-other-dep' }, + { datasource: 'docker', packageName: 'some-other-dep' }, '8.0.0-alpine' ); expect(res).toBe('some-digest'); @@ -572,7 +572,7 @@ describe('modules/datasource/docker/index', () => { ) .reply(200, { access_token: 'test' }); const res = await getDigest( - { datasource: 'docker', depName: 'some-other-dep' }, + { datasource: 'docker', packageName: 'some-other-dep' }, '8.0.0-alpine' ); expect(res).toBe('some-digest'); @@ -581,14 +581,14 @@ describe('modules/datasource/docker/index', () => { it('should throw error for 429', async () => { httpMock.scope(baseUrl).get('/').replyWithError({ statusCode: 429 }); await expect( - getDigest({ datasource: 'docker', depName: 'some-dep' }, 'latest') + getDigest({ datasource: 'docker', packageName: 'some-dep' }, 'latest') ).rejects.toThrow(EXTERNAL_HOST_ERROR); }); it('should throw error for 5xx', async () => { httpMock.scope(baseUrl).get('/').replyWithError({ statusCode: 504 }); await expect( - getDigest({ datasource: 'docker', depName: 'some-dep' }, 'latest') + getDigest({ datasource: 'docker', packageName: 'some-dep' }, 'latest') ).rejects.toThrow(EXTERNAL_HOST_ERROR); }); @@ -670,7 +670,7 @@ describe('modules/datasource/docker/index', () => { const res = await getDigest( { datasource: 'docker', - depName: 'some-dep', + packageName: 'some-dep', currentDigest, }, 'some-new-value' @@ -763,7 +763,7 @@ describe('modules/datasource/docker/index', () => { const res = await getDigest( { datasource: 'docker', - depName: 'some-dep', + packageName: 'some-dep', currentDigest, }, 'some-new-value' @@ -840,7 +840,7 @@ describe('modules/datasource/docker/index', () => { const res = await getDigest( { datasource: 'docker', - depName: 'some-dep', + packageName: 'some-dep', currentDigest, }, 'some-new-value' @@ -907,7 +907,7 @@ describe('modules/datasource/docker/index', () => { const res = await getDigest( { datasource: 'docker', - depName: 'some-dep', + packageName: 'some-dep', currentDigest, }, 'some-new-value' @@ -992,7 +992,7 @@ describe('modules/datasource/docker/index', () => { const res = await getDigest( { datasource: 'docker', - depName: 'some-dep', + packageName: 'some-dep', currentDigest, }, 'some-new-value' @@ -1045,7 +1045,7 @@ describe('modules/datasource/docker/index', () => { const res = await getDigest( { datasource: 'docker', - depName: 'some-dep', + packageName: 'some-dep', currentDigest, }, 'some-new-value' @@ -1078,7 +1078,7 @@ describe('modules/datasource/docker/index', () => { const res = await getDigest( { datasource: 'docker', - depName: 'some-dep', + packageName: 'some-dep', currentDigest: 'sha256:0101010101010101010101010101010101010101010101010101010101010101', }, @@ -1098,7 +1098,7 @@ describe('modules/datasource/docker/index', () => { .reply(403); const res = await getPkgReleases({ datasource: DockerDatasource.id, - depName: 'node', + packageName: 'node', registryUrls: ['https://docker.io'], }); expect(res).toBeNull(); @@ -1128,14 +1128,14 @@ describe('modules/datasource/docker/index', () => { .reply(200, { tags: ['latest'] }, {}); const config = { datasource: DockerDatasource.id, - depName: 'node', + packageName: 'node', registryUrls: ['https://registry.company.com'], }; const res = await getPkgReleases(config); expect(res?.releases).toHaveLength(1); }); - it('uses custom registry in depName', async () => { + it('uses custom registry in packageName', async () => { const tags = ['1.0.0']; httpMock .scope('https://registry.company.com/v2') @@ -1149,7 +1149,7 @@ describe('modules/datasource/docker/index', () => { .reply(200, '', {}); const res = await getPkgReleases({ datasource: DockerDatasource.id, - depName: 'registry.company.com/node', + packageName: 'registry.company.com/node', }); expect(res?.releases).toHaveLength(1); }); @@ -1172,7 +1172,7 @@ describe('modules/datasource/docker/index', () => { .reply(200, '', {}); const config = { datasource: DockerDatasource.id, - depName: 'bitnami/redis', + packageName: 'bitnami/redis', registryUrls: ['https://quay.io'], }; const res = await getPkgReleases(config); @@ -1188,7 +1188,7 @@ describe('modules/datasource/docker/index', () => { .reply(500); const config = { datasource: DockerDatasource.id, - depName: 'bitnami/redis', + packageName: 'bitnami/redis', registryUrls: ['https://quay.io'], }; await expect(getPkgReleases(config)).rejects.toThrow(EXTERNAL_HOST_ERROR); @@ -1229,7 +1229,7 @@ describe('modules/datasource/docker/index', () => { .reply(200, '', {}); const res = await getPkgReleases({ datasource: DockerDatasource.id, - depName: 'org.jfrog.io/virtual-mirror/node', + packageName: 'org.jfrog.io/virtual-mirror/node', }); expect(res?.releases).toHaveLength(10050); }); @@ -1250,7 +1250,7 @@ describe('modules/datasource/docker/index', () => { expect( await getPkgReleases({ datasource: DockerDatasource.id, - depName: '123456789.dkr.ecr.us-east-1.amazonaws.com/node', + packageName: '123456789.dkr.ecr.us-east-1.amazonaws.com/node', }) ).toEqual({ registryUrl: 'https://123456789.dkr.ecr.us-east-1.amazonaws.com', @@ -1302,7 +1302,7 @@ describe('modules/datasource/docker/index', () => { expect( await getPkgReleases({ datasource: DockerDatasource.id, - depName: 'public.ecr.aws/amazonlinux/amazonlinux', + packageName: 'public.ecr.aws/amazonlinux/amazonlinux', }) ).toEqual({ registryUrl: 'https://public.ecr.aws', @@ -1356,7 +1356,7 @@ describe('modules/datasource/docker/index', () => { expect( await getPkgReleases({ datasource: DockerDatasource.id, - depName: 'ecr-proxy.company.com/node', + packageName: 'ecr-proxy.company.com/node', }) ).toEqual({ registryUrl: 'https://ecr-proxy.company.com', @@ -1391,7 +1391,7 @@ describe('modules/datasource/docker/index', () => { expect( await getPkgReleases({ datasource: DockerDatasource.id, - depName: 'ecr-proxy.company.com/node', + packageName: 'ecr-proxy.company.com/node', }) ).toBeNull(); }); @@ -1422,7 +1422,7 @@ describe('modules/datasource/docker/index', () => { expect( await getPkgReleases({ datasource: DockerDatasource.id, - depName: 'ecr-proxy.company.com/node', + packageName: 'ecr-proxy.company.com/node', }) ).toBeNull(); }); @@ -1445,7 +1445,7 @@ describe('modules/datasource/docker/index', () => { expect( await getPkgReleases({ datasource: DockerDatasource.id, - depName: 'ecr-proxy.company.com/node', + packageName: 'ecr-proxy.company.com/node', }) ).toBeNull(); }); @@ -1474,7 +1474,7 @@ describe('modules/datasource/docker/index', () => { expect( await getPkgReleases({ datasource: DockerDatasource.id, - depName: 'ecr-proxy.company.com/node', + packageName: 'ecr-proxy.company.com/node', }) ).toBeNull(); }); @@ -1495,7 +1495,7 @@ describe('modules/datasource/docker/index', () => { expect( await getPkgReleases({ datasource: DockerDatasource.id, - depName: 'ecr-proxy.company.com/node', + packageName: 'ecr-proxy.company.com/node', }) ).toBeNull(); }); @@ -1518,7 +1518,7 @@ describe('modules/datasource/docker/index', () => { expect( await getPkgReleases({ datasource: DockerDatasource.id, - depName: 'ecr-proxy.company.com/node', + packageName: 'ecr-proxy.company.com/node', }) ).toBeNull(); }); @@ -1545,7 +1545,7 @@ describe('modules/datasource/docker/index', () => { expect( await getPkgReleases({ datasource: DockerDatasource.id, - depName: 'ecr-proxy.company.com/node', + packageName: 'ecr-proxy.company.com/node', }) ).toBeNull(); }); @@ -1573,7 +1573,7 @@ describe('modules/datasource/docker/index', () => { expect( await getPkgReleases({ datasource: DockerDatasource.id, - depName: 'ecr-proxy.company.com/node', + packageName: 'ecr-proxy.company.com/node', }) ).toBeNull(); }); @@ -1602,7 +1602,7 @@ describe('modules/datasource/docker/index', () => { .reply(200, { token: 'test' }); const res = await getPkgReleases({ datasource: DockerDatasource.id, - depName: 'node', + packageName: 'node', }); expect(res?.releases).toHaveLength(1); }); @@ -1630,7 +1630,7 @@ describe('modules/datasource/docker/index', () => { .reply(200, { token: 'test' }); const res = await getPkgReleases({ datasource: DockerDatasource.id, - depName: 'docker.io/node', + packageName: 'docker.io/node', }); expect(res?.releases).toHaveLength(1); }); @@ -1656,7 +1656,7 @@ describe('modules/datasource/docker/index', () => { .reply(200); const res = await getPkgReleases({ datasource: DockerDatasource.id, - depName: 'k8s.gcr.io/kubernetes-dashboard-amd64', + packageName: 'k8s.gcr.io/kubernetes-dashboard-amd64', }); expect(res?.releases).toHaveLength(1); }); @@ -1670,7 +1670,7 @@ describe('modules/datasource/docker/index', () => { .replyWithError('error'); const res = await getPkgReleases({ datasource: DockerDatasource.id, - depName: 'my/node', + packageName: 'my/node', }); expect(res).toBeNull(); }); @@ -1695,7 +1695,7 @@ describe('modules/datasource/docker/index', () => { .reply(200, { token: 'some-token ' }); const res = await getPkgReleases({ datasource: DockerDatasource.id, - depName: 'my/node', + packageName: 'my/node', registryUrls: ['https://index.docker.io/'], }); expect(res?.releases).toHaveLength(1); @@ -1711,7 +1711,7 @@ describe('modules/datasource/docker/index', () => { }); const res = await getPkgReleases({ datasource: DockerDatasource.id, - depName: 'node', + packageName: 'node', }); expect(res).toBeNull(); }); @@ -1755,7 +1755,7 @@ describe('modules/datasource/docker/index', () => { }); const res = await getPkgReleases({ datasource: DockerDatasource.id, - depName: 'registry.company.com/node', + packageName: 'registry.company.com/node', }); expect(res).toStrictEqual({ registryUrl: 'https://registry.company.com', @@ -1806,7 +1806,7 @@ describe('modules/datasource/docker/index', () => { .reply(200, {}); // DockerDatasource.getLabels() inner response const res = await getPkgReleases({ datasource: DockerDatasource.id, - depName: 'registry.company.com/node', + packageName: 'registry.company.com/node', }); expect(res).toStrictEqual({ registryUrl: 'https://registry.company.com', @@ -1860,7 +1860,7 @@ describe('modules/datasource/docker/index', () => { }); const res = await getPkgReleases({ datasource: DockerDatasource.id, - depName: 'registry.company.com/node', + packageName: 'registry.company.com/node', }); expect(res).toStrictEqual({ registryUrl: 'https://registry.company.com', @@ -1887,7 +1887,7 @@ describe('modules/datasource/docker/index', () => { }); const res = await getPkgReleases({ datasource: DockerDatasource.id, - depName: 'registry.company.com/node', + packageName: 'registry.company.com/node', }); expect(res).toStrictEqual({ registryUrl: 'https://registry.company.com', @@ -1911,7 +1911,7 @@ describe('modules/datasource/docker/index', () => { }); const res = await getPkgReleases({ datasource: DockerDatasource.id, - depName: 'registry.company.com/node', + packageName: 'registry.company.com/node', }); expect(res).toStrictEqual({ registryUrl: 'https://registry.company.com', @@ -1932,7 +1932,7 @@ describe('modules/datasource/docker/index', () => { .reply(200, {}); const res = await getPkgReleases({ datasource: DockerDatasource.id, - depName: 'registry.company.com/node', + packageName: 'registry.company.com/node', }); expect(res).toStrictEqual({ registryUrl: 'https://registry.company.com', @@ -1973,7 +1973,7 @@ describe('modules/datasource/docker/index', () => { }); const res = await getPkgReleases({ datasource: DockerDatasource.id, - depName: 'registry.company.com/node', + packageName: 'registry.company.com/node', }); expect(res).toStrictEqual({ registryUrl: 'https://registry.company.com', @@ -2018,7 +2018,7 @@ describe('modules/datasource/docker/index', () => { }); const res = await getPkgReleases({ datasource: DockerDatasource.id, - depName: 'registry.company.com/node', + packageName: 'registry.company.com/node', }); expect(res).toStrictEqual({ registryUrl: 'https://registry.company.com', @@ -2048,7 +2048,7 @@ describe('modules/datasource/docker/index', () => { }); const res = await getPkgReleases({ datasource: DockerDatasource.id, - depName: 'registry.company.com/node', + packageName: 'registry.company.com/node', }); expect(res).toStrictEqual({ registryUrl: 'https://registry.company.com', @@ -2098,7 +2098,7 @@ describe('modules/datasource/docker/index', () => { }); const res = await getPkgReleases({ datasource: DockerDatasource.id, - depName: 'registry.company.com/node', + packageName: 'registry.company.com/node', }); expect(res).toStrictEqual({ registryUrl: 'https://registry.company.com', @@ -2154,7 +2154,7 @@ describe('modules/datasource/docker/index', () => { const res = await getPkgReleases({ datasource: DockerDatasource.id, - depName: 'ghcr.io/visualon/drone-git', + packageName: 'ghcr.io/visualon/drone-git', }); expect(res).toStrictEqual({ registryUrl: 'https://ghcr.io', diff --git a/lib/modules/datasource/dotnet-version/index.spec.ts b/lib/modules/datasource/dotnet-version/index.spec.ts index a0e3e0e18891be..d6bc44a8790aec 100644 --- a/lib/modules/datasource/dotnet-version/index.spec.ts +++ b/lib/modules/datasource/dotnet-version/index.spec.ts @@ -19,7 +19,7 @@ describe('modules/datasource/dotnet-version/index', () => { expect( await getPkgReleases({ datasource: DotnetVersionDatasource.id, - depName: 'non-dotnet', + packageName: 'non-dotnet', }) ).toBeNull(); }); @@ -30,7 +30,7 @@ describe('modules/datasource/dotnet-version/index', () => { expect( await getPkgReleases({ datasource: DotnetVersionDatasource.id, - depName: 'dotnet-sdk', + packageName: 'dotnet-sdk', }) ).toBeNull(); }); @@ -46,7 +46,7 @@ describe('modules/datasource/dotnet-version/index', () => { expect( await getPkgReleases({ datasource: DotnetVersionDatasource.id, - depName: 'dotnet-sdk', + packageName: 'dotnet-sdk', }) ).toBeNull(); }); @@ -57,7 +57,7 @@ describe('modules/datasource/dotnet-version/index', () => { await expect( getPkgReleases({ datasource: DotnetVersionDatasource.id, - depName: 'dotnet-sdk', + packageName: 'dotnet-sdk', }) ).rejects.toThrow(EXTERNAL_HOST_ERROR); }); @@ -73,7 +73,7 @@ describe('modules/datasource/dotnet-version/index', () => { await expect( getPkgReleases({ datasource: DotnetVersionDatasource.id, - depName: 'dotnet-sdk', + packageName: 'dotnet-sdk', }) ).rejects.toThrow(EXTERNAL_HOST_ERROR); }); @@ -84,7 +84,7 @@ describe('modules/datasource/dotnet-version/index', () => { expect( await getPkgReleases({ datasource: DotnetVersionDatasource.id, - depName: 'dotnet-sdk', + packageName: 'dotnet-sdk', }) ).toBeNull(); }); @@ -100,7 +100,7 @@ describe('modules/datasource/dotnet-version/index', () => { expect( await getPkgReleases({ datasource: DotnetVersionDatasource.id, - depName: 'dotnet-sdk', + packageName: 'dotnet-sdk', }) ).toBeNull(); }); @@ -121,7 +121,7 @@ describe('modules/datasource/dotnet-version/index', () => { const res = await getPkgReleases({ datasource: DotnetVersionDatasource.id, - depName: 'dotnet-sdk', + packageName: 'dotnet-sdk', }); expect(res).toBeDefined(); @@ -155,7 +155,7 @@ describe('modules/datasource/dotnet-version/index', () => { const res = await getPkgReleases({ datasource: DotnetVersionDatasource.id, - depName: 'dotnet-runtime', + packageName: 'dotnet-runtime', }); expect(res).toBeDefined(); diff --git a/lib/modules/datasource/flutter-version/index.spec.ts b/lib/modules/datasource/flutter-version/index.spec.ts index bd217e16e04361..8e333b66583e43 100644 --- a/lib/modules/datasource/flutter-version/index.spec.ts +++ b/lib/modules/datasource/flutter-version/index.spec.ts @@ -7,7 +7,7 @@ import { FlutterVersionDatasource } from '.'; const baseUrl = 'https://storage.googleapis.com'; const urlPath = '/flutter_infra_release/releases/releases_linux.json'; const datasource = FlutterVersionDatasource.id; -const depName = 'flutter'; +const packageName = 'flutter'; describe('modules/datasource/flutter-version/index', () => { describe('getReleases', () => { @@ -16,7 +16,7 @@ describe('modules/datasource/flutter-version/index', () => { await expect( getPkgReleases({ datasource, - depName, + packageName, }) ).rejects.toThrow(EXTERNAL_HOST_ERROR); }); @@ -26,7 +26,7 @@ describe('modules/datasource/flutter-version/index', () => { expect( await getPkgReleases({ datasource, - depName, + packageName, }) ).toBeNull(); }); @@ -36,7 +36,7 @@ describe('modules/datasource/flutter-version/index', () => { expect( await getPkgReleases({ datasource, - depName, + packageName, }) ).toBeNull(); }); @@ -48,7 +48,7 @@ describe('modules/datasource/flutter-version/index', () => { .reply(200, Fixtures.get('index.json')); const res = await getPkgReleases({ datasource, - depName, + packageName, }); expect(res).toMatchSnapshot(); expect(res?.releases).toHaveLength(31); diff --git a/lib/modules/datasource/galaxy-collection/index.spec.ts b/lib/modules/datasource/galaxy-collection/index.spec.ts index 019ccaa90e54b8..5c9979779e1ca8 100644 --- a/lib/modules/datasource/galaxy-collection/index.spec.ts +++ b/lib/modules/datasource/galaxy-collection/index.spec.ts @@ -29,7 +29,7 @@ describe('modules/datasource/galaxy-collection/index', () => { expect( await getPkgReleases({ datasource, - depName: 'foo.bar', + packageName: 'foo.bar', }) ).toBeNull(); }); @@ -39,7 +39,7 @@ describe('modules/datasource/galaxy-collection/index', () => { await expect( getPkgReleases({ datasource, - depName: 'foo.bar', + packageName: 'foo.bar', }) ).rejects.toThrow(EXTERNAL_HOST_ERROR); }); @@ -52,7 +52,7 @@ describe('modules/datasource/galaxy-collection/index', () => { expect( await getPkgReleases({ datasource, - depName: 'community.kubernetes', + packageName: 'community.kubernetes', }) ).toBeNull(); }); @@ -67,7 +67,7 @@ describe('modules/datasource/galaxy-collection/index', () => { expect( await getPkgReleases({ datasource, - depName: 'community.kubernetes', + packageName: 'community.kubernetes', }) ).toBeNull(); }); @@ -82,7 +82,7 @@ describe('modules/datasource/galaxy-collection/index', () => { await expect( getPkgReleases({ datasource, - depName: 'community.kubernetes', + packageName: 'community.kubernetes', }) ).rejects.toThrow(EXTERNAL_HOST_ERROR); }); @@ -103,7 +103,7 @@ describe('modules/datasource/galaxy-collection/index', () => { const res = await getPkgReleases({ datasource, - depName: 'community.kubernetes', + packageName: 'community.kubernetes', }); expect(res).toMatchSnapshot(); expect(res).not.toBeNull(); @@ -115,7 +115,7 @@ describe('modules/datasource/galaxy-collection/index', () => { expect( await getPkgReleases({ datasource, - depName: '', + packageName: '', }) ).toBeNull(); }); @@ -124,7 +124,7 @@ describe('modules/datasource/galaxy-collection/index', () => { expect( await getPkgReleases({ datasource, - depName: '', + packageName: '', }) ).toBeNull(); }); @@ -137,7 +137,7 @@ describe('modules/datasource/galaxy-collection/index', () => { expect( await getPkgReleases({ datasource, - depName: 'foo.bar', + packageName: 'foo.bar', }) ).toBeNull(); }); @@ -157,7 +157,7 @@ describe('modules/datasource/galaxy-collection/index', () => { .reply(200, communityKubernetesDetails0111); const res = await getPkgReleases({ datasource, - depName: 'community.kubernetes', + packageName: 'community.kubernetes', }); expect(res).toMatchSnapshot(); expect(res).not.toBeNull(); diff --git a/lib/modules/datasource/galaxy/index.spec.ts b/lib/modules/datasource/galaxy/index.spec.ts index 80ca4b8ca298a4..7654329befef6c 100644 --- a/lib/modules/datasource/galaxy/index.spec.ts +++ b/lib/modules/datasource/galaxy/index.spec.ts @@ -16,7 +16,7 @@ describe('modules/datasource/galaxy/index', () => { expect( await getPkgReleases({ datasource: GalaxyDatasource.id, - depName: 'non_existent_crate', + packageName: 'non_existent_crate', }) ).toBeNull(); }); @@ -29,7 +29,7 @@ describe('modules/datasource/galaxy/index', () => { expect( await getPkgReleases({ datasource: GalaxyDatasource.id, - depName: 'non_existent_crate', + packageName: 'non_existent_crate', }) ).toBeNull(); }); @@ -42,7 +42,7 @@ describe('modules/datasource/galaxy/index', () => { expect( await getPkgReleases({ datasource: GalaxyDatasource.id, - depName: 'non_existent_crate', + packageName: 'non_existent_crate', }) ).toBeNull(); }); @@ -55,7 +55,7 @@ describe('modules/datasource/galaxy/index', () => { expect( await getPkgReleases({ datasource: GalaxyDatasource.id, - depName: 'some_crate', + packageName: 'some_crate', }) ).toBeNull(); }); @@ -68,7 +68,7 @@ describe('modules/datasource/galaxy/index', () => { expect( await getPkgReleases({ datasource: GalaxyDatasource.id, - depName: 'some_crate', + packageName: 'some_crate', }) ).toBeNull(); }); @@ -80,7 +80,7 @@ describe('modules/datasource/galaxy/index', () => { .reply(200, Fixtures.get('timezone')); const res = await getPkgReleases({ datasource: GalaxyDatasource.id, - depName: 'yatesr.timezone', + packageName: 'yatesr.timezone', }); expect(res).toMatchSnapshot(); expect(res).not.toBeNull(); @@ -94,7 +94,7 @@ describe('modules/datasource/galaxy/index', () => { .reply(200, Fixtures.get('empty')); const res = await getPkgReleases({ datasource: GalaxyDatasource.id, - depName: 'foo.bar', + packageName: 'foo.bar', }); expect(res).toBeNull(); }); @@ -107,7 +107,7 @@ describe('modules/datasource/galaxy/index', () => { await expect( getPkgReleases({ datasource: GalaxyDatasource.id, - depName: 'some_crate', + packageName: 'some_crate', }) ).rejects.toThrow(EXTERNAL_HOST_ERROR); }); @@ -119,7 +119,7 @@ describe('modules/datasource/galaxy/index', () => { .reply(404); const res = await getPkgReleases({ datasource: GalaxyDatasource.id, - depName: 'foo.bar', + packageName: 'foo.bar', }); expect(res).toBeNull(); }); diff --git a/lib/modules/datasource/git-refs/index.spec.ts b/lib/modules/datasource/git-refs/index.spec.ts index 5c1f47ae5913f3..75405d464710de 100644 --- a/lib/modules/datasource/git-refs/index.spec.ts +++ b/lib/modules/datasource/git-refs/index.spec.ts @@ -6,7 +6,7 @@ import { GitRefsDatasource } from '.'; jest.mock('simple-git'); const simpleGit: jest.Mock> = _simpleGit as never; -const depName = 'https://github.com/example/example.git'; +const packageName = 'https://github.com/example/example.git'; const lsRemote1 = Fixtures.get('ls-remote-1.txt'); @@ -22,7 +22,7 @@ describe('modules/datasource/git-refs/index', () => { }); const versions = await getPkgReleases({ datasource, - depName, + packageName, }); expect(versions).toBeNull(); }); @@ -35,7 +35,7 @@ describe('modules/datasource/git-refs/index', () => { }); const { releases } = (await getPkgReleases({ datasource, - depName, + packageName, }))!; expect(releases).toBeEmpty(); }); @@ -48,7 +48,7 @@ describe('modules/datasource/git-refs/index', () => { }); const versions = await getPkgReleases({ datasource, - depName, + packageName, }); expect(versions).toBeNull(); }); @@ -62,7 +62,7 @@ describe('modules/datasource/git-refs/index', () => { const versions = await getPkgReleases({ datasource, - depName, + packageName, }); expect(versions).toMatchSnapshot(); const result = versions?.releases.map((x) => x.version).sort(); diff --git a/lib/modules/datasource/git-refs/readme.md b/lib/modules/datasource/git-refs/readme.md index b0a9b2d27a8402..86d27e39bb9e8d 100644 --- a/lib/modules/datasource/git-refs/readme.md +++ b/lib/modules/datasource/git-refs/readme.md @@ -1,7 +1,7 @@ This datasource can be used in combination with [regex managers](https://docs.renovatebot.com/modules/manager/regex/) to keep dependencies up-to-date which are not specifically supported by Renovate. This datasource returns a reference from a Git repository. -The `depName` (or `packageName` if in use) must be a fully qualified domain name. +The `packageName` must be a fully qualified domain name. To fetch the latest digest of a reference instead of the named reference, specify the reference as the `currentValue` and match on the `currentDigest`. **Usage example** diff --git a/lib/modules/datasource/git-tags/index.spec.ts b/lib/modules/datasource/git-tags/index.spec.ts index d47c6b12e9ed5a..a14744c6f7d6af 100644 --- a/lib/modules/datasource/git-tags/index.spec.ts +++ b/lib/modules/datasource/git-tags/index.spec.ts @@ -6,7 +6,7 @@ import { GitTagsDatasource } from '.'; jest.mock('simple-git'); const simpleGit: jest.Mock> = _simpleGit as never; -const depName = 'https://github.com/example/example.git'; +const packageName = 'https://github.com/example/example.git'; const lsRemote1 = Fixtures.get('ls-remote-1.txt', '../git-refs'); @@ -21,7 +21,7 @@ describe('modules/datasource/git-tags/index', () => { return Promise.resolve('') as Response; }, }); - const versions = await getPkgReleases({ datasource, depName }); + const versions = await getPkgReleases({ datasource, packageName }); expect(versions).toBeNull(); }); @@ -31,7 +31,7 @@ describe('modules/datasource/git-tags/index', () => { throw new Error(); }, }); - const versions = await getPkgReleases({ datasource, depName }); + const versions = await getPkgReleases({ datasource, packageName }); expect(versions).toBeNull(); }); @@ -44,7 +44,7 @@ describe('modules/datasource/git-tags/index', () => { const versions = await getPkgReleases({ datasource, - depName, + packageName, }); expect(versions).toMatchSnapshot(); }); diff --git a/lib/modules/datasource/github-releases/index.spec.ts b/lib/modules/datasource/github-releases/index.spec.ts index 2491c1a71f64c1..f90efc018f4bfa 100644 --- a/lib/modules/datasource/github-releases/index.spec.ts +++ b/lib/modules/datasource/github-releases/index.spec.ts @@ -66,7 +66,7 @@ describe('modules/datasource/github-releases/index', () => { const res = await getPkgReleases({ datasource: GithubReleasesDatasource.id, - depName: 'some/dep', + packageName: 'some/dep', }); expect(res).toMatchObject({ @@ -86,15 +86,15 @@ describe('modules/datasource/github-releases/index', () => { }); describe('getDigest', () => { - const depName = 'some/dep'; + const packageName = 'some/dep'; const currentValue = 'v1.0.0'; const currentDigest = 'v1.0.0-digest'; - const releaseMock = new GitHubReleaseMocker(githubApiHost, depName); + const releaseMock = new GitHubReleaseMocker(githubApiHost, packageName); it('requires currentDigest', async () => { const digest = await getDigest( - { datasource: GithubReleasesDatasource.id, depName }, + { datasource: GithubReleasesDatasource.id, packageName }, currentValue ); expect(digest).toBeNull(); @@ -104,7 +104,7 @@ describe('modules/datasource/github-releases/index', () => { const digest = await getDigest( { datasource: GithubReleasesDatasource.id, - depName, + packageName, currentDigest, }, currentValue @@ -123,7 +123,7 @@ describe('modules/datasource/github-releases/index', () => { const digest = await getDigest( { datasource: GithubReleasesDatasource.id, - depName, + packageName, currentValue, currentDigest, }, @@ -139,7 +139,7 @@ describe('modules/datasource/github-releases/index', () => { const digest = await getDigest( { datasource: GithubReleasesDatasource.id, - depName, + packageName, currentValue, currentDigest, }, diff --git a/lib/modules/datasource/github-tags/index.spec.ts b/lib/modules/datasource/github-tags/index.spec.ts index 948a81857263aa..72ae3f11f2421b 100644 --- a/lib/modules/datasource/github-tags/index.spec.ts +++ b/lib/modules/datasource/github-tags/index.spec.ts @@ -114,7 +114,7 @@ describe('modules/datasource/github-tags/index', () => { }); describe('getReleases', () => { - const depName = 'some/dep2'; + const packageName = 'some/dep2'; it('returns tags', async () => { jest.spyOn(githubGraphql, 'queryTags').mockResolvedValueOnce([ @@ -152,7 +152,7 @@ describe('modules/datasource/github-tags/index', () => { }, ]); - const res = await getPkgReleases({ datasource: github.id, depName }); + const res = await getPkgReleases({ datasource: github.id, packageName }); expect(res).toEqual({ registryUrl: 'https://github.com', diff --git a/lib/modules/datasource/gitlab-packages/index.spec.ts b/lib/modules/datasource/gitlab-packages/index.spec.ts index 697c2123c74ee3..366fd9a7cc51c7 100644 --- a/lib/modules/datasource/gitlab-packages/index.spec.ts +++ b/lib/modules/datasource/gitlab-packages/index.spec.ts @@ -39,7 +39,7 @@ describe('modules/datasource/gitlab-packages/index', () => { const res = await getPkgReleases({ datasource, registryUrls: ['https://gitlab.com'], - depName: 'user/project1:mypkg', + packageName: 'user/project1:mypkg', }); expect(res).toMatchSnapshot(); expect(res?.releases).toHaveLength(3); @@ -58,7 +58,7 @@ describe('modules/datasource/gitlab-packages/index', () => { await getPkgReleases({ datasource, registryUrls: ['https://gitlab.com'], - depName: 'user/project1:mypkg', + packageName: 'user/project1:mypkg', }) ).toBeNull(); }); @@ -76,7 +76,7 @@ describe('modules/datasource/gitlab-packages/index', () => { await getPkgReleases({ datasource, registryUrls: ['https://gitlab.com'], - depName: 'user/project1:mypkg', + packageName: 'user/project1:mypkg', }) ).toBeNull(); }); @@ -94,7 +94,7 @@ describe('modules/datasource/gitlab-packages/index', () => { getPkgReleases({ datasource, registryUrls: ['https://gitlab.com'], - depName: 'user/project1:mypkg', + packageName: 'user/project1:mypkg', }) ).rejects.toThrow(EXTERNAL_HOST_ERROR); }); diff --git a/lib/modules/datasource/gitlab-packages/readme.md b/lib/modules/datasource/gitlab-packages/readme.md index e5fc0636d09a5e..54388f498c83ce 100644 --- a/lib/modules/datasource/gitlab-packages/readme.md +++ b/lib/modules/datasource/gitlab-packages/readme.md @@ -1,6 +1,6 @@ [GitLab Packages API](https://docs.gitlab.com/ee/api/packages.html) supports looking up package versions from [all types of packages registry supported by GitLab](https://docs.gitlab.com/ee/user/packages/package_registry/index.html) and can be used in combination with [regex managers](https://docs.renovatebot.com/modules/manager/regex/) to keep dependencies up-to-date which are not specifically supported by Renovate. -To specify which specific repository should be queried when looking up a package, the `depName` should be formed with the project path first, then a `:` and finally the package name. +To specify which specific repository should be queried when looking up a package, the `packageName` should be formed with the project path first, then a `:` and finally the package name. As an example, `gitlab-org/ci-cd/package-stage/feature-testing/new-packages-list:@gitlab-org/nk-js` would look for the`@gitlab-org/nk-js` packages in the generic packages repository of the `gitlab-org/ci-cd/package-stage/feature-testing/new-packages-list` project. diff --git a/lib/modules/datasource/gitlab-releases/index.spec.ts b/lib/modules/datasource/gitlab-releases/index.spec.ts index e0480cd0c7f5d2..2a1d498aa9c3b9 100644 --- a/lib/modules/datasource/gitlab-releases/index.spec.ts +++ b/lib/modules/datasource/gitlab-releases/index.spec.ts @@ -23,7 +23,7 @@ describe('modules/datasource/gitlab-releases/index', () => { const res = await getPkgReleases({ datasource: GitlabReleasesDatasource.id, registryUrls: ['https://gitlab.company.com'], - depName: 'some/dep2', + packageName: 'some/dep2', }); expect(res).toMatchSnapshot(); expect(res?.releases).toHaveLength(2); @@ -36,7 +36,7 @@ describe('modules/datasource/gitlab-releases/index', () => { .reply(200, body); const res = await getPkgReleases({ datasource: GitlabReleasesDatasource.id, - depName: 'some/dep2', + packageName: 'some/dep2', }); expect(res).toMatchSnapshot(); expect(res?.releases).toHaveLength(2); @@ -50,7 +50,7 @@ describe('modules/datasource/gitlab-releases/index', () => { expect( await getPkgReleases({ datasource: GitlabReleasesDatasource.id, - depName: 'some/dep2', + packageName: 'some/dep2', }) ).toBeNull(); }); diff --git a/lib/modules/datasource/gitlab-releases/readme.md b/lib/modules/datasource/gitlab-releases/readme.md index ae31ae31a00776..6b5ffbaa77cebb 100644 --- a/lib/modules/datasource/gitlab-releases/readme.md +++ b/lib/modules/datasource/gitlab-releases/readme.md @@ -1,6 +1,6 @@ [GitLab Releases API](https://docs.gitlab.com/ee/api/releases/) supports looking up [releases supported by GitLab](https://docs.gitlab.com/ee/user/project/releases/) and can be used in combination with [regex managers](https://docs.renovatebot.com/modules/manager/regex/) to keep dependencies up-to-date which are not specifically supported by Renovate. -To specify which specific repository should be queried when looking up a package, the `depName` should be set to the project path. +To specify which specific repository should be queried when looking up a package, the `packageName` should be set to the project path. As an example, `gitlab-org/ci-cd/package-stage/feature-testing/new-packages-list` would look for releases in the `gitlab-org/ci-cd/package-stage/feature-testing/new-packages-list` project. diff --git a/lib/modules/datasource/gitlab-tags/index.spec.ts b/lib/modules/datasource/gitlab-tags/index.spec.ts index 49467bd9b4263c..f9b333fe7e4587 100644 --- a/lib/modules/datasource/gitlab-tags/index.spec.ts +++ b/lib/modules/datasource/gitlab-tags/index.spec.ts @@ -29,7 +29,7 @@ describe('modules/datasource/gitlab-tags/index', () => { const res = await getPkgReleases({ datasource, registryUrls: ['https://gitlab.company.com/api/v4/'], - depName: 'some/dep2', + packageName: 'some/dep2', }); expect(res).toMatchSnapshot(); expect(res?.releases).toHaveLength(3); @@ -58,7 +58,7 @@ describe('modules/datasource/gitlab-tags/index', () => { const res = await getPkgReleases({ datasource, registryUrls: ['https://my.company.com/gitlab'], - depName: 'some/dep2', + packageName: 'some/dep2', }); expect(res).toMatchSnapshot(); expect(res?.releases).toHaveLength(3); @@ -72,7 +72,7 @@ describe('modules/datasource/gitlab-tags/index', () => { .reply(200, body); const res = await getPkgReleases({ datasource, - depName: 'some/dep2', + packageName: 'some/dep2', }); expect(res).toMatchSnapshot(); expect(res?.releases).toHaveLength(2); @@ -94,7 +94,7 @@ describe('modules/datasource/gitlab-tags/index', () => { const res = await getDigest({ datasource, registryUrls: ['https://gitlab.company.com/api/v4/'], - depName: 'some/dep2', + packageName: 'some/dep2', }); expect(res).toBe(digest); }); @@ -112,7 +112,7 @@ describe('modules/datasource/gitlab-tags/index', () => { { datasource, registryUrls: ['https://gitlab.company.com/api/v4/'], - depName: 'some/dep2', + packageName: 'some/dep2', }, 'branch' ); @@ -127,7 +127,7 @@ describe('modules/datasource/gitlab-tags/index', () => { const res = await getDigest({ datasource, registryUrls: ['https://gitlab.company.com/api/v4/'], - depName: 'some/dep2', + packageName: 'some/dep2', }); expect(res).toBeNull(); }); @@ -141,7 +141,7 @@ describe('modules/datasource/gitlab-tags/index', () => { { datasource, registryUrls: ['https://gitlab.company.com/api/v4/'], - depName: 'some/dep2', + packageName: 'some/dep2', }, 'unknown-branch' ); diff --git a/lib/modules/datasource/gitlab-tags/readme.md b/lib/modules/datasource/gitlab-tags/readme.md index 881a9ebda937a3..5f153fddcf46c0 100644 --- a/lib/modules/datasource/gitlab-tags/readme.md +++ b/lib/modules/datasource/gitlab-tags/readme.md @@ -1,6 +1,6 @@ [GitLab Tags API](https://docs.gitlab.com/ee/api/tags.html) supports looking up [Git tags](https://docs.gitlab.com/ee/topics/git/tags.html#tags) and can be used in combination with [regex managers](https://docs.renovatebot.com/modules/manager/regex/) to keep dependencies up-to-date which are not specifically supported by Renovate. -To specify which specific repository should be queried when looking up a package, the `depName` should be set to the project path. +To specify which specific repository should be queried when looking up a package, the `packageName` should be set to the project path. As an example, `gitlab-org/ci-cd/package-stage/feature-testing/new-packages-list` would look for releases in the `gitlab-org/ci-cd/package-stage/feature-testing/new-packages-list` project. diff --git a/lib/modules/datasource/golang-version/index.spec.ts b/lib/modules/datasource/golang-version/index.spec.ts index 03e876758e0f7a..092600d22f5719 100644 --- a/lib/modules/datasource/golang-version/index.spec.ts +++ b/lib/modules/datasource/golang-version/index.spec.ts @@ -23,7 +23,7 @@ describe('modules/datasource/golang-version/index', () => { .reply(200, golangReleasesContent); const res = await getPkgReleases({ datasource, - depName: 'golang', + packageName: 'golang', }); expect(res?.releases).toHaveLength(132); expect(res?.releases[0]).toEqual({ @@ -44,7 +44,7 @@ describe('modules/datasource/golang-version/index', () => { const res = await getPkgReleases({ ...config, datasource, - depName: 'golang', + packageName: 'golang', }); expect(res?.releases).toHaveLength(132); expect(res?.releases[0]).toEqual({ @@ -61,7 +61,7 @@ describe('modules/datasource/golang-version/index', () => { await expect( getPkgReleases({ datasource, - depName: 'golang', + packageName: 'golang', }) ).rejects.toThrow(ExternalHostError); }); @@ -74,7 +74,7 @@ describe('modules/datasource/golang-version/index', () => { await expect( getPkgReleases({ datasource, - depName: 'golang', + packageName: 'golang', }) ).rejects.toThrow(ExternalHostError); }); @@ -85,7 +85,7 @@ describe('modules/datasource/golang-version/index', () => { .get('/golang/website/HEAD/internal/history/release.go') .reply(200, {}); await expect( - getPkgReleases({ datasource, depName: 'golang' }) + getPkgReleases({ datasource, packageName: 'golang' }) ).rejects.toThrow(ExternalHostError); }); @@ -95,7 +95,7 @@ describe('modules/datasource/golang-version/index', () => { .get('/golang/website/HEAD/internal/history/release.go') .reply(200, golangReleasesInvalidContent3); await expect( - getPkgReleases({ datasource, depName: 'golang' }) + getPkgReleases({ datasource, packageName: 'golang' }) ).rejects.toThrow(ExternalHostError); }); @@ -105,7 +105,7 @@ describe('modules/datasource/golang-version/index', () => { .get('/golang/website/HEAD/internal/history/release.go') .reply(200, golangReleasesInvalidContent4); await expect( - getPkgReleases({ datasource, depName: 'golang' }) + getPkgReleases({ datasource, packageName: 'golang' }) ).rejects.toThrow(ExternalHostError); }); @@ -115,7 +115,7 @@ describe('modules/datasource/golang-version/index', () => { .get('/golang/website/HEAD/internal/history/release.go') .reply(404); expect( - await getPkgReleases({ datasource, depName: 'golang' }) + await getPkgReleases({ datasource, packageName: 'golang' }) ).toBeNull(); }); @@ -125,7 +125,7 @@ describe('modules/datasource/golang-version/index', () => { .get('/golang/website/HEAD/internal/history/release.go') .reply(200, golangReleasesInvalidContent5); await expect( - getPkgReleases({ datasource, depName: 'golang' }) + getPkgReleases({ datasource, packageName: 'golang' }) ).rejects.toThrow(ExternalHostError); }); @@ -135,7 +135,7 @@ describe('modules/datasource/golang-version/index', () => { .get('/golang/website/HEAD/internal/history/release.go') .reply(200, golangReleasesInvalidContent6); await expect( - getPkgReleases({ datasource, depName: 'golang' }) + getPkgReleases({ datasource, packageName: 'golang' }) ).rejects.toThrow(ExternalHostError); }); }); diff --git a/lib/modules/datasource/gradle-version/index.spec.ts b/lib/modules/datasource/gradle-version/index.spec.ts index 37afff51b6317b..6bcd65dec8ad99 100644 --- a/lib/modules/datasource/gradle-version/index.spec.ts +++ b/lib/modules/datasource/gradle-version/index.spec.ts @@ -18,7 +18,7 @@ describe('modules/datasource/gradle-version/index', () => { config = { datasource, versioning, - depName: 'abc', + packageName: 'abc', }; }); diff --git a/lib/modules/datasource/helm/index.spec.ts b/lib/modules/datasource/helm/index.spec.ts index 3b75c57e6b82aa..c4dc79ae968b82 100644 --- a/lib/modules/datasource/helm/index.spec.ts +++ b/lib/modules/datasource/helm/index.spec.ts @@ -17,7 +17,7 @@ describe('modules/datasource/helm/index', () => { expect( await getPkgReleases({ datasource: HelmDatasource.id, - depName: undefined as never, // #7154 + packageName: undefined as never, // #7154 registryUrls: ['https://example-repository.com'], }) ).toBeNull(); @@ -32,7 +32,7 @@ describe('modules/datasource/helm/index', () => { expect( await getPkgReleases({ datasource: HelmDatasource.id, - depName: 'some_chart', + packageName: 'some_chart', registryUrls: [], }) ).toBeNull(); @@ -46,7 +46,7 @@ describe('modules/datasource/helm/index', () => { expect( await getPkgReleases({ datasource: HelmDatasource.id, - depName: 'non_existent_chart', + packageName: 'non_existent_chart', registryUrls: ['https://example-repository.com'], }) ).toBeNull(); @@ -60,7 +60,7 @@ describe('modules/datasource/helm/index', () => { expect( await getPkgReleases({ datasource: HelmDatasource.id, - depName: 'non_existent_chart', + packageName: 'non_existent_chart', registryUrls: ['https://example-repository.com'], }) ).toBeNull(); @@ -74,7 +74,7 @@ describe('modules/datasource/helm/index', () => { expect( await getPkgReleases({ datasource: HelmDatasource.id, - depName: 'some_chart', + packageName: 'some_chart', registryUrls: ['https://example-repository.com'], }) ).toBeNull(); @@ -88,7 +88,7 @@ describe('modules/datasource/helm/index', () => { await expect( getPkgReleases({ datasource: HelmDatasource.id, - depName: 'some_chart', + packageName: 'some_chart', registryUrls: ['https://example-repository.com'], }) ).rejects.toThrow(EXTERNAL_HOST_ERROR); @@ -102,7 +102,7 @@ describe('modules/datasource/helm/index', () => { expect( await getPkgReleases({ datasource: HelmDatasource.id, - depName: 'some_chart', + packageName: 'some_chart', registryUrls: ['https://example-repository.com'], }) ).toBeNull(); @@ -115,7 +115,7 @@ describe('modules/datasource/helm/index', () => { .reply(200, '# A comment'); const releases = await getPkgReleases({ datasource: HelmDatasource.id, - depName: 'non_existent_chart', + packageName: 'non_existent_chart', registryUrls: ['https://example-repository.com'], }); expect(releases).toBeNull(); @@ -134,7 +134,7 @@ describe('modules/datasource/helm/index', () => { .reply(200, res); const releases = await getPkgReleases({ datasource: HelmDatasource.id, - depName: 'non_existent_chart', + packageName: 'non_existent_chart', registryUrls: ['https://example-repository.com'], }); expect(releases).toBeNull(); @@ -147,7 +147,7 @@ describe('modules/datasource/helm/index', () => { .reply(200, indexYaml); const releases = await getPkgReleases({ datasource: HelmDatasource.id, - depName: 'non_existent_chart', + packageName: 'non_existent_chart', registryUrls: ['https://example-repository.com'], }); expect(releases).toBeNull(); @@ -160,7 +160,7 @@ describe('modules/datasource/helm/index', () => { .reply(200, indexYaml); const releases = await getPkgReleases({ datasource: HelmDatasource.id, - depName: 'ambassador', + packageName: 'ambassador', registryUrls: ['https://example-repository.com'], }); expect(releases).not.toBeNull(); @@ -174,7 +174,7 @@ describe('modules/datasource/helm/index', () => { .reply(200, indexYaml); const res = await getPkgReleases({ datasource: HelmDatasource.id, - depName: 'ambassador', + packageName: 'ambassador', registryUrls: ['https://example-repository.com/subdir'], }); diff --git a/lib/modules/datasource/hex/index.spec.ts b/lib/modules/datasource/hex/index.spec.ts index 1e8401d8cfa0c7..609220fc7a5055 100644 --- a/lib/modules/datasource/hex/index.spec.ts +++ b/lib/modules/datasource/hex/index.spec.ts @@ -29,7 +29,7 @@ describe('modules/datasource/hex/index', () => { expect( await getPkgReleases({ datasource, - depName: 'non_existent_package', + packageName: 'non_existent_package', }) ).toBeNull(); }); @@ -42,7 +42,7 @@ describe('modules/datasource/hex/index', () => { expect( await getPkgReleases({ datasource, - depName: 'non_existent_package', + packageName: 'non_existent_package', }) ).toBeNull(); }); @@ -50,35 +50,35 @@ describe('modules/datasource/hex/index', () => { it('returns null for 404', async () => { httpMock.scope(baseUrl).get('/packages/some_package').reply(404); expect( - await getPkgReleases({ datasource, depName: 'some_package' }) + await getPkgReleases({ datasource, packageName: 'some_package' }) ).toBeNull(); }); it('returns null for 401', async () => { httpMock.scope(baseUrl).get('/packages/some_package').reply(401); expect( - await getPkgReleases({ datasource, depName: 'some_package' }) + await getPkgReleases({ datasource, packageName: 'some_package' }) ).toBeNull(); }); it('throws for 429', async () => { httpMock.scope(baseUrl).get('/packages/some_crate').reply(429); await expect( - getPkgReleases({ datasource, depName: 'some_crate' }) + getPkgReleases({ datasource, packageName: 'some_crate' }) ).rejects.toThrow(EXTERNAL_HOST_ERROR); }); it('throws for 5xx', async () => { httpMock.scope(baseUrl).get('/packages/some_crate').reply(502); await expect( - getPkgReleases({ datasource, depName: 'some_crate' }) + getPkgReleases({ datasource, packageName: 'some_crate' }) ).rejects.toThrow(EXTERNAL_HOST_ERROR); }); it('returns null for unknown error', async () => { httpMock.scope(baseUrl).get('/packages/some_package').replyWithError(''); expect( - await getPkgReleases({ datasource, depName: 'some_package' }) + await getPkgReleases({ datasource, packageName: 'some_package' }) ).toBeNull(); }); @@ -99,7 +99,7 @@ describe('modules/datasource/hex/index', () => { const res = await getPkgReleases({ datasource, - depName: 'certifi', + packageName: 'certifi', }); expect(res).toBeNull(); @@ -112,7 +112,7 @@ describe('modules/datasource/hex/index', () => { .reply(200, certifiResponse); const res = await getPkgReleases({ datasource, - depName: 'certifi', + packageName: 'certifi', }); expect(res).toMatchSnapshot(); expect(res).not.toBeNull(); @@ -127,7 +127,7 @@ describe('modules/datasource/hex/index', () => { hostRules.find.mockReturnValueOnce({}); const res = await getPkgReleases({ datasource, - depName: 'certifi', + packageName: 'certifi', }); expect(res).toMatchSnapshot(); expect(res).not.toBeNull(); @@ -151,7 +151,7 @@ describe('modules/datasource/hex/index', () => { const result = await getPkgReleases({ datasource, - depName: 'private_package:renovate_test', + packageName: 'private_package:renovate_test', }); expect(result).toMatchSnapshot(); diff --git a/lib/modules/datasource/hexpm-bob/index.spec.ts b/lib/modules/datasource/hexpm-bob/index.spec.ts index 79b8e6f922e655..25969936b410fa 100644 --- a/lib/modules/datasource/hexpm-bob/index.spec.ts +++ b/lib/modules/datasource/hexpm-bob/index.spec.ts @@ -14,7 +14,7 @@ describe('modules/datasource/hexpm-bob/index', () => { await expect( getPkgReleases({ datasource, - depName: 'elixir', + packageName: 'elixir', }) ).rejects.toThrow(EXTERNAL_HOST_ERROR); }); @@ -27,7 +27,7 @@ describe('modules/datasource/hexpm-bob/index', () => { expect( await getPkgReleases({ datasource, - depName: 'elixir', + packageName: 'elixir', }) ).toBeNull(); }); @@ -40,7 +40,7 @@ describe('modules/datasource/hexpm-bob/index', () => { expect( await getPkgReleases({ datasource, - depName: 'elixir', + packageName: 'elixir', }) ).toBeNull(); }); @@ -53,7 +53,7 @@ describe('modules/datasource/hexpm-bob/index', () => { expect( await getPkgReleases({ datasource, - depName: 'elixir', + packageName: 'elixir', }) ).toBeNull(); }); @@ -66,7 +66,7 @@ describe('modules/datasource/hexpm-bob/index', () => { await expect( getPkgReleases({ datasource, - depName: 'elixir', + packageName: 'elixir', }) ).rejects.toThrow(EXTERNAL_HOST_ERROR); }); @@ -78,7 +78,7 @@ describe('modules/datasource/hexpm-bob/index', () => { .reply(200, Fixtures.get('elixir/builds.txt')); const res = await getPkgReleases({ datasource, - depName: 'elixir', + packageName: 'elixir', }); expect(res).toEqual({ homepage: 'https://elixir-lang.org/', @@ -126,7 +126,7 @@ describe('modules/datasource/hexpm-bob/index', () => { .reply(200, Fixtures.get('otp/ubuntu-20.04/builds.txt')); const res = await getPkgReleases({ datasource, - depName: 'otp/ubuntu-20.04', + packageName: 'otp/ubuntu-20.04', versioning: 'regex:^(?\\d+?)\\.(?\\d+?)(\\.(?\\d+))?$', }); @@ -162,7 +162,7 @@ describe('modules/datasource/hexpm-bob/index', () => { const res = await getPkgReleases({ datasource, - depName: 'otp/ubuntu-20.04', + packageName: 'otp/ubuntu-20.04', registryUrls: [registryUrl], }); @@ -173,7 +173,7 @@ describe('modules/datasource/hexpm-bob/index', () => { expect( await getPkgReleases({ datasource, - depName: 'invalid', + packageName: 'invalid', }) ).toBeNull(); }); diff --git a/lib/modules/datasource/index.spec.ts b/lib/modules/datasource/index.spec.ts index 06fb982bada3ad..cb2bd428db396b 100644 --- a/lib/modules/datasource/index.spec.ts +++ b/lib/modules/datasource/index.spec.ts @@ -24,7 +24,7 @@ import { } from '.'; const datasource = 'dummy'; -const depName = 'package'; +const packageName = 'package'; type RegistriesMock = Record< string, @@ -171,17 +171,17 @@ describe('modules/datasource/index', () => { expect( await getPkgReleases({ datasource: null as never, // #7154 - depName: 'some/dep', + packageName: 'some/dep', }) ).toBeNull(); }); - it('returns null for no depName', async () => { + it('returns null for no packageName', async () => { datasources.set(datasource, new DummyDatasource()); expect( await getPkgReleases({ datasource, - depName: null as never, // #7154 + packageName: null as never, // #7154 }) ).toBeNull(); }); @@ -190,7 +190,7 @@ describe('modules/datasource/index', () => { expect( await getPkgReleases({ datasource: 'some-unknown-datasource', - depName: 'some/dep', + packageName: 'some/dep', }) ).toBeNull(); }); @@ -202,7 +202,11 @@ describe('modules/datasource/index', () => { datasources.set(datasource, new TestDatasource()); const registryUrls = ['https://foo.bar']; - const res = await getPkgReleases({ datasource, depName, registryUrls }); + const res = await getPkgReleases({ + datasource, + packageName, + registryUrls, + }); expect(logger.logger.warn).toHaveBeenCalledWith( { datasource: 'dummy', registryUrls, defaultRegistryUrls: undefined }, @@ -227,7 +231,7 @@ describe('modules/datasource/index', () => { datasources.set(datasource, new TestDatasource()); expect(supportsDigests(datasource)).toBeTrue(); - expect(await getDigest({ datasource, depName })).toBe('123'); + expect(await getDigest({ datasource, packageName })).toBe('123'); }); it('returns replacementName if defined', async () => { @@ -245,7 +249,6 @@ describe('modules/datasource/index', () => { await getDigest({ datasource, packageName: 'pkgName', - depName, replacementName: 'replacement', }) ).toBe('replacement'); @@ -258,13 +261,13 @@ describe('modules/datasource/index', () => { }); it('adds changelogUrl', async () => { - expect(await getPkgReleases({ datasource, depName })).toMatchObject({ + expect(await getPkgReleases({ datasource, packageName })).toMatchObject({ changelogUrl: 'https://foo.bar/package/CHANGELOG.md', }); }); it('adds sourceUrl', async () => { - expect(await getPkgReleases({ datasource, depName })).toMatchObject({ + expect(await getPkgReleases({ datasource, packageName })).toMatchObject({ sourceUrl: 'https://foo.bar/package', }); }); @@ -279,7 +282,7 @@ describe('modules/datasource/index', () => { const res = await getPkgReleases({ datasource, - depName, + packageName, defaultRegistryUrls: ['https://foo.bar'], }); expect(res).toMatchObject({ releases: [{ version: '0.0.1' }] }); @@ -289,7 +292,7 @@ describe('modules/datasource/index', () => { datasources.set(datasource, new DummyDatasource2()); const res = await getPkgReleases({ datasource, - depName, + packageName, }); expect(res).toMatchObject({ releases: [{ version: '1.2.3' }], @@ -301,7 +304,7 @@ describe('modules/datasource/index', () => { datasources.set(datasource, new DummyDatasource3()); const res = await getPkgReleases({ datasource, - depName, + packageName, }); expect(res).toMatchObject({ releases: [{ version: '1.2.3' }], @@ -319,7 +322,7 @@ describe('modules/datasource/index', () => { const res = await getPkgReleases({ datasource, - depName, + packageName, extractVersion: '^(?v\\d+\\.\\d+)', versioning: 'loose', }); @@ -338,7 +341,7 @@ describe('modules/datasource/index', () => { ); const res = await getPkgReleases({ datasource, - depName: 'foobar', + packageName: 'foobar', }); expect(res).toMatchObject({ sourceUrl: 'https://abc.com' }); }); @@ -355,7 +358,7 @@ describe('modules/datasource/index', () => { ); const res = await getPkgReleases({ datasource, - depName: 'foobar', + packageName: 'foobar', }); expect(res).toMatchObject({ sourceUrl: 'https://github.com/Jasig/cas' }); }); @@ -364,7 +367,7 @@ describe('modules/datasource/index', () => { datasources.set(datasource, new DummyDatasource()); const res = await getPkgReleases({ datasource, - depName, + packageName, replacementName: 'def', replacementVersion: '2.0.0', }); @@ -385,7 +388,7 @@ describe('modules/datasource/index', () => { const res = await getPkgReleases({ datasource, - depName, + packageName, registryUrls: ['https://reg1.com'], }); @@ -407,7 +410,7 @@ describe('modules/datasource/index', () => { const res = await getPkgReleases({ datasource, - depName, + packageName, registryUrls, }); @@ -418,7 +421,7 @@ describe('modules/datasource/index', () => { expect(logger.logger.warn).toHaveBeenCalledWith( { datasource: 'dummy', - depName: 'package', + packageName: 'package', registryUrls, }, 'Excess registryUrls found for datasource lookup - using first configured only' @@ -435,13 +438,13 @@ describe('modules/datasource/index', () => { const res = await getPkgReleases({ datasource, - depName, + packageName, registryUrls, }); expect(res).toBeNull(); expect(logger.logger.warn).toHaveBeenCalledWith( - { datasource, depName, registryUrls }, + { datasource, packageName, registryUrls }, 'Excess registryUrls found for datasource lookup - using first configured only' ); }); @@ -478,7 +481,7 @@ describe('modules/datasource/index', () => { }); it('merges custom defaultRegistryUrls and returns success', async () => { - const res = await getPkgReleases({ datasource, depName }); + const res = await getPkgReleases({ datasource, packageName }); expect(res).toMatchObject({ releases: [ @@ -491,7 +494,7 @@ describe('modules/datasource/index', () => { it('ignores custom defaultRegistryUrls if registrUrls are set', async () => { const res = await getPkgReleases({ datasource, - depName, + packageName, defaultRegistryUrls: ['https://reg3.com'], registryUrls: ['https://reg1.com', 'https://reg2.com'], }); @@ -507,7 +510,7 @@ describe('modules/datasource/index', () => { it('merges registries and returns success', async () => { const res = await getPkgReleases({ datasource, - depName, + packageName, registryUrls: ['https://reg1.com', 'https://reg2.com'], }); expect(res).toMatchObject({ @@ -522,7 +525,7 @@ describe('modules/datasource/index', () => { await expect( getPkgReleases({ datasource, - depName, + packageName, registryUrls: [ 'https://reg1.com', 'https://reg2.com', @@ -536,7 +539,7 @@ describe('modules/datasource/index', () => { expect( await getPkgReleases({ datasource, - depName, + packageName, registryUrls: ['https://reg4.com', 'https://reg5.com'], }) ).toBeNull(); @@ -563,7 +566,7 @@ describe('modules/datasource/index', () => { const res = await getPkgReleases({ datasource, - depName, + packageName, registryUrls, }); @@ -585,7 +588,7 @@ describe('modules/datasource/index', () => { const res = await getPkgReleases({ datasource, - depName, + packageName, registryUrls, }); @@ -603,7 +606,7 @@ describe('modules/datasource/index', () => { datasources.set(datasource, new HuntRegistriyDatasource(registries)); await expect( - getPkgReleases({ datasource, depName, registryUrls }) + getPkgReleases({ datasource, packageName, registryUrls }) ).rejects.toThrow(EXTERNAL_HOST_ERROR); }); @@ -621,7 +624,7 @@ describe('modules/datasource/index', () => { const res = await getPkgReleases({ datasource, - depName, + packageName, registryUrls, }); @@ -649,7 +652,7 @@ describe('modules/datasource/index', () => { datasources.set(datasource, new DummyDatasource(registries)); const res = await getPkgReleases({ datasource, - depName, + packageName, defaultRegistryUrls: ['https://foo.bar'], }); expect(res).toMatchObject({ @@ -676,7 +679,7 @@ describe('modules/datasource/index', () => { datasources.set(datasource, new DummyDatasource(registries)); const res = await getPkgReleases({ datasource, - depName, + packageName, defaultRegistryUrls: ['https://foo.bar'], constraints: { python: '2.7.0', @@ -709,7 +712,7 @@ describe('modules/datasource/index', () => { datasources.set(datasource, new DummyDatasource(registries)); const res = await getPkgReleases({ datasource, - depName, + packageName, defaultRegistryUrls: ['https://foo.bar'], constraints: { python: '2.7.0' }, constraintsFiltering: 'strict', diff --git a/lib/modules/datasource/index.ts b/lib/modules/datasource/index.ts index 495eae1aff1607..92d07cf2f2a253 100644 --- a/lib/modules/datasource/index.ts +++ b/lib/modules/datasource/index.ts @@ -90,7 +90,11 @@ function firstRegistry( ): Promise { if (registryUrls.length > 1) { logger.warn( - { datasource: datasource.id, depName: config.depName, registryUrls }, + { + datasource: datasource.id, + packageName: config.packageName, + registryUrls, + }, 'Excess registryUrls found for datasource lookup - using first configured only' ); } @@ -343,7 +347,7 @@ export async function getPkgReleases( logger.warn('No datasource found'); return null; } - const packageName = config.packageName ?? config.depName; + const packageName = config.packageName; if (!packageName) { logger.error({ config }, 'Datasource getReleases without packageName'); return null; @@ -437,8 +441,7 @@ function getDigestConfig( config: GetDigestInputConfig ): DigestConfig { const { currentValue, currentDigest } = config; - const packageName = - config.replacementName ?? config.packageName ?? config.depName; + const packageName = config.replacementName ?? config.packageName; const [registryUrl] = resolveRegistryUrls( datasource, config.defaultRegistryUrls, diff --git a/lib/modules/datasource/java-version/index.spec.ts b/lib/modules/datasource/java-version/index.spec.ts index d660e43a8fb297..a383933bde5187 100644 --- a/lib/modules/datasource/java-version/index.spec.ts +++ b/lib/modules/datasource/java-version/index.spec.ts @@ -9,7 +9,7 @@ function getPath(page: number, imageType = 'jdk'): string { return `/v3/info/release_versions?page_size=${pageSize}&image_type=${imageType}&project=jdk&release_type=ga&sort_method=DATE&sort_order=DESC&page=${page}`; } -const depName = 'java'; +const packageName = 'java'; describe('modules/datasource/java-version/index', () => { describe('getReleases', () => { @@ -21,7 +21,7 @@ describe('modules/datasource/java-version/index', () => { await expect( getPkgReleases({ datasource, - depName, + packageName, }) ).rejects.toThrow(EXTERNAL_HOST_ERROR); }); @@ -31,7 +31,7 @@ describe('modules/datasource/java-version/index', () => { expect( await getPkgReleases({ datasource, - depName, + packageName, }) ).toBeNull(); }); @@ -41,7 +41,7 @@ describe('modules/datasource/java-version/index', () => { expect( await getPkgReleases({ datasource, - depName, + packageName, }) ).toBeNull(); }); @@ -54,7 +54,7 @@ describe('modules/datasource/java-version/index', () => { expect( await getPkgReleases({ datasource, - depName, + packageName, }) ).toBeNull(); }); @@ -64,7 +64,7 @@ describe('modules/datasource/java-version/index', () => { await expect( getPkgReleases({ datasource, - depName, + packageName, }) ).rejects.toThrow(EXTERNAL_HOST_ERROR); }); @@ -76,7 +76,7 @@ describe('modules/datasource/java-version/index', () => { .reply(200, Fixtures.get('page.json')); const res = await getPkgReleases({ datasource, - depName, + packageName, }); expect(res).toMatchSnapshot(); expect(res?.releases).toHaveLength(3); @@ -89,7 +89,7 @@ describe('modules/datasource/java-version/index', () => { .reply(200, Fixtures.get('jre.json')); const res = await getPkgReleases({ datasource, - depName: 'java-jre', + packageName: 'java-jre', }); expect(res).toMatchSnapshot(); expect(res?.releases).toHaveLength(2); @@ -107,7 +107,7 @@ describe('modules/datasource/java-version/index', () => { .reply(404); const res = await getPkgReleases({ datasource, - depName, + packageName, }); expect(res).toMatchSnapshot(); expect(res?.releases).toHaveLength(50); diff --git a/lib/modules/datasource/jenkins-plugins/index.spec.ts b/lib/modules/datasource/jenkins-plugins/index.spec.ts index 00a0681a19eaca..19b5af60ceeef7 100644 --- a/lib/modules/datasource/jenkins-plugins/index.spec.ts +++ b/lib/modules/datasource/jenkins-plugins/index.spec.ts @@ -12,7 +12,7 @@ describe('modules/datasource/jenkins-plugins/index', () => { const params = { versioning: versioning.id, datasource: JenkinsPluginsDatasource.id, - depName: 'email-ext', + packageName: 'email-ext', registryUrls: ['https://updates.jenkins.io/'], }; @@ -24,7 +24,7 @@ describe('modules/datasource/jenkins-plugins/index', () => { it('returns null for a package miss', async () => { const newparams = { ...params }; - newparams.depName = 'non-existing'; + newparams.packageName = 'non-existing'; httpMock .scope('https://updates.jenkins.io') diff --git a/lib/modules/datasource/kubernetes-api/index.spec.ts b/lib/modules/datasource/kubernetes-api/index.spec.ts index 73542d86e26d4b..d4b2a954e4ca93 100644 --- a/lib/modules/datasource/kubernetes-api/index.spec.ts +++ b/lib/modules/datasource/kubernetes-api/index.spec.ts @@ -6,14 +6,14 @@ const datasource = KubernetesApiDatasource.id; describe('modules/datasource/kubernetes-api/index', () => { describe('getReleases', () => { it('returns null for an unknown Kubernetes API type', async () => { - const res = await getPkgReleases({ datasource, depName: 'Unknown' }); + const res = await getPkgReleases({ datasource, packageName: 'Unknown' }); expect(res).toBeNull(); }); it('returns for a known Kubernetes API type', async () => { const res = await getPkgReleases({ datasource, - depName: 'CSIStorageCapacity', + packageName: 'CSIStorageCapacity', }); expect(res).not.toBeNull(); expect(res).toStrictEqual({ @@ -27,7 +27,7 @@ describe('modules/datasource/kubernetes-api/index', () => { it('is case sensitive', async () => { const res = await getPkgReleases({ datasource, - depName: 'csistoragecapacity', + packageName: 'csistoragecapacity', }); expect(res).toBeNull(); }); diff --git a/lib/modules/datasource/maven/index.spec.ts b/lib/modules/datasource/maven/index.spec.ts index 78cb193587e1d6..0366e8b408d331 100644 --- a/lib/modules/datasource/maven/index.spec.ts +++ b/lib/modules/datasource/maven/index.spec.ts @@ -162,10 +162,10 @@ function mockGenericPackage(opts: MockOpts = {}) { } function get( - depName = 'org.example:package', + packageName = 'org.example:package', ...registryUrls: string[] ): Promise { - const conf = { versioning, datasource, depName }; + const conf = { versioning, datasource, packageName }; return getPkgReleases(registryUrls ? { ...conf, registryUrls } : conf); } diff --git a/lib/modules/datasource/maven/s3.spec.ts b/lib/modules/datasource/maven/s3.spec.ts index 6fa44058decc22..0952dad7488645 100644 --- a/lib/modules/datasource/maven/s3.spec.ts +++ b/lib/modules/datasource/maven/s3.spec.ts @@ -18,10 +18,10 @@ const datasource = MavenDatasource.id; const baseUrlS3 = 's3://repobucket'; function get( - depName = 'org.example:package', + packageName = 'org.example:package', ...registryUrls: string[] ): Promise { - const conf = { versioning, datasource, depName }; + const conf = { versioning, datasource, packageName }; return getPkgReleases(registryUrls ? { ...conf, registryUrls } : conf); } diff --git a/lib/modules/datasource/node/index.spec.ts b/lib/modules/datasource/node/index.spec.ts index 234b60e39a8db0..1a68ce8a7506e4 100644 --- a/lib/modules/datasource/node/index.spec.ts +++ b/lib/modules/datasource/node/index.spec.ts @@ -11,7 +11,7 @@ describe('modules/datasource/node/index', () => { await expect( getPkgReleases({ datasource, - depName: 'node', + packageName: 'node', }) ).rejects.toThrow(EXTERNAL_HOST_ERROR); }); @@ -24,7 +24,7 @@ describe('modules/datasource/node/index', () => { expect( await getPkgReleases({ datasource, - depName: 'node', + packageName: 'node', }) ).toBeNull(); }); @@ -34,7 +34,7 @@ describe('modules/datasource/node/index', () => { expect( await getPkgReleases({ datasource, - depName: 'node', + packageName: 'node', }) ).toBeNull(); }); @@ -46,7 +46,7 @@ describe('modules/datasource/node/index', () => { .reply(200, Fixtures.get('index.json')); const res = await getPkgReleases({ datasource, - depName: 'node', + packageName: 'node', }); expect(res).toMatchSnapshot(); expect(res?.releases).toHaveLength(64); diff --git a/lib/modules/datasource/npm/index.spec.ts b/lib/modules/datasource/npm/index.spec.ts index 6dd04699db97b6..d7366d54fd52fc 100644 --- a/lib/modules/datasource/npm/index.spec.ts +++ b/lib/modules/datasource/npm/index.spec.ts @@ -56,7 +56,7 @@ describe('modules/datasource/npm/index', () => { .scope('https://registry.npmjs.org') .get('/foobar') .reply(200, missingVersions); - const res = await getPkgReleases({ datasource, depName: 'foobar' }); + const res = await getPkgReleases({ datasource, packageName: 'foobar' }); expect(res).toBeNull(); }); @@ -65,7 +65,7 @@ describe('modules/datasource/npm/index', () => { .scope('https://registry.npmjs.org') .get('/foobar') .reply(200, npmResponse, { 'Cache-control': 'public, expires=300' }); - const res = await getPkgReleases({ datasource, depName: 'foobar' }); + const res = await getPkgReleases({ datasource, packageName: 'foobar' }); expect(res).toMatchSnapshot(); expect(res?.isPrivate).toBeFalse(); }); @@ -90,7 +90,7 @@ describe('modules/datasource/npm/index', () => { }, }; httpMock.scope('https://registry.npmjs.org').get('/foobar').reply(200, pkg); - const res = await getPkgReleases({ datasource, depName: 'foobar' }); + const res = await getPkgReleases({ datasource, packageName: 'foobar' }); expect(res).toMatchSnapshot(); expect(res?.sourceUrl).toBeDefined(); }); @@ -111,7 +111,7 @@ describe('modules/datasource/npm/index', () => { }, }; httpMock.scope('https://registry.npmjs.org').get('/foobar').reply(200, pkg); - const res = await getPkgReleases({ datasource, depName: 'foobar' }); + const res = await getPkgReleases({ datasource, packageName: 'foobar' }); expect(res).toMatchSnapshot(); expect(res?.sourceUrl).toBeDefined(); }); @@ -144,7 +144,7 @@ describe('modules/datasource/npm/index', () => { .scope('https://registry.npmjs.org') .get('/foobar') .reply(200, deprecatedPackage); - const res = await getPkgReleases({ datasource, depName: 'foobar' }); + const res = await getPkgReleases({ datasource, packageName: 'foobar' }); expect(res).toMatchSnapshot(); expect(res?.deprecationMessage).toMatchSnapshot(); }); @@ -154,7 +154,7 @@ describe('modules/datasource/npm/index', () => { .scope('https://registry.npmjs.org') .get('/foobar') .reply(200, npmResponse); - const res = await getPkgReleases({ datasource, depName: 'foobar' }); + const res = await getPkgReleases({ datasource, packageName: 'foobar' }); expect(res).toMatchSnapshot(); expect(res?.isPrivate).toBeTrue(); }); @@ -165,19 +165,19 @@ describe('modules/datasource/npm/index', () => { .scope('https://registry.npmjs.org') .get('/foobar') .reply(200, npmResponse); - const res = await getPkgReleases({ datasource, depName: 'foobar' }); + const res = await getPkgReleases({ datasource, packageName: 'foobar' }); expect(res).toMatchSnapshot(); }); it('should return null if lookup fails 401', async () => { httpMock.scope('https://registry.npmjs.org').get('/foobar').reply(401); - const res = await getPkgReleases({ datasource, depName: 'foobar' }); + const res = await getPkgReleases({ datasource, packageName: 'foobar' }); expect(res).toBeNull(); }); it('should return null if lookup fails', async () => { httpMock.scope('https://registry.npmjs.org').get('/foobar').reply(404); - const res = await getPkgReleases({ datasource, depName: 'foobar' }); + const res = await getPkgReleases({ datasource, packageName: 'foobar' }); expect(res).toBeNull(); }); @@ -187,35 +187,35 @@ describe('modules/datasource/npm/index', () => { .get('/foobar') .reply(200, 'oops'); await expect( - getPkgReleases({ datasource, depName: 'foobar' }) + getPkgReleases({ datasource, packageName: 'foobar' }) ).rejects.toThrow(); }); it('should throw error for 429', async () => { httpMock.scope('https://registry.npmjs.org').get('/foobar').reply(429); await expect( - getPkgReleases({ datasource, depName: 'foobar' }) + getPkgReleases({ datasource, packageName: 'foobar' }) ).rejects.toThrow(); }); it('should throw error for 5xx', async () => { httpMock.scope('https://registry.npmjs.org').get('/foobar').reply(503); await expect( - getPkgReleases({ datasource, depName: 'foobar' }) + getPkgReleases({ datasource, packageName: 'foobar' }) ).rejects.toThrow(EXTERNAL_HOST_ERROR); }); it('should throw error for 408', async () => { httpMock.scope('https://registry.npmjs.org').get('/foobar').reply(408); await expect( - getPkgReleases({ datasource, depName: 'foobar' }) + getPkgReleases({ datasource, packageName: 'foobar' }) ).rejects.toThrow(EXTERNAL_HOST_ERROR); }); it('should throw error for others', async () => { httpMock.scope('https://registry.npmjs.org').get('/foobar').reply(451); await expect( - getPkgReleases({ datasource, depName: 'foobar' }) + getPkgReleases({ datasource, packageName: 'foobar' }) ).rejects.toThrow(); }); @@ -226,7 +226,7 @@ describe('modules/datasource/npm/index', () => { }) .get('/foobar') .reply(200, npmResponse); - const res = await getPkgReleases({ datasource, depName: 'foobar' }); + const res = await getPkgReleases({ datasource, packageName: 'foobar' }); expect(res).toMatchSnapshot(); }); @@ -239,7 +239,7 @@ describe('modules/datasource/npm/index', () => { .reply(200, { ...npmResponse, name: '@foobar/core' }); const res = await getPkgReleases({ datasource, - depName: '@foobar/core', + packageName: '@foobar/core', npmrc: '_auth = 1234', }); expect(res).toMatchSnapshot(); @@ -258,7 +258,11 @@ describe('modules/datasource/npm/index', () => { .get('/foobar') .reply(200, npmResponse); const npmrc = 'registry=https://npm.mycustomregistry.com/'; - const res = await getPkgReleases({ datasource, depName: 'foobar', npmrc }); + const res = await getPkgReleases({ + datasource, + packageName: 'foobar', + npmrc, + }); expect(res).toMatchSnapshot(); }); @@ -280,7 +284,11 @@ describe('modules/datasource/npm/index', () => { .reply(200, npmResponse); const npmrc = 'registry=https://npm.mycustomregistry.com/_packaging/mycustomregistry/npm/registry/'; - const res = await getPkgReleases({ datasource, depName: 'foobar', npmrc }); + const res = await getPkgReleases({ + datasource, + packageName: 'foobar', + npmrc, + }); expect(res).toMatchSnapshot(); }); @@ -297,7 +305,11 @@ describe('modules/datasource/npm/index', () => { .get('/foobar') .reply(200, npmResponse); const npmrc = 'foo=bar'; - const res = await getPkgReleases({ datasource, depName: 'foobar', npmrc }); + const res = await getPkgReleases({ + datasource, + packageName: 'foobar', + npmrc, + }); expect(res).toMatchSnapshot(); }); @@ -307,7 +319,11 @@ describe('modules/datasource/npm/index', () => { .get('/foobar') .reply(200, npmResponse); const npmrc = `registry=https://npm.mycustomregistry.com/`; - const res = await getPkgReleases({ datasource, depName: 'foobar', npmrc }); + const res = await getPkgReleases({ + datasource, + packageName: 'foobar', + npmrc, + }); expect(res).toMatchSnapshot(); expect(res?.isPrivate).toBeTrue(); }); @@ -322,7 +338,11 @@ describe('modules/datasource/npm/index', () => { GlobalConfig.set({ exposeAllEnv: true }); const npmrc = 'registry=${REGISTRY}'; - const res = await getPkgReleases({ datasource, depName: 'foobar', npmrc }); + const res = await getPkgReleases({ + datasource, + packageName: 'foobar', + npmrc, + }); expect(res).toMatchSnapshot(); }); diff --git a/lib/modules/datasource/nuget/index.spec.ts b/lib/modules/datasource/nuget/index.spec.ts index bdc2c914a72734..43e38f25ee56a8 100644 --- a/lib/modules/datasource/nuget/index.spec.ts +++ b/lib/modules/datasource/nuget/index.spec.ts @@ -55,7 +55,7 @@ const nlogMocks = [ const configV3V2 = { datasource, versioning, - depName: 'nunit', + packageName: 'nunit', registryUrls: [ 'https://api.nuget.org/v3/index.json', 'https://www.nuget.org/api/v2/', @@ -65,28 +65,28 @@ const configV3V2 = { const configV2 = { datasource, versioning, - depName: 'nunit', + packageName: 'nunit', registryUrls: ['https://www.nuget.org/api/v2/'], }; const configV3 = { datasource, versioning, - depName: 'nunit', + packageName: 'nunit', registryUrls: ['https://api.nuget.org/v3/index.json'], }; const configV3NotNugetOrg = { datasource, versioning, - depName: 'nunit', + packageName: 'nunit', registryUrls: ['https://myprivatefeed/index.json'], }; const configV3Multiple = { datasource, versioning, - depName: 'nunit', + packageName: 'nunit', registryUrls: [ 'https://api.nuget.org/v3/index.json', 'https://myprivatefeed/index.json', @@ -139,7 +139,7 @@ describe('modules/datasource/nuget/index', () => { const config = { datasource, versioning, - depName: 'nunit', + packageName: 'nunit', registryUrls: ['#$#api.nuget.org/v3/index.xml'], }; @@ -155,7 +155,7 @@ describe('modules/datasource/nuget/index', () => { const config = { datasource, versioning, - depName: 'nunit', + packageName: 'nunit', registryUrls: ['https://my-registry#protocolVersion=3'], }; expect( @@ -389,7 +389,7 @@ describe('modules/datasource/nuget/index', () => { }); const res = await getPkgReleases({ ...configV3, - depName: 'nlog', + packageName: 'nlog', }); expect(res).not.toBeNull(); expect(res).toMatchSnapshot(); diff --git a/lib/modules/datasource/orb/index.spec.ts b/lib/modules/datasource/orb/index.spec.ts index be25548915af2c..2e66d028740b4c 100644 --- a/lib/modules/datasource/orb/index.spec.ts +++ b/lib/modules/datasource/orb/index.spec.ts @@ -34,7 +34,7 @@ describe('modules/datasource/orb/index', () => { expect( await getPkgReleases({ datasource, - depName: 'hyper-expanse/library-release-workflows', + packageName: 'hyper-expanse/library-release-workflows', }) ).toBeNull(); }); @@ -47,7 +47,7 @@ describe('modules/datasource/orb/index', () => { expect( await getPkgReleases({ datasource, - depName: 'hyper-expanse/library-release-wonkflows', + packageName: 'hyper-expanse/library-release-wonkflows', }) ).toBeNull(); }); @@ -57,7 +57,7 @@ describe('modules/datasource/orb/index', () => { expect( await getPkgReleases({ datasource, - depName: 'hyper-expanse/library-release-workflows', + packageName: 'hyper-expanse/library-release-workflows', }) ).toBeNull(); }); @@ -67,7 +67,7 @@ describe('modules/datasource/orb/index', () => { expect( await getPkgReleases({ datasource, - depName: 'hyper-expanse/library-release-workflows', + packageName: 'hyper-expanse/library-release-workflows', }) ).toBeNull(); }); @@ -76,7 +76,7 @@ describe('modules/datasource/orb/index', () => { httpMock.scope(baseUrl).post('/graphql-unstable').reply(200, orbData); const res = await getPkgReleases({ datasource, - depName: 'hyper-expanse/library-release-workflows', + packageName: 'hyper-expanse/library-release-workflows', }); expect(res).toMatchSnapshot(); expect(res).not.toBeNull(); @@ -87,7 +87,7 @@ describe('modules/datasource/orb/index', () => { httpMock.scope(baseUrl).post('/graphql-unstable').reply(200, orbData); const res = await getPkgReleases({ datasource, - depName: 'hyper-expanse/library-release-workflows', + packageName: 'hyper-expanse/library-release-workflows', }); expect(res).toMatchSnapshot(); expect(res?.homepage).toBe('https://google.com'); diff --git a/lib/modules/datasource/packagist/index.spec.ts b/lib/modules/datasource/packagist/index.spec.ts index c82a69ccac52fe..9f90e007047898 100644 --- a/lib/modules/datasource/packagist/index.spec.ts +++ b/lib/modules/datasource/packagist/index.spec.ts @@ -48,7 +48,7 @@ describe('modules/datasource/packagist/index', () => { ...config, datasource, versioning, - depName: 'something/one', + packageName: 'something/one', }); expect(res).toBeNull(); }); @@ -72,7 +72,7 @@ describe('modules/datasource/packagist/index', () => { ...config, datasource, versioning, - depName: 'vendor/package-name', + packageName: 'vendor/package-name', }); expect(res).toMatchSnapshot(); }); @@ -94,7 +94,7 @@ describe('modules/datasource/packagist/index', () => { ...config, datasource, versioning, - depName: 'vendor/package-name2', + packageName: 'vendor/package-name2', }); expect(res).toBeNull(); }); @@ -116,7 +116,7 @@ describe('modules/datasource/packagist/index', () => { ...config, datasource, versioning, - depName: 'vendor/package-name', + packageName: 'vendor/package-name', }); expect(res).toBeNull(); }); @@ -138,7 +138,7 @@ describe('modules/datasource/packagist/index', () => { ...config, datasource, versioning, - depName: 'drewm/mailchimp-api', + packageName: 'drewm/mailchimp-api', }); expect(res).toBeNull(); }); @@ -170,7 +170,7 @@ describe('modules/datasource/packagist/index', () => { ...config, datasource, versioning, - depName: 'guzzlehttp/guzzle', + packageName: 'guzzlehttp/guzzle', }); expect(res).toMatchSnapshot(); expect(res).not.toBeNull(); @@ -199,7 +199,7 @@ describe('modules/datasource/packagist/index', () => { ...config, datasource, versioning, - depName: 'guzzlehttp/guzzle', + packageName: 'guzzlehttp/guzzle', }); expect(res).toMatchObject({ homepage: 'http://guzzlephp.org/', @@ -270,7 +270,7 @@ describe('modules/datasource/packagist/index', () => { ...config, datasource, versioning, - depName: 'guzzlehttp/guzzle', + packageName: 'guzzlehttp/guzzle', }); expect(res).toMatchSnapshot(); expect(res).not.toBeNull(); @@ -315,7 +315,7 @@ describe('modules/datasource/packagist/index', () => { ...config, datasource, versioning, - depName: 'wpackagist-plugin/1beyt', + packageName: 'wpackagist-plugin/1beyt', }); expect(res).toMatchSnapshot(); expect(res).not.toBeNull(); @@ -364,7 +364,7 @@ describe('modules/datasource/packagist/index', () => { ...config, datasource, versioning, - depName: 'some/other', + packageName: 'some/other', }); expect(res).toBeNull(); }); @@ -396,7 +396,7 @@ describe('modules/datasource/packagist/index', () => { ...config, datasource, versioning, - depName: 'wpackagist-plugin/1beyt', + packageName: 'wpackagist-plugin/1beyt', }); expect(res).toMatchSnapshot(); expect(res).not.toBeNull(); @@ -425,7 +425,7 @@ describe('modules/datasource/packagist/index', () => { ...config, datasource, versioning, - depName: 'wpackagist-plugin/1beyt', + packageName: 'wpackagist-plugin/1beyt', }); expect(res).toMatchSnapshot(); expect(res).not.toBeNull(); @@ -462,7 +462,7 @@ describe('modules/datasource/packagist/index', () => { ...config, datasource, versioning, - depName: 'some/other', + packageName: 'some/other', }); expect(res).toBeNull(); }); @@ -482,7 +482,7 @@ describe('modules/datasource/packagist/index', () => { ...config, datasource, versioning, - depName: 'drewm/mailchimp-api', + packageName: 'drewm/mailchimp-api', }) ).toMatchSnapshot(); }); @@ -502,7 +502,7 @@ describe('modules/datasource/packagist/index', () => { ...config, datasource, versioning, - depName: 'drewm/mailchimp-api', + packageName: 'drewm/mailchimp-api', }) ).toMatchSnapshot(); }); @@ -534,7 +534,7 @@ describe('modules/datasource/packagist/index', () => { ...config, datasource, versioning, - depName: 'drewm/mailchimp-api', + packageName: 'drewm/mailchimp-api', }); expect(res).toEqual({ diff --git a/lib/modules/datasource/pod/index.spec.ts b/lib/modules/datasource/pod/index.spec.ts index 96d71bdf59871e..3f90ac87f0dd11 100644 --- a/lib/modules/datasource/pod/index.spec.ts +++ b/lib/modules/datasource/pod/index.spec.ts @@ -7,7 +7,7 @@ import { PodDatasource } from '.'; const config = { versioning: rubyVersioning.id, datasource: PodDatasource.id, - depName: 'foo', + packageName: 'foo', registryUrls: [], }; @@ -31,7 +31,7 @@ describe('modules/datasource/pod/index', () => { expect( await getPkgReleases({ datasource: PodDatasource.id, - depName: 'foobar', + packageName: 'foobar', registryUrls: [], }) ).toBeNull(); diff --git a/lib/modules/datasource/puppet-forge/index.spec.ts b/lib/modules/datasource/puppet-forge/index.spec.ts index c9bf5bdb481e4f..d4430baeb972d0 100644 --- a/lib/modules/datasource/puppet-forge/index.spec.ts +++ b/lib/modules/datasource/puppet-forge/index.spec.ts @@ -18,7 +18,6 @@ describe('modules/datasource/puppet-forge/index', () => { const res = await getPkgReleases({ datasource, - depName: 'puppetlabs/apache', packageName: 'puppetlabs/apache', }); expect(res).toMatchObject({ @@ -41,7 +40,6 @@ describe('modules/datasource/puppet-forge/index', () => { const res = await getPkgReleases({ datasource, - depName: 'puppetlabs/apache', packageName: 'puppetlabs/apache', registryUrls: ['https://forgeapi.puppet.com'], }); @@ -87,7 +85,6 @@ describe('modules/datasource/puppet-forge/index', () => { const res = await getPkgReleases({ datasource, - depName: 'puppetlabs/apache', packageName: 'puppetlabs/apache', }); expect(res).toEqual({ @@ -116,7 +113,7 @@ describe('modules/datasource/puppet-forge/index', () => { const res = await getPkgReleases({ datasource, - depName: 'foobar', + packageName: 'foobar', registryUrls: ['https://forgeapi.puppet.com'], }); expect(res).toBeNull(); @@ -131,7 +128,7 @@ describe('modules/datasource/puppet-forge/index', () => { .reply(404); const res = await getPkgReleases({ datasource, - depName: 'foobar', + packageName: 'foobar', registryUrls: ['https://forgeapi.puppet.com'], }); expect(res).toBeNull(); @@ -146,7 +143,7 @@ describe('modules/datasource/puppet-forge/index', () => { const registryUrls = ['https://puppet.mycustomregistry.com']; const res = await getPkgReleases({ datasource, - depName: 'foobar', + packageName: 'foobar', registryUrls, }); @@ -191,7 +188,7 @@ describe('modules/datasource/puppet-forge/index', () => { const res = await getPkgReleases({ datasource, - depName: 'foobar', + packageName: 'foobar', }); expect(res).toEqual({ @@ -217,7 +214,7 @@ describe('modules/datasource/puppet-forge/index', () => { const res = await getPkgReleases({ datasource, - depName: 'foobar', + packageName: 'foobar', }); expect(res).toBeNull(); diff --git a/lib/modules/datasource/pypi/index.spec.ts b/lib/modules/datasource/pypi/index.spec.ts index 6f7123a3d53d74..7e2df584b795c9 100644 --- a/lib/modules/datasource/pypi/index.spec.ts +++ b/lib/modules/datasource/pypi/index.spec.ts @@ -38,7 +38,7 @@ describe('modules/datasource/pypi/index', () => { expect( await getPkgReleases({ datasource, - depName: 'something', + packageName: 'something', }) ).toBeNull(); }); @@ -49,7 +49,7 @@ describe('modules/datasource/pypi/index', () => { expect( await getPkgReleases({ datasource, - depName: 'something', + packageName: 'something', }) ).toBeNull(); }); @@ -59,7 +59,7 @@ describe('modules/datasource/pypi/index', () => { expect( await getPkgReleases({ datasource, - depName: 'azure-cli-monitor', + packageName: 'azure-cli-monitor', }) ).toMatchSnapshot(); }); @@ -76,7 +76,7 @@ describe('modules/datasource/pypi/index', () => { await getPkgReleases({ ...config, datasource, - depName: 'azure-cli-monitor', + packageName: 'azure-cli-monitor', }) ).toMatchObject({ registryUrl: 'https://custom.pypi.net/foo', @@ -97,7 +97,7 @@ describe('modules/datasource/pypi/index', () => { const res = await getPkgReleases({ ...config, datasource, - depName: 'azure-cli-monitor', + packageName: 'azure-cli-monitor', }); expect(res?.isPrivate).toBeTrue(); }); @@ -125,7 +125,7 @@ describe('modules/datasource/pypi/index', () => { const res = await getPkgReleases({ ...config, datasource, - depName: 'azure-cli-monitor', + packageName: 'azure-cli-monitor', }); expect(res?.releases.pop()).toMatchObject({ version: '0.2.15', @@ -148,7 +148,7 @@ describe('modules/datasource/pypi/index', () => { ( await getPkgReleases({ datasource, - depName: 'something', + packageName: 'something', }) )?.homepage ).toBe('https://microsoft.com'); @@ -172,7 +172,7 @@ describe('modules/datasource/pypi/index', () => { .reply(200, { ...JSON.parse(res1), info }); const result = await getPkgReleases({ datasource, - depName: 'flexget', + packageName: 'flexget', }); expect(result?.sourceUrl).toBe(info.project_urls.Repository); expect(result?.changelogUrl).toBe(info.project_urls.changelog); @@ -192,7 +192,7 @@ describe('modules/datasource/pypi/index', () => { .reply(200, { ...JSON.parse(res1), info }); const result = await getPkgReleases({ datasource, - depName: 'flexget', + packageName: 'flexget', }); expect(result?.sourceUrl).toBeUndefined(); }); @@ -206,7 +206,7 @@ describe('modules/datasource/pypi/index', () => { await getPkgReleases({ datasource, registryUrls: [baseUrl], - depName: 'not_normalized.Package', + packageName: 'not_normalized.Package', }); expect(expectedHttpCall.isDone()).toBeTrue(); @@ -225,7 +225,7 @@ describe('modules/datasource/pypi/index', () => { await getPkgReleases({ datasource, registryUrls: [baseUrl], - depName: 'not_normalized.Package', + packageName: 'not_normalized.Package', }); expect(expectedFallbackHttpCall.isDone()).toBeTrue(); @@ -241,7 +241,7 @@ describe('modules/datasource/pypi/index', () => { await getPkgReleases({ datasource, registryUrls: [simpleRegistryUrl], - depName: 'not_normalized.Package', + packageName: 'not_normalized.Package', }); expect(expectedHttpCall.isDone()).toBeTrue(); @@ -270,7 +270,7 @@ describe('modules/datasource/pypi/index', () => { await getPkgReleases({ datasource, constraints: { python: '2.7' }, - depName: 'doit', + packageName: 'doit', constraintsFiltering: 'strict', }) ).toMatchSnapshot(); @@ -289,7 +289,7 @@ describe('modules/datasource/pypi/index', () => { datasource, ...config, constraints: { python: '2.7' }, - depName: 'dj-database-url', + packageName: 'dj-database-url', }) ).toMatchSnapshot(); }); @@ -307,7 +307,7 @@ describe('modules/datasource/pypi/index', () => { datasource, ...config, constraints: { python: '2.7' }, - depName: 'dj-database-url', + packageName: 'dj-database-url', }) ).toMatchSnapshot(); }); @@ -328,7 +328,7 @@ describe('modules/datasource/pypi/index', () => { datasource, ...config, constraints: { python: '2.7' }, - depName: 'dj-database-url', + packageName: 'dj-database-url', }); expect(res?.isPrivate).toBeTrue(); }); @@ -344,7 +344,7 @@ describe('modules/datasource/pypi/index', () => { const res = await getPkgReleases({ datasource, ...config, - depName: 'package--with-hyphens', + packageName: 'package--with-hyphens', }); expect(res?.releases).toMatchObject([ { version: '2.0.0' }, @@ -366,7 +366,7 @@ describe('modules/datasource/pypi/index', () => { datasource, ...config, constraints: { python: '2.7' }, - depName: 'image-collector', + packageName: 'image-collector', }) ).toMatchSnapshot(); }); @@ -382,7 +382,7 @@ describe('modules/datasource/pypi/index', () => { const res = await getPkgReleases({ datasource, ...config, - depName: 'PackageWithMixedCase', + packageName: 'PackageWithMixedCase', }); expect(res?.releases).toMatchObject([ { version: '2.0.0' }, @@ -402,7 +402,7 @@ describe('modules/datasource/pypi/index', () => { const res = await getPkgReleases({ datasource, ...config, - depName: 'packagewithmixedcase', + packageName: 'packagewithmixedcase', }); expect(res?.releases).toMatchObject([ { version: '2.0.0' }, @@ -422,7 +422,7 @@ describe('modules/datasource/pypi/index', () => { const res = await getPkgReleases({ datasource, ...config, - depName: 'package.with.periods', + packageName: 'package.with.periods', }); expect(res?.releases).toMatchObject([ { version: '2.0.0' }, @@ -444,7 +444,7 @@ describe('modules/datasource/pypi/index', () => { datasource, ...config, constraints: { python: '2.7' }, - depName: 'dj-database-url', + packageName: 'dj-database-url', }) ).toBeNull(); }); @@ -462,7 +462,7 @@ describe('modules/datasource/pypi/index', () => { datasource, ...config, constraints: { python: '2.7' }, - depName: 'dj-database-url', + packageName: 'dj-database-url', }) ).toBeNull(); }); @@ -480,7 +480,7 @@ describe('modules/datasource/pypi/index', () => { datasource, ...config, constraints: { python: '2.7' }, - depName: 'dj-database-url', + packageName: 'dj-database-url', }) ).toBeNull(); }); @@ -500,7 +500,7 @@ describe('modules/datasource/pypi/index', () => { const result = await getPkgReleases({ datasource, ...config, - depName: 'dj-database-url', + packageName: 'dj-database-url', }); expect(result).toMatchSnapshot(); }); @@ -518,7 +518,7 @@ describe('modules/datasource/pypi/index', () => { datasource, constraints: { python: '2.7' }, ...config, - depName: 'dj-database-url', + packageName: 'dj-database-url', constraintsFiltering: 'strict', }) ).toMatchSnapshot(); @@ -535,7 +535,7 @@ describe('modules/datasource/pypi/index', () => { datasource, ...config, constraints: { python: '2.7' }, - depName: 'azure-cli-monitor', + packageName: 'azure-cli-monitor', }) ).toMatchSnapshot(); }); diff --git a/lib/modules/datasource/repology/index.spec.ts b/lib/modules/datasource/repology/index.spec.ts index aabb1b9e800be1..7e7df992af3e08 100644 --- a/lib/modules/datasource/repology/index.spec.ts +++ b/lib/modules/datasource/repology/index.spec.ts @@ -71,7 +71,7 @@ describe('modules/datasource/repology/index', () => { await getPkgReleases({ datasource, versioning, - depName: 'debian_stable/nginx', + packageName: 'debian_stable/nginx', }) ).toBeNull(); }); @@ -88,7 +88,7 @@ describe('modules/datasource/repology/index', () => { await getPkgReleases({ datasource, versioning, - depName: 'this_should/never-exist', + packageName: 'this_should/never-exist', }) ).toBeNull(); }); @@ -107,7 +107,7 @@ describe('modules/datasource/repology/index', () => { getPkgReleases({ datasource, versioning, - depName: 'debian_stable/nginx', + packageName: 'debian_stable/nginx', }) ).rejects.toThrow(EXTERNAL_HOST_ERROR); }); @@ -121,7 +121,7 @@ describe('modules/datasource/repology/index', () => { getPkgReleases({ datasource, versioning, - depName: 'debian_stable/nginx', + packageName: 'debian_stable/nginx', }) ).rejects.toThrow(EXTERNAL_HOST_ERROR); }); @@ -139,7 +139,7 @@ describe('modules/datasource/repology/index', () => { getPkgReleases({ datasource, versioning, - depName: 'debian_stable/nginx', + packageName: 'debian_stable/nginx', }) ).rejects.toThrow(EXTERNAL_HOST_ERROR); }); @@ -158,7 +158,7 @@ describe('modules/datasource/repology/index', () => { getPkgReleases({ datasource, versioning, - depName: 'debian_stable/nginx', + packageName: 'debian_stable/nginx', }) ).rejects.toThrow(EXTERNAL_HOST_ERROR); }); @@ -172,7 +172,7 @@ describe('modules/datasource/repology/index', () => { getPkgReleases({ datasource, versioning, - depName: 'debian_stable/nginx', + packageName: 'debian_stable/nginx', }) ).rejects.toThrow(EXTERNAL_HOST_ERROR); }); @@ -187,7 +187,7 @@ describe('modules/datasource/repology/index', () => { await getPkgReleases({ datasource, versioning, - depName: 'ubuntu_20_04/git', + packageName: 'ubuntu_20_04/git', }) ).toBeNull(); }); @@ -197,7 +197,7 @@ describe('modules/datasource/repology/index', () => { getPkgReleases({ datasource, versioning, - depName: 'invalid-lookup-name', + packageName: 'invalid-lookup-name', }) ).rejects.toThrow(EXTERNAL_HOST_ERROR); }); @@ -211,7 +211,7 @@ describe('modules/datasource/repology/index', () => { const res = await getPkgReleases({ datasource, versioning, - depName: 'debian_stable/nginx', + packageName: 'debian_stable/nginx', }); expect(res).toMatchSnapshot(); expect(res?.releases).toHaveLength(1); @@ -230,7 +230,7 @@ describe('modules/datasource/repology/index', () => { const res = await getPkgReleases({ datasource, versioning, - depName: 'debian_stable/gcc-defaults', + packageName: 'debian_stable/gcc-defaults', }); expect(res).toMatchSnapshot(); expect(res?.releases).toHaveLength(1); @@ -246,7 +246,7 @@ describe('modules/datasource/repology/index', () => { const res = await getPkgReleases({ datasource, versioning, - depName: 'debian_stable/gcc-defaults', + packageName: 'debian_stable/gcc-defaults', }); expect(res).toMatchSnapshot(); expect(res?.releases).toHaveLength(1); @@ -262,7 +262,7 @@ describe('modules/datasource/repology/index', () => { const res = await getPkgReleases({ datasource, versioning, - depName: 'alpine_3_12/gcc', + packageName: 'alpine_3_12/gcc', }); expect(res).toMatchSnapshot(); expect(res?.releases).toHaveLength(1); @@ -278,7 +278,7 @@ describe('modules/datasource/repology/index', () => { const res = await getPkgReleases({ datasource, versioning, - depName: 'debian_stable/pulseaudio-utils', + packageName: 'debian_stable/pulseaudio-utils', }); expect(res).toMatchSnapshot(); expect(res?.releases).toHaveLength(1); @@ -297,7 +297,7 @@ describe('modules/datasource/repology/index', () => { const res = await getPkgReleases({ datasource, versioning, - depName: 'centos_8/java-11-openjdk', + packageName: 'centos_8/java-11-openjdk', }); expect(res).toMatchSnapshot(); expect(res?.releases).toHaveLength(6); @@ -325,7 +325,7 @@ describe('modules/datasource/repology/index', () => { const release = await getPkgReleases({ datasource, versioning, - depName: 'dummy/example', + packageName: 'dummy/example', }); expect(release).toBeNull(); @@ -407,7 +407,7 @@ describe('modules/datasource/repology/index', () => { const res = await getPkgReleases({ datasource, versioning, - depName: 'some_repo/some-package', + packageName: 'some_repo/some-package', }); expect(res).toEqual({ registryUrl: 'https://repology.org', @@ -434,7 +434,7 @@ describe('modules/datasource/repology/index', () => { const res = await getPkgReleases({ datasource, versioning, - depName: 'ubuntu_20_04/python3.8', + packageName: 'ubuntu_20_04/python3.8', }); expect(res).toEqual({ registryUrl: 'https://repology.org', diff --git a/lib/modules/datasource/ruby-version/index.spec.ts b/lib/modules/datasource/ruby-version/index.spec.ts index 25f55333144bd9..5b082be7e54a45 100644 --- a/lib/modules/datasource/ruby-version/index.spec.ts +++ b/lib/modules/datasource/ruby-version/index.spec.ts @@ -14,7 +14,7 @@ describe('modules/datasource/ruby-version/index', () => { .reply(200, Fixtures.get('releases.html')); const res = await getPkgReleases({ datasource, - depName: 'ruby', + packageName: 'ruby', }); expect(res).toMatchSnapshot(); }); @@ -25,7 +25,7 @@ describe('modules/datasource/ruby-version/index', () => { .get('/en/downloads/releases/') .reply(200, {}); await expect( - getPkgReleases({ datasource, depName: 'ruby' }) + getPkgReleases({ datasource, packageName: 'ruby' }) ).rejects.toThrow(); }); @@ -35,7 +35,7 @@ describe('modules/datasource/ruby-version/index', () => { .get('/en/downloads/releases/') .reply(404); await expect( - getPkgReleases({ datasource, depName: 'ruby' }) + getPkgReleases({ datasource, packageName: 'ruby' }) ).rejects.toThrow(); }); }); diff --git a/lib/modules/datasource/rubygems/index.spec.ts b/lib/modules/datasource/rubygems/index.spec.ts index 77839741bfccd7..aeb874b5af0028 100644 --- a/lib/modules/datasource/rubygems/index.spec.ts +++ b/lib/modules/datasource/rubygems/index.spec.ts @@ -18,7 +18,7 @@ describe('modules/datasource/rubygems/index', () => { const params = { versioning: rubyVersioning.id, datasource: RubyGemsDatasource.id, - depName: 'rails', + packageName: 'rails', registryUrls: [ 'https://thirdparty.com', 'https://firstparty.com/basepath/', diff --git a/lib/modules/datasource/sbt-package/index.spec.ts b/lib/modules/datasource/sbt-package/index.spec.ts index 55f65dae6960a3..b1335ced6e2565 100644 --- a/lib/modules/datasource/sbt-package/index.spec.ts +++ b/lib/modules/datasource/sbt-package/index.spec.ts @@ -39,7 +39,7 @@ describe('modules/datasource/sbt-package/index', () => { const res = await getPkgReleases({ versioning: mavenVersioning.id, datasource: SbtPackageDatasource.id, - depName: 'org.scalatest:scalatest', + packageName: 'org.scalatest:scalatest', registryUrls: ['https://failed_repo/maven'], }); @@ -63,7 +63,7 @@ describe('modules/datasource/sbt-package/index', () => { const res = await getPkgReleases({ versioning: mavenVersioning.id, datasource: SbtPackageDatasource.id, - depName: 'com.example:empty', + packageName: 'com.example:empty', registryUrls: [], }); @@ -98,7 +98,7 @@ describe('modules/datasource/sbt-package/index', () => { const res = await getPkgReleases({ versioning: mavenVersioning.id, datasource: SbtPackageDatasource.id, - depName: 'org.example:example', + packageName: 'org.example:example', registryUrls: [MAVEN_REPO], }); @@ -127,7 +127,7 @@ describe('modules/datasource/sbt-package/index', () => { const res = await getPkgReleases({ versioning: mavenVersioning.id, datasource: SbtPackageDatasource.id, - depName: 'org.example:example_2.12', + packageName: 'org.example:example_2.12', registryUrls: [], }); @@ -168,7 +168,7 @@ describe('modules/datasource/sbt-package/index', () => { const res = await getPkgReleases({ versioning: mavenVersioning.id, datasource: SbtPackageDatasource.id, - depName: 'io.confluent:kafka-avro-serializer', + packageName: 'io.confluent:kafka-avro-serializer', registryUrls: ['https://packages.confluent.io/maven'], }); expect(res).toEqual({ @@ -201,7 +201,7 @@ describe('modules/datasource/sbt-package/index', () => { const res = await getPkgReleases({ versioning: mavenVersioning.id, datasource: SbtPackageDatasource.id, - depName: 'org.example:example', + packageName: 'org.example:example', registryUrls: [MAVEN_REPO], }); @@ -245,7 +245,7 @@ describe('modules/datasource/sbt-package/index', () => { const res = await getPkgReleases({ versioning: mavenVersioning.id, datasource: SbtPackageDatasource.id, - depName: 'org.example:example_2.13', + packageName: 'org.example:example_2.13', registryUrls: [ 'https://gitlab.com/api/v4/projects/123/packages/maven/', ], diff --git a/lib/modules/datasource/sbt-plugin/index.spec.ts b/lib/modules/datasource/sbt-plugin/index.spec.ts index 99a0eda1c59b89..4a8c99d76bfa30 100644 --- a/lib/modules/datasource/sbt-plugin/index.spec.ts +++ b/lib/modules/datasource/sbt-plugin/index.spec.ts @@ -145,7 +145,7 @@ describe('modules/datasource/sbt-plugin/index', () => { await getPkgReleases({ versioning: mavenVersioning.id, datasource: SbtPluginDatasource.id, - depName: 'org.scalatest:scalatest', + packageName: 'org.scalatest:scalatest', registryUrls: ['https://failed_repo/maven'], }) ).toBeNull(); @@ -153,7 +153,7 @@ describe('modules/datasource/sbt-plugin/index', () => { await getPkgReleases({ versioning: mavenVersioning.id, datasource: SbtPluginDatasource.id, - depName: 'org.scalatest:scalaz', + packageName: 'org.scalatest:scalaz', registryUrls: [], }) ).toBeNull(); @@ -164,7 +164,7 @@ describe('modules/datasource/sbt-plugin/index', () => { await getPkgReleases({ versioning: mavenVersioning.id, datasource: SbtPluginDatasource.id, - depName: 'org.foundweekends:sbt-bintray', + packageName: 'org.foundweekends:sbt-bintray', registryUrls: [], }) ).toEqual({ @@ -180,7 +180,7 @@ describe('modules/datasource/sbt-plugin/index', () => { await getPkgReleases({ versioning: mavenVersioning.id, datasource: SbtPluginDatasource.id, - depName: 'org.foundweekends:sbt-bintray_2.12', + packageName: 'org.foundweekends:sbt-bintray_2.12', registryUrls: [], }) ).toEqual({ @@ -196,7 +196,7 @@ describe('modules/datasource/sbt-plugin/index', () => { await getPkgReleases({ versioning: mavenVersioning.id, datasource: SbtPluginDatasource.id, - depName: 'io.get-coursier:sbt-coursier', + packageName: 'io.get-coursier:sbt-coursier', registryUrls: [MAVEN_REPO], }) ).toEqual({ diff --git a/lib/modules/datasource/terraform-module/index.spec.ts b/lib/modules/datasource/terraform-module/index.spec.ts index 04c0e6a9ed7219..de102a2324b298 100644 --- a/lib/modules/datasource/terraform-module/index.spec.ts +++ b/lib/modules/datasource/terraform-module/index.spec.ts @@ -26,7 +26,7 @@ describe('modules/datasource/terraform-module/index', () => { expect( await getPkgReleases({ datasource, - depName: 'hashicorp/consul/aws', + packageName: 'hashicorp/consul/aws', }) ).toBeNull(); }); @@ -41,7 +41,7 @@ describe('modules/datasource/terraform-module/index', () => { expect( await getPkgReleases({ datasource, - depName: 'hashicorp/consul/aws', + packageName: 'hashicorp/consul/aws', }) ).toBeNull(); }); @@ -56,7 +56,7 @@ describe('modules/datasource/terraform-module/index', () => { expect( await getPkgReleases({ datasource, - depName: 'hashicorp/consul/aws', + packageName: 'hashicorp/consul/aws', }) ).toBeNull(); }); @@ -70,7 +70,7 @@ describe('modules/datasource/terraform-module/index', () => { .reply(200, serviceDiscoveryResult); const res = await getPkgReleases({ datasource, - depName: 'hashicorp/consul/aws', + packageName: 'hashicorp/consul/aws', }); expect(res).toEqual({ homepage: 'https://registry.terraform.io/modules/hashicorp/consul/aws', @@ -104,7 +104,7 @@ describe('modules/datasource/terraform-module/index', () => { expect( await getPkgReleases({ datasource, - depName: 'hashicorp/consul/aws', + packageName: 'hashicorp/consul/aws', registryUrls: ['https://terraform.company.com'], }) ).toBeNull(); @@ -120,7 +120,7 @@ describe('modules/datasource/terraform-module/index', () => { expect( await getPkgReleases({ datasource, - depName: 'hashicorp/consul/aws', + packageName: 'hashicorp/consul/aws', registryUrls: ['https://terraform.company.com'], }) ).toBeNull(); @@ -136,7 +136,7 @@ describe('modules/datasource/terraform-module/index', () => { expect( await getPkgReleases({ datasource, - depName: 'hashicorp/consul/aws', + packageName: 'hashicorp/consul/aws', registryUrls: ['https://terraform.company.com'], }) ).toBeNull(); @@ -151,7 +151,7 @@ describe('modules/datasource/terraform-module/index', () => { .reply(200, serviceDiscoveryResult); const res = await getPkgReleases({ datasource, - depName: 'hashicorp/consul/aws', + packageName: 'hashicorp/consul/aws', registryUrls: ['https://terraform.company.com'], }); expect(res).toEqual({ @@ -185,7 +185,7 @@ describe('modules/datasource/terraform-module/index', () => { .reply(200, serviceDiscoveryResult); const res = await getPkgReleases({ datasource, - depName: 'registry.terraform.io/hashicorp/consul/aws', + packageName: 'registry.terraform.io/hashicorp/consul/aws', }); expect(res).toEqual({ homepage: 'https://registry.terraform.io/modules/hashicorp/consul/aws', @@ -220,7 +220,7 @@ describe('modules/datasource/terraform-module/index', () => { .reply(200, serviceDiscoveryResult); const res = await getPkgReleases({ datasource, - depName: 'consul/foo', + packageName: 'consul/foo', registryUrls: ['https://terraform.company.com'], }); expect(res).toBeNull(); @@ -237,7 +237,7 @@ describe('modules/datasource/terraform-module/index', () => { .reply(200, serviceDiscoveryResult); const res = await getPkgReleases({ datasource, - depName: 'consul/foo', + packageName: 'consul/foo', registryUrls: ['https://terraform.company.com'], }); expect(res).toBeNull(); @@ -250,7 +250,7 @@ describe('modules/datasource/terraform-module/index', () => { .reply(404); const res = await getPkgReleases({ datasource, - depName: 'consul/foo', + packageName: 'consul/foo', registryUrls: ['https://terraform.company.com'], }); expect(res).toBeNull(); @@ -266,7 +266,7 @@ describe('modules/datasource/terraform-module/index', () => { const res = await getPkgReleases({ datasource, registryUrls: ['https://terraform.foo.bar'], - depName: 'hashicorp/consul/aws', + packageName: 'hashicorp/consul/aws', }); expect(res).toEqual({ diff --git a/lib/modules/datasource/terraform-provider/index.spec.ts b/lib/modules/datasource/terraform-provider/index.spec.ts index 7fa3d732643f2a..1869bb9041046e 100644 --- a/lib/modules/datasource/terraform-provider/index.spec.ts +++ b/lib/modules/datasource/terraform-provider/index.spec.ts @@ -33,7 +33,7 @@ describe('modules/datasource/terraform-provider/index', () => { expect( await getPkgReleases({ datasource: TerraformProviderDatasource.id, - depName: 'azurerm', + packageName: 'azurerm', }) ).toBeNull(); }); @@ -52,7 +52,7 @@ describe('modules/datasource/terraform-provider/index', () => { expect( await getPkgReleases({ datasource: TerraformProviderDatasource.id, - depName: 'azurerm', + packageName: 'azurerm', }) ).toBeNull(); }); @@ -71,7 +71,7 @@ describe('modules/datasource/terraform-provider/index', () => { expect( await getPkgReleases({ datasource: TerraformProviderDatasource.id, - depName: 'azurerm', + packageName: 'azurerm', }) ).toBeNull(); }); @@ -85,7 +85,7 @@ describe('modules/datasource/terraform-provider/index', () => { .reply(200, serviceDiscoveryResult); const res = await getPkgReleases({ datasource: TerraformProviderDatasource.id, - depName: 'azurerm', + packageName: 'azurerm', }); expect(res).toEqual({ homepage: 'https://registry.terraform.io/providers/hashicorp/azurerm', @@ -114,7 +114,7 @@ describe('modules/datasource/terraform-provider/index', () => { expect( await getPkgReleases({ datasource: TerraformProviderDatasource.id, - depName: 'azurerm', + packageName: 'azurerm', registryUrls: ['https://registry.company.com'], }) ).toBeNull(); @@ -130,7 +130,7 @@ describe('modules/datasource/terraform-provider/index', () => { expect( await getPkgReleases({ datasource: TerraformProviderDatasource.id, - depName: 'azurerm', + packageName: 'azurerm', registryUrls: ['https://registry.company.com'], }) ).toBeNull(); @@ -146,7 +146,7 @@ describe('modules/datasource/terraform-provider/index', () => { expect( await getPkgReleases({ datasource: TerraformProviderDatasource.id, - depName: 'azurerm', + packageName: 'azurerm', registryUrls: ['https://registry.company.com'], }) ).toBeNull(); @@ -161,7 +161,6 @@ describe('modules/datasource/terraform-provider/index', () => { .reply(200, serviceDiscoveryResult); const res = await getPkgReleases({ datasource: TerraformProviderDatasource.id, - depName: 'azure', packageName: 'hashicorp/azurerm', registryUrls: ['https://registry.company.com'], }); @@ -197,7 +196,7 @@ describe('modules/datasource/terraform-provider/index', () => { const res = await getPkgReleases({ datasource: TerraformProviderDatasource.id, - depName: 'google-beta', + packageName: 'google-beta', }); expect(res).toEqual({ registryUrl: 'https://releases.hashicorp.com', @@ -233,7 +232,7 @@ describe('modules/datasource/terraform-provider/index', () => { const res = await getPkgReleases({ datasource: TerraformProviderDatasource.id, - depName: 'datadog', + packageName: 'datadog', }); expect(res).toBeNull(); }); @@ -247,7 +246,7 @@ describe('modules/datasource/terraform-provider/index', () => { expect( await getPkgReleases({ datasource: TerraformProviderDatasource.id, - depName: 'azurerm', + packageName: 'azurerm', }) ).toBeNull(); }); diff --git a/lib/modules/datasource/types.ts b/lib/modules/datasource/types.ts index b95f1395529026..a112d5fd5eec5a 100644 --- a/lib/modules/datasource/types.ts +++ b/lib/modules/datasource/types.ts @@ -3,8 +3,7 @@ import type { ModuleApi } from '../../types'; export interface GetDigestInputConfig { datasource: string; - packageName?: string; - depName: string; + packageName: string; defaultRegistryUrls?: string[]; registryUrls?: string[] | null; additionalRegistryUrls?: string[]; @@ -31,8 +30,7 @@ export interface GetPkgReleasesConfig { registryUrls?: string[] | null; additionalRegistryUrls?: string[]; datasource: string; - depName: string; - packageName?: string; + packageName: string; versioning?: string; extractVersion?: string; constraints?: Record; diff --git a/lib/modules/manager/npm/update/locked-dependency/common/parent-version.ts b/lib/modules/manager/npm/update/locked-dependency/common/parent-version.ts index 3aab1c2583470e..5c0a95316fce20 100644 --- a/lib/modules/manager/npm/update/locked-dependency/common/parent-version.ts +++ b/lib/modules/manager/npm/update/locked-dependency/common/parent-version.ts @@ -8,15 +8,17 @@ import { api as semver } from '../../../../../versioning/npm'; const pkgCache = new Map>(); -function getPkgReleasesCached(depName: string): Promise { - let cachedResult = pkgCache.get(depName); +function getPkgReleasesCached( + packageName: string +): Promise { + let cachedResult = pkgCache.get(packageName); if (!cachedResult) { const lookupConfig: GetPkgReleasesConfig = { datasource: 'npm', - depName, + packageName, }; cachedResult = getPkgReleases(lookupConfig); - pkgCache.set(depName, cachedResult); + pkgCache.set(packageName, cachedResult); } return cachedResult; } diff --git a/lib/modules/manager/terraform/lockfile/index.ts b/lib/modules/manager/terraform/lockfile/index.ts index 69d7968d1ac5e6..d4421c3d41310a 100644 --- a/lib/modules/manager/terraform/lockfile/index.ts +++ b/lib/modules/manager/terraform/lockfile/index.ts @@ -25,7 +25,7 @@ async function updateAllLocks( const updateConfig: GetPkgReleasesConfig = { versioning: 'hashicorp', datasource: 'terraform-provider', - depName: lock.packageName, + packageName: lock.packageName, }; const { releases } = (await getPkgReleases(updateConfig)) ?? {}; // istanbul ignore if: needs test diff --git a/lib/util/exec/containerbase.ts b/lib/util/exec/containerbase.ts index 3d7571f160da16..3c3f5c1909e306 100644 --- a/lib/util/exec/containerbase.ts +++ b/lib/util/exec/containerbase.ts @@ -17,138 +17,138 @@ import type { Opt, ToolConfig, ToolConstraint } from './types'; const allToolConfig: Record = { bundler: { datasource: 'rubygems', - depName: 'bundler', + packageName: 'bundler', versioning: rubyVersioningId, }, cocoapods: { datasource: 'rubygems', - depName: 'cocoapods', + packageName: 'cocoapods', versioning: rubyVersioningId, }, composer: { datasource: 'github-releases', - depName: 'composer/composer', + packageName: 'composer/composer', versioning: composerVersioningId, }, corepack: { datasource: 'npm', - depName: 'corepack', + packageName: 'corepack', versioning: npmVersioningId, }, dotnet: { datasource: 'dotnet-version', - depName: 'dotnet-sdk', + packageName: 'dotnet-sdk', versioning: semverVersioningId, }, erlang: { datasource: 'github-releases', - depName: 'containerbase/erlang-prebuild', + packageName: 'containerbase/erlang-prebuild', versioning: semverCoercedVersioningId, }, elixir: { datasource: 'github-releases', - depName: 'elixir-lang/elixir', + packageName: 'elixir-lang/elixir', versioning: semverVersioningId, }, flux: { datasource: 'github-releases', - depName: 'fluxcd/flux2', + packageName: 'fluxcd/flux2', versioning: semverVersioningId, }, golang: { datasource: 'golang-version', - depName: 'golang', + packageName: 'golang', versioning: npmVersioningId, }, helm: { datasource: 'github-releases', - depName: 'helm/helm', + packageName: 'helm/helm', versioning: semverVersioningId, }, helmfile: { datasource: 'github-releases', - depName: 'helmfile/helmfile', + packageName: 'helmfile/helmfile', versioning: semverVersioningId, }, java: { datasource: 'java-version', - depName: 'java', + packageName: 'java', versioning: npmVersioningId, }, jb: { datasource: 'github-releases', - depName: 'jsonnet-bundler/jsonnet-bundler', + packageName: 'jsonnet-bundler/jsonnet-bundler', versioning: semverVersioningId, }, lerna: { datasource: 'npm', - depName: 'lerna', + packageName: 'lerna', versioning: npmVersioningId, }, nix: { datasource: 'github-tags', - depName: 'NixOS/nix', + packageName: 'NixOS/nix', versioning: semverVersioningId, }, node: { datasource: 'node', - depName: 'node', + packageName: 'node', versioning: nodeVersioningId, }, npm: { datasource: 'npm', - depName: 'npm', + packageName: 'npm', hash: true, versioning: npmVersioningId, }, php: { datasource: 'github-releases', - depName: 'containerbase/php-prebuild', + packageName: 'containerbase/php-prebuild', versioning: composerVersioningId, }, pnpm: { datasource: 'npm', - depName: 'pnpm', + packageName: 'pnpm', versioning: npmVersioningId, }, poetry: { datasource: 'pypi', - depName: 'poetry', + packageName: 'poetry', versioning: pep440VersioningId, }, python: { datasource: 'github-releases', - depName: 'containerbase/python-prebuild', + packageName: 'containerbase/python-prebuild', versioning: pythonVersioningId, }, ruby: { datasource: 'github-releases', - depName: 'containerbase/ruby-prebuild', + packageName: 'containerbase/ruby-prebuild', versioning: rubyVersioningId, }, rust: { datasource: 'docker', - depName: 'rust', + packageName: 'rust', versioning: semverVersioningId, }, yarn: { datasource: 'npm', - depName: 'yarn', + packageName: 'yarn', versioning: npmVersioningId, }, 'yarn-slim': { datasource: 'npm', - depName: 'yarn', + packageName: 'yarn', versioning: npmVersioningId, }, dart: { datasource: 'dart-version', - depName: 'dart', + packageName: 'dart', versioning: semverVersioningId, }, flutter: { datasource: 'flutter-version', - depName: 'flutter', + packageName: 'flutter', versioning: semverVersioningId, }, }; diff --git a/lib/util/exec/docker/index.ts b/lib/util/exec/docker/index.ts index 291a97523a9a90..9d192db5908359 100644 --- a/lib/util/exec/docker/index.ts +++ b/lib/util/exec/docker/index.ts @@ -81,7 +81,7 @@ function prepareCommands(commands: Opt[]): string[] { } export async function getDockerTag( - depName: string, + packageName: string, constraint: string, scheme: string ): Promise { @@ -96,12 +96,12 @@ export async function getDockerTag( } logger.debug( - { depName, scheme, constraint }, + { packageName, scheme, constraint }, `Found version constraint - checking for a compatible image to use` ); const imageReleases = await getPkgReleases({ datasource: 'docker', - depName, + packageName, versioning: scheme, }); if (imageReleases?.releases) { @@ -117,17 +117,17 @@ export async function getDockerTag( const version = versions.sort(ver.sortVersions.bind(ver)).pop(); if (version) { logger.debug( - { depName, scheme, constraint, version }, + { packageName, scheme, constraint, version }, `Found compatible image version` ); return version; } } else { - logger.error(`No ${depName} releases found`); + logger.error(`No ${packageName} releases found`); return 'latest'; } logger.warn( - { depName, constraint, scheme }, + { packageName, constraint, scheme }, 'Failed to find a tag satisfying constraint, using "latest" tag instead' ); return 'latest'; diff --git a/lib/util/exec/types.ts b/lib/util/exec/types.ts index 14f7d78d5c678f..ffe794991044b2 100644 --- a/lib/util/exec/types.ts +++ b/lib/util/exec/types.ts @@ -7,7 +7,7 @@ export interface ToolConstraint { export interface ToolConfig { datasource: string; - depName: string; + packageName: string; hash?: boolean; versioning: string; } diff --git a/lib/workers/repository/process/__snapshots__/fetch.spec.ts.snap b/lib/workers/repository/process/__snapshots__/fetch.spec.ts.snap index 0342ca9a090742..50e2e373af26d3 100644 --- a/lib/workers/repository/process/__snapshots__/fetch.spec.ts.snap +++ b/lib/workers/repository/process/__snapshots__/fetch.spec.ts.snap @@ -11,6 +11,7 @@ exports[`workers/repository/process/fetch fetchUpdates() fetches updates 1`] = ` { "datasource": "maven", "depName": "bbb", + "packageName": "bbb", "updates": [ "a", "b", @@ -30,16 +31,19 @@ exports[`workers/repository/process/fetch fetchUpdates() handles ignored, skippe "deps": [ { "depName": "abcd", + "packageName": "abcd", "skipReason": "ignored", "updates": [], }, { "depName": "foo", + "packageName": "foo", "skipReason": "disabled", "updates": [], }, { "depName": "skipped", + "packageName": "skipped", "skipReason": "some-reason", "updates": [], }, diff --git a/lib/workers/repository/process/fetch.ts b/lib/workers/repository/process/fetch.ts index c4ad809e510689..a354dae2c71bc8 100644 --- a/lib/workers/repository/process/fetch.ts +++ b/lib/workers/repository/process/fetch.ts @@ -30,7 +30,8 @@ async function fetchDepUpdates( if (is.string(dep.depName)) { dep.depName = dep.depName.trim(); } - if (!is.nonEmptyString(dep.depName)) { + dep.packageName ??= dep.depName; + if (!is.nonEmptyString(dep.packageName)) { dep.skipReason = 'invalid-name'; } if (dep.isInternal && !packageFileConfig.updateInternalDeps) { diff --git a/lib/workers/repository/process/lookup/index.spec.ts b/lib/workers/repository/process/lookup/index.spec.ts index a9ed162fc30eee..555954cd670580 100644 --- a/lib/workers/repository/process/lookup/index.spec.ts +++ b/lib/workers/repository/process/lookup/index.spec.ts @@ -66,14 +66,14 @@ describe('workers/repository/process/lookup/index', () => { describe('.lookupUpdates()', () => { it('returns null if unknown datasource', async () => { - config.depName = 'some-dep'; + config.packageName = 'some-dep'; config.datasource = 'does not exist'; expect((await lookup.lookupUpdates(config)).updates).toEqual([]); }); it('returns rollback for pinned version', async () => { config.currentValue = '0.9.99'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; config.rollbackPrs = true; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); @@ -85,7 +85,7 @@ describe('workers/repository/process/lookup/index', () => { it('returns rollback for ranged version', async () => { config.currentValue = '^0.9.99'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; config.rollbackPrs = true; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); @@ -97,7 +97,7 @@ describe('workers/repository/process/lookup/index', () => { it('supports minor and major upgrades for tilde ranges', async () => { config.currentValue = '^0.4.0'; config.rangeStrategy = 'pin'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); expect((await lookup.lookupUpdates(config)).updates).toMatchObject([ @@ -110,7 +110,7 @@ describe('workers/repository/process/lookup/index', () => { it('supports lock file updates mixed with regular updates', async () => { config.currentValue = '^0.4.0'; config.rangeStrategy = 'update-lockfile'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; config.separateMinorPatch = true; config.lockedVersion = '0.4.0'; @@ -126,7 +126,7 @@ describe('workers/repository/process/lookup/index', () => { config.groupName = 'somegroup'; config.currentValue = '0.4.0'; config.rangeStrategy = 'pin'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); const res = await lookup.lookupUpdates(config); @@ -138,7 +138,7 @@ describe('workers/repository/process/lookup/index', () => { config.groupName = 'somegroup'; config.currentValue = '0.4.0'; config.rangeStrategy = 'pin'; - config.depName = 'q'; + config.packageName = 'q'; config.separateMinorPatch = true; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); @@ -152,7 +152,7 @@ describe('workers/repository/process/lookup/index', () => { config.currentValue = '0.4.0'; config.rangeStrategy = 'pin'; config.separateMajorMinor = false; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); const res = await lookup.lookupUpdates(config); @@ -164,7 +164,7 @@ describe('workers/repository/process/lookup/index', () => { config.minor = { automerge: true }; config.currentValue = '^0.4.0'; config.rangeStrategy = 'pin'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); expect((await lookup.lookupUpdates(config)).updates).toMatchObject([ @@ -177,7 +177,7 @@ describe('workers/repository/process/lookup/index', () => { it('enforces allowedVersions', async () => { config.currentValue = '0.4.0'; config.allowedVersions = '<1'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); expect((await lookup.lookupUpdates(config)).updates).toHaveLength(1); @@ -186,7 +186,7 @@ describe('workers/repository/process/lookup/index', () => { it('enforces allowedVersions with regex', async () => { config.currentValue = '0.4.0'; config.allowedVersions = '/^0/'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); expect((await lookup.lookupUpdates(config)).updates).toHaveLength(1); @@ -195,7 +195,7 @@ describe('workers/repository/process/lookup/index', () => { it('enforces allowedVersions with negative regex', async () => { config.currentValue = '0.4.0'; config.allowedVersions = '!/^1/'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); expect((await lookup.lookupUpdates(config)).updates).toHaveLength(1); @@ -204,7 +204,7 @@ describe('workers/repository/process/lookup/index', () => { it('falls back to semver syntax allowedVersions', async () => { config.currentValue = '0.4.0'; config.allowedVersions = '<1'; - config.depName = 'q'; + config.packageName = 'q'; config.versioning = dockerVersioningId; // this doesn't make sense but works for this test config.datasource = NpmDatasource.id; // this doesn't make sense but works for this test httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); @@ -214,7 +214,7 @@ describe('workers/repository/process/lookup/index', () => { it('falls back to pep440 syntax allowedVersions', async () => { config.currentValue = '0.4.0'; config.allowedVersions = '==0.9.4'; - config.depName = 'q'; + config.packageName = 'q'; config.versioning = poetryVersioningId; // this doesn't make sense but works for this test config.datasource = NpmDatasource.id; // this doesn't make sense but works for this test httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); @@ -224,7 +224,7 @@ describe('workers/repository/process/lookup/index', () => { it('skips invalid allowedVersions', async () => { config.currentValue = '0.4.0'; config.allowedVersions = 'less than 1'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); await expect(lookup.lookupUpdates(config)).rejects.toThrow( @@ -235,7 +235,7 @@ describe('workers/repository/process/lookup/index', () => { it('returns patch update even if separate patches not configured', async () => { config.currentValue = '0.9.0'; config.rangeStrategy = 'pin'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); const res = await lookup.lookupUpdates(config); @@ -254,7 +254,7 @@ describe('workers/repository/process/lookup/index', () => { }; config.currentValue = '0.9.0'; config.rangeStrategy = 'pin'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); const res = await lookup.lookupUpdates(config); @@ -266,7 +266,7 @@ describe('workers/repository/process/lookup/index', () => { config.separateMinorPatch = true; config.currentValue = '0.9.0'; config.rangeStrategy = 'pin'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); expect((await lookup.lookupUpdates(config)).updates).toMatchObject([ @@ -279,7 +279,7 @@ describe('workers/repository/process/lookup/index', () => { config.separateMinorPatch = true; config.currentValue = '0.8.0'; config.rangeStrategy = 'pin'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); const res = await lookup.lookupUpdates(config); @@ -291,7 +291,7 @@ describe('workers/repository/process/lookup/index', () => { config.separateMajorMinor = false; config.currentValue = '^0.4.0'; config.rangeStrategy = 'pin'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); expect((await lookup.lookupUpdates(config)).updates).toMatchObject([ @@ -304,7 +304,7 @@ describe('workers/repository/process/lookup/index', () => { config.separateMajorMinor = false; config.currentValue = '1.0.0'; config.rangeStrategy = 'pin'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); expect((await lookup.lookupUpdates(config)).updates).toMatchObject([ @@ -315,7 +315,7 @@ describe('workers/repository/process/lookup/index', () => { it('uses minimum version for vulnerabilityAlerts', async () => { config.currentValue = '1.0.0'; config.isVulnerabilityAlert = true; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); const res = (await lookup.lookupUpdates(config)).updates; @@ -326,7 +326,7 @@ describe('workers/repository/process/lookup/index', () => { it('supports minor and major upgrades for ranged versions', async () => { config.currentValue = '~0.4.0'; config.rangeStrategy = 'pin'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); expect((await lookup.lookupUpdates(config)).updates).toMatchObject([ @@ -345,7 +345,7 @@ describe('workers/repository/process/lookup/index', () => { config.currentValue = '*'; config.rangeStrategy = strategy; config.lockedVersion = '0.4.0'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock .scope('https://registry.npmjs.org') @@ -366,7 +366,7 @@ describe('workers/repository/process/lookup/index', () => { config.currentValue = 'x'; config.rangeStrategy = strategy; config.lockedVersion = '0.4.0'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock .scope('https://registry.npmjs.org') @@ -379,7 +379,7 @@ describe('workers/repository/process/lookup/index', () => { it('supports pinning for x-range-all (no lockfile)', async () => { config.currentValue = '*'; config.rangeStrategy = 'pin'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); expect(await lookup.lookupUpdates(config)).toMatchObject({ @@ -390,7 +390,7 @@ describe('workers/repository/process/lookup/index', () => { it('covers pinning an unsupported x-range-all value', async () => { config.currentValue = ''; config.rangeStrategy = 'pin'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); expect((await lookup.lookupUpdates(config)).updates).toEqual([]); @@ -407,7 +407,7 @@ describe('workers/repository/process/lookup/index', () => { async ({ strategy }) => { config.currentValue = 'X'; config.rangeStrategy = strategy; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock .scope('https://registry.npmjs.org') @@ -420,7 +420,7 @@ describe('workers/repository/process/lookup/index', () => { it('ignores pinning for ranges when other upgrade exists', async () => { config.currentValue = '~0.9.0'; config.rangeStrategy = 'pin'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); expect((await lookup.lookupUpdates(config)).updates).toMatchObject([ @@ -432,7 +432,7 @@ describe('workers/repository/process/lookup/index', () => { it('upgrades minor ranged versions', async () => { config.currentValue = '~1.0.0'; config.rangeStrategy = 'pin'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); expect((await lookup.lookupUpdates(config)).updates).toMatchObject([ @@ -445,7 +445,7 @@ describe('workers/repository/process/lookup/index', () => { config.currentValue = '^1.2.1'; config.lockedVersion = '1.2.1'; config.rangeStrategy = 'update-lockfile'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); const res = await lookup.lookupUpdates(config); @@ -457,7 +457,7 @@ describe('workers/repository/process/lookup/index', () => { config.currentValue = '^1.2.1'; config.lockedVersion = '1.2.1'; config.rangeStrategy = 'in-range-only'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); const res = await lookup.lookupUpdates(config); @@ -469,7 +469,7 @@ describe('workers/repository/process/lookup/index', () => { config.currentValue = '~1.2.0'; config.lockedVersion = '1.2.0'; config.rangeStrategy = 'in-range-only'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); const res = await lookup.lookupUpdates(config); @@ -491,7 +491,7 @@ describe('workers/repository/process/lookup/index', () => { it('handles unconstrainedValue values', async () => { config.lockedVersion = '1.2.1'; config.rangeStrategy = 'update-lockfile'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); const res = await lookup.lookupUpdates(config); @@ -517,7 +517,7 @@ describe('workers/repository/process/lookup/index', () => { it('widens minor ranged versions if configured', async () => { config.currentValue = '~1.3.0'; config.rangeStrategy = 'widen'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); expect((await lookup.lookupUpdates(config)).updates).toMatchObject([ @@ -528,7 +528,7 @@ describe('workers/repository/process/lookup/index', () => { it('replaces minor complex ranged versions if configured', async () => { config.currentValue = '~1.2.0 || ~1.3.0'; config.rangeStrategy = 'replace'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); expect((await lookup.lookupUpdates(config)).updates).toMatchObject([ @@ -539,7 +539,7 @@ describe('workers/repository/process/lookup/index', () => { it('widens major ranged versions if configured', async () => { config.currentValue = '^2.0.0'; config.rangeStrategy = 'widen'; - config.depName = 'webpack'; + config.packageName = 'webpack'; config.datasource = NpmDatasource.id; httpMock .scope('https://registry.npmjs.org') @@ -553,7 +553,7 @@ describe('workers/repository/process/lookup/index', () => { it('replaces major complex ranged versions if configured', async () => { config.currentValue = '^1.0.0 || ^2.0.0'; config.rangeStrategy = 'replace'; - config.depName = 'webpack'; + config.packageName = 'webpack'; config.datasource = NpmDatasource.id; httpMock .scope('https://registry.npmjs.org') @@ -567,7 +567,7 @@ describe('workers/repository/process/lookup/index', () => { it('pins minor ranged versions', async () => { config.currentValue = '^1.0.0'; config.rangeStrategy = 'pin'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); expect((await lookup.lookupUpdates(config)).updates).toMatchObject([ @@ -579,7 +579,7 @@ describe('workers/repository/process/lookup/index', () => { config.currentValue = '^1.0.0'; config.lockedVersion = '1.0.0'; config.rangeStrategy = 'pin'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); expect((await lookup.lookupUpdates(config)).updates).toMatchObject([ @@ -590,7 +590,7 @@ describe('workers/repository/process/lookup/index', () => { it('ignores minor ranged versions when not pinning', async () => { config.rangeStrategy = 'replace'; config.currentValue = '^1.0.0'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); expect((await lookup.lookupUpdates(config)).updates).toHaveLength(0); @@ -600,7 +600,7 @@ describe('workers/repository/process/lookup/index', () => { config.rangeStrategy = 'replace'; config.currentValue = '^1.0.0'; config.lockedVersion = '1.1.0'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); expect((await lookup.lookupUpdates(config)).updates).toHaveLength(0); @@ -609,7 +609,7 @@ describe('workers/repository/process/lookup/index', () => { it('upgrades tilde ranges', async () => { config.rangeStrategy = 'pin'; config.currentValue = '~1.3.0'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); expect((await lookup.lookupUpdates(config)).updates).toMatchObject([ @@ -621,7 +621,7 @@ describe('workers/repository/process/lookup/index', () => { it('upgrades .x minor ranges', async () => { config.currentValue = '1.3.x'; config.rangeStrategy = 'pin'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); expect((await lookup.lookupUpdates(config)).updates).toMatchObject([ @@ -633,7 +633,7 @@ describe('workers/repository/process/lookup/index', () => { it('upgrades tilde ranges without pinning', async () => { config.rangeStrategy = 'replace'; config.currentValue = '~1.3.0'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); expect((await lookup.lookupUpdates(config)).updates).toMatchObject([ @@ -644,7 +644,7 @@ describe('workers/repository/process/lookup/index', () => { it('upgrades .x major ranges without pinning', async () => { config.rangeStrategy = 'replace'; config.currentValue = '0.x'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); expect((await lookup.lookupUpdates(config)).updates).toMatchObject([ @@ -655,7 +655,7 @@ describe('workers/repository/process/lookup/index', () => { it('upgrades .x minor ranges without pinning', async () => { config.rangeStrategy = 'replace'; config.currentValue = '1.3.x'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); expect((await lookup.lookupUpdates(config)).updates).toMatchObject([ @@ -666,7 +666,7 @@ describe('workers/repository/process/lookup/index', () => { it('upgrades .x complex minor ranges without pinning', async () => { config.rangeStrategy = 'widen'; config.currentValue = '1.2.x - 1.3.x'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); expect((await lookup.lookupUpdates(config)).updates).toMatchObject([ @@ -677,7 +677,7 @@ describe('workers/repository/process/lookup/index', () => { it('upgrades shorthand major ranges without pinning', async () => { config.rangeStrategy = 'replace'; config.currentValue = '0'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); expect((await lookup.lookupUpdates(config)).updates).toMatchObject([ @@ -688,7 +688,7 @@ describe('workers/repository/process/lookup/index', () => { it('upgrades shorthand minor ranges without pinning', async () => { config.rangeStrategy = 'replace'; config.currentValue = '1.3'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); expect((await lookup.lookupUpdates(config)).updates).toMatchObject([ @@ -699,7 +699,7 @@ describe('workers/repository/process/lookup/index', () => { it('upgrades multiple tilde ranges without pinning', async () => { config.rangeStrategy = 'replace'; config.currentValue = '~0.7.0'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); expect((await lookup.lookupUpdates(config)).updates).toMatchObject([ @@ -711,7 +711,7 @@ describe('workers/repository/process/lookup/index', () => { it('upgrades multiple caret ranges without pinning', async () => { config.rangeStrategy = 'replace'; config.currentValue = '^0.7.0'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); expect((await lookup.lookupUpdates(config)).updates).toMatchObject([ @@ -723,7 +723,7 @@ describe('workers/repository/process/lookup/index', () => { it('supports complex ranges', async () => { config.rangeStrategy = 'widen'; config.currentValue = '^0.7.0 || ^0.8.0'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); const res = await lookup.lookupUpdates(config); @@ -737,7 +737,7 @@ describe('workers/repository/process/lookup/index', () => { it('supports complex major ranges', async () => { config.rangeStrategy = 'widen'; config.currentValue = '^1.0.0 || ^2.0.0'; - config.depName = 'webpack'; + config.packageName = 'webpack'; config.datasource = NpmDatasource.id; httpMock .scope('https://registry.npmjs.org') @@ -754,7 +754,7 @@ describe('workers/repository/process/lookup/index', () => { it('supports complex major hyphen ranges', async () => { config.rangeStrategy = 'widen'; config.currentValue = '1.x - 2.x'; - config.depName = 'webpack'; + config.packageName = 'webpack'; config.datasource = NpmDatasource.id; httpMock .scope('https://registry.npmjs.org') @@ -768,7 +768,7 @@ describe('workers/repository/process/lookup/index', () => { it('widens .x OR ranges', async () => { config.rangeStrategy = 'widen'; config.currentValue = '1.x || 2.x'; - config.depName = 'webpack'; + config.packageName = 'webpack'; config.datasource = NpmDatasource.id; httpMock .scope('https://registry.npmjs.org') @@ -782,7 +782,7 @@ describe('workers/repository/process/lookup/index', () => { it('widens stanndalone major OR ranges', async () => { config.rangeStrategy = 'widen'; config.currentValue = '1 || 2'; - config.depName = 'webpack'; + config.packageName = 'webpack'; config.datasource = NpmDatasource.id; httpMock .scope('https://registry.npmjs.org') @@ -796,7 +796,7 @@ describe('workers/repository/process/lookup/index', () => { it('supports complex tilde ranges', async () => { config.rangeStrategy = 'widen'; config.currentValue = '~1.2.0 || ~1.3.0'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); expect((await lookup.lookupUpdates(config)).updates).toMatchObject([ @@ -807,7 +807,7 @@ describe('workers/repository/process/lookup/index', () => { it('returns nothing for greater than ranges', async () => { config.rangeStrategy = 'replace'; config.currentValue = '>= 0.7.0'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); expect((await lookup.lookupUpdates(config)).updates).toHaveLength(0); @@ -816,7 +816,7 @@ describe('workers/repository/process/lookup/index', () => { it('upgrades less than equal ranges without pinning', async () => { config.rangeStrategy = 'replace'; config.currentValue = '<= 0.7.2'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); expect((await lookup.lookupUpdates(config)).updates).toMatchObject([ @@ -828,7 +828,7 @@ describe('workers/repository/process/lookup/index', () => { it('upgrades less than ranges without pinning', async () => { config.rangeStrategy = 'replace'; config.currentValue = '< 0.7.2'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); expect((await lookup.lookupUpdates(config)).updates).toMatchObject([ @@ -840,7 +840,7 @@ describe('workers/repository/process/lookup/index', () => { it('upgrades less than major ranges', async () => { config.rangeStrategy = 'replace'; config.currentValue = '< 1'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); expect((await lookup.lookupUpdates(config)).updates).toMatchObject([ @@ -851,7 +851,7 @@ describe('workers/repository/process/lookup/index', () => { it('upgrades less than equal minor ranges', async () => { config.rangeStrategy = 'replace'; config.currentValue = '<= 1.3'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); expect((await lookup.lookupUpdates(config)).updates).toMatchObject([ @@ -862,7 +862,7 @@ describe('workers/repository/process/lookup/index', () => { it('upgrades equal minor ranges', async () => { config.rangeStrategy = 'replace'; config.currentValue = '=1.3.1'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); expect((await lookup.lookupUpdates(config)).updates).toMatchObject([ @@ -874,7 +874,7 @@ describe('workers/repository/process/lookup/index', () => { config.rangeStrategy = 'replace'; config.respectLatest = false; config.currentValue = '<= 1'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); expect((await lookup.lookupUpdates(config)).updates).toMatchObject([ @@ -885,7 +885,7 @@ describe('workers/repository/process/lookup/index', () => { it('upgrades major less than equal ranges', async () => { config.rangeStrategy = 'replace'; config.currentValue = '<= 1.0.0'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); const res = await lookup.lookupUpdates(config); @@ -896,7 +896,7 @@ describe('workers/repository/process/lookup/index', () => { it('upgrades major less than ranges without pinning', async () => { config.rangeStrategy = 'replace'; config.currentValue = '< 1.0.0'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); const res = await lookup.lookupUpdates(config); @@ -907,7 +907,7 @@ describe('workers/repository/process/lookup/index', () => { it('upgrades major greater than less than ranges without pinning', async () => { config.rangeStrategy = 'widen'; config.currentValue = '>= 0.5.0 < 1.0.0'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); const res = await lookup.lookupUpdates(config); @@ -918,7 +918,7 @@ describe('workers/repository/process/lookup/index', () => { it('upgrades minor greater than less than ranges without pinning', async () => { config.rangeStrategy = 'widen'; config.currentValue = '>= 0.5.0 <0.8'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); const res = await lookup.lookupUpdates(config); @@ -930,7 +930,7 @@ describe('workers/repository/process/lookup/index', () => { it('upgrades minor greater than less than equals ranges without pinning', async () => { config.rangeStrategy = 'widen'; config.currentValue = '>= 0.5.0 <= 0.8.0'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); const res = await lookup.lookupUpdates(config); @@ -942,7 +942,7 @@ describe('workers/repository/process/lookup/index', () => { it('rejects reverse ordered less than greater than', async () => { config.rangeStrategy = 'widen'; config.currentValue = '<= 0.8.0 >= 0.5.0'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); const res = await lookup.lookupUpdates(config); @@ -952,7 +952,7 @@ describe('workers/repository/process/lookup/index', () => { it('supports > latest versions if configured', async () => { config.respectLatest = false; config.currentValue = '1.4.1'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); expect((await lookup.lookupUpdates(config)).updates).toMatchObject([ @@ -962,7 +962,7 @@ describe('workers/repository/process/lookup/index', () => { it('should ignore unstable versions if the current version is stable', async () => { config.currentValue = '2.5.16'; - config.depName = 'vue'; + config.packageName = 'vue'; config.datasource = NpmDatasource.id; httpMock .scope('https://registry.npmjs.org') @@ -973,7 +973,7 @@ describe('workers/repository/process/lookup/index', () => { it('should ignore unstable versions from datasource', async () => { config.currentValue = '1.4.4'; - config.depName = 'some/action'; + config.packageName = 'some/action'; config.datasource = GithubReleasesDatasource.id; getGithubReleases.mockResolvedValueOnce({ releases: [ @@ -989,7 +989,7 @@ describe('workers/repository/process/lookup/index', () => { it('should return pendingChecks', async () => { config.currentValue = '1.4.4'; - config.depName = 'some/action'; + config.packageName = 'some/action'; config.datasource = GithubReleasesDatasource.id; config.stabilityDays = 14; config.internalChecksFilter = 'strict'; @@ -1012,7 +1012,7 @@ describe('workers/repository/process/lookup/index', () => { it('should return pendingVersions', async () => { config.currentValue = '1.4.4'; - config.depName = 'some/action'; + config.packageName = 'some/action'; config.datasource = GithubReleasesDatasource.id; config.stabilityDays = 3; config.internalChecksFilter = 'strict'; @@ -1037,7 +1037,7 @@ describe('workers/repository/process/lookup/index', () => { config.currentValue = '2.5.16'; config.ignoreUnstable = false; config.respectLatest = false; - config.depName = 'vue'; + config.packageName = 'vue'; config.datasource = NpmDatasource.id; httpMock .scope('https://registry.npmjs.org') @@ -1051,7 +1051,7 @@ describe('workers/repository/process/lookup/index', () => { it('should allow unstable versions if the current version is unstable', async () => { config.currentValue = '3.1.0-dev.20180731'; - config.depName = 'typescript'; + config.packageName = 'typescript'; config.datasource = NpmDatasource.id; httpMock .scope('https://registry.npmjs.org') @@ -1065,7 +1065,7 @@ describe('workers/repository/process/lookup/index', () => { it('should not jump unstable versions', async () => { config.currentValue = '3.0.1-insiders.20180726'; - config.depName = 'typescript'; + config.packageName = 'typescript'; config.datasource = NpmDatasource.id; httpMock .scope('https://registry.npmjs.org') @@ -1080,7 +1080,7 @@ describe('workers/repository/process/lookup/index', () => { it('should update pinned versions if updatePinnedDependencies=true', async () => { config.currentValue = '0.0.34'; config.updatePinnedDependencies = true; - config.depName = '@types/helmet'; + config.packageName = '@types/helmet'; config.datasource = NpmDatasource.id; httpMock .scope('https://registry.npmjs.org') @@ -1095,7 +1095,7 @@ describe('workers/repository/process/lookup/index', () => { it('should not update pinned versions if updatePinnedDependencies=false', async () => { config.currentValue = '0.0.34'; config.updatePinnedDependencies = false; - config.depName = '@types/helmet'; + config.packageName = '@types/helmet'; config.datasource = NpmDatasource.id; httpMock .scope('https://registry.npmjs.org') @@ -1107,7 +1107,7 @@ describe('workers/repository/process/lookup/index', () => { it('should follow dist-tag even if newer version exists', async () => { config.currentValue = '3.0.1-insiders.20180713'; - config.depName = 'typescript'; + config.packageName = 'typescript'; config.datasource = NpmDatasource.id; config.followTag = 'insiders'; httpMock @@ -1122,7 +1122,7 @@ describe('workers/repository/process/lookup/index', () => { it('should roll back to dist-tag if current version is higher', async () => { config.currentValue = '3.1.0-dev.20180813'; - config.depName = 'typescript'; + config.packageName = 'typescript'; config.datasource = NpmDatasource.id; config.followTag = 'insiders'; config.rollbackPrs = true; @@ -1138,7 +1138,7 @@ describe('workers/repository/process/lookup/index', () => { it('should jump unstable versions if followTag', async () => { config.currentValue = '3.0.0-insiders.20180706'; - config.depName = 'typescript'; + config.packageName = 'typescript'; config.datasource = NpmDatasource.id; config.followTag = 'insiders'; httpMock @@ -1153,7 +1153,7 @@ describe('workers/repository/process/lookup/index', () => { it('should update nothing if current version is dist-tag', async () => { config.currentValue = '3.0.1-insiders.20180726'; - config.depName = 'typescript'; + config.packageName = 'typescript'; config.datasource = NpmDatasource.id; config.followTag = 'insiders'; httpMock @@ -1166,7 +1166,7 @@ describe('workers/repository/process/lookup/index', () => { it('should warn if no version matches dist-tag', async () => { config.currentValue = '3.0.1-dev.20180726'; - config.depName = 'typescript'; + config.packageName = 'typescript'; config.datasource = NpmDatasource.id; config.followTag = 'foo'; httpMock @@ -1186,7 +1186,7 @@ describe('workers/repository/process/lookup/index', () => { config.currentValue = 'v1.0.0'; config.currentDigest = 'bla'; config.digestOneAndOnly = true; - config.depName = 'angular/angular'; + config.packageName = 'angular/angular'; config.datasource = GithubTagsDatasource.id; // Only mock calls once so that the second invocation results in @@ -1215,7 +1215,7 @@ describe('workers/repository/process/lookup/index', () => { it('should not warn if no new digest could be found', async () => { config.currentValue = 'v1.0.0'; config.digestOneAndOnly = true; - config.depName = 'angular/angular'; + config.packageName = 'angular/angular'; config.pinDigests = true; config.datasource = GithubTagsDatasource.id; @@ -1240,7 +1240,7 @@ describe('workers/repository/process/lookup/index', () => { it('should treat zero zero tilde ranges as 0.0.x', async () => { config.rangeStrategy = 'replace'; config.currentValue = '~0.0.34'; - config.depName = '@types/helmet'; + config.packageName = '@types/helmet'; config.datasource = NpmDatasource.id; httpMock .scope('https://registry.npmjs.org') @@ -1252,7 +1252,7 @@ describe('workers/repository/process/lookup/index', () => { it('should treat zero zero caret ranges as pinned', async () => { config.rangeStrategy = 'replace'; config.currentValue = '^0.0.34'; - config.depName = '@types/helmet'; + config.packageName = '@types/helmet'; config.datasource = NpmDatasource.id; httpMock .scope('https://registry.npmjs.org') @@ -1265,7 +1265,7 @@ describe('workers/repository/process/lookup/index', () => { it('should downgrade from missing versions', async () => { config.currentValue = '1.16.1'; - config.depName = 'coffeelint'; + config.packageName = 'coffeelint'; config.datasource = NpmDatasource.id; config.rollbackPrs = true; httpMock @@ -1279,7 +1279,7 @@ describe('workers/repository/process/lookup/index', () => { it('should upgrade to only one major', async () => { config.currentValue = '1.0.0'; - config.depName = 'webpack'; + config.packageName = 'webpack'; config.datasource = NpmDatasource.id; httpMock .scope('https://registry.npmjs.org') @@ -1292,7 +1292,7 @@ describe('workers/repository/process/lookup/index', () => { it('should upgrade to two majors', async () => { config.currentValue = '1.0.0'; config.separateMultipleMajor = true; - config.depName = 'webpack'; + config.packageName = 'webpack'; config.datasource = NpmDatasource.id; httpMock .scope('https://registry.npmjs.org') @@ -1305,7 +1305,7 @@ describe('workers/repository/process/lookup/index', () => { it('does not jump major unstable', async () => { config.currentValue = '^4.4.0-canary.3'; config.rangeStrategy = 'replace'; - config.depName = 'next'; + config.packageName = 'next'; config.datasource = NpmDatasource.id; httpMock .scope('https://registry.npmjs.org') @@ -1318,7 +1318,7 @@ describe('workers/repository/process/lookup/index', () => { it('supports in-range caret updates', async () => { config.rangeStrategy = 'bump'; config.currentValue = '^1.0.0'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); expect((await lookup.lookupUpdates(config)).updates).toMatchObject([ @@ -1329,7 +1329,7 @@ describe('workers/repository/process/lookup/index', () => { it('supports in-range tilde updates', async () => { config.rangeStrategy = 'bump'; config.currentValue = '~1.0.0'; - config.depName = 'q'; + config.packageName = 'q'; config.separateMinorPatch = true; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); @@ -1342,7 +1342,7 @@ describe('workers/repository/process/lookup/index', () => { it('supports in-range tilde patch updates', async () => { config.rangeStrategy = 'bump'; config.currentValue = '~1.0.0'; - config.depName = 'q'; + config.packageName = 'q'; config.separateMinorPatch = true; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); @@ -1355,7 +1355,7 @@ describe('workers/repository/process/lookup/index', () => { it('supports in-range gte updates', async () => { config.rangeStrategy = 'bump'; config.currentValue = '>=1.0.0'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); expect((await lookup.lookupUpdates(config)).updates).toMatchObject([ @@ -1366,7 +1366,7 @@ describe('workers/repository/process/lookup/index', () => { it('supports majorgte updates', async () => { config.rangeStrategy = 'bump'; config.currentValue = '>=0.9.0'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; config.separateMajorMinor = false; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); @@ -1378,7 +1378,7 @@ describe('workers/repository/process/lookup/index', () => { it('rejects in-range unsupported operator', async () => { config.rangeStrategy = 'bump'; config.currentValue = '>1.0.0'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); expect((await lookup.lookupUpdates(config)).updates).toMatchObject([]); @@ -1387,7 +1387,7 @@ describe('workers/repository/process/lookup/index', () => { it('rejects non-fully specified in-range updates', async () => { config.rangeStrategy = 'bump'; config.currentValue = '1.x'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); expect((await lookup.lookupUpdates(config)).updates).toMatchObject([]); @@ -1396,14 +1396,14 @@ describe('workers/repository/process/lookup/index', () => { it('rejects complex range in-range updates', async () => { config.rangeStrategy = 'bump'; config.currentValue = '^0.9.0 || ^1.0.0'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); expect((await lookup.lookupUpdates(config)).updates).toMatchObject([]); }); it('replaces non-range in-range updates', async () => { - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; config.packageFile = 'package.json'; config.rangeStrategy = 'bump'; @@ -1415,7 +1415,7 @@ describe('workers/repository/process/lookup/index', () => { }); it('handles github 404', async () => { - config.depName = 'foo'; + config.packageName = 'foo'; config.datasource = GithubTagsDatasource.id; config.packageFile = 'package.json'; config.currentValue = '1.0.0'; @@ -1424,7 +1424,7 @@ describe('workers/repository/process/lookup/index', () => { }); it('handles pypi 404', async () => { - config.depName = 'foo'; + config.packageName = 'foo'; config.datasource = PypiDatasource.id; config.packageFile = 'requirements.txt'; config.currentValue = '1.0.0'; @@ -1436,7 +1436,7 @@ describe('workers/repository/process/lookup/index', () => { }); it('handles packagist', async () => { - config.depName = 'foo/bar'; + config.packageName = 'foo/bar'; config.datasource = PackagistDatasource.id; config.packageFile = 'composer.json'; config.currentValue = '1.0.0'; @@ -1449,7 +1449,7 @@ describe('workers/repository/process/lookup/index', () => { }); it('handles unknown datasource', async () => { - config.depName = 'foo'; + config.packageName = 'foo'; config.datasource = 'typo'; config.packageFile = 'package.json'; config.currentValue = '1.0.0'; @@ -1464,7 +1464,7 @@ describe('workers/repository/process/lookup/index', () => { config.rangeStrategy = 'pin'; config.lockedVersion = '0.9.4'; config.currentValue = '~=0.9'; - config.depName = 'q'; + config.packageName = 'q'; // TODO: we are using npm as source to test pep440 (#9721) config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); @@ -1477,7 +1477,7 @@ describe('workers/repository/process/lookup/index', () => { it('returns complex object', async () => { config.currentValue = '1.3.0'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); const res = await lookup.lookupUpdates(config); @@ -1487,7 +1487,7 @@ describe('workers/repository/process/lookup/index', () => { it('ignores deprecated', async () => { config.currentValue = '1.3.0'; - config.depName = 'q2'; + config.packageName = 'q2'; config.datasource = NpmDatasource.id; const returnJson = JSON.parse(JSON.stringify(qJson)); returnJson.name = 'q2'; @@ -1503,7 +1503,7 @@ describe('workers/repository/process/lookup/index', () => { it('is deprecated', async () => { config.currentValue = '1.3.0'; - config.depName = 'q3'; + config.packageName = 'q3'; config.datasource = NpmDatasource.id; const returnJson = { ...JSON.parse(JSON.stringify(qJson)), @@ -1523,14 +1523,14 @@ describe('workers/repository/process/lookup/index', () => { it('skips unsupported values', async () => { config.currentValue = 'alpine'; - config.depName = 'node'; + config.packageName = 'node'; config.datasource = DockerDatasource.id; const res = await lookup.lookupUpdates(config); expect(res).toMatchSnapshot({ skipReason: 'invalid-value' }); }); it('skips undefined values', async () => { - config.depName = 'node'; + config.packageName = 'node'; config.datasource = DockerDatasource.id; const res = await lookup.lookupUpdates(config); expect(res).toMatchSnapshot({ skipReason: 'invalid-value' }); @@ -1538,7 +1538,7 @@ describe('workers/repository/process/lookup/index', () => { it('handles digest pin', async () => { config.currentValue = '8.0.0'; - config.depName = 'node'; + config.packageName = 'node'; config.datasource = DockerDatasource.id; config.pinDigests = true; docker.getReleases.mockResolvedValueOnce({ @@ -1575,7 +1575,7 @@ describe('workers/repository/process/lookup/index', () => { it('skips uncompatible versions for 8.1.0', async () => { config.currentValue = '8.1.0'; - config.depName = 'node'; + config.packageName = 'node'; config.versioning = dockerVersioningId; config.datasource = DockerDatasource.id; docker.getReleases.mockResolvedValueOnce({ @@ -1599,7 +1599,7 @@ describe('workers/repository/process/lookup/index', () => { it('skips uncompatible versions for 8.1', async () => { config.currentValue = '8.1'; - config.depName = 'node'; + config.packageName = 'node'; config.versioning = dockerVersioningId; config.datasource = DockerDatasource.id; docker.getReleases.mockResolvedValueOnce({ @@ -1632,7 +1632,7 @@ describe('workers/repository/process/lookup/index', () => { it('skips uncompatible versions for 8', async () => { config.currentValue = '8'; - config.depName = 'node'; + config.packageName = 'node'; config.versioning = dockerVersioningId; config.datasource = DockerDatasource.id; docker.getReleases.mockResolvedValueOnce({ @@ -1656,7 +1656,7 @@ describe('workers/repository/process/lookup/index', () => { it('handles digest pin for up to date version', async () => { config.currentValue = '8.1.0'; - config.depName = 'node'; + config.packageName = 'node'; config.datasource = DockerDatasource.id; config.pinDigests = true; docker.getReleases.mockResolvedValueOnce({ @@ -1685,7 +1685,7 @@ describe('workers/repository/process/lookup/index', () => { it('handles digest pin for non-version', async () => { config.currentValue = 'alpine'; - config.depName = 'node'; + config.packageName = 'node'; config.datasource = DockerDatasource.id; config.pinDigests = true; docker.getReleases.mockResolvedValueOnce({ @@ -1717,7 +1717,7 @@ describe('workers/repository/process/lookup/index', () => { it('handles digest lookup failure', async () => { config.currentValue = 'alpine'; - config.depName = 'node'; + config.packageName = 'node'; config.datasource = DockerDatasource.id; config.pinDigests = true; docker.getReleases.mockResolvedValueOnce({ @@ -1740,7 +1740,7 @@ describe('workers/repository/process/lookup/index', () => { it('handles digest update', async () => { config.currentValue = '8.0.0'; - config.depName = 'node'; + config.packageName = 'node'; config.datasource = DockerDatasource.id; config.currentDigest = 'sha256:zzzzzzzzzzzzzzz'; config.pinDigests = true; @@ -1775,7 +1775,7 @@ describe('workers/repository/process/lookup/index', () => { it('handles digest update for non-version', async () => { config.currentValue = 'alpine'; - config.depName = 'node'; + config.packageName = 'node'; config.datasource = DockerDatasource.id; config.currentDigest = 'sha256:zzzzzzzzzzzzzzz'; config.pinDigests = true; @@ -1806,7 +1806,7 @@ describe('workers/repository/process/lookup/index', () => { }); it('handles git submodule update', async () => { - config.depName = 'some-path'; + config.packageName = 'some-path'; config.versioning = gitVersioningId; config.datasource = GitRefsDatasource.id; config.currentDigest = 'some-digest'; @@ -1825,7 +1825,7 @@ describe('workers/repository/process/lookup/index', () => { it('handles sourceUrl packageRules with version restrictions', async () => { config.currentValue = '0.9.99'; - config.depName = 'q'; + config.packageName = 'q'; config.datasource = NpmDatasource.id; config.packageRules = [ { @@ -1843,7 +1843,7 @@ describe('workers/repository/process/lookup/index', () => { it('handles replacements', async () => { config.currentValue = '1.4.1'; - config.depName = 'q'; + config.packageName = 'q'; // This config is normally set when packageRules are applied config.replacementName = 'r'; config.replacementVersion = '2.0.0'; @@ -1855,7 +1855,7 @@ describe('workers/repository/process/lookup/index', () => { it('rollback for invalid version to last stable version', async () => { config.currentValue = '2.5.17'; - config.depName = 'vue'; + config.packageName = 'vue'; config.datasource = NpmDatasource.id; config.rollbackPrs = true; config.ignoreUnstable = true; diff --git a/lib/workers/repository/process/lookup/index.ts b/lib/workers/repository/process/lookup/index.ts index 72039cbd938cd9..57c8ed1ccf5d99 100644 --- a/lib/workers/repository/process/lookup/index.ts +++ b/lib/workers/repository/process/lookup/index.ts @@ -35,11 +35,11 @@ export async function lookupUpdates( currentDigest, currentValue, datasource, - depName, digestOneAndOnly, followTag, lockedVersion, packageFile, + packageName, pinDigests, rollbackPrs, isVulnerabilityAlert, @@ -52,7 +52,7 @@ export async function lookupUpdates( warnings: [], } as any; try { - logger.trace({ dependency: depName, currentValue }, 'lookupUpdates'); + logger.trace({ dependency: packageName, currentValue }, 'lookupUpdates'); // Use the datasource's default versioning if none is configured config.versioning ??= getDefaultVersioning(datasource); const versioning = allVersioning.get(config.versioning); @@ -80,16 +80,16 @@ export async function lookupUpdates( if (!dependency) { // If dependency lookup fails then warn and return const warning: ValidationMessage = { - topic: depName, - message: `Failed to look up ${datasource} dependency ${depName}`, + topic: packageName, + message: `Failed to look up ${datasource} dependency ${packageName}`, }; - logger.debug({ dependency: depName, packageFile }, warning.message); + logger.debug({ dependency: packageName, packageFile }, warning.message); // TODO: return warnings in own field res.warnings.push(warning); return res; } if (dependency.deprecationMessage) { - logger.debug(`Found deprecationMessage for dependency ${depName}`); + logger.debug(`Found deprecationMessage for dependency ${packageName}`); res.deprecationMessage = dependency.deprecationMessage; } @@ -111,7 +111,7 @@ export async function lookupUpdates( // istanbul ignore if if (allVersions.length === 0) { const message = `Found no results from datasource that look like a version`; - logger.debug({ dependency: depName, result: dependency }, message); + logger.debug({ dependency: packageName, result: dependency }, message); if (!currentDigest) { return res; } @@ -122,8 +122,8 @@ export async function lookupUpdates( const taggedVersion = dependency.tags?.[followTag]; if (!taggedVersion) { res.warnings.push({ - topic: depName, - message: `Can't find version with tag ${followTag} for ${depName}`, + topic: packageName, + message: `Can't find version with tag ${followTag} for ${packageName}`, }); return res; } @@ -145,9 +145,9 @@ export async function lookupUpdates( // istanbul ignore if if (!rollback) { res.warnings.push({ - topic: depName, + topic: packageName, // TODO: types (#7154) - message: `Can't find version matching ${currentValue!} for ${depName}`, + message: `Can't find version matching ${currentValue!} for ${packageName}`, }); return res; } @@ -311,7 +311,7 @@ export async function lookupUpdates( // istanbul ignore if if (rangeStrategy === 'bump') { logger.trace( - { depName, currentValue, lockedVersion, newVersion }, + { packageName, currentValue, lockedVersion, newVersion }, 'Skipping bump because newValue is the same' ); continue; @@ -326,7 +326,7 @@ export async function lookupUpdates( } } else if (currentValue) { logger.debug( - `Dependency ${depName} has unsupported value ${currentValue}` + `Dependency ${packageName} has unsupported value ${currentValue}` ); if (!pinDigests && !currentDigest) { res.skipReason = 'invalid-value'; @@ -387,7 +387,7 @@ export async function lookupUpdates( if (update.newDigest === null) { logger.debug( { - depName, + packageName, currentValue, datasource, newValue: update.newValue, @@ -401,7 +401,7 @@ export async function lookupUpdates( if (currentDigest) { res.warnings.push({ message: `Could not determine new digest for update (datasource: ${datasource})`, - topic: depName, + topic: packageName, }); } } @@ -451,7 +451,7 @@ export async function lookupUpdates( currentDigest, currentValue, datasource, - depName, + packageName, digestOneAndOnly, followTag, lockedVersion, diff --git a/lib/workers/repository/process/lookup/types.ts b/lib/workers/repository/process/lookup/types.ts index 5d0a85f5971ef8..92e489c6dc790e 100644 --- a/lib/workers/repository/process/lookup/types.ts +++ b/lib/workers/repository/process/lookup/types.ts @@ -42,7 +42,7 @@ export interface LookupUpdateConfig separateMajorMinor?: boolean; separateMultipleMajor?: boolean; datasource: string; - depName: string; + packageName: string; minimumConfidence?: string; replacementName?: string; replacementVersion?: string; diff --git a/lib/workers/repository/update/pr/changelog/releases.spec.ts b/lib/workers/repository/update/pr/changelog/releases.spec.ts index 70fbddf173969e..5e4c7958950ab4 100644 --- a/lib/workers/repository/update/pr/changelog/releases.spec.ts +++ b/lib/workers/repository/update/pr/changelog/releases.spec.ts @@ -41,7 +41,7 @@ describe('workers/repository/update/pr/changelog/releases', () => { it('should contain only stable', async () => { const config = partial({ datasource: 'some-datasource', - depName: 'some-depname', + packageName: 'some-depname', versioning: npmVersioning.id, currentVersion: '1.0.0', newVersion: '1.1.0', @@ -54,7 +54,7 @@ describe('workers/repository/update/pr/changelog/releases', () => { it('should contain currentVersion unstable', async () => { const config = partial({ datasource: 'some-datasource', - depName: 'some-depname', + packageName: 'some-depname', versioning: npmVersioning.id, currentVersion: '1.0.1-rc0', newVersion: '1.1.0', @@ -67,7 +67,7 @@ describe('workers/repository/update/pr/changelog/releases', () => { it('should contain newVersion unstable', async () => { const config = partial({ datasource: 'some-datasource', - depName: 'some-depname', + packageName: 'some-depname', versioning: npmVersioning.id, currentVersion: '1.0.1', newVersion: '1.2.0-rc1', @@ -80,7 +80,7 @@ describe('workers/repository/update/pr/changelog/releases', () => { it('should contain both currentVersion newVersion unstable', async () => { const config = partial({ datasource: 'some-datasource', - depName: 'some-depname', + packageName: 'some-depname', versioning: npmVersioning.id, currentVersion: '1.0.1-rc0', newVersion: '1.2.0-rc1', @@ -93,7 +93,7 @@ describe('workers/repository/update/pr/changelog/releases', () => { it('should valueToVersion', async () => { const config = partial({ datasource: 'some-datasource', - depName: 'some-depname', + packageName: 'some-depname', versioning: dockerVersioning.id, currentVersion: '1.0.1-rc0', newVersion: '1.2.0-rc0', From 177ffedb85f41791a87dda95a39a0f3311f94f98 Mon Sep 17 00:00:00 2001 From: Paul Gschwendtner Date: Wed, 22 Feb 2023 12:24:02 +0100 Subject: [PATCH 103/228] feat(datasource/github-releases)!: digest computation use git tag, not file digest (#20178) The github-releases datasource has been copied into a new datasource called github-release-attachments. The github-releases general datasource is updated to use the underlying Git tag of a GitHub release entry for digest computation. Fixes #20160, Fixes #19552 BREAKING CHANGE: Regex Manager configurations relying on the github-release data-source with digests will have different digest semantics. The digest will now always correspond to the underlying Git SHA of the release/version. The old behavior can be preserved by switching to the github-release-attachments datasource. --- lib/modules/datasource/api.ts | 5 + .../digest.spec.ts | 30 +-- .../github-release-attachments/index.spec.ts | 154 +++++++++++ .../github-release-attachments/index.ts | 250 ++++++++++++++++++ .../test/index.ts | 2 +- .../datasource/github-releases/index.spec.ts | 70 ++--- .../datasource/github-releases/index.ts | 194 +------------- lib/modules/datasource/github-tags/index.ts | 39 +-- lib/util/github/tags.spec.ts | 78 ++++++ lib/util/github/tags.ts | 39 +++ 10 files changed, 593 insertions(+), 268 deletions(-) rename lib/modules/datasource/{github-releases => github-release-attachments}/digest.spec.ts (80%) create mode 100644 lib/modules/datasource/github-release-attachments/index.spec.ts create mode 100644 lib/modules/datasource/github-release-attachments/index.ts rename lib/modules/datasource/{github-releases => github-release-attachments}/test/index.ts (97%) create mode 100644 lib/util/github/tags.spec.ts create mode 100644 lib/util/github/tags.ts diff --git a/lib/modules/datasource/api.ts b/lib/modules/datasource/api.ts index c61d696bfa18ff..8bb45960253cb1 100644 --- a/lib/modules/datasource/api.ts +++ b/lib/modules/datasource/api.ts @@ -19,6 +19,7 @@ import { GalaxyDatasource } from './galaxy'; import { GalaxyCollectionDatasource } from './galaxy-collection'; import { GitRefsDatasource } from './git-refs'; import { GitTagsDatasource } from './git-tags'; +import { GithubReleaseAttachmentsDatasource } from './github-release-attachments'; import { GithubReleasesDatasource } from './github-releases'; import { GithubTagsDatasource } from './github-tags'; import { GitlabPackagesDatasource } from './gitlab-packages'; @@ -76,6 +77,10 @@ api.set(GalaxyDatasource.id, new GalaxyDatasource()); api.set(GalaxyCollectionDatasource.id, new GalaxyCollectionDatasource()); api.set(GitRefsDatasource.id, new GitRefsDatasource()); api.set(GitTagsDatasource.id, new GitTagsDatasource()); +api.set( + GithubReleaseAttachmentsDatasource.id, + new GithubReleaseAttachmentsDatasource() +); api.set(GithubReleasesDatasource.id, new GithubReleasesDatasource()); api.set(GithubTagsDatasource.id, new GithubTagsDatasource()); api.set(GitlabPackagesDatasource.id, new GitlabPackagesDatasource()); diff --git a/lib/modules/datasource/github-releases/digest.spec.ts b/lib/modules/datasource/github-release-attachments/digest.spec.ts similarity index 80% rename from lib/modules/datasource/github-releases/digest.spec.ts rename to lib/modules/datasource/github-release-attachments/digest.spec.ts index 35fff7e25297ff..19264bc096da19 100644 --- a/lib/modules/datasource/github-releases/digest.spec.ts +++ b/lib/modules/datasource/github-release-attachments/digest.spec.ts @@ -1,17 +1,17 @@ import hasha from 'hasha'; import * as httpMock from '../../../../test/http-mock'; import type { GithubDigestFile } from '../../../util/github/types'; -import { GitHubReleaseMocker } from './test'; +import { GitHubReleaseAttachmentMocker } from './test'; -import { GithubReleasesDatasource } from '.'; +import { GithubReleaseAttachmentsDatasource } from '.'; -describe('modules/datasource/github-releases/digest', () => { +describe('modules/datasource/github-release-attachments/digest', () => { const packageName = 'some/dep'; - const releaseMock = new GitHubReleaseMocker( + const releaseMock = new GitHubReleaseAttachmentMocker( 'https://api.github.com', packageName ); - const githubReleases = new GithubReleasesDatasource(); + const githubReleaseAttachments = new GithubReleaseAttachmentsDatasource(); describe('findDigestAsset', () => { it('finds SHASUMS.txt file containing digest', async () => { @@ -21,7 +21,7 @@ describe('modules/datasource/github-releases/digest', () => { 'another-digest linux-arm64.tar.gz' ); - const digestAsset = await githubReleases.findDigestAsset( + const digestAsset = await githubReleaseAttachments.findDigestAsset( release, 'test-digest' ); @@ -40,7 +40,7 @@ describe('modules/datasource/github-releases/digest', () => { .get(`/repos/${packageName}/releases/download/v1.0.0/SHASUMS.txt`) .reply(200, ''); - const digestAsset = await githubReleases.findDigestAsset( + const digestAsset = await githubReleaseAttachments.findDigestAsset( release, 'test-digest' ); @@ -57,7 +57,7 @@ describe('modules/datasource/github-releases/digest', () => { }); const contentDigest = await hasha.async(content, { algorithm: 'sha256' }); - const digestAsset = await githubReleases.findDigestAsset( + const digestAsset = await githubReleaseAttachments.findDigestAsset( release, contentDigest ); @@ -67,7 +67,7 @@ describe('modules/datasource/github-releases/digest', () => { it('returns null when no assets available', async () => { const release = releaseMock.release('v1.0.0'); - const digestAsset = await githubReleases.findDigestAsset( + const digestAsset = await githubReleaseAttachments.findDigestAsset( release, 'test-digest' ); @@ -89,7 +89,7 @@ describe('modules/datasource/github-releases/digest', () => { 'v1.0.1', 'updated-digest asset.zip' ); - const digest = await githubReleases.mapDigestAssetToRelease( + const digest = await githubReleaseAttachments.mapDigestAssetToRelease( digestAsset, release ); @@ -106,7 +106,7 @@ describe('modules/datasource/github-releases/digest', () => { 'v1.0.1', 'updated-digest asset-1.0.1.zip' ); - const digest = await githubReleases.mapDigestAssetToRelease( + const digest = await githubReleaseAttachments.mapDigestAssetToRelease( digestAssetWithVersion, release ); @@ -118,7 +118,7 @@ describe('modules/datasource/github-releases/digest', () => { 'v1.0.1', 'moot-digest asset.tar.gz' ); - const digest = await githubReleases.mapDigestAssetToRelease( + const digest = await githubReleaseAttachments.mapDigestAssetToRelease( digestAsset, release ); @@ -127,7 +127,7 @@ describe('modules/datasource/github-releases/digest', () => { it('returns null when digest file not found', async () => { const release = releaseMock.release('v1.0.1'); - const digest = await githubReleases.mapDigestAssetToRelease( + const digest = await githubReleaseAttachments.mapDigestAssetToRelease( digestAsset, release ); @@ -151,7 +151,7 @@ describe('modules/datasource/github-releases/digest', () => { algorithm: 'sha256', }); - const digest = await githubReleases.mapDigestAssetToRelease( + const digest = await githubReleaseAttachments.mapDigestAssetToRelease( digestAsset, release ); @@ -160,7 +160,7 @@ describe('modules/datasource/github-releases/digest', () => { it('returns null when not found', async () => { const release = releaseMock.release('v1.0.1'); - const digest = await githubReleases.mapDigestAssetToRelease( + const digest = await githubReleaseAttachments.mapDigestAssetToRelease( digestAsset, release ); diff --git a/lib/modules/datasource/github-release-attachments/index.spec.ts b/lib/modules/datasource/github-release-attachments/index.spec.ts new file mode 100644 index 00000000000000..576bf7a004ff79 --- /dev/null +++ b/lib/modules/datasource/github-release-attachments/index.spec.ts @@ -0,0 +1,154 @@ +import { getDigest, getPkgReleases } from '..'; +import { mocked } from '../../../../test/util'; +import * as githubGraphql from '../../../util/github/graphql'; +import * as _hostRules from '../../../util/host-rules'; +import { GitHubReleaseAttachmentMocker } from './test'; +import { GithubReleaseAttachmentsDatasource } from '.'; + +jest.mock('../../../util/host-rules'); +const hostRules = mocked(_hostRules); + +const githubApiHost = 'https://api.github.com'; + +describe('modules/datasource/github-release-attachments/index', () => { + beforeEach(() => { + hostRules.hosts.mockReturnValue([]); + hostRules.find.mockReturnValue({ + token: 'some-token', + }); + }); + + describe('getReleases', () => { + it('returns releases', async () => { + jest.spyOn(githubGraphql, 'queryReleases').mockResolvedValueOnce([ + { + id: 1, + url: 'https://example.com', + name: 'some/dep2', + description: 'some description', + version: 'a', + releaseTimestamp: '2020-03-09T13:00:00Z', + }, + { + id: 2, + url: 'https://example.com', + name: 'some/dep2', + description: 'some description', + version: 'v', + releaseTimestamp: '2020-03-09T12:00:00Z', + }, + { + id: 3, + url: 'https://example.com', + name: 'some/dep2', + description: 'some description', + version: '1.0.0', + releaseTimestamp: '2020-03-09T11:00:00Z', + }, + { + id: 4, + url: 'https://example.com', + name: 'some/dep2', + description: 'some description', + version: 'v1.1.0', + releaseTimestamp: '2020-03-09T10:00:00Z', + }, + { + id: 5, + url: 'https://example.com', + name: 'some/dep2', + description: 'some description', + version: '2.0.0', + releaseTimestamp: '2020-04-09T10:00:00Z', + isStable: false, + }, + ]); + + const res = await getPkgReleases({ + datasource: GithubReleaseAttachmentsDatasource.id, + packageName: 'some/dep', + }); + + expect(res).toMatchObject({ + registryUrl: 'https://github.com', + releases: [ + { releaseTimestamp: '2020-03-09T11:00:00.000Z', version: '1.0.0' }, + { version: 'v1.1.0', releaseTimestamp: '2020-03-09T10:00:00.000Z' }, + { + version: '2.0.0', + releaseTimestamp: '2020-04-09T10:00:00.000Z', + isStable: false, + }, + ], + sourceUrl: 'https://github.com/some/dep', + }); + }); + }); + + describe('getDigest', () => { + const packageName = 'some/dep'; + const currentValue = 'v1.0.0'; + const currentDigest = 'v1.0.0-digest'; + + const releaseMock = new GitHubReleaseAttachmentMocker( + githubApiHost, + packageName + ); + + it('requires currentDigest', async () => { + const digest = await getDigest( + { datasource: GithubReleaseAttachmentsDatasource.id, packageName }, + currentValue + ); + expect(digest).toBeNull(); + }); + + it('defaults to currentDigest when currentVersion is missing', async () => { + const digest = await getDigest( + { + datasource: GithubReleaseAttachmentsDatasource.id, + packageName, + currentDigest, + }, + currentValue + ); + expect(digest).toEqual(currentDigest); + }); + + it('returns updated digest in new release', async () => { + releaseMock.withDigestFileAsset( + currentValue, + `${currentDigest} asset.zip` + ); + const nextValue = 'v1.0.1'; + const nextDigest = 'updated-digest'; + releaseMock.withDigestFileAsset(nextValue, `${nextDigest} asset.zip`); + const digest = await getDigest( + { + datasource: GithubReleaseAttachmentsDatasource.id, + packageName, + currentValue, + currentDigest, + }, + nextValue + ); + expect(digest).toEqual(nextDigest); + }); + + // This is awkward, but I found returning `null` in this case to not produce an update + // I'd prefer a PR with the old digest (that I can manually patch) to no PR, so I made this decision. + it('ignores failures verifying currentDigest', async () => { + releaseMock.release(currentValue); + const digest = await getDigest( + { + datasource: GithubReleaseAttachmentsDatasource.id, + packageName, + currentValue, + currentDigest, + }, + currentValue + ); + expect(digest).toEqual(currentDigest); + }); + }); +}); diff --git a/lib/modules/datasource/github-release-attachments/index.ts b/lib/modules/datasource/github-release-attachments/index.ts new file mode 100644 index 00000000000000..02516713ee424a --- /dev/null +++ b/lib/modules/datasource/github-release-attachments/index.ts @@ -0,0 +1,250 @@ +import is from '@sindresorhus/is'; +import hasha from 'hasha'; +import { logger } from '../../../logger'; +import { cache } from '../../../util/cache/package/decorator'; +import { queryReleases } from '../../../util/github/graphql'; +import type { + GithubDigestFile, + GithubRestAsset, + GithubRestRelease, +} from '../../../util/github/types'; +import { getApiBaseUrl, getSourceUrl } from '../../../util/github/url'; +import { GithubHttp } from '../../../util/http/github'; +import { newlineRegex, regEx } from '../../../util/regex'; +import { Datasource } from '../datasource'; +import type { + DigestConfig, + GetReleasesConfig, + Release, + ReleaseResult, +} from '../types'; + +export const cacheNamespace = 'datasource-github-releases'; + +function inferHashAlg(digest: string): string { + switch (digest.length) { + case 64: + return 'sha256'; + default: + case 96: + return 'sha512'; + } +} + +export class GithubReleaseAttachmentsDatasource extends Datasource { + static readonly id = 'github-release-attachments'; + + override readonly defaultRegistryUrls = ['https://github.com']; + + override http: GithubHttp; + + constructor() { + super(GithubReleaseAttachmentsDatasource.id); + this.http = new GithubHttp(GithubReleaseAttachmentsDatasource.id); + } + + @cache({ + ttlMinutes: 1440, + namespace: 'datasource-github-releases', + key: (release: GithubRestRelease, digest: string) => + `${release.html_url}:${digest}`, + }) + async findDigestFile( + release: GithubRestRelease, + digest: string + ): Promise { + const smallAssets = release.assets.filter( + (a: GithubRestAsset) => a.size < 5 * 1024 + ); + for (const asset of smallAssets) { + const res = await this.http.get(asset.browser_download_url); + for (const line of res.body.split(newlineRegex)) { + const [lineDigest, lineFilename] = line.split(regEx(/\s+/), 2); + if (lineDigest === digest) { + return { + assetName: asset.name, + digestedFileName: lineFilename, + currentVersion: release.tag_name, + currentDigest: lineDigest, + }; + } + } + } + return null; + } + + @cache({ + ttlMinutes: 1440, + namespace: 'datasource-github-releases', + key: (asset: GithubRestAsset, algorithm: string) => + `${asset.browser_download_url}:${algorithm}:assetDigest`, + }) + async downloadAndDigest( + asset: GithubRestAsset, + algorithm: string + ): Promise { + const res = this.http.stream(asset.browser_download_url); + const digest = await hasha.fromStream(res, { algorithm }); + return digest; + } + + async findAssetWithDigest( + release: GithubRestRelease, + digest: string + ): Promise { + const algorithm = inferHashAlg(digest); + const assetsBySize = release.assets.sort( + (a: GithubRestAsset, b: GithubRestAsset) => { + if (a.size < b.size) { + return -1; + } + if (a.size > b.size) { + return 1; + } + return 0; + } + ); + + for (const asset of assetsBySize) { + const assetDigest = await this.downloadAndDigest(asset, algorithm); + if (assetDigest === digest) { + return { + assetName: asset.name, + currentVersion: release.tag_name, + currentDigest: assetDigest, + }; + } + } + return null; + } + + /** Identify the asset associated with a known digest. */ + async findDigestAsset( + release: GithubRestRelease, + digest: string + ): Promise { + const digestFile = await this.findDigestFile(release, digest); + if (digestFile) { + return digestFile; + } + + const asset = await this.findAssetWithDigest(release, digest); + return asset; + } + + /** Given a digest asset, find the equivalent digest in a different release. */ + async mapDigestAssetToRelease( + digestAsset: GithubDigestFile, + release: GithubRestRelease + ): Promise { + const current = digestAsset.currentVersion.replace(regEx(/^v/), ''); + const next = release.tag_name.replace(regEx(/^v/), ''); + const releaseChecksumAssetName = digestAsset.assetName.replace( + current, + next + ); + const releaseAsset = release.assets.find( + (a: GithubRestAsset) => a.name === releaseChecksumAssetName + ); + if (!releaseAsset) { + return null; + } + if (digestAsset.digestedFileName) { + const releaseFilename = digestAsset.digestedFileName.replace( + current, + next + ); + const res = await this.http.get(releaseAsset.browser_download_url); + for (const line of res.body.split(newlineRegex)) { + const [lineDigest, lineFn] = line.split(regEx(/\s+/), 2); + if (lineFn === releaseFilename) { + return lineDigest; + } + } + } else { + const algorithm = inferHashAlg(digestAsset.currentDigest); + const newDigest = await this.downloadAndDigest(releaseAsset, algorithm); + return newDigest; + } + return null; + } + + /** + * Attempts to resolve the digest for the specified package. + * + * The `newValue` supplied here should be a valid tag for the GitHub release. + * Requires `currentValue` and `currentDigest`. + * + * There may be many assets attached to the release. This function will: + * - Identify the asset pinned by `currentDigest` in the `currentValue` release + * - Download small release assets, parse as checksum manifests (e.g. `SHASUMS.txt`). + * - Download individual assets until `currentDigest` is encountered. This is limited to sha256 and sha512. + * - Map the hashed asset to `newValue` and return the updated digest as a string + */ + override async getDigest( + { + packageName: repo, + currentValue, + currentDigest, + registryUrl, + }: DigestConfig, + newValue: string + ): Promise { + logger.debug( + { repo, currentValue, currentDigest, registryUrl, newValue }, + 'getDigest' + ); + if (!currentDigest) { + return null; + } + if (!currentValue) { + return currentDigest; + } + + const apiBaseUrl = getApiBaseUrl(registryUrl); + const { body: currentRelease } = await this.http.getJson( + `${apiBaseUrl}repos/${repo}/releases/tags/${currentValue}` + ); + const digestAsset = await this.findDigestAsset( + currentRelease, + currentDigest + ); + let newDigest: string | null; + if (!digestAsset || newValue === currentValue) { + newDigest = currentDigest; + } else { + const { body: newRelease } = await this.http.getJson( + `${apiBaseUrl}repos/${repo}/releases/tags/${newValue}` + ); + newDigest = await this.mapDigestAssetToRelease(digestAsset, newRelease); + } + return newDigest; + } + + /** + * This function can be used to fetch releases with a customisable versioning + * (e.g. semver) and with releases. + * + * This function will: + * - Fetch all releases + * - Sanitize the versions if desired (e.g. strip out leading 'v') + * - Return a dependency object containing sourceUrl string and releases array + */ + async getReleases(config: GetReleasesConfig): Promise { + const releasesResult = await queryReleases(config, this.http); + const releases = releasesResult.map((item) => { + const { version, releaseTimestamp, isStable } = item; + const result: Release = { + version, + gitRef: version, + releaseTimestamp, + }; + if (is.boolean(isStable)) { + result.isStable = isStable; + } + return result; + }); + const sourceUrl = getSourceUrl(config.packageName, config.registryUrl); + return { sourceUrl, releases }; + } +} diff --git a/lib/modules/datasource/github-releases/test/index.ts b/lib/modules/datasource/github-release-attachments/test/index.ts similarity index 97% rename from lib/modules/datasource/github-releases/test/index.ts rename to lib/modules/datasource/github-release-attachments/test/index.ts index e7dfcc82c91828..84f6f3086c1e28 100644 --- a/lib/modules/datasource/github-releases/test/index.ts +++ b/lib/modules/datasource/github-release-attachments/test/index.ts @@ -2,7 +2,7 @@ import * as httpMock from '../../../../../test/http-mock'; import { partial } from '../../../../../test/util'; import type { GithubRestRelease } from '../../../../util/github/types'; -export class GitHubReleaseMocker { +export class GitHubReleaseAttachmentMocker { constructor( private readonly githubApiHost: string, private readonly packageName: string diff --git a/lib/modules/datasource/github-releases/index.spec.ts b/lib/modules/datasource/github-releases/index.spec.ts index f90efc018f4bfa..42f485fa589158 100644 --- a/lib/modules/datasource/github-releases/index.spec.ts +++ b/lib/modules/datasource/github-releases/index.spec.ts @@ -1,17 +1,14 @@ import { getDigest, getPkgReleases } from '..'; +import { mocked } from '../../../../test/util'; import * as githubGraphql from '../../../util/github/graphql'; import * as _hostRules from '../../../util/host-rules'; -import { GitHubReleaseMocker } from './test'; import { GithubReleasesDatasource } from '.'; jest.mock('../../../util/host-rules'); -const hostRules: any = _hostRules; - -const githubApiHost = 'https://api.github.com'; +const hostRules = mocked(_hostRules); describe('modules/datasource/github-releases/index', () => { beforeEach(() => { - jest.resetAllMocks(); hostRules.hosts.mockReturnValue([]); hostRules.find.mockReturnValue({ token: 'some-token', @@ -88,38 +85,48 @@ describe('modules/datasource/github-releases/index', () => { describe('getDigest', () => { const packageName = 'some/dep'; const currentValue = 'v1.0.0'; - const currentDigest = 'v1.0.0-digest'; - - const releaseMock = new GitHubReleaseMocker(githubApiHost, packageName); + const currentDigest = 'sha-of-v1'; + const newValue = 'v15.0.0'; + const newDigest = 'sha-of-v15'; - it('requires currentDigest', async () => { - const digest = await getDigest( - { datasource: GithubReleasesDatasource.id, packageName }, - currentValue - ); - expect(digest).toBeNull(); + beforeEach(() => { + jest.spyOn(githubGraphql, 'queryTags').mockResolvedValueOnce([ + { + version: 'v1.0.0', + gitRef: 'v1.0.0', + releaseTimestamp: '2021-01-01', + hash: 'sha-of-v1', + }, + { + version: 'v15.0.0', + gitRef: 'v15.0.0', + releaseTimestamp: '2022-10-01', + hash: 'sha-of-v15', + }, + ]); }); - it('defaults to currentDigest when currentVersion is missing', async () => { + it('should be independent of the current digest', async () => { const digest = await getDigest( { datasource: GithubReleasesDatasource.id, packageName, - currentDigest, + currentValue, }, - currentValue + newValue ); - expect(digest).toEqual(currentDigest); + expect(digest).toBe(newDigest); }); - it('returns updated digest in new release', async () => { - releaseMock.withDigestFileAsset( - currentValue, - `${currentDigest} asset.zip` + it('should be independent of the current value', async () => { + const digest = await getDigest( + { datasource: GithubReleasesDatasource.id, packageName }, + newValue ); - const nextValue = 'v1.0.1'; - const nextDigest = 'updated-digest'; - releaseMock.withDigestFileAsset(nextValue, `${nextDigest} asset.zip`); + expect(digest).toBe(newDigest); + }); + + it('returns updated digest in new release', async () => { const digest = await getDigest( { datasource: GithubReleasesDatasource.id, @@ -127,15 +134,12 @@ describe('modules/datasource/github-releases/index', () => { currentValue, currentDigest, }, - nextValue + newValue ); - expect(digest).toEqual(nextDigest); + expect(digest).toEqual(newDigest); }); - // This is awkward, but I found returning `null` in this case to not produce an update - // I'd prefer a PR with the old digest (that I can manually patch) to no PR, so I made this decision. - it('ignores failures verifying currentDigest', async () => { - releaseMock.release(currentValue); + it('returns null if the new value/tag does not exist', async () => { const digest = await getDigest( { datasource: GithubReleasesDatasource.id, @@ -143,9 +147,9 @@ describe('modules/datasource/github-releases/index', () => { currentValue, currentDigest, }, - currentValue + 'unknown-tag' ); - expect(digest).toEqual(currentDigest); + expect(digest).toBeNull(); }); }); }); diff --git a/lib/modules/datasource/github-releases/index.ts b/lib/modules/datasource/github-releases/index.ts index 346fe27e0adca0..11714a8593be37 100644 --- a/lib/modules/datasource/github-releases/index.ts +++ b/lib/modules/datasource/github-releases/index.ts @@ -1,17 +1,9 @@ -// TODO: types (#7154) import is from '@sindresorhus/is'; -import hasha from 'hasha'; import { logger } from '../../../logger'; -import { cache } from '../../../util/cache/package/decorator'; import { queryReleases } from '../../../util/github/graphql'; -import type { - GithubDigestFile, - GithubRestAsset, - GithubRestRelease, -} from '../../../util/github/types'; -import { getApiBaseUrl, getSourceUrl } from '../../../util/github/url'; +import { findCommitOfTag } from '../../../util/github/tags'; +import { getSourceUrl } from '../../../util/github/url'; import { GithubHttp } from '../../../util/http/github'; -import { newlineRegex, regEx } from '../../../util/regex'; import { Datasource } from '../datasource'; import type { DigestConfig, @@ -22,16 +14,6 @@ import type { export const cacheNamespace = 'datasource-github-releases'; -function inferHashAlg(digest: string): string { - switch (digest.length) { - case 64: - return 'sha256'; - default: - case 96: - return 'sha512'; - } -} - export class GithubReleasesDatasource extends Datasource { static readonly id = 'github-releases'; @@ -44,145 +26,17 @@ export class GithubReleasesDatasource extends Datasource { this.http = new GithubHttp(GithubReleasesDatasource.id); } - @cache({ - ttlMinutes: 1440, - namespace: 'datasource-github-releases', - key: (release: GithubRestRelease, digest: string) => - `${release.html_url}:${digest}`, - }) - async findDigestFile( - release: GithubRestRelease, - digest: string - ): Promise { - const smallAssets = release.assets.filter( - (a: GithubRestAsset) => a.size < 5 * 1024 - ); - for (const asset of smallAssets) { - const res = await this.http.get(asset.browser_download_url); - for (const line of res.body.split(newlineRegex)) { - const [lineDigest, lineFilename] = line.split(regEx(/\s+/), 2); - if (lineDigest === digest) { - return { - assetName: asset.name, - digestedFileName: lineFilename, - currentVersion: release.tag_name, - currentDigest: lineDigest, - }; - } - } - } - return null; - } - - @cache({ - ttlMinutes: 1440, - namespace: 'datasource-github-releases', - key: (asset: GithubRestAsset, algorithm: string) => - `${asset.browser_download_url}:${algorithm}:assetDigest`, - }) - async downloadAndDigest( - asset: GithubRestAsset, - algorithm: string - ): Promise { - const res = this.http.stream(asset.browser_download_url); - const digest = await hasha.fromStream(res, { algorithm }); - return digest; - } - - async findAssetWithDigest( - release: GithubRestRelease, - digest: string - ): Promise { - const algorithm = inferHashAlg(digest); - const assetsBySize = release.assets.sort( - (a: GithubRestAsset, b: GithubRestAsset) => { - if (a.size < b.size) { - return -1; - } - if (a.size > b.size) { - return 1; - } - return 0; - } - ); - - for (const asset of assetsBySize) { - const assetDigest = await this.downloadAndDigest(asset, algorithm); - if (assetDigest === digest) { - return { - assetName: asset.name, - currentVersion: release.tag_name, - currentDigest: assetDigest, - }; - } - } - return null; - } - - /** Identify the asset associated with a known digest. */ - async findDigestAsset( - release: GithubRestRelease, - digest: string - ): Promise { - const digestFile = await this.findDigestFile(release, digest); - if (digestFile) { - return digestFile; - } - - const asset = await this.findAssetWithDigest(release, digest); - return asset; - } - - /** Given a digest asset, find the equivalent digest in a different release. */ - async mapDigestAssetToRelease( - digestAsset: GithubDigestFile, - release: GithubRestRelease - ): Promise { - const current = digestAsset.currentVersion.replace(regEx(/^v/), ''); - const next = release.tag_name.replace(regEx(/^v/), ''); - const releaseChecksumAssetName = digestAsset.assetName.replace( - current, - next - ); - const releaseAsset = release.assets.find( - (a: GithubRestAsset) => a.name === releaseChecksumAssetName - ); - if (!releaseAsset) { - return null; - } - if (digestAsset.digestedFileName) { - const releaseFilename = digestAsset.digestedFileName.replace( - current, - next - ); - const res = await this.http.get(releaseAsset.browser_download_url); - for (const line of res.body.split(newlineRegex)) { - const [lineDigest, lineFn] = line.split(regEx(/\s+/), 2); - if (lineFn === releaseFilename) { - return lineDigest; - } - } - } else { - const algorithm = inferHashAlg(digestAsset.currentDigest); - const newDigest = await this.downloadAndDigest(releaseAsset, algorithm); - return newDigest; - } - return null; - } - /** - * github.getDigest + * Attempts to resolve the digest for the specified package. * - * The `newValue` supplied here should be a valid tag for the GitHub release. - * Requires `currentValue` and `currentDigest`. + * The `newValue` supplied here should be a valid tag for the GitHub release. The digest + * of a GitHub release will be the underlying SHA of the release tag. * - * There may be many assets attached to the release. This function will: - * - Identify the asset pinned by `currentDigest` in the `currentValue` release - * - Download small release assets, parse as checksum manifests (e.g. `SHASUMS.txt`). - * - Download individual assets until `currentDigest` is encountered. This is limited to sha256 and sha512. - * - Map the hashed asset to `newValue` and return the updated digest as a string + * Some managers like Bazel will deal with individual artifacts from releases and handle + * the artifact checksum computation separately. This data-source does not know about + * specific artifacts being used, as that could vary per manager */ - override async getDigest( + override getDigest( { packageName: repo, currentValue, @@ -195,37 +49,13 @@ export class GithubReleasesDatasource extends Datasource { { repo, currentValue, currentDigest, registryUrl, newValue }, 'getDigest' ); - if (!currentDigest) { - return null; - } - if (!currentValue) { - return currentDigest; - } - const apiBaseUrl = getApiBaseUrl(registryUrl); - const { body: currentRelease } = await this.http.getJson( - `${apiBaseUrl}repos/${repo}/releases/tags/${currentValue}` - ); - const digestAsset = await this.findDigestAsset( - currentRelease, - currentDigest - ); - let newDigest: string | null; - if (!digestAsset || newValue === currentValue) { - newDigest = currentDigest; - } else { - const { body: newRelease } = await this.http.getJson( - `${apiBaseUrl}repos/${repo}/releases/tags/${newValue}` - ); - newDigest = await this.mapDigestAssetToRelease(digestAsset, newRelease); - } - return newDigest; + return findCommitOfTag(registryUrl, repo, newValue, this.http); } /** - * github.getReleases - * - * This function can be used to fetch releases with a customisable versioning (e.g. semver) and with releases. + * This function can be used to fetch releases with a customizable versioning + * (e.g. semver) and with releases. * * This function will: * - Fetch all releases diff --git a/lib/modules/datasource/github-tags/index.ts b/lib/modules/datasource/github-tags/index.ts index 09d72813011716..f5e32f4f959403 100644 --- a/lib/modules/datasource/github-tags/index.ts +++ b/lib/modules/datasource/github-tags/index.ts @@ -2,6 +2,7 @@ import is from '@sindresorhus/is'; import { logger } from '../../../logger'; import { queryReleases, queryTags } from '../../../util/github/graphql'; import type { GithubReleaseItem } from '../../../util/github/graphql/types'; +import { findCommitOfTag } from '../../../util/github/tags'; import { getApiBaseUrl, getSourceUrl } from '../../../util/github/url'; import { GithubHttp } from '../../../util/http/github'; import { Datasource } from '../datasource'; @@ -24,42 +25,6 @@ export class GithubTagsDatasource extends Datasource { this.http = new GithubHttp(GithubTagsDatasource.id); } - async getTagCommit( - registryUrl: string | undefined, - packageName: string, - tag: string - ): Promise { - logger.trace(`github-tags.getTagCommit(${packageName}, ${tag})`); - try { - const tags = await queryTags({ packageName, registryUrl }, this.http); - // istanbul ignore if - if (!tags.length) { - logger.debug( - `github-tags.getTagCommit(): No tags found for ${packageName}` - ); - } - const tagItem = tags.find(({ version }) => version === tag); - if (tagItem) { - if (tagItem.hash) { - return tagItem.hash; - } - logger.debug( - `github-tags.getTagCommit(): Tag ${tag} has no hash for ${packageName}` - ); - } else { - logger.debug( - `github-tags.getTagCommit(): Tag ${tag} not found for ${packageName}` - ); - } - } catch (err) { - logger.debug( - { githubRepo: packageName, err }, - 'Error getting tag commit from GitHub repo' - ); - } - return null; - } - async getCommit( registryUrl: string | undefined, githubRepo: string @@ -91,7 +56,7 @@ export class GithubTagsDatasource extends Datasource { newValue?: string ): Promise { return newValue - ? this.getTagCommit(registryUrl, repo!, newValue) + ? findCommitOfTag(registryUrl, repo!, newValue, this.http) : this.getCommit(registryUrl, repo!); } diff --git a/lib/util/github/tags.spec.ts b/lib/util/github/tags.spec.ts new file mode 100644 index 00000000000000..9747b8acf12846 --- /dev/null +++ b/lib/util/github/tags.spec.ts @@ -0,0 +1,78 @@ +import { GithubHttp } from '../http/github'; +import * as githubGraphql from './graphql'; +import { findCommitOfTag } from './tags'; + +describe('util/github/tags', () => { + describe('findCommitOfTag', () => { + const http = new GithubHttp(); + const queryTagsSpy = jest.spyOn(githubGraphql, 'queryTags'); + + it('should be able to find the hash of a Git tag', async () => { + queryTagsSpy.mockResolvedValueOnce([ + { + version: 'v1.0.0', + gitRef: 'v1.0.0', + releaseTimestamp: '2021-01-01', + hash: '123', + }, + { + version: 'v2.0.0', + gitRef: 'v2.0.0', + releaseTimestamp: '2022-01-01', + hash: 'abc', + }, + ]); + + const commit = await findCommitOfTag( + undefined, + 'some-org/repo', + 'v2.0.0', + http + ); + expect(commit).toBe('abc'); + }); + + it('should support passing a custom registry URL', async () => { + queryTagsSpy.mockResolvedValueOnce([]); + + const commit = await findCommitOfTag( + 'https://my-enterprise-github.dev', + 'some-org/repo', + 'v2.0.0', + http + ); + expect(commit).toBeNull(); + expect(githubGraphql.queryTags).toHaveBeenCalledWith( + { + packageName: 'some-org/repo', + registryUrl: 'https://my-enterprise-github.dev', + }, + http + ); + }); + + it('should return `null` if the tag does not exist', async () => { + queryTagsSpy.mockResolvedValueOnce([]); + + const commit = await findCommitOfTag( + undefined, + 'some-org/repo', + 'v2.0.0', + http + ); + expect(commit).toBeNull(); + }); + + it('should gracefully return `null` if tags cannot be queried', async () => { + queryTagsSpy.mockRejectedValue(new Error('some error')); + + const commit = await findCommitOfTag( + undefined, + 'some-org/repo', + 'v2.0.0', + http + ); + expect(commit).toBeNull(); + }); + }); +}); diff --git a/lib/util/github/tags.ts b/lib/util/github/tags.ts new file mode 100644 index 00000000000000..51101958af8413 --- /dev/null +++ b/lib/util/github/tags.ts @@ -0,0 +1,39 @@ +import { logger } from '../../logger'; +import type { GithubHttp } from '../http/github'; +import { queryTags } from './graphql'; + +export async function findCommitOfTag( + registryUrl: string | undefined, + packageName: string, + tag: string, + http: GithubHttp +): Promise { + logger.trace(`github/tags.findCommitOfTag(${packageName}, ${tag})`); + try { + const tags = await queryTags({ packageName, registryUrl }, http); + if (!tags.length) { + logger.debug( + `github/tags.findCommitOfTag(): No tags found for ${packageName}` + ); + } + const tagItem = tags.find(({ version }) => version === tag); + if (tagItem) { + if (tagItem.hash) { + return tagItem.hash; + } + logger.debug( + `github/tags.findCommitOfTag: Tag ${tag} has no hash for ${packageName}` + ); + } else { + logger.debug( + `github/tags.findCommitOfTag: Tag ${tag} not found for ${packageName}` + ); + } + } catch (err) { + logger.debug( + { githubRepo: packageName, err }, + 'Error getting tag commit from GitHub repo' + ); + } + return null; +} From 8e2df85268801305f9bc7e0eedaca07d18791be2 Mon Sep 17 00:00:00 2001 From: Sebastian Poxhofer Date: Sat, 25 Feb 2023 08:40:16 +0100 Subject: [PATCH 104/228] feat(versioning)!: default to semver-coerced instead of semver (#20573) BREAKING CHANGE: default versioning is now `semver-coerced`, instead of `semver`. --- lib/modules/datasource/gitlab-releases/readme.md | 2 +- lib/modules/datasource/gitlab-tags/readme.md | 2 +- lib/modules/datasource/repology/readme.md | 2 +- lib/modules/manager/regex/readme.md | 6 +++--- lib/modules/versioning/index.spec.ts | 7 ++++--- lib/modules/versioning/index.ts | 16 ++++++++++++---- lib/modules/versioning/semver-coerced/readme.md | 7 +++++-- lib/util/package-rules/index.spec.ts | 2 ++ 8 files changed, 29 insertions(+), 15 deletions(-) diff --git a/lib/modules/datasource/gitlab-releases/readme.md b/lib/modules/datasource/gitlab-releases/readme.md index 6b5ffbaa77cebb..5b916841b8c993 100644 --- a/lib/modules/datasource/gitlab-releases/readme.md +++ b/lib/modules/datasource/gitlab-releases/readme.md @@ -37,4 +37,4 @@ Now you may use comments in your `versions.ini` files to automatically update de NKJS_VERSION=3.4.0 ``` -By default, `gitlab-releases` uses the `semver` versioning scheme. +By default, `gitlab-releases` uses the `semver-coerced` versioning scheme. diff --git a/lib/modules/datasource/gitlab-tags/readme.md b/lib/modules/datasource/gitlab-tags/readme.md index 5f153fddcf46c0..d637c6042cdc24 100644 --- a/lib/modules/datasource/gitlab-tags/readme.md +++ b/lib/modules/datasource/gitlab-tags/readme.md @@ -32,4 +32,4 @@ Now you may use comments in your `versions.ini` files to automatically update de NKJS_VERSION=3.4.0 ``` -By default, `gitlab-tags` uses the `semver` versioning scheme. +By default, `gitlab-tags` uses the `semver-coerced` versioning scheme. diff --git a/lib/modules/datasource/repology/readme.md b/lib/modules/datasource/repology/readme.md index 001015b3f7cfe5..a2aa0dedb6d5c9 100644 --- a/lib/modules/datasource/repology/readme.md +++ b/lib/modules/datasource/repology/readme.md @@ -50,4 +50,4 @@ When the operating system package for `gcc` of `Alpine Linux 3.12` is updated, R !!! tip We recommend you try `loose` or `deb` versioning for distribution packages first. - This is because the version number usually doesn't match Renovate's default `semver` specification. + This is because the version number usually doesn't match Renovate's default `semver-coerced` specification. diff --git a/lib/modules/manager/regex/readme.md b/lib/modules/manager/regex/readme.md index 3adba3802f81bc..e2a7efe66fe380 100644 --- a/lib/modules/manager/regex/readme.md +++ b/lib/modules/manager/regex/readme.md @@ -20,7 +20,7 @@ Before Renovate can look up a dependency and decide about updates, it needs this - The dependency's name - Which `datasource` to use: npm, Docker, GitHub tags, and so on. For how to format this references see [datasource overview](https://docs.renovatebot.com/modules/datasource/#supported-datasources) -- Which version scheme to use: defaults to `semver`, but you may set another value like `pep440`. Supported versioning schemes can be found in the [versioning overview](https://docs.renovatebot.com/modules/versioning/#supported-versioning) +- Which version scheme to use: defaults to `semver-coerced`, but you may set another value like `pep440`. Supported versioning schemes can be found in the [versioning overview](https://docs.renovatebot.com/modules/versioning/#supported-versioning) Configuration-wise, it works like this: @@ -29,7 +29,7 @@ Configuration-wise, it works like this: - You can optionally have a `packageName` capture group or a `packageNameTemplate` if it differs from `depName` - You must have either a `datasource` capture group or a `datasourceTemplate` config field - You can optionally have a `depType` capture group or a `depTypeTemplate` config field -- You can optionally have a `versioning` capture group or a `versioningTemplate` config field. If neither are present, `semver` will be used as the default +- You can optionally have a `versioning` capture group or a `versioningTemplate` config field. If neither are present, `semver-coerced` will be used as the default - You can optionally have an `extractVersion` capture group or an `extractVersionTemplate` config field - You can optionally have a `currentDigest` capture group. - You can optionally have a `registryUrl` capture group or a `registryUrlTemplate` config field @@ -119,7 +119,7 @@ You could configure Renovate to update the `Dockerfile` like this: } ``` -We could drop the `versioningTemplate` because Renovate defaults to `semver` versioning. +We could drop the `versioningTemplate` because Renovate defaults to `∆semver-coerced` versioning. But we included the `versioningTemplate` config option to show you why we call these fields _templates_: because they are compiled using Handlebars and so can be composed from values you collect in named capture groups. You should use triple brace `{{{ }}}` templates like `{{{versioning}}}` to be safe. diff --git a/lib/modules/versioning/index.spec.ts b/lib/modules/versioning/index.spec.ts index b7c8d3e28afa59..6abc2f3c7d7bbc 100644 --- a/lib/modules/versioning/index.spec.ts +++ b/lib/modules/versioning/index.spec.ts @@ -3,6 +3,7 @@ import { loadModules } from '../../util/modules'; import { isVersioningApiConstructor } from './common'; import { GenericVersion, GenericVersioningApi } from './generic'; import * as semverVersioning from './semver'; +import * as semverCoercedVersioning from './semver-coerced'; import type { VersioningApi, VersioningApiConstructor } from './types'; import * as allVersioning from '.'; @@ -57,12 +58,12 @@ describe('modules/versioning/index', () => { } }); - it('should fallback to semver', () => { + it('should fallback to semver-coerced', () => { expect(allVersioning.get(undefined)).toBe( - allVersioning.get(semverVersioning.id) + allVersioning.get(semverCoercedVersioning.id) ); expect(allVersioning.get('unknown')).toBe( - allVersioning.get(semverVersioning.id) + allVersioning.get(semverCoercedVersioning.id) ); }); diff --git a/lib/modules/versioning/index.ts b/lib/modules/versioning/index.ts index 616d9e03bb3268..b26e22d9552ede 100644 --- a/lib/modules/versioning/index.ts +++ b/lib/modules/versioning/index.ts @@ -1,10 +1,13 @@ import { logger } from '../../logger'; import versionings from './api'; import { isVersioningApiConstructor } from './common'; +import * as semverCoerced from './semver-coerced'; import type { VersioningApi, VersioningApiConstructor } from './types'; export * from './types'; +const defaultVersioning = semverCoerced; + export const getVersioningList = (): string[] => Array.from(versionings.keys()); /** * Get versioning map. Can be used to dynamically add new versioning type @@ -16,8 +19,10 @@ export const getVersionings = (): Map< export function get(versioning: string | undefined): VersioningApi { if (!versioning) { - logger.trace('Missing versioning, using semver as fallback.'); - return versionings.get('semver') as VersioningApi; + logger.trace( + `Missing versioning, using ${defaultVersioning.id} as fallback.` + ); + return defaultVersioning.api; } const [versioningName, ...versioningRest] = versioning.split(':'); const versioningConfig = versioningRest.length @@ -26,8 +31,11 @@ export function get(versioning: string | undefined): VersioningApi { const theVersioning = versionings.get(versioningName); if (!theVersioning) { - logger.info({ versioning }, 'Unknown versioning - defaulting to semver'); - return versionings.get('semver') as VersioningApi; + logger.info( + { versioning }, + `Unknown versioning - defaulting to ${defaultVersioning.id}` + ); + return defaultVersioning.api; } if (isVersioningApiConstructor(theVersioning)) { return new theVersioning(versioningConfig); diff --git a/lib/modules/versioning/semver-coerced/readme.md b/lib/modules/versioning/semver-coerced/readme.md index cc058f2825ad54..c6f315d9117e09 100644 --- a/lib/modules/versioning/semver-coerced/readme.md +++ b/lib/modules/versioning/semver-coerced/readme.md @@ -1,5 +1,8 @@ Renovate's Coerced Semantic Versioning is a forgiving variant of [Semantic Versioning 2.0](https://semver.org) with coercion enabled for versions. -This versioning provides a very forgiving translation of inputs in non-strict-SemVer format into strict SemVer. For example, "v1" is coerced into "1.0.0", "2.1" => "2.1.0", "~3.1" => "3.1.0", "1.1-foo" => "1.1.0". Look at the Coercion section of [this page](https://www.npmjs.com/package/semver) for more info on input coercion. +This versioning provides a very forgiving translation of inputs in non-strict-SemVer format into strict SemVer. +For example, "v1" is coerced into "1.0.0", "2.1" => "2.1.0", "~3.1" => "3.1.0", "1.1-foo" => "1.1.0". +Look at the Coercion section of [this page](https://www.npmjs.com/package/semver) for more info on input coercion. -Since this versioning is very forgiving, it doesn't actually provide the coercion for version ranges. The range functions only accept strict SemVer as input and equivalent to those provided by the Renovate's semver versioning. +Since this versioning is very forgiving, it doesn't actually provide the coercion for version ranges. +The range functions only accept strict SemVer as input and equivalent to those provided by the Renovate's semver versioning. diff --git a/lib/util/package-rules/index.spec.ts b/lib/util/package-rules/index.spec.ts index 8e1651e1e3bea4..a64c37ba2fef07 100644 --- a/lib/util/package-rules/index.spec.ts +++ b/lib/util/package-rules/index.spec.ts @@ -662,6 +662,7 @@ describe('util/package-rules/index', () => { it('checks if matchCurrentVersion selector is valid and satisfies the condition on range overlap', () => { const config: TestConfig = { + versioning: 'semver', packageRules: [ { matchPackageNames: ['test'], @@ -699,6 +700,7 @@ describe('util/package-rules/index', () => { it('checks if matchCurrentVersion selector is valid and satisfies the condition on pinned to range overlap', () => { const config: TestConfig = { + versioning: 'semver', packageRules: [ { matchPackageNames: ['test'], From f765e6fb1d18051616651a0a9a36695a06032f7a Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Sat, 4 Mar 2023 10:29:59 +0100 Subject: [PATCH 105/228] feat!: internalChecksAsSuccess (#20572) Adds new config option `internalChecksAsSuccess`, defaulting to `false`. Closes #7800 BREAKING CHANGE: Internal checks such as `renovate/stability-days` will no longer count as passing/green, meaning that actions such as `automerge` won't occur if the only checks are Renovate internal ones. Set `internalChecksAsSuccess=true` to restore existing behavior. --- docs/usage/configuration-options.md | 10 +++++ lib/config/options/index.ts | 7 +++ lib/config/types.ts | 1 + lib/modules/platform/azure/index.spec.ts | 26 +++++++++-- lib/modules/platform/azure/index.ts | 16 ++++++- .../platform/bitbucket-server/index.spec.ts | 26 +++++++---- lib/modules/platform/bitbucket/index.spec.ts | 39 ++++++++++++++--- lib/modules/platform/bitbucket/index.ts | 15 ++++++- lib/modules/platform/gitea/index.spec.ts | 43 +++++++++++++++++-- lib/modules/platform/gitea/index.ts | 16 ++++++- lib/modules/platform/github/index.spec.ts | 34 ++++++++++++--- lib/modules/platform/github/index.ts | 15 ++++++- lib/modules/platform/gitlab/index.spec.ts | 40 ++++++++++++----- lib/modules/platform/gitlab/index.ts | 16 ++++++- lib/modules/platform/types.ts | 5 ++- .../repository/update/branch/automerge.ts | 1 + .../update/branch/status-checks.spec.ts | 2 +- .../repository/update/branch/status-checks.ts | 6 ++- lib/workers/repository/update/pr/automerge.ts | 1 + lib/workers/repository/update/pr/index.ts | 10 ++++- 20 files changed, 281 insertions(+), 48 deletions(-) diff --git a/docs/usage/configuration-options.md b/docs/usage/configuration-options.md index 2f27ba582f733c..afa89177db7aab 100644 --- a/docs/usage/configuration-options.md +++ b/docs/usage/configuration-options.md @@ -1432,6 +1432,16 @@ If you wish for Renovate to process only select paths in the repository, use `in Alternatively, if you need to just _exclude_ certain paths in the repository then consider `ignorePaths` instead. If you are more interested in including only certain package managers (e.g. `npm`), then consider `enabledManagers` instead. +## internalChecksAsSuccess + +By default, internal Renovate checks such as `renovate/stability-days` are not counted towards a branch being "green" or not. +This is primarily to prevent automerge when the only check is a passing Renovate check. + +Internal checks will always be counted/considered if they are in pending or failed states. +If there are multiple passing checks for a branch, including non-Renovate ones, then this setting won't make any difference. + +Change this setting to `true` if you want to use internal Renovate checks towards a passing branch result. + ## internalChecksFilter This setting determines whether Renovate controls when and how filtering of internal checks are performed, particularly when multiple versions of the same update type are available. diff --git a/lib/config/options/index.ts b/lib/config/options/index.ts index cfbe1b596ecb34..077276162487bb 100644 --- a/lib/config/options/index.ts +++ b/lib/config/options/index.ts @@ -1547,6 +1547,13 @@ const options: RenovateOptions[] = [ type: 'integer', default: 0, }, + { + name: 'internalChecksAsSuccess', + description: + 'Whether to consider passing internal checks such as stabilityDays when determining branch status.', + type: 'boolean', + default: false, + }, /* * Undocumented experimental feature { diff --git a/lib/config/types.ts b/lib/config/types.ts index d27accb2d48793..9891748ea53216 100644 --- a/lib/config/types.ts +++ b/lib/config/types.ts @@ -48,6 +48,7 @@ export interface RenovateSharedConfig { ignoreDeps?: string[]; ignorePaths?: string[]; ignoreTests?: boolean; + internalChecksAsSuccess?: boolean; labels?: string[]; addLabels?: string[]; dependencyDashboardApproval?: boolean; diff --git a/lib/modules/platform/azure/index.spec.ts b/lib/modules/platform/azure/index.spec.ts index 0767c3157ba400..74df14dd818684 100644 --- a/lib/modules/platform/azure/index.spec.ts +++ b/lib/modules/platform/azure/index.spec.ts @@ -577,10 +577,28 @@ describe('modules/platform/azure/index', () => { ]), } as any) ); - const res = await azure.getBranchStatus('somebranch'); + const res = await azure.getBranchStatus('somebranch', true); expect(res).toBe('green'); }); + it('should not treat internal checks as success', async () => { + await initRepo({ repository: 'some/repo' }); + azureApi.gitApi.mockImplementationOnce( + () => + ({ + getBranch: jest.fn(() => ({ commit: { commitId: 'abcd1234' } })), + getStatuses: jest.fn(() => [ + { + state: GitStatusState.Succeeded, + context: { genre: 'renovate' }, + }, + ]), + } as any) + ); + const res = await azure.getBranchStatus('somebranch', false); + expect(res).toBe('yellow'); + }); + it('should pass through failed', async () => { await initRepo({ repository: 'some/repo' }); azureApi.gitApi.mockImplementationOnce( @@ -590,7 +608,7 @@ describe('modules/platform/azure/index', () => { getStatuses: jest.fn(() => [{ state: GitStatusState.Error }]), } as any) ); - const res = await azure.getBranchStatus('somebranch'); + const res = await azure.getBranchStatus('somebranch', true); expect(res).toBe('red'); }); @@ -603,7 +621,7 @@ describe('modules/platform/azure/index', () => { getStatuses: jest.fn(() => [{ state: GitStatusState.Pending }]), } as any) ); - const res = await azure.getBranchStatus('somebranch'); + const res = await azure.getBranchStatus('somebranch', true); expect(res).toBe('yellow'); }); @@ -616,7 +634,7 @@ describe('modules/platform/azure/index', () => { getStatuses: jest.fn(() => []), } as any) ); - const res = await azure.getBranchStatus('somebranch'); + const res = await azure.getBranchStatus('somebranch', true); expect(res).toBe('yellow'); }); }); diff --git a/lib/modules/platform/azure/index.ts b/lib/modules/platform/azure/index.ts index e20acd9cf72f3d..2ddcc08a3dc834 100644 --- a/lib/modules/platform/azure/index.ts +++ b/lib/modules/platform/azure/index.ts @@ -381,7 +381,8 @@ export async function getBranchStatusCheck( } export async function getBranchStatus( - branchName: string + branchName: string, + internalChecksAsSuccess: boolean ): Promise { logger.debug(`getBranchStatus(${branchName})`); const statuses = await getStatusCheck(branchName); @@ -406,6 +407,19 @@ export async function getBranchStatus( if (noOfPending) { return 'yellow'; } + if ( + !internalChecksAsSuccess && + statuses.every( + (status) => + status.state === GitStatusState.Succeeded && + status.context?.genre === 'renovate' + ) + ) { + logger.debug( + 'Successful checks are all internal renovate/ checks, so returning "pending" branch status' + ); + return 'yellow'; + } return 'green'; } diff --git a/lib/modules/platform/bitbucket-server/index.spec.ts b/lib/modules/platform/bitbucket-server/index.spec.ts index 7b9b5a346321fa..6c8965a2ab87dd 100644 --- a/lib/modules/platform/bitbucket-server/index.spec.ts +++ b/lib/modules/platform/bitbucket-server/index.spec.ts @@ -1749,7 +1749,9 @@ Followed by some information. failed: 0, }); - expect(await bitbucket.getBranchStatus('somebranch')).toBe('green'); + expect(await bitbucket.getBranchStatus('somebranch', true)).toBe( + 'green' + ); }); it('should be pending', async () => { @@ -1764,7 +1766,9 @@ Followed by some information. failed: 0, }); - expect(await bitbucket.getBranchStatus('somebranch')).toBe('yellow'); + expect(await bitbucket.getBranchStatus('somebranch', true)).toBe( + 'yellow' + ); scope .get( @@ -1776,7 +1780,9 @@ Followed by some information. failed: 0, }); - expect(await bitbucket.getBranchStatus('somebranch')).toBe('yellow'); + expect(await bitbucket.getBranchStatus('somebranch', true)).toBe( + 'yellow' + ); }); it('should be failed', async () => { @@ -1791,7 +1797,9 @@ Followed by some information. failed: 1, }); - expect(await bitbucket.getBranchStatus('somebranch')).toBe('red'); + expect(await bitbucket.getBranchStatus('somebranch', true)).toBe( + 'red' + ); scope .get( @@ -1799,15 +1807,17 @@ Followed by some information. ) .replyWithError('requst-failed'); - expect(await bitbucket.getBranchStatus('somebranch')).toBe('red'); + expect(await bitbucket.getBranchStatus('somebranch', true)).toBe( + 'red' + ); }); it('throws repository-changed', async () => { git.branchExists.mockReturnValue(false); await initRepo(); - await expect(bitbucket.getBranchStatus('somebranch')).rejects.toThrow( - REPOSITORY_CHANGED - ); + await expect( + bitbucket.getBranchStatus('somebranch', true) + ).rejects.toThrow(REPOSITORY_CHANGED); }); }); diff --git a/lib/modules/platform/bitbucket/index.spec.ts b/lib/modules/platform/bitbucket/index.spec.ts index 6007fe9fdbcdcc..8724afef6c061e 100644 --- a/lib/modules/platform/bitbucket/index.spec.ts +++ b/lib/modules/platform/bitbucket/index.spec.ts @@ -225,7 +225,7 @@ describe('modules/platform/bitbucket/index', () => { }, ], }); - expect(await bitbucket.getBranchStatus('master')).toBe('red'); + expect(await bitbucket.getBranchStatus('master', true)).toBe('red'); }); it('getBranchStatus 4', async () => { @@ -250,7 +250,7 @@ describe('modules/platform/bitbucket/index', () => { }, ], }); - expect(await bitbucket.getBranchStatus('branch')).toBe('green'); + expect(await bitbucket.getBranchStatus('branch', true)).toBe('green'); }); it('getBranchStatus 5', async () => { @@ -275,7 +275,9 @@ describe('modules/platform/bitbucket/index', () => { }, ], }); - expect(await bitbucket.getBranchStatus('pending/branch')).toBe('yellow'); + expect(await bitbucket.getBranchStatus('pending/branch', true)).toBe( + 'yellow' + ); }); it('getBranchStatus 6', async () => { @@ -297,9 +299,34 @@ describe('modules/platform/bitbucket/index', () => { .reply(200, { values: [], }); - expect(await bitbucket.getBranchStatus('branch-with-empty-status')).toBe( - 'yellow' - ); + expect( + await bitbucket.getBranchStatus('branch-with-empty-status', true) + ).toBe('yellow'); + }); + + it('getBranchStatus 7', async () => { + const scope = await initRepoMock(); + scope + .get('/2.0/repositories/some/repo/refs/branches/branch') + .reply(200, { + name: 'branch', + target: { + hash: 'branch_hash', + parents: [{ hash: 'master_hash' }], + }, + }) + .get( + '/2.0/repositories/some/repo/commit/branch_hash/statuses?pagelen=100' + ) + .reply(200, { + values: [ + { + key: 'renovate/stability-days', + state: 'SUCCESSFUL', + }, + ], + }); + expect(await bitbucket.getBranchStatus('branch', false)).toBe('yellow'); }); }); diff --git a/lib/modules/platform/bitbucket/index.ts b/lib/modules/platform/bitbucket/index.ts index 9755dc18060d73..a4eaa4016a4093 100644 --- a/lib/modules/platform/bitbucket/index.ts +++ b/lib/modules/platform/bitbucket/index.ts @@ -355,7 +355,8 @@ async function getStatus( } // Returns the combined status for a branch. export async function getBranchStatus( - branchName: string + branchName: string, + internalChecksAsSuccess: boolean ): Promise { logger.debug(`getBranchStatus(${branchName})`); const statuses = await getStatus(branchName); @@ -377,6 +378,18 @@ export async function getBranchStatus( if (noOfPending) { return 'yellow'; } + if ( + !internalChecksAsSuccess && + statuses.every( + (status) => + status.state === 'SUCCESSFUL' && status.key?.startsWith('renovate/') + ) + ) { + logger.debug( + 'Successful checks are all internal renovate/ checks, so returning "pending" branch status' + ); + return 'yellow'; + } return 'green'; } diff --git a/lib/modules/platform/gitea/index.spec.ts b/lib/modules/platform/gitea/index.spec.ts index 060c7e57b111ef..5142b0d8299ff6 100644 --- a/lib/modules/platform/gitea/index.spec.ts +++ b/lib/modules/platform/gitea/index.spec.ts @@ -632,7 +632,7 @@ describe('modules/platform/gitea/index', () => { }) ); - return gitea.getBranchStatus('some-branch'); + return gitea.getBranchStatus('some-branch', true); }; it('should return yellow for unknown result', async () => { @@ -654,7 +654,7 @@ describe('modules/platform/gitea/index', () => { it('should abort when branch status returns 404', async () => { helper.getCombinedCommitStatus.mockRejectedValueOnce({ statusCode: 404 }); - await expect(gitea.getBranchStatus('some-branch')).rejects.toThrow( + await expect(gitea.getBranchStatus('some-branch', true)).rejects.toThrow( REPOSITORY_CHANGED ); }); @@ -664,10 +664,47 @@ describe('modules/platform/gitea/index', () => { new Error('getCombinedCommitStatus()') ); - await expect(gitea.getBranchStatus('some-branch')).rejects.toThrow( + await expect(gitea.getBranchStatus('some-branch', true)).rejects.toThrow( 'getCombinedCommitStatus()' ); }); + + it('should treat internal checks as success', async () => { + helper.getCombinedCommitStatus.mockResolvedValueOnce({ + worstStatus: 'success', + statuses: [ + { + id: 1, + status: 'success', + context: 'renovate/stability-days', + description: 'internal check', + target_url: '', + created_at: '', + }, + ], + }); + expect(await gitea.getBranchStatus('some-branch', true)).toBe('green'); + }); + + it('should not treat internal checks as success', async () => { + await initFakeRepo(); + helper.getCombinedCommitStatus.mockResolvedValueOnce( + partial({ + worstStatus: 'success', + statuses: [ + { + id: 1, + status: 'success', + context: 'renovate/stability-days', + description: 'internal check', + target_url: '', + created_at: '', + }, + ], + }) + ); + expect(await gitea.getBranchStatus('some-branch', false)).toBe('yellow'); + }); }); describe('getBranchStatusCheck', () => { diff --git a/lib/modules/platform/gitea/index.ts b/lib/modules/platform/gitea/index.ts index d650a6955104c0..3eff6f1ecb4770 100644 --- a/lib/modules/platform/gitea/index.ts +++ b/lib/modules/platform/gitea/index.ts @@ -387,7 +387,10 @@ const platform: Platform = { } }, - async getBranchStatus(branchName: string): Promise { + async getBranchStatus( + branchName: string, + internalChecksAsSuccess: boolean + ): Promise { let ccs: CombinedCommitStatus; try { ccs = await helper.getCombinedCommitStatus(config.repository, branchName); @@ -404,6 +407,17 @@ const platform: Platform = { } logger.debug({ ccs }, 'Branch status check result'); + if ( + !internalChecksAsSuccess && + ccs.worstStatus === 'success' && + ccs.statuses.every((status) => status.context?.startsWith('renovate/')) + ) { + logger.debug( + 'Successful checks are all internal renovate/ checks, so returning "pending" branch status' + ); + return 'yellow'; + } + return helper.giteaToRenovateStatusMapping[ccs.worstStatus] ?? 'yellow'; }, diff --git a/lib/modules/platform/github/index.spec.ts b/lib/modules/platform/github/index.spec.ts index acdf7859662641..bb9424ae581f74 100644 --- a/lib/modules/platform/github/index.spec.ts +++ b/lib/modules/platform/github/index.spec.ts @@ -998,10 +998,32 @@ describe('modules/platform/github/index', () => { .reply(200, []); await github.initRepo({ repository: 'some/repo' }); - const res = await github.getBranchStatus('somebranch'); + const res = await github.getBranchStatus('somebranch', true); expect(res).toBe('green'); }); + it('should not consider internal statuses as success', async () => { + const scope = httpMock.scope(githubApiHost); + initRepoMock(scope, 'some/repo'); + scope + .get('/repos/some/repo/commits/somebranch/status') + .reply(200, { + state: 'success', + statuses: [ + { + context: 'renovate/stability-days', + state: 'success', + }, + ], + }) + .get('/repos/some/repo/commits/somebranch/check-runs?per_page=100') + .reply(200, []); + + await github.initRepo({ repository: 'some/repo' }); + const res = await github.getBranchStatus('somebranch', false); + expect(res).toBe('yellow'); + }); + it('should pass through failed', async () => { const scope = httpMock.scope(githubApiHost); initRepoMock(scope, 'some/repo'); @@ -1014,7 +1036,7 @@ describe('modules/platform/github/index', () => { .reply(200, []); await github.initRepo({ repository: 'some/repo' }); - const res = await github.getBranchStatus('somebranch'); + const res = await github.getBranchStatus('somebranch', true); expect(res).toBe('red'); }); @@ -1029,7 +1051,7 @@ describe('modules/platform/github/index', () => { .get('/repos/some/repo/commits/somebranch/check-runs?per_page=100') .reply(200, []); await github.initRepo({ repository: 'some/repo' }); - const res = await github.getBranchStatus('somebranch'); + const res = await github.getBranchStatus('somebranch', true); expect(res).toBe('yellow'); }); @@ -1061,7 +1083,7 @@ describe('modules/platform/github/index', () => { ], }); await github.initRepo({ repository: 'some/repo' }); - const res = await github.getBranchStatus('somebranch'); + const res = await github.getBranchStatus('somebranch', true); expect(res).toBe('red'); }); @@ -1099,7 +1121,7 @@ describe('modules/platform/github/index', () => { ], }); await github.initRepo({ repository: 'some/repo' }); - const res = await github.getBranchStatus('somebranch'); + const res = await github.getBranchStatus('somebranch', true); expect(res).toBe('green'); }); @@ -1130,7 +1152,7 @@ describe('modules/platform/github/index', () => { ], }); await github.initRepo({ repository: 'some/repo' }); - const res = await github.getBranchStatus('somebranch'); + const res = await github.getBranchStatus('somebranch', true); expect(res).toBe('yellow'); }); }); diff --git a/lib/modules/platform/github/index.ts b/lib/modules/platform/github/index.ts index 7422d4a6ff93d0..caf65f1acb4c16 100644 --- a/lib/modules/platform/github/index.ts +++ b/lib/modules/platform/github/index.ts @@ -821,7 +821,8 @@ async function getStatus( // Returns the combined status for a branch. export async function getBranchStatus( - branchName: string + branchName: string, + internalChecksAsSuccess: boolean ): Promise { logger.debug(`getBranchStatus(${branchName})`); let commitStatus: CombinedBranchStatus; @@ -841,6 +842,18 @@ export async function getBranchStatus( { state: commitStatus.state, statuses: commitStatus.statuses }, 'branch status check result' ); + if (commitStatus.statuses && !internalChecksAsSuccess) { + commitStatus.statuses = commitStatus.statuses.filter( + (status) => + status.state !== 'success' || !status.context?.startsWith('renovate/') + ); + if (!commitStatus.statuses.length) { + logger.debug( + 'Successful checks are all internal renovate/ checks, so returning "pending" branch status' + ); + commitStatus.state = 'pending'; + } + } let checkRuns: { name: string; status: string; conclusion: string }[] = []; // API is supported in oldest available GHE version 2.19 try { diff --git a/lib/modules/platform/gitlab/index.spec.ts b/lib/modules/platform/gitlab/index.spec.ts index 4a1fe03a7d9de0..5990f566b0aeb2 100644 --- a/lib/modules/platform/gitlab/index.spec.ts +++ b/lib/modules/platform/gitlab/index.spec.ts @@ -532,7 +532,7 @@ describe('modules/platform/gitlab/index', () => { '/api/v4/projects/some%2Frepo/merge_requests?per_page=100&scope=created_by_me' ) .reply(200, []); - const res = await gitlab.getBranchStatus('somebranch'); + const res = await gitlab.getBranchStatus('somebranch', true); expect(res).toBe('yellow'); }); @@ -574,7 +574,7 @@ describe('modules/platform/gitlab/index', () => { status: 'success', }, }); - const res = await gitlab.getBranchStatus('some-branch'); + const res = await gitlab.getBranchStatus('some-branch', true); expect(res).toBe('green'); }); @@ -592,10 +592,28 @@ describe('modules/platform/gitlab/index', () => { '/api/v4/projects/some%2Frepo/merge_requests?per_page=100&scope=created_by_me' ) .reply(200, []); - const res = await gitlab.getBranchStatus('somebranch'); + const res = await gitlab.getBranchStatus('somebranch', true); expect(res).toBe('green'); }); + it('returns pending if all are internal success', async () => { + const scope = await initRepo(); + scope + .get( + '/api/v4/projects/some%2Frepo/repository/commits/0d9c7726c3d628b7e28af234595cfd20febdbf8e/statuses' + ) + .reply(200, [ + { name: 'renovate/stability-days', status: 'success' }, + { name: 'renovate/other', status: 'success' }, + ]) + .get( + '/api/v4/projects/some%2Frepo/merge_requests?per_page=100&scope=created_by_me' + ) + .reply(200, []); + const res = await gitlab.getBranchStatus('somebranch', false); + expect(res).toBe('yellow'); + }); + it('returns success if optional jobs fail', async () => { const scope = await initRepo(); scope @@ -610,7 +628,7 @@ describe('modules/platform/gitlab/index', () => { '/api/v4/projects/some%2Frepo/merge_requests?per_page=100&scope=created_by_me' ) .reply(200, []); - const res = await gitlab.getBranchStatus('somebranch'); + const res = await gitlab.getBranchStatus('somebranch', true); expect(res).toBe('green'); }); @@ -625,7 +643,7 @@ describe('modules/platform/gitlab/index', () => { '/api/v4/projects/some%2Frepo/merge_requests?per_page=100&scope=created_by_me' ) .reply(200, []); - const res = await gitlab.getBranchStatus('somebranch'); + const res = await gitlab.getBranchStatus('somebranch', true); expect(res).toBe('green'); }); @@ -640,7 +658,7 @@ describe('modules/platform/gitlab/index', () => { '/api/v4/projects/some%2Frepo/merge_requests?per_page=100&scope=created_by_me' ) .reply(200, []); - const res = await gitlab.getBranchStatus('somebranch'); + const res = await gitlab.getBranchStatus('somebranch', true); expect(res).toBe('green'); }); @@ -655,7 +673,7 @@ describe('modules/platform/gitlab/index', () => { '/api/v4/projects/some%2Frepo/merge_requests?per_page=100&scope=created_by_me' ) .reply(200, []); - const res = await gitlab.getBranchStatus('somebranch'); + const res = await gitlab.getBranchStatus('somebranch', true); expect(res).toBe('yellow'); }); @@ -670,7 +688,7 @@ describe('modules/platform/gitlab/index', () => { '/api/v4/projects/some%2Frepo/merge_requests?per_page=100&scope=created_by_me' ) .reply(200, []); - const res = await gitlab.getBranchStatus('somebranch'); + const res = await gitlab.getBranchStatus('somebranch', true); expect(res).toBe('red'); }); @@ -689,7 +707,7 @@ describe('modules/platform/gitlab/index', () => { '/api/v4/projects/some%2Frepo/merge_requests?per_page=100&scope=created_by_me' ) .reply(200, []); - const res = await gitlab.getBranchStatus('somebranch'); + const res = await gitlab.getBranchStatus('somebranch', true); expect(res).toBe('red'); }); @@ -704,7 +722,7 @@ describe('modules/platform/gitlab/index', () => { '/api/v4/projects/some%2Frepo/merge_requests?per_page=100&scope=created_by_me' ) .reply(200, []); - const res = await gitlab.getBranchStatus('somebranch'); + const res = await gitlab.getBranchStatus('somebranch', true); expect(res).toBe('yellow'); }); @@ -712,7 +730,7 @@ describe('modules/platform/gitlab/index', () => { expect.assertions(1); git.branchExists.mockReturnValue(false); await initRepo(); - await expect(gitlab.getBranchStatus('somebranch')).rejects.toThrow( + await expect(gitlab.getBranchStatus('somebranch', true)).rejects.toThrow( REPOSITORY_CHANGED ); }); diff --git a/lib/modules/platform/gitlab/index.ts b/lib/modules/platform/gitlab/index.ts index cf41c134d7dddc..98d034915baaff 100644 --- a/lib/modules/platform/gitlab/index.ts +++ b/lib/modules/platform/gitlab/index.ts @@ -396,7 +396,8 @@ const gitlabToRenovateStatusMapping: Record = { // Returns the combined status for a branch. export async function getBranchStatus( - branchName: string + branchName: string, + internalChecksAsSuccess: boolean ): Promise { logger.debug(`getBranchStatus(${branchName})`); @@ -428,6 +429,19 @@ export async function getBranchStatus( // Return 'pending' if we have no status checks return 'yellow'; } + if ( + !internalChecksAsSuccess && + branchStatuses.every( + (check) => + check.name?.startsWith('renovate/') && + gitlabToRenovateStatusMapping[check.status] === 'green' + ) + ) { + logger.debug( + 'Successful checks are all internal renovate/ checks, so returning "pending" branch status' + ); + return 'yellow'; + } let status: BranchStatus = 'green'; // default to green res .filter((check) => !check.allow_failure) diff --git a/lib/modules/platform/types.ts b/lib/modules/platform/types.ts index 07272f44987eba..f5f8a15285be67 100644 --- a/lib/modules/platform/types.ts +++ b/lib/modules/platform/types.ts @@ -204,7 +204,10 @@ export interface Platform { getPr(number: number): Promise; findPr(findPRConfig: FindPRConfig): Promise; refreshPr?(number: number): Promise; - getBranchStatus(branchName: string): Promise; + getBranchStatus( + branchName: string, + internalChecksAsSuccess: boolean + ): Promise; getBranchPr(branchName: string): Promise; initPlatform(config: PlatformParams): Promise; filterUnavailableUsers?(users: string[]): Promise; diff --git a/lib/workers/repository/update/branch/automerge.ts b/lib/workers/repository/update/branch/automerge.ts index 8d1339ad5013b3..8db027b4cc24f1 100644 --- a/lib/workers/repository/update/branch/automerge.ts +++ b/lib/workers/repository/update/branch/automerge.ts @@ -32,6 +32,7 @@ export async function tryBranchAutomerge( } const branchStatus = await resolveBranchStatus( config.branchName!, + !!config.internalChecksAsSuccess, config.ignoreTests ); if (branchStatus === 'green') { diff --git a/lib/workers/repository/update/branch/status-checks.spec.ts b/lib/workers/repository/update/branch/status-checks.spec.ts index bd2ba5bf5e7aec..93a811f14f4639 100644 --- a/lib/workers/repository/update/branch/status-checks.spec.ts +++ b/lib/workers/repository/update/branch/status-checks.spec.ts @@ -97,7 +97,7 @@ describe('workers/repository/update/branch/status-checks', () => { describe('getBranchStatus', () => { it('should return green if ignoreTests=true', async () => { - expect(await resolveBranchStatus('somebranch', true)).toBe('green'); + expect(await resolveBranchStatus('somebranch', true, true)).toBe('green'); }); }); }); diff --git a/lib/workers/repository/update/branch/status-checks.ts b/lib/workers/repository/update/branch/status-checks.ts index 361147de9ab53d..4fa6792ce6c7c5 100644 --- a/lib/workers/repository/update/branch/status-checks.ts +++ b/lib/workers/repository/update/branch/status-checks.ts @@ -9,6 +9,7 @@ import { export async function resolveBranchStatus( branchName: string, + internalChecksAsSuccess: boolean, ignoreTests = false ): Promise { logger.debug( @@ -20,7 +21,10 @@ export async function resolveBranchStatus( return 'green'; } - const status = await platform.getBranchStatus(branchName); + const status = await platform.getBranchStatus( + branchName, + internalChecksAsSuccess + ); logger.debug(`Branch status ${status}`); return status; diff --git a/lib/workers/repository/update/pr/automerge.ts b/lib/workers/repository/update/pr/automerge.ts index 486867a6308c20..66960c8f8e56af 100644 --- a/lib/workers/repository/update/pr/automerge.ts +++ b/lib/workers/repository/update/pr/automerge.ts @@ -69,6 +69,7 @@ export async function checkAutoMerge( } const branchStatus = await resolveBranchStatus( config.branchName, + !!config.internalChecksAsSuccess, config.ignoreTests ); if (branchStatus !== 'green') { diff --git a/lib/workers/repository/update/pr/index.ts b/lib/workers/repository/update/pr/index.ts index db1e0cbe9277a4..f333e266fce6a0 100644 --- a/lib/workers/repository/update/pr/index.ts +++ b/lib/workers/repository/update/pr/index.ts @@ -102,9 +102,15 @@ export async function ensurePr( const prFingerprint = fingerprint(filteredPrConfig); logger.trace({ config }, 'ensurePr'); // If there is a group, it will use the config of the first upgrade in the array - const { branchName, ignoreTests, prTitle = '', upgrades } = config; + const { + branchName, + ignoreTests, + internalChecksAsSuccess, + prTitle = '', + upgrades, + } = config; const getBranchStatus = memoize(() => - resolveBranchStatus(branchName, ignoreTests) + resolveBranchStatus(branchName, !!internalChecksAsSuccess, ignoreTests) ); const dependencyDashboardCheck = config.dependencyDashboardChecks?.[config.branchName]; From d53d39bf0ad995cc4d74d39836b46f078e5e5236 Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Sat, 4 Mar 2023 12:33:58 +0100 Subject: [PATCH 106/228] refactor(datasource): prefer packageName over depName in datasource (#20221) --- lib/modules/datasource/common.ts | 9 +++-- lib/workers/repository/process/fetch.ts | 1 + .../repository/process/lookup/index.spec.ts | 2 +- .../repository/process/lookup/index.ts | 12 ++++--- .../__snapshots__/github.spec.ts.snap | 12 +++---- .../__snapshots__/gitlab.spec.ts.snap | 12 +++---- .../__snapshots__/index.spec.ts.snap | 14 ++++---- .../update/pr/changelog/github.spec.ts | 24 ++++++------- .../update/pr/changelog/gitlab.spec.ts | 16 ++++----- .../update/pr/changelog/index.spec.ts | 18 +++++----- .../update/pr/changelog/release-notes.spec.ts | 36 +++++++++---------- .../update/pr/changelog/release-notes.ts | 10 +++--- .../update/pr/changelog/source-github.ts | 27 ++++++++------ .../update/pr/changelog/source-gitlab.ts | 8 ++--- .../repository/update/pr/changelog/types.ts | 2 +- 15 files changed, 108 insertions(+), 95 deletions(-) diff --git a/lib/modules/datasource/common.ts b/lib/modules/datasource/common.ts index e02c77e620af85..f8052e547ba765 100644 --- a/lib/modules/datasource/common.ts +++ b/lib/modules/datasource/common.ts @@ -1,10 +1,15 @@ +import is from '@sindresorhus/is'; import type { GetPkgReleasesConfig } from './types'; export function isGetPkgReleasesConfig( input: unknown ): input is GetPkgReleasesConfig { return ( - (input as GetPkgReleasesConfig).datasource !== undefined && - (input as GetPkgReleasesConfig).packageName !== undefined + is.nonEmptyStringAndNotWhitespace( + (input as GetPkgReleasesConfig).datasource + ) && + is.nonEmptyStringAndNotWhitespace( + (input as GetPkgReleasesConfig).packageName + ) ); } diff --git a/lib/workers/repository/process/fetch.ts b/lib/workers/repository/process/fetch.ts index a354dae2c71bc8..38dc52b314be76 100644 --- a/lib/workers/repository/process/fetch.ts +++ b/lib/workers/repository/process/fetch.ts @@ -47,6 +47,7 @@ async function fetchDepUpdates( depConfig = mergeChildConfig(depConfig, datasourceDefaultConfig); depConfig.versioning ??= getDefaultVersioning(depConfig.datasource); depConfig = applyPackageRules(depConfig); + depConfig.packageName ??= depConfig.depName; if (depConfig.ignoreDeps!.includes(depName!)) { // TODO: fix types (#7154) logger.debug(`Dependency: ${depName!}, is ignored`); diff --git a/lib/workers/repository/process/lookup/index.spec.ts b/lib/workers/repository/process/lookup/index.spec.ts index 555954cd670580..1efd5c8ae30f85 100644 --- a/lib/workers/repository/process/lookup/index.spec.ts +++ b/lib/workers/repository/process/lookup/index.spec.ts @@ -1178,7 +1178,7 @@ describe('workers/repository/process/lookup/index', () => { expect(res.updates).toHaveLength(0); expect(res.warnings).toHaveLength(1); expect(res.warnings[0].message).toBe( - "Can't find version with tag foo for typescript" + "Can't find version with tag foo for npm package typescript" ); }); diff --git a/lib/workers/repository/process/lookup/index.ts b/lib/workers/repository/process/lookup/index.ts index 57c8ed1ccf5d99..522745e27a0a5a 100644 --- a/lib/workers/repository/process/lookup/index.ts +++ b/lib/workers/repository/process/lookup/index.ts @@ -81,7 +81,7 @@ export async function lookupUpdates( // If dependency lookup fails then warn and return const warning: ValidationMessage = { topic: packageName, - message: `Failed to look up ${datasource} dependency ${packageName}`, + message: `Failed to look up ${datasource} package ${packageName}`, }; logger.debug({ dependency: packageName, packageFile }, warning.message); // TODO: return warnings in own field @@ -89,7 +89,9 @@ export async function lookupUpdates( return res; } if (dependency.deprecationMessage) { - logger.debug(`Found deprecationMessage for dependency ${packageName}`); + logger.debug( + `Found deprecationMessage for ${datasource} package ${packageName}` + ); res.deprecationMessage = dependency.deprecationMessage; } @@ -123,7 +125,7 @@ export async function lookupUpdates( if (!taggedVersion) { res.warnings.push({ topic: packageName, - message: `Can't find version with tag ${followTag} for ${packageName}`, + message: `Can't find version with tag ${followTag} for ${datasource} package ${packageName}`, }); return res; } @@ -147,7 +149,7 @@ export async function lookupUpdates( res.warnings.push({ topic: packageName, // TODO: types (#7154) - message: `Can't find version matching ${currentValue!} for ${packageName}`, + message: `Can't find version matching ${currentValue!} for ${datasource} package ${packageName}`, }); return res; } @@ -326,7 +328,7 @@ export async function lookupUpdates( } } else if (currentValue) { logger.debug( - `Dependency ${packageName} has unsupported value ${currentValue}` + `Dependency ${packageName} has unsupported/unversioned value ${currentValue} (versioning=${config.versioning})` ); if (!pinDigests && !currentDigest) { res.skipReason = 'invalid-value'; diff --git a/lib/workers/repository/update/pr/changelog/__snapshots__/github.spec.ts.snap b/lib/workers/repository/update/pr/changelog/__snapshots__/github.spec.ts.snap index d42032437965a2..bf1018023d13a0 100644 --- a/lib/workers/repository/update/pr/changelog/__snapshots__/github.spec.ts.snap +++ b/lib/workers/repository/update/pr/changelog/__snapshots__/github.spec.ts.snap @@ -6,7 +6,7 @@ exports[`workers/repository/update/pr/changelog/github getChangeLogJSON filters "project": { "apiBaseUrl": "https://api.github.com/", "baseUrl": "https://github.com/", - "depName": "@renovate/no", + "packageName": "@renovate/no", "repository": "chalk/chalk", "sourceDirectory": undefined, "sourceUrl": "https://github.com/chalk/chalk", @@ -65,7 +65,7 @@ exports[`workers/repository/update/pr/changelog/github getChangeLogJSON supports "project": { "apiBaseUrl": "https://github-enterprise.example.com/api/v3/", "baseUrl": "https://github-enterprise.example.com/", - "depName": "renovate", + "packageName": "renovate", "repository": "chalk/chalk", "sourceDirectory": undefined, "sourceUrl": "https://github-enterprise.example.com/chalk/chalk", @@ -124,7 +124,7 @@ exports[`workers/repository/update/pr/changelog/github getChangeLogJSON supports "project": { "apiBaseUrl": "https://api.github.com/", "baseUrl": "https://github.com/", - "depName": "renovate", + "packageName": "renovate", "repository": "chalk/chalk", "sourceDirectory": undefined, "sourceUrl": "https://github.com/chalk/chalk", @@ -183,7 +183,7 @@ exports[`workers/repository/update/pr/changelog/github getChangeLogJSON supports "project": { "apiBaseUrl": "https://api.github.com/", "baseUrl": "https://github.com/", - "depName": "renovate", + "packageName": "renovate", "repository": "chalk/chalk", "sourceDirectory": undefined, "sourceUrl": "https://github.com/chalk/chalk", @@ -242,7 +242,7 @@ exports[`workers/repository/update/pr/changelog/github getChangeLogJSON uses Git "project": { "apiBaseUrl": "https://api.github.com/", "baseUrl": "https://github.com/", - "depName": "renovate", + "packageName": "renovate", "repository": "chalk/chalk", "sourceDirectory": undefined, "sourceUrl": "https://github.com/chalk/chalk", @@ -301,7 +301,7 @@ exports[`workers/repository/update/pr/changelog/github getChangeLogJSON works wi "project": { "apiBaseUrl": "https://api.github.com/", "baseUrl": "https://github.com/", - "depName": "renovate", + "packageName": "renovate", "repository": "chalk/chalk", "sourceDirectory": undefined, "sourceUrl": "https://github.com/chalk/chalk", diff --git a/lib/workers/repository/update/pr/changelog/__snapshots__/gitlab.spec.ts.snap b/lib/workers/repository/update/pr/changelog/__snapshots__/gitlab.spec.ts.snap index 33f53b59be2fcf..0b9fc65d6e3dbc 100644 --- a/lib/workers/repository/update/pr/changelog/__snapshots__/gitlab.spec.ts.snap +++ b/lib/workers/repository/update/pr/changelog/__snapshots__/gitlab.spec.ts.snap @@ -6,7 +6,7 @@ exports[`workers/repository/update/pr/changelog/gitlab getChangeLogJSON handles "project": { "apiBaseUrl": "https://gitlab.com/api/v4/", "baseUrl": "https://gitlab.com/", - "depName": "renovate", + "packageName": "renovate", "repository": "meno/dropzone", "sourceDirectory": undefined, "sourceUrl": "https://gitlab.com/meno/dropzone/", @@ -55,7 +55,7 @@ exports[`workers/repository/update/pr/changelog/gitlab getChangeLogJSON supports "project": { "apiBaseUrl": "https://gitlab-enterprise.example.com/api/v4/", "baseUrl": "https://gitlab-enterprise.example.com/", - "depName": "renovate", + "packageName": "renovate", "repository": "meno/dropzone", "sourceDirectory": undefined, "sourceUrl": "https://gitlab-enterprise.example.com/meno/dropzone/", @@ -104,7 +104,7 @@ exports[`workers/repository/update/pr/changelog/gitlab getChangeLogJSON supports "project": { "apiBaseUrl": "https://git.test.com/api/v4/", "baseUrl": "https://git.test.com/", - "depName": "renovate", + "packageName": "renovate", "repository": "meno/dropzone", "sourceDirectory": undefined, "sourceUrl": "https://git.test.com/meno/dropzone/", @@ -153,7 +153,7 @@ exports[`workers/repository/update/pr/changelog/gitlab getChangeLogJSON uses Git "project": { "apiBaseUrl": "https://gitlab.com/api/v4/", "baseUrl": "https://gitlab.com/", - "depName": "renovate", + "packageName": "renovate", "repository": "meno/dropzone", "sourceDirectory": undefined, "sourceUrl": "https://gitlab.com/meno/dropzone/", @@ -222,7 +222,7 @@ exports[`workers/repository/update/pr/changelog/gitlab getChangeLogJSON uses Git "project": { "apiBaseUrl": "https://gitlab.com/api/v4/", "baseUrl": "https://gitlab.com/", - "depName": "renovate", + "packageName": "renovate", "repository": "meno/dropzone", "sourceDirectory": undefined, "sourceUrl": "https://gitlab.com/meno/dropzone/", @@ -271,7 +271,7 @@ exports[`workers/repository/update/pr/changelog/gitlab getChangeLogJSON works wi "project": { "apiBaseUrl": "https://gitlab.com/api/v4/", "baseUrl": "https://gitlab.com/", - "depName": "renovate", + "packageName": "renovate", "repository": "meno/dropzone", "sourceDirectory": undefined, "sourceUrl": "https://gitlab.com/meno/dropzone/", diff --git a/lib/workers/repository/update/pr/changelog/__snapshots__/index.spec.ts.snap b/lib/workers/repository/update/pr/changelog/__snapshots__/index.spec.ts.snap index febe60c2e4064e..cca6fc27ffabba 100644 --- a/lib/workers/repository/update/pr/changelog/__snapshots__/index.spec.ts.snap +++ b/lib/workers/repository/update/pr/changelog/__snapshots__/index.spec.ts.snap @@ -6,7 +6,7 @@ exports[`workers/repository/update/pr/changelog/index getChangeLogJSON filters u "project": { "apiBaseUrl": "https://api.github.com/", "baseUrl": "https://github.com/", - "depName": "@renovate/no", + "packageName": "@renovate/no", "repository": "chalk/chalk", "sourceDirectory": undefined, "sourceUrl": "https://github.com/chalk/chalk", @@ -65,7 +65,7 @@ exports[`workers/repository/update/pr/changelog/index getChangeLogJSON supports "project": { "apiBaseUrl": "https://github-enterprise.example.com/api/v3/", "baseUrl": "https://github-enterprise.example.com/", - "depName": "renovate", + "packageName": "renovate", "repository": "chalk/chalk", "sourceDirectory": undefined, "sourceUrl": "https://github-enterprise.example.com/chalk/chalk", @@ -124,7 +124,7 @@ exports[`workers/repository/update/pr/changelog/index getChangeLogJSON supports "project": { "apiBaseUrl": "https://api.github.com/", "baseUrl": "https://github.com/", - "depName": "renovate", + "packageName": "renovate", "repository": "chalk/chalk", "sourceDirectory": undefined, "sourceUrl": "https://github.com/chalk/chalk", @@ -183,7 +183,7 @@ exports[`workers/repository/update/pr/changelog/index getChangeLogJSON supports "project": { "apiBaseUrl": "https://github-enterprise.example.com/api/v3/", "baseUrl": "https://github-enterprise.example.com/", - "depName": "renovate", + "packageName": "renovate", "repository": "chalk/chalk", "sourceDirectory": undefined, "sourceUrl": "https://github-enterprise.example.com/chalk/chalk", @@ -242,7 +242,7 @@ exports[`workers/repository/update/pr/changelog/index getChangeLogJSON supports "project": { "apiBaseUrl": "https://api.github.com/", "baseUrl": "https://github.com/", - "depName": "renovate", + "packageName": "renovate", "repository": "chalk/chalk", "sourceDirectory": undefined, "sourceUrl": "https://github.com/chalk/chalk", @@ -301,7 +301,7 @@ exports[`workers/repository/update/pr/changelog/index getChangeLogJSON uses GitH "project": { "apiBaseUrl": "https://api.github.com/", "baseUrl": "https://github.com/", - "depName": "renovate", + "packageName": "renovate", "repository": "chalk/chalk", "sourceDirectory": undefined, "sourceUrl": "https://github.com/chalk/chalk", @@ -365,7 +365,7 @@ exports[`workers/repository/update/pr/changelog/index getChangeLogJSON works wit "project": { "apiBaseUrl": "https://api.github.com/", "baseUrl": "https://github.com/", - "depName": "renovate", + "packageName": "renovate", "repository": "chalk/chalk", "sourceDirectory": undefined, "sourceUrl": "https://github.com/chalk/chalk", diff --git a/lib/workers/repository/update/pr/changelog/github.spec.ts b/lib/workers/repository/update/pr/changelog/github.spec.ts index 84419c7e26ff32..8571c684606ae6 100644 --- a/lib/workers/repository/update/pr/changelog/github.spec.ts +++ b/lib/workers/repository/update/pr/changelog/github.spec.ts @@ -13,7 +13,7 @@ jest.mock('../../../../../modules/datasource/npm'); const upgrade = partial({ manager: 'some-manager', branchName: '', - depName: 'renovate', + packageName: 'renovate', endpoint: 'https://api.github.com/', versioning: semverVersioning.id, currentVersion: '1.0.0', @@ -97,7 +97,7 @@ describe('workers/repository/update/pr/changelog/github', () => { project: { apiBaseUrl: 'https://api.github.com/', baseUrl: 'https://github.com/', - depName: 'renovate', + packageName: 'renovate', repository: 'chalk/chalk', sourceDirectory: undefined, sourceUrl: 'https://github.com/chalk/chalk', @@ -122,7 +122,7 @@ describe('workers/repository/update/pr/changelog/github', () => { project: { apiBaseUrl: 'https://api.github.com/', baseUrl: 'https://github.com/', - depName: 'renovate', + packageName: 'renovate', repository: 'chalk/chalk', sourceDirectory: undefined, sourceUrl: 'https://github.com/chalk/chalk', @@ -141,14 +141,14 @@ describe('workers/repository/update/pr/changelog/github', () => { expect( await getChangeLogJSON({ ...upgrade, - depName: '@renovate/no', + packageName: '@renovate/no', }) ).toMatchSnapshot({ hasReleaseNotes: true, project: { apiBaseUrl: 'https://api.github.com/', baseUrl: 'https://github.com/', - depName: '@renovate/no', + packageName: '@renovate/no', repository: 'chalk/chalk', sourceDirectory: undefined, sourceUrl: 'https://github.com/chalk/chalk', @@ -174,7 +174,7 @@ describe('workers/repository/update/pr/changelog/github', () => { project: { apiBaseUrl: 'https://api.github.com/', baseUrl: 'https://github.com/', - depName: 'renovate', + packageName: 'renovate', repository: 'chalk/chalk', sourceDirectory: undefined, sourceUrl: 'https://github.com/chalk/chalk', @@ -251,7 +251,7 @@ describe('workers/repository/update/pr/changelog/github', () => { project: { apiBaseUrl: 'https://api.github.com/', baseUrl: 'https://github.com/', - depName: 'renovate', + packageName: 'renovate', repository: 'chalk/chalk', sourceDirectory: undefined, sourceUrl: 'https://github.com/chalk/chalk', @@ -284,7 +284,7 @@ describe('workers/repository/update/pr/changelog/github', () => { project: { apiBaseUrl: 'https://api.github.com/', baseUrl: 'https://github.com/', - depName: 'renovate', + packageName: 'renovate', repository: 'sindresorhus/got', sourceDirectory: undefined, sourceUrl: 'https://github.com/sindresorhus/got', @@ -312,7 +312,7 @@ describe('workers/repository/update/pr/changelog/github', () => { project: { apiBaseUrl: 'https://github-enterprise.example.com/api/v3/', baseUrl: 'https://github-enterprise.example.com/', - depName: 'renovate', + packageName: 'renovate', repository: 'chalk/chalk', sourceDirectory: undefined, sourceUrl: 'https://github-enterprise.example.com/chalk/chalk', @@ -348,7 +348,7 @@ describe('workers/repository/update/pr/changelog/github', () => { project: { apiBaseUrl: 'https://github-enterprise.example.com/api/v3/', baseUrl: 'https://github-enterprise.example.com/', - depName: 'renovate', + packageName: 'renovate', repository: 'sindresorhus/got', sourceDirectory: undefined, sourceUrl: 'https://github-enterprise.example.com/sindresorhus/got', @@ -372,7 +372,7 @@ describe('workers/repository/update/pr/changelog/github', () => { const upgradeData = partial({ manager: 'some-manager', branchName: '', - depName: 'correctPrefix/target', + packageName: 'correctPrefix/target', endpoint: 'https://api.github.com/', versioning: 'npm', currentVersion: '1.0.0', @@ -395,7 +395,7 @@ describe('workers/repository/update/pr/changelog/github', () => { repository: 'chalk/chalk', sourceUrl: 'https://github.com/chalk/chalk', sourceDirectory: undefined, - depName: 'correctPrefix/target', + packageName: 'correctPrefix/target', }, versions: [ { diff --git a/lib/workers/repository/update/pr/changelog/gitlab.spec.ts b/lib/workers/repository/update/pr/changelog/gitlab.spec.ts index 5f9828046e31e3..b0de522d1fa035 100644 --- a/lib/workers/repository/update/pr/changelog/gitlab.spec.ts +++ b/lib/workers/repository/update/pr/changelog/gitlab.spec.ts @@ -11,7 +11,7 @@ const upgrade = partial({ manager: 'some-manager', branchName: '', endpoint: 'https://gitlab.com/api/v4/ ', - depName: 'renovate', + packageName: 'renovate', versioning: semverVersioning.id, currentVersion: '5.2.0', newVersion: '5.7.0', @@ -85,7 +85,7 @@ describe('workers/repository/update/pr/changelog/gitlab', () => { project: { apiBaseUrl: 'https://gitlab.com/api/v4/', baseUrl: 'https://gitlab.com/', - depName: 'renovate', + packageName: 'renovate', repository: 'meno/dropzone', sourceDirectory: undefined, sourceUrl: 'https://gitlab.com/meno/dropzone/', @@ -127,7 +127,7 @@ describe('workers/repository/update/pr/changelog/gitlab', () => { project: { apiBaseUrl: 'https://gitlab.com/api/v4/', baseUrl: 'https://gitlab.com/', - depName: 'renovate', + packageName: 'renovate', repository: 'meno/dropzone', sourceDirectory: undefined, sourceUrl: 'https://gitlab.com/meno/dropzone/', @@ -162,7 +162,7 @@ describe('workers/repository/update/pr/changelog/gitlab', () => { project: { apiBaseUrl: 'https://gitlab.com/api/v4/', baseUrl: 'https://gitlab.com/', - depName: 'renovate', + packageName: 'renovate', repository: 'meno/dropzone', sourceDirectory: undefined, sourceUrl: 'https://gitlab.com/meno/dropzone/', @@ -197,7 +197,7 @@ describe('workers/repository/update/pr/changelog/gitlab', () => { project: { apiBaseUrl: 'https://gitlab.com/api/v4/', baseUrl: 'https://gitlab.com/', - depName: 'renovate', + packageName: 'renovate', repository: 'meno/dropzone', sourceDirectory: undefined, sourceUrl: 'https://gitlab.com/meno/dropzone/', @@ -266,7 +266,7 @@ describe('workers/repository/update/pr/changelog/gitlab', () => { project: { apiBaseUrl: 'https://gitlab-enterprise.example.com/api/v4/', baseUrl: 'https://gitlab-enterprise.example.com/', - depName: 'renovate', + packageName: 'renovate', repository: 'meno/dropzone', sourceDirectory: undefined, sourceUrl: 'https://gitlab-enterprise.example.com/meno/dropzone/', @@ -301,7 +301,7 @@ describe('workers/repository/update/pr/changelog/gitlab', () => { project: { apiBaseUrl: 'https://git.test.com/api/v4/', baseUrl: 'https://git.test.com/', - depName: 'renovate', + packageName: 'renovate', repository: 'meno/dropzone', sourceDirectory: undefined, sourceUrl: 'https://git.test.com/meno/dropzone/', @@ -339,7 +339,7 @@ describe('workers/repository/update/pr/changelog/gitlab', () => { project: { apiBaseUrl: 'https://git.test.com/api/v4/', baseUrl: 'https://git.test.com/', - depName: 'renovate', + packageName: 'renovate', repository: 'replacement/sourceurl', sourceDirectory: undefined, sourceUrl: 'https://git.test.com/replacement/sourceurl/', diff --git a/lib/workers/repository/update/pr/changelog/index.spec.ts b/lib/workers/repository/update/pr/changelog/index.spec.ts index 51748a88e5aaf0..9fd8a4f3cdb619 100644 --- a/lib/workers/repository/update/pr/changelog/index.spec.ts +++ b/lib/workers/repository/update/pr/changelog/index.spec.ts @@ -16,7 +16,7 @@ const githubReleasesMock = jest.spyOn(githubGraphql, 'queryReleases'); const upgrade = partial({ endpoint: 'https://api.github.com/', - depName: 'renovate', + packageName: 'renovate', versioning: semverVersioning.id, currentVersion: '1.0.0', newVersion: '3.0.0', @@ -105,7 +105,7 @@ describe('workers/repository/update/pr/changelog/index', () => { project: { apiBaseUrl: 'https://api.github.com/', baseUrl: 'https://github.com/', - depName: 'renovate', + packageName: 'renovate', repository: 'chalk/chalk', sourceDirectory: undefined, sourceUrl: 'https://github.com/chalk/chalk', @@ -140,7 +140,7 @@ describe('workers/repository/update/pr/changelog/index', () => { project: { apiBaseUrl: 'https://api.github.com/', baseUrl: 'https://github.com/', - depName: 'renovate', + packageName: 'renovate', repository: 'chalk/chalk', sourceDirectory: undefined, sourceUrl: 'https://github.com/chalk/chalk', @@ -163,14 +163,14 @@ describe('workers/repository/update/pr/changelog/index', () => { httpMock.scope(githubApiHost).get(/.*/).reply(200, []).persist(); const res = await getChangeLogJSON({ ...upgrade, - depName: '@renovate/no', + packageName: '@renovate/no', }); expect(res).toMatchSnapshot({ hasReleaseNotes: true, project: { apiBaseUrl: 'https://api.github.com/', baseUrl: 'https://github.com/', - depName: '@renovate/no', + packageName: '@renovate/no', repository: 'chalk/chalk', sourceDirectory: undefined, sourceUrl: 'https://github.com/chalk/chalk', @@ -199,7 +199,7 @@ describe('workers/repository/update/pr/changelog/index', () => { project: { apiBaseUrl: 'https://api.github.com/', baseUrl: 'https://github.com/', - depName: 'renovate', + packageName: 'renovate', repository: 'chalk/chalk', sourceDirectory: undefined, sourceUrl: 'https://github.com/chalk/chalk', @@ -279,7 +279,7 @@ describe('workers/repository/update/pr/changelog/index', () => { project: { apiBaseUrl: 'https://api.github.com/', baseUrl: 'https://github.com/', - depName: 'renovate', + packageName: 'renovate', repository: 'chalk/chalk', sourceDirectory: undefined, sourceUrl: 'https://github.com/chalk/chalk', @@ -319,7 +319,7 @@ describe('workers/repository/update/pr/changelog/index', () => { project: { apiBaseUrl: 'https://github-enterprise.example.com/api/v3/', baseUrl: 'https://github-enterprise.example.com/', - depName: 'renovate', + packageName: 'renovate', repository: 'chalk/chalk', sourceDirectory: undefined, sourceUrl: 'https://github-enterprise.example.com/chalk/chalk', @@ -357,7 +357,7 @@ describe('workers/repository/update/pr/changelog/index', () => { project: { apiBaseUrl: 'https://github-enterprise.example.com/api/v3/', baseUrl: 'https://github-enterprise.example.com/', - depName: 'renovate', + packageName: 'renovate', repository: 'chalk/chalk', sourceDirectory: undefined, sourceUrl: 'https://github-enterprise.example.com/chalk/chalk', diff --git a/lib/workers/repository/update/pr/changelog/release-notes.spec.ts b/lib/workers/repository/update/pr/changelog/release-notes.spec.ts index 9810c7dba4ad97..6baea97bde0ada 100644 --- a/lib/workers/repository/update/pr/changelog/release-notes.spec.ts +++ b/lib/workers/repository/update/pr/changelog/release-notes.spec.ts @@ -324,7 +324,7 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { { ...githubProject, repository: 'some/repository', - depName: 'some', + packageName: 'some', }, partial({ version: '1.0.0', @@ -359,7 +359,7 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { { ...githubProject, repository: 'some/other-repository', - depName: 'other', + packageName: 'other', }, partial({ version: '1.0.1', @@ -401,7 +401,7 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { { ...githubProject, repository: 'some/other-repository', - depName: 'other', + packageName: 'other', }, partial({ version: '1.0.1', @@ -443,7 +443,7 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { { ...githubProject, repository: 'some/other-repository', - depName: 'other', + packageName: 'other', }, partial({ version: '1.0.1', @@ -485,7 +485,7 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { { ...githubProject, repository: 'some/other-repository', - depName: 'other', + packageName: 'other', }, partial({ version: '1.0.1', @@ -527,7 +527,7 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { { ...githubProject, repository: 'some/other-repository', - depName: 'other', + packageName: 'other', }, partial({ version: '1.0.1', @@ -562,7 +562,7 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { { ...githubProject, repository: 'some/other-repository', - depName: 'other', + packageName: 'other', }, partial({ version: '1.0.1', @@ -606,7 +606,7 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { { ...githubProject, repository: 'some/other-repository', - depName: 'other', + packageName: 'other', }, partial({ version: '1.0.1', @@ -650,7 +650,7 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { { ...githubProject, repository: 'some/other-repository', - depName: 'other', + packageName: 'other', }, partial({ version: '1.0.1', @@ -693,7 +693,7 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { { ...githubProject, repository: 'some/other-repository', - depName: 'other', + packageName: 'other', }, partial({ version: '1.0.1', @@ -730,7 +730,7 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { { ...gitlabProject, repository: 'some/other-repository', - depName: 'other', + packageName: 'other', apiBaseUrl: 'https://api.gitlab.com/', }, partial({ @@ -767,7 +767,7 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { { ...gitlabProject, repository: 'some/other-repository', - depName: 'other', + packageName: 'other', apiBaseUrl: 'https://api.gitlab.com/', }, partial({ @@ -804,7 +804,7 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { { ...gitlabProject, repository: 'some/other-repository', - depName: 'other', + packageName: 'other', apiBaseUrl: 'https://api.gitlab.com/', }, partial({ @@ -827,7 +827,7 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { const res = await getReleaseNotes( partial({ repository: 'some/repository', - depName: 'other', + packageName: 'other', apiBaseUrl: 'https://api.lol.lol/', baseUrl: 'https://lol.lol/', }), @@ -841,11 +841,11 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { }); it('handles same version but different repo releases', async () => { - const depName = 'correctTagPrefix/exampleDep'; + const packageName = 'correctTagPrefix/exampleDep'; githubReleasesMock.mockResolvedValueOnce([ { id: 1, - version: `${depName}@1.0.0`, + version: `${packageName}@1.0.0`, releaseTimestamp: '2020-01-01', url: 'correct/url/tag.com', name: 'some/dep', @@ -872,7 +872,7 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { { ...githubProject, repository: 'some/other-repository', - depName: 'exampleDep', + packageName: 'exampleDep', }, partial({ version: '1.0.0', @@ -906,7 +906,7 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { { ...githubProject, repository: 'some/other-repository', - depName: 'exampleDep', + packageName: 'exampleDep', }, partial({ version: '1.0.0', diff --git a/lib/workers/repository/update/pr/changelog/release-notes.ts b/lib/workers/repository/update/pr/changelog/release-notes.ts index 2cb7d2fbae582f..2f8bff66a658e1 100644 --- a/lib/workers/repository/update/pr/changelog/release-notes.ts +++ b/lib/workers/repository/update/pr/changelog/release-notes.ts @@ -125,15 +125,15 @@ export async function getReleaseNotes( release: ChangeLogRelease, config: BranchUpgradeConfig ): Promise { - const { depName, repository } = project; + const { packageName, repository } = project; const { version, gitRef } = release; // TODO: types (#7154) - logger.trace(`getReleaseNotes(${repository}, ${version}, ${depName!})`); + logger.trace(`getReleaseNotes(${repository}, ${version}, ${packageName!})`); const releases = await getCachedReleaseList(project, release); logger.trace({ releases }, 'Release list from getReleaseList'); let releaseNotes: ChangeLogNotes | null = null; - let matchedRelease = getExactReleaseMatch(depName!, version, releases); + let matchedRelease = getExactReleaseMatch(packageName!, version, releases); if (is.undefined(matchedRelease)) { // no exact match of a release then check other cases matchedRelease = releases.find( @@ -158,11 +158,11 @@ export async function getReleaseNotes( } function getExactReleaseMatch( - depName: string, + packageName: string, version: string, releases: ChangeLogNotes[] ): ChangeLogNotes | undefined { - const exactReleaseReg = regEx(`${depName}[@_-]v?${version}`); + const exactReleaseReg = regEx(`${packageName}[@_-]v?${version}`); const candidateReleases = releases.filter((r) => r.tag?.endsWith(version)); const matchedRelease = candidateReleases.find((r) => exactReleaseReg.test(r.tag!) diff --git a/lib/workers/repository/update/pr/changelog/source-github.ts b/lib/workers/repository/update/pr/changelog/source-github.ts index a3bcb339086f10..39712f42aabd38 100644 --- a/lib/workers/repository/update/pr/changelog/source-github.ts +++ b/lib/workers/repository/update/pr/changelog/source-github.ts @@ -38,7 +38,7 @@ export async function getChangeLogJSON( const newVersion = config.newVersion!; const sourceUrl = config.sourceUrl!; const sourceDirectory = config.sourceDirectory!; - const depName = config.depName!; + const packageName = config.packageName!; const manager = config.manager; if (sourceUrl === 'https://github.com/DefinitelyTyped/DefinitelyTyped') { logger.trace('No release notes for @types'); @@ -60,19 +60,19 @@ export async function getChangeLogJSON( if (host!.endsWith('.github.com') || host === 'github.com') { if (!GlobalConfig.get('githubTokenWarn')) { logger.debug( - { manager, depName, sourceUrl }, + { manager, packageName, sourceUrl }, 'GitHub token warning has been suppressed. Skipping release notes retrieval' ); return null; } logger.warn( - { manager, depName, sourceUrl }, + { manager, packageName, sourceUrl }, 'No github.com token has been configured. Skipping release notes retrieval' ); return { error: 'MissingGithubToken' }; } logger.debug( - { manager, depName, sourceUrl }, + { manager, packageName, sourceUrl }, 'Repository URL does not match any known github hosts - skipping changelog retrieval' ); return null; @@ -99,7 +99,7 @@ export async function getChangeLogJSON( .sort((a, b) => version.sortVersions(a.version, b.version)); if (validReleases.length < 2) { - logger.debug(`Not enough valid releases for dep ${depName}`); + logger.debug(`Not enough valid releases for dep ${packageName}`); return null; } @@ -109,7 +109,12 @@ export async function getChangeLogJSON( if (!tags) { tags = await getCachedTags(apiBaseUrl, repository); } - const tagName = findTagOfRelease(version, depName, release.version, tags); + const tagName = findTagOfRelease( + version, + packageName, + release.version, + tags + ); if (tagName) { return tagName; } @@ -122,7 +127,7 @@ export async function getChangeLogJSON( const cacheNamespace = 'changelog-github-release'; function getCacheKey(prev: string, next: string): string { - return `${slugifyUrl(sourceUrl)}:${depName}:${prev}:${next}`; + return `${slugifyUrl(sourceUrl)}:${packageName}:${prev}:${next}`; } const changelogReleases: ChangeLogRelease[] = []; @@ -173,7 +178,7 @@ export async function getChangeLogJSON( repository, sourceUrl, sourceDirectory, - depName, + packageName, }, versions: changelogReleases, }; @@ -185,12 +190,12 @@ export async function getChangeLogJSON( function findTagOfRelease( version: allVersioning.VersioningApi, - depName: string, + packageName: string, depNewVersion: string, tags: string[] ): string | undefined { - const regex = regEx(`(?:${depName}|release)[@-]`, undefined, false); - const excactReleaseRegex = regEx(`${depName}[@-_]v?${depNewVersion}`); + const regex = regEx(`(?:${packageName}|release)[@-]`, undefined, false); + const excactReleaseRegex = regEx(`${packageName}[@-_]v?${depNewVersion}`); const exactTagsList = tags.filter((tag) => { return excactReleaseRegex.test(tag); }); diff --git a/lib/workers/repository/update/pr/changelog/source-gitlab.ts b/lib/workers/repository/update/pr/changelog/source-gitlab.ts index 4fa2ebe0adf38a..2b003f51c64a61 100644 --- a/lib/workers/repository/update/pr/changelog/source-gitlab.ts +++ b/lib/workers/repository/update/pr/changelog/source-gitlab.ts @@ -38,7 +38,7 @@ export async function getChangeLogJSON( const currentVersion = config.currentVersion!; const newVersion = config.newVersion!; const sourceUrl = config.sourceUrl!; - const depName = config.depName!; + const packageName = config.packageName!; const sourceDirectory = config.sourceDirectory!; logger.trace('getChangeLogJSON for gitlab'); @@ -81,7 +81,7 @@ export async function getChangeLogJSON( if (!tags) { tags = await getCachedTags(apiBaseUrl, versioning, repository); } - const regex = regEx(`(?:${depName}|release)[@-]`, undefined, false); + const regex = regEx(`(?:${packageName}|release)[@-]`, undefined, false); const tagName = tags .filter((tag) => version.isVersion(tag.replace(regex, ''))) .find((tag) => version.equals(tag.replace(regex, ''), release.version)); @@ -95,7 +95,7 @@ export async function getChangeLogJSON( } function getCacheKey(prev: string, next: string): string { - return `${slugifyUrl(sourceUrl)}:${depName}:${prev}:${next}`; + return `${slugifyUrl(sourceUrl)}:${packageName}:${prev}:${next}`; } const changelogReleases: ChangeLogRelease[] = []; @@ -144,7 +144,7 @@ export async function getChangeLogJSON( type: 'gitlab', repository, sourceUrl, - depName, + packageName, sourceDirectory, }, versions: changelogReleases, diff --git a/lib/workers/repository/update/pr/changelog/types.ts b/lib/workers/repository/update/pr/changelog/types.ts index 025c1a834e5ca3..23c4747a057e13 100644 --- a/lib/workers/repository/update/pr/changelog/types.ts +++ b/lib/workers/repository/update/pr/changelog/types.ts @@ -24,7 +24,7 @@ export interface ChangeLogRelease { } export interface ChangeLogProject { - depName?: string; + packageName?: string; type: 'github' | 'gitlab'; apiBaseUrl?: string; baseUrl: string; From a4ab4523f8de62ffecec7c713aa82bfb7bf18bbe Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Sun, 5 Mar 2023 17:23:41 +0100 Subject: [PATCH 107/228] feat(config)!: forkProcessing (#20759) Removes "includeForks" option and replaces with "forkProcessing". New default behavior is to process forks if automerge=false. Closes #20752 BREAKING CHANGE: Forked repos will now be processed automatically if autodiscover=false. includeForks is removed and replaced by new option forkProcessing. --- docs/development/configuration.md | 2 +- docs/development/local-development.md | 11 ------ docs/usage/configuration-options.md | 18 +++++----- .../__snapshots__/migration.spec.ts.snap | 2 +- .../custom/include-forks-migration.spec.ts | 34 +++++++++++++++++++ .../custom/include-forks-migration.ts | 13 +++++++ .../custom/renovate-fork-migration.spec.ts | 4 +-- .../custom/renovate-fork-migration.ts | 2 +- lib/config/options/index.ts | 9 ++--- lib/config/types.ts | 2 +- lib/modules/platform/types.ts | 2 +- lib/workers/global/config/parse/cli.ts | 2 ++ lib/workers/global/config/parse/index.ts | 6 ++++ lib/workers/repository/configured.ts | 2 +- lib/workers/repository/init/apis.spec.ts | 33 ++++++++++++++---- lib/workers/repository/init/apis.ts | 9 +++-- .../repository/onboarding/branch/index.ts | 2 +- 17 files changed, 112 insertions(+), 41 deletions(-) create mode 100644 lib/config/migrations/custom/include-forks-migration.spec.ts create mode 100644 lib/config/migrations/custom/include-forks-migration.ts diff --git a/docs/development/configuration.md b/docs/development/configuration.md index b77fdfd6e3a993..54b007df01d2be 100644 --- a/docs/development/configuration.md +++ b/docs/development/configuration.md @@ -32,7 +32,7 @@ e.g. apply one set of labels for `backend/package.json` and a different set of l module.exports = { npmrc: '//registry.npmjs.org/:_authToken=abc123', baseDir: '/tmp/renovate', - includeForks: true, + forkProcessing: 'enabled', gradle: { enabled: false }, }; ``` diff --git a/docs/development/local-development.md b/docs/development/local-development.md index ef07cd0a5539af..a226fba39b3a66 100644 --- a/docs/development/local-development.md +++ b/docs/development/local-development.md @@ -171,17 +171,6 @@ To do this, see these GitHub guides: ## Tips and tricks -### Running Renovate against forked repositories - -Quite often, the quickest way for you to test or fix something is to fork an existing repository. -But by default Renovate skips over repositories that are forked. -To override this default, you need to specify the setting `includeForks` as `true`. - -Tell Renovate to run on your forked repository by doing one of the following: - -1. Add `"includeForks": true` to the `renovate.json` file in your forked repository -1. Run Renovate with the CLI flag `--renovate-fork=true` - ### Log files Usually, `debug` is good enough to troubleshoot most problems or verify functionality. diff --git a/docs/usage/configuration-options.md b/docs/usage/configuration-options.md index afa89177db7aab..6912e64938eb5f 100644 --- a/docs/usage/configuration-options.md +++ b/docs/usage/configuration-options.md @@ -923,6 +923,16 @@ If this option is enabled, reviewers will need to create a new PR if additional !!! note This option is only relevant if you set `forkToken`. +## forkProcessing + +By default, Renovate will skip over any repositories that are forked if Renovate is using `autodiscover` mode. +This includes if the forked repository has a Renovate config file, because Renovate can't tell if that file was added by the original repository or not. +If you wish to enable processing of a forked repository by Renovate when autodiscovering, you need to add `"forkProcessing": "enabled"` to your repository config or run the CLI command with `--fork-processing=enabled`. + +If you are running in non-autodiscover mode (e.g. supplying a list of repositories to Renovate) but wish to skip forked repositories, you need to configure `"forkProcessing": "disabled"` in your global config. + +If you are using the hosted Mend Renovate then this option will be configured to `"enabled"` automatically if you "Selected" repositories individually but `"disabled"` if you installed for "All" repositories. If you have installed Renovate into "All" repositories but have a fork you want to use, then add `"forkProcessing": "enabled"` to the repository's `renovate.json` file. + ## gitAuthor You can customize the Git author that's used whenever Renovate creates a commit. @@ -1417,14 +1427,6 @@ If you need to force permanent unstable updates for a package, you can add a pac Also check out the `followTag` configuration option above if you wish Renovate to keep you pinned to a particular release tag. -## includeForks - -By default, Renovate will skip over any repositories that are forked. -This includes if the forked repository has a Renovate config file, because Renovate can't tell if that file was added by the original repository or not. -If you wish to enable processing of a forked repository by Renovate, you need to add `"includeForks": true` to your repository config or run the CLI command with `--include-forks=true`. - -If you are using the hosted Mend Renovate then this option will be configured to `true` automatically if you "Selected" repositories individually but remain as `false` if you installed for "All" repositories. - ## includePaths If you wish for Renovate to process only select paths in the repository, use `includePaths`. diff --git a/lib/config/__snapshots__/migration.spec.ts.snap b/lib/config/__snapshots__/migration.spec.ts.snap index fdf32c597a036c..572cc3bbdb1787 100644 --- a/lib/config/__snapshots__/migration.spec.ts.snap +++ b/lib/config/__snapshots__/migration.spec.ts.snap @@ -131,6 +131,7 @@ exports[`config/migration migrateConfig(config, parentConfig) migrates config 1` "config:js-lib", ":dependencyDashboard", ], + "forkProcessing": "enabled", "hostRules": [ { "hostType": "docker", @@ -142,7 +143,6 @@ exports[`config/migration migrateConfig(config, parentConfig) migrates config 1` "ignorePaths": [ "node_modules/", ], - "includeForks": true, "lockFileMaintenance": { "automerge": true, "exposeAllEnv": false, diff --git a/lib/config/migrations/custom/include-forks-migration.spec.ts b/lib/config/migrations/custom/include-forks-migration.spec.ts new file mode 100644 index 00000000000000..ca4ce0b9b2a5b2 --- /dev/null +++ b/lib/config/migrations/custom/include-forks-migration.spec.ts @@ -0,0 +1,34 @@ +import { RenovateForkMigration } from './include-forks-migration'; + +describe('config/migrations/custom/include-forks-migration', () => { + it('should migrate true', () => { + expect(RenovateForkMigration).toMigrate( + { + includeForks: true, + }, + { + forkProcessing: 'enabled', + } + ); + }); + + it('should migrate false', () => { + expect(RenovateForkMigration).toMigrate( + { + includeForks: false, + }, + { + forkProcessing: 'disabled', + } + ); + }); + + it('should not migrate non boolean value', () => { + expect(RenovateForkMigration).toMigrate( + { + includeForks: 'test', + }, + {} + ); + }); +}); diff --git a/lib/config/migrations/custom/include-forks-migration.ts b/lib/config/migrations/custom/include-forks-migration.ts new file mode 100644 index 00000000000000..5afede3db6b588 --- /dev/null +++ b/lib/config/migrations/custom/include-forks-migration.ts @@ -0,0 +1,13 @@ +import is from '@sindresorhus/is'; +import { AbstractMigration } from '../base/abstract-migration'; + +export class RenovateForkMigration extends AbstractMigration { + override readonly deprecated = true; + override readonly propertyName = 'includeForks'; + + override run(value: unknown): void { + if (is.boolean(value)) { + this.setSafely('forkProcessing', value ? 'enabled' : 'disabled'); + } + } +} diff --git a/lib/config/migrations/custom/renovate-fork-migration.spec.ts b/lib/config/migrations/custom/renovate-fork-migration.spec.ts index 3e0841ebbce4ad..daa11f1885918c 100644 --- a/lib/config/migrations/custom/renovate-fork-migration.spec.ts +++ b/lib/config/migrations/custom/renovate-fork-migration.spec.ts @@ -7,7 +7,7 @@ describe('config/migrations/custom/renovate-fork-migration', () => { renovateFork: true, }, { - includeForks: true, + forkProcessing: 'enabled', } ); }); @@ -18,7 +18,7 @@ describe('config/migrations/custom/renovate-fork-migration', () => { renovateFork: false, }, { - includeForks: false, + forkProcessing: 'disabled', } ); }); diff --git a/lib/config/migrations/custom/renovate-fork-migration.ts b/lib/config/migrations/custom/renovate-fork-migration.ts index 4a2b0d61d9ddfd..071ffdac5f7ea7 100644 --- a/lib/config/migrations/custom/renovate-fork-migration.ts +++ b/lib/config/migrations/custom/renovate-fork-migration.ts @@ -7,7 +7,7 @@ export class RenovateForkMigration extends AbstractMigration { override run(value: unknown): void { if (is.boolean(value)) { - this.setSafely('includeForks', value); + this.setSafely('forkProcessing', value ? 'enabled' : 'disabled'); } } } diff --git a/lib/config/options/index.ts b/lib/config/options/index.ts index 077276162487bb..1ed247e6610519 100644 --- a/lib/config/options/index.ts +++ b/lib/config/options/index.ts @@ -419,12 +419,13 @@ const options: RenovateOptions[] = [ experimentalIssues: [17633], }, { - name: 'includeForks', + name: 'forkProcessing', description: - 'Whether to process forked repositories. By default, all forked repositories are skipped.', + 'Whether to process forked repositories. By default, all forked repositories are skipped when in autodiscover mode.', stage: 'repository', - type: 'boolean', - default: false, + type: 'string', + allowedValues: ['auto', 'enabled', 'disabled'], + default: 'auto', }, { name: 'forkToken', diff --git a/lib/config/types.ts b/lib/config/types.ts index 9891748ea53216..0a48bb829bad2c 100644 --- a/lib/config/types.ts +++ b/lib/config/types.ts @@ -213,7 +213,7 @@ export interface RenovateConfig hostRules?: HostRule[]; ignorePresets?: string[]; - includeForks?: boolean; + forkProcessing?: 'auto' | 'enabled' | 'disabled'; isFork?: boolean; fileList?: string[]; diff --git a/lib/modules/platform/types.ts b/lib/modules/platform/types.ts index f5f8a15285be67..dab52e1aa86c16 100644 --- a/lib/modules/platform/types.ts +++ b/lib/modules/platform/types.ts @@ -38,7 +38,7 @@ export interface RepoParams { endpoint?: string; gitUrl?: GitUrlOption; forkToken?: string; - includeForks?: boolean; + forkProcessing?: 'enabled' | 'disabled'; renovateUsername?: string; cloneSubmodules?: boolean; ignorePrAuthor?: boolean; diff --git a/lib/workers/global/config/parse/cli.ts b/lib/workers/global/config/parse/cli.ts index 019dc343e95728..f12305fa3e28ab 100644 --- a/lib/workers/global/config/parse/cli.ts +++ b/lib/workers/global/config/parse/cli.ts @@ -32,6 +32,8 @@ export function getConfig(input: string[]): AllConfig { .replace(/^--dry-run$/, '--dry-run=true') .replace(/^--require-config$/, '--require-config=true') .replace('--aliases', '--registry-aliases') + .replace('--include-forks=true', '--fork-processing=enabled') + .replace('--include-forks', '--fork-processing=enabled') ) .filter((a) => !a.startsWith('--git-fs')); const options = getOptions(); diff --git a/lib/workers/global/config/parse/index.ts b/lib/workers/global/config/parse/index.ts index 5bfed02cbf2060..0823d06c6ff5d9 100644 --- a/lib/workers/global/config/parse/index.ts +++ b/lib/workers/global/config/parse/index.ts @@ -99,6 +99,12 @@ export async function parseConfigs( config.endpoint = ensureTrailingSlash(config.endpoint); } + // Massage forkProcessing + if (!config.autodiscover && config.forkProcessing !== 'disabled') { + logger.debug('Enabling forkProcessing while in non-autodiscover mode'); + config.forkProcessing = 'enabled'; + } + // Remove log file entries delete config.logFile; delete config.logFileLevel; diff --git a/lib/workers/repository/configured.ts b/lib/workers/repository/configured.ts index 80e88016f5c9c5..d6b57ee7a33291 100644 --- a/lib/workers/repository/configured.ts +++ b/lib/workers/repository/configured.ts @@ -8,7 +8,7 @@ export function checkIfConfigured(config: RenovateConfig): void { if (config.enabled === false) { throw new Error(REPOSITORY_DISABLED_BY_CONFIG); } - if (config.isFork && !config.includeForks) { + if (config.isFork && config.forkProcessing !== 'enabled') { throw new Error(REPOSITORY_FORKED); } } diff --git a/lib/workers/repository/init/apis.spec.ts b/lib/workers/repository/init/apis.spec.ts index 2daa89b7d150fd..b87e59d4013abf 100644 --- a/lib/workers/repository/init/apis.spec.ts +++ b/lib/workers/repository/init/apis.spec.ts @@ -15,7 +15,7 @@ describe('workers/repository/init/apis', () => { config.warnings = []; config.token = 'some-token'; delete config.optimizeForDisabled; - delete config.includeForks; + delete config.forkProcessing; }); afterEach(() => { @@ -53,15 +53,30 @@ describe('workers/repository/init/apis', () => { isFork: true, repoFingerprint: '123', }); - platform.getJsonFile.mockResolvedValueOnce({ includeForks: false }); + platform.getJsonFile.mockResolvedValueOnce({ + forkProcessing: 'disabled', + }); await expect( initApis({ ...config, - includeForks: false, + forkProcessing: 'disabled', }) ).rejects.toThrow(REPOSITORY_FORKED); }); + it('does not throw for includeForks=true', async () => { + platform.initRepo.mockResolvedValueOnce({ + defaultBranch: 'master', + isFork: true, + repoFingerprint: '123', + }); + platform.getJsonFile.mockResolvedValueOnce({ + includeForks: true, + }); + const workerPlatformConfig = await initApis(config); + expect(workerPlatformConfig).toBeTruthy(); + }); + it('ignores platform.getJsonFile() failures', async () => { platform.initRepo.mockResolvedValueOnce({ defaultBranch: 'master', @@ -73,7 +88,7 @@ describe('workers/repository/init/apis', () => { initApis({ ...config, optimizeForDisabled: true, - includeForks: false, + forkProcessing: 'disabled', isFork: true, }) ).resolves.not.toThrow(); @@ -85,7 +100,9 @@ describe('workers/repository/init/apis', () => { isFork: false, repoFingerprint: '123', }); - platform.getJsonFile.mockResolvedValueOnce({ includeForks: false }); + platform.getJsonFile.mockResolvedValueOnce({ + forkProcessing: 'disabled', + }); const workerPlatformConfig = await initApis({ ...config, optimizeForDisabled: true, @@ -107,7 +124,9 @@ describe('workers/repository/init/apis', () => { isFork: false, repoFingerprint: '123', }); - platform.getJsonFile.mockResolvedValueOnce({ includeForks: false }); + platform.getJsonFile.mockResolvedValueOnce({ + forkProcessing: 'disabled', + }); const workerPlatformConfig = await initApis({ ...config, optimizeForDisabled: true, @@ -124,7 +143,7 @@ describe('workers/repository/init/apis', () => { isFork: false, repoFingerprint: '123', }); - platform.getJsonFile.mockResolvedValueOnce({ includeForks: false }); + platform.getJsonFile.mockResolvedValueOnce({ forkProcessing: false }); const workerPlatformConfig = await initApis({ ...config, optimizeForDisabled: true, diff --git a/lib/workers/repository/init/apis.ts b/lib/workers/repository/init/apis.ts index d1d425ad335ed4..1eec1212a139db 100644 --- a/lib/workers/repository/init/apis.ts +++ b/lib/workers/repository/init/apis.ts @@ -4,6 +4,7 @@ import { REPOSITORY_DISABLED_BY_CONFIG, REPOSITORY_FORKED, } from '../../../constants/error-messages'; +import { logger } from '../../../logger'; import { RepoParams, RepoResult, platform } from '../../../modules/platform'; // TODO: fix types (#7154) @@ -37,11 +38,15 @@ async function validateOptimizeForDisabled( } async function validateIncludeForks(config: RenovateConfig): Promise { - if (!config.includeForks && config.isFork) { + if (config.forkProcessing !== 'enabled' && config.isFork) { const renovateConfig = await getJsonFile(defaultConfigFile(config)); - if (!renovateConfig?.includeForks) { + if ( + renovateConfig?.includeForks !== true && + renovateConfig?.forkProcessing !== 'enabled' + ) { throw new Error(REPOSITORY_FORKED); } + logger.debug('Repository config enables forks - continuing'); } } diff --git a/lib/workers/repository/onboarding/branch/index.ts b/lib/workers/repository/onboarding/branch/index.ts index e2b07ce4bebaaa..2add4def7375e7 100644 --- a/lib/workers/repository/onboarding/branch/index.ts +++ b/lib/workers/repository/onboarding/branch/index.ts @@ -28,7 +28,7 @@ export async function checkOnboardingBranch( logger.debug('Repo is onboarded'); return { ...config, repoIsOnboarded }; } - if (config.isFork && !config.includeForks) { + if (config.isFork && config.forkProcessing !== 'enabled') { throw new Error(REPOSITORY_FORKED); } logger.debug('Repo is not onboarded'); From b53b8bca6b7c5c3c8faf777287b971e47a6732bf Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Fri, 10 Mar 2023 10:31:52 +0100 Subject: [PATCH 108/228] chore: fix coverage --- lib/workers/repository/update/pr/index.spec.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/workers/repository/update/pr/index.spec.ts b/lib/workers/repository/update/pr/index.spec.ts index 425bc8d3bd6232..68c855903caa95 100644 --- a/lib/workers/repository/update/pr/index.spec.ts +++ b/lib/workers/repository/update/pr/index.spec.ts @@ -114,7 +114,9 @@ describe('workers/repository/update/pr/index', () => { platform.createPr.mockResolvedValueOnce(pr); limits.isLimitReached.mockReturnValueOnce(true); - const res = await ensurePr({ ...config, isVulnerabilityAlert: true }); + const prConfig = { ...config, isVulnerabilityAlert: true }; + delete prConfig.prTitle; // for coverage + const res = await ensurePr(prConfig); expect(res).toEqual({ type: 'with-pr', pr }); expect(platform.createPr).toHaveBeenCalled(); From 2102b706073676ae949692a6595cc590770b7803 Mon Sep 17 00:00:00 2001 From: Michael Kriese Date: Fri, 10 Mar 2023 11:29:25 +0100 Subject: [PATCH 109/228] feat!: require NodeJS v18.12+ (#20838) --- .github/workflows/build.yml | 4 ++-- docs/development/local-development.md | 3 +-- package.json | 4 ++-- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index fee617a3a47022..c9d97977483a9f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -39,7 +39,7 @@ jobs: strategy: matrix: os: [ubuntu-latest] - node-version: [16, 18] + node-version: [18] # skip macOS and Windows test on pull requests without 'ci:fulltest' label include: >- ${{ fromJSON((github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'ci:fulltest')) && '[{ @@ -77,7 +77,7 @@ jobs: echo "Yarn $(yarn --version)" - name: Installing dependencies - run: yarn install --frozen-lockfile --ignore-engines # semantic release will fail to install otherwise + run: yarn install --frozen-lockfile # build before tests to for static file check - name: Build diff --git a/docs/development/local-development.md b/docs/development/local-development.md index a226fba39b3a66..a141a9b3a537aa 100644 --- a/docs/development/local-development.md +++ b/docs/development/local-development.md @@ -11,12 +11,11 @@ For example, if you think anything is unclear, or you think something needs to b You need the following dependencies for local development: - Git `>=2.33.0` -- Node.js `>= 18.12.0` +- Node.js `>=18.12.0` - Yarn `^1.22.5` - C++ compiler We support Node.js versions according to the [Node.js release schedule](https://github.com/nodejs/Release#release-schedule). -If you are using Node.js `<= 18` you need to run `yarn install --ignore-engines`, because we've some `devDependencies` which require Node.js v18+. #### Linux diff --git a/package.json b/package.json index 7580342fd2e801..77c2af1e603019 100644 --- a/package.json +++ b/package.json @@ -127,12 +127,12 @@ }, "homepage": "https://renovatebot.com", "engines": { - "node": "^14.15.0 || >=16.13.0", + "node": ">=18.12.0", "yarn": "^1.17.0" }, "engines-next": { "description": "Versions other than the below are deprecated and a warning will be logged", - "node": ">= 18.12.0" + "node": ">=18.12.0" }, "dependencies": { "@aws-sdk/client-codecommit": "3.282.0", From da1eeea02b9b7adc3abec70c09819d7ec9fde854 Mon Sep 17 00:00:00 2001 From: HonkingGoose <34918129+HonkingGoose@users.noreply.github.com> Date: Fri, 10 Mar 2023 17:24:35 +0100 Subject: [PATCH 110/228] docs: replace unencrypted with plaintext (#20849) --- docs/usage/getting-started/private-packages.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/usage/getting-started/private-packages.md b/docs/usage/getting-started/private-packages.md index e9aaa54b5b1cc9..3fd93fbef60706 100644 --- a/docs/usage/getting-started/private-packages.md +++ b/docs/usage/getting-started/private-packages.md @@ -231,7 +231,7 @@ The recommended approaches in order of preference are: 1. **Self-hosted hostRules**: Configure a hostRules entry in the bot's `config.js` with the `hostType`, `matchHost` and `token` specified 1. **Renovate App with private modules from npmjs.org**: Add an encrypted `npmToken` to your Renovate config -1. **Renovate App with a private registry**: Add an unencrypted `npmrc` plus an encrypted `npmToken` in config +1. **Renovate App with a private registry**: Add an plaintext `npmrc` plus an encrypted `npmToken` in config These approaches are described in full below. @@ -296,7 +296,7 @@ If you are using the main npmjs registry then you can configure just the `npmTok #### Add an encrypted npm token to Renovate config -If you don't want all users of the repository to see the unencrypted token, you can encrypt it with Renovate's public key instead, so that only Renovate can decrypt it. +If you don't want all users of the repository to see the plaintext token, you can encrypt it with Renovate's public key instead, so that only Renovate can decrypt it. Go to , paste in your npm token, select "Encrypt", then copy the encrypted result. From 63cfcdbcce25b1cc0dc5547ba20c30dee9d6ba7a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 10 Mar 2023 20:10:03 +0000 Subject: [PATCH 111/228] chore(deps): update node.js to 8dac04e (#20857) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .devcontainer/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 0d51bf097652bd..6a9ffb7b2aeb51 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,4 +1,4 @@ -FROM containerbase/node:18.15.0@sha256:6c87133e7713b71b14d639bb3fa5e05d3569f7a60cf5ee1eaeeea054b5ca95df +FROM containerbase/node:18.15.0@sha256:8dac04e5d94c0ee0680ba225e1b2fa495b33f2e8de1c975f8f7e80844226a63f USER root From 8ab35d6f5a7da31af52791967c7a2b9502bb4a7e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 10 Mar 2023 20:14:02 +0000 Subject: [PATCH 112/228] chore(deps): update github/codeql-action action to v2.2.6 (#20858) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/codeql-analysis.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 14cbf892af6981..0294b273ca7525 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -30,7 +30,7 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@32dc499307d133bb5085bae78498c0ac2cf762d5 # v2.2.5 + uses: github/codeql-action/init@16964e90ba004cdf0cd845b866b5df21038b7723 # v2.2.6 with: languages: javascript @@ -40,7 +40,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@32dc499307d133bb5085bae78498c0ac2cf762d5 # v2.2.5 + uses: github/codeql-action/autobuild@16964e90ba004cdf0cd845b866b5df21038b7723 # v2.2.6 # ℹī¸ Command-line programs to run using the OS shell. # 📚 https://git.io/JvXDl @@ -54,4 +54,4 @@ jobs: # make release - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@32dc499307d133bb5085bae78498c0ac2cf762d5 # v2.2.5 + uses: github/codeql-action/analyze@16964e90ba004cdf0cd845b866b5df21038b7723 # v2.2.6 From d1afa8549d11d6a957b9ba11a9a47e144faba60e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 11 Mar 2023 01:59:12 +0000 Subject: [PATCH 113/228] chore(deps): update dependency rimraf to v4.3.0 (#20864) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 77c2af1e603019..fb0d787b021267 100644 --- a/package.json +++ b/package.json @@ -321,7 +321,7 @@ "mockdate": "3.0.5", "nock": "13.3.0", "npm-run-all": "4.1.5", - "rimraf": "4.2.0", + "rimraf": "4.3.0", "semantic-release": "20.1.1", "shelljs": "0.8.5", "strip-ansi": "6.0.1", diff --git a/yarn.lock b/yarn.lock index 2f6d2f19e81340..469878db599e54 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9021,10 +9021,10 @@ rfdc@^1.3.0: resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== -rimraf@4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-4.2.0.tgz#f9c2a2b121f5133095c5d578983aec534c65f282" - integrity sha512-tPt+gLORNVqRCk0NwuJ5SlMEcOGvt4CCU8sUPqgCFtCbnoNCTd9Q6vq7JlBbxQlACiH14OR28y7piA2Bak9Sxw== +rimraf@4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-4.3.0.tgz#cd4d9a918c1735197e0ae8217e5eeb4657d42154" + integrity sha512-5qVDXPbByA1qSJEWMv1qAwKsoS22vVpsL2QyxCKBw4gf6XiFo1K3uRLY6uSOOBFDwnqAZtnbILqWKKlzh8bkGg== dependencies: glob "^9.2.0" From 22cbc80f103020ec5143ee82cbfc2e7923164163 Mon Sep 17 00:00:00 2001 From: Adam Setch Date: Fri, 10 Mar 2023 23:11:42 -0500 Subject: [PATCH 114/228] docs: add @setchy as contributor (#20861) --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index fb0d787b021267..891deb7c246396 100644 --- a/package.json +++ b/package.json @@ -82,6 +82,7 @@ ], "author": "Rhys Arkins ", "contributors": [ + "Adam Setch ", "Alex DelVecchio ", "Andreas Bexelius ", "Ayoub Kaanich ", From 166a2880c1588f4bce632c2a8dcb85ebbd086ce8 Mon Sep 17 00:00:00 2001 From: Adam Setch Date: Fri, 10 Mar 2023 23:56:25 -0500 Subject: [PATCH 115/228] build: add .nvmrc (#20862) --- .nvmrc | 1 + 1 file changed, 1 insertion(+) create mode 100644 .nvmrc diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 00000000000000..55bffd620b9af5 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +18.15.0 From 0a355f2275b296ef12bd9f767ac640a372867310 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 11 Mar 2023 05:05:44 +0000 Subject: [PATCH 116/228] build(deps): update dependency luxon to v3.3.0 (#20866) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 891deb7c246396..e1e85972c6bba6 100644 --- a/package.json +++ b/package.json @@ -206,7 +206,7 @@ "json-dup-key-validator": "1.0.3", "json-stringify-pretty-compact": "3.0.0", "json5": "2.2.3", - "luxon": "3.2.1", + "luxon": "3.3.0", "markdown-it": "13.0.1", "markdown-table": "2.0.0", "minimatch": "5.1.6", diff --git a/yarn.lock b/yarn.lock index 469878db599e54..e545e98636908e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7232,7 +7232,12 @@ lru-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1: resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.1.tgz#4716408dec51d5d0104732647f584d1f6738b109" integrity sha512-8/HcIENyQnfUTCDizRu9rrDyG6XG/21M4X7/YEGZeD76ZJilFPAUVb/2zysFf7VVO1LEjCDFyHp8pMMvozIrvg== -luxon@3.2.1, luxon@^3.2.1: +luxon@3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.3.0.tgz#d73ab5b5d2b49a461c47cedbc7e73309b4805b48" + integrity sha512-An0UCfG/rSiqtAIiBPO0Y9/zAnHUZxAMiCpTd5h2smgsj7GGmcenvrvww2cqNA8/4A5ZrD1gJpHN2mIHZQF+Mg== + +luxon@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.2.1.tgz#14f1af209188ad61212578ea7e3d518d18cee45f" integrity sha512-QrwPArQCNLAKGO/C+ZIilgIuDnEnKx5QYODdDtbFaxzsbZcc/a7WFq7MhsVYgRlwawLtvOUESTlfJ+hc/USqPg== From b475231176f7012ab4faa6258d2a99bd9d627850 Mon Sep 17 00:00:00 2001 From: RahulGautamSingh Date: Sat, 11 Mar 2023 10:54:17 +0530 Subject: [PATCH 117/228] refactor: use satisfies (#20781) --- .../repository/update/branch/index.spec.ts | 28 +++++++++++-------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/lib/workers/repository/update/branch/index.spec.ts b/lib/workers/repository/update/branch/index.spec.ts index da9c8329a42ebb..aecdbccea5928f 100644 --- a/lib/workers/repository/update/branch/index.spec.ts +++ b/lib/workers/repository/update/branch/index.spec.ts @@ -109,7 +109,10 @@ describe('workers/repository/update/branch/index', () => { errors: [], warnings: [], upgrades: partial([{ depName: 'some-dep-name' }]), - } as BranchConfig; + baseBranch: 'base-branch', + manager: 'some-manager', + major: undefined, + } satisfies BranchConfig; schedule.isScheduledNow.mockReturnValue(true); commit.commitFilesToBranch.mockResolvedValue('123test'); @@ -759,7 +762,7 @@ describe('workers/repository/update/branch/index', () => { prCreation: 'not-pending', commitBody: '[skip-ci]', fetchReleaseNotes: true, - } as BranchConfig; + } satisfies BranchConfig; mockedFunction(needsChangelogs).mockReturnValueOnce(true); scm.getBranchCommit.mockResolvedValue('123test'); //TODO:not needed? expect(await branchWorker.processBranch(inconfig)).toEqual({ @@ -1108,7 +1111,7 @@ describe('workers/repository/update/branch/index', () => { updateType: 'lockFileMaintenance', reuseExistingBranch: false, updatedArtifacts: [{ type: 'deletion', path: 'dummy' }], - } as BranchConfig; + } satisfies BranchConfig; expect(await branchWorker.processBranch(inconfig)).toEqual({ branchExists: true, updatesVerified: true, @@ -1199,7 +1202,7 @@ describe('workers/repository/update/branch/index', () => { updateType: 'lockFileMaintenance', reuseExistingBranch: false, updatedArtifacts: [{ type: 'deletion', path: 'dummy' }], - } as BranchConfig; + } satisfies BranchConfig; expect(await branchWorker.processBranch(inconfig)).toEqual({ branchExists: true, updatesVerified: true, @@ -1236,7 +1239,7 @@ describe('workers/repository/update/branch/index', () => { const inconfig = { ...config, updatedArtifacts: [{ type: 'deletion', path: 'dummy' }], - } as BranchConfig; + } satisfies BranchConfig; expect(await branchWorker.processBranch(inconfig)).toEqual({ branchExists: true, prNo: undefined, @@ -1304,7 +1307,7 @@ describe('workers/repository/update/branch/index', () => { ...config, reuseExistingBranch: false, updatedArtifacts: [{ type: 'deletion', path: 'dummy' }], - } as BranchConfig; + } satisfies BranchConfig; expect(await branchWorker.processBranch(inconfig)).toEqual({ branchExists: true, updatesVerified: true, @@ -1343,7 +1346,7 @@ describe('workers/repository/update/branch/index', () => { ...config, dependencyDashboardChecks: { 'renovate/some-branch': 'true' }, updatedArtifacts: [{ type: 'deletion', path: 'dummy' }], - } as BranchConfig; + } satisfies BranchConfig; expect(await branchWorker.processBranch(inconfig)).toEqual({ branchExists: true, updatesVerified: true, @@ -1421,16 +1424,17 @@ describe('workers/repository/update/branch/index', () => { }, upgrades: [ { - ...getConfig(), depName: 'some-dep-name', postUpgradeTasks: { executionMode: 'update', commands: ['echo {{{versioning}}}', 'disallowed task'], fileFilters: ['modified_file', 'deleted_file'], }, - }, + branchName: 'renovate/some-branch', + manager: 'some-manager', + } satisfies BranchUpgradeConfig, ], - } as BranchConfig; + } satisfies BranchConfig; const result = await branchWorker.processBranch(inconfig); expect(result).toEqual({ branchExists: true, @@ -1606,7 +1610,7 @@ describe('workers/repository/update/branch/index', () => { }, }), ], - } as BranchConfig; + } satisfies BranchConfig; const result = await branchWorker.processBranch(inconfig); expect(result).toEqual({ branchExists: true, @@ -2134,7 +2138,7 @@ describe('workers/repository/update/branch/index', () => { const inconfig = { ...config, prCreation: 'not-pending', - } as BranchConfig; + } satisfies BranchConfig; expect(await branchWorker.processBranch(inconfig)).toEqual({ branchExists: true, updatesVerified: true, From b69fcda426ff3f788af7a14ae0cfe6b22d3dad3f Mon Sep 17 00:00:00 2001 From: Liora Milbaum Date: Sat, 11 Mar 2023 11:23:18 +0200 Subject: [PATCH 118/228] feat(asdf): Support pulumi plugin (#20852) --- lib/modules/manager/asdf/extract.spec.ts | 8 ++++++++ lib/modules/manager/asdf/upgradeable-tooling.ts | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/lib/modules/manager/asdf/extract.spec.ts b/lib/modules/manager/asdf/extract.spec.ts index 28a1d057aecb36..997e07c9c7a15d 100644 --- a/lib/modules/manager/asdf/extract.spec.ts +++ b/lib/modules/manager/asdf/extract.spec.ts @@ -77,6 +77,7 @@ ocaml 4.14.0 perl 5.37.5 php 8.1.12 pnpm 7.26.2 +pulumi 3.57.1 python 3.11.0 ruby 3.1.2 rust 1.64.0 @@ -316,6 +317,13 @@ dummy 1.2.3 depName: 'pnpm', versioning: 'semver', }, + { + currentValue: '3.57.1', + datasource: 'github-releases', + packageName: 'pulumi/pulumi', + depName: 'pulumi', + versioning: '^v(?\\S+)', + }, { currentValue: '3.11.0', datasource: 'github-tags', diff --git a/lib/modules/manager/asdf/upgradeable-tooling.ts b/lib/modules/manager/asdf/upgradeable-tooling.ts index 65960b4f58a07a..d9b2e7f79f6191 100644 --- a/lib/modules/manager/asdf/upgradeable-tooling.ts +++ b/lib/modules/manager/asdf/upgradeable-tooling.ts @@ -300,6 +300,14 @@ export const upgradeableTooling: Record = { versioning: semverVersioning.id, }, }, + pulumi: { + asdfPluginUrl: 'https://github.com/canha/asdf-pulumi.git', + config: { + datasource: GithubReleasesDatasource.id, + packageName: 'pulumi/pulumi', + versioning: '^v(?\\S+)', + }, + }, python: { asdfPluginUrl: 'https://github.com/danhper/asdf-python', config: { From a350104f9cdfab039c2816f286b063ae0fc245bc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 11 Mar 2023 09:26:01 +0000 Subject: [PATCH 119/228] build(deps): update dependency @renovatebot/osv-offline to v1.2.2 (#20868) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 17 ++++++----------- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index e1e85972c6bba6..579d43da15f1a4 100644 --- a/package.json +++ b/package.json @@ -156,7 +156,7 @@ "@opentelemetry/sdk-trace-node": "1.9.1", "@opentelemetry/semantic-conventions": "1.9.1", "@qnighy/marshal": "0.1.3", - "@renovatebot/osv-offline": "1.2.1", + "@renovatebot/osv-offline": "1.2.2", "@renovatebot/pep440": "2.1.13", "@renovatebot/ruby-semver": "2.1.9", "@sindresorhus/is": "4.6.0", diff --git a/yarn.lock b/yarn.lock index e545e98636908e..7ae6dc48f63f47 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2490,17 +2490,17 @@ dependencies: "@seald-io/nedb" "^4.0.1" -"@renovatebot/osv-offline@1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@renovatebot/osv-offline/-/osv-offline-1.2.1.tgz#660be0bb36e75115be01e35e88c5434232037486" - integrity sha512-qIaG49oXvH9qsafa+0Gn2xdDAqj66GeKIIY7Zt1qydBhpMpiWWF53EKn2Q2b3zXAs8ldVjUtf5Rd8dLyklYSkg== +"@renovatebot/osv-offline@1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@renovatebot/osv-offline/-/osv-offline-1.2.2.tgz#7efd34c3f0801a49b3b729280a405a5037570a47" + integrity sha512-LBgZcsH1c9ux+ZbPIm5lOWfmiCXLtmaodWgVUbSlVWe564kMNnDyrOpi2ovFSLKfOlWHMQoixX3qUk0L1oczjA== dependencies: "@octokit/rest" "^19.0.7" "@renovatebot/osv-offline-db" "1.3.2" adm-zip "~0.5.10" fs-extra "^11.1.0" got "^11.8.6" - luxon "^3.2.1" + luxon "^3.3.0" "@renovatebot/pep440@2.1.13": version "2.1.13" @@ -7232,16 +7232,11 @@ lru-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1: resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.1.tgz#4716408dec51d5d0104732647f584d1f6738b109" integrity sha512-8/HcIENyQnfUTCDizRu9rrDyG6XG/21M4X7/YEGZeD76ZJilFPAUVb/2zysFf7VVO1LEjCDFyHp8pMMvozIrvg== -luxon@3.3.0: +luxon@3.3.0, luxon@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.3.0.tgz#d73ab5b5d2b49a461c47cedbc7e73309b4805b48" integrity sha512-An0UCfG/rSiqtAIiBPO0Y9/zAnHUZxAMiCpTd5h2smgsj7GGmcenvrvww2cqNA8/4A5ZrD1gJpHN2mIHZQF+Mg== -luxon@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.2.1.tgz#14f1af209188ad61212578ea7e3d518d18cee45f" - integrity sha512-QrwPArQCNLAKGO/C+ZIilgIuDnEnKx5QYODdDtbFaxzsbZcc/a7WFq7MhsVYgRlwawLtvOUESTlfJ+hc/USqPg== - make-dir@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" From 466af47fd5c532fc7939fb2e4ff34972bbebf8a6 Mon Sep 17 00:00:00 2001 From: Adam Setch Date: Sat, 11 Mar 2023 05:28:04 -0500 Subject: [PATCH 120/228] docs: update major platform features not supported (#20869) --- docs/usage/faq.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/usage/faq.md b/docs/usage/faq.md index 49e975a179ede3..4fda340ee3c187 100644 --- a/docs/usage/faq.md +++ b/docs/usage/faq.md @@ -42,9 +42,10 @@ Some major platform features are not supported at all by Renovate. | Feature name | Platform | See Renovate issue(s) | | --------------------------------------- | ----------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Jira issues | BitBucket | [#3796](https://github.com/renovatebot/renovate/issues/3796) | +| Jira issues | Bitbucket | [#20568](https://github.com/renovatebot/renovate/issues/20568) | +| Jira issues | Bitbucket Server | [#3796](https://github.com/renovatebot/renovate/issues/3796) | | Merge trains | GitLab | [#5573](https://github.com/renovatebot/renovate/issues/5573) | -| Configurable merge strategy and message | Only BitBucket, Forgejo and Gitea for now | [#10867](https://github.com/renovatebot/renovate/issues/10867) [#10869](https://github.com/renovatebot/renovate/issues/10869) [#10870](https://github.com/renovatebot/renovate/issues/10870) | +| Configurable merge strategy and message | Only Bitbucket, Forgejo and Gitea for now | [#10867](https://github.com/renovatebot/renovate/issues/10867) [#10869](https://github.com/renovatebot/renovate/issues/10869) [#10870](https://github.com/renovatebot/renovate/issues/10870) | ## What is this `main` branch I see in the documentation? From d760c2f4cb3317e0595681531c329c1a1406ef8e Mon Sep 17 00:00:00 2001 From: Adam Setch Date: Sat, 11 Mar 2023 05:28:26 -0500 Subject: [PATCH 121/228] docs(platform/bitbucket): update header to be consistent with other platforms (#20870) --- lib/modules/platform/bitbucket-server/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/modules/platform/bitbucket-server/index.md b/lib/modules/platform/bitbucket-server/index.md index 002f70e20c30fd..b4f27e0c243967 100644 --- a/lib/modules/platform/bitbucket-server/index.md +++ b/lib/modules/platform/bitbucket-server/index.md @@ -1,4 +1,4 @@ -# Bitbucket Server Support +# Bitbucket Server ## Authentication From d0228ebddd98913079048a99b2b73b3453bb8637 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 11 Mar 2023 11:52:50 +0000 Subject: [PATCH 122/228] build(deps): update dependency zod to v3.21.0 (#20871) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 579d43da15f1a4..1e7502189ec3d1 100644 --- a/package.json +++ b/package.json @@ -240,7 +240,7 @@ "validate-npm-package-name": "5.0.0", "vuln-vects": "1.1.0", "xmldoc": "1.2.0", - "zod": "3.20.6" + "zod": "3.21.0" }, "optionalDependencies": { "re2": "1.18.0" diff --git a/yarn.lock b/yarn.lock index 7ae6dc48f63f47..142261c8d74c86 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10456,10 +10456,10 @@ yocto-queue@^1.0.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== -zod@3.20.6: - version "3.20.6" - resolved "https://registry.yarnpkg.com/zod/-/zod-3.20.6.tgz#2f2f08ff81291d47d99e86140fedb4e0db08361a" - integrity sha512-oyu0m54SGCtzh6EClBVqDDlAYRz4jrVtKwQ7ZnsEmMI9HnzuZFj8QFwAY1M5uniIYACdGvv0PBWPF2kO0aNofA== +zod@3.21.0: + version "3.21.0" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.21.0.tgz#9e3cbbf741071bfed9c000d2b4e64d4d97291d12" + integrity sha512-UYdykTcVxB6lfdyLzAqLyyYAlOcpoluECvjsdoaqfQmz9p+3LRaIqYcNiL/J2kFYp66fBM8wwBvIGVEjq7KtZw== zwitch@^1.0.0: version "1.0.5" From 06feaaabaf49b31eb0c279ba1d59562130cbb18f Mon Sep 17 00:00:00 2001 From: Adam Setch Date: Sat, 11 Mar 2023 07:50:32 -0500 Subject: [PATCH 123/228] docs(platform/bitbucket): update requiring implementation section (#20863) --- lib/modules/platform/bitbucket/index.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/lib/modules/platform/bitbucket/index.md b/lib/modules/platform/bitbucket/index.md index 68fdfe608e01e4..1985939353564e 100644 --- a/lib/modules/platform/bitbucket/index.md +++ b/lib/modules/platform/bitbucket/index.md @@ -29,7 +29,3 @@ Remember to: - Adding assignees to PRs not supported (does not seem to be a Bitbucket concept) - `automergeStrategy=rebase` not supported by BitBucket Cloud, see [Jira issue BCLOUD-16610](https://jira.atlassian.com/browse/BCLOUD-16610) - -## Features requiring implementation - -- Creating issues not implemented yet, e.g. when there is a config error From eee2b0534aca146782c08d3f396ff5e462c76da2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 11 Mar 2023 15:49:22 +0000 Subject: [PATCH 124/228] build(deps): update dependency simple-git to v3.17.0 (#20874) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 1e7502189ec3d1..3588cab572467d 100644 --- a/package.json +++ b/package.json @@ -230,7 +230,7 @@ "semver-stable": "3.0.0", "semver-utils": "1.1.4", "shlex": "2.1.2", - "simple-git": "3.16.1", + "simple-git": "3.17.0", "slugify": "1.6.5", "source-map-support": "0.5.21", "traverse": "0.6.7", diff --git a/yarn.lock b/yarn.lock index 142261c8d74c86..c37d274c74af37 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9270,10 +9270,10 @@ signale@^1.2.1: figures "^2.0.0" pkg-conf "^2.1.0" -simple-git@3.16.1: - version "3.16.1" - resolved "https://registry.yarnpkg.com/simple-git/-/simple-git-3.16.1.tgz#b67f18cbd3c68bbc4b9177ed49256afe51f12d47" - integrity sha512-xzRxMKiy1zEYeHGXgAzvuXffDS0xgsq07Oi4LWEEcVH29vLpcZ2tyQRWyK0NLLlCVaKysZeem5tC1qHEOxsKwA== +simple-git@3.17.0: + version "3.17.0" + resolved "https://registry.yarnpkg.com/simple-git/-/simple-git-3.17.0.tgz#1a961fa43f697b4e2391cf34c8a0554ef84fed8e" + integrity sha512-JozI/s8jr3nvLd9yn2jzPVHnhVzt7t7QWfcIoDcqRIGN+f1IINGv52xoZti2kkYfoRhhRvzMSNPfogHMp97rlw== dependencies: "@kwsites/file-exists" "^1.1.1" "@kwsites/promise-deferred" "^1.1.1" From 3390c34c6d082ce66397b92c01b18592c2280a58 Mon Sep 17 00:00:00 2001 From: Jamie Magee Date: Sat, 11 Mar 2023 21:51:10 -0800 Subject: [PATCH 125/228] chore(tsconfig): target `es2022` (#20880) --- tsconfig.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tsconfig.json b/tsconfig.json index eae7305558df3b..adfe40a1bf5565 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -5,7 +5,7 @@ "strictNullChecks": true, "outDir": "./dist", /* https://github.com/microsoft/TypeScript/wiki/Node-Target-Mapping */ - "target": "es2020", + "target": "es2022", "module": "commonjs", "sourceMap": true, "allowSyntheticDefaultImports": true, @@ -16,7 +16,7 @@ "experimentalDecorators": true, "useUnknownInCatchVariables": false /* we aren't prepared for enabling this by default since ts 4.4*/, "isolatedModules": true /* required for esbuild */, - "lib": ["es2020"], + "lib": ["es2022"], "types": ["node", "jest-extended", "expect-more-jest"], "allowJs": true, "checkJs": true, From 8b23f0ba57768b7a5f4fe050cfa9b5281eee8a73 Mon Sep 17 00:00:00 2001 From: Jamie Magee Date: Sat, 11 Mar 2023 21:52:19 -0800 Subject: [PATCH 126/228] refactor: safely parse decrypted config (#20879) --- lib/config/decrypt.ts | 14 ++++++++++++-- lib/config/schema.ts | 7 +++++++ 2 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 lib/config/schema.ts diff --git a/lib/config/decrypt.ts b/lib/config/decrypt.ts index 65099de4aaabf9..660965fc388a12 100644 --- a/lib/config/decrypt.ts +++ b/lib/config/decrypt.ts @@ -6,6 +6,7 @@ import { maskToken } from '../util/mask'; import { regEx } from '../util/regex'; import { addSecretForSanitizing } from '../util/sanitize'; import { GlobalConfig } from './global'; +import { DecryptedObject } from './schema'; import type { RenovateConfig } from './types'; export async function tryDecryptPgp( @@ -92,8 +93,17 @@ export async function tryDecrypt( const decryptedObjStr = await tryDecryptPgp(privateKey, encryptedStr); if (decryptedObjStr) { try { - const decryptedObj = JSON.parse(decryptedObjStr); - const { o: org, r: repo, v: value } = decryptedObj; + const decryptedObj = DecryptedObject.safeParse( + JSON.parse(decryptedObjStr) + ); + // istanbul ignore if + if (!decryptedObj.success) { + const error = new Error('config-validation'); + error.validationError = `Could not parse decrypted config.`; + throw error; + } + + const { o: org, r: repo, v: value } = decryptedObj.data; if (is.nonEmptyString(value)) { if (is.nonEmptyString(org)) { const orgName = org.replace(regEx(/\/$/), ''); // Strip trailing slash diff --git a/lib/config/schema.ts b/lib/config/schema.ts new file mode 100644 index 00000000000000..7a2661c3690112 --- /dev/null +++ b/lib/config/schema.ts @@ -0,0 +1,7 @@ +import { z } from 'zod'; + +export const DecryptedObject = z.object({ + o: z.string().optional(), + r: z.string().optional(), + v: z.string().optional(), +}); From cbbeecbefcc9e4582e959057469af9de6cffa7a4 Mon Sep 17 00:00:00 2001 From: Jamie Magee Date: Sat, 11 Mar 2023 21:53:06 -0800 Subject: [PATCH 127/228] refactor: satisfy types for `unknown` arrays (#20878) --- lib/config/migrations/custom/base-branch-migration.ts | 8 +++++++- lib/config/migrations/custom/packages-migration.ts | 6 ++++-- lib/config/migrations/custom/path-rules-migration.ts | 6 ++++-- lib/config/migrations/custom/schedule-migration.ts | 2 +- lib/util/url.ts | 5 ++--- 5 files changed, 18 insertions(+), 9 deletions(-) diff --git a/lib/config/migrations/custom/base-branch-migration.ts b/lib/config/migrations/custom/base-branch-migration.ts index 468bbd8083db59..3a1e0494d3b50c 100644 --- a/lib/config/migrations/custom/base-branch-migration.ts +++ b/lib/config/migrations/custom/base-branch-migration.ts @@ -1,3 +1,4 @@ +import is from '@sindresorhus/is'; import { AbstractMigration } from '../base/abstract-migration'; export class BaseBranchMigration extends AbstractMigration { @@ -5,6 +6,11 @@ export class BaseBranchMigration extends AbstractMigration { override readonly propertyName = 'baseBranch'; override run(value: unknown): void { - this.setSafely('baseBranches', Array.isArray(value) ? value : [value]); + if (is.array(value)) { + this.setSafely('baseBranches', value); + } + if (is.string(value)) { + this.setSafely('baseBranches', [value]); + } } } diff --git a/lib/config/migrations/custom/packages-migration.ts b/lib/config/migrations/custom/packages-migration.ts index b26d1bdbb842c8..8580b1e5f976f2 100644 --- a/lib/config/migrations/custom/packages-migration.ts +++ b/lib/config/migrations/custom/packages-migration.ts @@ -1,3 +1,5 @@ +import is from '@sindresorhus/is'; +import type { PackageRule } from '../../types'; import { AbstractMigration } from '../base/abstract-migration'; export class PackagesMigration extends AbstractMigration { @@ -7,8 +9,8 @@ export class PackagesMigration extends AbstractMigration { override run(value: unknown): void { const packageRules = this.get('packageRules'); - let newPackageRules = Array.isArray(packageRules) ? packageRules : []; - if (Array.isArray(value)) { + let newPackageRules = is.array(packageRules) ? packageRules : []; + if (is.array(value)) { newPackageRules = newPackageRules.concat(value); } this.setHard('packageRules', newPackageRules); diff --git a/lib/config/migrations/custom/path-rules-migration.ts b/lib/config/migrations/custom/path-rules-migration.ts index 1aaff3d89f44b1..a49b149c99f9a2 100644 --- a/lib/config/migrations/custom/path-rules-migration.ts +++ b/lib/config/migrations/custom/path-rules-migration.ts @@ -1,3 +1,5 @@ +import is from '@sindresorhus/is'; +import type { PackageRule } from '../../types'; import { AbstractMigration } from '../base/abstract-migration'; export class PathRulesMigration extends AbstractMigration { @@ -7,10 +9,10 @@ export class PathRulesMigration extends AbstractMigration { override run(value: unknown): void { const packageRules = this.get('packageRules'); - if (Array.isArray(value)) { + if (is.array(value)) { this.setHard( 'packageRules', - Array.isArray(packageRules) ? packageRules.concat(value) : value + is.array(packageRules) ? packageRules.concat(value) : value ); } } diff --git a/lib/config/migrations/custom/schedule-migration.ts b/lib/config/migrations/custom/schedule-migration.ts index 3d5bd434ecb082..6ccbb06067b8a5 100644 --- a/lib/config/migrations/custom/schedule-migration.ts +++ b/lib/config/migrations/custom/schedule-migration.ts @@ -13,7 +13,7 @@ export class ScheduleMigration extends AbstractMigration { if (is.string(value)) { schedules = [value]; } - if (Array.isArray(value)) { + if (is.array(value)) { schedules = [...value]; } // split 'and' diff --git a/lib/util/url.ts b/lib/util/url.ts index fda64af82b880b..7d4c1551d819d2 100644 --- a/lib/util/url.ts +++ b/lib/util/url.ts @@ -68,7 +68,7 @@ export function replaceUrlPath(baseUrl: string | URL, path: string): string { export function getQueryString(params: Record): string { const usp = new URLSearchParams(); for (const [k, v] of Object.entries(params)) { - if (Array.isArray(v)) { + if (is.array(v)) { for (const item of v) { usp.append(k, item.toString()); } @@ -76,8 +76,7 @@ export function getQueryString(params: Record): string { usp.append(k, v.toString()); } } - const res = usp.toString(); - return res; + return usp.toString(); } export function validateUrl(url?: string, httpOnly = true): boolean { From 1567386f50a7c57f6c322dceef1c528e04f615d7 Mon Sep 17 00:00:00 2001 From: Jamie Magee Date: Sat, 11 Mar 2023 21:54:12 -0800 Subject: [PATCH 128/228] refactor: safely parse `Pipfile.lock` (#20825) --- lib/modules/manager/pipenv/artifacts.ts | 40 ++++++++++++++++--------- lib/modules/manager/pipenv/schema.ts | 24 +++++++++++++++ 2 files changed, 50 insertions(+), 14 deletions(-) create mode 100644 lib/modules/manager/pipenv/schema.ts diff --git a/lib/modules/manager/pipenv/artifacts.ts b/lib/modules/manager/pipenv/artifacts.ts index 0e7e6909da100c..e6959984718669 100644 --- a/lib/modules/manager/pipenv/artifacts.ts +++ b/lib/modules/manager/pipenv/artifacts.ts @@ -15,11 +15,12 @@ import type { UpdateArtifactsConfig, UpdateArtifactsResult, } from '../types'; +import { PipfileLockSchema } from './schema'; function getPythonConstraint( existingLockFileContent: string, config: UpdateArtifactsConfig -): string | undefined | null { +): string | undefined { const { constraints = {} } = config; const { python } = constraints; @@ -28,14 +29,20 @@ function getPythonConstraint( return python; } try { - const pipfileLock = JSON.parse(existingLockFileContent); - if (pipfileLock?._meta?.requires?.python_version) { - const pythonVersion: string = pipfileLock._meta.requires.python_version; + const result = PipfileLockSchema.safeParse( + JSON.parse(existingLockFileContent) + ); + // istanbul ignore if: not easily testable + if (!result.success) { + logger.warn({ error: result.error }, 'Invalid Pipfile.lock'); + return undefined; + } + if (result.data._meta?.requires?.python_version) { + const pythonVersion = result.data._meta.requires.python_version; return `== ${pythonVersion}.*`; } - if (pipfileLock?._meta?.requires?.python_full_version) { - const pythonFullVersion: string = - pipfileLock._meta.requires.python_full_version; + if (result.data._meta?.requires?.python_full_version) { + const pythonFullVersion = result.data._meta.requires.python_full_version; return `== ${pythonFullVersion}`; } } catch (err) { @@ -56,14 +63,19 @@ function getPipenvConstraint( return pipenv; } try { - const pipfileLock = JSON.parse(existingLockFileContent); - if (pipfileLock?.default?.pipenv?.version) { - const pipenvVersion: string = pipfileLock.default.pipenv.version; - return pipenvVersion; + const result = PipfileLockSchema.safeParse( + JSON.parse(existingLockFileContent) + ); + // istanbul ignore if: not easily testable + if (!result.success) { + logger.warn({ error: result.error }, 'Invalid Pipfile.lock'); + return ''; + } + if (result.data.default?.pipenv?.version) { + return result.data.default.pipenv.version; } - if (pipfileLock?.develop?.pipenv?.version) { - const pipenvVersion: string = pipfileLock.develop.pipenv.version; - return pipenvVersion; + if (result.data.develop?.pipenv?.version) { + return result.data.develop.pipenv.version; } } catch (err) { // Do nothing diff --git a/lib/modules/manager/pipenv/schema.ts b/lib/modules/manager/pipenv/schema.ts new file mode 100644 index 00000000000000..a57cac2148fdce --- /dev/null +++ b/lib/modules/manager/pipenv/schema.ts @@ -0,0 +1,24 @@ +import { z } from 'zod'; + +const PipfileLockEntrySchema = z + .record( + z.string(), + z.object({ + version: z.string().optional(), + }) + ) + .optional(); +export const PipfileLockSchema = z.object({ + _meta: z + .object({ + requires: z + .object({ + python_version: z.string().optional(), + python_full_version: z.string().optional(), + }) + .optional(), + }) + .optional(), + default: PipfileLockEntrySchema, + develop: PipfileLockEntrySchema, +}); From a44a815e1ecce387b89e42e6ba5633e46b57bb7e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 12 Mar 2023 09:13:03 +0000 Subject: [PATCH 129/228] docs: update references to renovate/renovate to v35 (#20883) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- docs/usage/docker.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage/docker.md b/docs/usage/docker.md index 98ebc8e8167cff..992af1ddff86ba 100644 --- a/docs/usage/docker.md +++ b/docs/usage/docker.md @@ -388,7 +388,7 @@ To get access to the token a custom Renovate Docker image is needed that include The Dockerfile to create such an image can look like this: ```Dockerfile -FROM renovate/renovate:34.152.5 +FROM renovate/renovate:35.1.2 # Include the "Docker tip" which you can find here https://cloud.google.com/sdk/docs/install # under "Installation" for "Debian/Ubuntu" RUN ... From 88896fd8926a9b48656c21c8da175ab1c4dc1ae6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 12 Mar 2023 12:33:53 +0100 Subject: [PATCH 130/228] chore(deps): update dependency @types/node to v18 (#20882) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 3588cab572467d..f1315f821706d2 100644 --- a/package.json +++ b/package.json @@ -279,7 +279,7 @@ "@types/marshal": "0.5.1", "@types/moo": "0.5.5", "@types/nock": "10.0.3", - "@types/node": "16.18.14", + "@types/node": "18.14.6", "@types/parse-link-header": "2.0.1", "@types/semver": "7.3.13", "@types/semver-stable": "3.0.0", diff --git a/yarn.lock b/yarn.lock index c37d274c74af37..e433d15930336e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3058,10 +3058,10 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-18.14.5.tgz#4a13a6445862159303fc38586598a9396fc408b3" integrity sha512-CRT4tMK/DHYhw1fcCEBwME9CSaZNclxfzVMe7GsO6ULSwsttbj70wSiX6rZdIjGblu93sTJxLdhNIT85KKI7Qw== -"@types/node@16.18.14": - version "16.18.14" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.14.tgz#5465ce598486a703caddbefe8603f8a2cffa3461" - integrity sha512-wvzClDGQXOCVNU4APPopC2KtMYukaF1MN/W3xAmslx22Z4/IF1/izDMekuyoUlwfnDHYCIZGaj7jMwnJKBTxKw== +"@types/node@18.14.6": + version "18.14.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.14.6.tgz#ae1973dd2b1eeb1825695bb11ebfb746d27e3e93" + integrity sha512-93+VvleD3mXwlLI/xASjw0FzKcwzl3OdTCzm1LaRfqgS21gfFtK3zDXM5Op9TeeMsJVOaJ2VRDpT9q4Y3d0AvA== "@types/node@^13.7.0": version "13.13.52" From e09153b6be206ece982d4544d43f923e946713de Mon Sep 17 00:00:00 2001 From: Adam Setch Date: Sun, 12 Mar 2023 08:50:16 -0400 Subject: [PATCH 131/228] feat: support name only replacements (#20629) Co-authored-by: Michael Kriese --- .../lookup/__snapshots__/index.spec.ts.snap | 30 +--- .../repository/process/lookup/index.spec.ts | 155 +++++++++++++++--- .../repository/process/lookup/index.ts | 24 +++ 3 files changed, 159 insertions(+), 50 deletions(-) diff --git a/lib/workers/repository/process/lookup/__snapshots__/index.spec.ts.snap b/lib/workers/repository/process/lookup/__snapshots__/index.spec.ts.snap index 7aa6e537ce89d7..e913e5426085b9 100644 --- a/lib/workers/repository/process/lookup/__snapshots__/index.spec.ts.snap +++ b/lib/workers/repository/process/lookup/__snapshots__/index.spec.ts.snap @@ -8,7 +8,7 @@ exports[`workers/repository/process/lookup/index .lookupUpdates() handles digest "fixedVersion": "8.0.0", "homepage": undefined, "isSingleVersion": true, - "registryUrl": undefined, + "registryUrl": "https://index.docker.io", "sourceUrl": "https://github.com/nodejs/node", "updates": [ { @@ -54,7 +54,7 @@ exports[`workers/repository/process/lookup/index .lookupUpdates() handles digest "dependencyUrl": undefined, "fixedVersion": "8.1.0", "homepage": undefined, - "registryUrl": undefined, + "registryUrl": "https://index.docker.io", "sourceUrl": "https://github.com/nodejs/node", "updates": [ { @@ -77,7 +77,7 @@ exports[`workers/repository/process/lookup/index .lookupUpdates() handles digest "fixedVersion": "8.0.0", "homepage": undefined, "isSingleVersion": true, - "registryUrl": undefined, + "registryUrl": "https://index.docker.io", "sourceUrl": "https://github.com/nodejs/node", "updates": [ { @@ -128,26 +128,6 @@ exports[`workers/repository/process/lookup/index .lookupUpdates() handles git su } `; -exports[`workers/repository/process/lookup/index .lookupUpdates() handles replacements 1`] = ` -{ - "changelogUrl": undefined, - "currentVersion": "1.4.1", - "dependencyUrl": undefined, - "fixedVersion": "1.4.1", - "homepage": undefined, - "registryUrl": "https://registry.npmjs.org", - "sourceUrl": "https://github.com/kriskowal/q", - "updates": [ - { - "newName": "r", - "newValue": "2.0.0", - "updateType": "replacement", - }, - ], - "versioning": "npm", - "warnings": [], -} -`; exports[`workers/repository/process/lookup/index .lookupUpdates() handles sourceUrl packageRules with version restrictions 1`] = ` { @@ -556,7 +536,7 @@ exports[`workers/repository/process/lookup/index .lookupUpdates() skips uncompat "fixedVersion": "8", "homepage": undefined, "isSingleVersion": true, - "registryUrl": undefined, + "registryUrl": "https://index.docker.io", "sourceUrl": "https://github.com/nodejs/node", "updates": [ { @@ -615,7 +595,7 @@ exports[`workers/repository/process/lookup/index .lookupUpdates() skips uncompat "fixedVersion": "8.1.0", "homepage": undefined, "isSingleVersion": true, - "registryUrl": undefined, + "registryUrl": "https://index.docker.io", "sourceUrl": "https://github.com/nodejs/node", "updates": [ { diff --git a/lib/workers/repository/process/lookup/index.spec.ts b/lib/workers/repository/process/lookup/index.spec.ts index 1efd5c8ae30f85..40f8e62f9970f1 100644 --- a/lib/workers/repository/process/lookup/index.spec.ts +++ b/lib/workers/repository/process/lookup/index.spec.ts @@ -1,6 +1,6 @@ import { Fixtures } from '../../../../../test/fixtures'; import * as httpMock from '../../../../../test/http-mock'; -import { getConfig, mocked, partial } from '../../../../../test/util'; +import { getConfig, partial } from '../../../../../test/util'; import { CONFIG_VALIDATION } from '../../../../constants/error-messages'; import { DockerDatasource } from '../../../../modules/datasource/docker'; import { GitRefsDatasource } from '../../../../modules/datasource/git-refs'; @@ -18,8 +18,6 @@ import * as githubGraphql from '../../../../util/github/graphql'; import type { LookupUpdateConfig } from './types'; import * as lookup from '.'; -jest.mock('../../../../modules/datasource/docker'); - const fixtureRoot = '../../../../config/npm'; const qJson = { ...Fixtures.getJson('01.json', fixtureRoot), @@ -33,8 +31,6 @@ const typescriptJson = Fixtures.get('typescript.json', fixtureRoot); const vueJson = Fixtures.get('vue.json', fixtureRoot); const webpackJson = Fixtures.get('webpack.json', fixtureRoot); -const docker = mocked(DockerDatasource.prototype); - let config: LookupUpdateConfig; describe('workers/repository/process/lookup/index', () => { @@ -43,7 +39,16 @@ describe('workers/repository/process/lookup/index', () => { 'getReleases' ); + const getDockerReleases = jest.spyOn( + DockerDatasource.prototype, + 'getReleases' + ); + + const getDockerDigest = jest.spyOn(DockerDatasource.prototype, 'getDigest'); + beforeEach(() => { + // TODO: fix wrong tests + jest.resetAllMocks(); // TODO: fix types #7154 config = partial(getConfig() as never); config.manager = 'npm'; @@ -1541,7 +1546,7 @@ describe('workers/repository/process/lookup/index', () => { config.packageName = 'node'; config.datasource = DockerDatasource.id; config.pinDigests = true; - docker.getReleases.mockResolvedValueOnce({ + getDockerReleases.mockResolvedValueOnce({ releases: [ { version: '8.0.0', @@ -1551,8 +1556,8 @@ describe('workers/repository/process/lookup/index', () => { }, ], }); - docker.getDigest.mockResolvedValueOnce('sha256:abcdef1234567890'); - docker.getDigest.mockResolvedValueOnce('sha256:0123456789abcdef'); + getDockerDigest.mockResolvedValueOnce('sha256:abcdef1234567890'); + getDockerDigest.mockResolvedValueOnce('sha256:0123456789abcdef'); const res = await lookup.lookupUpdates(config); expect(res).toMatchSnapshot({ currentVersion: '8.0.0', @@ -1578,7 +1583,7 @@ describe('workers/repository/process/lookup/index', () => { config.packageName = 'node'; config.versioning = dockerVersioningId; config.datasource = DockerDatasource.id; - docker.getReleases.mockResolvedValueOnce({ + getDockerReleases.mockResolvedValueOnce({ releases: [ { version: '8.1.0' }, { version: '8.1.5' }, @@ -1602,7 +1607,7 @@ describe('workers/repository/process/lookup/index', () => { config.packageName = 'node'; config.versioning = dockerVersioningId; config.datasource = DockerDatasource.id; - docker.getReleases.mockResolvedValueOnce({ + getDockerReleases.mockResolvedValueOnce({ registryUrl: 'https://index.docker.io', releases: [ { version: '8.1.0' }, @@ -1635,7 +1640,7 @@ describe('workers/repository/process/lookup/index', () => { config.packageName = 'node'; config.versioning = dockerVersioningId; config.datasource = DockerDatasource.id; - docker.getReleases.mockResolvedValueOnce({ + getDockerReleases.mockResolvedValueOnce({ releases: [ { version: '8.1.0' }, { version: '8.1.5' }, @@ -1659,7 +1664,7 @@ describe('workers/repository/process/lookup/index', () => { config.packageName = 'node'; config.datasource = DockerDatasource.id; config.pinDigests = true; - docker.getReleases.mockResolvedValueOnce({ + getDockerReleases.mockResolvedValueOnce({ releases: [ { version: '8.0.0', @@ -1669,7 +1674,7 @@ describe('workers/repository/process/lookup/index', () => { }, ], }); - docker.getDigest.mockResolvedValueOnce('sha256:abcdef1234567890'); + getDockerDigest.mockResolvedValueOnce('sha256:abcdef1234567890'); const res = await lookup.lookupUpdates(config); expect(res).toMatchSnapshot({ updates: [ @@ -1688,7 +1693,7 @@ describe('workers/repository/process/lookup/index', () => { config.packageName = 'node'; config.datasource = DockerDatasource.id; config.pinDigests = true; - docker.getReleases.mockResolvedValueOnce({ + getDockerReleases.mockResolvedValueOnce({ releases: [ { version: '8.0.0', @@ -1701,7 +1706,7 @@ describe('workers/repository/process/lookup/index', () => { }, ], }); - docker.getDigest.mockResolvedValueOnce('sha256:abcdef1234567890'); + getDockerDigest.mockResolvedValueOnce('sha256:abcdef1234567890'); const res = await lookup.lookupUpdates(config); expect(res).toMatchSnapshot({ updates: [ @@ -1720,7 +1725,7 @@ describe('workers/repository/process/lookup/index', () => { config.packageName = 'node'; config.datasource = DockerDatasource.id; config.pinDigests = true; - docker.getReleases.mockResolvedValueOnce({ + getDockerReleases.mockResolvedValueOnce({ releases: [ { version: '8.0.0', @@ -1733,7 +1738,7 @@ describe('workers/repository/process/lookup/index', () => { }, ], }); - docker.getDigest.mockResolvedValueOnce(null); + getDockerDigest.mockResolvedValueOnce(null); const res = await lookup.lookupUpdates(config); expect(res.updates).toHaveLength(0); }); @@ -1744,7 +1749,7 @@ describe('workers/repository/process/lookup/index', () => { config.datasource = DockerDatasource.id; config.currentDigest = 'sha256:zzzzzzzzzzzzzzz'; config.pinDigests = true; - docker.getReleases.mockResolvedValueOnce({ + getDockerReleases.mockResolvedValueOnce({ releases: [ { version: '8.0.0', @@ -1754,8 +1759,8 @@ describe('workers/repository/process/lookup/index', () => { }, ], }); - docker.getDigest.mockResolvedValueOnce('sha256:abcdef1234567890'); - docker.getDigest.mockResolvedValueOnce('sha256:0123456789abcdef'); + getDockerDigest.mockResolvedValueOnce('sha256:abcdef1234567890'); + getDockerDigest.mockResolvedValueOnce('sha256:0123456789abcdef'); const res = await lookup.lookupUpdates(config); expect(res).toMatchSnapshot({ updates: [ @@ -1779,7 +1784,7 @@ describe('workers/repository/process/lookup/index', () => { config.datasource = DockerDatasource.id; config.currentDigest = 'sha256:zzzzzzzzzzzzzzz'; config.pinDigests = true; - docker.getReleases.mockResolvedValueOnce({ + getDockerReleases.mockResolvedValueOnce({ releases: [ { version: 'alpine', @@ -1792,7 +1797,7 @@ describe('workers/repository/process/lookup/index', () => { }, ], }); - docker.getDigest.mockResolvedValueOnce('sha256:abcdef1234567890'); + getDockerDigest.mockResolvedValueOnce('sha256:abcdef1234567890'); const res = await lookup.lookupUpdates(config); expect(res).toMatchSnapshot({ updates: [ @@ -1841,7 +1846,102 @@ describe('workers/repository/process/lookup/index', () => { }); }); - it('handles replacements', async () => { + it('handles replacements - name only without pinDigests enabled', async () => { + config.packageName = 'openjdk'; + config.currentValue = '17.0.0'; + config.datasource = DockerDatasource.id; + config.versioning = dockerVersioningId; + // This config is normally set when packageRules are applied + config.replacementName = 'eclipse-temurin'; + getDockerReleases.mockResolvedValueOnce({ + releases: [ + { + version: '17.0.0', + }, + { + version: '18.0.0', + }, + ], + }); + + expect((await lookup.lookupUpdates(config)).updates).toMatchObject([ + { + updateType: 'replacement', + newName: 'eclipse-temurin', + newValue: '17.0.0', + }, + { + updateType: 'major', + newMajor: 18, + newValue: '18.0.0', + newVersion: '18.0.0', + }, + ]); + }); + + it('handles replacements - name only with pinDigests enabled', async () => { + config.packageName = 'openjdk'; + config.currentValue = '17.0.0'; + config.pinDigests = true; + config.datasource = DockerDatasource.id; + config.versioning = dockerVersioningId; + // This config is normally set when packageRules are applied + config.replacementName = 'eclipse-temurin'; + getDockerReleases.mockResolvedValueOnce({ + releases: [ + { + version: '17.0.0', + }, + { + version: '18.0.0', + }, + ], + }); + getDockerDigest.mockResolvedValueOnce('sha256:abcdef1234567890'); + getDockerDigest.mockResolvedValueOnce('sha256:0123456789abcdef'); + getDockerDigest.mockResolvedValueOnce('sha256:pin0987654321'); + + expect((await lookup.lookupUpdates(config)).updates).toMatchObject([ + { + updateType: 'replacement', + newName: 'eclipse-temurin', + newValue: '17.0.0', + newDigest: 'sha256:abcdef1234567890', + }, + { + updateType: 'major', + newMajor: 18, + newValue: '18.0.0', + newVersion: '18.0.0', + newDigest: 'sha256:0123456789abcdef', + }, + { + isPinDigest: true, + newDigest: 'sha256:pin0987654321', + newValue: '17.0.0', + updateType: 'pinDigest', + }, + ]); + }); + + it('handles replacements - name only no version/tag', async () => { + config.packageName = 'openjdk'; + config.currentValue = undefined; + config.datasource = DockerDatasource.id; + config.versioning = dockerVersioningId; + // This config is normally set when packageRules are applied + config.replacementName = 'eclipse-temurin'; + getDockerDigest.mockResolvedValueOnce('sha256:abcdef1234567890'); + expect((await lookup.lookupUpdates(config)).updates).toMatchObject([ + { + updateType: 'replacement', + newName: 'eclipse-temurin', + newValue: undefined, + }, + ]); + }); + + it('handles replacements - name and version', async () => { config.currentValue = '1.4.1'; config.packageName = 'q'; // This config is normally set when packageRules are applied @@ -1849,8 +1949,13 @@ describe('workers/repository/process/lookup/index', () => { config.replacementVersion = '2.0.0'; config.datasource = NpmDatasource.id; httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson); - const res = await lookup.lookupUpdates(config); - expect(res).toMatchSnapshot(); + expect((await lookup.lookupUpdates(config)).updates).toMatchObject([ + { + updateType: 'replacement', + newName: 'r', + newValue: '2.0.0', + }, + ]); }); it('rollback for invalid version to last stable version', async () => { diff --git a/lib/workers/repository/process/lookup/index.ts b/lib/workers/repository/process/lookup/index.ts index 522745e27a0a5a..a262baf9922a7f 100644 --- a/lib/workers/repository/process/lookup/index.ts +++ b/lib/workers/repository/process/lookup/index.ts @@ -156,6 +156,15 @@ export async function lookupUpdates( res.updates.push(rollback); } let rangeStrategy = getRangeStrategy(config); + + if (config.replacementName && !config.replacementVersion) { + res.updates.push({ + updateType: 'replacement', + newName: config.replacementName, + newValue: currentValue!, + }); + } + if (config.replacementName && config.replacementVersion) { res.updates.push({ updateType: 'replacement', @@ -335,6 +344,19 @@ export async function lookupUpdates( } else { delete res.skipReason; } + } else if ( + !currentValue && + config.replacementName && + !config.replacementVersion + ) { + logger.debug( + `Handle name-only replacement for ${packageName} without current version` + ); + res.updates.push({ + updateType: 'replacement', + newName: config.replacementName, + newValue: currentValue!, + }); } else { res.skipReason = 'invalid-value'; } @@ -427,6 +449,8 @@ export async function lookupUpdates( .filter((update) => update.newDigest !== null) .filter( (update) => + (update.newName && update.newName !== packageName) || + update.isReplacement || update.newValue !== currentValue || update.isLockfileUpdate || // TODO #7154 From 98be25f7871204e589d5048c0f353b38f5b0235a Mon Sep 17 00:00:00 2001 From: Adam Setch Date: Sun, 12 Mar 2023 08:50:54 -0400 Subject: [PATCH 132/228] feat(platform/bitbucket): add support for Bitbucket development branching model (#20860) Co-authored-by: Michael Kriese --- docs/usage/self-hosted-configuration.md | 8 +++ lib/config/options/index.ts | 8 +++ lib/modules/platform/bitbucket/index.spec.ts | 52 ++++++++++++++++++++ lib/modules/platform/bitbucket/index.ts | 23 ++++++++- lib/modules/platform/bitbucket/types.ts | 9 ++++ lib/modules/platform/types.ts | 1 + 6 files changed, 99 insertions(+), 2 deletions(-) diff --git a/docs/usage/self-hosted-configuration.md b/docs/usage/self-hosted-configuration.md index 61a3b3a44a7551..4c3c178ef7c660 100644 --- a/docs/usage/self-hosted-configuration.md +++ b/docs/usage/self-hosted-configuration.md @@ -139,6 +139,14 @@ For example: } ``` +## bbUseDevelopmentBranch + +By default, Renovate will use a repository's "main branch" (typically called `main` or `master`) as the "default branch". + +Configuring this to `true` means that Renovate will detect and use the Bitbucket [development branch](https://support.atlassian.com/bitbucket-cloud/docs/branch-a-repository/#The-branching-model) as defined by the repository's branching model. + +If the "development branch" is configured but the branch itself does not exist (e.g. it was deleted), Renovate will fall back to using the repository's "main branch". This fall back behavior matches that of the Bitbucket Cloud web interface. + ## binarySource Renovate often needs to use third-party binaries in its PRs, like `npm` to update `package-lock.json` or `go` to update `go.sum`. diff --git a/lib/config/options/index.ts b/lib/config/options/index.ts index 1ed247e6610519..162271a35abf0d 100644 --- a/lib/config/options/index.ts +++ b/lib/config/options/index.ts @@ -1623,6 +1623,14 @@ const options: RenovateOptions[] = [ default: true, supportedPlatforms: ['bitbucket', 'bitbucket-server'], }, + { + name: 'bbUseDevelopmentBranch', + description: `Use the repository's [development branch](https://support.atlassian.com/bitbucket-cloud/docs/branch-a-repository/#The-branching-model) as the repository's default branch.`, + type: 'boolean', + default: false, + supportedPlatforms: ['bitbucket'], + globalOnly: true, + }, // Automatic merging { name: 'automerge', diff --git a/lib/modules/platform/bitbucket/index.spec.ts b/lib/modules/platform/bitbucket/index.spec.ts index 8724afef6c061e..b81c7b809a9282 100644 --- a/lib/modules/platform/bitbucket/index.spec.ts +++ b/lib/modules/platform/bitbucket/index.spec.ts @@ -171,6 +171,58 @@ describe('modules/platform/bitbucket/index', () => { }); }); + describe('bbUseDevelopmentBranch', () => { + it('not enabled: defaults to using main branch', async () => { + httpMock + .scope(baseUrl) + .get('/2.0/repositories/some/repo') + .reply(200, { owner: {}, mainbranch: { name: 'master' } }); + + const res = await bitbucket.initRepo({ + repository: 'some/repo', + bbUseDevelopmentBranch: false, + }); + + expect(res.defaultBranch).toBe('master'); + }); + + it('enabled: uses development branch when development branch exists', async () => { + httpMock + .scope(baseUrl) + .get('/2.0/repositories/some/repo') + .reply(200, { owner: {}, mainbranch: { name: 'master' } }) + .get('/2.0/repositories/some/repo/branching-model') + .reply(200, { + development: { name: 'develop', branch: { name: 'develop' } }, + }); + + const res = await bitbucket.initRepo({ + repository: 'some/repo', + bbUseDevelopmentBranch: true, + }); + + expect(res.defaultBranch).toBe('develop'); + }); + + it('enabled: falls back to mainbranch if development branch does not exist', async () => { + httpMock + .scope(baseUrl) + .get('/2.0/repositories/some/repo') + .reply(200, { owner: {}, mainbranch: { name: 'master' } }) + .get('/2.0/repositories/some/repo/branching-model') + .reply(200, { + development: { name: 'develop' }, + }); + + const res = await bitbucket.initRepo({ + repository: 'some/repo', + bbUseDevelopmentBranch: true, + }); + + expect(res.defaultBranch).toBe('master'); + }); + }); + describe('getRepoForceRebase()', () => { it('always return false, since bitbucket does not support force rebase', async () => { const actual = await bitbucket.getRepoForceRebase(); diff --git a/lib/modules/platform/bitbucket/index.ts b/lib/modules/platform/bitbucket/index.ts index a4eaa4016a4093..efe7852211674c 100644 --- a/lib/modules/platform/bitbucket/index.ts +++ b/lib/modules/platform/bitbucket/index.ts @@ -39,6 +39,7 @@ import type { EffectiveReviewer, PagedResult, PrResponse, + RepoBranchingModel, RepoInfo, RepoInfoBody, } from './types'; @@ -159,6 +160,7 @@ export async function initRepo({ repository, cloneSubmodules, ignorePrAuthor, + bbUseDevelopmentBranch, }: RepoParams): Promise { logger.debug(`initRepo("${repository}")`); const opts = hostRules.find({ @@ -171,6 +173,7 @@ export async function initRepo({ ignorePrAuthor, } as Config; let info: RepoInfo; + let mainBranch: string; try { info = utils.repoInfoTransformer( ( @@ -179,7 +182,23 @@ export async function initRepo({ ) ).body ); - config.defaultBranch = info.mainbranch; + + mainBranch = info.mainbranch; + + if (bbUseDevelopmentBranch) { + // Fetch Bitbucket development branch + const developmentBranch = ( + await bitbucketHttp.getJson( + `/2.0/repositories/${repository}/branching-model` + ) + ).body.development?.branch?.name; + + if (developmentBranch) { + mainBranch = developmentBranch; + } + } + + config.defaultBranch = mainBranch; config = { ...config, @@ -221,7 +240,7 @@ export async function initRepo({ cloneSubmodules, }); const repoConfig: RepoResult = { - defaultBranch: info.mainbranch, + defaultBranch: mainBranch, isFork: info.isFork, repoFingerprint: repoFingerprint(info.uuid, defaults.endpoint), }; diff --git a/lib/modules/platform/bitbucket/types.ts b/lib/modules/platform/bitbucket/types.ts index 94e58f61673b61..7611dba4edd0aa 100644 --- a/lib/modules/platform/bitbucket/types.ts +++ b/lib/modules/platform/bitbucket/types.ts @@ -36,6 +36,15 @@ export interface RepoInfo { uuid: string; } +export interface RepoBranchingModel { + development: { + name: string; + branch?: { + name: string; + }; + }; +} + export interface BranchResponse { target: { hash: string; diff --git a/lib/modules/platform/types.ts b/lib/modules/platform/types.ts index dab52e1aa86c16..eeafd70cd235a4 100644 --- a/lib/modules/platform/types.ts +++ b/lib/modules/platform/types.ts @@ -42,6 +42,7 @@ export interface RepoParams { renovateUsername?: string; cloneSubmodules?: boolean; ignorePrAuthor?: boolean; + bbUseDevelopmentBranch?: boolean; } export interface PrDebugData { From 9dac34e7c1dd94cc1540489be3c05b1cd362da7d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 12 Mar 2023 13:02:17 +0000 Subject: [PATCH 133/228] fix(data): automatic update of static data (#20877) Co-authored-by: Renovate Bot Co-authored-by: Rhys Arkins --- data/azure-pipelines-marketplace-tasks.json | 4849 +++++++++++++++---- data/azure-pipelines-tasks.json | 267 +- data/ubuntu-distro-info.json | 12 +- 3 files changed, 4226 insertions(+), 902 deletions(-) diff --git a/data/azure-pipelines-marketplace-tasks.json b/data/azure-pipelines-marketplace-tasks.json index db8e9fc7a496fb..d639e845486d66 100644 --- a/data/azure-pipelines-marketplace-tasks.json +++ b/data/azure-pipelines-marketplace-tasks.json @@ -294,6 +294,7 @@ "1.1.2" ], "011b3046-0816-45da-b3f3-473a0fcda720": ["1.188.0"], + "014c9bfe-c595-42b2-ba14-9f43c2a0e265": ["0.1.0", "0.2.0"], "014d1f42-f7ad-4418-b165-5bf03802417e": [ "1.0.0", "1.0.1", @@ -312,7 +313,8 @@ "3.3.0", "3.4.0", "4.4.0", - "4.5.0" + "4.5.0", + "5.0.0" ], "015e2e58-9c77-4cbc-a9c1-a28158165365": [ "8.0.0", @@ -412,7 +414,8 @@ "0.9.7", "0.9.8", "0.9.9", - "0.9.10" + "0.9.10", + "0.9.11" ], "01b77e94-869c-3336-43a9-48b71236f652": ["1.1.0", "1.1.1", "1.1.2"], "01b93764-d406-44e8-b3b1-23ed72e65608": [ @@ -492,7 +495,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "025bc3d2-c942-42d2-9b76-97db7e884483": [ "1.0.0", @@ -512,6 +517,7 @@ "2.0.0", "2.1.0" ], + "02878cab-09e2-4482-9a15-1a89ac214211": ["23.1.0"], "028e3c65-1d7c-448e-b096-d5ee467ee6fb": [ "4.8.9", "4.9.1", @@ -552,6 +558,23 @@ "4.1.0", "4.1.1" ], + "02dbaba0-04f3-4c6e-a780-d0c4d36a7f8c": [ + "0.0.1", + "0.0.2", + "0.1.0", + "0.1.1", + "0.1.4", + "0.1.5", + "0.1.6", + "0.2.1", + "0.2.2", + "0.2.3", + "0.2.4", + "0.3.0", + "1.0.0", + "1.0.1", + "1.0.2" + ], "036278fe-8a47-426b-b5b3-bef05334db00": [ "1.40.4", "1.41.6", @@ -643,6 +666,7 @@ "1.0.17", "1.0.18" ], + "03ba9f80-945d-4c88-a1cc-ed830a5f1064": ["23.1.0"], "03cc3c90-4737-11e8-adef-bd824f485eb1": ["0.1.0", "1.0.0"], "03cc3c90-4737-11e8-adef-bd824f485eb2": [ "1.0.1", @@ -838,7 +862,8 @@ "8.5.0", "8.6.0", "8.7.0", - "8.8.0" + "8.8.0", + "8.9.0" ], "0477968a-4686-4790-bb4a-e1213a2e58a9": [ "0.0.34", @@ -956,7 +981,13 @@ "0.1.3", "0.1.4", "0.1.6", - "0.1.7" + "0.1.7", + "0.1.8", + "0.1.9", + "0.1.10", + "0.1.11", + "0.1.12", + "0.1.13" ], "05271a89-7eaa-44b1-bd54-ef67b3fc2f5a": [ "2.0.5", @@ -1545,6 +1576,11 @@ "1.6.28", "1.6.29" ], + "07a04851-f6d3-473a-82e1-e9026d0b5528": [ + "2.11.3447906", + "3.0.3513646", + "3.0.3517186" + ], "07a15c20-6352-1d11-abde-aa01c4d0331d": [ "1.3.1", "1.4.0", @@ -2848,6 +2884,15 @@ "2.1.1", "2.1.2" ], + "09d98ca8-a315-431a-bcb4-30c9c6d140ab": [ + "1.0.5", + "1.0.6", + "1.0.9", + "1.0.10", + "1.0.11", + "1.0.12", + "1.0.13" + ], "09ea8124-816f-4b89-8377-b45d2f6a54cb": ["0.1.0"], "09ecb8bf-a21a-47db-832f-8ec8a024a72c": ["0.4.1", "0.5.1", "0.7.1", "0.8.1"], "09ff8590-1518-11e9-a4df-5159632253af": [ @@ -2949,6 +2994,11 @@ "1.0.2", "1.0.3" ], + "0ae6f751-0884-4b80-8cb7-1686f59d4288": [ + "2.11.3447906", + "3.0.3513646", + "3.0.3517186" + ], "0b095fdd-8cb5-49a3-8b0e-45de609c0468": [ "1.20200821.23844", "1.20200821.24037", @@ -3374,9 +3424,11 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "0ddc42e1-3229-42ff-a166-c4360bb16337": ["1.1.7", "2.0.8"], + "0de688e2-4332-4beb-8985-19d105a4ec14": ["23.1.0"], "0df6b5b0-b606-11e6-adea-c19266564b12": ["0.1.0"], "0e0f3bf7-d96c-45d6-aa76-f9afb71fb77e": [ "0.0.0", @@ -3490,7 +3542,9 @@ "1.0.3094444", "1.0.3105315", "1.0.3206699", - "1.0.3214338" + "1.0.3214338", + "1.0.3445511", + "1.0.3517186" ], "0e2424a3-42b6-48f5-b3fa-ac6ed16d4c57": ["1.1.1", "1.2.0"], "0e248726-cf8b-5f52-a40a-6897276d1ea4": [ @@ -3541,6 +3595,7 @@ "0e707521-3c32-4eb6-a883-27ebb58c87ef": ["0.0.1", "0.0.2"], "0e89261f-39f4-4b26-90ca-bbdbb7bc34a0": ["1.1.4", "1.2.1"], "0e940403-af61-4ed1-a8fc-0f8c4d5fadad": ["0.1.0"], + "0e968cb0-6bce-11eb-8577-cd64038e734a": ["0.1.1"], "0efd1a58-b059-42a7-b3e9-cac0b996c975": ["0.3.20", "1.0.0", "1.0.10"], "0efd1a58-b059-42a7-b3e9-cac0b996c986": ["0.0.2", "1.0.12"], "0f091cb5-bc18-48f1-8e09-ac8b1639c139": [ @@ -3652,7 +3707,13 @@ "2.1.3", "3.0.0" ], - "0f6b6d8f-3f24-4c46-b7c4-4ee4100074d8": ["1.0.7", "1.0.16", "2.0.2"], + "0f6b6d8f-3f24-4c46-b7c4-4ee4100074d8": [ + "1.0.7", + "1.0.16", + "2.0.2", + "2.0.3", + "2.0.4" + ], "0f73780c-5793-4c97-a2e6-6835cb554c42": [ "0.0.1", "0.0.2", @@ -4729,6 +4790,7 @@ "1.6.3", "1.6.4" ], + "12b85747-ff1c-62e7-9c4b-f49360eea7de": ["1.3.1", "1.3.2"], "12b98867-a15b-4056-aee5-cc40e3b1c4d1": [ "0.1.0", "0.2.0", @@ -5012,6 +5074,7 @@ "0.90.8", "0.90.9" ], + "1410d014-3cf1-4210-9f37-499c93af86cf": ["1.0.3", "1.0.4"], "1416022c-c995-4e2c-85ec-0cd88e54a2b0": [ "0.2.32", "0.2.33", @@ -5090,7 +5153,9 @@ "1.29.0", "1.30.0", "1.30.1", - "1.31.0" + "1.31.0", + "1.32.0", + "1.33.0" ], "14e92359-f063-4955-b3c0-96a5523b71f4": [ "0.8.992", @@ -5553,6 +5618,8 @@ "4.30.0", "4.31.0", "4.32.0", + "4.33.0", + "4.34.0", "5.0.0", "5.1.0", "5.1.1", @@ -5565,7 +5632,10 @@ "5.6.1", "5.7.0", "5.8.0", - "5.9.0" + "5.9.0", + "5.10.0", + "5.11.0", + "5.11.1" ], "15d52d16-71e4-4d11-997f-9d51ed147255": [ "1.0.0", @@ -5669,6 +5739,8 @@ "3.1.109", "3.1.131", "3.1.134", + "3.1.465", + "3.1.502", "4.0.371", "4.0.375", "4.0.376", @@ -5699,11 +5771,15 @@ "4.3.109", "4.3.131", "4.3.134", + "4.3.465", + "4.3.502", "5.0.57", "5.0.66", "5.0.109", "5.0.131", - "5.0.134" + "5.0.134", + "5.0.465", + "5.0.502" ], "162d7b40-e488-4d66-a1f5-d04baa47b607": ["0.1.0", "0.1.1", "0.1.2", "0.1.3"], "16358c16-3185-4979-8375-845dedcb6b8d": [ @@ -5714,7 +5790,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "1644f10b-352c-43f3-9957-8c158759ba7c": [ "1.0.0", @@ -5917,7 +5995,14 @@ "0.3.4", "0.3.6", "0.3.7", - "0.3.8" + "0.3.8", + "0.3.9", + "0.4.0", + "0.4.1", + "0.4.2", + "0.4.3", + "0.4.4", + "0.4.5" ], "16f6dae7-e6ef-4629-ae75-7988463cb6a6": [ "0.0.1", @@ -5948,7 +6033,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "17068310-10c3-11e8-aa64-03200040d282": [ "0.1.0", @@ -6102,6 +6188,8 @@ "3.5.149", "3.5.161", "3.5.178", + "3.5.220", + "3.5.260", "4.0.8", "4.0.50", "4.0.89", @@ -6112,7 +6200,9 @@ "4.0.142", "4.0.149", "4.0.161", - "4.0.178" + "4.0.178", + "4.0.220", + "4.0.260" ], "176eb220-fd8f-11e6-a0f0-bbfbe2a1e49f": ["1.0.0"], "177d6c30-0b47-11e9-a403-978c0ed4b9ed": [ @@ -6228,7 +6318,9 @@ "4.3.66", "4.3.109", "4.3.131", - "4.3.134" + "4.3.134", + "4.3.465", + "4.3.502" ], "17a0f73c-f8e6-4fc5-a759-4d560031ef75": ["0.1.0"], "17b5420c-0773-453e-901a-a94bf52e37eb": ["1.3.0", "1.3.1", "1.3.2"], @@ -6418,7 +6510,8 @@ "0.0.52", "0.0.53", "0.0.54", - "0.0.58" + "0.0.58", + "0.0.61" ], "191824ed-bcbb-499f-8752-a7d192fba217": [ "2.0.1", @@ -6658,7 +6751,7 @@ "1.0.11", "1.0.12" ], - "1a9ec20c-e108-11ec-9d64-0242ac120002": ["1.2.0", "1.3.0"], + "1a9ec20c-e108-11ec-9d64-0242ac120002": ["1.2.0", "1.3.0", "1.4.0", "1.4.1"], "1adb005a-c277-4f0f-9a72-19c807cac1fe": ["1.4.0", "1.6.0"], "1ae5638b-b276-4e0c-9b98-0732eb235935": ["0.1.0"], "1ae9cc7b-29a4-4614-82df-00dc3ea74cd0": [ @@ -6725,7 +6818,10 @@ "1.15.1239", "1.15.1261", "1.23.1279", - "1.24.1281" + "1.24.1281", + "1.25.1302", + "1.26.1308", + "1.27.1315" ], "1b03a764-f8b0-4eec-81bf-5abe1a15afff": [ "1.0.1", @@ -6735,7 +6831,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "1b1e3b29-38c5-4ee5-8ddf-da4cba27964b": [ "0.1.0", @@ -6831,6 +6929,7 @@ "2.0.1" ], "1c4d173c-798c-4636-a842-2da42eb2c20e": ["0.2.0", "0.2.5"], + "1c8b66db-ae40-43b9-9b9b-de7f46787790": ["0.1.0"], "1c99a02e-9cd4-48b7-acd9-589376cb874d": [ "1.0.1", "2.0.0", @@ -7057,6 +7156,7 @@ "0.2.4", "0.2.5" ], + "1da3f80e-d282-45de-ae53-43ea9e3451a8": ["23.1.0"], "1da752a0-03bf-429c-a239-b5f06d43d629": [ "1.420.10", "1.420.11", @@ -7589,6 +7689,7 @@ "1.2.176", "1.2.178" ], + "1ec603d8-0286-44b9-bf6c-924b7096b9c2": ["23.1.0"], "1ed28650-ea93-45a3-8f29-d0400ad51ce9": [ "0.1.0", "0.1.1", @@ -7881,6 +7982,10 @@ "6.9.28", "6.9.29" ], + "20230124-29d3-482f-97d5-e3189a8347c2": ["3.211.1"], + "20230124-4193-44e5-9db7-58d7d253f4d8": ["2.211.0"], + "20230124-4e17-4244-b0fb-f540cea78153": ["2.211.0"], + "20230124-620b-11e5-b4cf-8565e60f4d27": ["4.217.0"], "2061c25a-2dbc-4c3a-870d-c480d9ce24f3": [ "0.1.13", "0.1.14", @@ -7913,7 +8018,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "20f4b3c9-8187-470f-91ea-96e5650fabc2": [ "0.3.1", @@ -7922,7 +8028,14 @@ "0.3.4", "0.3.6", "0.3.7", - "0.3.8" + "0.3.8", + "0.3.9", + "0.4.0", + "0.4.1", + "0.4.2", + "0.4.3", + "0.4.4", + "0.4.5" ], "20fb9b23-7ab8-4cd7-bc90-3dbb53928242": ["1.0.0", "1.0.1", "1.0.5", "1.0.6"], "210747bd-3cae-4a60-8194-3d34898a6490": ["0.2.0"], @@ -8185,6 +8298,8 @@ "3.5.149", "3.5.161", "3.5.178", + "3.5.220", + "3.5.260", "4.0.8", "4.0.50", "4.0.89", @@ -8195,7 +8310,9 @@ "4.0.142", "4.0.149", "4.0.161", - "4.0.178" + "4.0.178", + "4.0.220", + "4.0.260" ], "22805355-0fa1-421d-893a-f40ebc51a4de": ["2.0.2"], "22a3cc76-45e3-4ac1-92bb-cbe3f8201a4a": [ @@ -8338,7 +8455,9 @@ "4.0.142", "4.0.149", "4.0.161", - "4.0.178" + "4.0.178", + "4.0.220", + "4.0.260" ], "232044c0-f2b9-4a68-895c-84c988472d6e": [ "0.0.2", @@ -9036,7 +9155,8 @@ "0.6.32", "0.7.5", "0.8.10", - "0.8.34" + "0.8.34", + "0.9.19" ], "291ed61f-1ee4-45d3-b1b0-bf822d000000": ["4.8.1", "4.9.3", "5.0.1"], "291ed61f-1ee4-45d3-b1b0-bf822d900000": ["4.8.1"], @@ -9191,10 +9311,12 @@ "3.2.1", "3.2.2" ], - "2adf5d8e-029c-4ee6-8dbc-0a895ec2ce05": ["1.0.0", "1.1.0"], + "2adf5d8e-029c-4ee6-8dbc-0a895ec2ce05": ["1.0.0", "1.1.0", "2.0.0", "2.0.1"], "2aec407f-7763-43a5-a27f-bf45a58e4f1d": ["1.6.0"], + "2b1cbeb0-d97d-459b-a746-277fa51749dc": ["23.1.0"], "2b3158b5-c06a-4648-a3d5-ff39701cc436": ["1.0.0"], "2b367b90-3297-4ee0-ad14-626f5eb71afb": ["1.0.0"], + "2b4600b9-5cd9-4e3b-9c8b-553c8e58383a": ["0.7.11"], "2b622fc5-7481-4765-9724-0ef4575d7e3b": [ "1.1.6", "1.2.1", @@ -9489,7 +9611,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "2c7fd6a2-7276-43ca-bb16-3caae1dd4698": ["0.1.1", "0.2.1", "0.3.1"], "2c912ca7-b6b3-47d8-8c99-0a91e7b059a2": [ @@ -9580,7 +9703,8 @@ "1.0.2", "1.0.3", "1.0.4", - "1.0.5" + "1.0.5", + "1.1.0" ], "2d15b88e-f58b-48dd-8b17-e8f35594e4ab": [ "0.1.0", @@ -9757,7 +9881,8 @@ "1.186.0", "1.188.0", "1.189.0", - "1.207.0" + "1.207.0", + "1.218.0" ], "2e896ff0-f4c0-45af-b63c-81a1da1d9105": [ "1.2.18", @@ -10115,7 +10240,9 @@ "1.2.330", "1.2.331", "1.2.334", - "1.2.335" + "1.2.335", + "1.2.344", + "1.2.347" ], "2f22eed4-2ef7-407e-98d8-3b20ca0a5352": [ "1.10.21", @@ -10157,7 +10284,10 @@ "1.46.7", "2.0.3", "2.0.5", - "2.2.2" + "2.2.2", + "2.3.5", + "2.4.2", + "2.5.2" ], "2f54d623-fa68-4229-a80e-0340ea70f4fd": [ "0.1.0", @@ -10175,6 +10305,7 @@ "2.0.3", "3.0.0" ], + "2f65269f-9796-4596-9acf-f4037ae0b533": ["23.1.0"], "2f7a32d0-699f-4693-8955-e5ff64e3f4a1": [ "1.0.0", "1.1.0", @@ -10762,6 +10893,34 @@ "1.1.6", "1.1.7" ], + "31f040e5-e040-4336-878a-59a493355535": [ + "0.0.3", + "0.0.4", + "0.0.20", + "0.0.21", + "0.0.22", + "0.0.23", + "0.0.24", + "0.0.25", + "0.0.26", + "0.0.27", + "0.0.28", + "1.1.8" + ], + "31f040e5-e040-4336-878a-59a493355536": [ + "0.0.3", + "0.0.4", + "0.0.20", + "0.0.21", + "0.0.22", + "0.0.23", + "0.0.24", + "0.0.25", + "0.0.26", + "0.0.27", + "0.0.28", + "1.1.8" + ], "31f040e5-e040-4336-878a-59a493389784": [ "1.0.1", "1.0.4", @@ -11196,7 +11355,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "33191b0c-3c57-4532-a11a-dcc5ab7fb467": ["0.1.1"], "33237a0e-6292-431a-9912-276136844a87": [ @@ -11278,7 +11439,9 @@ "2.11.3094444", "2.11.3105315", "2.11.3206699", - "2.11.3214338" + "2.11.3214338", + "2.11.3445511", + "3.0.3517186" ], "332865cc-aa31-450c-9888-2b2a51e1c5ac": [ "0.0.1", @@ -11298,6 +11461,7 @@ "0.0.15" ], "33416f37-5fe8-488d-a2aa-48f52e7a14f9": ["0.1.0", "0.2.0", "0.2.5"], + "33568536-a41b-44ec-adc0-e5c1f45e8bbd": ["23.1.0"], "3356988a-91b9-40ee-871b-273f35ee5f6e": [ "1.0.0", "1.0.1", @@ -11411,16 +11575,6 @@ "7.0.0", "7.0.1" ], - "346e3d65-2f3f-4bba-9e59-4137b41fd79e": [ - "1.0.0", - "1.0.1", - "1.0.2", - "1.0.3", - "1.1.0", - "1.2.0", - "1.3.0", - "1.4.0" - ], "34761037-6539-683a-bfa1-a310d82016b8": [ "1.0.0", "1.0.1", @@ -11510,7 +11664,8 @@ "1.4.0", "1.5.0", "1.5.1", - "1.7.0" + "1.7.0", + "1.8.0" ], "34b3194a-2f58-4844-a8c3-655cc2802e84": [ "0.5.11", @@ -11863,6 +12018,7 @@ "2.0.0", "2.0.3" ], + "36fd41b1-8024-4ce9-a5a0-53c3e54ed106": ["1.0.0"], "36fd41b1-8024-4ce9-a5a0-53c3e54ed666": [ "1.0.2", "1.0.4", @@ -11872,6 +12028,7 @@ "1.1.8" ], "36fd41b1-8024-4ce9-a5a0-53c3e54ed667": ["1.0.8"], + "371728ed-32fa-44a1-916c-6032a2a43452": ["1.1.1", "1.1.2"], "37188edc-3c57-443e-aad4-4bdedc8863ee": [ "1.0.5", "1.0.274", @@ -11928,12 +12085,14 @@ "0.29.0" ], "3732d4b0-030f-4a01-9533-c5c39034359a": ["1.0.18", "1.1.2", "1.1.9"], + "37506ba2-fb91-4417-9e9b-44c355c60135": ["1.3.6", "2.1.3", "3.0.0"], "378ce4ea-1265-49fd-a64d-f36da5b2fb31": [ "2.0.7", "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "379b4b77-75d2-4fb8-84a3-05b51d97154c": [ "2.2.2", @@ -12043,6 +12202,7 @@ "1.13.0" ], "37dda93c-8427-4372-9b7b-9b6e10f3f745": ["0.0.0"], + "3802fecc-9613-4136-9c84-216279e34cb4": ["1.0.2", "1.0.3"], "3809c250-e06b-4afe-b9d0-334ad742a7d4": [ "1.0.1", "1.0.2", @@ -12051,7 +12211,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "381038ea-382c-4f45-b706-e40232fc9671": [ "1.3.9", @@ -12145,6 +12307,7 @@ "3.0.17" ], "38d9696d-62b8-4035-879d-964e88d87eb4": ["0.2.2", "0.3.3", "1.1.0"], + "38df691d-23eb-48d4-8638-61764f48bacb": ["6.0.465", "6.0.502"], "38e8063b-f535-4063-b9f4-9e5d065205db": [ "1.0.1", "1.0.2", @@ -12418,7 +12581,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "3a69dae9-2eb1-4070-87c6-7eba8cf00207": [ "2.20236.2", @@ -12560,7 +12725,9 @@ "2.0.17", "2.0.18", "2.0.19", - "2.0.20" + "2.0.20", + "2.0.24", + "2.0.25" ], "3b2d7e1e-bfb3-4c31-9dd7-7a8bdd5c7d40": [ "1.29.0", @@ -12568,7 +12735,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "3b301aa5-14f2-4883-85d3-de9e613e8bbc": [ "2.20236.2", @@ -12754,7 +12922,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "3d116dd1-d4bd-53f0-b6f3-cb9a511d911f": [ "1.0.1", @@ -13181,11 +13350,13 @@ "3.1.6", "3.2.0", "3.2.1", - "3.2.2" + "3.2.2", + "3.2.3" ], "3ee2ae20-3a18-11e9-b1ef-03cbb694ee92": ["1.0.0", "1.0.1"], "3efc5a90-d2d9-11e5-870b-fddad3389520": ["0.2.0", "0.2.1"], "3efd1a58-b059-42a7-b3e9-cac0b996c977": ["3.0.0"], + "3f248d80-a755-498d-863c-f936c5821318": ["6.0.465", "6.0.502"], "3f4a3578-25c3-56ae-9ef7-e4450d5eb3c2": [ "1.2.0", "1.3.0", @@ -13338,6 +13509,7 @@ "3.0.9", "3.1.6" ], + "3ff9107a-251e-4828-af68-fcb7090cb3d6": ["0.0.5", "0.0.6"], "400ea42f-b258-4da4-9a55-68b174cae84c": [ "0.1.0", "0.3.0", @@ -13385,7 +13557,8 @@ "1.0.1", "1.0.2", "1.0.3", - "1.1.0" + "1.1.0", + "1.2.0" ], "4061e3c9-d695-46c1-b903-a567634dca14": [ "1.2.1", @@ -13625,6 +13798,7 @@ "2.1.3", "2.1.4" ], + "41ab7ab8-ec3a-4450-b64b-a885fb639f74": ["23.1.0"], "41adda2e-e373-4281-a149-08922f27b09b": [ "0.1.0", "0.1.1", @@ -13875,7 +14049,12 @@ "1.9.0", "1.10.0" ], - "4395c90d-df12-4914-a900-98165bddb8cf": ["2.0.10", "2.0.13", "2.0.15"], + "4395c90d-df12-4914-a900-98165bddb8cf": [ + "2.0.10", + "2.0.13", + "2.0.15", + "2.0.16" + ], "43c8e3f9-f0a7-5689-905b-f4d9f452a1dc": [ "1.0.95", "1.0.1125433", @@ -13942,7 +14121,8 @@ "1.0.1", "2.0.12", "2.0.13", - "3.0.1" + "3.0.1", + "3.0.2" ], "44baeac4-f767-4cb9-83e8-d210ce763397": [ "0.0.23", @@ -13964,7 +14144,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "44d7756a-165c-4b11-bced-37a905a31c9a": ["0.2.35", "0.2.36"], "44d9cfb7-7efd-48e2-b2ae-4750950271be": [ @@ -14009,6 +14190,7 @@ "450f7d20-946c-4524-a9e8-ec4e42e35b76": ["21.4.1"], "452d20bc-cc20-4e93-8652-333696af24bf": ["0.1.0", "0.2.0"], "4537b95e-61a8-45af-b178-c7e5f86d17b9": ["21.4.1"], + "45428fd3-a672-4709-a6e4-90b7092da8ae": ["23.1.0"], "4578fa22-6039-4d83-90e0-3e12f68d6b26": [ "1.15.22", "1.16.2", @@ -14179,7 +14361,7 @@ "1.11.3", "2.13.4" ], - "47203ae0-e66b-4cc7-bdbd-77ea87aaf473": ["2.0.13", "2.0.15"], + "47203ae0-e66b-4cc7-bdbd-77ea87aaf473": ["2.0.13", "2.0.15", "2.0.16"], "472a20e1-558b-46c7-bbb4-def75b0752e7": [ "1.0.0", "1.0.1", @@ -14220,7 +14402,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "475ad458-6778-4e40-a8b5-5f983bea595d": [ "0.2.0", @@ -14396,6 +14580,8 @@ "3.5.149", "3.5.161", "3.5.178", + "3.5.220", + "3.5.260", "4.0.8", "4.0.50", "4.0.89", @@ -14406,7 +14592,9 @@ "4.0.142", "4.0.149", "4.0.161", - "4.0.178" + "4.0.178", + "4.0.220", + "4.0.260" ], "47ba6c2e-d5c2-44e7-bd91-5792159eb4eb": [ "1.0.0", @@ -14469,7 +14657,8 @@ "1.199.0", "1.208.0", "1.212.0", - "1.214.0" + "1.214.0", + "1.217.0" ], "48291cae-14a6-44c8-8440-74c97b1d90c9": ["1.0.0", "1.0.1", "1.0.2"], "486deda6-0cae-4d20-918b-94d6cdfab789": [ @@ -14498,7 +14687,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "48a1da17-6a15-43fa-b9a9-a68536dec84a": [ "1.0.0", @@ -14574,7 +14765,9 @@ "2.5.4", "2.6.2", "2.7.4", - "3.0.10" + "3.0.10", + "3.1.2", + "3.2.2" ], "493a03d9-7e56-4db8-87f3-68c94c075077": ["0.158.0"], "4966499d-2d02-4c79-93e2-8ecded797f6f": ["1.1.1", "1.1.2", "1.1.3", "1.1.4"], @@ -14916,6 +15109,7 @@ "1.0.10", "1.0.11" ], + "4b680c98-0b13-4e53-8856-73abef070247": ["23.1.0"], "4b8b6753-c498-48c8-8f84-203b229a85ba": ["1.1.48"], "4b8ea1ca-9132-4caa-8127-7490130e131f": [ "1.22.0", @@ -14936,7 +15130,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "4bc7e8e0-97c4-4ba2-af7e-ea12b1b06c5f": ["15.188.1", "15.188.2"], "4bit-dev.semantic-versioning.00d41d52-30eb-42cc-9718-b52753e27da2.f46f9e97-9751-4554-980e-be15b3945e37": [ @@ -15320,6 +15515,8 @@ "3.1.109", "3.1.131", "3.1.134", + "3.1.465", + "3.1.502", "4.0.371", "4.0.375", "4.0.376", @@ -15350,11 +15547,17 @@ "4.3.109", "4.3.131", "4.3.134", + "4.3.465", + "4.3.502", "5.0.57", "5.0.66", "5.0.109", "5.0.131", - "5.0.134" + "5.0.134", + "5.0.465", + "5.0.502", + "6.0.465", + "6.0.502" ], "4e476451-a01b-4b86-ab9e-658d496f9b17": ["9.0.5", "9.0.6", "12.0.7"], "4e6d2469-e404-4080-9719-ac8dc9b7b3ee": ["22.6.0"], @@ -15440,6 +15643,7 @@ "4.2.0" ], "4e779492-fcca-40f0-bf69-2b3a577b3ba5": [ + "1.0.3", "1.107.1", "1.109.1", "1.111.1", @@ -15576,6 +15780,7 @@ "1.0.19", "1.0.20" ], + "4ed7bb07-11eb-4f12-9de7-37ba7471fcdd": ["23.1.0"], "4ed9c77e-9b10-46ad-901a-78fe21178d8a": [ "0.1.0", "1.0.1", @@ -15666,7 +15871,10 @@ "1.6.0", "1.6.1", "1.6.2", - "1.6.3" + "1.6.3", + "1.6.4", + "1.6.5", + "1.6.6" ], "4f5855b9-bdfe-4816-a6b9-f3601fd353a9": ["1.0.0", "1.0.10", "1.0.11"], "4f9cea8e-3e1f-43ef-82e9-2ae6fbb70f2f": ["1.0.1", "2.0.3"], @@ -15691,13 +15899,6 @@ "1.2.1", "1.2.2" ], - "4fe0dbab-291a-4006-ac04-ca63b9550410": [ - "1.0.0", - "1.1.0", - "2.2.0", - "3.1.0", - "4.1.0" - ], "4fe20549-3f80-44fd-91b4-fdbc0660e942": [ "0.1.0", "0.2.0", @@ -15734,7 +15935,8 @@ "1.2.12", "1.2.13", "1.2.14", - "1.2.15" + "1.2.15", + "1.2.16" ], "4fe54fab-ecf8-441e-989e-5d9cbd861743": [ "1.9.0", @@ -15990,6 +16192,7 @@ "1.0.15", "1.0.18" ], + "508939e9-38f4-4ffb-bfaf-2cfcad24d053": ["23.1.0"], "50938938-bf74-4acd-b7ab-3a7cfc801d8a": [ "1.1.14", "1.1.15", @@ -16199,6 +16402,7 @@ "3.0.0", "3.1.0" ], + "51355d76-dd54-4754-919d-bba27fdf59e4": ["0.7.11"], "5164728d-cfca-4576-a066-bde89930bf2b": [ "0.0.16", "1.0.2", @@ -16277,6 +16481,12 @@ "1.0.37" ], "51b04616-3037-4a04-b6a4-2134fb232ad0": ["0.1.0", "1.0.0", "1.0.1", "1.1.0"], + "51c7cdd8-1e0b-4db3-8513-ffcdbe1959f3": ["0.0.0", "0.0.1", "0.0.2"], + "51d18b73-ba80-440e-95c2-59620cb4be1c": [ + "2.11.3447906", + "3.0.3513646", + "3.0.3517186" + ], "51fa7ac6-d9cc-41c0-b7f3-2c7f4a31d153": ["0.0.1", "0.0.2", "0.0.3"], "520de8ba-2076-4eb4-8914-6c193e779161": ["1.0.4"], "521d1d15-f5fb-4b83-a93b-b2fe44a9a286": [ @@ -16862,7 +17072,9 @@ "4.1.16", "4.1.17", "4.1.18", - "4.1.19" + "4.1.19", + "4.1.20", + "4.1.21" ], "53872c9a-a53f-4fcf-973d-8ded3d75432d": [ "1.0.19", @@ -17046,7 +17258,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "54b62d89-ac91-4bc3-9495-bbcd521dc2fa": [ "0.1.0", @@ -17069,6 +17282,7 @@ "2.2.0", "2.3.0" ], + "54f16e23-92e0-456e-aa6b-81b5ba088419": ["23.1.0"], "553fa7ff-af12-4821-8ace-6bf3dc410e62": [ "0.1.4", "0.1.8", @@ -17088,9 +17302,12 @@ "0.6.32", "0.7.5", "0.8.10", - "0.8.34" + "0.8.34", + "0.9.19", + "1.9.19" ], "554a5c88-c4a9-4892-9c01-26887b72108a": ["1.1.1", "1.1.2", "1.1.3"], + "559b81c9-efc1-40f3-9058-71ab1810d837": ["6.0.465", "6.0.502"], "559f0925-9091-4053-9aac-c19ecfc5028c": ["0.1.0"], "55a97a52-a238-46af-9de9-e4245ab45e72": [ "1.0.0", @@ -17570,7 +17787,13 @@ "1.1.0", "1.1.1" ], - "58a36166-34e3-4e41-ab7b-967dccc53690": ["1.0.0", "1.0.5", "1.1.0"], + "58a36166-34e3-4e41-ab7b-967dccc53690": [ + "1.0.0", + "1.0.5", + "1.1.0", + "2.0.0", + "2.0.1" + ], "58dccf9e-3eaf-4533-a9b6-1e5a1845d036": [ "20.12.3", "21.1.1", @@ -17736,7 +17959,9 @@ "1.1.1" ], "5a144934-d2e8-4e39-b38f-307eacf66fe8": ["1.0.1"], + "5a2273e0-aa4f-4502-bcba-6817835e2bbd": ["6.0.465", "6.0.502"], "5a22c382-dfab-45dc-81a9-119b60bf149e": ["1.2.0"], + "5a354b4a-68c0-474f-abd8-202229be650c": ["23.1.0"], "5a7067c0-afc3-474f-8c55-3769fa0f3c9e": ["0.3.0", "0.4.1"], "5a775a50-3372-1290-9ce0-1579c1e597fb": [ "0.1.0", @@ -18019,6 +18244,11 @@ "7.1.0", "7.2.0" ], + "5ba96c72-cff1-411e-a333-ea2bbf4f2f78": [ + "1.0.3447906", + "1.0.3513646", + "1.0.3517186" + ], "5bb56a8d-9525-4af3-a64d-dae0677dd692": ["0.1.0", "0.1.1", "0.1.2"], "5bc8d075-b550-4236-a3c6-1cd3f52d90ee": ["1.0.0", "1.0.1"], "5bf98930-3058-4afe-b031-48d312459df4": [ @@ -18037,7 +18267,10 @@ "1.15.1239", "1.15.1261", "1.23.1279", - "1.24.1281" + "1.24.1281", + "1.25.1302", + "1.26.1308", + "1.27.1315" ], "5bfdd7ca-9bf4-40f7-b753-fd674e7ff85c": ["0.1.1", "0.2.0", "0.2.5"], "5c1058b2-bc81-4fcb-afed-868d7ffde4a5": [ @@ -18054,6 +18287,7 @@ "0.10.0" ], "5c3d4b9f-3c7b-415d-a4e8-c7bc4f62d536": ["1.1.4"], + "5c41b001-294f-47b1-a5d5-34cbf7abe488": ["23.1.0"], "5c44ef11-265e-4581-9ec0-f6fdaa0908ef": ["0.4.0", "0.5.0", "0.6.0", "1.0.0"], "5c5c32ee-52ee-4b91-9ef6-b48f965f30e2": ["0.5.1", "0.5.2", "0.5.5", "0.5.6"], "5c63daef-d7f0-40cc-85d0-3b5f09d3e0ec": ["1.0.0", "1.1.0", "1.1.1"], @@ -18174,6 +18408,8 @@ "3.5.149", "3.5.161", "3.5.178", + "3.5.220", + "3.5.260", "4.0.124", "4.1.8", "4.1.50", @@ -18185,7 +18421,9 @@ "4.1.142", "4.1.149", "4.1.161", - "4.1.178" + "4.1.178", + "4.1.220", + "4.1.260" ], "5c826f20-4d2b-4ab6-a3f5-54956a2f65fe": ["1.0.20", "1.1.15"], "5c975f9d-1c3a-469f-b7c2-8907bf3eacf1": ["1.0.0", "1.3.0"], @@ -18257,7 +18495,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "5d203600-ac29-495a-931f-04b26bb91a4f": [ "0.1.0", @@ -18647,7 +18887,8 @@ "9.1.11638", "9.1.11639", "9.1.11643", - "9.1.11647" + "9.1.11647", + "9.1.61695" ], "5e683ca0-59bf-4a1e-ac5c-f4885372271c": [ "1.0.0", @@ -18702,7 +18943,9 @@ "1.1.4", "1.1.5", "1.1.6", - "1.1.7" + "1.1.7", + "1.2.1", + "1.2.3" ], "5e9b6b5e-3130-47dc-89c5-77a58949f2cf": [ "2.0.15", @@ -18722,6 +18965,56 @@ "1.7.2", "2.8.2" ], + "5f0427b3-e660-4f4d-9a93-60dd13f40028": [ + "0.0.7", + "0.0.8", + "0.0.9", + "0.0.10", + "0.0.11", + "0.0.12", + "0.0.14", + "0.0.15", + "0.0.16", + "0.0.17", + "0.0.18", + "0.0.19", + "0.0.20", + "0.0.21", + "0.0.22", + "0.0.23", + "0.0.24", + "0.0.25", + "0.0.26", + "0.0.27", + "0.0.28", + "0.0.29", + "0.0.30", + "0.0.31", + "0.0.32", + "0.0.33", + "0.0.34", + "0.0.35", + "0.0.36", + "0.0.37", + "0.0.38", + "0.0.39", + "0.0.40", + "0.0.41", + "0.0.42", + "0.0.43", + "0.0.44", + "0.0.45", + "0.0.46", + "0.0.47", + "0.0.48", + "0.0.49", + "0.0.50", + "0.0.51", + "0.0.52", + "0.0.53", + "0.1.54" + ], + "5f0427b3-e660-4f4d-9a93-60dd13f40029": ["0.0.1", "0.0.2"], "5f085399-5bf7-44e2-9539-6b1125e4aa2f": [ "0.0.1", "0.0.3", @@ -18970,8 +19263,15 @@ "1.0.13" ], "609d0927-6e92-46ec-a9a2-bba80f025eda": ["1.3.0"], - "60b0c2bb-66cb-4284-9482-543cef6da436": ["1.0.4", "1.0.5"], - "60b18503-c6d6-4e4b-a6b2-52fc6fb3d525": ["0.0.1", "0.1.0", "0.1.1"], + "60b0c2bb-66cb-4284-9482-543cef6da436": [ + "1.0.4", + "1.0.5", + "1.0.6", + "1.0.7", + "1.0.8", + "1.0.9" + ], + "60b18503-c6d6-4e4b-a6b2-52fc6fb3d525": ["0.0.1", "0.1.0", "0.1.1", "0.1.2"], "60d38d27-fa0f-4b64-8838-9cd69f09de58": ["7.5.0"], "60d7c5c0-7819-49d9-be44-696e8f27c63c": [ "0.0.1", @@ -19058,7 +19358,8 @@ "2.202.0", "2.208.0", "2.208.1", - "2.210.0" + "2.210.0", + "2.217.0" ], "61742d69-accf-48d8-b263-95f1e60beee1": [ "0.1.20", @@ -19176,7 +19477,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "62645f53-3f11-41b1-b439-b7197034d52c": [ "1.0.42", @@ -19231,7 +19534,9 @@ "3.14.0", "3.15.0", "3.16.0", - "3.17.0" + "3.17.0", + "3.18.0", + "3.19.0" ], "62a7982c-0bad-41a5-a801-4212159e2422": [ "0.1.0", @@ -19353,6 +19658,8 @@ "3.5.149", "3.5.161", "3.5.178", + "3.5.220", + "3.5.260", "4.0.8", "4.0.50", "4.0.89", @@ -19363,7 +19670,9 @@ "4.0.142", "4.0.149", "4.0.161", - "4.0.178" + "4.0.178", + "4.0.220", + "4.0.260" ], "63388616-cec1-4f0c-92e6-78e7cde08ef5": ["0.1.2", "0.1.3", "0.1.4", "0.1.5"], "633def46-148b-4100-9d5f-bc74881de42f": ["0.1.2", "0.1.6"], @@ -19375,7 +19684,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "6350bfb8-c310-4cdd-af68-722f33cf440a": ["1.0.0"], "63823d31-810c-4957-9bc1-859757ace94d": [ @@ -19402,6 +19713,8 @@ "1.11.13", "1.11.14", "1.11.15", + "1.12.4", + "2.0.0", "2.1.4", "2.1.61", "2.1.78", @@ -19430,6 +19743,7 @@ "2.11.13", "2.11.14", "2.11.15", + "2.12.4", "3.0.0", "3.0.1", "3.11.0", @@ -19448,6 +19762,7 @@ "3.11.13", "3.11.14", "3.11.15", + "3.12.4", "4.0.0", "4.0.2", "4.0.3", @@ -19467,7 +19782,8 @@ "4.11.12", "4.11.13", "4.11.14", - "4.11.15" + "4.11.15", + "4.12.4" ], "639b8e0c-2c2c-41e7-b822-4d03aefcb92b": [ "0.1.12", @@ -19639,7 +19955,8 @@ "1.2.0", "1.3.0", "1.4.0", - "1.5.0" + "1.5.0", + "1.6.0" ], "63dc66e6-daa5-4c1c-97f2-4312143a6d6d": [ "0.54.0", @@ -19688,7 +20005,8 @@ "1.2.0", "1.3.0", "1.4.0", - "1.5.0" + "1.5.0", + "1.6.0" ], "63dc72cc-b966-4c13-8db2-d43f0d923eff": [ "0.1.0", @@ -19735,7 +20053,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "64750ad2-e84b-437a-9e27-ce0e506aff77": ["0.2.34"], "647f6885-bbf7-4fc9-9938-c5124de4965c": ["10.0.2", "10.0.3", "12.0.5"], @@ -19901,6 +20220,7 @@ "3.0.16", "3.0.17" ], + "65c38e37-4bbd-4b44-acfd-72adf9dd7579": ["1.3.12", "2.0.0"], "660c8445-8671-4fb0-9c77-2ea7d3a3072f": ["1.0.0"], "661079d6-c3e5-4486-85a9-b538ed44087d": [ "1.0.0", @@ -20286,7 +20606,13 @@ "2.425.0", "2.426.0", "2.427.0", - "2.430.0" + "2.430.0", + "2.431.0" + ], + "666f48a9-3550-4db6-b74b-2f8aa4b99444": [ + "2.11.3447906", + "3.0.3513646", + "3.0.3517186" ], "66c0f6d3-431f-4e66-8e8b-bc4a3ed2eb90": [ "0.1.0", @@ -20332,7 +20658,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "66fee64a-1e90-4952-960a-b1e09305f5cc": ["1.0.1"], "670be730-f416-11e6-be17-19bd09ccd9ea": ["0.1.5", "0.1.6", "0.2.0"], @@ -20403,6 +20731,7 @@ "4.1.6", "4.2.0" ], + "67795a29-e3af-4b09-b08b-67f48a1593d7": ["1.0.5"], "6785970c-2d58-4260-b047-0a54028ee9c1": [ "0.1.18", "0.2.4", @@ -20618,7 +20947,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "697fc604-a995-454d-9bca-61f3fef4888f": ["7.5.6"], "698a2131-5476-4705-ac09-0975b9d3f638": ["1.0.1", "1.0.4"], @@ -20630,7 +20960,8 @@ "1.0.1", "2.0.12", "2.0.13", - "3.0.1" + "3.0.1", + "3.0.2" ], "69e2be49-2b8c-4f88-9ad8-c2221376e6ed": ["1.2.1"], "69f0728c-1c79-4e8d-85ae-21960a56101b": [ @@ -20861,6 +21192,7 @@ "0.2.31", "0.2.32" ], + "6bfa46a4-a7a6-4e77-a683-0b8f7eb19ce4": ["23.1.0"], "6bfcb1cd-a7fe-46e6-abdb-e60c1cbd6906": [ "0.1.0", "0.1.1", @@ -21263,6 +21595,8 @@ "4.30.0", "4.31.0", "4.32.0", + "4.33.0", + "4.34.0", "5.0.0", "5.1.0", "5.2.0", @@ -21274,7 +21608,9 @@ "5.6.1", "5.7.0", "5.8.0", - "5.9.0" + "5.9.0", + "5.10.0", + "5.11.0" ], "6d27c589-0e7f-4737-bba7-a9440ae3f87d": [ "1.0.0", @@ -21334,6 +21670,13 @@ "5.0.283", "5.0.284" ], + "6d4b1476-3a89-4eca-ba13-df048e3d697a": [ + "0.4.0", + "0.4.1", + "0.5.0", + "0.5.1", + "0.5.2" + ], "6d582ed5-738e-4145-96ac-0cfd20fb1333": ["1.0.1"], "6d6bf390-8504-42e2-bfcf-9be00dd89226": ["1.1.0", "1.2.0", "1.6.3", "1.6.9"], "6d9895eb-8056-4111-b4b3-7b80fd383e44": [ @@ -21368,6 +21711,7 @@ "1.2.176", "1.2.178" ], + "6da3e555-04c4-480f-91cd-d93c5e56bbf1": ["1.4.7", "2.0.0"], "6dcbfeae-7739-47ad-9509-daad4171f83b": [ "1.0.0", "1.0.1", @@ -21549,7 +21893,8 @@ "4.0.0", "5.0.0", "5.1.0", - "5.2.0" + "5.2.0", + "6.0.0" ], "6e2cb46a-ad8b-4571-b183-5f0f81d2b2ba": [ "1.1.6", @@ -21697,10 +22042,26 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "6e40eb5f-dce4-4b62-b9ac-ee900c35a51e": ["1.0.0"], "6e4c7084-7044-4d63-af81-cd809f71d043": ["1.0.16"], + "6e732eed-cdd3-4c5f-a714-b18847a1a0a6": [ + "0.1.1", + "0.1.6", + "0.1.8", + "0.1.9", + "0.1.10", + "0.1.11", + "0.1.12", + "0.1.13", + "0.1.14", + "0.1.15", + "0.1.16", + "1.0.0", + "1.0.3" + ], "6e743613-d4b8-48d2-8ee3-1b8ec3ab00fe": [ "1.0.0", "1.1.0", @@ -21763,7 +22124,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "6ea9b0f1-2fb0-4735-bd6e-0f3f58f094ae": [ "0.1.0", @@ -21841,9 +22203,11 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "6f059bbc-83be-4058-8e6e-83cc8ad41da9": ["0.1.0"], + "6f0f2562-12bc-4d35-8451-74909df79cc3": ["23.1.0"], "6f432af8-1146-11ea-9a9f-362b9e155667": ["0.4.2", "0.6.8", "0.7.8"], "6f43479d-5b2a-4aae-a464-2be406aaa068": ["0.2.31"], "6f650d20-9c5d-4cce-ad66-e68742ceadf5": [ @@ -22137,7 +22501,8 @@ "2.5.800", "2.5.801", "2.5.830", - "2.5.835" + "2.5.835", + "3.0.0" ], "7164ddbc-7979-4e2c-a2f8-e7a89b6ba026": [ "1.1.789", @@ -22353,7 +22718,9 @@ "2.11.3094444", "2.11.3105315", "2.11.3206699", - "2.11.3214338" + "2.11.3214338", + "2.11.3445511", + "3.0.3517186" ], "721c3f90-d938-11e8-9d92-09d7594721b5": [ "0.1.8", @@ -22578,7 +22945,9 @@ "2.11.3094444", "2.11.3105315", "2.11.3206699", - "2.11.3214338" + "2.11.3214338", + "2.11.3445511", + "3.0.3517186" ], "726a9c06-b921-4f6c-a08d-21a79a79d82d": ["1.0.5"], "72aad460-f3dd-469a-95b8-f36027cdcea1": [ @@ -22621,7 +22990,8 @@ "9.1.11638", "9.1.11639", "9.1.11643", - "9.1.11647" + "9.1.11647", + "9.1.61695" ], "72cd03e2-337b-4dfb-96ef-45652729df8d": [ "0.0.1", @@ -22634,7 +23004,7 @@ "0.0.8", "0.0.9" ], - "72dfa944-c991-4332-a81e-71186e4fca9c": ["1.0.0", "2.2.0", "3.1.0", "4.1.0"], + "72e7a1b6-19bc-48e6-8d20-a81f201d65a3": ["6.0.465", "6.0.502"], "72fbcc25-0619-4ea9-be01-7e0b4bcc4256": ["0.38.5"], "72feac44-25ca-468a-942d-0245d2d408bf": [ "1.0.0", @@ -23124,6 +23494,8 @@ "0.1.1187689", "0.1.1239020" ], + "75791037-6539-683a-bfa1-a310d82016b8": ["2.0.0", "2.4.0", "2.5.0", "2.6.0"], + "75791037-6539-683a-bfa1-a310d82016d3": ["2.2.0", "2.3.0"], "75797f68-ee17-4dcb-97e2-550eb87f2728": [ "1.0.1", "1.0.17", @@ -23222,7 +23594,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "75e0df60-f8c3-44b5-a48f-83f4ff71ae4b": [ "0.0.3", @@ -23259,6 +23632,7 @@ "0.1.18" ], "75e7f77c-8ff4-4b1c-a993-276ecc5922d2": ["0.5.1", "0.5.2", "0.5.5", "0.5.6"], + "75f83f0e-8555-49bf-8194-d6d0f943ffc2": ["2.0.10"], "75ff9275-8dc5-4078-b9d4-19375d45c980": [ "0.1.0", "0.5.0", @@ -23350,6 +23724,7 @@ "1.0.11" ], "765f249c-959b-49ff-8409-8e07b94216c4": ["1.0.0"], + "768a5ceb-23d4-446a-9a3a-04db3c4984cc": ["0.1.0"], "769929ed-e421-451b-8255-21a8d9d9d3f9": [ "0.0.1", "0.0.3", @@ -23379,7 +23754,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "76c103d8-c5e8-4f03-acaf-e31fbb276c84": [ "1.0.0", @@ -23686,7 +24062,7 @@ "7860477f-ace4-4152-ab31-ffd299f0fe72": ["21.4.1"], "786ecec5-b468-4ab5-ad1c-0cbcd9db5f0f": ["1.0.0"], "787f5aa8-6065-4756-9247-235596a98cf9": ["0.0.6"], - "7890f95d-fd3a-4e5e-8a26-58d1bd0d4e0b": ["1.0.0", "1.1.0"], + "7890f95d-fd3a-4e5e-8a26-58d1bd0d4e0b": ["1.0.0", "1.1.0", "1.2.0"], "789e778a-4f77-4c63-a56d-054ab85b6eae": [ "1.11.19", "1.12.2", @@ -23895,6 +24271,7 @@ "7a3fbeab-c278-458e-94f8-f8cb044d10d1": ["0.1.2"], "7a3fbeab-c278-458e-94f8-f8cb044d10d5": ["0.1.1", "0.1.2"], "7a3fbeab-c278-458e-94f8-f8cb044d10d9": ["0.1.1", "1.0.5"], + "7a455a96-a278-4656-ba8c-076dd42b7d6f": ["23.1.0"], "7a5fadd7-438e-4e37-bba4-aac9d265893c": ["0.1.16", "0.1.17", "0.1.18"], "7a706bcb-daf2-49c0-b770-ce2db484205d": [ "0.0.33", @@ -24010,11 +24387,17 @@ "4.3.109", "4.3.131", "4.3.134", + "4.3.465", + "4.3.502", "5.0.57", "5.0.66", "5.0.109", "5.0.131", - "5.0.134" + "5.0.134", + "5.0.465", + "5.0.502", + "6.0.465", + "6.0.502" ], "7b0900d8-19d2-4c2a-9131-473d431266af": [ "1.7.0", @@ -24218,7 +24601,11 @@ "3.90.11", "4.0.16", "4.1.2", - "4.2.2" + "4.2.2", + "4.3.3", + "4.4.1", + "4.5.2", + "4.6.2" ], "7b2651f1-34bb-426e-9381-917dbeded037": ["1.1.5", "1.1.6"], "7b3152dd-a0eb-47ba-8d6d-b16f94224ac3": ["1.0.4"], @@ -24931,7 +25318,11 @@ "1.0.1", "1.0.2", "1.0.3", - "1.0.4" + "1.0.4", + "1.0.5", + "1.0.6", + "1.0.7", + "1.0.8" ], "7e3dbac3-ed7b-4b1b-922b-5f3d5a1b523b": ["7.5.0"], "7e520ba0-59ce-11e6-8b09-25a31114de37": ["0.1.0", "1.0.0", "1.0.1", "1.0.3"], @@ -25573,7 +25964,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "805fbdcc-38d9-4043-9c04-e84e7208baa8": [ "0.2.0", @@ -25768,7 +26160,8 @@ "2.1.0", "2.2.0", "2.3.0", - "2.4.0" + "2.4.0", + "2.5.0" ], "8191749f-5031-4743-99c7-61d377465a03": ["21.4.1"], "81cc77f6-237b-4962-a25e-80f820a88462": [ @@ -25849,6 +26242,7 @@ "0.1.78" ], "81d130ce-0e2d-4c51-bbdc-69a1ae9f6085": ["0.1.0", "0.1.1", "0.1.2", "0.1.3"], + "81e2f045-dfc5-4c2b-8ef0-a6221324c281": ["1.0.5"], "81fa890c-2b95-4d6b-bc9e-58828d754d07": [ "9.0.1", "9.0.2", @@ -25878,6 +26272,7 @@ "2.0.3", "2.0.4" ], + "821df394-873a-4216-8635-5b952f6cfc7c": ["23.1.0"], "82264530-7c14-4534-9fdb-b82b053342f4": ["1.1.2"], "822d6cb9-d4d1-431b-9513-e7db7d718a49": [ "1.0.2", @@ -25887,7 +26282,10 @@ "2022.1.1", "2022.2.1", "2022.2.4", - "2022.3.0" + "2022.3.0", + "2022.3.2", + "2022.3.3", + "2022.3.4" ], "82489b45-20d4-44ee-b380-f7a58837bb88": [ "0.1.0", @@ -25929,7 +26327,15 @@ "1.1.1", "1.1.2" ], - "827b3576-c766-4996-84ba-cefba0325ee8": ["1.0.0", "1.0.1", "1.0.2"], + "827b3576-c766-4996-84ba-cefba0325ee8": [ + "1.0.0", + "1.0.1", + "1.0.2", + "1.0.3", + "1.0.4", + "1.0.5", + "1.0.6" + ], "82f8620c-5c25-e398-ef53-8a91ca253d1c": [ "0.1.0", "0.1.3", @@ -26125,6 +26531,11 @@ "0.9.8", "0.10.0" ], + "83faa8cf-ff90-4cb5-8ca0-389edc2c0af5": [ + "2.11.3447906", + "3.0.3513646", + "3.0.3517186" + ], "84110c9d-d8df-43a1-8d53-672b6bf34663": [ "1.0.44", "1.0.45", @@ -26993,7 +27404,23 @@ "0.1.68", "1.1.0", "1.1.1", - "1.1.2" + "1.1.2", + "1.1.3", + "1.1.5", + "1.1.6", + "1.1.7", + "1.1.8", + "1.1.9", + "1.1.10", + "1.1.11", + "1.1.12", + "1.1.13", + "1.1.14", + "1.1.15", + "1.1.16", + "1.1.17", + "1.1.18", + "1.1.19" ], "88621e9b-922f-558a-bf7d-555a4f9e5097": [ "1.2.0", @@ -27254,7 +27681,7 @@ "1.0.3", "1.0.4" ], - "88e0bab6-9798-47cb-a37d-ef65f41992ae": ["2.0.13", "3.0.1"], + "88e0bab6-9798-47cb-a37d-ef65f41992ae": ["2.0.13", "3.0.1", "3.0.2"], "88e530ad-cf5e-4b88-a5d9-e6ce96760718": ["1.0.0"], "893fd8d0-f3eb-4e7d-a628-f1150e5543c9": ["7.5.0"], "897b9f88-ea98-4aab-9743-251d38a263f7": ["1.2.1"], @@ -27293,7 +27720,10 @@ "1.15.1239", "1.15.1261", "1.23.1279", - "1.24.1281" + "1.24.1281", + "1.25.1302", + "1.26.1308", + "1.27.1315" ], "8a0bb940-bf0f-4123-81db-6b8f9ecd408c": ["1.0.0", "1.1.0"], "8a2a673b-d762-486b-854d-75c57e8d6b8a": ["4.0.0"], @@ -27355,6 +27785,7 @@ "0.1.1640004186", "0.1.1640004632" ], + "8b6361e6-113e-43d0-b6dd-d7f6cbe874d0": ["23.1.0"], "8bac6a77-5fff-498a-8771-4c18225430d3": ["1.0.1"], "8bcdcddf-d4f6-406b-bb21-dca8b911665d": [ "0.90.0", @@ -27407,7 +27838,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "8c3e9995-7831-4d41-8d3e-bbc1a45224cf": [ "0.2.43", @@ -27494,6 +27926,8 @@ "3.1.109", "3.1.131", "3.1.134", + "3.1.465", + "3.1.502", "4.0.371", "4.0.375", "4.0.376", @@ -27524,11 +27958,17 @@ "4.3.109", "4.3.131", "4.3.134", + "4.3.465", + "4.3.502", "5.0.57", "5.0.66", "5.0.109", "5.0.131", - "5.0.134" + "5.0.134", + "5.0.465", + "5.0.502", + "6.0.465", + "6.0.502" ], "8caea22b-4686-45c2-9e18-7253b313f844": [ "2.0.3", @@ -27582,7 +28022,8 @@ "4.203.0", "4.207.0", "4.209.0", - "4.216.0" + "4.216.0", + "4.217.0" ], "8d0174b6-d3b5-41fe-a22c-8ab4bcf19272": ["1.0.0", "1.0.3"], "8d07311b-5c6d-4dba-9983-342f5471940b": ["0.2.0"], @@ -27619,6 +28060,7 @@ "8de2a935-98e7-4232-9431-7658ac2add52": ["2.1.0", "2.1.1", "2.2.1"], "8e065185-f0bc-4e04-991f-5476e271c92a": ["0.1.0", "0.1.1", "0.1.2", "0.1.3"], "8e2d6b0b-71a0-4740-84c4-ad2c3f229867": ["1.0.0", "1.0.3", "1.1.0"], + "8e524f4d-a1b0-4ecb-9914-3b16499eeccd": ["23.1.0"], "8e5938ef-e118-40d8-8051-5b8569fe0bf3": ["1.0.0", "1.0.3", "1.1.0"], "8e70da9d-532d-4416-a07f-5ec10f84339f": [ "0.6.7", @@ -27892,7 +28334,8 @@ "1.4.6", "1.4.7", "1.4.8", - "1.4.9" + "1.4.9", + "1.5.0" ], "908f312f-0aad-46db-8681-042dbf1fd304": [ "1.0.0", @@ -27989,7 +28432,8 @@ "2.3.0", "2.4.0", "2.5.0", - "2.6.0" + "2.6.0", + "2.7.0" ], "911fb029-c89b-4d09-a2d4-610486918018": [ "1.0.0", @@ -28008,6 +28452,7 @@ ], "913b4df6-df22-496c-a007-86e88ab65bae": ["21.4.1"], "9147289a-2501-4ad1-b2e3-aa3f7817b007": ["0.1.0"], + "9155350c-422e-44a7-8d98-ed28e4bb8649": ["0.1.0"], "9177f350-4f43-11e7-8a59-cd20d17e2322": ["0.1.0", "0.1.1", "0.2.0"], "9179241e-ef84-47f8-948a-329278287c6c": ["1.0.0"], "918b5374-31ca-4b2a-ac78-92ad468a840f": [ @@ -28123,6 +28568,7 @@ "1.0.10", "1.1.0" ], + "9272e200-84b3-445a-9964-e079fa1fc4f2": ["23.1.0"], "9279cedb-d351-5297-a412-ac89b570457e": [ "1.2.0", "1.3.0", @@ -28462,7 +28908,10 @@ "1.411.0", "1.412.0", "1.413.0", - "1.414.0" + "1.414.0", + "1.415.0", + "1.416.0", + "1.419.0" ], "941d4821-d5b0-4b4b-8e2d-bae866fd5d85": [ "0.0.10", @@ -29038,7 +29487,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "9709766a-282a-4817-ac67-fa573c4065ea": [ "1.0.7", @@ -29074,7 +29524,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "97687860-e43c-46ec-a079-967886619de2": ["1.0.0"], "9788ca49-dc8f-4d6b-bd5a-bab0fed0bc0c": [ @@ -29106,7 +29557,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "97a070c8-e426-46aa-8a40-4ac9760ce4f4": ["1.0.0"], "97d5a2f2-92a0-475c-a120-591a43a7bc93": [ @@ -29220,7 +29672,13 @@ "9.0.0" ], "9892d4f3-f2ff-4e0d-b943-7738dbd523af": ["1.0.0"], - "98e620c4-e2ad-47cd-bda0-41b028296cbb": ["1.0.0", "1.0.5", "1.1.0"], + "98e620c4-e2ad-47cd-bda0-41b028296cbb": [ + "1.0.0", + "1.0.5", + "1.1.0", + "2.0.0", + "2.0.1" + ], "9917dac2-0ff3-4b6a-b236-9baff3bbb99d": [ "1.1.0", "3.1.0", @@ -29228,6 +29686,7 @@ "3.1.2", "3.1.3" ], + "992f8568-0eec-4d3b-bd8d-962486cb706c": ["23.1.0"], "99796404-38d2-487b-887e-5b581b5c47eb": [ "0.0.3", "0.1.0", @@ -29486,7 +29945,9 @@ "99ea0209-b47e-4a35-8084-9a8eb95838ee": ["0.1.0", "0.1.1"], "9a42f43b-1191-4139-a980-32915814b378": ["1.0.0"], "9a4aaa5b-0edd-4018-b9eb-60dbba0ab713": ["2.0.0", "2.0.1", "2.2.0"], + "9a53d609-93d6-49ba-a389-ded339231449": ["23.1.0"], "9a610776-bf44-420c-8c39-6c3eaa907b19": ["0.2.5"], + "9a8522df-c774-43b0-9a27-8f6682bc7935": ["23.1.0"], "9a90d8a1-59bd-4e6d-a272-395ebca0781d": [ "1.0.0", "1.0.1", @@ -29775,6 +30236,7 @@ "2.1.10", "3.0.10" ], + "9cd3110e-b677-4719-a290-57aa5b1b2928": ["23.1.0"], "9cd95940-14a5-11e9-a400-87ffab4fe319": [ "0.2.0", "0.2.1", @@ -29791,7 +30253,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "9cfebe8e-5edf-4a96-95f9-3aa8237e4789": ["0.0.2", "0.0.3"], "9d1e977a-aefd-486a-9c6c-de05d613a65d": [ @@ -30037,6 +30500,7 @@ "2.4.2", "2.4.3" ], + "9ee808fd-b3ed-4a55-91d4-060c597bbbfb": ["23.1.0"], "9f152d4d-9616-47f8-a0a8-fc1a8c88afbe": [ "1.420.10", "1.420.213", @@ -30452,6 +30916,7 @@ "1.1.7" ], "a0a0f697-cc4b-5bd3-bc8d-22ad9c77baab": ["0.125.0", "1.131.0", "2.214.0"], + "a0aec1ff-837c-49fd-98e4-3477816314d0": ["23.1.0"], "a0ca5cb2-bacd-46ab-82dc-b0e1984f6006": [ "8.5.171", "8.5.742", @@ -30498,7 +30963,9 @@ "9.1.31663", "9.1.41672", "9.1.51686", - "9.1.61689" + "9.1.61689", + "9.1.71696", + "9.1.81710" ], "a0cea86d-5dc4-4df4-bbf7-1940642467c2": ["1.188.0"], "a0d38a2c-522d-4ece-973f-1cf9b6ea158c": ["0.202.0"], @@ -30898,7 +31365,11 @@ "0.202.17", "0.202.18", "0.202.19", - "0.203.0" + "0.202.20", + "0.202.21", + "0.203.0", + "1.216.20", + "1.216.21" ], "a48708ef-a5d6-40f5-a9be-589847132834": ["9.0.91", "10.0.2", "12.0.3"], "a48708ef-a5d6-4af5-a9be-589847132834": [ @@ -30938,7 +31409,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "a4b6bbe8-1976-45f9-9595-444dedb5743f": [ "1.0.0", @@ -31079,6 +31551,7 @@ ], "a67d9016-264e-4df8-b47e-85ea302d09b3": ["3.0.0", "3.0.1", "4.0.0", "5.0.1"], "a6808a30-c138-11e6-8c43-453c29d2d2d0": ["1.0.0"], + "a68cb3bc-ad13-4bd8-9d65-7fbd54d5092e": ["23.1.0"], "a6900347-c049-485c-b383-2902e10c28f2": [ "0.0.2", "0.0.3", @@ -31425,10 +31898,20 @@ "0.1.33", "0.1.34", "0.1.35", - "0.1.36" + "0.1.36", + "0.1.37", + "0.1.38", + "0.1.39", + "0.1.40", + "0.1.41" ], "a709d5ab-8356-4228-9172-58d362fc4aa7": ["0.1.18"], - "a7692b5d-a590-5763-949b-12ac8ed24643": ["1.151.3", "1.212.0", "1.214.0"], + "a7692b5d-a590-5763-949b-12ac8ed24643": [ + "1.151.3", + "1.212.0", + "1.214.0", + "1.215.0" + ], "a7773296-2290-4fd7-9de1-c8da4e853d30": ["1.0.3", "2.0.3"], "a7773296-2290-4fd7-9de1-c8da4e853d4d": ["0.0.1", "0.0.2", "0.0.3", "1.0.1"], "a7857778-b8db-4355-8abf-ec7ea154cb7d": [ @@ -31759,6 +32242,7 @@ "3.0.25", "3.0.26" ], + "a847e2d1-5435-4d52-a774-6d300953e85f": ["6.0.465", "6.0.502"], "a8515ec8-7254-4ffd-912c-86772e2b5962": [ "0.1.1", "0.1.2", @@ -32224,6 +32708,7 @@ "0.1.178" ], "aammirmirza.cp-adolicensemanagementpublic.adolicensemanagement-task.4e779492-fcca-40f0-bf69-2b3a577b3ba5": [ + "1.0.3", "1.107.1", "1.109.1", "1.111.1", @@ -32251,6 +32736,7 @@ "1.202.1" ], "aammirmirza.cp-adolicensemanagementpublic.adolicensemanagement-task.adolicensemanagement": [ + "1.0.3", "1.107.1", "1.109.1", "1.111.1", @@ -32530,6 +33016,7 @@ "1.0.30" ], "ab2326bd-b83b-4a74-a5a5-a3927c5a229c": ["1.0.1"], + "ab2c4c3d-e4d9-49df-9276-abcc5dfcbc14": ["23.1.0"], "ab41f149-dbaa-4bf3-b1df-905d523a16c1": [ "1.1.4999", "1.1.5999", @@ -33627,11 +34114,15 @@ "4.3.109", "4.3.131", "4.3.134", + "4.3.465", + "4.3.502", "5.0.57", "5.0.66", "5.0.109", "5.0.131", - "5.0.134" + "5.0.134", + "5.0.465", + "5.0.502" ], "ac1f75f1-98c5-4415-a210-3ad9ca9d6ecd": [ "0.0.1", @@ -33735,6 +34226,13 @@ "1.0.30", "1.1.0" ], + "ac700bde-8e4a-4ad2-9294-11428966fd4c": [ + "0.0.135", + "0.0.136", + "0.0.137", + "0.1.0", + "1.0.0" + ], "ac7516c6-a23c-4cb9-bbb9-4c36f067990d": [ "1.0.0", "1.0.1", @@ -33910,7 +34408,8 @@ "1.1.6", "1.1.7" ], - "acunetix360": ["1.0.0", "1.4.0", "1.5.0", "1.5.1", "1.7.0"], + "acunetix360": ["1.0.0", "1.4.0", "1.5.0", "1.5.1", "1.7.0", "1.8.0"], + "ad-emailreport": ["1.0.0"], "ad183166-f693-52e5-8295-eaed417a6aee": [ "1.0.31", "1.0.32", @@ -33934,7 +34433,8 @@ "1.1.17", "1.1.19", "1.1.20", - "1.1.21" + "1.1.21", + "1.1.23" ], "ad266ad9-f30e-41de-a093-988972a0bd7a": [ "1.0.3", @@ -33975,6 +34475,7 @@ ], "ad5ad4a9-f3e0-4ca1-bf35-855d197482e9": ["5.6.10"], "ad5ee7de-41ec-42c8-84d0-8359bc39a4f5": ["0.1.0", "1.0.0"], + "ad948672-12e4-4c52-b6ef-8c84cc5d8ada": ["23.1.0"], "ad98d6a4-f775-45e0-a4c1-6b31b89f38d1": [ "1.0.1", "1.0.2", @@ -34047,7 +34548,8 @@ "2.0.27192", "2.0.27255", "2.0.27445", - "3.0.46092" + "3.0.46092", + "4.0.84386" ], "ada8b39e-bc7b-49a4-80a8-e7b21d5a4252": [ "0.1.32", @@ -34568,6 +35070,30 @@ "adnansamuel.crm-fetchxml-to-csv-json.fetchxmltojson.dc9235f5-affc-421b-954d-956dcd41d874": [ "1.0.2" ], + "adnansamuel.crm-powercrm-fetchxml-builder-data.power-crm-tools-fetchxml-builder-view-data.371728ed-32fa-44a1-916c-6032a2a43452": [ + "1.1.1", + "1.1.2" + ], + "adnansamuel.crm-powercrm-fetchxml-builder-data.power-crm-tools-fetchxml-builder-view-data.power-crm-tools-fetchxml-builder-view-data": [ + "1.1.1", + "1.1.2" + ], + "adnansamuel.crm-powercrm-fetchxml-builder-data.power-crm-tools-fetchxml-upsert-data.1410d014-3cf1-4210-9f37-499c93af86cf": [ + "1.0.3", + "1.0.4" + ], + "adnansamuel.crm-powercrm-fetchxml-builder-data.power-crm-tools-fetchxml-upsert-data.power-crm-tools-fetchxml-upsert-data": [ + "1.0.3", + "1.0.4" + ], + "adnansamuel.crm-powercrm-fetchxml-builder-data.power-crm-tools-webapi-installer-upsert--view-data.3802fecc-9613-4136-9c84-216279e34cb4": [ + "1.0.2", + "1.0.3" + ], + "adnansamuel.crm-powercrm-fetchxml-builder-data.power-crm-tools-webapi-installer-upsert--view-data.power-crm-tools-webapi-installer-upsert-data": [ + "1.0.2", + "1.0.3" + ], "adnansamuel.power-crm-tools.power-crm-service-endpoint-task.ddcc8973-36eb-47fb-8d52-0ac405ef1d65": [ "1.0.3" ], @@ -34704,6 +35230,7 @@ "1.3.0" ], "adolicensemanagement": [ + "1.0.3", "1.107.1", "1.109.1", "1.111.1", @@ -35156,7 +35683,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "aef39911-3d63-40d6-bdef-909edadf0005": [ "2.1.1309266", @@ -35175,29 +35703,12 @@ "2.11.3094444", "2.11.3105315", "2.11.3206699", - "2.11.3214338" + "2.11.3214338", + "2.11.3445511", + "3.0.3517186" ], "aef91bee-4793-41aa-b8e8-96a3b2de4ce4": ["1.0.13", "1.0.15"], - "aelij.servicefabrictools.servicefabricpackageversioning.346e3d65-2f3f-4bba-9e59-4137b41fd79e": [ - "1.0.0", - "1.0.1", - "1.0.2", - "1.0.3", - "1.1.0", - "1.2.0", - "1.3.0", - "1.4.0" - ], - "aelij.servicefabrictools.servicefabricpackageversioning.servicefabricpackageversioning": [ - "1.0.0", - "1.0.1", - "1.0.2", - "1.0.3", - "1.1.0", - "1.2.0", - "1.3.0", - "1.4.0" - ], + "af1fd5e0-48e5-4444-9a41-67ebc3981530": ["23.1.0"], "af2736a0-e189-11e5-8909-474652c774cb": ["0.1.4"], "af548c05-29b1-497d-823c-2d172019ccf4": [ "1.20200421.29360", @@ -35782,7 +36293,8 @@ "2.425.0", "2.426.0", "2.427.0", - "2.430.0" + "2.430.0", + "2.431.0" ], "agile-extensions.bravo-notes.releasenotes.releasenotes": [ "2.9.0", @@ -36017,7 +36529,8 @@ "2.425.0", "2.426.0", "2.427.0", - "2.430.0" + "2.430.0", + "2.431.0" ], "aicustomevent": ["0.1.0", "0.2.0"], "aitgmbh.aithyperv.92be4bbf-8ab1-464a-bfc0-840d2a667725.2317ac39-2411-4668-be26-97430f8dbadd": [ @@ -36124,6 +36637,16 @@ "akhmadtest.build-release-task.custom-build-release-task.buildandreleasetask": [ "1.0.0" ], + "akv-code-sign": [ + "0.2.1", + "0.2.2", + "0.2.3", + "0.2.4", + "0.3.0", + "1.0.0", + "1.0.1", + "1.0.2" + ], "alanwales.resharper-code-analysis.custom-build-task.357e581f-2683-4ac4-aff6-2c2445f063c5": [ "1.0.30", "1.0.31", @@ -36727,6 +37250,10 @@ "alexlofern.azkvtkzip.azkvtkziprun.azurekeyvaulttokenizationfilewithziparchivesupport": [ "1.0.57" ], + "alexsultan.ad-email-reports.emailreport.36fd41b1-8024-4ce9-a5a0-53c3e54ed106": [ + "1.0.0" + ], + "alexsultan.ad-email-reports.emailreport.ad-emailreport": ["1.0.0"], "aliencube.netlify-cli-extensions.deploy-task.adc3fb6d-1396-46d3-96e7-085b4881e1a2": [ "1.0.0" ], @@ -43310,17 +43837,6 @@ "0.1.25", "0.1.29" ], - "anchore": ["0.0.2", "0.0.3", "0.0.65"], - "anchoreinc.anchore-scan-task.anchore-scan-task.anchore": [ - "0.0.2", - "0.0.3", - "0.0.65" - ], - "anchoreinc.anchore-scan-task.anchore-scan-task.c7eedb3a-374e-4626-a168-bfb0e9f39a87": [ - "0.0.2", - "0.0.3", - "0.0.65" - ], "anchoretask": [ "1.2.3", "1.3.0", @@ -43999,6 +44515,7 @@ "0.0.3", "0.0.4", "0.0.5", + "0.0.6", "0.0.7", "0.0.10", "0.0.11", @@ -45600,7 +46117,8 @@ "1.183.0", "1.186.0", "1.189.0", - "1.207.0" + "1.207.0", + "1.218.0" ], "appstorerelease": [ "1.0.0", @@ -45623,7 +46141,8 @@ "1.186.0", "1.188.0", "1.189.0", - "1.207.0" + "1.207.0", + "1.218.0" ], "apptestai-test": [ "0.0.10", @@ -45695,7 +46214,9 @@ "4.1.16", "4.1.17", "4.1.18", - "4.1.19" + "4.1.19", + "4.1.20", + "4.1.21" ], "aquasec.aquasec.showcommits.aquasecscanner": [ "0.1.0", @@ -45735,7 +46256,9 @@ "4.1.16", "4.1.17", "4.1.18", - "4.1.19" + "4.1.19", + "4.1.20", + "4.1.21" ], "aquasec.aquasecserverles.showcommits.53872c9a-a53f-4fcf-973d-8ded3d75432b": [ "1.0.0", @@ -45827,7 +46350,9 @@ "4.1.16", "4.1.17", "4.1.18", - "4.1.19" + "4.1.19", + "4.1.20", + "4.1.21" ], "aquasecurityofficial.tfsec-official.custom-build-release-task.c4d1b8a0-2ef3-4ed7-86ae-a83946199e82": [ "0.1.0", @@ -48625,7 +49150,8 @@ "3.1.6", "3.2.0", "3.2.1", - "3.2.2" + "3.2.2", + "3.2.3" ], "assembly-info-netframework": [ "2.0.65", @@ -48642,7 +49168,8 @@ "3.1.6", "3.2.0", "3.2.1", - "3.2.2" + "3.2.2", + "3.2.3" ], "assembly-info-task": [ "1.0.0", @@ -49189,6 +49716,15 @@ "1.0.40", "1.0.41" ], + "avd-code-sign": [ + "0.0.1", + "0.0.2", + "0.1.0", + "0.1.1", + "0.1.4", + "0.1.5", + "0.1.6" + ], "avdbrink.vsts-ssas.buildssas-task.6fc422c6-f77e-4ebe-b124-d008ba47f4d0": [ "0.3.4", "0.3.5", @@ -50299,7 +50835,8 @@ "1.0.2", "1.0.3", "1.0.4", - "1.0.5" + "1.0.5", + "1.1.0" ], "az-pipelines-2-sharepoint": [ "0.1.0", @@ -50571,7 +51108,9 @@ "1.2.17", "1.2.18", "1.2.19", - "1.2.20" + "1.2.20", + "1.2.21", + "1.2.22" ], "azloadtest.azloadtesting.custom-build-release-task.azureloadtesting": [ "1.1.19", @@ -50617,7 +51156,9 @@ "1.2.17", "1.2.18", "1.2.19", - "1.2.20" + "1.2.20", + "1.2.21", + "1.2.22" ], "azloadtest.azloadtesting.custom-build-release-task.microsoftazloadtest": [ "1.1.2", @@ -50861,7 +51402,13 @@ "azure function keys": ["1.0.7", "1.0.8"], "azure search: create object": ["1.0.0"], "azure_fbig_publish": ["0.1.0"], - "azure-api-management-services": ["1.0.0"], + "azure-api-management-services": [ + "0.0.135", + "0.0.136", + "0.0.137", + "0.1.0", + "1.0.0" + ], "azure-cosmosdb.emulator-public-preview.run-cosmosdbemulatorcontainer.63c722b8-ca8a-4830-8a46-8a6b7bce9c00": [ "2.0.1", "2.0.2", @@ -51583,7 +52130,8 @@ "4.0.0", "5.0.0", "5.1.0", - "5.2.0" + "5.2.0", + "6.0.0" ], "azureappconfiguration.azure-app-configuration-task-push.custom-build-release-task.014d1f42-f7ad-4418-b165-5bf03802417e": [ "1.0.0", @@ -51603,7 +52151,8 @@ "3.3.0", "3.4.0", "4.4.0", - "4.5.0" + "4.5.0", + "5.0.0" ], "azureappconfiguration.azure-app-configuration-task-push.custom-build-release-task.azureappconfigurationpush": [ "1.0.0", @@ -51623,7 +52172,8 @@ "3.3.0", "3.4.0", "4.4.0", - "4.5.0" + "4.5.0", + "5.0.0" ], "azureappconfiguration.azure-app-configuration-task.custom-build-release-task.6e2729df-2211-4a7c-af6f-b726bbca2a3a": [ "0.1.0", @@ -51677,7 +52227,8 @@ "4.0.0", "5.0.0", "5.1.0", - "5.2.0" + "5.2.0", + "6.0.0" ], "azureappconfiguration.azure-app-configuration-task.custom-build-release-task.azureappconfiguration": [ "0.1.0", @@ -51731,7 +52282,8 @@ "4.0.0", "5.0.0", "5.1.0", - "5.2.0" + "5.2.0", + "6.0.0" ], "azureappconfigurationpush": [ "1.0.0", @@ -51751,7 +52303,8 @@ "3.3.0", "3.4.0", "4.4.0", - "4.5.0" + "4.5.0", + "5.0.0" ], "azureappsericeplanprovision": [ "0.0.1", @@ -51803,7 +52356,13 @@ "0.1.3", "0.1.4", "0.1.6", - "0.1.7" + "0.1.7", + "0.1.8", + "0.1.9", + "0.1.10", + "0.1.11", + "0.1.12", + "0.1.13" ], "azurecostssaver": [ "0.0.1", @@ -52216,7 +52775,9 @@ "1.2.17", "1.2.18", "1.2.19", - "1.2.20" + "1.2.20", + "1.2.21", + "1.2.22" ], "azureloadtesting": [ "1.1.19", @@ -52332,6 +52893,9 @@ "19.1.0", "20.1.0" ], + "azurepullrequest": ["1.0.5", "1.0.6", "1.0.9", "1.0.10", "1.0.11"], + "azurepullrequest1": ["1.0.12"], + "azurepullrequest2": ["1.0.13"], "azurerbac": ["1.2.3", "1.2.9", "1.3.0", "1.3.1", "1.3.2", "1.3.3"], "azurerbas": ["1.0.0", "1.2.0", "1.2.1", "1.2.2"], "azureresourcegroup": ["1.0.0", "1.0.1", "1.0.2"], @@ -52738,6 +53302,7 @@ "15.145.0" ], "b0b5419e-bdda-48b4-84fa-55d8af6b5bfb": ["1.0.0"], + "b0c5b027-c823-4a19-a86f-8717d8fcfb40": ["23.1.0"], "b0e438f2-18ba-44df-b6e5-1deb7a29811f": ["1.19.1", "1.21.1"], "b104a15c-1856-4671-986f-e40a6cb517e5": [ "1.0.4", @@ -52798,7 +53363,10 @@ "1.0.3", "1.0.4", "1.0.5", - "1.0.6" + "1.0.6", + "1.1.3", + "1.1.4", + "1.1.5" ], "b1861ef4-b62e-40c1-bcb0-be00d454a8a7": [ "4.0.371", @@ -52831,11 +53399,15 @@ "4.3.109", "4.3.131", "4.3.134", + "4.3.465", + "4.3.502", "5.0.57", "5.0.66", "5.0.109", "5.0.131", - "5.0.134" + "5.0.134", + "5.0.465", + "5.0.502" ], "b1a34be1-7833-46ef-adcc-8196d9412904": ["0.0.2", "0.0.3"], "b1c46470-e40b-48b4-aac2-e769c992617f": [ @@ -52926,6 +53498,8 @@ "3.5.149", "3.5.161", "3.5.178", + "3.5.220", + "3.5.260", "4.0.8", "4.0.50", "4.0.89", @@ -52936,7 +53510,9 @@ "4.0.142", "4.0.149", "4.0.161", - "4.0.178" + "4.0.178", + "4.0.220", + "4.0.260" ], "b2c-policy-build": [ "0.1.0", @@ -53014,7 +53590,7 @@ ], "b2d623e9-bbcc-4593-8042-7bbfdd38fd15": ["0.2.0", "0.2.1", "0.3.0", "0.4.0"], "b2e0a66a-1021-4eea-b6df-0e5340fb555b": ["1.0.0"], - "b35a84b6-16c3-4d53-9593-53e8ff6e28ca": ["2.0.0", "2.1.0", "3.1.0"], + "b35a84b6-16c3-4d53-9593-53e8ff6e28ca": ["2.0.0", "2.1.0", "3.1.0", "3.2.0"], "b35d967b-7bc2-40aa-8824-d3917fdd2890": ["1.0.0"], "b3c54483-4140-45d8-b442-3a0b096b5f7f": [ "0.8.0", @@ -53544,7 +54120,10 @@ "0.1.60", "0.1.61", "0.1.62", - "0.1.63" + "0.1.63", + "0.1.64", + "0.1.65", + "0.1.66" ], "b60538b8-6048-4c68-bc55-f2ebec1c3d72": ["21.4.1"], "b61b360c-31ac-4389-922b-303ea8befde7": [ @@ -53580,7 +54159,9 @@ "1.2.17", "1.2.18", "1.2.19", - "1.2.20" + "1.2.20", + "1.2.21", + "1.2.22" ], "b629298d-31f0-4261-8b9e-aa99349c8da9": [ "0.0.1", @@ -53740,7 +54321,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "b721bb9b-9a4d-4ee5-aa08-a6b053d4fd8a": [ "0.2.6", @@ -53809,7 +54392,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "b7776e79-2995-4cd3-8354-ccc2c5ae21a4": [ "0.1.1", @@ -53951,7 +54535,9 @@ "9.1.31663", "9.1.41672", "9.1.51686", - "9.1.61689" + "9.1.61689", + "9.1.71696", + "9.1.81710" ], "b7cd5a2e-1c4c-4f61-8b25-ba72cf4fc8ce": [ "0.1.0", @@ -53974,7 +54560,9 @@ "0.1.18", "0.2.0", "1.0.0", - "1.0.5" + "1.0.5", + "1.0.6", + "1.0.7" ], "b7dca1f3-958e-4cb4-9ee9-94a4039099ed": ["1.0.0"], "b7e2e16c-c7c7-4a4b-bdc2-e2662823beee": [ @@ -54014,6 +54602,7 @@ "0.34.0" ], "b7e4e747-3d00-4d72-bbf8-154889c0ae17": ["1.0.0"], + "b7f1f322-d1fb-4361-a83f-1f45c81c6bc4": ["23.1.0"], "b803651c-21ac-4851-9fbf-c75b0e82e4c5": [ "0.8.0", "0.9.0", @@ -54213,6 +54802,8 @@ "3.5.149", "3.5.161", "3.5.178", + "3.5.220", + "3.5.260", "4.0.8", "4.0.50", "4.0.89", @@ -54223,7 +54814,9 @@ "4.0.142", "4.0.149", "4.0.161", - "4.0.178" + "4.0.178", + "4.0.220", + "4.0.260" ], "b876037c-d990-4718-baca-65a8df0dd9dd": [ "1.0.1", @@ -54380,6 +54973,7 @@ ], "ba7a9474-2599-45da-877d-75e5ad6df8ce": ["21.4.1"], "ba7d1938-81b7-4018-be0a-61093123521b": ["1.3.5"], + "baaac1a9-a733-4cd2-ac9c-f1efe6c04fd1": ["23.1.0"], "bab49c9c-fc9b-4d7c-9919-c4272a0930b7": ["9.0.2", "12.0.3"], "backendpack": ["0.1.18", "0.1.19", "1.0.7", "1.0.8", "1.0.9"], "backrightup.build-release-task.custom-build-release-task.9674ffe2-37d9-468a-acd1-724db1a396d0": [ @@ -54425,7 +55019,7 @@ "backupremotefolder": ["1.0.0"], "backuprollback": ["0.1.0", "1.0.0"], "backuputility": ["1.0.0"], - "bad9770c-4811-4fb9-801b-650a6966f454": ["1.0.2"], + "bad9770c-4811-4fb9-801b-650a6966f454": ["1.0.2", "1.0.3"], "badge-creator": ["1.0.0", "1.1.0"], "balamuralikrishna.securefiletask.securefiletask.53ae5081-c40d-434c-9c22-82842c499065": [ "0.0.16" @@ -54661,7 +55255,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "bd4d515f-a13f-46fe-95b2-73ae781224cb": ["2.5.0", "2.5.1", "2.6.0"], "bd52c556-555b-48b0-8ba2-6f4b0f51d599": ["0.0.1", "0.1.1"], @@ -54879,7 +55474,11 @@ "5.1.12", "5.1.13", "5.1.14", - "5.1.15" + "5.1.15", + "5.1.16", + "5.1.17", + "5.1.18", + "5.1.19" ], "beaglesecurity.beaglesecurity.beagle-start-test-azure-task.beaglesecuritytask": [ "0.1.0" @@ -55846,7 +56445,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "bf3abc1f-7d0b-41a3-bbb8-c1bd178b4fa8": ["7.5.0"], "bf3b9233-0a55-4611-95ce-771ccc2c2cf0": [ @@ -55955,6 +56556,7 @@ "1.0.2894", "1.0.2895" ], + "bf52d8fd-c399-4acd-98c7-a03ceee2a973": ["1.0.19", "1.0.20", "1.0.21"], "bf52d8fd-c399-4acd-98c7-a03ceee2a974": [ "0.1.0", "1.0.1", @@ -56033,7 +56635,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "bfd2bc68-a3b1-4910-bf8f-110fe978ca22": [ "5.8.0", @@ -56692,7 +57295,14 @@ "0.3.4", "0.3.6", "0.3.7", - "0.3.8" + "0.3.8", + "0.3.9", + "0.4.0", + "0.4.1", + "0.4.2", + "0.4.3", + "0.4.4", + "0.4.5" ], "bicepdecompile": [ "0.3.1", @@ -56701,7 +57311,14 @@ "0.3.4", "0.3.6", "0.3.7", - "0.3.8" + "0.3.8", + "0.3.9", + "0.4.0", + "0.4.1", + "0.4.2", + "0.4.3", + "0.4.4", + "0.4.5" ], "bicepinstall": [ "0.1.0", @@ -56723,14 +57340,39 @@ "0.3.4", "0.3.6", "0.3.7", - "0.3.8" + "0.3.8", + "0.3.9", + "0.4.0", + "0.4.1", + "0.4.2", + "0.4.3", + "0.4.4", + "0.4.5" ], "biceptemplatedeployment": ["1.0.8", "1.0.9"], - "bigavocado.terragrunt.installterragrunt.c67b072a-0853-4578-95c1-acbc26e8897a": [ - "0.1.0" - ], - "bigavocado.terragrunt.installterragrunt.installterragrunt": ["0.1.0"], "binaries-comparer": ["0.1.1", "0.1.3", "0.2.0", "0.2.1", "0.2.2", "0.2.3"], + "bioscientia-instfrmedizinischediagnostik-softwareentwicklung.dependency-track-vsts.bomupload.51c7cdd8-1e0b-4db3-8513-ffcdbe1959f3": [ + "0.0.0", + "0.0.1", + "0.0.2" + ], + "bioscientia-instfrmedizinischediagnostik-softwareentwicklung.dependency-track-vsts.bomupload.bomupload": [ + "0.0.0", + "0.0.1", + "0.0.2" + ], + "bioscientia-instfrmedizinischediagnostik-softwareentwicklung.dependency-track-vsts.upload-bom-dtrack-task.dc642a62-e5cc-49d4-8017-a0b76dd6e04b": [ + "0.0.0" + ], + "bioscientia-instfrmedizinischediagnostik-softwareentwicklung.dependency-track-vsts.upload-bom-dtrack-task.upload-bom-dtrack-task": [ + "0.0.0" + ], + "bioscientia-instfrmedizinischediagnostik-softwareentwicklung.dependency-track-vsts.upload-bom-task.d33ffb6a-a67c-41d0-bc75-c09695e2be5b": [ + "0.0.0" + ], + "bioscientia-instfrmedizinischediagnostik-softwareentwicklung.dependency-track-vsts.upload-bom-task.upload-bom-task": [ + "0.0.0" + ], "biswajitr.documentationascode.json-to-markdown.80f5ec84-70df-4ce5-9211-9a45de818c03": [ "0.0.0", "0.0.1", @@ -56945,7 +57587,8 @@ "2.1.0", "2.2.0", "2.3.0", - "2.4.0" + "2.4.0", + "2.5.0" ], "blaze-runner.blaze-runner.blazemeter-test.blazemeter integration": [ "1.1.2", @@ -56968,7 +57611,8 @@ "2.1.0", "2.2.0", "2.3.0", - "2.4.0" + "2.4.0", + "2.5.0" ], "blazemeter integration": [ "1.1.2", @@ -56991,7 +57635,8 @@ "2.1.0", "2.2.0", "2.3.0", - "2.4.0" + "2.4.0", + "2.5.0" ], "blazemobile pro": ["1.1.0", "1.2.0"], "bleddynrichards.assembly-info-task.assembly-info-netcore.assembly-info-netcore": [ @@ -57009,7 +57654,8 @@ "3.1.6", "3.2.0", "3.2.1", - "3.2.2" + "3.2.2", + "3.2.3" ], "bleddynrichards.assembly-info-task.assembly-info-netcore.f15dc48c-4351-4c96-927c-729360a3164b": [ "2.0.65", @@ -57026,7 +57672,8 @@ "3.1.6", "3.2.0", "3.2.1", - "3.2.2" + "3.2.2", + "3.2.3" ], "bleddynrichards.assembly-info-task.assembly-info-task.3edc451e-360c-40e5-a221-a42d5c987ab8": [ "1.0.0", @@ -57076,7 +57723,8 @@ "3.1.6", "3.2.0", "3.2.1", - "3.2.2" + "3.2.2", + "3.2.3" ], "bleddynrichards.assembly-info-task.assembly-info-task.assembly-info-netframework": [ "2.0.65", @@ -57093,7 +57741,8 @@ "3.1.6", "3.2.0", "3.2.1", - "3.2.2" + "3.2.2", + "3.2.3" ], "bleddynrichards.assembly-info-task.assembly-info-task.assembly-info-task": [ "1.0.0", @@ -57232,7 +57881,8 @@ "2.5.800", "2.5.801", "2.5.830", - "2.5.835" + "2.5.835", + "3.0.0" ], "bluebasher.bluebasher-workitemupdater.bluebasher-workitemupdater.workitemupdater": [ "1.0.0", @@ -57336,7 +57986,8 @@ "2.5.800", "2.5.801", "2.5.830", - "2.5.835" + "2.5.835", + "3.0.0" ], "bluegreenselection": [ "0.1.1", @@ -57409,41 +58060,84 @@ "1.0.1", "1.0.2", "1.0.3", - "1.0.4" + "1.0.4", + "1.0.5", + "1.0.6", + "1.0.7", + "1.0.8" + ], + "bmc-compuware-xpediter-code-coverage-plugin": [ + "1.0.0", + "1.0.2", + "1.0.3", + "1.0.4", + "1.0.6", + "1.0.7" + ], + "bmc-strobe-measurement-plugin": [ + "1.0.0", + "1.0.1", + "1.0.2", + "1.0.3", + "1.0.4", + "1.0.5", + "1.0.6" ], - "bmc-compuware-xpediter-code-coverage-plugin": ["1.0.0", "1.0.2"], - "bmc-strobe-measurement-plugin": ["1.0.0", "1.0.1", "1.0.2"], "bmc.bmc-compuware-topaz-utilities-plugin.custom-build-release-task.7e39beb7-ef8f-431e-94e4-7052d978705a": [ "1.0.0", "1.0.1", "1.0.2", "1.0.3", - "1.0.4" + "1.0.4", + "1.0.5", + "1.0.6", + "1.0.7", + "1.0.8" ], "bmc.bmc-compuware-topaz-utilities-plugin.custom-build-release-task.bmc-compuware-topaz-utilities-plugin": [ "1.0.0", "1.0.1", "1.0.2", "1.0.3", - "1.0.4" + "1.0.4", + "1.0.5", + "1.0.6", + "1.0.7", + "1.0.8" ], "bmc.bmc-compuware-xpediter-code-coverage-plugin.custom-build-release-task.bmc-compuware-xpediter-code-coverage-plugin": [ "1.0.0", - "1.0.2" + "1.0.2", + "1.0.3", + "1.0.4", + "1.0.6", + "1.0.7" ], "bmc.bmc-compuware-xpediter-code-coverage-plugin.custom-build-release-task.f8b65b7d-54e2-4ab4-aeeb-ca3db08cc6ed": [ "1.0.0", - "1.0.2" + "1.0.2", + "1.0.3", + "1.0.4", + "1.0.6", + "1.0.7" ], "bmc.bmc-strobe-measurement-plugin.custom-build-release-task.827b3576-c766-4996-84ba-cefba0325ee8": [ "1.0.0", "1.0.1", - "1.0.2" + "1.0.2", + "1.0.3", + "1.0.4", + "1.0.5", + "1.0.6" ], "bmc.bmc-strobe-measurement-plugin.custom-build-release-task.bmc-strobe-measurement-plugin": [ "1.0.0", "1.0.1", - "1.0.2" + "1.0.2", + "1.0.3", + "1.0.4", + "1.0.5", + "1.0.6" ], "bmc.bmcautorun.custom-build-release-task.36b2e1e2-9a87-4be7-bd17-68f97e5e995c": [ "23.1.0" @@ -57465,6 +58159,7 @@ "bmc.ispw-source-code-downloader.custom-build-release-task.downloadertask": [ "1.0.0" ], + "bomupload": ["0.0.0", "0.0.1", "0.0.2"], "bool.compile-type-script.compile-type-script-task.3933420c-5028-40d7-9eae-2f17f5484e17": [ "1.0.0", "1.0.1", @@ -57697,6 +58392,51 @@ "1.0.10", "1.0.11" ], + "boostsecurity.boostsecurityscan.custom-build-release-task.6e732eed-cdd3-4c5f-a714-b18847a1a0a6": [ + "0.1.1", + "0.1.6", + "0.1.8", + "0.1.9", + "0.1.10", + "0.1.11", + "0.1.12", + "0.1.13", + "0.1.14", + "0.1.15", + "0.1.16", + "1.0.0", + "1.0.3" + ], + "boostsecurity.boostsecurityscan.custom-build-release-task.boostsecurityscan": [ + "0.1.1", + "0.1.6", + "0.1.8", + "0.1.9", + "0.1.10", + "0.1.11", + "0.1.12", + "0.1.13", + "0.1.14", + "0.1.15", + "0.1.16", + "1.0.0", + "1.0.3" + ], + "boostsecurityscan": [ + "0.1.1", + "0.1.6", + "0.1.8", + "0.1.9", + "0.1.10", + "0.1.11", + "0.1.12", + "0.1.13", + "0.1.14", + "0.1.15", + "0.1.16", + "1.0.0", + "1.0.3" + ], "boots": ["0.1.0", "0.2.0", "0.5.0", "0.6.0", "0.7.0", "0.8.0", "1.0.0"], "bot-deployment": [ "0.1.0", @@ -57882,7 +58622,10 @@ "1.15.1239", "1.15.1261", "1.23.1279", - "1.24.1281" + "1.24.1281", + "1.25.1302", + "1.26.1308", + "1.27.1315" ], "buildahcli": [ "0.0.3", @@ -57897,7 +58640,7 @@ "0.0.50", "0.0.51" ], - "buildandreleasetask": ["1.0.0"], + "buildandreleasetask": ["0.1.0", "1.0.0"], "buildandreleasetasks": ["0.1.0"], "buildcleanup": ["0.0.2", "0.0.3", "1.0.0"], "buildconsole": ["5.6.7"], @@ -58348,6 +59091,7 @@ "0.9.1", "0.9.2" ], + "c003aa1a-03b9-4373-9a01-efd55559765d": ["23.1.0"], "c004e2d2-e842-40f0-9ed4-89fb9bdd2e33": [ "1.420.10", "1.420.213", @@ -58788,7 +59532,14 @@ "0.3.4", "0.3.6", "0.3.7", - "0.3.8" + "0.3.8", + "0.3.9", + "0.4.0", + "0.4.1", + "0.4.2", + "0.4.3", + "0.4.4", + "0.4.5" ], "c2352bb0-02ff-11e7-b013-d7281afbb3a9": ["0.0.1", "0.0.2"], "c2399c77-038c-48ca-86cf-f46ef717596e": ["1.0.0", "1.0.1"], @@ -58859,6 +59610,7 @@ "0.1.23", "0.1.30" ], + "c27fd67c-1147-4c17-9956-cbdd878eba56": ["23.1.0"], "c288dcae-5ae4-4a37-a59d-11bb07d393a9": [ "1.0.1", "1.0.2", @@ -58867,7 +59619,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "c2aea098-6aab-4cd3-9a0c-57b074df3df5": ["0.2.0", "0.2.5"], "c2f186c9-9a84-427b-bbbc-93f30eb1ac55": [ @@ -59100,7 +59854,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "c51ca1ce-0b54-627e-9571-3cbb14a64584": [ "0.1.0", @@ -59169,7 +59924,12 @@ "0.0.115", "0.0.2156" ], - "c61c6fcc-00f1-4aa0-8513-31aad3340512": ["0.7.5", "0.8.10", "0.8.34"], + "c61c6fcc-00f1-4aa0-8513-31aad3340512": [ + "0.7.5", + "0.8.10", + "0.8.34", + "0.9.19" + ], "c62eda9d-fa8a-4910-9372-8e366a585832": [ "0.11.0", "1.5.10", @@ -59288,6 +60048,7 @@ "1.0.14" ], "c6e8cd46-7141-41d1-b21e-9932e08fa67f": [ + "1.0.1", "1.11.0", "1.11.1", "1.11.21", @@ -59303,7 +60064,8 @@ "1.11.121", "1.11.131", "1.11.141", - "1.11.151" + "1.11.151", + "1.12.41" ], "c6f3c728-4d4c-4aa5-a3a1-fc16f6ff9a66": [ "1.3.0", @@ -59342,7 +60104,9 @@ "3.14.0", "3.15.0", "3.16.0", - "3.17.0" + "3.17.0", + "3.18.0", + "3.19.0" ], "c6fadf1b-ead4-442f-b470-62f4c455a70c": ["2.0.0"], "c704915c-1f6c-4237-9edd-4330da1ad3e6": [ @@ -59408,7 +60172,6 @@ "0.9.15" ], "c791abe6-9acf-4302-bcbd-af77c84f72c0": ["0.2.0", "0.2.3", "0.2.4", "0.2.5"], - "c7eedb3a-374e-4626-a168-bfb0e9f39a87": ["0.0.2", "0.0.3", "0.0.65"], "c7ff6910-8d2a-43cb-859f-83cb8db6e4e9": [ "0.1.0", "0.2.0", @@ -60342,7 +61105,11 @@ "5.4.35", "5.4.48", "5.4.52", - "5.4.55" + "5.4.55", + "5.4.59", + "5.4.61", + "5.4.62", + "5.4.66" ], "casthighlight.highlight-automated-code-scan.custom-build-task.highlightcodescan": [ "0.1.0", @@ -60405,7 +61172,11 @@ "5.4.35", "5.4.48", "5.4.52", - "5.4.55" + "5.4.55", + "5.4.59", + "5.4.61", + "5.4.62", + "5.4.66" ], "catcomp.btdfprojectfileupdatertypescript.vsts-btdf-projver-task.416b14b0-7411-4148-bdbe-42f73fd86c77": [ "0.1.2", @@ -60597,7 +61368,8 @@ "1.183.0", "1.186.0", "1.189.0", - "1.207.0" + "1.207.0", + "1.218.0" ], "cbbf7f14-c386-4c1f-80a3-fe500e2bd977": [ "1.112.0", @@ -60610,7 +61382,8 @@ "1.178.2", "1.186.0", "1.189.0", - "1.207.0" + "1.207.0", + "1.218.0" ], "cbe6d7cf-333e-4613-9a10-338057fc2aed": ["0.1.0"], "cbe8d5fd-a02d-4157-8bfa-21f98fcaa217": [ @@ -60647,7 +61420,8 @@ "8.2.0", "8.3.0", "8.5.0", - "8.6.0" + "8.6.0", + "8.7.0" ], "cbebb02b-11c6-4e24-b5a8-0b51366d51b7": ["0.2.5"], "cboroson-keyvault-replication": [ @@ -61160,7 +61934,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "cc3fd650-56d4-11e6-8258-d3f2fd672f0b": [ "0.1.0", @@ -61297,7 +62072,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "cce8979f-88a6-4ff2-8742-23dac3c088b4": [ "0.0.1", @@ -61594,7 +62371,9 @@ "1.32.0", "1.33.0", "1.33.1", - "1.34.0" + "1.34.0", + "1.35.0", + "1.36.0" ], "ce0b296e-f1e6-4be2-a18b-a431c106cb86": [ "0.0.76", @@ -61608,7 +62387,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "ce296515-b55b-4894-924a-eb7a57d618f1": ["1.0.3"], "ce399001-0aaa-4364-b5f8-50543569449d": ["1.0.1"], @@ -62122,6 +62902,20 @@ "celezant.azure-apim-automation.custom-build-release-task.d323ff86-13d8-4453-a664-6bc3c5814f81": [ "1.0.0" ], + "celezant.azure-apim-cleanup.custom-build-release-task.ac700bde-8e4a-4ad2-9294-11428966fd4c": [ + "0.0.135", + "0.0.136", + "0.0.137", + "0.1.0", + "1.0.0" + ], + "celezant.azure-apim-cleanup.custom-build-release-task.azure-api-management-services": [ + "0.0.135", + "0.0.136", + "0.0.137", + "0.1.0", + "1.0.0" + ], "certinstaller": ["1.0.0", "1.0.1", "1.0.2"], "cf234ecc-192f-42bf-a181-d3f360bea604": ["7.5.0"], "cf24a547-faff-4361-a547-6fc7c4f5cceb": [ @@ -62183,6 +62977,12 @@ "4.0.0" ], "cfed8e5e-c912-4257-a75d-17f646d4d4c6": ["7.5.0"], + "cfia-acia.maikvandergaag-trigger-pipeline.triggerpipeline.75f83f0e-8555-49bf-8194-d6d0f943ffc2": [ + "2.0.10" + ], + "cfia-acia.maikvandergaag-trigger-pipeline.triggerpipeline.triggerpipeline": [ + "2.0.10" + ], "cflint": [ "1.0.2", "1.0.7", @@ -62843,6 +63643,7 @@ "check-url": ["1.0.0"], "checkartifactconsistency": ["0.0.13", "0.0.14", "0.0.15", "0.0.16"], "checkduplicatenugetpackages": ["1.0.0"], + "checkmarx": ["2.0.19"], "checkmarx ast": [ "0.0.8", "0.0.11", @@ -62868,8 +63669,10 @@ "2.0.15", "2.0.16", "2.0.17", - "2.0.18" + "2.0.18", + "2.0.20" ], + "checkmarx.checkmarx-ast-azure-plugin.cx-scan-task.checkmarx": ["2.0.19"], "checkmarx.checkmarx-ast-azure-plugin.cx-scan-task.checkmarx ast": [ "0.0.8", "0.0.11", @@ -62895,7 +63698,8 @@ "2.0.15", "2.0.16", "2.0.17", - "2.0.18" + "2.0.18", + "2.0.20" ], "checkmarx.checkmarx-ast-azure-plugin.cx-scan-task.dd862edc-5d88-4d2c-b83b-fff2a695e5c0": [ "0.0.8", @@ -62922,7 +63726,9 @@ "2.0.15", "2.0.16", "2.0.17", - "2.0.18" + "2.0.18", + "2.0.19", + "2.0.20" ], "checkmarx.cxsast.cx-scan-task.5262fee4-b921-4e23-9d22-3bccaa562688": [ "0.1.2", @@ -66028,11 +66834,19 @@ ], "cloudmaker.cloudmakerenterpriseserver.cloudmakerenterpriseserverazuredeployment.60b0c2bb-66cb-4284-9482-543cef6da436": [ "1.0.4", - "1.0.5" + "1.0.5", + "1.0.6", + "1.0.7", + "1.0.8", + "1.0.9" ], "cloudmaker.cloudmakerenterpriseserver.cloudmakerenterpriseserverazuredeployment.cloudmakerenterpriseserverazuredeployment": [ "1.0.4", - "1.0.5" + "1.0.5", + "1.0.6", + "1.0.7", + "1.0.8", + "1.0.9" ], "cloudmakerazuredeployment": [ "1.0.1", @@ -66086,7 +66900,14 @@ "0.1.8", "0.1.9" ], - "cloudmakerenterpriseserverazuredeployment": ["1.0.4", "1.0.5"], + "cloudmakerenterpriseserverazuredeployment": [ + "1.0.4", + "1.0.5", + "1.0.6", + "1.0.7", + "1.0.8", + "1.0.9" + ], "cloudpup.authenticated-scripts.bash-task.4ab323dd-2404-4b0f-8df2-397cb1a6e7be": [ "1.0.11", "1.0.12", @@ -66735,7 +67556,7 @@ ], "cnfsegregationtask": ["22.6.0"], "cobertura-transform": ["0.0.4", "0.0.5", "0.0.7", "0.0.8"], - "code insight scan": ["2.0.0", "2.1.0", "3.1.0"], + "code insight scan": ["2.0.0", "2.1.0", "3.1.0", "3.2.0"], "code-management-mainer": [ "1.0.0", "1.0.2", @@ -68241,7 +69062,8 @@ "1.2.12", "1.2.13", "1.2.14", - "1.2.15" + "1.2.15", + "1.2.16" ], "compile-type-script": ["1.0.0", "1.0.1", "1.0.2", "1.0.3", "1.0.4"], "compileax2012": [ @@ -68328,7 +69150,8 @@ "1.0.1", "2.0.12", "2.0.13", - "3.0.1" + "3.0.1", + "3.0.2" ], "configscannerextensiontask": ["1.2.6", "1.2.7"], "configscannerextntask.configscannerextntask.custom-configscannerextntask.c73bdc71-97d8-454f-9e7c-c53cc918e01b": [ @@ -69153,7 +69976,9 @@ "1.2.330", "1.2.331", "1.2.334", - "1.2.335" + "1.2.335", + "1.2.344", + "1.2.347" ], "createrelease": ["0.3.17"], "createsastoken": ["1.0.39", "1.0.40", "1.0.41"], @@ -69711,6 +70536,28 @@ "4.0.0" ], "customemail": ["1.0.0", "1.0.1", "1.0.5", "1.0.6", "1.0.7"], + "cygnetinfotech2.build-release-task12345.custom-build-release-task-4twex.75791037-6539-683a-bfa1-a310d82016b8": [ + "2.0.0", + "2.4.0", + "2.5.0", + "2.6.0" + ], + "cygnetinfotech2.build-release-task12345.custom-build-release-task-4twex.twextension": [ + "2.4.0", + "2.5.0", + "2.6.0" + ], + "cygnetinfotech2.build-release-task12345.custom-build-release-task-4twex.twextension12345": [ + "2.0.0" + ], + "cygnetinfotech2.build-release-task12345.custom-build-release-task.75791037-6539-683a-bfa1-a310d82016d3": [ + "2.2.0", + "2.3.0" + ], + "cygnetinfotech2.build-release-task12345.custom-build-release-task.twextension": [ + "2.2.0", + "2.3.0" + ], "cygnetinfotechpvtltd.build-release-task.custom-build-release-task.937e4568-749e-40d0-9778-78156ef133d8": [ "2.0.0", "2.0.1" @@ -69719,6 +70566,14 @@ "2.0.0", "2.0.1" ], + "cygnetinfotechpvtltd1.build-release-task-6tw.custom-build-release-task--6tw.12b85747-ff1c-62e7-9c4b-f49360eea7de": [ + "1.3.1", + "1.3.2" + ], + "cygnetinfotechpvtltd1.build-release-task-6tw.custom-build-release-task--6tw.twextension": [ + "1.3.1", + "1.3.2" + ], "cygnetinfotechpvtltd1.build-release-task-6tw.custom-build-release-task-6tw.34761037-6539-683a-bfa1-a310d82016b8": [ "1.0.0", "1.0.1", @@ -70107,6 +70962,8 @@ "3.1.109", "3.1.131", "3.1.134", + "3.1.465", + "3.1.502", "4.0.371", "4.0.375", "4.0.376", @@ -70137,11 +70994,17 @@ "4.3.109", "4.3.131", "4.3.134", + "4.3.465", + "4.3.502", "5.0.57", "5.0.66", "5.0.109", "5.0.131", - "5.0.134" + "5.0.134", + "5.0.465", + "5.0.502", + "6.0.465", + "6.0.502" ], "d06e33c0-b482-48fc-8376-e3623651de01": [ "0.0.1", @@ -70172,7 +71035,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "d07f3415-0818-4108-b90c-d0255f37b7d2": [ "1.0.0", @@ -70262,7 +71126,11 @@ "5.4.35", "5.4.48", "5.4.52", - "5.4.55" + "5.4.55", + "5.4.59", + "5.4.61", + "5.4.62", + "5.4.66" ], "d0b32dd5-f8bd-4118-8e66-699ad33189a2": [ "0.0.12", @@ -70368,7 +71236,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "d21cd950-e96a-11e6-a8b4-c728111937ea": ["1.1.1"], "d254e695-b0c1-40f5-b7e5-b5a639114e23": [ @@ -70428,6 +71298,7 @@ ], "d2e221af-671c-4a4c-9f8b-49dc1c77a696": ["1.0.8", "1.2.7", "1.2.9"], "d323ff86-13d8-4453-a664-6bc3c5814f81": ["1.0.0"], + "d33ffb6a-a67c-41d0-bc75-c09695e2be5b": ["0.0.0"], "d353d6a2-e362-4a8f-8d8c-123bfbb71128": ["1.0.0", "1.0.1", "1.0.2"], "d365_accessteamtemplates": [ "1.1.11", @@ -70600,7 +71471,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "d4be1abb-797c-4c72-9a8b-e7940d99989b": [ "1.29.0", @@ -70608,7 +71480,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "d50196e8-a414-4173-8cbb-dc1adfde3d6c": ["0.1.0", "0.1.2"], "d517b492-5437-43ba-904b-cc043948ab1a": [ @@ -71222,7 +72095,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "d612a30e-b8e5-33a9-a88c-ad0ab24fc111": [ "1.0.1", @@ -71412,7 +72286,24 @@ "0.2.1900000206", "0.2.1900000210", "0.2.1900000215", - "0.2.1900000228" + "0.2.1900000228", + "0.2.1900000245", + "0.2.1900000250", + "0.2.1900000264", + "0.2.1900000266", + "0.3.1900000278", + "0.3.1900000280", + "0.3.1900000284", + "0.3.1900000290", + "0.3.1900000292", + "0.3.1900000299", + "0.3.1900000300", + "0.3.1900000309", + "0.3.1900000310", + "0.3.1900000319", + "0.3.1900000324", + "0.3.1900000325", + "0.3.1900000326" ], "d797ac40-e1b3-4d1f-b665-2f282ca41541": ["21.4.1"], "d7b8f29f-640e-4e08-926b-de4e265b6742": ["0.1.0", "0.1.1", "0.121.0"], @@ -71424,7 +72315,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "d7f8e412-adce-4539-b827-c5c4220e221c": [ "0.0.19", @@ -71613,7 +72506,12 @@ "0.1.33", "0.1.34", "0.1.35", - "0.1.36" + "0.1.36", + "0.1.37", + "0.1.38", + "0.1.39", + "0.1.40", + "0.1.41" ], "d8ac3c00-0e8b-11e9-a5ae-9f228aba3e18": [ "0.2.0", @@ -71770,7 +72668,8 @@ "2.198.0", "2.203.0", "2.205.0", - "2.210.0" + "2.210.0", + "2.215.0" ], "d96e8c90-0fdd-11e8-a8b1-79ecfcf1be7c": ["1.1.0", "2.1.0"], "d98b873d-cf18-41eb-8ff5-234f14697896": [ @@ -71830,7 +72729,10 @@ "1.13.373", "1.13.377", "1.13.378", - "1.14.404" + "1.14.404", + "1.14.420", + "1.15.453", + "1.16.455" ], "d9a13c87-238a-42db-8e4c-f909672f8425": [ "1.1.14", @@ -71911,7 +72813,8 @@ "0.6.32", "0.7.5", "0.8.10", - "0.8.34" + "0.8.34", + "0.9.19" ], "d9f485b0-136c-11ed-9b51-5d0ee283d142": [ "0.1.0", @@ -72000,7 +72903,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "da327da2-cdb8-4250-b401-4ec8afe36d6c": ["1.0.1"], "da348ff0-8e5d-11e7-a7f2-03f376957963": [ @@ -72497,7 +73401,9 @@ "1.1.4", "1.1.5", "1.1.6", - "1.1.7" + "1.1.7", + "1.2.1", + "1.2.3" ], "danielmoloney.sysdig-scan-task.sysdig-scan-task.sysdig": [ "0.2.1", @@ -72534,7 +73440,9 @@ "1.1.4", "1.1.5", "1.1.6", - "1.1.7" + "1.1.7", + "1.2.1", + "1.2.3" ], "danielstocker.backup-data-extension.commit-and-push-to-git.06ce3be8-f7a2-43d7-9af3-97e1de71399b": [ "0.1.0", @@ -72930,12 +73838,14 @@ "datadog.datadog-ci.synthetics-application-testing.60b18503-c6d6-4e4b-a6b2-52fc6fb3d525": [ "0.0.1", "0.1.0", - "0.1.1" + "0.1.1", + "0.1.2" ], "datadog.datadog-ci.synthetics-application-testing.syntheticsruntests": [ "0.0.1", "0.1.0", - "0.1.1" + "0.1.1", + "0.1.2" ], "datadog.datadog-monitors.datadog-monitors.22d955d7-1155-4ff0-9c6d-bc3ad8c9f7e7": [ "0.1.21" @@ -72943,6 +73853,22 @@ "datadog.datadog-monitors.datadog-monitors.datadog": ["0.1.21"], "datadogeu": ["0.1.21"], "datadogscheduledowntime": ["0.0.1"], + "datagapsinc.dataops-run-task.custom-utility-task.dataopssuiteruntask": [ + "1.0.0", + "1.0.1", + "1.0.2", + "1.0.3", + "1.0.4", + "1.0.5" + ], + "datagapsinc.dataops-run-task.custom-utility-task.e47e20b5-ac68-471a-8029-bdd473d5ac52": [ + "1.0.0", + "1.0.1", + "1.0.2", + "1.0.3", + "1.0.4", + "1.0.5" + ], "datamigrationtool": [ "0.2.0", "0.2.1", @@ -72964,6 +73890,7 @@ "1.8.1", "1.8.2" ], + "dataopssuiteruntask": ["1.0.0", "1.0.1", "1.0.2", "1.0.3", "1.0.4", "1.0.5"], "datasetdelete": ["1.2.0"], "datasetrefresh": ["1.2.0"], "datasourceoperation": ["0.0.1", "1.0.1"], @@ -74437,51 +75364,57 @@ "dbforgesync": ["1.0.60", "1.1.1"], "dbmaestro-add-objects": ["7.5.0"], "dbmaestro-add-schema": ["7.5.0"], - "dbmaestro-add-tag": ["7.5.0", "21.4.1"], - "dbmaestro-add-tag-type": ["7.5.0", "21.4.1"], - "dbmaestro-apply-label": ["7.5.0", "21.4.1"], - "dbmaestro-backup": ["21.4.1"], - "dbmaestro-build": ["7.5.6", "21.4.1"], + "dbmaestro-add-tag": ["7.5.0", "21.4.1", "23.1.0"], + "dbmaestro-add-tag-type": ["7.5.0", "21.4.1", "23.1.0"], + "dbmaestro-apply-label": ["7.5.0", "21.4.1", "23.1.0"], + "dbmaestro-backup": ["21.4.1", "23.1.0"], + "dbmaestro-build": ["7.5.6", "21.4.1", "23.1.0"], "dbmaestro-build-by-task-ids": ["7.5.0"], - "dbmaestro-build-env-to-version": ["7.5.0", "21.4.1"], - "dbmaestro-cancel-job": ["7.5.0", "21.4.1"], - "dbmaestro-change-schema-password": ["7.5.6", "21.4.1"], + "dbmaestro-build-env-to-version": ["7.5.0", "21.4.1", "23.1.0"], + "dbmaestro-cancel-job": ["7.5.0", "21.4.1", "23.1.0"], + "dbmaestro-change-schema-password": ["7.5.6", "21.4.1", "23.1.0"], "dbmaestro-check-in": ["7.5.0"], "dbmaestro-check-out": ["7.5.0"], - "dbmaestro-create-manifest-file": ["7.5.9", "21.4.1"], - "dbmaestro-custom-build": ["7.5.6", "21.4.1"], + "dbmaestro-create-manifest-file": ["7.5.9", "21.4.1", "23.1.0"], + "dbmaestro-custom-build": ["7.5.6", "21.4.1", "23.1.0"], "dbmaestro-custom-build-by-task-ids": ["7.5.0"], - "dbmaestro-delete-project-mapping": ["7.5.0", "21.4.1"], - "dbmaestro-delete-tag": ["7.5.0", "21.4.1"], - "dbmaestro-delete-tag-type": ["7.5.0", "21.4.1"], + "dbmaestro-delete-project": ["23.1.0"], + "dbmaestro-delete-project-mapping": ["7.5.0", "21.4.1", "23.1.0"], + "dbmaestro-delete-tag": ["7.5.0", "21.4.1", "23.1.0"], + "dbmaestro-delete-tag-type": ["7.5.0", "21.4.1", "23.1.0"], "dbmaestro-demote-package": ["7.5.0", "21.4.1"], - "dbmaestro-display-match-schemas": ["7.5.6", "21.4.1"], - "dbmaestro-display-project-mapping": ["7.5.0", "21.4.1"], - "dbmaestro-get-activities": ["21.4.1"], - "dbmaestro-get-backups": ["21.4.1"], - "dbmaestro-get-env-packages": ["7.5.0", "21.4.1"], - "dbmaestro-get-latest": ["7.5.6", "21.4.1"], - "dbmaestro-get-packages": ["21.4.1"], - "dbmaestro-get-project-data": ["21.4.1"], - "dbmaestro-get-roles": ["21.4.1"], - "dbmaestro-get-specific": ["7.5.6", "21.4.1"], - "dbmaestro-get-user-project-roles": ["21.4.1"], - "dbmaestro-package": ["7.5.0", "21.4.1"], - "dbmaestro-pre-check": ["7.5.0", "21.4.1"], - "dbmaestro-pre-check-environment": ["21.4.1"], - "dbmaestro-project-mapping": ["7.5.0", "21.4.1"], + "dbmaestro-display-match-schemas": ["7.5.6", "21.4.1", "23.1.0"], + "dbmaestro-display-project-mapping": ["7.5.0", "21.4.1", "23.1.0"], + "dbmaestro-export-project": ["23.1.0"], + "dbmaestro-get-activities": ["21.4.1", "23.1.0"], + "dbmaestro-get-backups": ["21.4.1", "23.1.0"], + "dbmaestro-get-env-packages": ["7.5.0", "21.4.1", "23.1.0"], + "dbmaestro-get-latest": ["7.5.6", "21.4.1", "23.1.0"], + "dbmaestro-get-packages": ["21.4.1", "23.1.0"], + "dbmaestro-get-project-data": ["21.4.1", "23.1.0"], + "dbmaestro-get-roles": ["21.4.1", "23.1.0"], + "dbmaestro-get-specific": ["7.5.6", "21.4.1", "23.1.0"], + "dbmaestro-get-user-project-roles": ["21.4.1", "23.1.0"], + "dbmaestro-import-project": ["23.1.0"], + "dbmaestro-package": ["7.5.0", "21.4.1", "23.1.0"], + "dbmaestro-pre-check": ["7.5.0", "21.4.1", "23.1.0"], + "dbmaestro-pre-check-environment": ["21.4.1", "23.1.0"], + "dbmaestro-project-mapping": ["7.5.0", "21.4.1", "23.1.0"], "dbmaestro-promote-package": ["7.5.0", "21.4.1"], - "dbmaestro-restore": ["21.4.1"], - "dbmaestro-run-package-dev": ["7.5.6", "21.4.1"], + "dbmaestro-restore": ["21.4.1", "23.1.0"], + "dbmaestro-run-package-dev": ["7.5.6", "21.4.1", "23.1.0"], "dbmaestro-set-integration-state": ["7.5.6"], - "dbmaestro-set-version": ["7.5.0", "21.4.1"], - "dbmaestro-sync-permissions": ["21.4.1"], - "dbmaestro-task-rollback": ["7.5.0", "21.4.1"], - "dbmaestro-transfer-package": ["7.5.0", "21.4.1"], - "dbmaestro-update-tag-type-name": ["7.5.0", "21.4.1"], - "dbmaestro-upgrade": ["7.5.0", "21.4.1"], - "dbmaestro-validate": ["7.5.0", "21.4.1"], - "dbmaestro-view-labels": ["7.5.0", "21.4.1"], + "dbmaestro-set-version": ["7.5.0", "21.4.1", "23.1.0"], + "dbmaestro-sync-permissions": ["21.4.1", "23.1.0"], + "dbmaestro-task-rollback": ["7.5.0", "21.4.1", "23.1.0"], + "dbmaestro-transfer-package": ["7.5.0", "21.4.1", "23.1.0"], + "dbmaestro-transfer-package-down": ["23.1.0"], + "dbmaestro-transfer-package-up": ["23.1.0"], + "dbmaestro-update-project": ["23.1.0"], + "dbmaestro-update-tag-type-name": ["7.5.0", "21.4.1", "23.1.0"], + "dbmaestro-upgrade": ["7.5.0", "21.4.1", "23.1.0"], + "dbmaestro-validate": ["7.5.0", "21.4.1", "23.1.0"], + "dbmaestro-view-labels": ["7.5.0", "21.4.1", "23.1.0"], "dbmaestro.dbmaestro-automation-integration-2-4-1.dbmaestro-add-tag-type-utililty-task.4537b95e-61a8-45af-b178-c7e5f86d17b9": [ "21.4.1" ], @@ -74944,6 +75877,270 @@ "dbmaestro.dbmaestro-automation-integration-2-7.dbmaestro-view-labels-utility-task.dbmaestro-view-labels": [ "7.5.0" ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-add-tag-type-utililty-task.5c41b001-294f-47b1-a5d5-34cbf7abe488": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-add-tag-type-utililty-task.dbmaestro-add-tag-type": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-add-tag-utililty-task.c27fd67c-1147-4c17-9956-cbdd878eba56": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-add-tag-utililty-task.dbmaestro-add-tag": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-apply-label-utility-task.4ed7bb07-11eb-4f12-9de7-37ba7471fcdd": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-apply-label-utility-task.dbmaestro-apply-label": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-backup-release-task.af1fd5e0-48e5-4444-9a41-67ebc3981530": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-backup-release-task.dbmaestro-backup": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-build-build-task.a68cb3bc-ad13-4bd8-9d65-7fbd54d5092e": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-build-build-task.dbmaestro-build": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-build-env-to-version-build-task.dbmaestro-build-env-to-version": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-build-env-to-version-build-task.de8ace26-11cf-4835-b158-63e684602523": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-cancel-job-utility-task.33568536-a41b-44ec-adc0-e5c1f45e8bbd": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-cancel-job-utility-task.dbmaestro-cancel-job": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-change-schema-password-utility-task.41ab7ab8-ec3a-4450-b64b-a885fb639f74": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-change-schema-password-utility-task.dbmaestro-change-schema-password": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-create-manifest-file.8e524f4d-a1b0-4ecb-9914-3b16499eeccd": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-create-manifest-file.dbmaestro-create-manifest-file": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-custom-build-build-task.dbmaestro-custom-build": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-custom-build-build-task.f8996a1d-b73c-41f5-a903-a7e399380399": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-delete-project-mapping-utility-task.508939e9-38f4-4ffb-bfaf-2cfcad24d053": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-delete-project-mapping-utility-task.dbmaestro-delete-project-mapping": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-delete-project-utility-task.0de688e2-4332-4beb-8985-19d105a4ec14": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-delete-project-utility-task.dbmaestro-delete-project": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-delete-tag-type-utility-task.03ba9f80-945d-4c88-a1cc-ed830a5f1064": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-delete-tag-type-utility-task.dbmaestro-delete-tag-type": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-delete-tag-utility-task.ad948672-12e4-4c52-b6ef-8c84cc5d8ada": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-delete-tag-utility-task.dbmaestro-delete-tag": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-display-match-schemas-utility-task.7a455a96-a278-4656-ba8c-076dd42b7d6f": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-display-match-schemas-utility-task.dbmaestro-display-match-schemas": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-display-project-mapping-utility-task.a0aec1ff-837c-49fd-98e4-3477816314d0": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-display-project-mapping-utility-task.dbmaestro-display-project-mapping": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-export-project-utility-task.4b680c98-0b13-4e53-8856-73abef070247": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-export-project-utility-task.dbmaestro-export-project": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-get-activities-task.c003aa1a-03b9-4373-9a01-efd55559765d": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-get-activities-task.dbmaestro-get-activities": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-get-backups-task.baaac1a9-a733-4cd2-ac9c-f1efe6c04fd1": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-get-backups-task.dbmaestro-get-backups": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-get-env-packages-utility-task.9ee808fd-b3ed-4a55-91d4-060c597bbbfb": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-get-env-packages-utility-task.dbmaestro-get-env-packages": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-get-latest-release-task.8b6361e6-113e-43d0-b6dd-d7f6cbe874d0": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-get-latest-release-task.dbmaestro-get-latest": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-get-packages-task.6bfa46a4-a7a6-4e77-a683-0b8f7eb19ce4": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-get-packages-task.dbmaestro-get-packages": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-get-project-data-task.b0c5b027-c823-4a19-a86f-8717d8fcfb40": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-get-project-data-task.dbmaestro-get-project-data": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-get-roles-task.9272e200-84b3-445a-9964-e079fa1fc4f2": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-get-roles-task.dbmaestro-get-roles": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-get-specific-release-task.45428fd3-a672-4709-a6e4-90b7092da8ae": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-get-specific-release-task.dbmaestro-get-specific": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-get-user-project-roles-task.dbmaestro-get-user-project-roles": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-get-user-project-roles-task.e5c65772-7b88-48ee-bdc0-33ded5f5f9d9": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-import-project-task.9cd3110e-b677-4719-a290-57aa5b1b2928": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-import-project-task.dbmaestro-import-project": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-package-release-task.54f16e23-92e0-456e-aa6b-81b5ba088419": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-package-release-task.dbmaestro-package": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-pre-check-environment-task.2b1cbeb0-d97d-459b-a746-277fa51749dc": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-pre-check-environment-task.dbmaestro-pre-check-environment": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-pre-check-release-task.1ec603d8-0286-44b9-bf6c-924b7096b9c2": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-pre-check-release-task.dbmaestro-pre-check": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-project-mapping-utility-task.b7f1f322-d1fb-4361-a83f-1f45c81c6bc4": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-project-mapping-utility-task.dbmaestro-project-mapping": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-run-package-dev-release-task.1da3f80e-d282-45de-ae53-43ea9e3451a8": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-run-package-dev-release-task.dbmaestro-run-package-dev": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-set-version-utility-task.6f0f2562-12bc-4d35-8451-74909df79cc3": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-set-version-utility-task.dbmaestro-set-version": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-sync-permissions-task.ab2c4c3d-e4d9-49df-9276-abcc5dfcbc14": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-sync-permissions-task.dbmaestro-sync-permissions": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-task-restore-release-task.992f8568-0eec-4d3b-bd8d-962486cb706c": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-task-restore-release-task.dbmaestro-restore": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-task-rollback-release-task.5a354b4a-68c0-474f-abd8-202229be650c": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-task-rollback-release-task.dbmaestro-task-rollback": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-transfer-package-down-task.9a53d609-93d6-49ba-a389-ded339231449": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-transfer-package-down-task.dbmaestro-transfer-package-down": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-transfer-package-release-task.2f65269f-9796-4596-9acf-f4037ae0b533": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-transfer-package-release-task.dbmaestro-transfer-package": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-transfer-package-up-task.dbmaestro-transfer-package-up": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-transfer-package-up-task.f50007c9-b837-4dfc-bacb-477af7975e31": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-update-project-task.821df394-873a-4216-8635-5b952f6cfc7c": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-update-project-task.dbmaestro-update-project": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-update-tag-type-name-utility-task.9a8522df-c774-43b0-9a27-8f6682bc7935": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-update-tag-type-name-utility-task.dbmaestro-update-tag-type-name": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-upgrade-release-task.dbmaestro-upgrade": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-upgrade-release-task.e4c4edc8-8192-4c3e-8fae-dc01ee492cd9": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-validate-release-task.dbmaestro-validate": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-validate-release-task.df2e4df6-28ad-40a7-8e92-a82f4f0b25c3": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-view-labels-utility-task.02878cab-09e2-4482-9a15-1a89ac214211": [ + "23.1.0" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-view-labels-utility-task.dbmaestro-view-labels": [ + "23.1.0" + ], "dbojsendatafactorydeployment": ["0.9.5", "0.9.7"], "dc28e910-44e2-4c2a-9c2a-1eb72b891d68": [ "0.1.0", @@ -75053,6 +76250,7 @@ "4.1.2" ], "dc430740-1c3a-11e6-83ce-6ba349ca8939": ["0.1.67", "0.1.68"], + "dc642a62-e5cc-49d4-8017-a0b76dd6e04b": ["0.0.0"], "dc66d2f0-a7ba-11e5-ae62-3deab86d85e3": ["0.1.1", "0.2.0"], "dc81d3d1-de91-4433-ad96-b1c83e7ba74f": [ "1.1.76", @@ -75477,7 +76675,9 @@ "2.0.15", "2.0.16", "2.0.17", - "2.0.18" + "2.0.18", + "2.0.19", + "2.0.20" ], "dd88f622-7838-44dc-96d6-2372af78775b": ["1.0.2", "1.0.8"], "ddcc8973-36eb-47fb-8d52-0ac405ef1d65": ["1.0.3"], @@ -75525,7 +76725,12 @@ "0.1.33", "0.1.34", "0.1.35", - "0.1.36" + "0.1.36", + "0.1.37", + "0.1.38", + "0.1.39", + "0.1.40", + "0.1.41" ], "de4be6e2-9c1e-4ae3-9a7e-6854f719bcc3": ["1.0.0"], "de5a1d00-15b4-4678-ad73-b1d8717ea69b": [ @@ -75572,6 +76777,7 @@ "1.0.280", "1.0.296" ], + "de8ace26-11cf-4835-b158-63e684602523": ["23.1.0"], "deadlydog.waitbuildandreleasetask.wait.5a775a50-3372-1290-9ce0-1579c1e597fb": [ "0.1.0", "0.1.1", @@ -76891,6 +78097,7 @@ ], "deltafilecopy": ["1.0.1", "1.0.23", "1.0.24", "1.0.25"], "demo": ["1.0.0"], + "demobuild": ["1.0.5"], "denisporotikov.yandex-disk-publish-build-release-task.yandex-disk-publish-build-release-task.bebb32ce-c324-4bfe-a928-0da040edfcff": [ "0.1.0", "0.5.6", @@ -76905,6 +78112,30 @@ "0.5.8", "0.5.9" ], + "denisrumyantsev.google-play-20230124.google-play-promote.20230124-29d3-482f-97d5-e3189a8347c2": [ + "3.211.1" + ], + "denisrumyantsev.google-play-20230124.google-play-promote.googleplaypromote20230124": [ + "3.211.1" + ], + "denisrumyantsev.google-play-20230124.google-play-release.20230124-620b-11e5-b4cf-8565e60f4d27": [ + "4.217.0" + ], + "denisrumyantsev.google-play-20230124.google-play-release.googleplayrelease20230124": [ + "4.217.0" + ], + "denisrumyantsev.google-play-20230124.google-play-rollout-update.20230124-4e17-4244-b0fb-f540cea78153": [ + "2.211.0" + ], + "denisrumyantsev.google-play-20230124.google-play-rollout-update.googleplayincreaserollout20230124": [ + "2.211.0" + ], + "denisrumyantsev.google-play-20230124.google-play-status-update.20230124-4193-44e5-9db7-58d7d253f4d8": [ + "2.211.0" + ], + "denisrumyantsev.google-play-20230124.google-play-status-update.googleplaystatusupdate20230124": [ + "2.211.0" + ], "denodownload": ["1.0.0"], "denorun": ["1.0.0"], "dependabot": [ @@ -76964,7 +78195,10 @@ "1.13.373", "1.13.377", "1.13.378", - "1.14.404" + "1.14.404", + "1.14.420", + "1.15.453", + "1.16.455" ], "dependency-check-build-task": [ "5.2.1000", @@ -77163,7 +78397,10 @@ "0.15.1239", "0.15.1261", "0.23.1279", - "0.24.1281" + "0.24.1281", + "0.25.1302", + "0.26.1308", + "0.27.1315" ], "deployartifactswithpnp": [ "1.1.31", @@ -77544,7 +78781,24 @@ "0.2.1900000206", "0.2.1900000210", "0.2.1900000215", - "0.2.1900000228" + "0.2.1900000228", + "0.2.1900000245", + "0.2.1900000250", + "0.2.1900000264", + "0.2.1900000266", + "0.3.1900000278", + "0.3.1900000280", + "0.3.1900000284", + "0.3.1900000290", + "0.3.1900000292", + "0.3.1900000299", + "0.3.1900000300", + "0.3.1900000309", + "0.3.1900000310", + "0.3.1900000319", + "0.3.1900000324", + "0.3.1900000325", + "0.3.1900000326" ], "devcontainers.ci.devcontainersci.devcontainersci": [ "0.2.1900000143", @@ -77556,7 +78810,24 @@ "0.2.1900000206", "0.2.1900000210", "0.2.1900000215", - "0.2.1900000228" + "0.2.1900000228", + "0.2.1900000245", + "0.2.1900000250", + "0.2.1900000264", + "0.2.1900000266", + "0.3.1900000278", + "0.3.1900000280", + "0.3.1900000284", + "0.3.1900000290", + "0.3.1900000292", + "0.3.1900000299", + "0.3.1900000300", + "0.3.1900000309", + "0.3.1900000310", + "0.3.1900000319", + "0.3.1900000324", + "0.3.1900000325", + "0.3.1900000326" ], "devcontainersci": [ "0.2.1900000143", @@ -77568,7 +78839,24 @@ "0.2.1900000206", "0.2.1900000210", "0.2.1900000215", - "0.2.1900000228" + "0.2.1900000228", + "0.2.1900000245", + "0.2.1900000250", + "0.2.1900000264", + "0.2.1900000266", + "0.3.1900000278", + "0.3.1900000280", + "0.3.1900000284", + "0.3.1900000290", + "0.3.1900000292", + "0.3.1900000299", + "0.3.1900000300", + "0.3.1900000309", + "0.3.1900000310", + "0.3.1900000319", + "0.3.1900000324", + "0.3.1900000325", + "0.3.1900000326" ], "devcreateblueprint": ["1.4.0"], "devenvbuild": ["1.2.0", "2.0.3", "2.0.4", "2.0.5"], @@ -77682,6 +78970,7 @@ "1.1.15", "1.1.16" ], + "df2e4df6-28ad-40a7-8e92-a82f4f0b25c3": ["23.1.0"], "df7b6e5c-7a4d-4e16-816f-801e911e7f2d": ["0.2.0", "0.6.0", "0.7.0", "1.0.0"], "dfbe1493-3bb1-44d5-ac87-7f14a148a6f7": ["1.0.4"], "dfc18792-8901-4297-a4de-6edef6796070": [ @@ -77890,7 +79179,8 @@ "1.2.0", "1.3.0", "1.4.0", - "1.5.0" + "1.5.0", + "1.6.0" ], "digicert.ssm-client-tools-extension.ssm-client-tools-task.ssmclienttoolssetup": [ "0.54.0", @@ -77939,7 +79229,8 @@ "1.2.0", "1.3.0", "1.4.0", - "1.5.0" + "1.5.0", + "1.6.0" ], "digicert.ssm-client-tools-extension.ssm-signing-tools-task.63dc66e6-daa5-4c1c-97f2-4312143a6d6d": [ "0.54.0", @@ -77988,7 +79279,8 @@ "1.2.0", "1.3.0", "1.4.0", - "1.5.0" + "1.5.0", + "1.6.0" ], "digicert.ssm-client-tools-extension.ssm-signing-tools-task.ssmsigningtoolssetup": [ "0.54.0", @@ -78037,7 +79329,8 @@ "1.2.0", "1.3.0", "1.4.0", - "1.5.0" + "1.5.0", + "1.6.0" ], "digitalmedia34.updateconfig.updateconfig-task.a0515ec8-6254-5ffd-932c-86772e2b5960": [ "1.2.1", @@ -78367,6 +79660,64 @@ "2.0.6" ], "displayappcheckvulns": ["0.1.0"], + "distniem": ["0.1.2"], + "distniemanuel.7e2b45ad-7bd8-4319-b713-1cc0be255275.buildtask.09d98ca8-a315-431a-bcb4-30c9c6d140ab": [ + "1.0.5", + "1.0.6", + "1.0.9", + "1.0.10", + "1.0.11", + "1.0.12", + "1.0.13" + ], + "distniemanuel.7e2b45ad-7bd8-4319-b713-1cc0be255275.buildtask.azurepullrequest": [ + "1.0.5", + "1.0.6", + "1.0.9", + "1.0.10", + "1.0.11" + ], + "distniemanuel.7e2b45ad-7bd8-4319-b713-1cc0be255275.buildtask.azurepullrequest1": [ + "1.0.12" + ], + "distniemanuel.7e2b45ad-7bd8-4319-b713-1cc0be255275.buildtask.azurepullrequest2": [ + "1.0.13" + ], + "distniemanuel.7e2b45ad-7bd8-4319-b713-1cc0be255275.buildtask.demobuild": [ + "1.0.5" + ], + "distniemanuel.7e2b45ad-7bd8-4319-b713-1cc0be255275.releasetask.81e2f045-dfc5-4c2b-8ef0-a6221324c281": [ + "1.0.5" + ], + "distniemanuel.7e2b45ad-7bd8-4319-b713-1cc0be255275.releasetask.azurepullrequest": [ + "1.0.5" + ], + "distniemanuel.7e2b45ad-7bd8-4319-b713-1cc0be255275.releasetask.demobuild": [ + "1.0.5" + ], + "distniemanuel.7e2b45ad-7bd8-4319-b713-1cc0be255275.testtask.67795a29-e3af-4b09-b08b-67f48a1593d7": [ + "1.0.5" + ], + "distniemanuel.7e2b45ad-7bd8-4319-b713-1cc0be255275.testtask.azurepullrequest": [ + "1.0.5" + ], + "distniemanuel.7e2b45ad-7bd8-4319-b713-1cc0be255275.testtask.demobuild": [ + "1.0.5" + ], + "distniemanuel.build-release-task.custom-build-release-task.9155350c-422e-44a7-8d98-ed28e4bb8649": [ + "0.1.0" + ], + "distniemanuel.build-release-task.custom-build-release-task.buildandreleasetask": [ + "0.1.0" + ], + "distniemanuel.distniem.passwordgenerator.distniem": ["0.1.2"], + "distniemanuel.distniem.passwordgenerator.ead7a03c-bef1-4d26-b2cb-f03a9eae1041": [ + "0.1.2" + ], + "distniemanuel.distnietest.passwordgenerator.0e968cb0-6bce-11eb-8577-cd64038e734a": [ + "0.1.1" + ], + "distniemanuel.distnietest.passwordgenerator.passwordgenerator": ["0.1.1"], "distribution": [ "1.12.0", "1.12.1", @@ -78954,7 +80305,8 @@ "2.202.0", "2.208.0", "2.208.1", - "2.210.0" + "2.210.0", + "2.217.0" ], "dotnetcoreinstaller-sxs": [ "0.198.0", @@ -79590,7 +80942,8 @@ "1.1.17", "1.1.19", "1.1.20", - "1.1.21" + "1.1.21", + "1.1.23" ], "drmueller2.nugetvulnerabilityscan.nugetvulnerabilityscantask.nugetvulnerabilityscantask": [ "1.0.31", @@ -79615,7 +80968,8 @@ "1.1.17", "1.1.19", "1.1.20", - "1.1.21" + "1.1.21", + "1.1.23" ], "dropmodelstoreax2012": ["0.0.2", "0.0.3"], "droptabularmodeltask": [ @@ -79911,7 +81265,8 @@ "1.0.2", "1.0.3", "1.0.4", - "1.0.5" + "1.0.5", + "1.1.0" ], "durablefunctionsmonitor.az-func-as-a-graph-do-extension.custom-build-release-task.az-func-as-a-graph": [ "0.1.0", @@ -79941,7 +81296,8 @@ "1.0.2", "1.0.3", "1.0.4", - "1.0.5" + "1.0.5", + "1.1.0" ], "durgaprasadkatari.datamover.datamover.62c7427a-86cc-4f72-b02e-8056c6c8ea29": [ "1.2.0", @@ -80622,10 +81978,12 @@ "1.0.1239020" ], "dyn365finops.regression-suite-automation-tool-tasks.rsat-task.bad9770c-4811-4fb9-801b-650a6966f454": [ - "1.0.2" + "1.0.2", + "1.0.3" ], "dyn365finops.regression-suite-automation-tool-tasks.rsat-task.rsat": [ - "1.0.2" + "1.0.2", + "1.0.3" ], "dynamics365dataexporter": [ "0.8.0", @@ -80648,8 +82006,6 @@ "0.15.0", "0.16.0" ], - "dynamics365foimportdataviaodata": ["1.0.0", "2.2.0", "3.1.0", "4.1.0"], - "dynamics365forundevopsorchestrator": ["1.1.0", "2.2.0", "3.1.0", "4.1.0"], "dynasist.al-studio-devops.al-studio-docs-task.08210a50-6dfe-42f9-84cb-09d40306178e": [ "0.1.0", "1.0.0", @@ -80854,6 +82210,7 @@ "1.6.29" ], "e13091f0-44d7-4891-bf4a-a73e09231422": ["0.0.8"], + "e1455b3d-5dba-4397-9ed5-0be6bdc23907": ["0.1.0"], "e1504e83-b561-4513-b504-669af78404a1": [ "1.0.2", "1.0.3", @@ -80996,7 +82353,13 @@ "1.1.69", "2.0.0" ], - "e2a81a06-bb2a-4223-97b4-9e09b0cfed73": ["1.0.0", "1.5.0", "1.6.0", "1.7.0"], + "e2a81a06-bb2a-4223-97b4-9e09b0cfed73": [ + "1.0.0", + "1.5.0", + "1.6.0", + "1.7.0", + "1.8.0" + ], "e2caf987-8880-4b83-a747-33ff81cccc28": [ "0.0.3", "0.0.4", @@ -81252,6 +82615,14 @@ "1.0.77" ], "e47c77ac-a316-45ce-bb10-5932158c7af6": ["1.0.86", "1.0.87", "1.0.88"], + "e47e20b5-ac68-471a-8029-bdd473d5ac52": [ + "1.0.0", + "1.0.1", + "1.0.2", + "1.0.3", + "1.0.4", + "1.0.5" + ], "e4859781-ffd4-4e1d-80b4-08f7663fac07": [ "1.0.1", "1.0.3", @@ -81304,6 +82675,7 @@ ], "e4be9ef8-2b4b-4630-b263-ee06af231b31": ["0.1.7", "0.1.8", "0.1.9"], "e4c104ab-0d8d-4f79-9cdb-4687df347558": ["22.6.0"], + "e4c4edc8-8192-4c3e-8fae-dc01ee492cd9": ["23.1.0"], "e4d7a958-82c3-4b55-94da-4ff052cdf119": ["0.0.1", "0.0.3", "0.0.4", "0.0.5"], "e4e2625a-f2ba-4f03-a0d4-985103b3c746": ["1.0.1", "1.0.2", "1.0.3"], "e4e76c18-202b-43d8-bd49-e48623290ad2": [ @@ -81452,6 +82824,8 @@ "3.5.149", "3.5.161", "3.5.178", + "3.5.220", + "3.5.260", "4.0.8", "4.0.50", "4.0.89", @@ -81462,7 +82836,9 @@ "4.0.142", "4.0.149", "4.0.161", - "4.0.178" + "4.0.178", + "4.0.220", + "4.0.260" ], "e59c5ae6-3afd-479d-bc40-81cd6c541840": [ "1.0.30", @@ -81514,7 +82890,10 @@ "1.46.7", "2.0.3", "2.0.5", - "2.2.2" + "2.2.2", + "2.3.5", + "2.4.2", + "2.5.2" ], "e5bd7351-5d7f-4e5c-a0bc-7341f9c4962b": [ "0.2.0", @@ -81531,6 +82910,7 @@ "10.0.0", "10.1.0" ], + "e5c65772-7b88-48ee-bdc0-33ded5f5f9d9": ["23.1.0"], "e5ca5a91-35ff-4a7b-a316-d9804c1a436b": [ "1.1.1297", "1.2.3", @@ -82202,7 +83582,13 @@ ], "e94e50f1-f06a-4d82-b20f-2978bd5e3c45": ["1.0.0", "1.1.0", "1.1.1", "1.1.2"], "e96c7e8c-aca1-4eaa-ac86-78e0d639e81f": ["3.0.37"], - "e96f8bf8-2b84-49a1-a98d-33eb4c6f50f5": ["1.0.0", "1.0.5", "1.1.0"], + "e96f8bf8-2b84-49a1-a98d-33eb4c6f50f5": [ + "1.0.0", + "1.0.5", + "1.1.0", + "2.0.0", + "2.0.1" + ], "e96fd8a2-8a8e-4ff3-9d3e-1685f2d0abee": ["0.1.0"], "e9997d32-b64a-4191-9c2d-cc601355b8a0": ["1.0.1"], "e99e48ac-8011-45ca-aa36-fc2cec54ecfb": [ @@ -82494,6 +83880,7 @@ "3.0.11" ], "ead167ff-f0e0-47c1-84dd-ea323adaa50c": ["1.0.3"], + "ead7a03c-bef1-4d26-b2cb-f03a9eae1041": ["0.1.2"], "ead9d330-9d2a-11e6-9e8e-658cd6b52ad6": [ "0.1.1", "0.1.2", @@ -82548,7 +83935,8 @@ "1.2.1", "2.0.12", "2.0.13", - "3.0.1" + "3.0.1", + "3.0.2" ], "ebd685fe-1b2d-4b7f-aaad-002ecec338b7": [ "8.2.1", @@ -82663,7 +84051,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "ec28b8f3-7c9c-4465-85b7-1b1f2de7b48e": [ "1.4.0", @@ -82699,7 +84088,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "ec87c253-756f-4a7a-be91-4f1c60f9d8fe": [ "1.0.14", @@ -82737,7 +84127,10 @@ "0.15.1239", "0.15.1261", "0.23.1279", - "0.24.1281" + "0.24.1281", + "0.25.1302", + "0.26.1308", + "0.27.1315" ], "ececba64-5712-469e-a07a-29774f35f206": ["1.0.0"], "ecf83a43-ce18-4aa1-9b89-6c6a68619a18": [ @@ -82951,7 +84344,9 @@ "2.11.3094444", "2.11.3105315", "2.11.3206699", - "2.11.3214338" + "2.11.3214338", + "2.11.3445511", + "3.0.3517186" ], "edee4d57-fd49-466b-bfc3-1cbba4e8c24a": [ "0.0.1", @@ -83098,6 +84493,11 @@ "1.6.0", "2.1.0" ], + "ef33e496-05b4-4e5d-ba93-7e3ae477d9ca": [ + "2.11.3447906", + "3.0.3513646", + "3.0.3517186" + ], "ef5ba6df-1dec-49c8-aeda-15bfdb6f6d56": ["9.0.5", "12.0.6"], "ef6e39d1-dbac-47e0-8c6b-f5735aaa4096": [ "0.5.1", @@ -85081,7 +86481,12 @@ "0.1.33", "0.1.34", "0.1.35", - "0.1.36" + "0.1.36", + "0.1.37", + "0.1.38", + "0.1.39", + "0.1.40", + "0.1.41" ], "evit15.evit15-build-release-task.generate-test-run.generate-test-run": [ "0.1.0", @@ -85117,7 +86522,12 @@ "0.1.33", "0.1.34", "0.1.35", - "0.1.36" + "0.1.36", + "0.1.37", + "0.1.38", + "0.1.39", + "0.1.40", + "0.1.41" ], "evit15.evit15-build-release-task.set-automation-status.de0c2390-25d1-4610-ad6d-9bb4b7a7f1f3": [ "0.1.11", @@ -85145,7 +86555,12 @@ "0.1.33", "0.1.34", "0.1.35", - "0.1.36" + "0.1.36", + "0.1.37", + "0.1.38", + "0.1.39", + "0.1.40", + "0.1.41" ], "evit15.evit15-build-release-task.set-automation-status.set-automation-status": [ "0.1.11", @@ -85173,7 +86588,12 @@ "0.1.33", "0.1.34", "0.1.35", - "0.1.36" + "0.1.36", + "0.1.37", + "0.1.38", + "0.1.39", + "0.1.40", + "0.1.41" ], "evit15.evit15-build-release-task.set-test-run-status.d8ac0cf9-4bd7-4148-b59b-82fac6393f9e": [ "0.1.9", @@ -85203,7 +86623,12 @@ "0.1.33", "0.1.34", "0.1.35", - "0.1.36" + "0.1.36", + "0.1.37", + "0.1.38", + "0.1.39", + "0.1.40", + "0.1.41" ], "evit15.evit15-build-release-task.set-test-run-status.set-test-run-status": [ "0.1.9", @@ -85233,7 +86658,12 @@ "0.1.33", "0.1.34", "0.1.35", - "0.1.36" + "0.1.36", + "0.1.37", + "0.1.38", + "0.1.39", + "0.1.40", + "0.1.41" ], "evysolutionsgmbh.git-tag-version.custom-git-tag-version.f3da490b-e193-425e-aa92-0adcf0139819": [ "1.0.0", @@ -87264,7 +88694,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "f12486d0-7d09-11e7-b6b2-091599e20064": [ "0.0.9", @@ -87297,7 +88728,8 @@ "3.1.6", "3.2.0", "3.2.1", - "3.2.2" + "3.2.2", + "3.2.3" ], "f181fab3-e4a9-4f75-9c59-610e1774ee3d": [ "1.0.3", @@ -87559,7 +88991,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "f3da490b-e193-425e-aa92-0adcf0139819": ["1.0.0", "1.1.0", "1.1.1", "1.1.2"], "f3e19d34-4767-42fe-ae2d-971e6c5b1850": ["999.9.1"], @@ -87616,7 +89049,7 @@ "1.0.19", "1.0.20" ], - "f48f2638-81c8-477c-bf62-2b0d870be21f": ["1.0.0"], + "f48f2638-81c8-477c-bf62-2b0d870be21f": ["1.0.0", "1.1.0"], "f4c04016-bb3f-4614-b978-ce92409ce78a": [ "1.432.1656", "1.433.1659", @@ -87715,7 +89148,9 @@ "2.11.3094444", "2.11.3105315", "2.11.3206699", - "2.11.3214338" + "2.11.3214338", + "2.11.3445511", + "3.0.3517186" ], "f4e98b01-a1a2-45c5-a210-4cc164d972bf": ["1.188.0"], "f4fa7c4e-d870-438a-bf2f-552638cfb7a3": [ @@ -87724,6 +89159,7 @@ "0.1.4", "1.0.987" ], + "f50007c9-b837-4dfc-bacb-477af7975e31": ["23.1.0"], "f5304356-f6e3-48e9-9b65-a9efa41ce7a2": [ "0.0.6", "0.6.0", @@ -88080,6 +89516,8 @@ "3.5.149", "3.5.161", "3.5.178", + "3.5.220", + "3.5.260", "4.0.8", "4.0.50", "4.0.89", @@ -88090,7 +89528,9 @@ "4.0.142", "4.0.149", "4.0.161", - "4.0.178" + "4.0.178", + "4.0.220", + "4.0.260" ], "f7c56e2a-d1f1-4cff-b5d3-a32c9516c6e0": ["0.0.1", "0.0.2"], "f7cb8f80-5e35-11e7-8723-9bcb094935b3": ["1.0.0", "1.0.3"], @@ -88113,6 +89553,7 @@ "f853a3ff-dbff-4877-9a3c-faa22596861c": ["1.0.0", "1.0.1", "1.0.2"], "f8646b2a-2a8f-4244-a269-468c596ae4a1": ["1.0.0", "1.0.3", "1.3.0", "1.4.0"], "f891ac70-84df-11e8-a82f-2fbc6e6db5f0": ["1.0.0"], + "f8996a1d-b73c-41f5-a903-a7e399380399": ["23.1.0"], "f8a140d7-a179-4d5a-99d4-35adbe6d5081": ["0.5.1", "0.5.2", "0.5.5", "0.5.6"], "f8b18f87-bde0-47c0-bf7f-baa6b082054b": [ "0.1.0", @@ -88123,7 +89564,14 @@ "1.1.0", "1.1.1" ], - "f8b65b7d-54e2-4ab4-aeeb-ca3db08cc6ed": ["1.0.0", "1.0.2"], + "f8b65b7d-54e2-4ab4-aeeb-ca3db08cc6ed": [ + "1.0.0", + "1.0.2", + "1.0.3", + "1.0.4", + "1.0.6", + "1.0.7" + ], "f8b8adae-fba9-45d0-8092-d55b509b8d19": [ "1.0.2", "1.0.4", @@ -88270,7 +89718,10 @@ "1.0.9", "1.0.10", "1.0.11", - "1.0.12" + "1.0.12", + "1.0.13", + "1.0.14", + "1.0.15" ], "f91a591f-e382-4256-9b70-3a114f4f638a": [ "0.0.12", @@ -88500,7 +89951,8 @@ "2.0.9", "2.0.10", "2.0.11", - "2.0.12" + "2.0.12", + "2.0.13" ], "fabce42f-1d38-4004-a1ec-49c90d18e8ea": [ "0.9.0", @@ -88513,34 +89965,6 @@ "0.9.10", "0.9.11" ], - "fabseven.d365fonuggetmanagementtoolsv2.taskimportconfigurations.72dfa944-c991-4332-a81e-71186e4fca9c": [ - "1.0.0", - "2.2.0", - "3.1.0", - "4.1.0" - ], - "fabseven.d365fonuggetmanagementtoolsv2.taskimportconfigurations.dynamics365foimportdataviaodata": [ - "1.0.0", - "2.2.0", - "3.1.0", - "4.1.0" - ], - "fabseven.d365fonuggetmanagementtoolsv2.taskrunnuggetconfigurations.4fe0dbab-291a-4006-ac04-ca63b9550410": [ - "1.0.0", - "1.1.0", - "2.2.0", - "3.1.0", - "4.1.0" - ], - "fabseven.d365fonuggetmanagementtoolsv2.taskrunnuggetconfigurations.dynamics365foimportdataviaodata": [ - "1.0.0" - ], - "fabseven.d365fonuggetmanagementtoolsv2.taskrunnuggetconfigurations.dynamics365forundevopsorchestrator": [ - "1.1.0", - "2.2.0", - "3.1.0", - "4.1.0" - ], "facbe5c0-4767-4288-b2cd-79e9b955a68f": [ "0.1.0", "1.0.0", @@ -88701,7 +90125,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "fb61ed1d-442b-4018-bb46-e54afe16e262": ["1.0.3", "1.0.4"], "fb692f50-03a7-44cf-9110-2a943afeb976": [ @@ -89365,7 +90790,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "fdc8b8d4-78d6-4330-9299-3385f706a758": ["1.0.0", "1.1.0", "1.2.0"], "fdfb7a1e-10ca-4003-9e07-a568a2ee9c0b": [ @@ -89415,6 +90841,8 @@ "0.202.17", "0.202.18", "0.202.19", + "0.202.20", + "0.202.21", "0.203.0", "2.188.0", "2.188.1", @@ -89426,10 +90854,16 @@ "2.202.17", "2.202.18", "2.202.19", + "2.202.20", + "2.202.21", "2.203.0", "3.201.17", "3.201.18", - "3.209.19" + "3.209.19", + "3.209.20", + "3.209.21", + "4.218.20", + "4.218.21" ], "fe725709-3b76-4504-8d6a-a280c20d6ef3": [ "0.0.1", @@ -90448,7 +91882,8 @@ "2.0.27192", "2.0.27255", "2.0.27445", - "3.0.46092" + "3.0.46092", + "4.0.84386" ], "forte-digital.smoketestertask.smoketestertask.smoketester": [ "1.0.1", @@ -90522,7 +91957,8 @@ "2.0.27192", "2.0.27255", "2.0.27445", - "3.0.46092" + "3.0.46092", + "4.0.84386" ], "fortify on demand reporting": [ "0.0.1", @@ -90624,9 +92060,10 @@ "8.2.0", "8.3.0", "8.5.0", - "8.6.0" + "8.6.0", + "8.7.0" ], - "fortifyqualitygate": ["1.0.7", "1.0.16", "2.0.2"], + "fortifyqualitygate": ["1.0.7", "1.0.16", "2.0.2", "2.0.3", "2.0.4"], "fortifysca": [ "1.10.0", "1.11.0", @@ -90820,7 +92257,8 @@ "8.2.0", "8.3.0", "8.5.0", - "8.6.0" + "8.6.0", + "8.7.0" ], "fortifyvsts.hpe-security-fortify-vsts.build-task-fortify-on-demand-static.fortifyondemandstatic": [ "1.10.0", @@ -90856,7 +92294,8 @@ "8.2.0", "8.3.0", "8.5.0", - "8.6.0" + "8.6.0", + "8.7.0" ], "fortifyvsts.hpe-security-fortify-vsts.build-task-fortify-sca-install.818386e5-c8a5-46c3-822d-954b3c8fb131": [ "1.10.0", @@ -91524,12 +92963,16 @@ "gbnz.redis-cache-clear.rediscacheaddkey-release-task.e96f8bf8-2b84-49a1-a98d-33eb4c6f50f5": [ "1.0.0", "1.0.5", - "1.1.0" + "1.1.0", + "2.0.0", + "2.0.1" ], "gbnz.redis-cache-clear.rediscacheaddkey-release-task.rediscacheaddkey": [ "1.0.0", "1.0.5", - "1.1.0" + "1.1.0", + "2.0.0", + "2.0.1" ], "gbnz.redis-cache-clear.rediscacheclear-release-task.f93c2512-0abb-45dd-80f0-a1f43b1080ad": [ "1.0.0", @@ -91546,30 +92989,42 @@ "gbnz.redis-cache-clear.rediscacheclearkey-release-task.98e620c4-e2ad-47cd-bda0-41b028296cbb": [ "1.0.0", "1.0.5", - "1.1.0" + "1.1.0", + "2.0.0", + "2.0.1" ], "gbnz.redis-cache-clear.rediscacheclearkey-release-task.rediscacheclearkey": [ "1.0.0", "1.0.5", - "1.1.0" + "1.1.0", + "2.0.0", + "2.0.1" ], "gbnz.redis-cache-clear.rediscacheflushall-release-task.58a36166-34e3-4e41-ab7b-967dccc53690": [ "1.0.0", "1.0.5", - "1.1.0" + "1.1.0", + "2.0.0", + "2.0.1" ], "gbnz.redis-cache-clear.rediscacheflushall-release-task.rediscacheflushall": [ "1.0.0", "1.0.5", - "1.1.0" + "1.1.0", + "2.0.0", + "2.0.1" ], "gbnz.redis-cache-clear.rediscacheflushdb-release-task.2adf5d8e-029c-4ee6-8dbc-0a895ec2ce05": [ "1.0.0", - "1.1.0" + "1.1.0", + "2.0.0", + "2.0.1" ], "gbnz.redis-cache-clear.rediscacheflushdb-release-task.rediscacheflushdb": [ "1.0.0", - "1.1.0" + "1.1.0", + "2.0.0", + "2.0.1" ], "gcloudrunner": ["0.2.0", "0.2.1", "0.3.0", "0.4.0"], "geeklearningio.gl-vsts-tasks-azure.az-copy-task.azcopy": [ @@ -92272,7 +93727,12 @@ "0.1.33", "0.1.34", "0.1.35", - "0.1.36" + "0.1.36", + "0.1.37", + "0.1.38", + "0.1.39", + "0.1.40", + "0.1.41" ], "generateentityframeworkmigrationscript": [ "0.1.0", @@ -94436,6 +95896,7 @@ "2.208.1", "2.211.0" ], + "googleplayincreaserollout20230124": ["2.211.0"], "googleplaypromote": [ "1.0.0", "1.112.0", @@ -94461,6 +95922,7 @@ "3.208.0", "3.211.1" ], + "googleplaypromote20230124": ["3.211.1"], "googleplayrelease": [ "1.1.0", "1.2.0", @@ -94500,8 +95962,10 @@ "4.203.0", "4.207.0", "4.209.0", - "4.216.0" + "4.216.0", + "4.217.0" ], + "googleplayrelease20230124": ["4.217.0"], "googleplayreleasebundle": [ "3.160.0", "3.163.0", @@ -94524,6 +95988,7 @@ "2.207.0", "2.211.0" ], + "googleplaystatusupdate20230124": ["2.211.0"], "goreleaser": ["0.1.8"], "goreleaser.goreleaser.custom-build-release-task.b4a32eee-3b3e-11ec-8d3d-0242ac130003": [ "0.1.8" @@ -94878,7 +96343,10 @@ "1.0.3", "1.0.4", "1.0.5", - "1.0.6" + "1.0.6", + "1.1.3", + "1.1.4", + "1.1.5" ], "gsoft.lighthouse-vsts.lighthouse.lighthouse": [ "1.0.1", @@ -94886,7 +96354,10 @@ "1.0.3", "1.0.4", "1.0.5", - "1.0.6" + "1.0.6", + "1.1.3", + "1.1.4", + "1.1.5" ], "gsutilrunner": ["0.1.0", "0.2.0", "0.3.0"], "guid-generator": [ @@ -95533,6 +97004,7 @@ "0.4.18", "0.4.19" ], + "hawkscaninstall": ["0.1.0"], "hboelman.azureappservicesetappsettings.hboelman-vsts-release-appsettings.9d2e4cf0-f3bb-11e6-978b-770d284f4f2d": [ "0.3.2", "1.0.1", @@ -96065,7 +97537,11 @@ "5.4.35", "5.4.48", "5.4.52", - "5.4.55" + "5.4.55", + "5.4.59", + "5.4.61", + "5.4.62", + "5.4.66" ], "hlv-download-ftp-artifact": ["1.2.1", "1.2.2"], "hlv-git-commands": ["1.0.0", "1.0.8"], @@ -103386,7 +104862,8 @@ "2.0.9", "2.0.10", "2.0.11", - "2.0.12" + "2.0.12", + "2.0.13" ], "hypervserver": [ "5.1.65", @@ -104127,6 +105604,12 @@ "0.2.38" ], "imdsoftdevops2021.flutter.flutter-test.fluttertest": ["0.2.38"], + "immuniweb.immuniweb-neuron-task.custom-build-release-task.768a5ceb-23d4-446a-9a3a-04db3c4984cc": [ + "0.1.0" + ], + "immuniweb.immuniweb-neuron-task.custom-build-release-task.runneuron": [ + "0.1.0" + ], "import portal configuration": [ "1.1.32", "1.1.34", @@ -104503,6 +105986,7 @@ "4.0.8" ], "ineritedprocessmigration": [ + "1.0.1", "1.11.0", "1.11.1", "1.11.21", @@ -104518,7 +106002,8 @@ "1.11.121", "1.11.131", "1.11.141", - "1.11.151" + "1.11.151", + "1.12.41" ], "infamousjoeg.cyberark-conjur-secrets.custom-build-release-task.e9c84774-b108-43c0-b04a-7cfaa4ad6907": [ "1.2.15", @@ -104665,7 +106150,9 @@ "0.1.18", "0.2.0", "1.0.0", - "1.0.5" + "1.0.5", + "1.0.6", + "1.0.7" ], "infracost.infracost-tasks.infracost-setup-task.infracostsetup": [ "0.1.0", @@ -104688,7 +106175,9 @@ "0.1.18", "0.2.0", "1.0.0", - "1.0.5" + "1.0.5", + "1.0.6", + "1.0.7" ], "infracostcomment": [ "0.1.0", @@ -104732,7 +106221,9 @@ "0.1.18", "0.2.0", "1.0.0", - "1.0.5" + "1.0.5", + "1.0.6", + "1.0.7" ], "iniciawindowsservices": [ "0.0.20", @@ -105302,6 +106793,8 @@ "3.5.149", "3.5.161", "3.5.178", + "3.5.220", + "3.5.260", "4.0.8", "4.0.50", "4.0.89", @@ -105312,7 +106805,9 @@ "4.0.142", "4.0.149", "4.0.161", - "4.0.178" + "4.0.178", + "4.0.220", + "4.0.260" ], "installbccontainerhelper": [ "0.0.0", @@ -105451,7 +106946,9 @@ "0.6.32", "0.7.5", "0.8.10", - "0.8.34" + "0.8.34", + "0.9.19", + "1.9.19" ], "installmodelax2012": ["0.0.1", "0.0.2", "0.0.4", "0.0.5"], "installmodules": ["1.0.0", "1.0.1", "1.0.2"], @@ -105808,26 +107305,30 @@ "1.4.0", "1.5.0", "1.5.1", - "1.7.0" + "1.7.0", + "1.8.0" ], "invictiltd.acunetix360-extension.acunetix360-task.acunetix360": [ "1.0.0", "1.4.0", "1.5.0", "1.5.1", - "1.7.0" + "1.7.0", + "1.8.0" ], "invictiltd.netsparker-cloud-extension.netsparker-cloud-task.e2a81a06-bb2a-4223-97b4-9e09b0cfed73": [ "1.0.0", "1.5.0", "1.6.0", - "1.7.0" + "1.7.0", + "1.8.0" ], "invictiltd.netsparker-cloud-extension.netsparker-cloud-task.netsparker-cloud": [ "1.0.0", "1.5.0", "1.6.0", - "1.7.0" + "1.7.0", + "1.8.0" ], "invoke-build": ["2.14.0"], "invokemetadefendertask": ["0.3.1", "0.3.3", "0.3.4"], @@ -106056,7 +107557,8 @@ "1.178.2", "1.186.0", "1.189.0", - "1.207.0" + "1.207.0", + "1.218.0" ], "isaacabraham.fake-build.dd88f622-7838-44dc-96d6-2372af78775b.dd88f622-7838-44dc-96d6-2372af78775b": [ "1.0.2", @@ -106252,6 +107754,8 @@ "3.5.149", "3.5.161", "3.5.178", + "3.5.220", + "3.5.260", "4.0.8", "4.0.50", "4.0.89", @@ -106262,7 +107766,9 @@ "4.0.142", "4.0.149", "4.0.161", - "4.0.178" + "4.0.178", + "4.0.220", + "4.0.260" ], "isazuredevopsextensionvalidserver": [ "2.0.5", @@ -106314,7 +107820,9 @@ "4.0.142", "4.0.149", "4.0.161", - "4.0.178" + "4.0.178", + "4.0.220", + "4.0.260" ], "istio": ["1.0.0", "1.0.3"], "itszap.itszap-release-packager.itszap-build-releasepackager.3efc5a90-d2d9-11e5-870b-fddad3389520": [ @@ -106859,6 +108367,18 @@ "1.0.28", "1.0.29" ], + "jasonbjohnson.azure-pipelines-tasks-terraform.azure-pipelines-tasks-terraform-cli.51355d76-dd54-4754-919d-bba27fdf59e4": [ + "0.7.11" + ], + "jasonbjohnson.azure-pipelines-tasks-terraform.azure-pipelines-tasks-terraform-cli.terraformcli": [ + "0.7.11" + ], + "jasonbjohnson.azure-pipelines-tasks-terraform.azure-pipelines-tasks-terraform-installer.2b4600b9-5cd9-4e3b-9c8b-553c8e58383a": [ + "0.7.11" + ], + "jasonbjohnson.azure-pipelines-tasks-terraform.azure-pipelines-tasks-terraform-installer.terraforminstaller": [ + "0.7.11" + ], "jasonwhalley.pulumi-installer-task.pulumi-installer-task.af7fa111-9fb4-422f-be9f-95c96deaa4ea": [ "0.1.1", "0.1.2", @@ -107135,7 +108655,23 @@ "0.1.68", "1.1.0", "1.1.1", - "1.1.2" + "1.1.2", + "1.1.3", + "1.1.5", + "1.1.6", + "1.1.7", + "1.1.8", + "1.1.9", + "1.1.10", + "1.1.11", + "1.1.12", + "1.1.13", + "1.1.14", + "1.1.15", + "1.1.16", + "1.1.17", + "1.1.18", + "1.1.19" ], "jaydenmaalouf.terraform-output.terraformoutput.terraformoutput": [ "0.1.0", @@ -107208,7 +108744,23 @@ "0.1.68", "1.1.0", "1.1.1", - "1.1.2" + "1.1.2", + "1.1.3", + "1.1.5", + "1.1.6", + "1.1.7", + "1.1.8", + "1.1.9", + "1.1.10", + "1.1.11", + "1.1.12", + "1.1.13", + "1.1.14", + "1.1.15", + "1.1.16", + "1.1.17", + "1.1.18", + "1.1.19" ], "jb.queue-build.queue-build-task.025bc3d2-c942-42d2-9b76-97db7e884483": [ "1.0.0", @@ -107447,7 +108999,8 @@ "2.202.0", "2.208.0", "2.208.1", - "2.210.0" + "2.210.0", + "2.217.0" ], "jessehouwing.dotnetcore.dotnetcorecli-sxs.dotnetcorecli-sxs": [ "0.4.3", @@ -107456,7 +109009,8 @@ "2.202.0", "2.208.0", "2.208.1", - "2.210.0" + "2.210.0", + "2.217.0" ], "jessehouwing.dotnetcore.dotnetcoreinstaller-sxs.293bf4ff-c53b-5966-a88e-a9bfe843bc1d": [ "0.198.0", @@ -110039,24 +111593,28 @@ "1.199.0", "1.208.0", "1.212.0", - "1.214.0" + "1.214.0", + "1.217.0" ], "jessehouwing.visualstudio.msbuild-sxs.msbuild-sxs": [ "1.198.1", "1.199.0", "1.208.0", "1.212.0", - "1.214.0" + "1.214.0", + "1.217.0" ], "jessehouwing.visualstudio.visualstudiotestplatforminstaller-sxs.a7692b5d-a590-5763-949b-12ac8ed24643": [ "1.151.3", "1.212.0", - "1.214.0" + "1.214.0", + "1.215.0" ], "jessehouwing.visualstudio.visualstudiotestplatforminstaller-sxs.visualstudiotestplatforminstaller-sxs": [ "1.151.3", "1.212.0", - "1.214.0" + "1.214.0", + "1.215.0" ], "jessehouwing.visualstudio.vsbuild-sxs.e611ef14-f538-5f42-8ffc-60c88f7f045c": [ "1.198.1", @@ -110077,14 +111635,16 @@ "2.198.0", "2.203.0", "2.205.0", - "2.210.0" + "2.210.0", + "2.215.0" ], "jessehouwing.visualstudio.vstest-sxs.vstest-sxs": [ "1.198.0", "2.198.0", "2.203.0", "2.205.0", - "2.210.0" + "2.210.0", + "2.215.0" ], "jessehouwing.vsts-ensure-tests-tasks.vsts-ensure-tests-tasks.25d3d29e-5ea1-4453-9ce6-02e1b34ab30c": [ "0.0.0", @@ -110266,7 +111826,10 @@ "2022.1.1", "2022.2.1", "2022.2.4", - "2022.3.0" + "2022.3.0", + "2022.3.2", + "2022.3.3", + "2022.3.4" ], "jetbrains.qodana.qodanascan.qodanascan": [ "1.0.2", @@ -110276,7 +111839,10 @@ "2022.1.1", "2022.2.1", "2022.2.4", - "2022.3.0" + "2022.3.0", + "2022.3.2", + "2022.3.3", + "2022.3.4" ], "jfrog.jfrog-artifactory-vsts-extension.artifactory-collect-issues.07a15c20-6352-1d11-abde-ab31c4c12f1d": [ "1.9.0", @@ -112410,7 +113976,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrog.jfrog-azure-devops-extension.jfrog-audit-task.jfrogaudit": [ "1.0.1", @@ -112420,7 +113988,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrog.jfrog-azure-devops-extension.jfrog-build-scan-task.6344f8dc-e3e4-4658-84c6-bc26f7fd7de2": [ "1.0.1", @@ -112430,7 +114000,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrog.jfrog-azure-devops-extension.jfrog-build-scan-task.jfrogbuildscan": [ "1.0.1", @@ -112440,7 +114012,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrog.jfrog-azure-devops-extension.jfrog-cli-v2.66ef8d68-1df5-479d-9148-c7ed656e8a31": [ "1.0.1", @@ -112450,7 +114024,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrog.jfrog-azure-devops-extension.jfrog-cli-v2.jfrogcliv2": [ "1.0.1", @@ -112460,7 +114036,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrog.jfrog-azure-devops-extension.jfrog-collect-issues.1b03a764-f8b0-4eec-81bf-5abe1a15afff": [ "1.0.1", @@ -112470,7 +114048,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrog.jfrog-azure-devops-extension.jfrog-collect-issues.jfrogcollectissues": [ "1.0.1", @@ -112480,7 +114060,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrog.jfrog-azure-devops-extension.jfrog-conan-build-task.3809c250-e06b-4afe-b9d0-334ad742a7d4": [ "1.0.1", @@ -112490,7 +114072,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrog.jfrog-azure-devops-extension.jfrog-conan-build-task.jfrogconan": [ "1.0.1", @@ -112500,7 +114084,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrog.jfrog-azure-devops-extension.jfrog-discard-builds-task.625ba5b8-a30b-4103-8400-8ec94e2aef16": [ "1.0.1", @@ -112510,7 +114096,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrog.jfrog-azure-devops-extension.jfrog-discard-builds-task.jfrogdiscardbuilds": [ "1.0.1", @@ -112520,7 +114108,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrog.jfrog-azure-devops-extension.jfrog-distribution.ccd991c4-c497-4141-a36d-bd99e5139193": [ "1.0.1", @@ -112530,7 +114120,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrog.jfrog-azure-devops-extension.jfrog-distribution.jfrogdistribution": [ "1.0.1", @@ -112540,15 +114132,21 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrog.jfrog-azure-devops-extension.jfrog-docker-task.1a9ec20c-e108-11ec-9d64-0242ac120002": [ "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrog.jfrog-azure-devops-extension.jfrog-docker-task.jfrogdocker": [ "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrog.jfrog-azure-devops-extension.jfrog-dotnet.16358c16-3185-4979-8375-845dedcb6b8d": [ "1.0.1", @@ -112558,7 +114156,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrog.jfrog-azure-devops-extension.jfrog-dotnet.jfrogdotnetcore": [ "1.0.1", @@ -112568,7 +114168,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrog.jfrog-azure-devops-extension.jfrog-generic-artifacts.c288dcae-5ae4-4a37-a59d-11bb07d393a9": [ "1.0.1", @@ -112578,7 +114180,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrog.jfrog-azure-devops-extension.jfrog-generic-artifacts.jfroggenericartifacts": [ "1.0.1", @@ -112588,7 +114192,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrog.jfrog-azure-devops-extension.jfrog-go.bf0e8eea-ad19-4b7d-8415-374d83397de5": [ "1.0.1", @@ -112598,7 +114204,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrog.jfrog-azure-devops-extension.jfrog-go.jfroggo": [ "1.0.1", @@ -112608,7 +114216,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrog.jfrog-azure-devops-extension.jfrog-gradle.02572ee8-ad56-4738-bed8-63fa41d9f1e0": [ "1.0.1", @@ -112618,7 +114228,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrog.jfrog-azure-devops-extension.jfrog-gradle.jfroggradle": [ "1.0.1", @@ -112628,7 +114240,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrog.jfrog-azure-devops-extension.jfrog-maven.d7eca331-9d2a-405a-9374-4014532462b6": [ "1.0.1", @@ -112638,7 +114252,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrog.jfrog-azure-devops-extension.jfrog-maven.jfrogmaven": [ "1.0.1", @@ -112648,7 +114264,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrog.jfrog-azure-devops-extension.jfrog-npm.3a5a35c4-b755-4821-b4d9-f10ce6e1f86c": [ "1.0.1", @@ -112658,7 +114276,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrog.jfrog-azure-devops-extension.jfrog-npm.jfrognpm": [ "1.0.1", @@ -112668,7 +114288,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrog.jfrog-azure-devops-extension.jfrog-nuget.475870bd-8ef1-45bb-83dd-1b39902a8ace": [ "1.0.1", @@ -112678,7 +114300,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrog.jfrog-azure-devops-extension.jfrog-nuget.jfrognuget": [ "1.0.1", @@ -112688,7 +114312,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrog.jfrog-azure-devops-extension.jfrog-pip.5cfb06f3-4e91-44d8-a850-85c2dc11f36f": [ "1.0.1", @@ -112698,7 +114324,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrog.jfrog-azure-devops-extension.jfrog-pip.jfrogpip": [ "1.0.1", @@ -112708,7 +114336,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrog.jfrog-azure-devops-extension.jfrog-promote-build-task.32f70de9-cdd0-4009-831a-856c52a4a0ba": [ "1.0.1", @@ -112718,7 +114348,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrog.jfrog-azure-devops-extension.jfrog-promote-build-task.jfrogbuildpromotion": [ "1.0.1", @@ -112728,7 +114360,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrog.jfrog-azure-devops-extension.jfrog-publish-build-info.b700f673-acfc-4f5f-8b5e-24a585646319": [ "1.0.1", @@ -112738,7 +114372,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrog.jfrog-azure-devops-extension.jfrog-publish-build-info.jfrogpublishbuildinfo": [ "1.0.1", @@ -112748,7 +114384,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrog.jfrog-azure-devops-extension.jfrog-tools-installer-task.48966110-efbe-4151-a20d-d4160f8d69bb": [ "1.0.1", @@ -112758,7 +114396,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrog.jfrog-azure-devops-extension.jfrog-tools-installer-task.jfrogtoolsinstaller": [ "1.0.1", @@ -112768,7 +114408,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrogaudit": [ "1.0.1", @@ -112778,7 +114420,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrogbuildpromotion": [ "1.0.1", @@ -112788,7 +114432,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrogbuildscan": [ "1.0.1", @@ -112798,7 +114444,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrogcli": [ "1.10.0", @@ -112836,7 +114484,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrogcollectissues": [ "1.0.1", @@ -112846,7 +114496,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrogconan": [ "1.0.1", @@ -112856,7 +114508,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrogdiscardbuilds": [ "1.0.1", @@ -112866,7 +114520,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrogdistribution": [ "1.0.1", @@ -112876,9 +114532,11 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], - "jfrogdocker": ["1.2.0", "1.3.0"], + "jfrogdocker": ["1.2.0", "1.3.0", "1.4.0", "1.4.1"], "jfrogdotnetcore": [ "1.0.1", "1.0.2", @@ -112887,7 +114545,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfroggenericartifacts": [ "1.0.1", @@ -112897,7 +114557,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfroggo": [ "1.0.1", @@ -112907,7 +114569,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfroggradle": [ "1.0.1", @@ -112917,7 +114581,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrogmaven": [ "1.0.1", @@ -112927,7 +114593,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrognpm": [ "1.0.1", @@ -112937,7 +114605,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrognuget": [ "1.0.1", @@ -112947,7 +114617,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrogpip": [ "1.0.1", @@ -112957,7 +114629,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrogpublishbuildinfo": [ "1.0.1", @@ -112967,7 +114641,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jfrogtoolsinstaller": [ "1.0.1", @@ -112977,7 +114653,9 @@ "1.1.0", "1.1.1", "1.2.0", - "1.3.0" + "1.3.0", + "1.4.0", + "1.4.1" ], "jhagestedt.maven-cache.maven-cache-task.e49d7286-e3f9-4fe2-8844-b677a2eed24a": [ "0.1.0", @@ -113393,14 +115071,21 @@ ], "jonas-s.npm-audit.npm-audit-build-task.7890f95d-fd3a-4e5e-8a26-58d1bd0d4e0b": [ "1.0.0", - "1.1.0" + "1.1.0", + "1.2.0" + ], + "jonas-s.npm-audit.npm-audit-build-task.npm-audit": [ + "1.0.0", + "1.1.0", + "1.2.0" ], - "jonas-s.npm-audit.npm-audit-build-task.npm-audit": ["1.0.0", "1.1.0"], "jonas-s.nuget-vulnerability-scan.nuget-vulnerability-scan-build-task.f48f2638-81c8-477c-bf62-2b0d870be21f": [ - "1.0.0" + "1.0.0", + "1.1.0" ], "jonas-s.nuget-vulnerability-scan.nuget-vulnerability-scan-build-task.nugetvulnerabilityscan": [ - "1.0.0" + "1.0.0", + "1.1.0" ], "jonathanball.angular-cli-1.angular-cli-build-task.75b00cae-14b5-414f-b9f1-1aa71b192da2": [ "1.0.0" @@ -115459,7 +117144,8 @@ "8.5.0", "8.6.0", "8.7.0", - "8.8.0" + "8.8.0", + "8.9.0" ], "kine.naverticaltasks.047393e1-82e4-4d24-8275-237409bb378f.publishbcappdocker": [ "1.0.10", @@ -115530,7 +117216,8 @@ "8.5.0", "8.6.0", "8.7.0", - "8.8.0" + "8.8.0", + "8.9.0" ], "kine.naverticaltasks.047393e1-82e4-4d24-8275-237409bb378f.publishdocker": [ "1.0.0", @@ -117628,7 +119315,17 @@ "0.1.6" ], "liero.libman.libmantask.libmantask": ["0.1.5", "0.1.6"], - "lighthouse": ["1.0.1", "1.0.2", "1.0.3", "1.0.4", "1.0.5", "1.0.6"], + "lighthouse": [ + "1.0.1", + "1.0.2", + "1.0.3", + "1.0.4", + "1.0.5", + "1.0.6", + "1.1.3", + "1.1.4", + "1.1.5" + ], "lighthouse-ci": [ "0.1.1", "1.0.1", @@ -120635,7 +122332,9 @@ "0.6.32", "0.7.5", "0.8.10", - "0.8.34" + "0.8.34", + "0.9.19", + "1.9.19" ], "mathworks.matlab-azure-devops-extension.installmatlab.installmatlab": [ "0.1.4", @@ -120656,17 +122355,21 @@ "0.6.32", "0.7.5", "0.8.10", - "0.8.34" + "0.8.34", + "0.9.19", + "1.9.19" ], "mathworks.matlab-azure-devops-extension.runmatlabbuild.c61c6fcc-00f1-4aa0-8513-31aad3340512": [ "0.7.5", "0.8.10", - "0.8.34" + "0.8.34", + "0.9.19" ], "mathworks.matlab-azure-devops-extension.runmatlabbuild.runmatlabbuild": [ "0.7.5", "0.8.10", - "0.8.34" + "0.8.34", + "0.9.19" ], "mathworks.matlab-azure-devops-extension.runmatlabcommand.28fdff80-51b4-4b6e-83e1-cfcf3f3b25a6": [ "0.1.4", @@ -120687,7 +122390,8 @@ "0.6.32", "0.7.5", "0.8.10", - "0.8.34" + "0.8.34", + "0.9.19" ], "mathworks.matlab-azure-devops-extension.runmatlabcommand.runmatlabcommand": [ "0.1.4", @@ -120708,7 +122412,8 @@ "0.6.32", "0.7.5", "0.8.10", - "0.8.34" + "0.8.34", + "0.9.19" ], "mathworks.matlab-azure-devops-extension.runmatlabtests.d9f28863-c9b0-4133-9cb8-a6d4744f30ef": [ "0.1.4", @@ -120729,7 +122434,8 @@ "0.6.32", "0.7.5", "0.8.10", - "0.8.34" + "0.8.34", + "0.9.19" ], "mathworks.matlab-azure-devops-extension.runmatlabtests.runmatlabtests": [ "0.1.4", @@ -120750,7 +122456,8 @@ "0.6.32", "0.7.5", "0.8.10", - "0.8.34" + "0.8.34", + "0.9.19" ], "matrix42ag.matrix42extensionspublishingtoolspublic.generate-package-task.de7b28a2-4ca6-4815-854f-851ba605a155": [ "0.1.1", @@ -121466,6 +123173,16 @@ "0.0.4", "0.0.5" ], + "michaelclay.azure-pipelines-allure-report-viewer.publishallurereport.bf52d8fd-c399-4acd-98c7-a03ceee2a973": [ + "1.0.19", + "1.0.20", + "1.0.21" + ], + "michaelclay.azure-pipelines-allure-report-viewer.publishallurereport.publishallurereport": [ + "1.0.19", + "1.0.20", + "1.0.21" + ], "michaelcollins.customemailtask.custom-email-build-task.bc0b0c5b-80c4-4b20-924d-b8d1ccbc0b0c": [ "1.0.0", "1.0.1", @@ -121650,7 +123367,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.add-solution-component.powerplatformaddsolutioncomponent": [ "2.0.3", @@ -121660,7 +123378,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.apply-solution-upgrade.44baeac4-f767-4cb9-83e8-d210ce763397": [ "0.0.23", @@ -121682,7 +123401,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.apply-solution-upgrade.powerplatformapplysolutionupgrade": [ "0.0.23", @@ -121704,15 +123424,18 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.assign-group.47203ae0-e66b-4cc7-bdbd-77ea87aaf473": [ "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.assign-group.powerplatformassigngroup": [ "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.assign-user.4bc2c638-8a95-473d-bc83-2c9ec8b18885": [ "2.0.3", @@ -121722,7 +123445,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.assign-user.powerplatformassignuser": [ "2.0.3", @@ -121732,7 +123456,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.backup-environment.bfd05e80-f553-4a07-aaff-b44ab65bd61d": [ "0.0.1", @@ -121763,7 +123488,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.backup-environment.powerplatformbackupenvironment": [ "0.0.1", @@ -121794,7 +123520,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.checker.54b4d3aa-732f-436b-9996-2a96a6715191": [ "0.0.1", @@ -121825,7 +123552,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.checker.powerplatformchecker": [ "0.0.1", @@ -121856,7 +123584,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.copy-environment.0dba3baf-3724-455d-b194-3c6ec0b56431": [ "0.0.1", @@ -121887,7 +123616,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.copy-environment.powerplatformcopyenvironment": [ "0.0.1", @@ -121918,7 +123648,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.create-environment.9788ca49-dc8f-4d6b-bd5a-bab0fed0bc0c": [ "0.0.1", @@ -121949,7 +123680,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.create-environment.powerplatformcreateenvironment": [ "0.0.1", @@ -121980,7 +123712,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.delete-environment.d06e33c0-b482-48fc-8376-e3623651de01": [ "0.0.1", @@ -122011,7 +123744,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.delete-environment.powerplatformdeleteenvironment": [ "0.0.1", @@ -122042,7 +123776,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.delete-solution.a497eae1-e8b2-4ec8-be6a-e865c0b952c1": [ "0.0.23", @@ -122064,7 +123799,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.delete-solution.powerplatformdeletesolution": [ "0.0.23", @@ -122086,7 +123822,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.deploy-package.6eba22e9-9666-4241-8664-3d96354449c3": [ "0.0.1", @@ -122117,7 +123854,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.deploy-package.powerplatformdeploypackage": [ "0.0.1", @@ -122148,7 +123886,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.download-paportal.75caa998-d6b8-481b-9ac9-63f49bd41e23": [ "0.0.76", @@ -122162,7 +123901,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.download-paportal.powerplatformdownloadpaportal": [ "0.0.76", @@ -122176,21 +123916,24 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.export-data.378ce4ea-1265-49fd-a64d-f36da5b2fb31": [ "2.0.7", "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.export-data.powerplatformexportdata": [ "2.0.7", "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.export-solution.16f6dae7-e6ef-4629-ae75-7988463cb6a6": [ "0.0.1", @@ -122221,7 +123964,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.export-solution.powerplatformexportsolution": [ "0.0.1", @@ -122252,21 +123996,24 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.import-data.975fae62-ca27-4125-8fa5-f7cc0844c4f6": [ "2.0.7", "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.import-data.powerplatformimportdata": [ "2.0.7", "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.import-solution.fb4a48f1-0eeb-4909-9e47-9bc290e1cb89": [ "0.0.1", @@ -122297,7 +124044,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.import-solution.powerplatformimportsolution": [ "0.0.1", @@ -122328,17 +124076,20 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.install-application.4395c90d-df12-4914-a900-98165bddb8cf": [ "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.install-application.powerplatforminstallapplication": [ "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.pack-solution.769929ed-e421-451b-8255-21a8d9d9d3f9": [ "0.0.1", @@ -122369,7 +124120,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.pack-solution.powerplatformpacksolution": [ "0.0.1", @@ -122400,7 +124152,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.publish-customizations.da253d32-26bf-47cc-8994-ddb90bbfbe36": [ "0.0.1", @@ -122431,7 +124184,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.publish-customizations.powerplatformpublishcustomizations": [ "0.0.1", @@ -122462,7 +124216,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.reset-environment.6e960d4e-ff9f-4112-8dd0-db0e97a7f131": [ "0.0.1", @@ -122493,7 +124248,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.reset-environment.powerplatformresetenvironment": [ "0.0.1", @@ -122524,7 +124280,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.restore-environment.f11d7007-9076-4ecf-839f-b46e0f65dbc6": [ "0.0.1", @@ -122555,7 +124312,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.restore-environment.powerplatformrestoreenvironment": [ "0.0.1", @@ -122586,21 +124344,24 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.set-connection-variables.f39f114b-39ae-487c-b3af-2e243c29cbb1": [ "2.0.7", "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.set-connection-variables.powerplatformsetconnectionvariables": [ "2.0.7", "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.set-solution-version.2c73f444-efd5-46b6-9416-44273166267b": [ "0.0.1", @@ -122631,7 +124392,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.set-solution-version.powerplatformsetsolutionversion": [ "0.0.1", @@ -122662,7 +124424,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.tool-installer.8015465b-f367-4ec4-8215-8edf682574d3": [ "0.0.1", @@ -122693,7 +124456,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.tool-installer.powerplatformtoolinstaller": [ "0.0.1", @@ -122724,7 +124488,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.unpack-solution.3cac89bb-1ef1-4aa7-a3c6-36c6e79c700e": [ "0.0.1", @@ -122755,7 +124520,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.unpack-solution.powerplatformunpacksolution": [ "0.0.1", @@ -122786,7 +124552,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.upload-paportal.ce0b296e-f1e6-4be2-a18b-a431c106cb86": [ "0.0.76", @@ -122800,7 +124567,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.upload-paportal.powerplatformuploadpaportal": [ "0.0.76", @@ -122814,7 +124582,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.whoami.d4a5d5cd-341b-47da-88a7-1c2379a0783a": [ "0.0.1", @@ -122845,7 +124614,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-isvexptools.powerplatform-buildtools.whoami.powerplatformwhoami": [ "0.0.1", @@ -122876,7 +124646,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "microsoft-oryx.azurecontainerappsrc.container-apps-deploy-pipelines-task.04e660e2-4ef0-4169-9c5d-23c0579757f6": [ "0.1.0", @@ -122885,7 +124656,13 @@ "0.1.3", "0.1.4", "0.1.6", - "0.1.7" + "0.1.7", + "0.1.8", + "0.1.9", + "0.1.10", + "0.1.11", + "0.1.12", + "0.1.13" ], "microsoft-oryx.azurecontainerappsrc.container-apps-deploy-pipelines-task.azurecontainerappsrc": [ "0.1.0", @@ -122894,7 +124671,13 @@ "0.1.3", "0.1.4", "0.1.6", - "0.1.7" + "0.1.7", + "0.1.8", + "0.1.9", + "0.1.10", + "0.1.11", + "0.1.12", + "0.1.13" ], "microsoftazloadtest": [ "1.1.2", @@ -124736,7 +126519,11 @@ "0.202.17", "0.202.18", "0.202.19", - "0.203.0" + "0.202.20", + "0.202.21", + "0.203.0", + "1.216.20", + "1.216.21" ], "ms-devlabs.custom-terraform-tasks.custom-terraform-installer-task.terraforminstaller": [ "0.0.13", @@ -124750,7 +126537,11 @@ "0.202.17", "0.202.18", "0.202.19", - "0.203.0" + "0.202.20", + "0.202.21", + "0.203.0", + "1.216.20", + "1.216.21" ], "ms-devlabs.custom-terraform-tasks.custom-terraform-release-task.fe504acc-6115-40cb-89ff-191386b5e7bf": [ "0.0.104", @@ -124770,6 +126561,8 @@ "0.202.17", "0.202.18", "0.202.19", + "0.202.20", + "0.202.21", "0.203.0", "2.188.0", "2.188.1", @@ -124781,10 +126574,16 @@ "2.202.17", "2.202.18", "2.202.19", + "2.202.20", + "2.202.21", "2.203.0", "3.201.17", "3.201.18", - "3.209.19" + "3.209.19", + "3.209.20", + "3.209.21", + "4.218.20", + "4.218.21" ], "ms-devlabs.custom-terraform-tasks.custom-terraform-release-task.terraformtask": [ "0.0.104" @@ -124806,6 +126605,8 @@ "0.202.17", "0.202.18", "0.202.19", + "0.202.20", + "0.202.21", "0.203.0" ], "ms-devlabs.custom-terraform-tasks.custom-terraform-release-task.terraformtaskv2": [ @@ -124819,12 +126620,20 @@ "2.202.17", "2.202.18", "2.202.19", + "2.202.20", + "2.202.21", "2.203.0" ], "ms-devlabs.custom-terraform-tasks.custom-terraform-release-task.terraformtaskv3": [ "3.201.17", "3.201.18", - "3.209.19" + "3.209.19", + "3.209.20", + "3.209.21" + ], + "ms-devlabs.custom-terraform-tasks.custom-terraform-release-task.terraformtaskv4": [ + "4.218.20", + "4.218.21" ], "ms-devlabs.utilitytasks.task-pspp.4c073640-a478-11e5-a7e5-850fa42c7a74": [ "0.2.0", @@ -124993,6 +126802,8 @@ "3.5.149", "3.5.161", "3.5.178", + "3.5.220", + "3.5.260", "4.0.124", "4.1.8", "4.1.50", @@ -125004,7 +126815,9 @@ "4.1.142", "4.1.149", "4.1.161", - "4.1.178" + "4.1.178", + "4.1.220", + "4.1.260" ], "ms-devlabs.vsts-developer-tools-build-tasks.extension-version-build-task.extensionversion": [ "0.0.0", @@ -125106,6 +126919,8 @@ "3.5.149", "3.5.161", "3.5.178", + "3.5.220", + "3.5.260", "4.0.124", "4.1.8", "4.1.50", @@ -125117,7 +126932,9 @@ "4.1.142", "4.1.149", "4.1.161", - "4.1.178" + "4.1.178", + "4.1.220", + "4.1.260" ], "ms-devlabs.vsts-developer-tools-build-tasks.install-extension-build-task.": [ "0.0.0" @@ -125222,6 +127039,8 @@ "3.5.149", "3.5.161", "3.5.178", + "3.5.220", + "3.5.260", "4.0.8", "4.0.50", "4.0.89", @@ -125232,7 +127051,9 @@ "4.0.142", "4.0.149", "4.0.161", - "4.0.178" + "4.0.178", + "4.0.220", + "4.0.260" ], "ms-devlabs.vsts-developer-tools-build-tasks.install-extension-build-task.installazuredevopsextension": [ "2.0.5", @@ -125284,6 +127105,8 @@ "3.5.149", "3.5.161", "3.5.178", + "3.5.220", + "3.5.260", "4.0.8", "4.0.50", "4.0.89", @@ -125294,7 +127117,9 @@ "4.0.142", "4.0.149", "4.0.161", - "4.0.178" + "4.0.178", + "4.0.220", + "4.0.260" ], "ms-devlabs.vsts-developer-tools-build-tasks.install-extension-build-task.installextension": [ "0.0.0", @@ -125429,6 +127254,8 @@ "3.5.149", "3.5.161", "3.5.178", + "3.5.220", + "3.5.260", "4.0.8", "4.0.50", "4.0.89", @@ -125439,7 +127266,9 @@ "4.0.142", "4.0.149", "4.0.161", - "4.0.178" + "4.0.178", + "4.0.220", + "4.0.260" ], "ms-devlabs.vsts-developer-tools-build-tasks.is-valid-extension-agent-build-task.check marketplace validation status.": [ "1.1.65", @@ -125524,6 +127353,8 @@ "3.5.149", "3.5.161", "3.5.178", + "3.5.220", + "3.5.260", "4.0.8", "4.0.50", "4.0.89", @@ -125534,7 +127365,9 @@ "4.0.142", "4.0.149", "4.0.161", - "4.0.178" + "4.0.178", + "4.0.220", + "4.0.260" ], "ms-devlabs.vsts-developer-tools-build-tasks.is-valid-extension-build-task.231decda-22cb-4e83-b2f4-31fc86a0de1f": [ "1.1.65", @@ -125617,7 +127450,9 @@ "4.0.142", "4.0.149", "4.0.161", - "4.0.178" + "4.0.178", + "4.0.220", + "4.0.260" ], "ms-devlabs.vsts-developer-tools-build-tasks.is-valid-extension-build-task.check marketplace validation status.": [ "1.1.65", @@ -125702,7 +127537,9 @@ "4.0.142", "4.0.149", "4.0.161", - "4.0.178" + "4.0.178", + "4.0.220", + "4.0.260" ], "ms-devlabs.vsts-developer-tools-build-tasks.package-extension-build-task.": [ "0.0.0" @@ -125807,6 +127644,8 @@ "3.5.149", "3.5.161", "3.5.178", + "3.5.220", + "3.5.260", "4.0.8", "4.0.50", "4.0.89", @@ -125817,7 +127656,9 @@ "4.0.142", "4.0.149", "4.0.161", - "4.0.178" + "4.0.178", + "4.0.220", + "4.0.260" ], "ms-devlabs.vsts-developer-tools-build-tasks.package-extension-build-task.packageazuredevopsextension": [ "2.0.5", @@ -125869,6 +127710,8 @@ "3.5.149", "3.5.161", "3.5.178", + "3.5.220", + "3.5.260", "4.0.8", "4.0.50", "4.0.89", @@ -125879,7 +127722,9 @@ "4.0.142", "4.0.149", "4.0.161", - "4.0.178" + "4.0.178", + "4.0.220", + "4.0.260" ], "ms-devlabs.vsts-developer-tools-build-tasks.package-extension-build-task.packagevstsextension": [ "0.0.0", @@ -126033,6 +127878,8 @@ "3.5.149", "3.5.161", "3.5.178", + "3.5.220", + "3.5.260", "4.0.8", "4.0.50", "4.0.89", @@ -126043,7 +127890,9 @@ "4.0.142", "4.0.149", "4.0.161", - "4.0.178" + "4.0.178", + "4.0.220", + "4.0.260" ], "ms-devlabs.vsts-developer-tools-build-tasks.publish-extension-build-task.publishazuredevopsextension": [ "2.0.5", @@ -126095,6 +127944,8 @@ "3.5.149", "3.5.161", "3.5.178", + "3.5.220", + "3.5.260", "4.0.8", "4.0.50", "4.0.89", @@ -126105,7 +127956,9 @@ "4.0.142", "4.0.149", "4.0.161", - "4.0.178" + "4.0.178", + "4.0.220", + "4.0.260" ], "ms-devlabs.vsts-developer-tools-build-tasks.publish-extension-build-task.publishextension": [ "0.0.0", @@ -126225,6 +128078,8 @@ "3.5.149", "3.5.161", "3.5.178", + "3.5.220", + "3.5.260", "4.0.8", "4.0.50", "4.0.89", @@ -126235,7 +128090,9 @@ "4.0.142", "4.0.149", "4.0.161", - "4.0.178" + "4.0.178", + "4.0.220", + "4.0.260" ], "ms-devlabs.vsts-developer-tools-build-tasks.publish-vs-extension-build-task.publishvisualstudioextension": [ "2.0.5", @@ -126286,6 +128143,8 @@ "3.5.149", "3.5.161", "3.5.178", + "3.5.220", + "3.5.260", "4.0.8", "4.0.50", "4.0.89", @@ -126296,7 +128155,9 @@ "4.0.142", "4.0.149", "4.0.161", - "4.0.178" + "4.0.178", + "4.0.220", + "4.0.260" ], "ms-devlabs.vsts-developer-tools-build-tasks.publish-vs-extension-build-task.publishvsextension": [ "1.2.14", @@ -126418,6 +128279,8 @@ "3.5.149", "3.5.161", "3.5.178", + "3.5.220", + "3.5.260", "4.0.8", "4.0.50", "4.0.89", @@ -126428,7 +128291,9 @@ "4.0.142", "4.0.149", "4.0.161", - "4.0.178" + "4.0.178", + "4.0.220", + "4.0.260" ], "ms-devlabs.vsts-developer-tools-build-tasks.share-extension-build-task.shareazuredevopsextension": [ "2.0.5", @@ -126479,6 +128344,8 @@ "3.5.149", "3.5.161", "3.5.178", + "3.5.220", + "3.5.260", "4.0.8", "4.0.50", "4.0.89", @@ -126489,7 +128356,9 @@ "4.0.142", "4.0.149", "4.0.161", - "4.0.178" + "4.0.178", + "4.0.220", + "4.0.260" ], "ms-devlabs.vsts-developer-tools-build-tasks.share-extension-build-task.shareextension": [ "0.0.0", @@ -126605,6 +128474,8 @@ "3.5.149", "3.5.161", "3.5.178", + "3.5.220", + "3.5.260", "4.0.8", "4.0.50", "4.0.89", @@ -126615,7 +128486,9 @@ "4.0.142", "4.0.149", "4.0.161", - "4.0.178" + "4.0.178", + "4.0.220", + "4.0.260" ], "ms-devlabs.vsts-developer-tools-build-tasks.tfx-installer-build-task.tfxinstaller": [ "1.2.30", @@ -126680,6 +128553,8 @@ "3.5.149", "3.5.161", "3.5.178", + "3.5.220", + "3.5.260", "4.0.8", "4.0.50", "4.0.89", @@ -126690,7 +128565,9 @@ "4.0.142", "4.0.149", "4.0.161", - "4.0.178" + "4.0.178", + "4.0.220", + "4.0.260" ], "ms-devlabs.vsts-developer-tools-build-tasks.unpublish-extension-build-task.b2664b33-2f30-40a4-b75f-bb9456ad27d2": [ "3.1.60", @@ -126718,6 +128595,8 @@ "3.5.149", "3.5.161", "3.5.178", + "3.5.220", + "3.5.260", "4.0.8", "4.0.50", "4.0.89", @@ -126728,7 +128607,9 @@ "4.0.142", "4.0.149", "4.0.161", - "4.0.178" + "4.0.178", + "4.0.220", + "4.0.260" ], "ms-devlabs.vsts-developer-tools-build-tasks.unpublish-extension-build-task.unpublishazuredevopsextension": [ "3.1.60", @@ -126756,6 +128637,8 @@ "3.5.149", "3.5.161", "3.5.178", + "3.5.220", + "3.5.260", "4.0.8", "4.0.50", "4.0.89", @@ -126766,7 +128649,9 @@ "4.0.142", "4.0.149", "4.0.161", - "4.0.178" + "4.0.178", + "4.0.220", + "4.0.260" ], "ms-easbuild.buildnotification.task-buildnotification.b0e438f2-18ba-44df-b6e5-1deb7a29811f": [ "1.19.1", @@ -126804,7 +128689,8 @@ "1.4.6", "1.4.7", "1.4.8", - "1.4.9" + "1.4.9", + "1.5.0" ], "ms-omex.prmetrics.prmetrics.prmetrics": [ "1.0.0", @@ -126834,7 +128720,8 @@ "1.4.6", "1.4.7", "1.4.8", - "1.4.9" + "1.4.9", + "1.5.0" ], "ms-openapi.openapidocumenttools.openapidocumentbuilder-build-task.332865cc-aa31-450c-9888-2b2a51e1c5ac": [ "0.0.1", @@ -127166,7 +129053,8 @@ "1.183.0", "1.186.0", "1.189.0", - "1.207.0" + "1.207.0", + "1.218.0" ], "ms-vsclient.app-store.app-store-promote.cbbf7f14-c386-4c1f-80a3-fe500e2bd976": [ "1.0.0", @@ -127184,7 +129072,8 @@ "1.183.0", "1.186.0", "1.189.0", - "1.207.0" + "1.207.0", + "1.218.0" ], "ms-vsclient.app-store.app-store-release.2e371150-da5e-11e5-83da-0943b1acc572": [ "1.0.0", @@ -127207,7 +129096,8 @@ "1.186.0", "1.188.0", "1.189.0", - "1.207.0" + "1.207.0", + "1.218.0" ], "ms-vsclient.app-store.app-store-release.appstorerelease": [ "1.0.0", @@ -127230,7 +129120,8 @@ "1.186.0", "1.188.0", "1.189.0", - "1.207.0" + "1.207.0", + "1.218.0" ], "ms-vsclient.app-store.ipa-resign.cbbf7f14-c386-4c1f-80a3-fe500e2bd977": [ "1.112.0", @@ -127243,7 +129134,8 @@ "1.178.2", "1.186.0", "1.189.0", - "1.207.0" + "1.207.0", + "1.218.0" ], "ms-vsclient.app-store.ipa-resign.iparesign": [ "1.112.0", @@ -127256,7 +129148,8 @@ "1.178.2", "1.186.0", "1.189.0", - "1.207.0" + "1.207.0", + "1.218.0" ], "ms-vsclient.code-push.codepush.tasks.patch.codepushpatch": [ "1.0.0", @@ -127421,7 +129314,8 @@ "4.203.0", "4.207.0", "4.209.0", - "4.216.0" + "4.216.0", + "4.217.0" ], "ms-vsclient.google-play.google-play-release.google-play-release": [ "1.0.0", @@ -127467,7 +129361,8 @@ "4.203.0", "4.207.0", "4.209.0", - "4.216.0" + "4.216.0", + "4.217.0" ], "ms-vsclient.google-play.google-play-rollout-update.f8c97cf9-4e17-4244-b0fb-f540cea78153": [ "1.0.0", @@ -127979,7 +129874,14 @@ "msappcenter.app-center-distribute-v3.custom-build-release-task.appcenterdistributeonpremise": [ "3.173.0" ], - "msbuild-sxs": ["1.198.1", "1.199.0", "1.208.0", "1.212.0", "1.214.0"], + "msbuild-sxs": [ + "1.198.1", + "1.199.0", + "1.208.0", + "1.212.0", + "1.214.0", + "1.217.0" + ], "msbuildhelpertask": [ "0.0.16", "0.1.937", @@ -129606,7 +131508,10 @@ "1.411.0", "1.412.0", "1.413.0", - "1.414.0" + "1.414.0", + "1.415.0", + "1.416.0", + "1.419.0" ], "ndepend.ndependextension.ndepend-task.ndependtask": [ "1.0.0", @@ -129791,7 +131696,10 @@ "1.411.0", "1.412.0", "1.413.0", - "1.414.0" + "1.414.0", + "1.415.0", + "1.416.0", + "1.419.0" ], "ndependtask": [ "1.0.0", @@ -129976,7 +131884,10 @@ "1.411.0", "1.412.0", "1.413.0", - "1.414.0" + "1.414.0", + "1.415.0", + "1.416.0", + "1.419.0" ], "needcode.applicationbackup.needcode-applicationbackup.1ae9cc7b-29a4-4614-82df-00dc3ea74cd0": [ "1.0.0", @@ -130168,7 +132079,7 @@ ], "netplus-vsextension-heroku": ["1.0.0", "1.0.6"], "netscalerchangeservicestate": ["0.1.67", "0.1.68"], - "netsparker-cloud": ["1.0.0", "1.5.0", "1.6.0", "1.7.0"], + "netsparker-cloud": ["1.0.0", "1.5.0", "1.6.0", "1.7.0", "1.8.0"], "neudesic.neudesic-devops-framework.xplatgenerate-release-notes.53b075d2-6f98-4419-8fd2-11688a3f0454": [ "3.0.47" ], @@ -130822,7 +132733,10 @@ "1.6.0", "1.6.1", "1.6.2", - "1.6.3" + "1.6.3", + "1.6.4", + "1.6.5", + "1.6.6" ], "nicktolhurst.notion-release-notes.notion-release-notes.31fc17f2-be55-4d37-a5c9-8c50d47612b0": [ "0.1.1", @@ -130998,6 +132912,7 @@ "2.3.48" ], "nkdagility.processtemplate.inheritedprocessmigration-task.c6e8cd46-7141-41d1-b21e-9932e08fa67f": [ + "1.0.1", "1.11.0", "1.11.1", "1.11.21", @@ -131013,9 +132928,11 @@ "1.11.121", "1.11.131", "1.11.141", - "1.11.151" + "1.11.151", + "1.12.41" ], "nkdagility.processtemplate.inheritedprocessmigration-task.ineritedprocessmigration": [ + "1.0.1", "1.11.0", "1.11.1", "1.11.21", @@ -131031,7 +132948,8 @@ "1.11.121", "1.11.131", "1.11.141", - "1.11.151" + "1.11.151", + "1.12.41" ], "nkdagility.processtemplate.processtemplate-task.63823d31-810c-4957-9bc1-859757ace94d": [ "0.2.0", @@ -131057,6 +132975,8 @@ "1.11.13", "1.11.14", "1.11.15", + "1.12.4", + "2.0.0", "2.1.4", "2.1.61", "2.1.78", @@ -131085,6 +133005,7 @@ "2.11.13", "2.11.14", "2.11.15", + "2.12.4", "3.0.0", "3.0.1", "3.11.0", @@ -131103,6 +133024,7 @@ "3.11.13", "3.11.14", "3.11.15", + "3.12.4", "4.0.0", "4.0.2", "4.0.3", @@ -131122,7 +133044,8 @@ "4.11.12", "4.11.13", "4.11.14", - "4.11.15" + "4.11.15", + "4.12.4" ], "nkdagility.processtemplate.processtemplate-task.processtemplate": [ "0.2.0", @@ -131148,11 +133071,13 @@ "1.11.13", "1.11.14", "1.11.15", + "1.12.4", "2.1.4", "2.1.61" ], "nkdagility.processtemplate.processtemplate-task.processtemplatetask": [ "1.9.0", + "2.0.0", "2.1.78", "2.1.710", "2.1.711", @@ -131179,6 +133104,7 @@ "2.11.13", "2.11.14", "2.11.15", + "2.12.4", "3.0.0", "3.0.1", "3.11.0", @@ -131197,6 +133123,7 @@ "3.11.13", "3.11.14", "3.11.15", + "3.12.4", "4.0.0", "4.0.2", "4.0.3", @@ -131216,7 +133143,8 @@ "4.11.12", "4.11.13", "4.11.14", - "4.11.15" + "4.11.15", + "4.12.4" ], "nkdagility.variablehydration.variabledehydration-task.94fd260a-77ed-4c97-a4aa-2a27039e29b8": [ "0.1.0", @@ -131898,7 +133826,7 @@ "1.0.15", "1.0.16" ], - "npm-audit": ["1.0.0", "1.1.0"], + "npm-audit": ["1.0.0", "1.1.0", "1.2.0"], "nsadiq.newreclicdeploymentmarker.newreclicdeploymentmarker.5164728d-cfca-4576-a066-bde89930bf2b": [ "0.0.16", "1.2.2", @@ -131995,7 +133923,7 @@ "1.1.5" ], "nugetversionsynchronizer": ["0.0.3", "0.0.4"], - "nugetvulnerabilityscan": ["1.0.0"], + "nugetvulnerabilityscan": ["1.0.0", "1.1.0"], "nugetvulnerabilityscantask": [ "1.0.31", "1.0.32", @@ -132019,7 +133947,8 @@ "1.1.17", "1.1.19", "1.1.20", - "1.1.21" + "1.1.21", + "1.1.23" ], "nupkgwrench": [ "0.0.1", @@ -133656,12 +135585,13 @@ "1.2.1", "2.0.12", "2.0.13", - "3.0.1" + "3.0.1", + "3.0.2" ], - "oc-setup": ["1.0.0", "1.0.1", "2.0.12", "2.0.13", "3.0.1"], + "oc-setup": ["1.0.0", "1.0.1", "2.0.12", "2.0.13", "3.0.1", "3.0.2"], "oc3buildtask": ["0.1.0"], "oc3tagtask": ["0.1.0"], - "occonditionalcmd": ["2.0.13", "3.0.1"], + "occonditionalcmd": ["2.0.13", "3.0.1", "3.0.2"], "octane-connection-verifier": ["1.0.0", "1.1.0", "1.4.0"], "octane-end-task": [ "1.0.0", @@ -133708,11 +135638,15 @@ "4.3.109", "4.3.131", "4.3.134", + "4.3.465", + "4.3.502", "5.0.57", "5.0.66", "5.0.109", "5.0.131", - "5.0.134" + "5.0.134", + "5.0.465", + "5.0.502" ], "octoinstaller": [ "3.0.162", @@ -133765,12 +135699,20 @@ "4.3.109", "4.3.131", "4.3.134", + "4.3.465", + "4.3.502", "5.0.57", "5.0.66", "5.0.109", "5.0.131", - "5.0.134" - ], + "5.0.134", + "5.0.465", + "5.0.502", + "6.0.465", + "6.0.502" + ], + "octopusawaittask": ["6.0.465", "6.0.502"], + "octopusbuildinformation": ["6.0.465", "6.0.502"], "octopuscreaterelease": [ "0.4.0", "0.4.5", @@ -133855,6 +135797,8 @@ "3.1.109", "3.1.131", "3.1.134", + "3.1.465", + "3.1.502", "4.0.371", "4.0.375", "4.0.376", @@ -133885,11 +135829,17 @@ "4.3.109", "4.3.131", "4.3.134", + "4.3.465", + "4.3.502", "5.0.57", "5.0.66", "5.0.109", "5.0.131", - "5.0.134" + "5.0.134", + "5.0.465", + "5.0.502", + "6.0.465", + "6.0.502" ], "octopusdeploy.octopus-deploy-build-release-tasks.octo-installer.7aeae2f5-8529-4326-b127-a66c334c6e60": [ "3.0.162", @@ -133942,11 +135892,17 @@ "4.3.109", "4.3.131", "4.3.134", + "4.3.465", + "4.3.502", "5.0.57", "5.0.66", "5.0.109", "5.0.131", - "5.0.134" + "5.0.134", + "5.0.465", + "5.0.502", + "6.0.465", + "6.0.502" ], "octopusdeploy.octopus-deploy-build-release-tasks.octo-installer.octoinstaller": [ "3.0.162", @@ -133999,11 +135955,33 @@ "4.3.109", "4.3.131", "4.3.134", + "4.3.465", + "4.3.502", "5.0.57", "5.0.66", "5.0.109", "5.0.131", - "5.0.134" + "5.0.134", + "5.0.465", + "5.0.502", + "6.0.465", + "6.0.502" + ], + "octopusdeploy.octopus-deploy-build-release-tasks.octopus-await-task.38df691d-23eb-48d4-8638-61764f48bacb": [ + "6.0.465", + "6.0.502" + ], + "octopusdeploy.octopus-deploy-build-release-tasks.octopus-await-task.octopusawaittask": [ + "6.0.465", + "6.0.502" + ], + "octopusdeploy.octopus-deploy-build-release-tasks.octopus-build-information.559b81c9-efc1-40f3-9058-71ab1810d837": [ + "6.0.465", + "6.0.502" + ], + "octopusdeploy.octopus-deploy-build-release-tasks.octopus-build-information.octopusbuildinformation": [ + "6.0.465", + "6.0.502" ], "octopusdeploy.octopus-deploy-build-release-tasks.octopus-cli.ac1f0794-ad67-4c60-a386-8704226392be": [ "4.2.472", @@ -134020,11 +135998,15 @@ "4.3.109", "4.3.131", "4.3.134", + "4.3.465", + "4.3.502", "5.0.57", "5.0.66", "5.0.109", "5.0.131", - "5.0.134" + "5.0.134", + "5.0.465", + "5.0.502" ], "octopusdeploy.octopus-deploy-build-release-tasks.octopus-cli.octocli": [ "4.2.472", @@ -134041,11 +136023,15 @@ "4.3.109", "4.3.131", "4.3.134", + "4.3.465", + "4.3.502", "5.0.57", "5.0.66", "5.0.109", "5.0.131", - "5.0.134" + "5.0.134", + "5.0.465", + "5.0.502" ], "octopusdeploy.octopus-deploy-build-release-tasks.octopus-create-release.4e131b60-5532-4362-95b6-7c67d9841b4f": [ "0.4.0", @@ -134131,6 +136117,8 @@ "3.1.109", "3.1.131", "3.1.134", + "3.1.465", + "3.1.502", "4.0.371", "4.0.375", "4.0.376", @@ -134161,11 +136149,17 @@ "4.3.109", "4.3.131", "4.3.134", + "4.3.465", + "4.3.502", "5.0.57", "5.0.66", "5.0.109", "5.0.131", - "5.0.134" + "5.0.134", + "5.0.465", + "5.0.502", + "6.0.465", + "6.0.502" ], "octopusdeploy.octopus-deploy-build-release-tasks.octopus-create-release.octopuscreaterelease": [ "0.4.0", @@ -134251,6 +136245,8 @@ "3.1.109", "3.1.131", "3.1.134", + "3.1.465", + "3.1.502", "4.0.371", "4.0.375", "4.0.376", @@ -134281,11 +136277,25 @@ "4.3.109", "4.3.131", "4.3.134", + "4.3.465", + "4.3.502", "5.0.57", "5.0.66", "5.0.109", "5.0.131", - "5.0.134" + "5.0.134", + "5.0.465", + "5.0.502", + "6.0.465", + "6.0.502" + ], + "octopusdeploy.octopus-deploy-build-release-tasks.octopus-deploy-tenanted.a847e2d1-5435-4d52-a774-6d300953e85f": [ + "6.0.465", + "6.0.502" + ], + "octopusdeploy.octopus-deploy-build-release-tasks.octopus-deploy-tenanted.octopusdeployreleasetenanted": [ + "6.0.465", + "6.0.502" ], "octopusdeploy.octopus-deploy-build-release-tasks.octopus-deploy.8ca1d96a-151d-44b7-bc4f-9251e2ea6971": [ "1.0.1", @@ -134365,6 +136375,8 @@ "3.1.109", "3.1.131", "3.1.134", + "3.1.465", + "3.1.502", "4.0.371", "4.0.375", "4.0.376", @@ -134395,11 +136407,17 @@ "4.3.109", "4.3.131", "4.3.134", + "4.3.465", + "4.3.502", "5.0.57", "5.0.66", "5.0.109", "5.0.131", - "5.0.134" + "5.0.134", + "5.0.465", + "5.0.502", + "6.0.465", + "6.0.502" ], "octopusdeploy.octopus-deploy-build-release-tasks.octopus-deploy.octopusdeployrelease": [ "1.0.1", @@ -134479,6 +136497,8 @@ "3.1.109", "3.1.131", "3.1.134", + "3.1.465", + "3.1.502", "4.0.371", "4.0.375", "4.0.376", @@ -134509,11 +136529,17 @@ "4.3.109", "4.3.131", "4.3.134", + "4.3.465", + "4.3.502", "5.0.57", "5.0.66", "5.0.109", "5.0.131", - "5.0.134" + "5.0.134", + "5.0.465", + "5.0.502", + "6.0.465", + "6.0.502" ], "octopusdeploy.octopus-deploy-build-release-tasks.octopus-metadata.b1861ef4-b62e-40c1-bcb0-be00d454a8a7": [ "4.0.371", @@ -134546,11 +136572,15 @@ "4.3.109", "4.3.131", "4.3.134", + "4.3.465", + "4.3.502", "5.0.57", "5.0.66", "5.0.109", "5.0.131", - "5.0.134" + "5.0.134", + "5.0.465", + "5.0.502" ], "octopusdeploy.octopus-deploy-build-release-tasks.octopus-metadata.octopusmetadata": [ "4.0.371", @@ -134583,11 +136613,31 @@ "4.3.109", "4.3.131", "4.3.134", + "4.3.465", + "4.3.502", "5.0.57", "5.0.66", "5.0.109", "5.0.131", - "5.0.134" + "5.0.134", + "5.0.465", + "5.0.502" + ], + "octopusdeploy.octopus-deploy-build-release-tasks.octopus-pack-nuget.72e7a1b6-19bc-48e6-8d20-a81f201d65a3": [ + "6.0.465", + "6.0.502" + ], + "octopusdeploy.octopus-deploy-build-release-tasks.octopus-pack-nuget.octopuspacknuget": [ + "6.0.465", + "6.0.502" + ], + "octopusdeploy.octopus-deploy-build-release-tasks.octopus-pack-zip.3f248d80-a755-498d-863c-f936c5821318": [ + "6.0.465", + "6.0.502" + ], + "octopusdeploy.octopus-deploy-build-release-tasks.octopus-pack-zip.octopuspackzip": [ + "6.0.465", + "6.0.502" ], "octopusdeploy.octopus-deploy-build-release-tasks.octopus-pack.179fac12-2402-486e-80cf-5a6a8571f7c0": [ "1.0.1", @@ -134674,7 +136724,9 @@ "4.3.66", "4.3.109", "4.3.131", - "4.3.134" + "4.3.134", + "4.3.465", + "4.3.502" ], "octopusdeploy.octopus-deploy-build-release-tasks.octopus-pack.octopuspack": [ "1.0.1", @@ -134761,7 +136813,9 @@ "4.3.66", "4.3.109", "4.3.131", - "4.3.134" + "4.3.134", + "4.3.465", + "4.3.502" ], "octopusdeploy.octopus-deploy-build-release-tasks.octopus-promote.1627fcfe-f292-4904-adac-26cfb14bdb07": [ "1.1.20", @@ -134834,6 +136888,8 @@ "3.1.109", "3.1.131", "3.1.134", + "3.1.465", + "3.1.502", "4.0.371", "4.0.375", "4.0.376", @@ -134864,11 +136920,15 @@ "4.3.109", "4.3.131", "4.3.134", + "4.3.465", + "4.3.502", "5.0.57", "5.0.66", "5.0.109", "5.0.131", - "5.0.134" + "5.0.134", + "5.0.465", + "5.0.502" ], "octopusdeploy.octopus-deploy-build-release-tasks.octopus-promote.d05ad9a2-5d9e-4a1c-a887-14034334d6f2": [ "1.1.19" @@ -134945,6 +137005,8 @@ "3.1.109", "3.1.131", "3.1.134", + "3.1.465", + "3.1.502", "4.0.371", "4.0.375", "4.0.376", @@ -134975,11 +137037,15 @@ "4.3.109", "4.3.131", "4.3.134", + "4.3.465", + "4.3.502", "5.0.57", "5.0.66", "5.0.109", "5.0.131", - "5.0.134" + "5.0.134", + "5.0.465", + "5.0.502" ], "octopusdeploy.octopus-deploy-build-release-tasks.octopus-push.d05ad9a2-5d9e-4a1c-a887-14034334d6f2": [ "1.0.1", @@ -135059,6 +137125,8 @@ "3.1.109", "3.1.131", "3.1.134", + "3.1.465", + "3.1.502", "4.0.371", "4.0.375", "4.0.376", @@ -135089,11 +137157,17 @@ "4.3.109", "4.3.131", "4.3.134", + "4.3.465", + "4.3.502", "5.0.57", "5.0.66", "5.0.109", "5.0.131", - "5.0.134" + "5.0.134", + "5.0.465", + "5.0.502", + "6.0.465", + "6.0.502" ], "octopusdeploy.octopus-deploy-build-release-tasks.octopus-push.octopuspush": [ "1.0.1", @@ -135173,6 +137247,8 @@ "3.1.109", "3.1.131", "3.1.134", + "3.1.465", + "3.1.502", "4.0.371", "4.0.375", "4.0.376", @@ -135203,11 +137279,25 @@ "4.3.109", "4.3.131", "4.3.134", + "4.3.465", + "4.3.502", "5.0.57", "5.0.66", "5.0.109", "5.0.131", - "5.0.134" + "5.0.134", + "5.0.465", + "5.0.502", + "6.0.465", + "6.0.502" + ], + "octopusdeploy.octopus-deploy-build-release-tasks.octopus-run-runbook.5a2273e0-aa4f-4502-bcba-6817835e2bbd": [ + "6.0.465", + "6.0.502" + ], + "octopusdeploy.octopus-deploy-build-release-tasks.octopus-run-runbook.octopusrunrunbook": [ + "6.0.465", + "6.0.502" ], "octopusdeployrelease": [ "1.0.1", @@ -135287,6 +137377,8 @@ "3.1.109", "3.1.131", "3.1.134", + "3.1.465", + "3.1.502", "4.0.371", "4.0.375", "4.0.376", @@ -135317,12 +137409,19 @@ "4.3.109", "4.3.131", "4.3.134", + "4.3.465", + "4.3.502", "5.0.57", "5.0.66", "5.0.109", "5.0.131", - "5.0.134" + "5.0.134", + "5.0.465", + "5.0.502", + "6.0.465", + "6.0.502" ], + "octopusdeployreleasetenanted": ["6.0.465", "6.0.502"], "octopusmetadata": [ "4.0.371", "4.0.375", @@ -135354,11 +137453,15 @@ "4.3.109", "4.3.131", "4.3.134", + "4.3.465", + "4.3.502", "5.0.57", "5.0.66", "5.0.109", "5.0.131", - "5.0.134" + "5.0.134", + "5.0.465", + "5.0.502" ], "octopuspack": [ "1.0.1", @@ -135445,8 +137548,12 @@ "4.3.66", "4.3.109", "4.3.131", - "4.3.134" + "4.3.134", + "4.3.465", + "4.3.502" ], + "octopuspacknuget": ["6.0.465", "6.0.502"], + "octopuspackzip": ["6.0.465", "6.0.502"], "octopuspromote": [ "1.1.19", "1.1.20", @@ -135519,6 +137626,8 @@ "3.1.109", "3.1.131", "3.1.134", + "3.1.465", + "3.1.502", "4.0.371", "4.0.375", "4.0.376", @@ -135549,11 +137658,15 @@ "4.3.109", "4.3.131", "4.3.134", + "4.3.465", + "4.3.502", "5.0.57", "5.0.66", "5.0.109", "5.0.131", - "5.0.134" + "5.0.134", + "5.0.465", + "5.0.502" ], "octopuspush": [ "1.0.1", @@ -135633,6 +137746,8 @@ "3.1.109", "3.1.131", "3.1.134", + "3.1.465", + "3.1.502", "4.0.371", "4.0.375", "4.0.376", @@ -135663,12 +137778,19 @@ "4.3.109", "4.3.131", "4.3.134", + "4.3.465", + "4.3.502", "5.0.57", "5.0.66", "5.0.109", "5.0.131", - "5.0.134" + "5.0.134", + "5.0.465", + "5.0.502", + "6.0.465", + "6.0.502" ], + "octopusrunrunbook": ["6.0.465", "6.0.502"], "odkmediadevteam.semantic-versioning-for-build.00d41d52-30eb-42cc-9718-b52753e27da2.9def8c2f-98c1-4293-9bff-464769b1e187": [ "1.0.0", "1.0.1", @@ -136189,7 +138311,10 @@ "1.0.9", "1.0.10", "1.0.11", - "1.0.12" + "1.0.12", + "1.0.13", + "1.0.14", + "1.0.15" ], "osservante.osservanterbac.custom-build-release-task2.osservanterbac": [ "0.8.0", @@ -136265,7 +138390,10 @@ "1.0.9", "1.0.10", "1.0.11", - "1.0.12" + "1.0.12", + "1.0.13", + "1.0.14", + "1.0.15" ], "osservanterbac": [ "0.8.0", @@ -136341,7 +138469,10 @@ "1.0.9", "1.0.10", "1.0.11", - "1.0.12" + "1.0.12", + "1.0.13", + "1.0.14", + "1.0.15" ], "ostorlab-azure-security-scanner": [ "1.0.0", @@ -136510,6 +138641,34 @@ "overridelinkedparam": ["0.1.0", "0.1.1", "0.1.2", "0.2.0", "0.2.1", "0.3.0"], "overwrite-template-parameters": ["0.0.1", "0.0.11", "0.0.12", "0.0.13"], "owaspzap": ["0.1.55", "0.1.56", "0.1.57", "1.0.0", "1.0.1"], + "owaspzaponpremisestart": [ + "0.0.3", + "0.0.4", + "0.0.20", + "0.0.21", + "0.0.22", + "0.0.23", + "0.0.24", + "0.0.25", + "0.0.26", + "0.0.27", + "0.0.28", + "1.1.8" + ], + "owaspzaponpremisestop": [ + "0.0.3", + "0.0.4", + "0.0.20", + "0.0.21", + "0.0.22", + "0.0.23", + "0.0.24", + "0.0.25", + "0.0.26", + "0.0.27", + "0.0.28", + "1.1.8" + ], "owaspzapscan": [ "0.1.2493", "1.0.2544", @@ -136611,6 +138770,8 @@ "3.5.149", "3.5.161", "3.5.178", + "3.5.220", + "3.5.260", "4.0.8", "4.0.50", "4.0.89", @@ -136621,7 +138782,9 @@ "4.0.142", "4.0.149", "4.0.161", - "4.0.178" + "4.0.178", + "4.0.220", + "4.0.260" ], "packages-config-merger": ["1.0.2"], "packagesconfigmerger": ["1.0.2"], @@ -136903,7 +139066,11 @@ "5.1.12", "5.1.13", "5.1.14", - "5.1.15" + "5.1.15", + "5.1.16", + "5.1.17", + "5.1.18", + "5.1.19" ], "palmmedia.reportgenerator.reportgenerator-build-release-task.reportgenerator": [ "0.1.0", @@ -137046,7 +139213,11 @@ "5.1.12", "5.1.13", "5.1.14", - "5.1.15" + "5.1.15", + "5.1.16", + "5.1.17", + "5.1.18", + "5.1.19" ], "parallelrunnertask": ["4.0.0"], "parasoft.cpptest-azure-devops.run-cpptest-task.c030fa5b-9e93-47fc-a3ed-3ea4e45ddccf": [ @@ -137433,6 +139604,7 @@ "1.1.0", "1.1.1" ], + "passwordgenerator": ["0.1.1"], "pattontech.adoinstallmodule.adoinstallmodule.298e1d80-87c5-11ed-9ff4-6f09ac3dc39d": [ "1.0.0", "1.1.0", @@ -138599,7 +140771,9 @@ "2.0.17", "2.0.18", "2.0.19", - "2.0.20" + "2.0.20", + "2.0.24", + "2.0.25" ], "philippmanstein.arduino-cli.arduino-cli-build.353dedaa-3740-4ee5-a4f2-ee59f38fdc41": [ "0.1.0", @@ -138754,7 +140928,14 @@ "0.3.4", "0.3.6", "0.3.7", - "0.3.8" + "0.3.8", + "0.3.9", + "0.4.0", + "0.4.1", + "0.4.2", + "0.4.3", + "0.4.4", + "0.4.5" ], "piraces.bicep-tasks.decompile-task.bicepdecompile": [ "0.3.1", @@ -138763,7 +140944,14 @@ "0.3.4", "0.3.6", "0.3.7", - "0.3.8" + "0.3.8", + "0.3.9", + "0.4.0", + "0.4.1", + "0.4.2", + "0.4.3", + "0.4.4", + "0.4.5" ], "piraces.bicep-tasks.install-task.bicepinstall": [ "0.1.0", @@ -138785,7 +140973,14 @@ "0.3.4", "0.3.6", "0.3.7", - "0.3.8" + "0.3.8", + "0.3.9", + "0.4.0", + "0.4.1", + "0.4.2", + "0.4.3", + "0.4.4", + "0.4.5" ], "piraces.bicep-tasks.install-task.c1fb2c87-8141-405c-9ea0-6607cceaca18": [ "0.1.0", @@ -138807,7 +141002,14 @@ "0.3.4", "0.3.6", "0.3.7", - "0.3.8" + "0.3.8", + "0.3.9", + "0.4.0", + "0.4.1", + "0.4.2", + "0.4.3", + "0.4.4", + "0.4.5" ], "piraces.bicep-tasks.run-task.16e7624f-1531-47bc-b81e-7274655f7d13": [ "0.1.0", @@ -138829,7 +141031,14 @@ "0.3.4", "0.3.6", "0.3.7", - "0.3.8" + "0.3.8", + "0.3.9", + "0.4.0", + "0.4.1", + "0.4.2", + "0.4.3", + "0.4.4", + "0.4.5" ], "piraces.bicep-tasks.run-task.bicepbuild": [ "0.1.0", @@ -138851,7 +141060,14 @@ "0.3.4", "0.3.6", "0.3.7", - "0.3.8" + "0.3.8", + "0.3.9", + "0.4.0", + "0.4.1", + "0.4.2", + "0.4.3", + "0.4.4", + "0.4.5" ], "pjcollins.azp-utilities-boots.boots.boots": [ "0.1.0", @@ -139073,11 +141289,14 @@ ], "power-bi-utility-task": ["1.0.24"], "power-crm-service-endpoint-task": ["1.0.3"], + "power-crm-tools-fetchxml-builder-view-data": ["1.1.1", "1.1.2"], + "power-crm-tools-fetchxml-upsert-data": ["1.0.3", "1.0.4"], "power-crm-tools-installer-task": ["1.0.0"], "power-crm-tools-register-image1": ["1.0.3", "1.0.4"], "power-crm-tools-register-step": ["1.0.5", "1.0.14"], "power-crm-tools-register-webhook": ["1.0.5"], "power-crm-tools-webapi-installer": ["1.1.0", "1.1.1"], + "power-crm-tools-webapi-installer-upsert-data": ["1.0.2", "1.0.3"], "power-crm-tools-webapi-register-image": ["1.0.3"], "power-crm-tools-webapi-register-step": ["1.0.8", "1.2.7", "1.2.9"], "powerbi.createworkspace": [ @@ -139351,6 +141570,42 @@ "1.2.11", "1.2.12" ], + "poweronplatforms.akvcodesign.akvcodesign.02dbaba0-04f3-4c6e-a780-d0c4d36a7f8c": [ + "0.0.1", + "0.0.2", + "0.1.0", + "0.1.1", + "0.1.4", + "0.1.5", + "0.1.6", + "0.2.1", + "0.2.2", + "0.2.3", + "0.2.4", + "0.3.0", + "1.0.0", + "1.0.1", + "1.0.2" + ], + "poweronplatforms.akvcodesign.akvcodesign.akv-code-sign": [ + "0.2.1", + "0.2.2", + "0.2.3", + "0.2.4", + "0.3.0", + "1.0.0", + "1.0.1", + "1.0.2" + ], + "poweronplatforms.akvcodesign.akvcodesign.avd-code-sign": [ + "0.0.1", + "0.0.2", + "0.1.0", + "0.1.1", + "0.1.4", + "0.1.5", + "0.1.6" + ], "powerplatformaddsolutioncomponent": [ "2.0.3", "2.0.4", @@ -139359,7 +141614,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "powerplatformapplysolutionupgrade": [ "0.0.23", @@ -139381,9 +141637,10 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], - "powerplatformassigngroup": ["2.0.13", "2.0.15"], + "powerplatformassigngroup": ["2.0.13", "2.0.15", "2.0.16"], "powerplatformassignuser": [ "2.0.3", "2.0.4", @@ -139392,7 +141649,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "powerplatformbackupenvironment": [ "0.0.1", @@ -139423,7 +141681,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "powerplatformchecker": [ "0.0.1", @@ -139454,7 +141713,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "powerplatformcopyenvironment": [ "0.0.1", @@ -139485,7 +141745,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "powerplatformcreateenvironment": [ "0.0.1", @@ -139516,7 +141777,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "powerplatformdeleteenvironment": [ "0.0.1", @@ -139547,7 +141809,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "powerplatformdeletesolution": [ "0.0.23", @@ -139569,7 +141832,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "powerplatformdeploypackage": [ "0.0.1", @@ -139600,7 +141864,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "powerplatformdownloadpaportal": [ "0.0.76", @@ -139614,9 +141879,17 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" + ], + "powerplatformexportdata": [ + "2.0.7", + "2.0.8", + "2.0.10", + "2.0.13", + "2.0.15", + "2.0.16" ], - "powerplatformexportdata": ["2.0.7", "2.0.8", "2.0.10", "2.0.13", "2.0.15"], "powerplatformexportsolution": [ "0.0.1", "0.0.3", @@ -139646,9 +141919,17 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" + ], + "powerplatformimportdata": [ + "2.0.7", + "2.0.8", + "2.0.10", + "2.0.13", + "2.0.15", + "2.0.16" ], - "powerplatformimportdata": ["2.0.7", "2.0.8", "2.0.10", "2.0.13", "2.0.15"], "powerplatformimportsolution": [ "0.0.1", "0.0.3", @@ -139678,9 +141959,10 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], - "powerplatforminstallapplication": ["2.0.10", "2.0.13", "2.0.15"], + "powerplatforminstallapplication": ["2.0.10", "2.0.13", "2.0.15", "2.0.16"], "powerplatformpacksolution": [ "0.0.1", "0.0.3", @@ -139710,7 +141992,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "powerplatformpublishcustomizations": [ "0.0.1", @@ -139741,7 +142024,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "powerplatformresetenvironment": [ "0.0.1", @@ -139772,7 +142056,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "powerplatformrestoreenvironment": [ "0.0.1", @@ -139803,14 +142088,16 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "powerplatformsetconnectionvariables": [ "2.0.7", "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "powerplatformsetsolutionversion": [ "0.0.1", @@ -139841,7 +142128,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "powerplatformtoolinstaller": [ "0.0.1", @@ -139872,7 +142160,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "powerplatformunpacksolution": [ "0.0.1", @@ -139903,7 +142192,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "powerplatformuploadpaportal": [ "0.0.76", @@ -139917,7 +142207,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "powerplatformwhoami": [ "0.0.1", @@ -139948,7 +142239,8 @@ "2.0.8", "2.0.10", "2.0.13", - "2.0.15" + "2.0.15", + "2.0.16" ], "powershell": ["1.0.0", "1.0.1", "1.0.2"], "powershell script analyzer": [ @@ -140313,7 +142605,8 @@ "1.4.6", "1.4.7", "1.4.8", - "1.4.9" + "1.4.9", + "1.5.0" ], "process-sass-files": ["0.0.8", "0.0.9", "0.1.0"], "processtabularmodeltask": [ @@ -140349,11 +142642,13 @@ "1.11.13", "1.11.14", "1.11.15", + "1.12.4", "2.1.4", "2.1.61" ], "processtemplatetask": [ "1.9.0", + "2.0.0", "2.1.78", "2.1.710", "2.1.711", @@ -140380,6 +142675,7 @@ "2.11.13", "2.11.14", "2.11.15", + "2.12.4", "3.0.0", "3.0.1", "3.11.0", @@ -140398,6 +142694,7 @@ "3.11.13", "3.11.14", "3.11.15", + "3.12.4", "4.0.0", "4.0.2", "4.0.3", @@ -140417,7 +142714,8 @@ "4.11.12", "4.11.13", "4.11.14", - "4.11.15" + "4.11.15", + "4.12.4" ], "projectfileprops": ["1.0.0", "1.1.2", "1.2.0", "1.2.1"], "projectvarreader": ["0.1.0"], @@ -141244,8 +143542,12 @@ "1.15.1239", "1.15.1261", "1.23.1279", - "1.24.1281" + "1.24.1281", + "1.25.1302", + "1.26.1308", + "1.27.1315" ], + "publishallurereport": ["1.0.19", "1.0.20", "1.0.21"], "publishartifacts-task": [ "0.1.0", "0.1.1", @@ -141305,6 +143607,8 @@ "3.5.149", "3.5.161", "3.5.178", + "3.5.220", + "3.5.260", "4.0.8", "4.0.50", "4.0.89", @@ -141315,7 +143619,9 @@ "4.0.142", "4.0.149", "4.0.161", - "4.0.178" + "4.0.178", + "4.0.220", + "4.0.260" ], "publishazuredscpullserverconfigurations": ["1.0.2", "1.0.3", "1.0.4"], "publishbcappdocker": [ @@ -141387,7 +143693,8 @@ "8.5.0", "8.6.0", "8.7.0", - "8.8.0" + "8.8.0", + "8.9.0" ], "publishbcapppertenant": ["1.0.2", "1.0.3"], "publishcostdata": [ @@ -141567,6 +143874,7 @@ "1.2.174", "3.0.0" ], + "publishjgivenreport": ["0.4.0", "0.4.1", "0.5.0", "0.5.1", "0.5.2"], "publishmarkdownreports": [ "1.0.0", "1.0.1", @@ -141873,6 +144181,8 @@ "3.5.149", "3.5.161", "3.5.178", + "3.5.220", + "3.5.260", "4.0.8", "4.0.50", "4.0.89", @@ -141883,7 +144193,9 @@ "4.0.142", "4.0.149", "4.0.161", - "4.0.178" + "4.0.178", + "4.0.220", + "4.0.260" ], "publishvsextension": [ "1.2.14", @@ -142480,7 +144792,10 @@ "2022.1.1", "2022.2.1", "2022.2.4", - "2022.3.0" + "2022.3.0", + "2022.3.2", + "2022.3.3", + "2022.3.4" ], "quadrotech.adoscheduledworkitemquery.adoscheduledworkitemquery.adoscheduledworkitemquery": [ "0.1.0", @@ -143244,6 +145559,8 @@ "3.5.149", "3.5.161", "3.5.178", + "3.5.220", + "3.5.260", "4.0.124", "4.1.8", "4.1.50", @@ -143255,7 +145572,9 @@ "4.1.142", "4.1.149", "4.1.161", - "4.1.178" + "4.1.178", + "4.1.220", + "4.1.260" ], "querysurge-run-suite-task": [ "0.1.18", @@ -146063,7 +148382,8 @@ "1.0.1", "2.0.12", "2.0.13", - "3.0.1" + "3.0.1", + "3.0.2" ], "redhat.openshift-vsts.config-map-task.config-map": [ "0.1.0", @@ -146073,7 +148393,8 @@ "1.0.1", "2.0.12", "2.0.13", - "3.0.1" + "3.0.1", + "3.0.2" ], "redhat.openshift-vsts.oc-cmd-task.ebaf1cdc-a60f-4e57-ba29-e3b8f80aeb1e": [ "1.0.0", @@ -146085,7 +148406,8 @@ "1.2.1", "2.0.12", "2.0.13", - "3.0.1" + "3.0.1", + "3.0.2" ], "redhat.openshift-vsts.oc-cmd-task.oc-cmd": [ "1.0.0", @@ -146097,35 +148419,40 @@ "1.2.1", "2.0.12", "2.0.13", - "3.0.1" + "3.0.1", + "3.0.2" ], "redhat.openshift-vsts.oc-conditional-cmd-task.88e0bab6-9798-47cb-a37d-ef65f41992ae": [ "2.0.13", - "3.0.1" + "3.0.1", + "3.0.2" ], "redhat.openshift-vsts.oc-conditional-cmd-task.occonditionalcmd": [ "2.0.13", - "3.0.1" + "3.0.1", + "3.0.2" ], "redhat.openshift-vsts.oc-setup-task.44babac3-ab28-4f68-b843-bf2c295a4a2d": [ "1.0.0", "1.0.1", "2.0.12", "2.0.13", - "3.0.1" + "3.0.1", + "3.0.2" ], "redhat.openshift-vsts.oc-setup-task.oc-setup": [ "1.0.0", "1.0.1", "2.0.12", "2.0.13", - "3.0.1" + "3.0.1", + "3.0.2" ], - "rediscacheaddkey": ["1.0.0", "1.0.5", "1.1.0"], + "rediscacheaddkey": ["1.0.0", "1.0.5", "1.1.0", "2.0.0", "2.0.1"], "rediscacheclear": ["1.0.0", "1.0.1", "1.0.3", "1.0.4"], - "rediscacheclearkey": ["1.0.0", "1.0.5", "1.1.0"], - "rediscacheflushall": ["1.0.0", "1.0.5", "1.1.0"], - "rediscacheflushdb": ["1.0.0", "1.1.0"], + "rediscacheclearkey": ["1.0.0", "1.0.5", "1.1.0", "2.0.0", "2.0.1"], + "rediscacheflushall": ["1.0.0", "1.0.5", "1.1.0", "2.0.0", "2.0.1"], + "rediscacheflushdb": ["1.0.0", "1.1.0", "2.0.0", "2.0.1"], "redskysoftware.clickoncemore-build-task.clickoncemore-build-task.76fdf717-3934-43da-94f3-3a4d75429686": [ "0.1.0", "0.2.0", @@ -146663,7 +148990,8 @@ "2.425.0", "2.426.0", "2.427.0", - "2.430.0" + "2.430.0", + "2.431.0" ], "releasenoteshub.rnh-pipelinetasks.rnh_trigger_publish_pipelinetask.6b70386a-f361-429f-aa56-2a87bb4e75e4": [ "1.0.0", @@ -147627,7 +149955,11 @@ "5.1.12", "5.1.13", "5.1.14", - "5.1.15" + "5.1.15", + "5.1.16", + "5.1.17", + "5.1.18", + "5.1.19" ], "reporting deploy": [ "2.0.1", @@ -147989,15 +150321,26 @@ "0.3.5", "0.3.6" ], + "revbits-azure-devops": ["0.1.0", "0.2.0"], + "revbits.23109661-d255-48cd-be71-68607cccb11d.custom-build-release-task.014c9bfe-c595-42b2-ba14-9f43c2a0e265": [ + "0.1.0", + "0.2.0" + ], + "revbits.23109661-d255-48cd-be71-68607cccb11d.custom-build-release-task.revbits-azure-devops": [ + "0.1.0", + "0.2.0" + ], "revenera.codeinsight.buildtask.b35a84b6-16c3-4d53-9593-53e8ff6e28ca": [ "2.0.0", "2.1.0", - "3.1.0" + "3.1.0", + "3.2.0" ], "revenera.codeinsight.buildtask.code insight scan": [ "2.0.0", "2.1.0", - "3.1.0" + "3.1.0", + "3.2.0" ], "revenera.installshieldbuild.build-is-task.6b134cb3-d9ca-444e-9273-e89482a70569": [ "1.0.0" @@ -148007,20 +150350,22 @@ "1.0.0" ], "revenera.installshieldbuild.install-is-task.installshieldinstall": ["1.0.0"], - "rezilion": ["2.2.0", "2.3.0", "2.4.0", "2.5.0", "2.6.0"], + "rezilion": ["2.2.0", "2.3.0", "2.4.0", "2.5.0", "2.6.0", "2.7.0"], "rezilionvalidate.rezilion.custom-build-release-task.91031a8b-7661-4210-80d8-6ea5d26ed5fd": [ "2.2.0", "2.3.0", "2.4.0", "2.5.0", - "2.6.0" + "2.6.0", + "2.7.0" ], "rezilionvalidate.rezilion.custom-build-release-task.rezilion": [ "2.2.0", "2.3.0", "2.4.0", "2.5.0", - "2.6.0" + "2.6.0", + "2.7.0" ], "rezstream.appcfg-settings.appcfg-settings.appcfg-settings": [ "0.1.0", @@ -150610,7 +152955,9 @@ "2.5.4", "2.6.2", "2.7.4", - "3.0.10" + "3.0.10", + "3.1.2", + "3.2.2" ], "richardfennellbm.bm-vsts-wikipdfexport-tasks.wikipdfexporttask.wikipdfexporttask": [ "1.0.17", @@ -150628,7 +152975,9 @@ "2.5.4", "2.6.2", "2.7.4", - "3.0.10" + "3.0.10", + "3.1.2", + "3.2.2" ], "richardfennellbm.bm-vsts-wikiupdater-tasks.wikifolderupdatertask.2f22eed4-2ef7-407e-98d8-3b20ca0a5352": [ "1.10.21", @@ -150670,7 +153019,10 @@ "1.46.7", "2.0.3", "2.0.5", - "2.2.2" + "2.2.2", + "2.3.5", + "2.4.2", + "2.5.2" ], "richardfennellbm.bm-vsts-wikiupdater-tasks.wikifolderupdatertask.wikifolderupdatertask": [ "1.10.21", @@ -150712,7 +153064,10 @@ "1.46.7", "2.0.3", "2.0.5", - "2.2.2" + "2.2.2", + "2.3.5", + "2.4.2", + "2.5.2" ], "richardfennellbm.bm-vsts-wikiupdater-tasks.wikiupdatertask.e59c5ae6-3afd-479d-bc40-81cd6c541840": [ "1.0.30", @@ -150764,7 +153119,10 @@ "1.46.7", "2.0.3", "2.0.5", - "2.2.2" + "2.2.2", + "2.3.5", + "2.4.2", + "2.5.2" ], "richardfennellbm.bm-vsts-wikiupdater-tasks.wikiupdatertask.wikiupdatertask": [ "1.0.30", @@ -150816,7 +153174,10 @@ "1.46.7", "2.0.3", "2.0.5", - "2.2.2" + "2.2.2", + "2.3.5", + "2.4.2", + "2.5.2" ], "richardfennellbm.bm-vsts-xplatgeneratereleasenotes.xplatgenerate-release-notes.7b0a5887-75c4-4ade-a915-f92a93c934cb": [ "1.0.9", @@ -150979,7 +153340,11 @@ "3.90.11", "4.0.16", "4.1.2", - "4.2.2" + "4.2.2", + "4.3.3", + "4.4.1", + "4.5.2", + "4.6.2" ], "richardfennellbm.bm-vsts-xplatgeneratereleasenotes.xplatgenerate-release-notes.xplatgeneratereleasenotes": [ "1.0.9", @@ -151142,7 +153507,11 @@ "3.90.11", "4.0.16", "4.1.2", - "4.2.2" + "4.2.2", + "4.3.3", + "4.4.1", + "4.5.2", + "4.6.2" ], "richardfennellbm.bm-vsts-yamlgenerator.yamlgeneratortask.02d4adb5-7ba0-4164-ab9b-9c1facc97b3d": [ "1.0.30", @@ -152155,7 +154524,9 @@ "2.0.17", "2.0.18", "2.0.19", - "2.0.20" + "2.0.20", + "2.0.24", + "2.0.25" ], "roboyo.petze.petze.petze": [ "2.0.11", @@ -152167,7 +154538,9 @@ "2.0.17", "2.0.18", "2.0.19", - "2.0.20" + "2.0.20", + "2.0.24", + "2.0.25" ], "rocketchathooknotification": ["1.0.0", "1.0.1", "1.1.0", "1.2.0"], "rocketsurgeonsguild.variable-tools.deserializevariables.ac2148ca-7a62-4363-9cc5-2b9a5de9c037": [ @@ -152623,7 +154996,7 @@ "2.0.5", "2.0.6" ], - "rsat": ["1.0.2"], + "rsat": ["1.0.2", "1.0.3"], "rschiefer.msdeployallthethings.msdeploy-package-sync.bfb8e654-51d4-4ed0-8e04-2b3f0f4fcb6d": [ "0.1.0", "0.2.0", @@ -153179,10 +155552,11 @@ "3.0.0", "4.0.0" ], + "runhawkscan": ["0.1.0"], "runhelloworld": ["0.1.0"], "runhelloworldapp": ["0.2.0"], "runjtest": ["1.0.0", "1.0.1", "1.0.2", "1.0.3", "1.0.4", "1.0.5"], - "runmatlabbuild": ["0.7.5", "0.8.10", "0.8.34"], + "runmatlabbuild": ["0.7.5", "0.8.10", "0.8.34", "0.9.19"], "runmatlabcommand": [ "0.1.4", "0.1.8", @@ -153202,7 +155576,8 @@ "0.6.32", "0.7.5", "0.8.10", - "0.8.34" + "0.8.34", + "0.9.19" ], "runmatlabtests": [ "0.1.4", @@ -153223,8 +155598,10 @@ "0.6.32", "0.7.5", "0.8.10", - "0.8.34" + "0.8.34", + "0.9.19" ], + "runneuron": ["0.1.0"], "runnotebook": [ "0.1.0", "0.1.1", @@ -158565,16 +160942,6 @@ "2.0.3", "3.0.0" ], - "servicefabricpackageversioning": [ - "1.0.0", - "1.0.1", - "1.0.2", - "1.0.3", - "1.1.0", - "1.2.0", - "1.3.0", - "1.4.0" - ], "servicefabricupdater": [ "1.0.0", "1.1.0", @@ -158708,7 +161075,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow-devops-agent-job-notification": [ "1.12.0", @@ -158723,7 +161091,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow-devops-agent-package-registration": [ "1.13.0", @@ -158737,7 +161106,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow-devops-build-sonar-registration": [ "1.27.0", @@ -158746,7 +161116,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow-devops-config-agent-export-snapshot": [ "1.29.0", @@ -158754,7 +161125,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow-devops-config-agent-get-snapshot": [ "1.29.0", @@ -158762,7 +161134,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow-devops-config-agent-get-snapshot-name": [ "1.29.0", @@ -158770,7 +161143,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow-devops-config-agent-publish-snapshot": [ "1.29.0", @@ -158778,14 +161152,16 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow-devops-config-agent-register-changeset": ["1.29.0", "1.30.0"], "servicenow-devops-config-agent-register-pipeline": [ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow-devops-config-agent-upload-config": [ "1.29.0", @@ -158793,13 +161169,15 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow-devops-config-agent-validate-snapshot": [ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow-devops-release-gate": [ "1.18.0", @@ -158811,7 +161189,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow-devops-release-sonar-registration": [ "1.27.0", @@ -158820,7 +161199,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow-devops-server-artifact-registration": [ "1.13.0", @@ -158834,7 +161214,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow-devops-server-change-acceleration": [ "1.12.0", @@ -158849,7 +161230,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow-devops-server-job-notification": [ "1.12.0", @@ -158864,7 +161246,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow-devops-server-package-registration": [ "1.13.0", @@ -158878,7 +161261,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow.vss-services-servicenow-cicd.servicenow-cicd-app-install.23e1b115-2add-408e-aad7-a3bd182106b1": [ "1.3.26", @@ -159112,7 +161496,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow.vss-services-servicenow-devops.servicenowdevops-agent-artifact-registration.servicenow-devops-agent-artifact-registration": [ "1.13.0", @@ -159126,7 +161511,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow.vss-services-servicenow-devops.servicenowdevops-agent-export-snapshot.d4be1abb-797c-4c72-9a8b-e7940d99989b": [ "1.29.0", @@ -159134,7 +161520,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow.vss-services-servicenow-devops.servicenowdevops-agent-export-snapshot.servicenow-devops-config-agent-export-snapshot": [ "1.29.0", @@ -159142,7 +161529,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow.vss-services-servicenow-devops.servicenowdevops-agent-get-snapshot-name.6e307f2f-97c2-4174-85b7-9f6dc7ea8dea": [ "1.29.0", @@ -159150,7 +161538,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow.vss-services-servicenow-devops.servicenowdevops-agent-get-snapshot-name.servicenow-devops-config-agent-get-snapshot-name": [ "1.29.0", @@ -159158,7 +161547,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow.vss-services-servicenow-devops.servicenowdevops-agent-get-snapshots.96a3faa7-5340-4256-8917-970ca39bab38": [ "1.29.0", @@ -159166,7 +161556,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow.vss-services-servicenow-devops.servicenowdevops-agent-get-snapshots.servicenow-devops-config-agent-get-snapshot": [ "1.29.0", @@ -159174,7 +161565,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow.vss-services-servicenow-devops.servicenowdevops-agent-package-registration.d610a5f3-d9ab-417c-a225-acce53c7aa5a": [ "1.13.0", @@ -159188,7 +161580,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow.vss-services-servicenow-devops.servicenowdevops-agent-package-registration.servicenow-devops-agent-package-registration": [ "1.13.0", @@ -159202,7 +161595,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow.vss-services-servicenow-devops.servicenowdevops-agent-publish-snapshot.fdc14df9-f6cd-4148-b639-3398a4ffafca": [ "1.29.0", @@ -159210,7 +161604,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow.vss-services-servicenow-devops.servicenowdevops-agent-publish-snapshot.servicenow-devops-config-agent-publish-snapshot": [ "1.29.0", @@ -159218,7 +161613,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow.vss-services-servicenow-devops.servicenowdevops-agent-register-changeset.3b2d7e1e-bfb3-4c31-9dd7-7a8bdd5c7d40": [ "1.29.0", @@ -159226,7 +161622,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow.vss-services-servicenow-devops.servicenowdevops-agent-register-changeset.servicenow-devops-config-agent-register-changeset": [ "1.29.0", @@ -159236,7 +161633,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow.vss-services-servicenow-devops.servicenowdevops-agent-task.b7625796-8dc6-4ee1-ae78-d6e274262dbe": [ "1.12.0", @@ -159251,7 +161649,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow.vss-services-servicenow-devops.servicenowdevops-agent-task.servicenow-devops-agent-job-notification": [ "1.12.0", @@ -159266,7 +161665,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow.vss-services-servicenow-devops.servicenowdevops-agent-upload-config.696ef4a7-a01e-46c1-a5f6-95f1cc959a16": [ "1.29.0", @@ -159274,7 +161674,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow.vss-services-servicenow-devops.servicenowdevops-agent-upload-config.servicenow-devops-config-agent-upload-config": [ "1.29.0", @@ -159282,19 +161683,22 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow.vss-services-servicenow-devops.servicenowdevops-agent-validate-snapshot.c4f259b3-48d0-43c5-bfed-4dae0f926610": [ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow.vss-services-servicenow-devops.servicenowdevops-agent-validate-snapshot.servicenow-devops-config-agent-validate-snapshot": [ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow.vss-services-servicenow-devops.servicenowdevops-build-sonar-registration.9ceafa4d-f759-4d9f-b792-01921f9c5ef4": [ "1.27.0", @@ -159303,7 +161707,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow.vss-services-servicenow-devops.servicenowdevops-build-sonar-registration.servicenow-devops-build-sonar-registration": [ "1.27.0", @@ -159312,7 +161717,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow.vss-services-servicenow-devops.servicenowdevops-release-gate.8bf41776-72f2-4374-895d-97fbacd5f8fc": [ "1.18.0", @@ -159324,7 +161730,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow.vss-services-servicenow-devops.servicenowdevops-release-gate.servicenow-devops-release-gate": [ "1.18.0", @@ -159336,7 +161743,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow.vss-services-servicenow-devops.servicenowdevops-release-sonar-registration.ec14217a-39bb-4f2f-a848-6fc65488b587": [ "1.27.0", @@ -159345,7 +161753,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow.vss-services-servicenow-devops.servicenowdevops-release-sonar-registration.servicenow-devops-release-sonar-registration": [ "1.27.0", @@ -159354,7 +161763,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow.vss-services-servicenow-devops.servicenowdevops-server-artifact-registration.aee0bd5d-5c2b-4866-88ed-cfe9a12de17c": [ "1.13.0", @@ -159368,7 +161778,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow.vss-services-servicenow-devops.servicenowdevops-server-artifact-registration.servicenow-devops-server-artifact-registration": [ "1.13.0", @@ -159382,7 +161793,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow.vss-services-servicenow-devops.servicenowdevops-server-change-acceleration-task.cc385e0a-d0b6-44e5-b891-6a20cac0cfe7": [ "1.12.0", @@ -159397,7 +161809,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow.vss-services-servicenow-devops.servicenowdevops-server-change-acceleration-task.servicenow-devops-server-change-acceleration": [ "1.12.0", @@ -159412,7 +161825,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow.vss-services-servicenow-devops.servicenowdevops-server-package-registration.bd27f3a6-4cd8-4b91-8e69-a979b89df6bb": [ "1.13.0", @@ -159426,7 +161840,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow.vss-services-servicenow-devops.servicenowdevops-server-package-registration.servicenow-devops-server-package-registration": [ "1.13.0", @@ -159440,7 +161855,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow.vss-services-servicenow-devops.servicenowdevops-server-task.ec5c1f40-f00e-4475-acb4-e86be6d206fa": [ "1.12.0", @@ -159455,7 +161871,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicenow.vss-services-servicenow-devops.servicenowdevops-server-task.servicenow-devops-server-job-notification": [ "1.12.0", @@ -159470,7 +161887,8 @@ "1.33.3", "1.34.1", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "servicioswindows": [ "0.0.2", @@ -159573,7 +161991,12 @@ "0.1.33", "0.1.34", "0.1.35", - "0.1.36" + "0.1.36", + "0.1.37", + "0.1.38", + "0.1.39", + "0.1.40", + "0.1.41" ], "set-azure-ad-application": [ "1.0.1", @@ -159736,7 +162159,12 @@ "0.1.33", "0.1.34", "0.1.35", - "0.1.36" + "0.1.36", + "0.1.37", + "0.1.38", + "0.1.39", + "0.1.40", + "0.1.41" ], "set-toggle-parameter": [ "0.1.20", @@ -160231,12 +162659,16 @@ "shahyads.fortifyqualitygate.fortifyqualitygate.0f6b6d8f-3f24-4c46-b7c4-4ee4100074d8": [ "1.0.7", "1.0.16", - "2.0.2" + "2.0.2", + "2.0.3", + "2.0.4" ], "shahyads.fortifyqualitygate.fortifyqualitygate.fortifyqualitygate": [ "1.0.7", "1.0.16", - "2.0.2" + "2.0.2", + "2.0.3", + "2.0.4" ], "shahyads.libraryvariableupdater.variableupdater.e6eadbcf-e6bf-498a-93d7-d2bae3bcb6c6": [ "1.0.8", @@ -160414,6 +162846,8 @@ "3.5.149", "3.5.161", "3.5.178", + "3.5.220", + "3.5.260", "4.0.8", "4.0.50", "4.0.89", @@ -160424,7 +162858,9 @@ "4.0.142", "4.0.149", "4.0.161", - "4.0.178" + "4.0.178", + "4.0.220", + "4.0.260" ], "shareextension": [ "0.0.0", @@ -160660,7 +163096,9 @@ "1.2.330", "1.2.331", "1.2.334", - "1.2.335" + "1.2.335", + "1.2.344", + "1.2.347" ], "shaykiabramczyk.createpullrequest.createpullrequest.createpullrequest": [ "1.0.0", @@ -160751,7 +163189,9 @@ "1.2.330", "1.2.331", "1.2.334", - "1.2.335" + "1.2.335", + "1.2.344", + "1.2.347" ], "shaykiabramczyk.getrevision.getrevision.7d4e8577-23a5-4682-9d81-b4371623956b": [ "1.0.0" @@ -160856,6 +163296,7 @@ "1.0.1" ], "short-git-version-hash-extractor": ["1.0.1"], + "showallenvironmentvariables": ["0.0.1", "0.0.2"], "showvariables": [ "1.0.12", "1.0.14", @@ -161588,7 +164029,8 @@ "2.0.27192", "2.0.27255", "2.0.27445", - "3.0.46092" + "3.0.46092", + "4.0.84386" ], "smoketestiffailreset": ["1.0.0", "1.0.1", "1.0.2", "1.0.3", "1.0.4"], "smoketestmultiplatform": ["1.1.5", "1.1.6"], @@ -162244,6 +164686,168 @@ "1.1.2", "1.1.9" ], + "solucionespsg.owaspzaponpremisestartstop.psg.owaspzaponpremisestart.31f040e5-e040-4336-878a-59a493355535": [ + "0.0.3", + "0.0.4", + "0.0.20", + "0.0.21", + "0.0.22", + "0.0.23", + "0.0.24", + "0.0.25", + "0.0.26", + "0.0.27", + "0.0.28", + "1.1.8" + ], + "solucionespsg.owaspzaponpremisestartstop.psg.owaspzaponpremisestart.owaspzaponpremisestart": [ + "0.0.3", + "0.0.4", + "0.0.20", + "0.0.21", + "0.0.22", + "0.0.23", + "0.0.24", + "0.0.25", + "0.0.26", + "0.0.27", + "0.0.28", + "1.1.8" + ], + "solucionespsg.owaspzaponpremisestartstop.psg.owaspzaponpremisestop.31f040e5-e040-4336-878a-59a493355536": [ + "0.0.3", + "0.0.4", + "0.0.20", + "0.0.21", + "0.0.22", + "0.0.23", + "0.0.24", + "0.0.25", + "0.0.26", + "0.0.27", + "0.0.28", + "1.1.8" + ], + "solucionespsg.owaspzaponpremisestartstop.psg.owaspzaponpremisestop.owaspzaponpremisestop": [ + "0.0.3", + "0.0.4", + "0.0.20", + "0.0.21", + "0.0.22", + "0.0.23", + "0.0.24", + "0.0.25", + "0.0.26", + "0.0.27", + "0.0.28", + "1.1.8" + ], + "solucionespsg.showallenvironmentvariables.psg.showallenvironmentvariables.5f0427b3-e660-4f4d-9a93-60dd13f40029": [ + "0.0.1", + "0.0.2" + ], + "solucionespsg.showallenvironmentvariables.psg.showallenvironmentvariables.showallenvironmentvariables": [ + "0.0.1", + "0.0.2" + ], + "solucionespsg.updateversionvariablesandpackage.psg.updateversionvariablesandpackage.5f0427b3-e660-4f4d-9a93-60dd13f40028": [ + "0.0.7", + "0.0.8", + "0.0.9", + "0.0.10", + "0.0.11", + "0.0.12", + "0.0.14", + "0.0.15", + "0.0.16", + "0.0.17", + "0.0.18", + "0.0.19", + "0.0.20", + "0.0.21", + "0.0.22", + "0.0.23", + "0.0.24", + "0.0.25", + "0.0.26", + "0.0.27", + "0.0.28", + "0.0.29", + "0.0.30", + "0.0.31", + "0.0.32", + "0.0.33", + "0.0.34", + "0.0.35", + "0.0.36", + "0.0.37", + "0.0.38", + "0.0.39", + "0.0.40", + "0.0.41", + "0.0.42", + "0.0.43", + "0.0.44", + "0.0.45", + "0.0.46", + "0.0.47", + "0.0.48", + "0.0.49", + "0.0.50", + "0.0.51", + "0.0.52", + "0.0.53", + "0.1.54" + ], + "solucionespsg.updateversionvariablesandpackage.psg.updateversionvariablesandpackage.updateversionvariablesandpackage": [ + "0.0.7", + "0.0.8", + "0.0.9", + "0.0.10", + "0.0.11", + "0.0.12", + "0.0.14", + "0.0.15", + "0.0.16", + "0.0.17", + "0.0.18", + "0.0.19", + "0.0.20", + "0.0.21", + "0.0.22", + "0.0.23", + "0.0.24", + "0.0.25", + "0.0.26", + "0.0.27", + "0.0.28", + "0.0.29", + "0.0.30", + "0.0.31", + "0.0.32", + "0.0.33", + "0.0.34", + "0.0.35", + "0.0.36", + "0.0.37", + "0.0.38", + "0.0.39", + "0.0.40", + "0.0.41", + "0.0.42", + "0.0.43", + "0.0.44", + "0.0.45", + "0.0.46", + "0.0.47", + "0.0.48", + "0.0.49", + "0.0.50", + "0.0.51", + "0.0.52", + "0.0.53", + "0.1.54" + ], "sonar-buildbreaker": [ "6.0.0", "6.1.0", @@ -162319,7 +164923,9 @@ "1.32.0", "1.33.0", "1.33.1", - "1.34.0" + "1.34.0", + "1.35.0", + "1.36.0" ], "sonarcloudprepare": [ "1.0.0", @@ -162368,7 +164974,9 @@ "1.29.0", "1.30.0", "1.30.1", - "1.31.0" + "1.31.0", + "1.32.0", + "1.33.0" ], "sonarcloudpublish": [ "1.0.0", @@ -162430,6 +165038,8 @@ "4.30.0", "4.31.0", "4.32.0", + "4.33.0", + "4.34.0", "5.0.0", "5.1.0", "5.2.0", @@ -162441,7 +165051,9 @@ "5.6.1", "5.7.0", "5.8.0", - "5.9.0" + "5.9.0", + "5.10.0", + "5.11.0" ], "sonarqubeprepare": [ "4.0.0", @@ -162491,6 +165103,8 @@ "4.30.0", "4.31.0", "4.32.0", + "4.33.0", + "4.34.0", "5.0.0", "5.1.0", "5.1.1", @@ -162503,7 +165117,10 @@ "5.6.1", "5.7.0", "5.8.0", - "5.9.0" + "5.9.0", + "5.10.0", + "5.11.0", + "5.11.1" ], "sonarqubepublish": [ "4.0.0", @@ -162663,7 +165280,9 @@ "1.29.0", "1.30.0", "1.30.1", - "1.31.0" + "1.31.0", + "1.32.0", + "1.33.0" ], "sonarsource.sonarcloud.14d9cde6-c1da-4d55-aa01-2965cd301255.sonarcloudprepare": [ "1.0.0", @@ -162712,7 +165331,9 @@ "1.29.0", "1.30.0", "1.30.1", - "1.31.0" + "1.31.0", + "1.32.0", + "1.33.0" ], "sonarsource.sonarcloud.38b27399-a642-40af-bb7d-9971f69712e8.38b27399-a642-40af-bb7d-9971f69712e8": [ "1.0.0", @@ -162797,7 +165418,9 @@ "1.32.0", "1.33.0", "1.33.1", - "1.34.0" + "1.34.0", + "1.35.0", + "1.36.0" ], "sonarsource.sonarcloud.ce096e50-6155-4de8-8800-4221aaeed4a1.sonarcloudanalyze": [ "1.0.0", @@ -162842,7 +165465,9 @@ "1.32.0", "1.33.0", "1.33.1", - "1.34.0" + "1.34.0", + "1.35.0", + "1.36.0" ], "sonarsource.sonarqube.15b84ca1-b62f-4a2a-a403-89b77a063157.15b84ca1-b62f-4a2a-a403-89b77a063157": [ "2.0.0", @@ -162926,6 +165551,8 @@ "4.30.0", "4.31.0", "4.32.0", + "4.33.0", + "4.34.0", "5.0.0", "5.1.0", "5.1.1", @@ -162938,7 +165565,10 @@ "5.6.1", "5.7.0", "5.8.0", - "5.9.0" + "5.9.0", + "5.10.0", + "5.11.0", + "5.11.1" ], "sonarsource.sonarqube.15b84ca1-b62f-4a2a-a403-89b77a063157.sonarqubeprepare": [ "4.0.0", @@ -162988,6 +165618,8 @@ "4.30.0", "4.31.0", "4.32.0", + "4.33.0", + "4.34.0", "5.0.0", "5.1.0", "5.1.1", @@ -163000,7 +165632,10 @@ "5.6.1", "5.7.0", "5.8.0", - "5.9.0" + "5.9.0", + "5.10.0", + "5.11.0", + "5.11.1" ], "sonarsource.sonarqube.15b84ca1-b62f-4a2a-a403-89b77a063157.sonarqubescannermsbuildbegin": [ "2.0.0", @@ -163156,6 +165791,8 @@ "4.30.0", "4.31.0", "4.32.0", + "4.33.0", + "4.34.0", "5.0.0", "5.1.0", "5.2.0", @@ -163167,7 +165804,9 @@ "5.6.1", "5.7.0", "5.8.0", - "5.9.0" + "5.9.0", + "5.10.0", + "5.11.0" ], "sonarsource.sonarqube.6d01813a-9589-4b15-8491-8164aeb38055.sonarqubeanalyze": [ "4.0.0", @@ -163211,6 +165850,8 @@ "4.30.0", "4.31.0", "4.32.0", + "4.33.0", + "4.34.0", "5.0.0", "5.1.0", "5.2.0", @@ -163222,7 +165863,9 @@ "5.6.1", "5.7.0", "5.8.0", - "5.9.0" + "5.9.0", + "5.10.0", + "5.11.0" ], "sonarsource.sonarqube.6d01813a-9589-4b15-8491-8164aeb38055.sonarqubescannermsbuildend": [ "2.0.0", @@ -163376,7 +166019,10 @@ "1.6.0", "1.6.1", "1.6.2", - "1.6.3" + "1.6.3", + "1.6.4", + "1.6.5", + "1.6.6" ], "sonatypeintegrations.nexus-iq-azure-extension.nexus-iq-azure-pipeline-task.nexusiqpipelinetask": [ "1.0.0", @@ -163458,7 +166104,10 @@ "1.6.0", "1.6.1", "1.6.2", - "1.6.3" + "1.6.3", + "1.6.4", + "1.6.5", + "1.6.6" ], "soos": [ "0.0.0", @@ -163524,7 +166173,10 @@ "0.1.60", "0.1.61", "0.1.62", - "0.1.63" + "0.1.63", + "0.1.64", + "0.1.65", + "0.1.66" ], "soos.soos-security-analysis.scan-task.b1106b6a-6995-4ff6-ae1d-26dd4fa5fc5e": [ "0.0.1", @@ -163591,7 +166243,10 @@ "0.1.60", "0.1.61", "0.1.62", - "0.1.63" + "0.1.63", + "0.1.64", + "0.1.65", + "0.1.66" ], "soos.soos-security-analysis.scan-task.soos": [ "0.0.0", @@ -163657,7 +166312,10 @@ "0.1.60", "0.1.61", "0.1.62", - "0.1.63" + "0.1.63", + "0.1.64", + "0.1.65", + "0.1.66" ], "souravmishra.buildandreleasetask.custom-build-release-task.a2e330f0-1b07-11e9-837a-a3ec72c2343b": [ "0.3.1", @@ -164255,7 +166913,8 @@ "0.9.7", "0.9.8", "0.9.9", - "0.9.10" + "0.9.10", + "0.9.11" ], "sqlmultidacpacdeployment": [ "1.2.0", @@ -164288,7 +166947,10 @@ "1.15.1239", "1.15.1261", "1.23.1279", - "1.24.1281" + "1.24.1281", + "1.25.1302", + "1.26.1308", + "1.27.1315" ], "sqlplayer.datafactorytools.buildadf.buildadftask": [ "1.1.643", @@ -164308,7 +166970,10 @@ "1.15.1239", "1.15.1261", "1.23.1279", - "1.24.1281" + "1.24.1281", + "1.25.1302", + "1.26.1308", + "1.27.1315" ], "sqlplayer.datafactorytools.deployadffromarm.deployadffromarmtask": [ "0.12.1145", @@ -164317,7 +166982,10 @@ "0.15.1239", "0.15.1261", "0.23.1279", - "0.24.1281" + "0.24.1281", + "0.25.1302", + "0.26.1308", + "0.27.1315" ], "sqlplayer.datafactorytools.deployadffromarm.ecb868a7-3c51-4925-a4b5-c63321b51700": [ "0.12.1145", @@ -164326,7 +166994,10 @@ "0.15.1239", "0.15.1261", "0.23.1279", - "0.24.1281" + "0.24.1281", + "0.25.1302", + "0.26.1308", + "0.27.1315" ], "sqlplayer.datafactorytools.publishadf.1af843b5-35a0-411f-9a18-9eb7a59fb8b8": [ "0.1.0", @@ -164383,7 +167054,10 @@ "1.15.1239", "1.15.1261", "1.23.1279", - "1.24.1281" + "1.24.1281", + "1.25.1302", + "1.26.1308", + "1.27.1315" ], "sqlplayer.datafactorytools.publishadf.publishadftask": [ "0.1.0", @@ -164440,7 +167114,10 @@ "1.15.1239", "1.15.1261", "1.23.1279", - "1.24.1281" + "1.24.1281", + "1.25.1302", + "1.26.1308", + "1.27.1315" ], "sqlplayer.datafactorytools.testadfls.5bf98930-3058-4afe-b031-48d312459df4": [ "1.4.798", @@ -164458,7 +167135,10 @@ "1.15.1239", "1.15.1261", "1.23.1279", - "1.24.1281" + "1.24.1281", + "1.25.1302", + "1.26.1308", + "1.27.1315" ], "sqlplayer.datafactorytools.testadfls.testadflinkedservicetask": [ "1.4.798", @@ -164476,7 +167156,10 @@ "1.15.1239", "1.15.1261", "1.23.1279", - "1.24.1281" + "1.24.1281", + "1.25.1302", + "1.26.1308", + "1.27.1315" ], "sqlplusexecuter-release": [ "1.0.0", @@ -165016,7 +167699,8 @@ "1.2.0", "1.3.0", "1.4.0", - "1.5.0" + "1.5.0", + "1.6.0" ], "ssmsigningtoolssetup": [ "0.54.0", @@ -165065,7 +167749,8 @@ "1.2.0", "1.3.0", "1.4.0", - "1.5.0" + "1.5.0", + "1.6.0" ], "ssrsdeploy": ["0.2.3", "0.2.4", "0.2.5", "0.2.6"], "ssrserviceax2012": [ @@ -165122,6 +167807,16 @@ ], "stack-board-replaces": ["0.0.1"], "stack-board-repos": ["0.0.23"], + "stackhawk.stackhawk-extensions.install-hawkscan-task.1c8b66db-ae40-43b9-9b9b-de7f46787790": [ + "0.1.0" + ], + "stackhawk.stackhawk-extensions.install-hawkscan-task.hawkscaninstall": [ + "0.1.0" + ], + "stackhawk.stackhawk-extensions.run-hawkscan-task.e1455b3d-5dba-4397-9ed5-0be6bdc23907": [ + "0.1.0" + ], + "stackhawk.stackhawk-extensions.run-hawkscan-task.runhawkscan": ["0.1.0"], "stackify.build-release-task.stackify-deployment-task.574f4e45-56f1-4b37-bf2e-d32f59389970": [ "1.0.0" ], @@ -167092,7 +169787,7 @@ "8.0.0" ], "synopsyspolaris": ["1.1.0", "1.1.3", "1.2.0", "1.2.4"], - "syntheticsruntests": ["0.0.1", "0.1.0", "0.1.1"], + "syntheticsruntests": ["0.0.1", "0.1.0", "0.1.1", "0.1.2"], "sysdig": [ "0.2.1", "0.2.5", @@ -167128,7 +169823,9 @@ "1.1.4", "1.1.5", "1.1.6", - "1.1.7" + "1.1.7", + "1.2.1", + "1.2.3" ], "systemsmanagergetparameter": [ "1.0.14", @@ -167976,7 +170673,8 @@ "0.7.5", "0.7.6", "0.7.7", - "0.7.8" + "0.7.8", + "0.7.11" ], "terraformdestroy": [ "0.1.0", @@ -168086,13 +170784,18 @@ "0.7.6", "0.7.7", "0.7.8", + "0.7.11", "0.197.0", "0.201.0", "0.202.0", "0.202.17", "0.202.18", "0.202.19", - "0.203.0" + "0.202.20", + "0.202.21", + "0.203.0", + "1.216.20", + "1.216.21" ], "terraformoutput": [ "0.1.0", @@ -168171,7 +170874,23 @@ "0.3.1", "1.1.0", "1.1.1", - "1.1.2" + "1.1.2", + "1.1.3", + "1.1.5", + "1.1.6", + "1.1.7", + "1.1.8", + "1.1.9", + "1.1.10", + "1.1.11", + "1.1.12", + "1.1.13", + "1.1.14", + "1.1.15", + "1.1.16", + "1.1.17", + "1.1.18", + "1.1.19" ], "terraformplan": [ "0.2.0", @@ -168201,6 +170920,8 @@ "0.202.17", "0.202.18", "0.202.19", + "0.202.20", + "0.202.21", "0.203.0" ], "terraformtaskv2": [ @@ -168214,9 +170935,18 @@ "2.202.17", "2.202.18", "2.202.19", + "2.202.20", + "2.202.21", "2.203.0" ], - "terraformtaskv3": ["3.201.17", "3.201.18", "3.209.19"], + "terraformtaskv3": [ + "3.201.17", + "3.201.18", + "3.209.19", + "3.209.20", + "3.209.21" + ], + "terraformtaskv4": ["4.218.20", "4.218.21"], "terraformtool": ["0.1.0"], "terraformworkspace": ["0.1.0", "0.2.0", "0.3.0", "0.3.1"], "test_azure_task": [ @@ -168254,7 +170984,10 @@ "1.15.1239", "1.15.1261", "1.23.1279", - "1.24.1281" + "1.24.1281", + "1.25.1302", + "1.26.1308", + "1.27.1315" ], "testcraft.build-release-task.custom-build-release-task.1fd114fb-f623-4c40-a8e8-2095b911a175": [ "0.2.0", @@ -169500,6 +172233,8 @@ "3.5.149", "3.5.161", "3.5.178", + "3.5.220", + "3.5.260", "4.0.8", "4.0.50", "4.0.89", @@ -169510,7 +172245,9 @@ "4.0.142", "4.0.149", "4.0.161", - "4.0.178" + "4.0.178", + "4.0.220", + "4.0.260" ], "tg.vsts-ssis.buildssis-task.1cbf64a9-c6d0-431b-9d98-8f5d509b5e09": [ "0.0.1148", @@ -170304,7 +173041,10 @@ "1.13.373", "1.13.377", "1.13.378", - "1.14.404" + "1.14.404", + "1.14.420", + "1.15.453", + "1.16.455" ], "tingle-software.dependabot.dependabot.dependabot": [ "1.0.0", @@ -170363,7 +173103,10 @@ "1.13.373", "1.13.377", "1.13.378", - "1.14.404" + "1.14.404", + "1.14.420", + "1.15.453", + "1.16.455" ], "tiobesoftwarebv.tics-azure-devops-plugin.tics-quality-analysis-task.abca0c47-7bc2-4f13-ba9c-ab04b0880cb4": [ "0.1.1" @@ -170403,6 +173146,20 @@ "tmarkovski.projectversionasvariable.versionintovariable.projectversionasvariable": [ "1.0.0" ], + "tngtechnologyconsultinggmbh.jgiventestintegration.custom-publishjgivenreport.6d4b1476-3a89-4eca-ba13-df048e3d697a": [ + "0.4.0", + "0.4.1", + "0.5.0", + "0.5.1", + "0.5.2" + ], + "tngtechnologyconsultinggmbh.jgiventestintegration.custom-publishjgivenreport.publishjgivenreport": [ + "0.4.0", + "0.4.1", + "0.5.0", + "0.5.1", + "0.5.2" + ], "tobania.entityframeworkmigrations.applyentityframeworkmigrationswithmigrate.applyentityframeworkmigrationswithmigrate": [ "0.1.0", "0.1.1", @@ -171376,7 +174133,8 @@ "2.0.1", "2.0.2", "2.0.5", - "2.0.6" + "2.0.6", + "2.0.10" ], "triggerrelease": ["1.1.1", "1.2.0"], "trivy": [ @@ -171488,7 +174246,8 @@ "1.2.12", "1.2.13", "1.2.14", - "1.2.15" + "1.2.15", + "1.2.16" ], "truevelocity.commit-message-validator-build-task.custom-build-release-task.commitmessagevalidator": [ "0.1.0", @@ -171526,7 +174285,8 @@ "1.2.12", "1.2.13", "1.2.14", - "1.2.15" + "1.2.15", + "1.2.16" ], "try1": [ "0.1.0", @@ -171828,6 +174588,8 @@ "1.0.0", "1.0.1", "1.0.2", + "1.3.1", + "1.3.2", "2.0.0", "2.0.1", "2.0.2", @@ -171893,6 +174655,7 @@ "2.6.5", "2.6.6" ], + "twextension12345": ["2.0.0"], "twextension22": [ "1.0.0", "1.0.1", @@ -172180,7 +174943,8 @@ "9.1.11638", "9.1.11639", "9.1.11643", - "9.1.11647" + "9.1.11647", + "9.1.61695" ], "typemock.typemock-tasks-beta.typemocksmartrunner.typemocksmartrunner": [ "8.9.61405", @@ -172222,7 +174986,8 @@ "9.1.11638", "9.1.11639", "9.1.11643", - "9.1.11647" + "9.1.11647", + "9.1.61695" ], "typemock.typemock-tasks-beta.vstestwithtypemock.5e2467be-4fa5-4fe4-b84d-7b276cc1800d": [ "8.9.61405", @@ -172264,7 +175029,8 @@ "9.1.11638", "9.1.11639", "9.1.11643", - "9.1.11647" + "9.1.11647", + "9.1.61695" ], "typemock.typemock-tasks-beta.vstestwithtypemock.vstestwithtypemock": [ "8.9.61405", @@ -172306,7 +175072,8 @@ "9.1.11638", "9.1.11639", "9.1.11643", - "9.1.11647" + "9.1.11647", + "9.1.61695" ], "typemock.typemock-tasks.typemock_smart_runner.84b5a581-2a93-4aa8-b459-8fef028d2d83": [ "8.5.741" @@ -172358,7 +175125,9 @@ "9.1.31663", "9.1.41672", "9.1.51686", - "9.1.61689" + "9.1.61689", + "9.1.71696", + "9.1.81710" ], "typemock.typemock-tasks.typemocksmartrunner.af5a8f5a-e610-49ed-8aa9-821d14beb92c": [ "8.4.1", @@ -172414,7 +175183,9 @@ "9.1.31663", "9.1.41672", "9.1.51686", - "9.1.61689" + "9.1.61689", + "9.1.71696", + "9.1.81710" ], "typemock.typemock-tasks.typemocksmartrunnertask.a0ca5cb2-bacd-46ab-82dc-b0e1984f6006": [ "8.5.742", @@ -172474,7 +175245,9 @@ "9.1.31663", "9.1.41672", "9.1.51686", - "9.1.61689" + "9.1.61689", + "9.1.71696", + "9.1.81710" ], "typemock.typemock-tasks.vstestwithtypemock.d9a4ee62-4f10-4146-8e06-274bd42b7453": [ "8.4.2", @@ -172528,7 +175301,9 @@ "9.1.31663", "9.1.41672", "9.1.51686", - "9.1.61689" + "9.1.61689", + "9.1.71696", + "9.1.81710" ], "typemock.typemock-tasks.vstestwithtypemocktask.b79d073d-713c-4c2b-9ec4-f88d990cfa34": [ "8.5.742", @@ -172624,7 +175399,10 @@ "9.1.31663", "9.1.41672", "9.1.51686", - "9.1.61689" + "9.1.61689", + "9.1.61695", + "9.1.71696", + "9.1.81710" ], "typemocksmartrunnertask": ["8.5.742", "8.5.743"], "typings": ["0.1.0", "0.1.1"], @@ -172664,7 +175442,8 @@ "0.9.7", "0.9.8", "0.9.9", - "0.9.10" + "0.9.10", + "0.9.11" ], "ubitsoft.sql-enlight-vsts-extension.sql-enlight-analyze.sqlenlightanalyze": [ "0.2.2", @@ -172702,7 +175481,8 @@ "0.9.7", "0.9.8", "0.9.9", - "0.9.10" + "0.9.10", + "0.9.11" ], "udclient": ["0.1.0", "0.1.1", "0.121.0"], "udpushcomponentversion": ["0.1.0", "0.1.1", "0.121.0"], @@ -172795,6 +175575,104 @@ "4.0.0" ], "ugly-sql-task": ["0.1.0"], + "uipath.vsts-uipath-package-preview.uipath-assets-preview.83faa8cf-ff90-4cb5-8ca0-389edc2c0af5": [ + "2.11.3447906", + "3.0.3513646", + "3.0.3517186" + ], + "uipath.vsts-uipath-package-preview.uipath-assets-preview.f4df1586-7648-4160-ad6d-a03b05af0004": [ + "2.11.3445511" + ], + "uipath.vsts-uipath-package-preview.uipath-assets-preview.uipathassets-preview": [ + "2.11.3445511", + "2.11.3447906", + "3.0.3513646", + "3.0.3517186" + ], + "uipath.vsts-uipath-package-preview.uipath-deploy-preview.666f48a9-3550-4db6-b74b-2f8aa4b99444": [ + "2.11.3447906", + "3.0.3513646", + "3.0.3517186" + ], + "uipath.vsts-uipath-package-preview.uipath-deploy-preview.72167370-9f1d-47d5-be00-6f2554c20001": [ + "2.11.3445511" + ], + "uipath.vsts-uipath-package-preview.uipath-deploy-preview.uipathdeploy-preview": [ + "2.11.3445511", + "2.11.3447906", + "3.0.3513646", + "3.0.3517186" + ], + "uipath.vsts-uipath-package-preview.uipath-install-platform-preview.0ae6f751-0884-4b80-8cb7-1686f59d4288": [ + "2.11.3447906", + "3.0.3513646", + "3.0.3517186" + ], + "uipath.vsts-uipath-package-preview.uipath-install-platform-preview.723917b2-c29b-4c74-b536-611be986beb2": [ + "2.11.3445511" + ], + "uipath.vsts-uipath-package-preview.uipath-install-platform-preview.uipathinstallplatform-preview": [ + "2.11.3445511", + "2.11.3447906", + "3.0.3513646", + "3.0.3517186" + ], + "uipath.vsts-uipath-package-preview.uipath-pack-preview.33265b4a-5861-41e6-a42c-83efecec0002": [ + "2.11.3445511" + ], + "uipath.vsts-uipath-package-preview.uipath-pack-preview.51d18b73-ba80-440e-95c2-59620cb4be1c": [ + "2.11.3447906", + "3.0.3513646", + "3.0.3517186" + ], + "uipath.vsts-uipath-package-preview.uipath-pack-preview.uipathpack-preview": [ + "2.11.3445511", + "2.11.3447906", + "3.0.3513646", + "3.0.3517186" + ], + "uipath.vsts-uipath-package-preview.uipath-runjob-preview.aef39911-3d63-40d6-bdef-909edadf0005": [ + "2.11.3445511" + ], + "uipath.vsts-uipath-package-preview.uipath-runjob-preview.ef33e496-05b4-4e5d-ba93-7e3ae477d9ca": [ + "2.11.3447906", + "3.0.3513646", + "3.0.3517186" + ], + "uipath.vsts-uipath-package-preview.uipath-runjob-preview.uipathrunjob-preview": [ + "2.11.3445511", + "2.11.3447906", + "3.0.3513646", + "3.0.3517186" + ], + "uipath.vsts-uipath-package-preview.uipath-test-preview.07a04851-f6d3-473a-82e1-e9026d0b5528": [ + "2.11.3447906", + "3.0.3513646", + "3.0.3517186" + ], + "uipath.vsts-uipath-package-preview.uipath-test-preview.edd520aa-3aec-408b-9649-642f8b920003": [ + "2.11.3445511" + ], + "uipath.vsts-uipath-package-preview.uipath-test-preview.uipathtest-preview": [ + "2.11.3445511", + "2.11.3447906", + "3.0.3513646", + "3.0.3517186" + ], + "uipath.vsts-uipath-package-preview.vsts-eventlog-to-tests.0e237901-8ece-4bc9-bedf-05ed7f0e98d5": [ + "1.0.3445511" + ], + "uipath.vsts-uipath-package-preview.vsts-eventlog-to-tests.5ba96c72-cff1-411e-a333-ea2bbf4f2f78": [ + "1.0.3447906", + "1.0.3513646", + "1.0.3517186" + ], + "uipath.vsts-uipath-package-preview.vsts-eventlog-to-tests.uipathpackage-preview": [ + "1.0.3445511", + "1.0.3447906", + "1.0.3513646", + "1.0.3517186" + ], "uipath.vsts-uipath-package.uipath-assets.f4df1586-7648-4160-ad6d-a03b05af0004": [ "2.1.1309266", "2.3.1479943", @@ -172812,7 +175690,8 @@ "2.11.3094444", "2.11.3105315", "2.11.3206699", - "2.11.3214338" + "2.11.3214338", + "3.0.3517186" ], "uipath.vsts-uipath-package.uipath-assets.uipathassets": [ "2.1.1309266", @@ -172831,7 +175710,8 @@ "2.11.3094444", "2.11.3105315", "2.11.3206699", - "2.11.3214338" + "2.11.3214338", + "3.0.3517186" ], "uipath.vsts-uipath-package.uipath-deploy.72167370-9f1d-47d5-be00-6f2554c20001": [ "2.0.965899", @@ -172856,7 +175736,8 @@ "2.11.3094444", "2.11.3105315", "2.11.3206699", - "2.11.3214338" + "2.11.3214338", + "3.0.3517186" ], "uipath.vsts-uipath-package.uipath-deploy.uipathdeploy": [ "2.0.965899", @@ -172881,7 +175762,8 @@ "2.11.3094444", "2.11.3105315", "2.11.3206699", - "2.11.3214338" + "2.11.3214338", + "3.0.3517186" ], "uipath.vsts-uipath-package.uipath-install-platform.723917b2-c29b-4c74-b536-611be986beb2": [ "2.0.1044033", @@ -172903,7 +175785,8 @@ "2.11.3094444", "2.11.3105315", "2.11.3206699", - "2.11.3214338" + "2.11.3214338", + "3.0.3517186" ], "uipath.vsts-uipath-package.uipath-install-platform.uipathinstallplatform": [ "2.8.2109351", @@ -172915,7 +175798,8 @@ "2.11.3094444", "2.11.3105315", "2.11.3206699", - "2.11.3214338" + "2.11.3214338", + "3.0.3517186" ], "uipath.vsts-uipath-package.uipath-install-platform.uipathinstallplatform-preview": [ "2.0.1044033", @@ -172952,7 +175836,8 @@ "2.11.3094444", "2.11.3105315", "2.11.3206699", - "2.11.3214338" + "2.11.3214338", + "3.0.3517186" ], "uipath.vsts-uipath-package.uipath-pack.uipathpack": [ "2.0.965899", @@ -172977,7 +175862,8 @@ "2.11.3094444", "2.11.3105315", "2.11.3206699", - "2.11.3214338" + "2.11.3214338", + "3.0.3517186" ], "uipath.vsts-uipath-package.uipath-runjob.aef39911-3d63-40d6-bdef-909edadf0005": [ "2.1.1309266", @@ -172996,7 +175882,8 @@ "2.11.3094444", "2.11.3105315", "2.11.3206699", - "2.11.3214338" + "2.11.3214338", + "3.0.3517186" ], "uipath.vsts-uipath-package.uipath-runjob.uipathrunjob": [ "2.1.1309266", @@ -173015,7 +175902,8 @@ "2.11.3094444", "2.11.3105315", "2.11.3206699", - "2.11.3214338" + "2.11.3214338", + "3.0.3517186" ], "uipath.vsts-uipath-package.uipath-test.edd520aa-3aec-408b-9649-642f8b920003": [ "2.0.965899", @@ -173040,7 +175928,8 @@ "2.11.3094444", "2.11.3105315", "2.11.3206699", - "2.11.3214338" + "2.11.3214338", + "3.0.3517186" ], "uipath.vsts-uipath-package.uipath-test.uipathtest": [ "2.0.965899", @@ -173065,7 +175954,8 @@ "2.11.3094444", "2.11.3105315", "2.11.3206699", - "2.11.3214338" + "2.11.3214338", + "3.0.3517186" ], "uipath.vsts-uipath-package.vsts-eventlog-to-tests.0e237901-8ece-4bc9-bedf-05ed7f0e98d5": [ "0.1.0", @@ -173170,7 +176060,8 @@ "1.0.3094444", "1.0.3105315", "1.0.3206699", - "1.0.3214338" + "1.0.3214338", + "1.0.3517186" ], "uipath.vsts-uipath-package.vsts-eventlog-to-tests.uipathpackage": [ "0.1.0", @@ -173275,7 +176166,8 @@ "1.0.3094444", "1.0.3105315", "1.0.3206699", - "1.0.3214338" + "1.0.3214338", + "1.0.3517186" ], "uipathassets": [ "2.1.1309266", @@ -173294,7 +176186,14 @@ "2.11.3094444", "2.11.3105315", "2.11.3206699", - "2.11.3214338" + "2.11.3214338", + "3.0.3517186" + ], + "uipathassets-preview": [ + "2.11.3445511", + "2.11.3447906", + "3.0.3513646", + "3.0.3517186" ], "uipathdeploy": [ "2.0.965899", @@ -173319,7 +176218,14 @@ "2.11.3094444", "2.11.3105315", "2.11.3206699", - "2.11.3214338" + "2.11.3214338", + "3.0.3517186" + ], + "uipathdeploy-preview": [ + "2.11.3445511", + "2.11.3447906", + "3.0.3513646", + "3.0.3517186" ], "uipathinstallplatform": [ "2.8.2109351", @@ -173331,7 +176237,8 @@ "2.11.3094444", "2.11.3105315", "2.11.3206699", - "2.11.3214338" + "2.11.3214338", + "3.0.3517186" ], "uipathinstallplatform-preview": [ "2.0.1044033", @@ -173343,7 +176250,11 @@ "2.4.1786427", "2.5.1858421", "2.6.1872849", - "2.7.1993735" + "2.7.1993735", + "2.11.3445511", + "2.11.3447906", + "3.0.3513646", + "3.0.3517186" ], "uipathpack": [ "2.0.965899", @@ -173368,7 +176279,14 @@ "2.11.3094444", "2.11.3105315", "2.11.3206699", - "2.11.3214338" + "2.11.3214338", + "3.0.3517186" + ], + "uipathpack-preview": [ + "2.11.3445511", + "2.11.3447906", + "3.0.3513646", + "3.0.3517186" ], "uipathpackage": [ "0.1.0", @@ -173473,7 +176391,14 @@ "1.0.3094444", "1.0.3105315", "1.0.3206699", - "1.0.3214338" + "1.0.3214338", + "1.0.3517186" + ], + "uipathpackage-preview": [ + "1.0.3445511", + "1.0.3447906", + "1.0.3513646", + "1.0.3517186" ], "uipathrunjob": [ "2.1.1309266", @@ -173492,7 +176417,14 @@ "2.11.3094444", "2.11.3105315", "2.11.3206699", - "2.11.3214338" + "2.11.3214338", + "3.0.3517186" + ], + "uipathrunjob-preview": [ + "2.11.3445511", + "2.11.3447906", + "3.0.3513646", + "3.0.3517186" ], "uipathtest": [ "2.0.965899", @@ -173517,7 +176449,14 @@ "2.11.3094444", "2.11.3105315", "2.11.3206699", - "2.11.3214338" + "2.11.3214338", + "3.0.3517186" + ], + "uipathtest-preview": [ + "2.11.3445511", + "2.11.3447906", + "3.0.3513646", + "3.0.3517186" ], "ulrikstrid.vsts-esy.custom-build-release-task.de6ff299-5f71-4949-8fb6-bfb690b9cb5d": [ "0.2.1", @@ -173973,6 +176912,8 @@ "3.5.149", "3.5.161", "3.5.178", + "3.5.220", + "3.5.260", "4.0.8", "4.0.50", "4.0.89", @@ -173983,7 +176924,9 @@ "4.0.142", "4.0.149", "4.0.161", - "4.0.178" + "4.0.178", + "4.0.220", + "4.0.260" ], "unzip": [ "0.1.1", @@ -174398,6 +177341,55 @@ "1.1.11", "1.1.12" ], + "updateversionvariablesandpackage": [ + "0.0.7", + "0.0.8", + "0.0.9", + "0.0.10", + "0.0.11", + "0.0.12", + "0.0.14", + "0.0.15", + "0.0.16", + "0.0.17", + "0.0.18", + "0.0.19", + "0.0.20", + "0.0.21", + "0.0.22", + "0.0.23", + "0.0.24", + "0.0.25", + "0.0.26", + "0.0.27", + "0.0.28", + "0.0.29", + "0.0.30", + "0.0.31", + "0.0.32", + "0.0.33", + "0.0.34", + "0.0.35", + "0.0.36", + "0.0.37", + "0.0.38", + "0.0.39", + "0.0.40", + "0.0.41", + "0.0.42", + "0.0.43", + "0.0.44", + "0.0.45", + "0.0.46", + "0.0.47", + "0.0.48", + "0.0.49", + "0.0.50", + "0.0.51", + "0.0.52", + "0.0.53", + "0.1.54" + ], "updatewebresources": [ "8.2.1", "8.2.2", @@ -174472,6 +177464,7 @@ ], "upload-app-file": ["2.0.12"], "upload-bom-dtrack-task": [ + "0.0.0", "1.1.0", "1.2.0", "1.3.0", @@ -174487,6 +177480,7 @@ "1.13.0", "1.14.0" ], + "upload-bom-task": ["0.0.0"], "uploadmultipleazurekeyvaultsecrets": [ "0.19340.2", "0.19342.1", @@ -174736,6 +177730,11 @@ "0.2.5" ], "uzgversioning": ["0.1.0", "0.1.1", "0.1.2"], + "v-mopanda.vss-services-ansible.ansible-task.3ff9107a-251e-4828-af68-fcb7090cb3d6": [ + "0.0.5", + "0.0.6" + ], + "v-mopanda.vss-services-ansible.ansible-task.ansible": ["0.0.5", "0.0.6"], "v-nagarajku.vss-services-ansible.ansible-task.2850151b-ec95-4c1e-81a4-917de1f4c0ef": [ "0.0.5", "0.0.7", @@ -175215,7 +178214,9 @@ "3.14.0", "3.15.0", "3.16.0", - "3.17.0" + "3.17.0", + "3.18.0", + "3.19.0" ], "veracode flaw importer": [ "1.3.0", @@ -175254,7 +178255,9 @@ "3.14.0", "3.15.0", "3.16.0", - "3.17.0" + "3.17.0", + "3.18.0", + "3.19.0" ], "veracode.veracode-vsts-build-extension.veracode-flaw-importer-task.c6f3c728-4d4c-4aa5-a3a1-fc16f6ff9a66": [ "1.3.0", @@ -175293,7 +178296,9 @@ "3.14.0", "3.15.0", "3.16.0", - "3.17.0" + "3.17.0", + "3.18.0", + "3.19.0" ], "veracode.veracode-vsts-build-extension.veracode-flaw-importer-task.veracode flaw importer": [ "1.3.0", @@ -175332,7 +178337,9 @@ "3.14.0", "3.15.0", "3.16.0", - "3.17.0" + "3.17.0", + "3.18.0", + "3.19.0" ], "veracode.veracode-vsts-build-extension.veracode-scanner-task.6292a058-d4f5-407b-b6c6-815df9ee59d6": [ "1.0.0", @@ -175379,7 +178386,9 @@ "3.14.0", "3.15.0", "3.16.0", - "3.17.0" + "3.17.0", + "3.18.0", + "3.19.0" ], "veracode.veracode-vsts-build-extension.veracode-scanner-task.veracode": [ "1.0.0", @@ -175426,7 +178435,9 @@ "3.14.0", "3.15.0", "3.16.0", - "3.17.0" + "3.17.0", + "3.18.0", + "3.19.0" ], "veracodecommunitysast": ["0.0.0", "0.0.1", "0.0.2", "1.0.3"], "veracodecommunityscaadoextension": [ @@ -177056,6 +180067,32 @@ "0.1.27", "0.1.28" ], + "vhorbachov.iiswebapp.iiswebappdeploy-task.6da3e555-04c4-480f-91cd-d93c5e56bbf1": [ + "1.4.7", + "2.0.0" + ], + "vhorbachov.iiswebapp.iiswebappdeploy-task.iiswebappdeploy": [ + "1.4.7", + "2.0.0" + ], + "vhorbachov.iiswebapp.iiswebappmgmt-task.37506ba2-fb91-4417-9e9b-44c355c60135": [ + "1.3.6", + "2.1.3", + "3.0.0" + ], + "vhorbachov.iiswebapp.iiswebappmgmt-task.iiswebappmgmt": [ + "1.3.6", + "2.1.3", + "3.0.0" + ], + "vhorbachov.iiswebapp.sqldacpacdeploy-task.65c38e37-4bbd-4b44-acfd-72adf9dd7579": [ + "1.3.12", + "2.0.0" + ], + "vhorbachov.iiswebapp.sqldacpacdeploy-task.sqldacpacdeploy": [ + "1.3.12", + "2.0.0" + ], "vibrato.sumologic-tools.createsumologiccollectorandhttpsource.31f040e5-e040-4336-878a-59a493355534": [ "0.1.0", "0.1.1", @@ -177756,7 +180793,12 @@ "0.7.20", "0.7.21" ], - "visualstudiotestplatforminstaller-sxs": ["1.151.3", "1.212.0", "1.214.0"], + "visualstudiotestplatforminstaller-sxs": [ + "1.151.3", + "1.212.0", + "1.214.0", + "1.215.0" + ], "vitaliy-leschenko-by.hockeyappuwp.hockeyapp-task.3abefe9e-cc71-4670-b17e-688fcbb49860": [ "1.0.11" ], @@ -178257,7 +181299,14 @@ "1.0.196" ], "vstest_with_typemock": ["8.5.741"], - "vstest-sxs": ["1.198.0", "2.198.0", "2.203.0", "2.205.0", "2.210.0"], + "vstest-sxs": [ + "1.198.0", + "2.198.0", + "2.203.0", + "2.205.0", + "2.210.0", + "2.215.0" + ], "vstestforspecsync": ["1.0.0", "1.0.1", "1.0.5", "1.0.6"], "vstestwithtypemock": [ "8.4.2", @@ -178344,7 +181393,10 @@ "9.1.31663", "9.1.41672", "9.1.51686", - "9.1.61689" + "9.1.61689", + "9.1.61695", + "9.1.71696", + "9.1.81710" ], "vstestwithtypemocktask": ["8.5.742", "8.5.743"], "vsts-chef-task-cookbook-gems": [ @@ -180786,7 +183838,10 @@ "1.46.7", "2.0.3", "2.0.5", - "2.2.2" + "2.2.2", + "2.3.5", + "2.4.2", + "2.5.2" ], "wikipdfexporttask": [ "1.0.17", @@ -180804,7 +183859,9 @@ "2.5.4", "2.6.2", "2.7.4", - "3.0.10" + "3.0.10", + "3.1.2", + "3.2.2" ], "wikiupdatertask": [ "1.0.30", @@ -180856,7 +183913,10 @@ "1.46.7", "2.0.3", "2.0.5", - "2.2.2" + "2.2.2", + "2.3.5", + "2.4.2", + "2.5.2" ], "williamoconnor.azuredevopsapplicationgatewayscaletaskextension.me.williamoconnor.azuredevopsapplicationgatewayscaletaskextension.11f18d28-72b3-41e0-a85b-291e2739752d": [ "1.0.0" @@ -181280,7 +184340,8 @@ "2.5.800", "2.5.801", "2.5.830", - "2.5.835" + "2.5.835", + "3.0.0" ], "worksoft.worksoft-continuoustestingmanager-ps-task.custom-build-release-task.1900c78f-aadb-473b-b6b4-6574ce3f499d": [ "0.0.36", @@ -181302,7 +184363,8 @@ "0.0.52", "0.0.53", "0.0.54", - "0.0.58" + "0.0.58", + "0.0.61" ], "worksoft.worksoft-continuoustestingmanager-ps-task.custom-build-release-task.worksoftcontinuoustestingmanager": [ "0.0.36", @@ -181324,7 +184386,8 @@ "0.0.52", "0.0.53", "0.0.54", - "0.0.58" + "0.0.58", + "0.0.61" ], "worksoft.worksoft-executionmanager-ps-task.custom-build-release-task.472b73f0-49a0-4ff3-b4da-2951343494a6": [ "0.0.19", @@ -181366,7 +184429,8 @@ "0.0.52", "0.0.53", "0.0.54", - "0.0.58" + "0.0.58", + "0.0.61" ], "worksoftexecutionmanager": [ "0.0.19", @@ -181956,7 +185020,11 @@ "3.90.11", "4.0.16", "4.1.2", - "4.2.2" + "4.2.2", + "4.3.3", + "4.4.1", + "4.5.2", + "4.6.2" ], "xplus-executive-automats.ea-integration-custom.custom-build-release-task.c1581b7a-0c70-41a1-89da-cd04c1865b8a": [ "0.0.1", @@ -182266,7 +185334,8 @@ "2.0.9", "2.0.10", "2.0.11", - "2.0.12" + "2.0.12", + "2.0.13" ], "yingjieli-demo.hydra-lab.deploy-tests-to-hydra-lab.hydralabdeploytest": [ "0.1.0", @@ -182296,7 +185365,8 @@ "2.0.9", "2.0.10", "2.0.11", - "2.0.12" + "2.0.12", + "2.0.13" ], "yodlabs.o365postmessage.o365postmessagebuild.7ad6b2bf-1c03-4d63-93ed-dccf7d770063": [ "0.9.0", @@ -182624,7 +185694,8 @@ "1.0.1", "1.0.2", "1.0.3", - "1.1.0" + "1.1.0", + "1.2.0" ], "zscaler.zscaler-iac-scan-devops.custom-build-release-task.zscaleriacscan": [ "0.1.0", @@ -182634,7 +185705,8 @@ "1.0.1", "1.0.2", "1.0.3", - "1.1.0" + "1.1.0", + "1.2.0" ], "zscaleriacscan": [ "0.1.0", @@ -182644,7 +185716,8 @@ "1.0.1", "1.0.2", "1.0.3", - "1.1.0" + "1.1.0", + "1.2.0" ], "垀äŧä¸šåžŽäŋĄå‘送æļˆæ¯": ["0.1.0", "0.1.6", "0.2.3"] } diff --git a/data/azure-pipelines-tasks.json b/data/azure-pipelines-tasks.json index 29de8f96ee0cd1..1475bbb35c221f 100644 --- a/data/azure-pipelines-tasks.json +++ b/data/azure-pipelines-tasks.json @@ -290,6 +290,7 @@ "3.150.0" ], "appcentertest": [ + "1.218.0", "1.214.0", "1.208.1", "1.208.0", @@ -311,6 +312,7 @@ "1.131.0" ], "ad5cd22a-be4e-48bb-adce-181a32432da5": [ + "1.218.0", "1.214.0", "1.208.1", "1.208.0", @@ -402,6 +404,8 @@ "automatedanalysis": ["0.198.0", "0.171.0"], "6b519857-1a20-4248-bae8-aad039015afb": ["0.198.0", "0.171.0"], "azureappservicemanage": [ + "0.217.2", + "0.217.1", "0.217.0", "0.216.1", "0.216.0", @@ -460,6 +464,8 @@ "0.2.32" ], "f045e430-8704-11e6-968f-e717e6411619": [ + "0.217.2", + "0.217.1", "0.217.0", "0.216.1", "0.216.0", @@ -617,6 +623,7 @@ "1.137.1", "1.137.0", "1.132.0", + "2.217.1", "2.217.0", "2.216.0", "2.215.0", @@ -683,6 +690,7 @@ "1.137.1", "1.137.0", "1.132.0", + "2.217.1", "2.217.0", "2.216.0", "2.215.0", @@ -712,6 +720,7 @@ "2.0.0" ], "azurecloudpowershelldeployment": [ + "1.218.0", "1.202.0", "1.198.0", "1.184.0", @@ -747,6 +756,7 @@ "1.3.4" ], "2ca8fe15-42ea-4b26-80f1-e0738ec17e89": [ + "1.218.0", "1.202.0", "1.198.0", "1.184.0", @@ -781,9 +791,10 @@ "1.3.5", "1.3.4" ], - "azurecontainerapps": ["0.215.0", "0.213.0"], - "cad8dd6a-de28-4d89-a7db-1bc20a2fbb2d": ["0.215.0", "0.213.0"], + "azurecontainerapps": ["0.218.0", "0.215.0", "0.213.0"], + "cad8dd6a-de28-4d89-a7db-1bc20a2fbb2d": ["0.218.0", "0.215.0", "0.213.0"], "azurefilecopy": [ + "1.219.0", "1.202.0", "1.198.0", "1.178.0", @@ -806,6 +817,10 @@ "1.0.116", "1.0.115", "1.0.114", + "2.219.1", + "2.219.0", + "2.218.0", + "2.217.1", "2.217.0", "2.216.1", "2.216.0", @@ -885,6 +900,10 @@ "2.0.2", "2.0.1", "2.0.0", + "3.219.1", + "3.219.0", + "3.218.0", + "3.217.1", "3.217.0", "3.216.1", "3.216.0", @@ -951,6 +970,10 @@ "3.0.3", "3.0.2", "3.0.1", + "4.219.1", + "4.219.0", + "4.218.0", + "4.217.1", "4.217.0", "4.216.1", "4.216.0", @@ -995,6 +1018,10 @@ "4.166.0", "4.165.0", "4.164.0", + "5.219.1", + "5.219.0", + "5.218.0", + "5.217.1", "5.217.0", "5.216.1", "5.216.0", @@ -1010,6 +1037,7 @@ "5.198.0" ], "eb72cb01-a7e5-427b-a8a1-1b31ccac8a43": [ + "1.219.0", "1.202.0", "1.198.0", "1.178.0", @@ -1032,6 +1060,10 @@ "1.0.116", "1.0.115", "1.0.114", + "2.219.1", + "2.219.0", + "2.218.0", + "2.217.1", "2.217.0", "2.216.1", "2.216.0", @@ -1111,6 +1143,10 @@ "2.0.2", "2.0.1", "2.0.0", + "3.219.1", + "3.219.0", + "3.218.0", + "3.217.1", "3.217.0", "3.216.1", "3.216.0", @@ -1177,6 +1213,10 @@ "3.0.3", "3.0.2", "3.0.1", + "4.219.1", + "4.219.0", + "4.218.0", + "4.217.1", "4.217.0", "4.216.1", "4.216.0", @@ -1221,6 +1261,10 @@ "4.166.0", "4.165.0", "4.164.0", + "5.219.1", + "5.219.0", + "5.218.0", + "5.217.1", "5.217.0", "5.216.1", "5.216.0", @@ -1396,6 +1440,8 @@ "1.0.2", "1.0.1", "1.0.0", + "2.219.0", + "2.218.1", "2.216.1", "2.216.0", "2.215.0", @@ -1470,6 +1516,8 @@ "1.0.2", "1.0.1", "1.0.0", + "2.219.0", + "2.218.1", "2.216.1", "2.216.0", "2.215.0", @@ -1482,6 +1530,9 @@ "2.208.0" ], "azurefunctiononkubernetes": [ + "0.219.0", + "0.218.0", + "0.217.0", "0.211.0", "0.210.0", "0.201.0", @@ -1508,9 +1559,16 @@ "0.160.7", "0.160.6", "0.160.5", - "0.160.4" + "0.160.4", + "1.219.0", + "1.218.0", + "1.217.1", + "1.217.0" ], "fd1aa5b9-400c-4f4b-9c0b-069ba74e53c6": [ + "0.219.0", + "0.218.0", + "0.217.0", "0.211.0", "0.210.0", "0.201.0", @@ -1541,10 +1599,15 @@ "0.160.3", "0.160.2", "0.160.1", - "0.160.0" + "0.160.0", + "1.219.0", + "1.218.0", + "1.217.1", + "1.217.0" ], "azurefunctionsonkubernetes": ["0.160.3", "0.160.2", "0.160.1", "0.160.0"], "azurefunction": [ + "1.218.0", "1.217.0", "1.198.0", "1.0.12", @@ -1559,6 +1622,7 @@ "1.0.3" ], "537fdb7a-a601-4537-aa70-92645a2b5ce4": [ + "1.218.0", "1.217.0", "1.198.0", "1.0.12", @@ -1645,6 +1709,8 @@ "2.0.0" ], "azurekeyvault": [ + "1.219.0", + "1.217.1", "1.217.0", "1.216.2", "1.216.1", @@ -1703,6 +1769,8 @@ "1.0.20", "1.0.19", "1.0.18", + "2.219.0", + "2.217.1", "2.217.0", "2.216.3", "2.216.2", @@ -1721,6 +1789,8 @@ "2.186.0" ], "1e244d32-2dd4-4165-96fb-b7441ca9331e": [ + "1.219.0", + "1.217.1", "1.217.0", "1.216.2", "1.216.1", @@ -1779,6 +1849,8 @@ "1.0.20", "1.0.19", "1.0.18", + "2.219.0", + "2.217.1", "2.217.0", "2.216.3", "2.216.2", @@ -1935,6 +2007,7 @@ "1.0.0" ], "azuremysqldeployment": [ + "1.217.1", "1.217.0", "1.216.1", "1.216.0", @@ -2015,6 +2088,7 @@ "1.0.1" ], "bd1bed02-f04e-11e7-8c3f-9a214cf093ae": [ + "1.217.1", "1.217.0", "1.216.1", "1.216.0", @@ -2149,6 +2223,7 @@ "0.0.1" ], "azurepowershell": [ + "2.218.0", "2.202.0", "2.198.0", "2.185.0", @@ -2180,6 +2255,7 @@ "2.1.2", "2.1.1", "2.1.0", + "3.218.0", "3.202.0", "3.198.0", "3.185.0", @@ -2226,6 +2302,8 @@ "3.0.5", "3.0.4", "3.0.3", + "4.218.0", + "4.217.1", "4.217.0", "4.216.1", "4.216.0", @@ -2303,6 +2381,8 @@ "4.0.61", "4.0.45", "4.0.43", + "5.218.0", + "5.217.1", "5.217.0", "5.216.1", "5.216.0", @@ -2344,6 +2424,7 @@ "5.162.0" ], "72a1931b-effb-4d2e-8fd8-f8472a07cb62": [ + "2.218.0", "2.202.0", "2.198.0", "2.185.0", @@ -2375,6 +2456,7 @@ "2.1.2", "2.1.1", "2.1.0", + "3.218.0", "3.202.0", "3.198.0", "3.185.0", @@ -2421,6 +2503,8 @@ "3.0.5", "3.0.4", "3.0.3", + "4.218.0", + "4.217.1", "4.217.0", "4.216.1", "4.216.0", @@ -2498,6 +2582,8 @@ "4.0.61", "4.0.45", "4.0.43", + "5.218.0", + "5.217.1", "5.217.0", "5.216.1", "5.216.0", @@ -2539,6 +2625,7 @@ "5.162.0" ], "azureresourcegroupdeployment": [ + "2.217.1", "2.217.0", "2.216.1", "2.216.0", @@ -2623,6 +2710,7 @@ "2.131.3" ], "94a74903-f93f-4075-884f-dc11f34058b4": [ + "2.217.1", "2.217.0", "2.216.1", "2.216.0", @@ -2705,6 +2793,8 @@ "2.136.0", "2.134.0", "2.131.3", + "3.218.0", + "3.217.1", "3.217.0", "3.216.1", "3.216.0", @@ -2764,6 +2854,8 @@ "3.0.0" ], "azureresourcemanagertemplatedeployment": [ + "3.218.0", + "3.217.1", "3.217.0", "3.216.1", "3.216.0", @@ -2823,6 +2915,7 @@ "3.0.0" ], "azurermwebappdeployment": [ + "3.217.1", "3.217.0", "3.216.1", "3.216.0", @@ -2878,6 +2971,7 @@ "3.4.2", "3.4.1", "3.4.0", + "4.217.2", "4.217.1", "4.217.0", "4.216.2", @@ -2992,6 +3086,7 @@ "4.1.7" ], "497d490f-eea7-4f2b-ab94-48d9c1acdcb1": [ + "3.217.1", "3.217.0", "3.216.1", "3.216.0", @@ -3047,6 +3142,7 @@ "3.4.2", "3.4.1", "3.4.0", + "4.217.2", "4.217.1", "4.217.0", "4.216.2", @@ -3161,6 +3257,7 @@ "4.1.7" ], "azurespringcloud": [ + "0.217.1", "0.217.0", "0.216.1", "0.216.0", @@ -3178,6 +3275,7 @@ "0.185.6" ], "5679292e-de0e-473a-948e-4874d2d8ef97": [ + "0.217.1", "0.217.0", "0.216.1", "0.216.0", @@ -3195,6 +3293,8 @@ "0.185.6" ], "azurestaticwebapp": [ + "0.219.0", + "0.217.0", "0.208.0", "0.203.0", "0.202.0", @@ -3205,6 +3305,8 @@ "0.1.0" ], "18aad896-e191-4720-88d6-8ced4806941a": [ + "0.219.0", + "0.217.0", "0.208.0", "0.203.0", "0.202.0", @@ -3215,6 +3317,8 @@ "0.1.0" ], "azurevmssdeployment": [ + "0.218.0", + "0.217.1", "0.217.0", "0.216.1", "0.216.0", @@ -3269,6 +3373,8 @@ "0.0.14" ], "4dda660c-b643-4598-a4a2-61080d0002d9": [ + "0.218.0", + "0.217.1", "0.217.0", "0.216.1", "0.216.0", @@ -3685,8 +3791,13 @@ "2.0.0" ], "cache": ["2.198.0", "2.0.1", "2.0.0"], - "cargoauthenticate": ["0.215.0", "0.214.2"], - "d1d75615-084d-4b9b-91a5-068b5f8c95a9": ["0.215.0", "0.214.2"], + "cargoauthenticate": ["0.218.0", "0.216.0", "0.215.0", "0.214.2"], + "d1d75615-084d-4b9b-91a5-068b5f8c95a9": [ + "0.218.0", + "0.216.0", + "0.215.0", + "0.214.2" + ], "chefknife": [ "1.198.0", "1.0.21", @@ -3938,6 +4049,7 @@ "1.140.0" ], "containerbuild": [ + "0.219.0", "0.217.0", "0.216.1", "0.216.0", @@ -3971,6 +4083,7 @@ "0.160.1" ], "8413c881-4959-43d5-8840-b4ea0ffc5cfe": [ + "0.219.0", "0.217.0", "0.216.1", "0.216.0", @@ -4004,6 +4117,7 @@ "0.160.1" ], "containerstructuretest": [ + "0.219.0", "0.216.0", "0.211.2", "0.211.1", @@ -4032,6 +4146,7 @@ "0.1.0" ], "39bc2c9b-55b7-4835-89cd-6cc699ef7220": [ + "0.219.0", "0.216.0", "0.211.2", "0.211.1", @@ -4360,6 +4475,7 @@ "2.1.35" ], "dockercompose": [ + "0.219.0", "0.214.0", "0.198.0", "0.183.0", @@ -4413,6 +4529,7 @@ "0.4.16" ], "6975e2d1-96d3-4afc-8a41-498b5d34ea19": [ + "0.219.0", "0.214.0", "0.198.0", "0.183.0", @@ -4466,6 +4583,7 @@ "0.4.16" ], "dockerinstaller": [ + "0.218.0", "0.217.0", "0.216.0", "0.214.0", @@ -4485,6 +4603,7 @@ "0.1.0" ], "8e038650-f7bf-11e8-8a6c-8fff434b4eff": [ + "0.218.0", "0.217.0", "0.216.0", "0.214.0", @@ -4504,6 +4623,8 @@ "0.1.0" ], "docker": [ + "0.219.1", + "0.219.0", "0.214.0", "0.209.0", "0.198.0", @@ -4549,6 +4670,8 @@ "0.3.14", "0.3.13", "0.3.12", + "1.219.1", + "1.219.0", "1.215.0", "1.210.0", "1.198.0", @@ -4610,6 +4733,8 @@ "1.0.2", "1.0.1", "1.0.0", + "2.219.1", + "2.219.0", "2.214.0", "2.212.1", "2.212.0", @@ -4671,6 +4796,8 @@ "2.150.0" ], "e28912f1-0114-4464-802a-a3a35437fd16": [ + "0.219.1", + "0.219.0", "0.214.0", "0.209.0", "0.198.0", @@ -4716,6 +4843,8 @@ "0.3.14", "0.3.13", "0.3.12", + "1.219.1", + "1.219.0", "1.215.0", "1.210.0", "1.198.0", @@ -4777,6 +4906,8 @@ "1.0.2", "1.0.1", "1.0.0", + "2.219.1", + "2.219.0", "2.214.0", "2.212.1", "2.212.0", @@ -4838,6 +4969,7 @@ "2.150.0" ], "dotnetcorecli": [ + "2.217.0", "2.216.0", "2.210.0", "2.214.0", @@ -4929,6 +5061,7 @@ "2.132.1" ], "5541a522-603c-47ad-91fc-a4b1d163081b": [ + "2.217.0", "2.216.0", "2.210.0", "2.214.0", @@ -5167,6 +5300,7 @@ "2.0.0" ], "downloadbuildartifacts": [ + "0.217.1", "0.217.0", "0.216.0", "0.212.0", @@ -5223,6 +5357,7 @@ "1.192.0" ], "a433f589-fce1-4460-9ee6-44a624aeb1fb": [ + "0.217.1", "0.217.0", "0.216.0", "0.212.0", @@ -5439,6 +5574,7 @@ "0.148.0" ], "downloadpackage": [ + "0.218.0", "0.215.0", "0.214.0", "0.214.1", @@ -5500,6 +5636,9 @@ "0.1.10", "0.1.9", "0.1.8", + "1.218.1", + "1.218.0", + "1.217.0", "1.216.0", "1.215.1", "1.215.0", @@ -5576,6 +5715,7 @@ "1.148.0" ], "8d6e8f7e-267d-442d-8c92-1f586864c62f": [ + "0.218.0", "0.215.0", "0.214.0", "0.214.1", @@ -5637,6 +5777,9 @@ "0.1.10", "0.1.9", "0.1.8", + "1.218.1", + "1.218.0", + "1.217.0", "1.216.0", "1.215.1", "1.215.0", @@ -6170,6 +6313,8 @@ "0.0.4", "0.0.2", "0.0.1", + "1.218.0", + "1.217.2", "1.217.1", "1.217.0", "1.211.1", @@ -6223,6 +6368,8 @@ "0.0.4", "0.0.2", "0.0.1", + "1.218.0", + "1.217.2", "1.217.1", "1.217.0", "1.211.1", @@ -6316,6 +6463,7 @@ "0.2.0" ], "gradle": [ + "2.219.0", "2.211.0", "2.208.0", "2.200.2", @@ -6360,6 +6508,7 @@ "2.137.0", "2.136.0", "2.135.0", + "3.219.0", "3.216.0", "3.208.0", "3.205.0", @@ -6369,6 +6518,7 @@ "3.192.0" ], "8d8eebd8-2b94-4c97-85af-839254cc6da4": [ + "2.219.0", "2.211.0", "2.208.0", "2.200.2", @@ -6413,6 +6563,7 @@ "2.137.0", "2.136.0", "2.135.0", + "3.219.0", "3.216.0", "3.208.0", "3.205.0", @@ -6510,6 +6661,10 @@ "1.0.0" ], "helmdeploy": [ + "0.218.0", + "0.217.3", + "0.217.2", + "0.217.1", "0.217.0", "0.216.1", "0.216.0", @@ -6628,6 +6783,10 @@ "0.1.8" ], "afa7d54d-537b-4dc8-b60a-e0eeea2c9a87": [ + "0.218.0", + "0.217.3", + "0.217.2", + "0.217.1", "0.217.0", "0.216.1", "0.216.0", @@ -6746,6 +6905,7 @@ "0.1.8" ], "helminstaller": [ + "0.218.0", "0.215.0", "0.213.0", "0.210.0", @@ -6781,6 +6941,7 @@ "0.1.5", "0.1.4", "0.1.3", + "1.218.0", "1.215.0", "1.210.0", "1.198.0", @@ -6818,6 +6979,7 @@ "1.150.0" ], "068d5909-43e6-48c5-9e01-7c8a94816220": [ + "0.218.0", "0.215.0", "0.213.0", "0.210.0", @@ -6853,6 +7015,7 @@ "0.1.5", "0.1.4", "0.1.3", + "1.218.0", "1.215.0", "1.210.0", "1.198.0", @@ -6960,6 +7123,7 @@ "1.2.1" ], "iiswebappdeploymentonmachinegroup": [ + "0.217.0", "0.216.0", "0.215.0", "0.208.0", @@ -7005,6 +7169,7 @@ "0.0.39" ], "1b467810-6725-4b6d-accd-886174c09bba": [ + "0.217.0", "0.216.0", "0.215.0", "0.208.0", @@ -7296,6 +7461,7 @@ "0.119.0" ], "invokerestapi": [ + "1.218.0", "1.217.0", "1.198.0", "1.152.3", @@ -7311,6 +7477,7 @@ "1.0.1" ], "9c3e8943-130d-4c78-ac63-8af81df62dfb": [ + "1.218.0", "1.217.0", "1.198.0", "1.152.3", @@ -7326,6 +7493,8 @@ "1.0.1" ], "javatoolinstaller": [ + "0.218.0", + "0.217.1", "0.217.0", "0.216.2", "0.216.1", @@ -7387,6 +7556,8 @@ "0.134.1" ], "c0e0b74f-0931-47c7-ac27-7c5a19456a36": [ + "0.218.0", + "0.217.1", "0.217.0", "0.216.2", "0.216.1", @@ -7448,6 +7619,7 @@ "0.134.1" ], "jenkinsdownloadartifacts": [ + "1.217.1", "1.217.0", "1.216.1", "1.216.0", @@ -7487,6 +7659,7 @@ "1.135.0" ], "86c37a92-59a7-444b-93c7-220fcf91e29c": [ + "1.217.1", "1.217.0", "1.216.1", "1.216.0", @@ -7586,6 +7759,7 @@ "2.131.0" ], "kubectlinstaller": [ + "0.218.0", "0.210.0", "0.198.0", "0.181.0", @@ -7624,6 +7798,7 @@ "0.150.0" ], "8413c881-4959-43d5-8840-b4ea0ffc5cfd": [ + "0.218.0", "0.210.0", "0.198.0", "0.181.0", @@ -7662,6 +7837,8 @@ "0.150.0" ], "kubernetesmanifest": [ + "0.219.0", + "0.218.0", "0.212.0", "0.211.0", "0.210.0", @@ -7757,9 +7934,12 @@ "0.0.10", "0.0.1", "0.0.33", - "0.0.30" + "0.0.30", + "1.219.0" ], "dee316a2-586f-4def-be79-488a1f503dfe": [ + "0.219.0", + "0.218.0", "0.212.0", "0.211.0", "0.210.0", @@ -7851,7 +8031,8 @@ "0.0.11", "0.0.5", "0.0.4", - "1.0.4" + "1.0.4", + "1.219.0" ], "kubernetesmanifestbased": ["1.0.4", "0.0.1", "0.0.11"], "dee316a2-586f-4def-be79-488a1f503dee": [ @@ -7863,6 +8044,9 @@ "0.0.30" ], "kubernetes": [ + "0.219.0", + "0.218.1", + "0.218.0", "0.216.0", "0.214.0", "0.213.0", @@ -7928,6 +8112,8 @@ "0.1.23", "0.1.22", "0.1.21", + "1.219.0", + "1.218.0", "1.216.0", "1.214.0", "1.213.1", @@ -8061,6 +8247,9 @@ "1.0.0" ], "cbc316a2-586f-4def-be79-488a1f503564": [ + "0.219.0", + "0.218.1", + "0.218.0", "0.216.0", "0.214.0", "0.213.0", @@ -8126,6 +8315,8 @@ "0.1.23", "0.1.22", "0.1.21", + "1.219.0", + "1.218.0", "1.216.0", "1.214.0", "1.213.1", @@ -8295,6 +8486,8 @@ "0.0.1" ], "mavenauthenticate": [ + "0.218.1", + "0.218.0", "0.213.0", "0.210.0", "0.198.0", @@ -8316,6 +8509,8 @@ "0.1.28" ], "d4b964f9-ea90-41bb-9526-29589628ad90": [ + "0.218.1", + "0.218.0", "0.213.0", "0.210.0", "0.198.0", @@ -8414,6 +8609,7 @@ "2.137.1", "2.137.0", "2.135.0", + "3.219.0", "3.214.0", "3.214.1", "3.211.0", @@ -8499,6 +8695,7 @@ "3.139.2", "3.139.1", "3.139.0", + "4.219.0", "4.214.1", "4.214.0", "4.212.0", @@ -8582,6 +8779,7 @@ "2.137.1", "2.137.0", "2.135.0", + "3.219.0", "3.214.0", "3.214.1", "3.211.0", @@ -8667,6 +8865,7 @@ "3.139.2", "3.139.1", "3.139.0", + "4.219.0", "4.214.1", "4.214.0", "4.212.0", @@ -8826,7 +9025,10 @@ "1.0.1", "1.0.0" ], + "nodetaskrunnerinstaller": ["0.218.0"], + "31c75b2b-bcdf-4706-8d7c-4da6a1959bc2": ["0.218.0"], "nodetool": [ + "0.218.0", "0.213.0", "0.211.0", "0.210.1", @@ -8858,6 +9060,7 @@ "0.124.0" ], "31c75bbb-bcdf-4706-8d7c-4da6a1959bc2": [ + "0.218.0", "0.213.0", "0.211.0", "0.210.1", @@ -8933,6 +9136,7 @@ "1.0.0" ], "npmauthenticate": [ + "0.218.0", "0.216.1", "0.216.0", "0.215.0", @@ -8991,6 +9195,7 @@ "0.0.2" ], "ad884ca2-732e-4b85-b2d3-ed71bcbd2788": [ + "0.218.0", "0.216.1", "0.216.0", "0.215.0", @@ -9049,6 +9254,7 @@ "0.0.2" ], "npm": [ + "0.218.0", "0.215.1", "0.215.0", "0.210.0", @@ -9070,6 +9276,7 @@ "0.2.25", "0.2.24", "0.2.23", + "1.218.0", "1.215.1", "1.215.0", "1.213.0", @@ -9143,6 +9350,7 @@ "1.0.15" ], "fe47e961-9fa8-4106-8639-368c022d43ad": [ + "0.218.0", "0.215.1", "0.215.0", "0.210.0", @@ -9164,6 +9372,7 @@ "0.2.25", "0.2.24", "0.2.23", + "1.218.0", "1.215.1", "1.215.0", "1.213.0", @@ -9489,6 +9698,7 @@ "0.2.35", "0.2.34", "0.2.33", + "1.216.0", "1.214.0", "1.208.0", "1.206.0", @@ -9553,6 +9763,8 @@ "0.1.75" ], "nugetpublisher": [ + "0.218.1", + "0.218.0", "0.208.1", "0.214.0", "0.208.0", @@ -9605,6 +9817,8 @@ "0.2.37" ], "333b11bd-d341-40d9-afcf-b32d5ce6f25b": [ + "0.218.1", + "0.218.0", "0.208.1", "0.214.0", "0.208.0", @@ -9657,6 +9871,7 @@ "0.2.37" ], "nugetrestore": [ + "1.216.0", "1.214.0", "1.208.0", "1.206.0", @@ -9679,6 +9894,7 @@ "1.0.3" ], "nugettoolinstaller": [ + "0.218.0", "0.215.0", "0.208.1", "0.214.0", @@ -9722,6 +9938,7 @@ "0.1.7", "0.1.6", "0.1.5", + "1.218.0", "1.215.0", "1.208.1", "1.214.0", @@ -9760,6 +9977,7 @@ "1.149.1" ], "2c65196a-54fd-4a02-9be8-d9d1837b7c5d": [ + "0.218.0", "0.215.0", "0.208.1", "0.214.0", @@ -9803,6 +10021,7 @@ "0.1.7", "0.1.6", "0.1.5", + "1.218.0", "1.215.0", "1.208.1", "1.214.0", @@ -9841,6 +10060,8 @@ "1.149.1" ], "nuget": [ + "0.218.1", + "0.218.0", "0.208.1", "0.214.0", "0.208.0", @@ -9893,6 +10114,8 @@ "0.1.3" ], "2661b7e5-00f9-4de1-ba41-04e68d70b528": [ + "0.218.1", + "0.218.0", "0.208.1", "0.214.0", "0.208.0", @@ -9961,6 +10184,7 @@ "0.157.0" ], "packerbuild": [ + "0.217.1", "0.217.0", "0.216.3", "0.216.2", @@ -10035,6 +10259,7 @@ "1.0.0" ], "845fd4f4-642d-4694-8514-047948a5a556": [ + "0.217.1", "0.217.0", "0.216.3", "0.216.2", @@ -10162,6 +10387,8 @@ "0.1.2", "0.1.1", "0.1.0", + "1.218.1", + "1.218.0", "1.213.0", "1.214.0", "1.206.0", @@ -10232,6 +10459,8 @@ "0.1.2", "0.1.1", "0.1.0", + "1.218.1", + "1.218.0", "1.213.0", "1.214.0", "1.206.0", @@ -10407,6 +10636,7 @@ "1.135.0" ], "publishcodecoverageresults": [ + "1.219.0", "1.200.0", "1.198.0", "1.189.0", @@ -10443,12 +10673,14 @@ "1.139.1", "1.139.0", "1.131.0", + "2.218.0", "2.217.0", "2.215.0", "2.198.0", "2.159.0" ], "2a7ebc54-c13e-490e-81a5-d7561ab7cd97": [ + "1.219.0", "1.200.0", "1.198.0", "1.189.0", @@ -10485,6 +10717,7 @@ "1.139.1", "1.139.0", "1.131.0", + "2.218.0", "2.217.0", "2.215.0", "2.198.0", @@ -10528,6 +10761,7 @@ ], "publishpipelinemetadata": [ "0.216.0", + "0.217.0", "0.212.0", "0.211.0", "0.210.0", @@ -10546,6 +10780,7 @@ ], "01fa79eb-4c54-41b5-a16f-5cd8d60db88d": [ "0.216.0", + "0.217.0", "0.212.0", "0.211.0", "0.210.0", @@ -10625,6 +10860,7 @@ "1.0.39", "1.0.38", "1.0.37", + "2.216.2", "2.216.1", "2.216.0", "2.210.0", @@ -10712,6 +10948,7 @@ "1.0.39", "1.0.38", "1.0.37", + "2.216.2", "2.216.1", "2.216.0", "2.210.0", @@ -10783,6 +11020,7 @@ "2.0.5" ], "publishtoazureservicebus": [ + "1.217.0", "1.198.0", "1.0.17", "1.0.16", @@ -10799,6 +11037,7 @@ "1.0.5" ], "ba761f24-cbd6-48cb-92f3-fc13396405b1": [ + "1.217.0", "1.198.0", "1.0.17", "1.0.16", @@ -11221,6 +11460,8 @@ "2.1.3" ], "sqlazuredacpacdeployment": [ + "1.219.0", + "1.218.0", "1.217.0", "1.216.0", "1.214.0", @@ -11272,6 +11513,8 @@ "1.1.30" ], "ce85a08b-a538-4d2b-8589-1d37a9ab970f": [ + "1.219.0", + "1.218.0", "1.217.0", "1.216.0", "1.214.0", @@ -11477,6 +11720,7 @@ "0.121.0" ], "twineauthenticate": [ + "0.218.0", "0.214.0", "0.214.1", "0.208.2", @@ -11531,6 +11775,8 @@ "0.1.2", "0.1.1", "0.1.0", + "1.218.1", + "1.218.0", "1.213.0", "1.211.0", "1.208.0", @@ -11548,6 +11794,7 @@ "1.0.0" ], "e4d58330-c771-11e8-8f8f-81fbb42e2824": [ + "0.218.0", "0.214.0", "0.214.1", "0.208.2", @@ -11602,6 +11849,8 @@ "0.1.2", "0.1.1", "0.1.0", + "1.218.1", + "1.218.0", "1.213.0", "1.211.0", "1.208.0", @@ -11619,6 +11868,7 @@ "1.0.0" ], "universalpackages": [ + "0.218.0", "0.215.0", "0.214.0", "0.214.1", @@ -11689,6 +11939,7 @@ "0.0.1" ], "e0b79640-8625-11e8-91be-db2878ff888a": [ + "0.218.0", "0.215.0", "0.214.0", "0.214.1", diff --git a/data/ubuntu-distro-info.json b/data/ubuntu-distro-info.json index 2127a7dfa71d3a..602853163d9758 100644 --- a/data/ubuntu-distro-info.json +++ b/data/ubuntu-distro-info.json @@ -202,8 +202,8 @@ "series": "bionic", "created": "2017-10-19", "release": "2018-04-26", - "eol": "2023-04-26", - "eol_server": "2023-04-26", + "eol": "2023-05-31", + "eol_server": "2023-05-31", "eol_esm": "2028-04-26" }, "v18.10": { @@ -232,8 +232,8 @@ "series": "focal", "created": "2019-10-17", "release": "2020-04-23", - "eol": "2025-04-23", - "eol_server": "2025-04-23", + "eol": "2025-05-29", + "eol_server": "2025-05-29", "eol_esm": "2030-04-23" }, "v20.10": { @@ -262,8 +262,8 @@ "series": "jammy", "created": "2021-10-14", "release": "2022-04-21", - "eol": "2027-04-21", - "eol_server": "2027-04-21", + "eol": "2027-06-01", + "eol_server": "2027-06-01", "eol_esm": "2032-04-21" }, "v22.10": { From a19aea38011063e9d7ae8d5344bca73c5313d225 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 12 Mar 2023 17:02:10 +0000 Subject: [PATCH 134/228] chore(deps): update dependency lint-staged to v13.1.3 (#20884) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 51 ++++++++++++++++++++++++++------------------------- 2 files changed, 27 insertions(+), 26 deletions(-) diff --git a/package.json b/package.json index f1315f821706d2..75d1e3e672e27d 100644 --- a/package.json +++ b/package.json @@ -315,7 +315,7 @@ "jest-extended": "3.2.4", "jest-junit": "15.0.0", "jest-mock-extended": "3.0.3", - "lint-staged": "13.1.2", + "lint-staged": "13.1.3", "markdownlint-cli2": "0.6.0", "memfs": "3.4.13", "mock-fs": "5.2.0", diff --git a/yarn.lock b/yarn.lock index e433d15930336e..bdb48c405ad9de 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4198,11 +4198,6 @@ commander@10.0.0, commander@^10.0.0: resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.0.tgz#71797971162cd3cf65f0b9d24eb28f8d303acdf1" integrity sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA== -commander@^9.4.1: - version "9.5.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-9.5.0.tgz#bc08d1eb5cedf7ccb797a96199d41c7bc3e60d30" - integrity sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ== - common-ancestor-path@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz#4f7d2d1394d91b7abdf51871c62f71eadb0182a7" @@ -7037,10 +7032,10 @@ lie@3.1.1: dependencies: immediate "~3.0.5" -lilconfig@2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.6.tgz#32a384558bd58af3d4c6e077dd1ad1d397bc69d4" - integrity sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg== +lilconfig@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" + integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== lines-and-columns@^1.1.6: version "1.2.4" @@ -7054,29 +7049,30 @@ linkify-it@^4.0.1: dependencies: uc.micro "^1.0.1" -lint-staged@13.1.2: - version "13.1.2" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.1.2.tgz#443636a0cfd834d5518d57d228130dc04c83d6fb" - integrity sha512-K9b4FPbWkpnupvK3WXZLbgu9pchUJ6N7TtVZjbaPsoizkqFUDkUReUL25xdrCljJs7uLUF3tZ7nVPeo/6lp+6w== +lint-staged@13.1.3: + version "13.1.3" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.1.3.tgz#5bf0ff98725e3354fb16dcd252b9a5e66bc8dcc7" + integrity sha512-PLbSCYUvW8lcwJ9koMFerBrJ16GsNivu1eDahMKgYlFa0f2rr2+rGVjj27L+1rg9JAz+DZesB+kXCAWHQJN9VQ== dependencies: cli-truncate "^3.1.0" colorette "^2.0.19" - commander "^9.4.1" + commander "^10.0.0" debug "^4.3.4" - execa "^6.1.0" - lilconfig "2.0.6" - listr2 "^5.0.5" + execa "^7.0.0" + lilconfig "2.1.0" + listr2 "^5.0.7" micromatch "^4.0.5" normalize-path "^3.0.0" - object-inspect "^1.12.2" + object-inspect "^1.12.3" pidtree "^0.6.0" string-argv "^0.3.1" - yaml "^2.1.3" + supports-color "9.3.1" + yaml "^2.2.1" -listr2@^5.0.5: - version "5.0.7" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-5.0.7.tgz#de69ccc4caf6bea7da03c74f7a2ffecf3904bd53" - integrity sha512-MD+qXHPmtivrHIDRwPYdfNkrzqDiuaKU/rfBcec3WMyMF3xylQj3jMq344OtvQxz7zaCFViRAeqlr2AFhPvXHw== +listr2@^5.0.7: + version "5.0.8" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-5.0.8.tgz#a9379ffeb4bd83a68931a65fb223a11510d6ba23" + integrity sha512-mC73LitKHj9w6v30nLNGPetZIlfpUniNSsxxrbaPcWOjDb92SHPzJPi/t+v1YC/lxKz/AJ9egOjww0qUuFxBpA== dependencies: cli-truncate "^2.1.0" colorette "^2.0.19" @@ -8080,7 +8076,7 @@ nth-check@^2.0.1: dependencies: boolbase "^1.0.0" -object-inspect@^1.12.2, object-inspect@^1.9.0: +object-inspect@^1.12.2, object-inspect@^1.12.3, object-inspect@^1.9.0: version "1.12.3" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== @@ -9637,6 +9633,11 @@ strnum@^1.0.5: resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db" integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA== +supports-color@9.3.1: + version "9.3.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-9.3.1.tgz#34e4ad3c71c9a39dae3254ecc46c9b74e89e15a6" + integrity sha512-knBY82pjmnIzK3NifMo3RxEIRD9E0kIzV4BKcyTZ9+9kWgLMxd4PrsTSMoFQUabgRBbF8KOLRDCyKgNV+iK44Q== + supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -10397,7 +10398,7 @@ yallist@^3.0.2: resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== -yaml@2.2.1, yaml@^2.1.3: +yaml@2.2.1, yaml@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.2.1.tgz#3014bf0482dcd15147aa8e56109ce8632cd60ce4" integrity sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw== From 7dd6b100dd57f6b7520032f99da9e9c7240b4c54 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 13 Mar 2023 01:05:35 +0000 Subject: [PATCH 135/228] docs: update references to renovate/renovate to v35.2.0 (#20891) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- docs/usage/docker.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage/docker.md b/docs/usage/docker.md index 992af1ddff86ba..7292511236d250 100644 --- a/docs/usage/docker.md +++ b/docs/usage/docker.md @@ -388,7 +388,7 @@ To get access to the token a custom Renovate Docker image is needed that include The Dockerfile to create such an image can look like this: ```Dockerfile -FROM renovate/renovate:35.1.2 +FROM renovate/renovate:35.2.0 # Include the "Docker tip" which you can find here https://cloud.google.com/sdk/docs/install # under "Installation" for "Debian/Ubuntu" RUN ... From 3f9bb2712afb6095fd704643c9f158f0326fef75 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 13 Mar 2023 05:48:35 +0000 Subject: [PATCH 136/228] chore(deps): update actions/cache action to v3.3.1 (#20895) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c9d97977483a9f..0efe1f8324ee56 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -84,7 +84,7 @@ jobs: run: yarn build - name: Cache jest cache - uses: actions/cache@940f3d7cf195ba83374c77632d1e2cbb2f24ae68 # v3.3.0 + uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3.3.1 with: path: .cache/jest key: ${{ runner.os }}-${{ matrix.node-version }}-jest-${{ hashFiles('yarn.lock') }} From 88a305278d1b93bf31abf0af863624b5db439694 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 13 Mar 2023 05:54:33 +0000 Subject: [PATCH 137/228] chore(deps): lock file maintenance (#20892) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 843 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 493 insertions(+), 350 deletions(-) diff --git a/yarn.lock b/yarn.lock index bdb48c405ad9de..31690f3069a726 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11,9 +11,9 @@ uuid "^8.3.2" "@actions/http-client@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@actions/http-client/-/http-client-2.0.1.tgz#873f4ca98fe32f6839462a6f046332677322f99c" - integrity sha512-PIXiMVtz6VvyaRsGY268qvj57hXQEpsYogYOu2nrQhlf+XCGmZstmuZBbAybUl1nQGnvS1k1eEsQ69ZoD7xlSw== + version "2.1.0" + resolved "https://registry.yarnpkg.com/@actions/http-client/-/http-client-2.1.0.tgz#b6d8c3934727d6a50d10d19f00a711a964599a9f" + integrity sha512-BonhODnXr3amchh4qkmjPMUO8mFi/zLaaCeCAJZqch8iQqyDnVIkySjB38VHAC8IJ+bnlgfOqlhpyCUZHlQsqw== dependencies: tunnel "^0.0.6" @@ -1032,13 +1032,20 @@ "@aws-sdk/types" "3.272.0" tslib "^2.3.1" -"@aws-sdk/types@3.272.0", "@aws-sdk/types@^3.222.0": +"@aws-sdk/types@3.272.0": version "3.272.0" resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.272.0.tgz#83670e4009c2e72f1fdf55816c55c9f8b5935e0a" integrity sha512-MmmL6vxMGP5Bsi+4wRx4mxYlU/LX6M0noOXrDh/x5FfG7/4ZOar/nDxqDadhJtNM88cuWVHZWY59P54JzkGWmA== dependencies: tslib "^2.3.1" +"@aws-sdk/types@^3.222.0": + version "3.289.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.289.0.tgz#c1042bcefa21e90e754ba665094599fa8a7f35f8" + integrity sha512-wwUC+VwoNlEkgDzK/aJG3+zeMcYRcYFQV4mbZaicYdp3v8hmkUkJUhyxuZYl/FmY46WG+DYv+/Y3NilgfsE+Wg== + dependencies: + tslib "^2.3.1" + "@aws-sdk/url-parser@3.272.0": version "3.272.0" resolved "https://registry.yarnpkg.com/@aws-sdk/url-parser/-/url-parser-3.272.0.tgz#1a21abb8815ccc2c1344a3dfab0343f4e3eff4d3" @@ -1568,13 +1575,13 @@ "@jridgewell/trace-mapping" "0.3.9" "@eslint/eslintrc@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.0.tgz#943309d8697c52fc82c076e90c1c74fbbe69dbff" - integrity sha512-fluIaaV+GyV24CCu/ggiHdV+j4RNh85yQnAYS/G2mZODZgGmmlrgCydjUcV3YvxCm9x8nMAfThsqTni4KiXT4A== + version "2.0.1" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.1.tgz#7888fe7ec8f21bc26d646dbd2c11cd776e21192d" + integrity sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^9.4.0" + espree "^9.5.0" globals "^13.19.0" ignore "^5.2.0" import-fresh "^3.2.1" @@ -1642,61 +1649,61 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.4.3.tgz#1f25a99f7f860e4c46423b5b1038262466fadde1" - integrity sha512-W/o/34+wQuXlgqlPYTansOSiBnuxrTv61dEVkA6HNmpcgHLUjfaUbdqt6oVvOzaawwo9IdW9QOtMgQ1ScSZC4A== +"@jest/console@^29.4.3", "@jest/console@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.5.0.tgz#593a6c5c0d3f75689835f1b3b4688c4f8544cb57" + integrity sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ== dependencies: - "@jest/types" "^29.4.3" + "@jest/types" "^29.5.0" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^29.4.3" - jest-util "^29.4.3" + jest-message-util "^29.5.0" + jest-util "^29.5.0" slash "^3.0.0" -"@jest/core@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.4.3.tgz#829dd65bffdb490de5b0f69e97de8e3b5eadd94b" - integrity sha512-56QvBq60fS4SPZCuM7T+7scNrkGIe7Mr6PVIXUpu48ouvRaWOFqRPV91eifvFM0ay2HmfswXiGf97NGUN5KofQ== +"@jest/core@^29.4.3", "@jest/core@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.5.0.tgz#76674b96904484e8214614d17261cc491e5f1f03" + integrity sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ== dependencies: - "@jest/console" "^29.4.3" - "@jest/reporters" "^29.4.3" - "@jest/test-result" "^29.4.3" - "@jest/transform" "^29.4.3" - "@jest/types" "^29.4.3" + "@jest/console" "^29.5.0" + "@jest/reporters" "^29.5.0" + "@jest/test-result" "^29.5.0" + "@jest/transform" "^29.5.0" + "@jest/types" "^29.5.0" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" ci-info "^3.2.0" exit "^0.1.2" graceful-fs "^4.2.9" - jest-changed-files "^29.4.3" - jest-config "^29.4.3" - jest-haste-map "^29.4.3" - jest-message-util "^29.4.3" + jest-changed-files "^29.5.0" + jest-config "^29.5.0" + jest-haste-map "^29.5.0" + jest-message-util "^29.5.0" jest-regex-util "^29.4.3" - jest-resolve "^29.4.3" - jest-resolve-dependencies "^29.4.3" - jest-runner "^29.4.3" - jest-runtime "^29.4.3" - jest-snapshot "^29.4.3" - jest-util "^29.4.3" - jest-validate "^29.4.3" - jest-watcher "^29.4.3" + jest-resolve "^29.5.0" + jest-resolve-dependencies "^29.5.0" + jest-runner "^29.5.0" + jest-runtime "^29.5.0" + jest-snapshot "^29.5.0" + jest-util "^29.5.0" + jest-validate "^29.5.0" + jest-watcher "^29.5.0" micromatch "^4.0.4" - pretty-format "^29.4.3" + pretty-format "^29.5.0" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.4.3.tgz#9fe2f3169c3b33815dc4bd3960a064a83eba6548" - integrity sha512-dq5S6408IxIa+lr54zeqce+QgI+CJT4nmmA+1yzFgtcsGK8c/EyiUb9XQOgz3BMKrRDfKseeOaxj2eO8LlD3lA== +"@jest/environment@^29.4.3", "@jest/environment@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.5.0.tgz#9152d56317c1fdb1af389c46640ba74ef0bb4c65" + integrity sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ== dependencies: - "@jest/fake-timers" "^29.4.3" - "@jest/types" "^29.4.3" + "@jest/fake-timers" "^29.5.0" + "@jest/types" "^29.5.0" "@types/node" "*" - jest-mock "^29.4.3" + jest-mock "^29.5.0" "@jest/expect-utils@29.4.1": version "29.4.1" @@ -1705,34 +1712,34 @@ dependencies: jest-get-type "^29.2.0" -"@jest/expect-utils@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.4.3.tgz#95ce4df62952f071bcd618225ac7c47eaa81431e" - integrity sha512-/6JWbkxHOP8EoS8jeeTd9dTfc9Uawi+43oLKHfp6zzux3U2hqOOVnV3ai4RpDYHOccL6g+5nrxpoc8DmJxtXVQ== +"@jest/expect-utils@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.5.0.tgz#f74fad6b6e20f924582dc8ecbf2cb800fe43a036" + integrity sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg== dependencies: jest-get-type "^29.4.3" -"@jest/expect@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.4.3.tgz#d31a28492e45a6bcd0f204a81f783fe717045c6e" - integrity sha512-iktRU/YsxEtumI9zsPctYUk7ptpC+AVLLk1Ax3AsA4g1C+8OOnKDkIQBDHtD5hA/+VtgMd5AWI5gNlcAlt2vxQ== +"@jest/expect@^29.4.3", "@jest/expect@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.5.0.tgz#80952f5316b23c483fbca4363ce822af79c38fba" + integrity sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g== dependencies: - expect "^29.4.3" - jest-snapshot "^29.4.3" + expect "^29.5.0" + jest-snapshot "^29.5.0" -"@jest/fake-timers@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.4.3.tgz#31e982638c60fa657d310d4b9d24e023064027b0" - integrity sha512-4Hote2MGcCTWSD2gwl0dwbCpBRHhE6olYEuTj8FMowdg3oQWNKr2YuxenPQYZ7+PfqPY1k98wKDU4Z+Hvd4Tiw== +"@jest/fake-timers@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.5.0.tgz#d4d09ec3286b3d90c60bdcd66ed28d35f1b4dc2c" + integrity sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg== dependencies: - "@jest/types" "^29.4.3" + "@jest/types" "^29.5.0" "@sinonjs/fake-timers" "^10.0.2" "@types/node" "*" - jest-message-util "^29.4.3" - jest-mock "^29.4.3" - jest-util "^29.4.3" + jest-message-util "^29.5.0" + jest-mock "^29.5.0" + jest-util "^29.5.0" -"@jest/globals@29.4.3", "@jest/globals@^29.4.3": +"@jest/globals@29.4.3": version "29.4.3" resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.4.3.tgz#63a2c4200d11bc6d46f12bbe25b07f771fce9279" integrity sha512-8BQ/5EzfOLG7AaMcDh7yFCbfRLtsc+09E1RQmRBI4D6QQk4m6NSK/MXo+3bJrBN0yU8A2/VIcqhvsOLFmziioA== @@ -1742,7 +1749,17 @@ "@jest/types" "^29.4.3" jest-mock "^29.4.3" -"@jest/reporters@29.4.3", "@jest/reporters@^29.4.3": +"@jest/globals@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.5.0.tgz#6166c0bfc374c58268677539d0c181f9c1833298" + integrity sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ== + dependencies: + "@jest/environment" "^29.5.0" + "@jest/expect" "^29.5.0" + "@jest/types" "^29.5.0" + jest-mock "^29.5.0" + +"@jest/reporters@29.4.3": version "29.4.3" resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.4.3.tgz#0a68a0c0f20554760cc2e5443177a0018969e353" integrity sha512-sr2I7BmOjJhyqj9ANC6CTLsL4emMoka7HkQpcoMRlhCbQJjz2zsRzw0BDPiPyEFDXAbxKgGFYuQZiSJ1Y6YoTg== @@ -1772,6 +1789,36 @@ strip-ansi "^6.0.0" v8-to-istanbul "^9.0.1" +"@jest/reporters@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.5.0.tgz#985dfd91290cd78ddae4914ba7921bcbabe8ac9b" + integrity sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^29.5.0" + "@jest/test-result" "^29.5.0" + "@jest/transform" "^29.5.0" + "@jest/types" "^29.5.0" + "@jridgewell/trace-mapping" "^0.3.15" + "@types/node" "*" + chalk "^4.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.3" + graceful-fs "^4.2.9" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^5.1.0" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.1.3" + jest-message-util "^29.5.0" + jest-util "^29.5.0" + jest-worker "^29.5.0" + slash "^3.0.0" + string-length "^4.0.1" + strip-ansi "^6.0.0" + v8-to-istanbul "^9.0.1" + "@jest/schemas@^29.4.3": version "29.4.3" resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.3.tgz#39cf1b8469afc40b6f5a2baaa146e332c4151788" @@ -1788,7 +1835,7 @@ callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@29.4.3", "@jest/test-result@^29.4.3": +"@jest/test-result@29.4.3": version "29.4.3" resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.4.3.tgz#e13d973d16c8c7cc0c597082d5f3b9e7f796ccb8" integrity sha512-Oi4u9NfBolMq9MASPwuWTlC5WvmNRwI4S8YrQg5R5Gi47DYlBe3sh7ILTqi/LGrK1XUE4XY9KZcQJTH1WJCLLA== @@ -1798,41 +1845,51 @@ "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.4.3.tgz#0862e876a22993385a0f3e7ea1cc126f208a2898" - integrity sha512-yi/t2nES4GB4G0mjLc0RInCq/cNr9dNwJxcGg8sslajua5Kb4kmozAc+qPLzplhBgfw1vLItbjyHzUN92UXicw== +"@jest/test-result@^29.4.3", "@jest/test-result@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.5.0.tgz#7c856a6ca84f45cc36926a4e9c6b57f1973f1408" + integrity sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ== dependencies: - "@jest/test-result" "^29.4.3" + "@jest/console" "^29.5.0" + "@jest/types" "^29.5.0" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-sequencer@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz#34d7d82d3081abd523dbddc038a3ddcb9f6d3cc4" + integrity sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ== + dependencies: + "@jest/test-result" "^29.5.0" graceful-fs "^4.2.9" - jest-haste-map "^29.4.3" + jest-haste-map "^29.5.0" slash "^3.0.0" -"@jest/transform@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.4.3.tgz#f7d17eac9cb5bb2e1222ea199c7c7e0835e0c037" - integrity sha512-8u0+fBGWolDshsFgPQJESkDa72da/EVwvL+II0trN2DR66wMwiQ9/CihaGfHdlLGFzbBZwMykFtxuwFdZqlKwg== +"@jest/transform@^29.4.3", "@jest/transform@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.5.0.tgz#cf9c872d0965f0cbd32f1458aa44a2b1988b00f9" + integrity sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^29.4.3" + "@jest/types" "^29.5.0" "@jridgewell/trace-mapping" "^0.3.15" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^2.0.0" fast-json-stable-stringify "^2.1.0" graceful-fs "^4.2.9" - jest-haste-map "^29.4.3" + jest-haste-map "^29.5.0" jest-regex-util "^29.4.3" - jest-util "^29.4.3" + jest-util "^29.5.0" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" write-file-atomic "^4.0.2" -"@jest/types@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.4.3.tgz#9069145f4ef09adf10cec1b2901b2d390031431f" - integrity sha512-bPYfw8V65v17m2Od1cv44FH+SiKW7w2Xu7trhcdTLUmSv85rfKsP+qXSjO4KGJr4dtPSzl/gvslZBXctf1qGEA== +"@jest/types@^29.4.3", "@jest/types@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.5.0.tgz#f59ef9b031ced83047c67032700d8c807d6e1593" + integrity sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog== dependencies: "@jest/schemas" "^29.4.3" "@types/istanbul-lib-coverage" "^2.0.0" @@ -2358,6 +2415,11 @@ tiny-glob "^0.2.9" tslib "^2.4.0" +"@pnpm/config.env-replace@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@pnpm/config.env-replace/-/config.env-replace-1.0.0.tgz#c76fa65847c9554e88d910f264c2ba9a1575e833" + integrity sha512-ZVPVDi1E8oeXlYqkGRtX0CkzLTwE2zt62bjWaWKaAvI8NZqHzlMvGeSNDpW+JB3+aKanYb4UETJOF1/CxGPemA== + "@pnpm/constants@6.1.0": version "6.1.0" resolved "https://registry.yarnpkg.com/@pnpm/constants/-/constants-6.1.0.tgz#2db43ae0e029095df7959bc640081beae38a631b" @@ -2384,11 +2446,12 @@ dependencies: graceful-fs "4.2.10" -"@pnpm/npm-conf@^1.0.4": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@pnpm/npm-conf/-/npm-conf-1.0.5.tgz#3475541fb71d7b6ce68acaaa3392eae9fedf3276" - integrity sha512-hD8ml183638O3R6/Txrh0L8VzGOrFXgRtRDG4qQC4tONdZ5Z1M+tlUUDUvrjYdmK6G+JTBTeaCLMna11cXzi8A== +"@pnpm/npm-conf@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@pnpm/npm-conf/-/npm-conf-2.1.0.tgz#1bbecd961a1ea447f209556728e2dcadddb0bca6" + integrity sha512-Oe6ntvgsMTE3hDIqy6sajqHF+MnzJrOF06qC2QSiUEybLL7cp6tjoKUa32gpd9+KPVl4QyMs3E3nsXrx/Vdnlw== dependencies: + "@pnpm/config.env-replace" "^1.0.0" "@pnpm/network.ca-file" "^1.0.1" config-chain "^1.1.11" @@ -3054,9 +3117,9 @@ "@types/node" "*" "@types/node@*": - version "18.14.5" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.14.5.tgz#4a13a6445862159303fc38586598a9396fc408b3" - integrity sha512-CRT4tMK/DHYhw1fcCEBwME9CSaZNclxfzVMe7GsO6ULSwsttbj70wSiX6rZdIjGblu93sTJxLdhNIT85KKI7Qw== + version "18.15.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.0.tgz#286a65e3fdffd691e170541e6ecb0410b16a38be" + integrity sha512-z6nr0TTEOBGkzLGmbypWOGnpSpSIBorEhC4L+4HeQ2iezKCi4f77kyslRwvHeNitymGQ+oFyIWGP96l/DPSV9w== "@types/node@18.14.6": version "18.14.6" @@ -3206,11 +3269,11 @@ tsutils "^3.21.0" "@typescript-eslint/experimental-utils@^5.3.0": - version "5.54.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.54.0.tgz#78ffdbc10a46be943f07d82ebfc7ea3ab8148cd0" - integrity sha512-rRYECOTh5V3iWsrOzXi7h1jp3Bi9OkJHrb3wECi3DVqMGTilo9wAYmCbT+6cGdrzUY3MWcAa2mESM6FMik6tVw== + version "5.54.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.54.1.tgz#a45609ce43fc6b24b4c4dde215446eaad7805223" + integrity sha512-oqSc2Gr4TL/2M0XRJ9abA1o3Wf1cFJTNqWq0kjdStIIvgMQGZ3TSaFFJ2Cvy3Fgqi9UfDZ8u5idbACssIIyHaw== dependencies: - "@typescript-eslint/utils" "5.54.0" + "@typescript-eslint/utils" "5.54.1" "@typescript-eslint/parser@5.54.0": version "5.54.0" @@ -3230,6 +3293,14 @@ "@typescript-eslint/types" "5.54.0" "@typescript-eslint/visitor-keys" "5.54.0" +"@typescript-eslint/scope-manager@5.54.1": + version "5.54.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.54.1.tgz#6d864b4915741c608a58ce9912edf5a02bb58735" + integrity sha512-zWKuGliXxvuxyM71UA/EcPxaviw39dB2504LqAmFDjmkpO8qNLHcmzlh6pbHs1h/7YQ9bnsO8CCcYCSA8sykUg== + dependencies: + "@typescript-eslint/types" "5.54.1" + "@typescript-eslint/visitor-keys" "5.54.1" + "@typescript-eslint/type-utils@5.54.0": version "5.54.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.54.0.tgz#390717216eb61393a0cad2995da154b613ba7b26" @@ -3245,6 +3316,11 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.54.0.tgz#7d519df01f50739254d89378e0dcac504cab2740" integrity sha512-nExy+fDCBEgqblasfeE3aQ3NuafBUxZxgxXcYfzYRZFHdVvk5q60KhCSkG0noHgHRo/xQ/BOzURLZAafFpTkmQ== +"@typescript-eslint/types@5.54.1": + version "5.54.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.54.1.tgz#29fbac29a716d0f08c62fe5de70c9b6735de215c" + integrity sha512-G9+1vVazrfAfbtmCapJX8jRo2E4MDXxgm/IMOF4oGh3kq7XuK3JRkOg6y2Qu1VsTRmWETyTkWt1wxy7X7/yLkw== + "@typescript-eslint/typescript-estree@5.54.0": version "5.54.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.54.0.tgz#f6f3440cabee8a43a0b25fa498213ebb61fdfe99" @@ -3258,7 +3334,20 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/utils@5.54.0", "@typescript-eslint/utils@^5.10.0": +"@typescript-eslint/typescript-estree@5.54.1": + version "5.54.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.54.1.tgz#df7b6ae05fd8fef724a87afa7e2f57fa4a599be1" + integrity sha512-bjK5t+S6ffHnVwA0qRPTZrxKSaFYocwFIkZx5k7pvWfsB1I57pO/0M0Skatzzw1sCkjJ83AfGTL0oFIFiDX3bg== + dependencies: + "@typescript-eslint/types" "5.54.1" + "@typescript-eslint/visitor-keys" "5.54.1" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/utils@5.54.0": version "5.54.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.54.0.tgz#3db758aae078be7b54b8ea8ea4537ff6cd3fbc21" integrity sha512-cuwm8D/Z/7AuyAeJ+T0r4WZmlnlxQ8wt7C7fLpFlKMR+dY6QO79Cq1WpJhvZbMA4ZeZGHiRWnht7ZJ8qkdAunw== @@ -3272,6 +3361,20 @@ eslint-utils "^3.0.0" semver "^7.3.7" +"@typescript-eslint/utils@5.54.1", "@typescript-eslint/utils@^5.10.0": + version "5.54.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.54.1.tgz#7a3ee47409285387b9d4609ea7e1020d1797ec34" + integrity sha512-IY5dyQM8XD1zfDe5X8jegX6r2EVU5o/WJnLu/znLPWCBF7KNGC+adacXnt5jEYS9JixDcoccI6CvE4RCjHMzCQ== + dependencies: + "@types/json-schema" "^7.0.9" + "@types/semver" "^7.3.12" + "@typescript-eslint/scope-manager" "5.54.1" + "@typescript-eslint/types" "5.54.1" + "@typescript-eslint/typescript-estree" "5.54.1" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" + semver "^7.3.7" + "@typescript-eslint/visitor-keys@5.54.0": version "5.54.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.54.0.tgz#846878afbf0cd67c19cfa8d75947383d4490db8f" @@ -3280,6 +3383,14 @@ "@typescript-eslint/types" "5.54.0" eslint-visitor-keys "^3.3.0" +"@typescript-eslint/visitor-keys@5.54.1": + version "5.54.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.54.1.tgz#d7a8a0f7181d6ac748f4d47b2306e0513b98bf8b" + integrity sha512-q8iSoHTgwCfgcRJ2l2x+xCbu8nBlRAlsQ33k24Adj8eoVBE0f8dUeI+bAa8F84Mv05UGbAx57g2zrRsYIooqQg== + dependencies: + "@typescript-eslint/types" "5.54.1" + eslint-visitor-keys "^3.3.0" + "@yarnpkg/core@3.4.0": version "3.4.0" resolved "https://registry.yarnpkg.com/@yarnpkg/core/-/core-3.4.0.tgz#1684dfcbd4e68ff28a11a25154d415f7de2c8224" @@ -3413,7 +3524,7 @@ agent-base@6, agent-base@^6.0.2: dependencies: debug "4" -agentkeepalive@4.2.1, agentkeepalive@^4.2.1: +agentkeepalive@4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.2.1.tgz#a7975cbb9f83b367f06c90cc51ff28fe7d499717" integrity sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA== @@ -3422,6 +3533,15 @@ agentkeepalive@4.2.1, agentkeepalive@^4.2.1: depd "^1.1.2" humanize-ms "^1.2.1" +agentkeepalive@^4.2.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.3.0.tgz#bb999ff07412653c1803b3ced35e50729830a255" + integrity sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg== + dependencies: + debug "^4.1.0" + depd "^2.0.0" + humanize-ms "^1.2.1" + aggregate-error@3.1.0, aggregate-error@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" @@ -3554,6 +3674,14 @@ argv-formatter@~1.0.0: resolved "https://registry.yarnpkg.com/argv-formatter/-/argv-formatter-1.0.0.tgz#a0ca0cbc29a5b73e836eebe1cbf6c5e0e4eb82f9" integrity sha512-F2+Hkm9xFaRg+GkaNnbwXNDV5O6pnCFEmqyhvfC/Ic5LbgOWjJh3L+mN/s91rxVL3znE7DYVpW0GJFT+4YBgWw== +array-buffer-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" + integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== + dependencies: + call-bind "^1.0.2" + is-array-buffer "^3.0.1" + array-ify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" @@ -3652,15 +3780,15 @@ azure-devops-node-api@12.0.0: tunnel "0.0.6" typed-rest-client "^1.8.4" -babel-jest@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.4.3.tgz#478b84d430972b277ad67dd631be94abea676792" - integrity sha512-o45Wyn32svZE+LnMVWv/Z4x0SwtLbh4FyGcYtR20kIWd+rdrDZ9Fzq8Ml3MYLD+mZvEdzCjZsCnYZ2jpJyQ+Nw== +babel-jest@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.5.0.tgz#3fe3ddb109198e78b1c88f9ebdecd5e4fc2f50a5" + integrity sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q== dependencies: - "@jest/transform" "^29.4.3" + "@jest/transform" "^29.5.0" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^29.4.3" + babel-preset-jest "^29.5.0" chalk "^4.0.0" graceful-fs "^4.2.9" slash "^3.0.0" @@ -3676,10 +3804,10 @@ babel-plugin-istanbul@^6.1.1: istanbul-lib-instrument "^5.0.4" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.4.3.tgz#ad1dfb5d31940957e00410ef7d9b2aa94b216101" - integrity sha512-mB6q2q3oahKphy5V7CpnNqZOCkxxZ9aokf1eh82Dy3jQmg4xvM1tGrh5y6BQUJh4a3Pj9+eLfwvAZ7VNKg7H8Q== +babel-plugin-jest-hoist@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz#a97db437936f441ec196990c9738d4b88538618a" + integrity sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" @@ -3704,12 +3832,12 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.4.3.tgz#bb926b66ae253b69c6e3ef87511b8bb5c53c5b52" - integrity sha512-gWx6COtSuma6n9bw+8/F+2PCXrIgxV/D1TJFnp6OyBK2cxPWg0K9p/sriNYeifKjpUkMViWQ09DSWtzJQRETsw== +babel-preset-jest@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz#57bc8cc88097af7ff6a5ab59d1cd29d52a5916e2" + integrity sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg== dependencies: - babel-plugin-jest-hoist "^29.4.3" + babel-plugin-jest-hoist "^29.5.0" babel-preset-current-node-syntax "^1.0.0" backslash@^0.2.0: @@ -3946,9 +4074,9 @@ camelcase@^6.2.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001449: - version "1.0.30001460" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001460.tgz#31d2e26f0a2309860ed3eff154e03890d9d851a7" - integrity sha512-Bud7abqjvEjipUkpLs4D7gR0l8hBYBHoa+tGtKJHvT2AYzLp1z7EmVkUT4ERpVUfca8S2HGIVs883D8pUH1ZzQ== + version "1.0.30001464" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001464.tgz#888922718df48ce5e33dcfe1a2af7d42676c5eb7" + integrity sha512-oww27MtUmusatpRpCGSOneQk2/l5czXANDSFvsc7VuOQ86s3ANhZetpwXNf1zY/zdfP63Xvjz325DAdAoES13g== cardinal@^2.1.1: version "2.1.1" @@ -4514,6 +4642,11 @@ depd@^1.1.2: resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== +depd@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + deprecation@^2.0.0, deprecation@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" @@ -4650,9 +4783,9 @@ editorconfig@1.0.2: semver "^7.3.8" electron-to-chromium@^1.4.284: - version "1.4.317" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.317.tgz#9a3d38a1a37f26a417d3d95dafe198ff11ed072b" - integrity sha512-JhCRm9v30FMNzQSsjl4kXaygU+qHBD0Yh7mKxyjmF0V8VwYVB6qpBRX28GyAucrM9wDCpSUctT6FpMUQxbyKuA== + version "1.4.328" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.328.tgz#b4565ffa502542b561cea16086d6d9b916c7095a" + integrity sha512-DE9tTy2PNmy1v55AZAO542ui+MLC2cvINMK4P2LXGsJdput/ThVG9t+QGecPuAZZSgC8XoI+Jh9M1OG9IoNSCw== email-addresses@5.0.0: version "5.0.0" @@ -4759,17 +4892,17 @@ error-ex@^1.3.1: is-arrayish "^0.2.1" es-abstract@^1.19.0, es-abstract@^1.20.4: - version "1.21.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.1.tgz#e6105a099967c08377830a0c9cb589d570dd86c6" - integrity sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg== + version "1.21.2" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.2.tgz#a56b9695322c8a185dc25975aa3b8ec31d0e7eff" + integrity sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg== dependencies: + array-buffer-byte-length "^1.0.0" available-typed-arrays "^1.0.5" call-bind "^1.0.2" es-set-tostringtag "^2.0.1" es-to-primitive "^1.2.1" - function-bind "^1.1.1" function.prototype.name "^1.1.5" - get-intrinsic "^1.1.3" + get-intrinsic "^1.2.0" get-symbol-description "^1.0.0" globalthis "^1.0.3" gopd "^1.0.1" @@ -4777,8 +4910,8 @@ es-abstract@^1.19.0, es-abstract@^1.20.4: has-property-descriptors "^1.0.0" has-proto "^1.0.1" has-symbols "^1.0.3" - internal-slot "^1.0.4" - is-array-buffer "^3.0.1" + internal-slot "^1.0.5" + is-array-buffer "^3.0.2" is-callable "^1.2.7" is-negative-zero "^2.0.2" is-regex "^1.1.4" @@ -4786,11 +4919,12 @@ es-abstract@^1.19.0, es-abstract@^1.20.4: is-string "^1.0.7" is-typed-array "^1.1.10" is-weakref "^1.0.2" - object-inspect "^1.12.2" + object-inspect "^1.12.3" object-keys "^1.1.1" object.assign "^4.1.4" regexp.prototype.flags "^1.4.3" safe-regex-test "^1.0.0" + string.prototype.trim "^1.2.7" string.prototype.trimend "^1.0.6" string.prototype.trimstart "^1.0.6" typed-array-length "^1.0.4" @@ -5033,10 +5167,10 @@ eslint@8.35.0: strip-json-comments "^3.1.0" text-table "^0.2.0" -espree@^9.4.0: - version "9.4.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.1.tgz#51d6092615567a2c2cff7833445e37c28c0065bd" - integrity sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg== +espree@^9.4.0, espree@^9.5.0: + version "9.5.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.0.tgz#3646d4e3f58907464edba852fa047e6a27bdf113" + integrity sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw== dependencies: acorn "^8.8.0" acorn-jsx "^5.3.2" @@ -5112,9 +5246,9 @@ execa@^6.1.0: strip-final-newline "^3.0.0" execa@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-7.0.0.tgz#2a44e20e73797f6c2df23889927972386157d7e4" - integrity sha512-tQbH0pH/8LHTnwTrsKWideqi6rFB/QNUawEwrn+WHyz7PX1Tuz2u7wfTvbaNBdP5JD5LVWxNo8/A8CHNZ3bV6g== + version "7.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-7.1.0.tgz#50c6f39438b7ce407e8c7a6829c72b074778238d" + integrity sha512-T6nIJO3LHxUZ6ahVRaxXz9WLEruXLqdcluA+UuTptXmLM7nDAn9lx9IfkxPyzEL21583qSt4RmL44pO71EHaJQ== dependencies: cross-spawn "^7.0.3" get-stream "^6.0.1" @@ -5145,16 +5279,16 @@ expect-more@1.3.0: resolved "https://registry.yarnpkg.com/expect-more/-/expect-more-1.3.0.tgz#fcc6e7477e36d91194d550684bf733a88228aaff" integrity sha512-HnXT5nJb9V3DMnr5RgA1TiKbu5kRaJ0GD1JkuhZvnr1Qe3HJq+ESnrcl/jmVUZ8Ycnl3Sp0OTYUhmO36d2+zow== -expect@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.4.3.tgz#5e47757316df744fe3b8926c3ae8a3ebdafff7fe" - integrity sha512-uC05+Q7eXECFpgDrHdXA4k2rpMyStAYPItEDLyQDo5Ta7fVkJnNA/4zh/OIVkVVNZ1oOK1PipQoyNjuZ6sz6Dg== +expect@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.5.0.tgz#68c0509156cb2a0adb8865d413b137eeaae682f7" + integrity sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg== dependencies: - "@jest/expect-utils" "^29.4.3" + "@jest/expect-utils" "^29.5.0" jest-get-type "^29.4.3" - jest-matcher-utils "^29.4.3" - jest-message-util "^29.4.3" - jest-util "^29.4.3" + jest-matcher-utils "^29.5.0" + jest-message-util "^29.5.0" + jest-util "^29.5.0" extend@^3.0.0: version "3.0.2" @@ -5967,7 +6101,7 @@ install-artifact-from-github@^1.3.1: resolved "https://registry.yarnpkg.com/install-artifact-from-github/-/install-artifact-from-github-1.3.2.tgz#1a16d9508e40330523a3017ae0d4713ccc64de82" integrity sha512-yCFcLvqk0yQdxx0uJz4t9Z3adDMLAYrcGYv546uRXCSvxE+GqNYhhz/KmrGcUKGI/gVLR9n/e/zM9jX/+ASMJQ== -internal-slot@^1.0.4: +internal-slot@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== @@ -6020,7 +6154,7 @@ is-arguments@^1.0.4: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-array-buffer@^3.0.1: +is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== @@ -6352,94 +6486,95 @@ java-properties@^1.0.2: resolved "https://registry.yarnpkg.com/java-properties/-/java-properties-1.0.2.tgz#ccd1fa73907438a5b5c38982269d0e771fe78211" integrity sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ== -jest-changed-files@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.4.3.tgz#7961fe32536b9b6d5c28dfa0abcfab31abcf50a7" - integrity sha512-Vn5cLuWuwmi2GNNbokPOEcvrXGSGrqVnPEZV7rC6P7ck07Dyw9RFnvWglnupSh+hGys0ajGtw/bc2ZgweljQoQ== +jest-changed-files@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.5.0.tgz#e88786dca8bf2aa899ec4af7644e16d9dcf9b23e" + integrity sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag== dependencies: execa "^5.0.0" p-limit "^3.1.0" -jest-circus@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.4.3.tgz#fff7be1cf5f06224dd36a857d52a9efeb005ba04" - integrity sha512-Vw/bVvcexmdJ7MLmgdT3ZjkJ3LKu8IlpefYokxiqoZy6OCQ2VAm6Vk3t/qHiAGUXbdbJKJWnc8gH3ypTbB/OBw== +jest-circus@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.5.0.tgz#b5926989449e75bff0d59944bae083c9d7fb7317" + integrity sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA== dependencies: - "@jest/environment" "^29.4.3" - "@jest/expect" "^29.4.3" - "@jest/test-result" "^29.4.3" - "@jest/types" "^29.4.3" + "@jest/environment" "^29.5.0" + "@jest/expect" "^29.5.0" + "@jest/test-result" "^29.5.0" + "@jest/types" "^29.5.0" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" is-generator-fn "^2.0.0" - jest-each "^29.4.3" - jest-matcher-utils "^29.4.3" - jest-message-util "^29.4.3" - jest-runtime "^29.4.3" - jest-snapshot "^29.4.3" - jest-util "^29.4.3" + jest-each "^29.5.0" + jest-matcher-utils "^29.5.0" + jest-message-util "^29.5.0" + jest-runtime "^29.5.0" + jest-snapshot "^29.5.0" + jest-util "^29.5.0" p-limit "^3.1.0" - pretty-format "^29.4.3" + pretty-format "^29.5.0" + pure-rand "^6.0.0" slash "^3.0.0" stack-utils "^2.0.3" jest-cli@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.4.3.tgz#fe31fdd0c90c765f392b8b7c97e4845071cd2163" - integrity sha512-PiiAPuFNfWWolCE6t3ZrDXQc6OsAuM3/tVW0u27UWc1KE+n/HSn5dSE6B2juqN7WP+PP0jAcnKtGmI4u8GMYCg== + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.5.0.tgz#b34c20a6d35968f3ee47a7437ff8e53e086b4a67" + integrity sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw== dependencies: - "@jest/core" "^29.4.3" - "@jest/test-result" "^29.4.3" - "@jest/types" "^29.4.3" + "@jest/core" "^29.5.0" + "@jest/test-result" "^29.5.0" + "@jest/types" "^29.5.0" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.4.3" - jest-util "^29.4.3" - jest-validate "^29.4.3" + jest-config "^29.5.0" + jest-util "^29.5.0" + jest-validate "^29.5.0" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.4.3.tgz#fca9cdfe6298ae6d04beef1624064d455347c978" - integrity sha512-eCIpqhGnIjdUCXGtLhz4gdDoxKSWXKjzNcc5r+0S1GKOp2fwOipx5mRcwa9GB/ArsxJ1jlj2lmlD9bZAsBxaWQ== +jest-config@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.5.0.tgz#3cc972faec8c8aaea9ae158c694541b79f3748da" + integrity sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.4.3" - "@jest/types" "^29.4.3" - babel-jest "^29.4.3" + "@jest/test-sequencer" "^29.5.0" + "@jest/types" "^29.5.0" + babel-jest "^29.5.0" chalk "^4.0.0" ci-info "^3.2.0" deepmerge "^4.2.2" glob "^7.1.3" graceful-fs "^4.2.9" - jest-circus "^29.4.3" - jest-environment-node "^29.4.3" + jest-circus "^29.5.0" + jest-environment-node "^29.5.0" jest-get-type "^29.4.3" jest-regex-util "^29.4.3" - jest-resolve "^29.4.3" - jest-runner "^29.4.3" - jest-util "^29.4.3" - jest-validate "^29.4.3" + jest-resolve "^29.5.0" + jest-runner "^29.5.0" + jest-util "^29.5.0" + jest-validate "^29.5.0" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^29.4.3" + pretty-format "^29.5.0" slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@^29.0.0, jest-diff@^29.4.1, jest-diff@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.4.3.tgz#42f4eb34d0bf8c0fb08b0501069b87e8e84df347" - integrity sha512-YB+ocenx7FZ3T5O9lMVMeLYV4265socJKtkwgk/6YUz/VsEzYDkiMuMhWzZmxm3wDRQvayJu/PjkjjSkjoHsCA== +jest-diff@^29.0.0, jest-diff@^29.4.1, jest-diff@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.5.0.tgz#e0d83a58eb5451dcc1fa61b1c3ee4e8f5a290d63" + integrity sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw== dependencies: chalk "^4.0.0" diff-sequences "^29.4.3" jest-get-type "^29.4.3" - pretty-format "^29.4.3" + pretty-format "^29.5.0" jest-docblock@^29.4.3: version "29.4.3" @@ -6448,28 +6583,28 @@ jest-docblock@^29.4.3: dependencies: detect-newline "^3.0.0" -jest-each@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.4.3.tgz#a434c199a2f6151c5e3dc80b2d54586bdaa72819" - integrity sha512-1ElHNAnKcbJb/b+L+7j0/w7bDvljw4gTv1wL9fYOczeJrbTbkMGQ5iQPFJ3eFQH19VPTx1IyfePdqSpePKss7Q== +jest-each@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.5.0.tgz#fc6e7014f83eac68e22b7195598de8554c2e5c06" + integrity sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA== dependencies: - "@jest/types" "^29.4.3" + "@jest/types" "^29.5.0" chalk "^4.0.0" jest-get-type "^29.4.3" - jest-util "^29.4.3" - pretty-format "^29.4.3" + jest-util "^29.5.0" + pretty-format "^29.5.0" -jest-environment-node@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.4.3.tgz#579c4132af478befc1889ddc43c2413a9cdbe014" - integrity sha512-gAiEnSKF104fsGDXNkwk49jD/0N0Bqu2K9+aMQXA6avzsA9H3Fiv1PW2D+gzbOSR705bWd2wJZRFEFpV0tXISg== +jest-environment-node@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.5.0.tgz#f17219d0f0cc0e68e0727c58b792c040e332c967" + integrity sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw== dependencies: - "@jest/environment" "^29.4.3" - "@jest/fake-timers" "^29.4.3" - "@jest/types" "^29.4.3" + "@jest/environment" "^29.5.0" + "@jest/fake-timers" "^29.5.0" + "@jest/types" "^29.5.0" "@types/node" "*" - jest-mock "^29.4.3" - jest-util "^29.4.3" + jest-mock "^29.5.0" + jest-util "^29.5.0" jest-extended@3.2.4: version "3.2.4" @@ -6484,20 +6619,20 @@ jest-get-type@^29.0.0, jest-get-type@^29.2.0, jest-get-type@^29.4.3: resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.4.3.tgz#1ab7a5207c995161100b5187159ca82dd48b3dd5" integrity sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg== -jest-haste-map@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.4.3.tgz#085a44283269e7ace0645c63a57af0d2af6942e2" - integrity sha512-eZIgAS8tvm5IZMtKlR8Y+feEOMfo2pSQkmNbufdbMzMSn9nitgGxF1waM/+LbryO3OkMcKS98SUb+j/cQxp/vQ== +jest-haste-map@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.5.0.tgz#69bd67dc9012d6e2723f20a945099e972b2e94de" + integrity sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA== dependencies: - "@jest/types" "^29.4.3" + "@jest/types" "^29.5.0" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" jest-regex-util "^29.4.3" - jest-util "^29.4.3" - jest-worker "^29.4.3" + jest-util "^29.5.0" + jest-worker "^29.5.0" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: @@ -6513,13 +6648,13 @@ jest-junit@15.0.0: uuid "^8.3.2" xml "^1.0.1" -jest-leak-detector@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.4.3.tgz#2b35191d6b35aa0256e63a9b79b0f949249cf23a" - integrity sha512-9yw4VC1v2NspMMeV3daQ1yXPNxMgCzwq9BocCwYrRgXe4uaEJPAN0ZK37nFBhcy3cUwEVstFecFLaTHpF7NiGA== +jest-leak-detector@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz#cf4bdea9615c72bac4a3a7ba7e7930f9c0610c8c" + integrity sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow== dependencies: jest-get-type "^29.4.3" - pretty-format "^29.4.3" + pretty-format "^29.5.0" jest-matcher-utils@29.4.1: version "29.4.1" @@ -6531,28 +6666,28 @@ jest-matcher-utils@29.4.1: jest-get-type "^29.2.0" pretty-format "^29.4.1" -jest-matcher-utils@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.4.3.tgz#ea68ebc0568aebea4c4213b99f169ff786df96a0" - integrity sha512-TTciiXEONycZ03h6R6pYiZlSkvYgT0l8aa49z/DLSGYjex4orMUcafuLXYyyEDWB1RKglq00jzwY00Ei7yFNVg== +jest-matcher-utils@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz#d957af7f8c0692c5453666705621ad4abc2c59c5" + integrity sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw== dependencies: chalk "^4.0.0" - jest-diff "^29.4.3" + jest-diff "^29.5.0" jest-get-type "^29.4.3" - pretty-format "^29.4.3" + pretty-format "^29.5.0" -jest-message-util@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.4.3.tgz#65b5280c0fdc9419503b49d4f48d4999d481cb5b" - integrity sha512-1Y8Zd4ZCN7o/QnWdMmT76If8LuDv23Z1DRovBj/vcSFNlGCJGoO8D1nJDw1AdyAGUk0myDLFGN5RbNeJyCRGCw== +jest-message-util@^29.4.3, jest-message-util@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.5.0.tgz#1f776cac3aca332ab8dd2e3b41625435085c900e" + integrity sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.4.3" + "@jest/types" "^29.5.0" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^29.4.3" + pretty-format "^29.5.0" slash "^3.0.0" stack-utils "^2.0.3" @@ -6563,14 +6698,14 @@ jest-mock-extended@3.0.3: dependencies: ts-essentials "^7.0.3" -jest-mock@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.4.3.tgz#23d84a20a74cdfff0510fdbeefb841ed57b0fe7e" - integrity sha512-LjFgMg+xed9BdkPMyIJh+r3KeHt1klXPJYBULXVVAkbTaaKjPX1o1uVCAZADMEp/kOxGTwy/Ot8XbvgItOrHEg== +jest-mock@^29.4.3, jest-mock@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.5.0.tgz#26e2172bcc71d8b0195081ff1f146ac7e1518aed" + integrity sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw== dependencies: - "@jest/types" "^29.4.3" + "@jest/types" "^29.5.0" "@types/node" "*" - jest-util "^29.4.3" + jest-util "^29.5.0" jest-pnp-resolver@^1.2.2: version "1.2.3" @@ -6582,88 +6717,88 @@ jest-regex-util@^29.4.3: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.4.3.tgz#a42616141e0cae052cfa32c169945d00c0aa0bb8" integrity sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg== -jest-resolve-dependencies@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.4.3.tgz#9ad7f23839a6d88cef91416bda9393a6e9fd1da5" - integrity sha512-uvKMZAQ3nmXLH7O8WAOhS5l0iWyT3WmnJBdmIHiV5tBbdaDZ1wqtNX04FONGoaFvSOSHBJxnwAVnSn1WHdGVaw== +jest-resolve-dependencies@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz#f0ea29955996f49788bf70996052aa98e7befee4" + integrity sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg== dependencies: jest-regex-util "^29.4.3" - jest-snapshot "^29.4.3" + jest-snapshot "^29.5.0" -jest-resolve@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.4.3.tgz#3c5b5c984fa8a763edf9b3639700e1c7900538e2" - integrity sha512-GPokE1tzguRyT7dkxBim4wSx6E45S3bOQ7ZdKEG+Qj0Oac9+6AwJPCk0TZh5Vu0xzeX4afpb+eDmgbmZFFwpOw== +jest-resolve@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.5.0.tgz#b053cc95ad1d5f6327f0ac8aae9f98795475ecdc" + integrity sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^29.4.3" + jest-haste-map "^29.5.0" jest-pnp-resolver "^1.2.2" - jest-util "^29.4.3" - jest-validate "^29.4.3" + jest-util "^29.5.0" + jest-validate "^29.5.0" resolve "^1.20.0" resolve.exports "^2.0.0" slash "^3.0.0" -jest-runner@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.4.3.tgz#68dc82c68645eda12bea42b5beece6527d7c1e5e" - integrity sha512-GWPTEiGmtHZv1KKeWlTX9SIFuK19uLXlRQU43ceOQ2hIfA5yPEJC7AMkvFKpdCHx6pNEdOD+2+8zbniEi3v3gA== +jest-runner@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.5.0.tgz#6a57c282eb0ef749778d444c1d758c6a7693b6f8" + integrity sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ== dependencies: - "@jest/console" "^29.4.3" - "@jest/environment" "^29.4.3" - "@jest/test-result" "^29.4.3" - "@jest/transform" "^29.4.3" - "@jest/types" "^29.4.3" + "@jest/console" "^29.5.0" + "@jest/environment" "^29.5.0" + "@jest/test-result" "^29.5.0" + "@jest/transform" "^29.5.0" + "@jest/types" "^29.5.0" "@types/node" "*" chalk "^4.0.0" emittery "^0.13.1" graceful-fs "^4.2.9" jest-docblock "^29.4.3" - jest-environment-node "^29.4.3" - jest-haste-map "^29.4.3" - jest-leak-detector "^29.4.3" - jest-message-util "^29.4.3" - jest-resolve "^29.4.3" - jest-runtime "^29.4.3" - jest-util "^29.4.3" - jest-watcher "^29.4.3" - jest-worker "^29.4.3" + jest-environment-node "^29.5.0" + jest-haste-map "^29.5.0" + jest-leak-detector "^29.5.0" + jest-message-util "^29.5.0" + jest-resolve "^29.5.0" + jest-runtime "^29.5.0" + jest-util "^29.5.0" + jest-watcher "^29.5.0" + jest-worker "^29.5.0" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.4.3.tgz#f25db9874dcf35a3ab27fdaabca426666cc745bf" - integrity sha512-F5bHvxSH+LvLV24vVB3L8K467dt3y3dio6V3W89dUz9nzvTpqd/HcT9zfYKL2aZPvD63vQFgLvaUX/UpUhrP6Q== +jest-runtime@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.5.0.tgz#c83f943ee0c1da7eb91fa181b0811ebd59b03420" + integrity sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw== dependencies: - "@jest/environment" "^29.4.3" - "@jest/fake-timers" "^29.4.3" - "@jest/globals" "^29.4.3" + "@jest/environment" "^29.5.0" + "@jest/fake-timers" "^29.5.0" + "@jest/globals" "^29.5.0" "@jest/source-map" "^29.4.3" - "@jest/test-result" "^29.4.3" - "@jest/transform" "^29.4.3" - "@jest/types" "^29.4.3" + "@jest/test-result" "^29.5.0" + "@jest/transform" "^29.5.0" + "@jest/types" "^29.5.0" "@types/node" "*" chalk "^4.0.0" cjs-module-lexer "^1.0.0" collect-v8-coverage "^1.0.0" glob "^7.1.3" graceful-fs "^4.2.9" - jest-haste-map "^29.4.3" - jest-message-util "^29.4.3" - jest-mock "^29.4.3" + jest-haste-map "^29.5.0" + jest-message-util "^29.5.0" + jest-mock "^29.5.0" jest-regex-util "^29.4.3" - jest-resolve "^29.4.3" - jest-snapshot "^29.4.3" - jest-util "^29.4.3" + jest-resolve "^29.5.0" + jest-snapshot "^29.5.0" + jest-util "^29.5.0" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.4.3.tgz#183d309371450d9c4a3de7567ed2151eb0e91145" - integrity sha512-NGlsqL0jLPDW91dz304QTM/SNO99lpcSYYAjNiX0Ou+sSGgkanKBcSjCfp/pqmiiO1nQaOyLp6XQddAzRcx3Xw== +jest-snapshot@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.5.0.tgz#c9c1ce0331e5b63cd444e2f95a55a73b84b1e8ce" + integrity sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" @@ -6671,70 +6806,69 @@ jest-snapshot@^29.4.3: "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.4.3" - "@jest/transform" "^29.4.3" - "@jest/types" "^29.4.3" + "@jest/expect-utils" "^29.5.0" + "@jest/transform" "^29.5.0" + "@jest/types" "^29.5.0" "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.4.3" + expect "^29.5.0" graceful-fs "^4.2.9" - jest-diff "^29.4.3" + jest-diff "^29.5.0" jest-get-type "^29.4.3" - jest-haste-map "^29.4.3" - jest-matcher-utils "^29.4.3" - jest-message-util "^29.4.3" - jest-util "^29.4.3" + jest-matcher-utils "^29.5.0" + jest-message-util "^29.5.0" + jest-util "^29.5.0" natural-compare "^1.4.0" - pretty-format "^29.4.3" + pretty-format "^29.5.0" semver "^7.3.5" -jest-util@^29.0.0, jest-util@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.4.3.tgz#851a148e23fc2b633c55f6dad2e45d7f4579f496" - integrity sha512-ToSGORAz4SSSoqxDSylWX8JzkOQR7zoBtNRsA7e+1WUX5F8jrOwaNpuh1YfJHJKDHXLHmObv5eOjejUd+/Ws+Q== +jest-util@^29.0.0, jest-util@^29.4.3, jest-util@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.5.0.tgz#24a4d3d92fc39ce90425311b23c27a6e0ef16b8f" + integrity sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ== dependencies: - "@jest/types" "^29.4.3" + "@jest/types" "^29.5.0" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.4.3.tgz#a13849dec4f9e95446a7080ad5758f58fa88642f" - integrity sha512-J3u5v7aPQoXPzaar6GndAVhdQcZr/3osWSgTeKg5v574I9ybX/dTyH0AJFb5XgXIB7faVhf+rS7t4p3lL9qFaw== +jest-validate@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.5.0.tgz#8e5a8f36178d40e47138dc00866a5f3bd9916ffc" + integrity sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ== dependencies: - "@jest/types" "^29.4.3" + "@jest/types" "^29.5.0" camelcase "^6.2.0" chalk "^4.0.0" jest-get-type "^29.4.3" leven "^3.1.0" - pretty-format "^29.4.3" + pretty-format "^29.5.0" -jest-watcher@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.4.3.tgz#e503baa774f0c2f8f3c8db98a22ebf885f19c384" - integrity sha512-zwlXH3DN3iksoIZNk73etl1HzKyi5FuQdYLnkQKm5BW4n8HpoG59xSwpVdFrnh60iRRaRBGw0gcymIxjJENPcA== +jest-watcher@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.5.0.tgz#cf7f0f949828ba65ddbbb45c743a382a4d911363" + integrity sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA== dependencies: - "@jest/test-result" "^29.4.3" - "@jest/types" "^29.4.3" + "@jest/test-result" "^29.5.0" + "@jest/types" "^29.5.0" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.13.1" - jest-util "^29.4.3" + jest-util "^29.5.0" string-length "^4.0.1" -jest-worker@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.4.3.tgz#9a4023e1ea1d306034237c7133d7da4240e8934e" - integrity sha512-GLHN/GTAAMEy5BFdvpUfzr9Dr80zQqBrh0fz1mtRMe05hqP45+HfQltu7oTBfduD0UeZs09d+maFtFYAXFWvAA== +jest-worker@^29.4.3, jest-worker@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.5.0.tgz#bdaefb06811bd3384d93f009755014d8acb4615d" + integrity sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA== dependencies: "@types/node" "*" - jest-util "^29.4.3" + jest-util "^29.5.0" merge-stream "^2.0.0" supports-color "^8.0.0" @@ -7218,16 +7352,11 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -lru-cache@^7.14.1: +lru-cache@^7.14.1, lru-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1: version "7.18.3" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89" integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== -lru-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1: - version "7.18.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.1.tgz#4716408dec51d5d0104732647f584d1f6738b109" - integrity sha512-8/HcIENyQnfUTCDizRu9rrDyG6XG/21M4X7/YEGZeD76ZJilFPAUVb/2zysFf7VVO1LEjCDFyHp8pMMvozIrvg== - luxon@3.3.0, luxon@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.3.0.tgz#d73ab5b5d2b49a461c47cedbc7e73309b4805b48" @@ -7601,9 +7730,9 @@ minipass@^3.0.0, minipass@^3.1.1, minipass@^3.1.6: yallist "^4.0.0" minipass@^4.0.0, minipass@^4.0.2, minipass@^4.2.4: - version "4.2.4" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.2.4.tgz#7d0d97434b6a19f59c5c3221698b48bbf3b2cd06" - integrity sha512-lwycX3cBMTvcejsHITUgYj6Gy6A7Nh4Q6h9NP4sTHY1ccJlC7yKzDmiShEHsJ16Jf1nKGDEaiHxiltsJEvk0nQ== + version "4.2.5" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.2.5.tgz#9e0e5256f1e3513f8c34691dd68549e85b2c8ceb" + integrity sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q== minizlib@^2.1.1, minizlib@^2.1.2: version "2.1.2" @@ -8076,7 +8205,7 @@ nth-check@^2.0.1: dependencies: boolbase "^1.0.0" -object-inspect@^1.12.2, object-inspect@^1.12.3, object-inspect@^1.9.0: +object-inspect@^1.12.3, object-inspect@^1.9.0: version "1.12.3" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== @@ -8550,10 +8679,10 @@ pretty-bytes@^5.1.0: resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== -pretty-format@^29.4.1, pretty-format@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.4.3.tgz#25500ada21a53c9e8423205cf0337056b201244c" - integrity sha512-cvpcHTc42lcsvOOAzd3XuNWTcvk1Jmnzqeu+WsOuiPmxUJTnkbAcFNsRKvEpBEUFVUgy/GTZLulZDcDEi+CIlA== +pretty-format@^29.4.1, pretty-format@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.5.0.tgz#283134e74f70e2e3e7229336de0e4fce94ccde5a" + integrity sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw== dependencies: "@jest/schemas" "^29.4.3" ansi-styles "^5.0.0" @@ -8657,6 +8786,11 @@ punycode@^2.1.0: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== +pure-rand@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.1.tgz#31207dddd15d43f299fdcdb2f572df65030c19af" + integrity sha512-t+x1zEHDjBwkDGY5v5ApnZ/utcd4XYDiJsaQQoptTXgUXX95sDg1elCdJghzicm7n2mbCBJ3uYWr6M22SO19rg== + q@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" @@ -8668,9 +8802,9 @@ qrcode-terminal@^0.12.0: integrity sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ== qs@^6.9.1: - version "6.11.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" - integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== + version "6.11.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.1.tgz#6c29dff97f0c0060765911ba65cbc9764186109f" + integrity sha512-0wsrzgTz/kAVIeuxSjnpGC56rzYtr6JT/2BwEvMaPhFIoYa1aGO8LbzuU1R0uUYQkLpWBTOj0l/CLAJB64J6nQ== dependencies: side-channel "^1.0.4" @@ -8799,9 +8933,9 @@ read@1, read@^1.0.7, read@~1.0.7: mute-stream "~0.0.4" readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.6.0: - version "3.6.1" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.1.tgz#f9f9b5f536920253b3d26e7660e7da4ccff9bb62" - integrity sha512-+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ== + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== dependencies: inherits "^2.0.3" string_decoder "^1.1.1" @@ -8889,11 +9023,11 @@ regexpp@^3.2.0: integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== registry-auth-token@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-5.0.1.tgz#5e6cd106e6c251135a046650c58476fc03e92833" - integrity sha512-UfxVOj8seK1yaIOiieV4FIP01vfBDLsY0H9sQzi9EbbUdJiuuBjJgLa1DpImXMNPnVkBD4eVxTEXcrZA6kfpJA== + version "5.0.2" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-5.0.2.tgz#8b026cc507c8552ebbe06724136267e63302f756" + integrity sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ== dependencies: - "@pnpm/npm-conf" "^1.0.4" + "@pnpm/npm-conf" "^2.1.0" remark-github@10.1.0: version "10.1.0" @@ -8969,9 +9103,9 @@ resolve-from@^5.0.0: integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== resolve.exports@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.0.tgz#c1a0028c2d166ec2fbf7d0644584927e76e7400e" - integrity sha512-6K/gDlqgQscOlg9fSRpWstA8sYe8rbELsSTNpx+3kTrsVCzvSl0zIvRErM7fdl9ERWDsKnrLnwB+Ne89918XOg== + version "2.0.1" + resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.1.tgz#cee884cd4e3f355660e501fa3276b27d7ffe5a20" + integrity sha512-OEJWVeimw8mgQuj3HfkNl4KqRevH7lzeQNaWRPfx0PPse7Jk6ozcsG4FKVgtzDsC1KUF+YlTHh17NcgHOPykLw== resolve@^1.1.6, resolve@^1.10.0, resolve@^1.20.0, resolve@^1.22.1: version "1.22.1" @@ -9389,9 +9523,9 @@ spawn-error-forwarder@~1.0.0: integrity sha512-gRjMgK5uFjbCvdibeGJuy3I5OYz6VLoVdsOJdA6wV0WlfQVLFueoqMxwwYD9RODdgb6oUIvlRlsyFSiQkMKu0g== spdx-correct@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" - integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== + version "3.2.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" + integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== dependencies: spdx-expression-parse "^3.0.0" spdx-license-ids "^3.0.0" @@ -9410,9 +9544,9 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.12" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz#69077835abe2710b65f03969898b6637b505a779" - integrity sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA== + version "3.0.13" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz#7189a474c46f8d47c7b0da4b987bb45e908bd2d5" + integrity sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w== split2@^3.0.0: version "3.2.2" @@ -9535,6 +9669,15 @@ string.prototype.padend@^3.0.0: define-properties "^1.1.4" es-abstract "^1.20.4" +string.prototype.trim@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533" + integrity sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + string.prototype.trimend@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" From 167c13cf5d25c12a2f3306c3e9954d45551feb13 Mon Sep 17 00:00:00 2001 From: Adam Setch Date: Mon, 13 Mar 2023 01:57:26 -0400 Subject: [PATCH 138/228] docs: generate platform and datasources open features and bugs markdown (#20873) Co-authored-by: Michael Kriese --- tools/docs/datasources.ts | 8 +- tools/docs/github-query-items.ts | 140 ++++++++++++++++++++++++++++++- tools/docs/manager.ts | 129 ++-------------------------- tools/docs/platforms.ts | 16 ++-- tools/generate-docs.ts | 10 ++- 5 files changed, 172 insertions(+), 131 deletions(-) diff --git a/tools/docs/datasources.ts b/tools/docs/datasources.ts index 9d069ff49f79ce..aaec81fa262914 100644 --- a/tools/docs/datasources.ts +++ b/tools/docs/datasources.ts @@ -1,6 +1,7 @@ import { codeBlock } from 'common-tags'; import { getDatasources } from '../../lib/modules/datasource'; import { readFile, updateFile } from '../utils'; +import { OpenItems, generateFeatureAndBugMarkdown } from './github-query-items'; import { formatDescription, formatUrls, @@ -9,7 +10,10 @@ import { replaceContent, } from './utils'; -export async function generateDatasources(dist: string): Promise { +export async function generateDatasources( + dist: string, + datasourceIssuesMap: OpenItems +): Promise { const dsList = getDatasources(); let datasourceContent = '\nSupported values for `datasource` are:\n\n'; @@ -56,6 +60,8 @@ export async function generateDatasources(dist: string): Promise { '\n```\n'; } + md += generateFeatureAndBugMarkdown(datasourceIssuesMap, datasource); + await updateFile(`${dist}/modules/datasource/${datasource}/index.md`, md); } diff --git a/tools/docs/github-query-items.ts b/tools/docs/github-query-items.ts index f9668ce59bbe18..c03461c5f979a9 100644 --- a/tools/docs/github-query-items.ts +++ b/tools/docs/github-query-items.ts @@ -1,4 +1,21 @@ -export type GithubApiQueryResponse = { +import { DateTime } from 'luxon'; +import { logger } from '../../lib/logger'; +import * as hostRules from '../../lib/util/host-rules'; +import { GithubHttp } from '../../lib/util/http/github'; +import { getQueryString } from '../../lib/util/url'; + +const gitHubApiUrl = 'https://api.github.com/search/issues?'; +const githubApi = new GithubHttp(); + +if (process.env.GITHUB_TOKEN) { + logger.debug('Using GITHUB_TOKEN from env'); + hostRules.add({ + matchHost: 'api.github.com', + token: process.env.GITHUB_TOKEN, + }); +} + +type GithubApiQueryResponse = { total_count: number; incomplete_results: boolean; items: ItemsEntity[]; @@ -14,3 +31,124 @@ export type ItemsEntity = { export type LabelsEntity = { name: string; }; + +export interface RenovateOpenItems { + managers: OpenItems; + platforms: OpenItems; + datasources: OpenItems; +} + +export type OpenItems = Record; + +export interface Items { + bugs: ItemsEntity[]; + features: ItemsEntity[]; +} + +export async function getOpenGitHubItems(): Promise { + const q = `repo:renovatebot/renovate type:issue is:open -label:priority-5-triage`; + const per_page = 100; + try { + const query = getQueryString({ q, per_page }); + const res = await githubApi.getJson( + gitHubApiUrl + query, + { + paginationField: 'items', + paginate: true, + } + ); + const rawItems = res.body?.items ?? []; + + const renovateOpenItems: RenovateOpenItems = { + managers: extractIssues(rawItems, 'manager:'), + platforms: extractIssues(rawItems, 'platform:'), + datasources: extractIssues(rawItems, 'datasource:'), + }; + + return renovateOpenItems; + } catch (err) { + logger.error({ err }, 'Error getting query results'); + throw err; + } +} + +function extractIssues(items: ItemsEntity[], labelPrefix: string): OpenItems { + const issuesMap: OpenItems = {}; + + for (const item of items) { + const type = item.labels + .find((l) => l.name.startsWith('type:')) + ?.name.split(':')[1]; + if (!type) { + continue; + } + const label = item.labels + .find((l) => l.name.startsWith(labelPrefix)) + ?.name.split(':')[1]; + if (!label) { + continue; + } + if (!issuesMap[label]) { + issuesMap[label] = { bugs: [], features: [] }; + } + switch (type) { + case 'bug': + issuesMap[label]?.bugs.push(item); + break; + case 'feature': + issuesMap[label]?.features.push(item); + break; + default: + break; + } + } + + return issuesMap; +} + +function stringifyIssues(items: ItemsEntity[] | undefined): string { + if (!items) { + return ''; + } + let list = ''; + for (const item of items) { + list += ` - ${item.title} [#${item.number}](${item.html_url})\n`; + } + return list; +} + +export function generateFeatureAndBugMarkdown( + issuesMap: OpenItems, + key: string +): string { + let md = '\n\n'; + + const featureList = stringifyIssues(issuesMap[key]?.features); + const bugList = stringifyIssues(issuesMap[key]?.bugs); + + if (featureList || bugList) { + md += '## Open items\n\n'; + } + + if (featureList || bugList) { + const now = DateTime.utc().toFormat('MMMM dd, yyyy'); + const lists = `list of ${featureList ? 'features' : ''}${ + featureList && bugList ? ' and ' : '' + }${bugList ? 'bugs' : ''}`; + md += `The below ${lists} were current when this page was generated on ${now}.\n\n`; + } + + if (featureList) { + md += '### Feature requests\n\n'; + md += featureList; + md += '\n'; + } + + if (bugList) { + md += '### Bug reports\n\n'; + md += bugList; + md += '\n'; + } + + return md; +} diff --git a/tools/docs/manager.ts b/tools/docs/manager.ts index a111f87e3bca18..dddd4511f925ff 100644 --- a/tools/docs/manager.ts +++ b/tools/docs/manager.ts @@ -1,29 +1,9 @@ -import { DateTime } from 'luxon'; import type { RenovateConfig } from '../../lib/config/types'; -import { logger } from '../../lib/logger'; import { getManagers } from '../../lib/modules/manager'; -import * as hostRules from '../../lib/util/host-rules'; -import { GithubHttp } from '../../lib/util/http/github'; -import { getQueryString } from '../../lib/util/url'; import { readFile, updateFile } from '../utils'; -import type { GithubApiQueryResponse, ItemsEntity } from './github-query-items'; +import { OpenItems, generateFeatureAndBugMarkdown } from './github-query-items'; import { getDisplayName, getNameWithUrl, replaceContent } from './utils'; -const gitHubApiUrl = 'https://api.github.com/search/issues?'; - -if (process.env.GITHUB_TOKEN) { - logger.debug('Using GITHUB_TOKEN from env'); - hostRules.add({ - matchHost: 'api.github.com', - token: process.env.GITHUB_TOKEN, - }); -} - -interface ManagerIssues { - bugs: ItemsEntity[]; - features: ItemsEntity[]; -} - function getTitle(manager: string, displayName: string): string { if (manager === 'regex') { return `Custom Manager Support using Regex`; @@ -35,84 +15,12 @@ function getManagerLink(manager: string): string { return `[\`${manager}\`](${manager}/)`; } -function stringifyIssues(items: ItemsEntity[]): [string, number] { - if (!items) { - return ['', 0]; - } - let list = ''; - for (const item of items) { - list += ` - ${item.title} [#${item.number}](${item.html_url})\n`; - } - return [list, items.length]; -} - -function extractIssues( - managerIssuesMap: Record, - items: ItemsEntity[] -): void { - if (!items || !managerIssuesMap) { - return; - } - for (const item of items) { - const type = item.labels - .find((l) => l.name.startsWith('type:')) - ?.name.split(':')[1]; - if (!type) { - continue; - } - const manager = item.labels - .find((l) => l.name.startsWith('manager:')) - ?.name.split(':')[1]; - if (!manager) { - continue; - } - if (!managerIssuesMap[manager]) { - managerIssuesMap[manager] = { bugs: [], features: [] }; - } - switch (type) { - case 'bug': - managerIssuesMap[manager].bugs.push(item); - break; - case 'feature': - managerIssuesMap[manager].features.push(item); - break; - default: - break; - } - } -} - -export async function getManagersGitHubIssues(): Promise< - Record -> { - const q = `repo:renovatebot/renovate type:issue is:open -label:priority-5-triage`; - const per_page = 100; - const managerIssuesMap: Record = {}; - const githubApi = new GithubHttp('manager-issues'); - try { - const query = getQueryString({ q, per_page }); - const res = await githubApi.getJson( - gitHubApiUrl + query, - { - paginationField: 'items', - paginate: true, - } - ); - const items = res.body?.items ?? []; - extractIssues( - managerIssuesMap, - items.sort((a, b) => a.number - b.number) - ); - } catch (err) { - logger.error({ err }, 'Error getting query results'); - throw err; - } - return managerIssuesMap; -} - -export async function generateManagers(dist: string): Promise { +export async function generateManagers( + dist: string, + managerIssuesMap: OpenItems +): Promise { const managers = getManagers(); - const managerIssuesMap = await getManagersGitHubIssues(); + const allLanguages: Record = {}; for (const [manager, definition] of managers) { const language = definition.language ?? 'other'; @@ -173,30 +81,9 @@ sidebar_label: ${displayName} if (manager !== 'regex') { md += '\n## Additional Information\n\n'; } - md += managerReadmeContent + '\n\n'; - - const [featureList] = stringifyIssues(managerIssuesMap[manager]?.features); - if (featureList) { - md += '## Open feature requests\n\n'; - md += featureList; - md += '\n'; - } + md += managerReadmeContent; - const [bugList] = stringifyIssues(managerIssuesMap[manager]?.bugs); - if (bugList) { - md += '## Open bug reports\n\n'; - md += bugList; - md += '\n'; - } - - if (featureList || bugList) { - const now = DateTime.utc().toFormat('MMMM dd, yyyy'); - const lists = `list of ${featureList ? 'features' : ''}${ - featureList && bugList ? ' and ' : '' - }${bugList ? 'bugs' : ''}`; - md += '\n\n'; - md += `The above ${lists} were current when this page was generated on ${now}.\n`; - } + md += generateFeatureAndBugMarkdown(managerIssuesMap, manager); await updateFile(`${dist}/modules/manager/${manager}/index.md`, md); } diff --git a/tools/docs/platforms.ts b/tools/docs/platforms.ts index e6ac36e1d4d62f..aa83fa273b6bbe 100644 --- a/tools/docs/platforms.ts +++ b/tools/docs/platforms.ts @@ -1,13 +1,20 @@ import { getPlatformList } from '../../lib/modules/platform'; import { readFile, updateFile } from '../utils'; +import { OpenItems, generateFeatureAndBugMarkdown } from './github-query-items'; import { getModuleLink, replaceContent } from './utils'; -export async function generatePlatforms(dist: string): Promise { +export async function generatePlatforms( + dist: string, + platformIssuesMap: OpenItems +): Promise { let platformContent = 'Supported values for `platform` are: '; const platforms = getPlatformList(); for (const platform of platforms) { - const readme = await readFile(`lib/modules/platform/${platform}/index.md`); - await updateFile(`${dist}/modules/platform/${platform}/index.md`, readme); + let md = await readFile(`lib/modules/platform/${platform}/index.md`); + + md += generateFeatureAndBugMarkdown(platformIssuesMap, platform); + + await updateFile(`${dist}/modules/platform/${platform}/index.md`, md); } platformContent += platforms @@ -16,8 +23,7 @@ export async function generatePlatforms(dist: string): Promise { platformContent += '.\n'; - const indexFileName = `docs/usage/modules/platform/index.md`; - let indexContent = await readFile(indexFileName); + let indexContent = await readFile(`docs/usage/modules/platform/index.md`); indexContent = replaceContent(indexContent, platformContent); await updateFile(`${dist}/modules/platform/index.md`, indexContent); } diff --git a/tools/generate-docs.ts b/tools/generate-docs.ts index d4434bf67d2933..6b3f707ba092c8 100644 --- a/tools/generate-docs.ts +++ b/tools/generate-docs.ts @@ -3,6 +3,7 @@ import shell from 'shelljs'; import { getProblems, logger } from '../lib/logger'; import { generateConfig } from './docs/config'; import { generateDatasources } from './docs/datasources'; +import { getOpenGitHubItems } from './docs/github-query-items'; import { generateManagers } from './docs/manager'; import { generateManagerAsdfSupportedPlugins } from './docs/manager-asdf-supported-plugins'; import { generatePlatforms } from './docs/platforms'; @@ -36,8 +37,11 @@ process.on('unhandledRejection', (err) => { return; } + logger.info('* fetching open github issues'); + const openItems = await getOpenGitHubItems(); + logger.info('* platforms'); - await generatePlatforms(dist); + await generatePlatforms(dist, openItems.platforms); // versionings logger.info('* versionings'); @@ -45,11 +49,11 @@ process.on('unhandledRejection', (err) => { // datasources logger.info('* datasources'); - await generateDatasources(dist); + await generateDatasources(dist, openItems.datasources); // managers logger.info('* managers'); - await generateManagers(dist); + await generateManagers(dist, openItems.managers); // managers/asdf supported plugins logger.info('* managers/asdf/supported-plugins'); From ae0ce08448890a9cbe554a21844635a50f3c8823 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 13 Mar 2023 07:03:11 +0100 Subject: [PATCH 139/228] build(deps): update dependency zod to v3.21.1 (#20894) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 75d1e3e672e27d..a14c70eb239467 100644 --- a/package.json +++ b/package.json @@ -240,7 +240,7 @@ "validate-npm-package-name": "5.0.0", "vuln-vects": "1.1.0", "xmldoc": "1.2.0", - "zod": "3.21.0" + "zod": "3.21.1" }, "optionalDependencies": { "re2": "1.18.0" diff --git a/yarn.lock b/yarn.lock index 31690f3069a726..5530815808d8e4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10600,10 +10600,10 @@ yocto-queue@^1.0.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== -zod@3.21.0: - version "3.21.0" - resolved "https://registry.yarnpkg.com/zod/-/zod-3.21.0.tgz#9e3cbbf741071bfed9c000d2b4e64d4d97291d12" - integrity sha512-UYdykTcVxB6lfdyLzAqLyyYAlOcpoluECvjsdoaqfQmz9p+3LRaIqYcNiL/J2kFYp66fBM8wwBvIGVEjq7KtZw== +zod@3.21.1: + version "3.21.1" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.21.1.tgz#ac5bb7cf68876281ebd02f95ac4bb9a080370282" + integrity sha512-+dTu2m6gmCbO9Ahm4ZBDapx2O6ZY9QSPXst2WXjcznPMwf2YNpn3RevLx4KkZp1OPW/ouFcoBtBzFz/LeY69oA== zwitch@^1.0.0: version "1.0.5" From 103eb249cff28dcc0aa0321e0c25dc76f74a64e0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 13 Mar 2023 07:01:54 +0000 Subject: [PATCH 140/228] build(deps): update dependency agentkeepalive to v4.3.0 (#20896) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 16 +--------------- 2 files changed, 2 insertions(+), 16 deletions(-) diff --git a/package.json b/package.json index a14c70eb239467..3a8292bc75b2d0 100644 --- a/package.json +++ b/package.json @@ -164,7 +164,7 @@ "@types/tmp": "0.2.3", "@yarnpkg/core": "3.4.0", "@yarnpkg/parsers": "2.5.1", - "agentkeepalive": "4.2.1", + "agentkeepalive": "4.3.0", "aggregate-error": "3.1.0", "auth-header": "1.0.0", "aws4": "1.12.0", diff --git a/yarn.lock b/yarn.lock index 5530815808d8e4..3b75587619ff63 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3524,16 +3524,7 @@ agent-base@6, agent-base@^6.0.2: dependencies: debug "4" -agentkeepalive@4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.2.1.tgz#a7975cbb9f83b367f06c90cc51ff28fe7d499717" - integrity sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA== - dependencies: - debug "^4.1.0" - depd "^1.1.2" - humanize-ms "^1.2.1" - -agentkeepalive@^4.2.1: +agentkeepalive@4.3.0, agentkeepalive@^4.2.1: version "4.3.0" resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.3.0.tgz#bb999ff07412653c1803b3ced35e50729830a255" integrity sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg== @@ -4637,11 +4628,6 @@ delegates@^1.0.0: resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== -depd@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== - depd@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" From d7abf82c94ded4347af477efddfa74455f835276 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 13 Mar 2023 08:08:23 +0000 Subject: [PATCH 141/228] build(deps): update dependency zod to v3.21.2 (#20897) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 3a8292bc75b2d0..e929db7e27011d 100644 --- a/package.json +++ b/package.json @@ -240,7 +240,7 @@ "validate-npm-package-name": "5.0.0", "vuln-vects": "1.1.0", "xmldoc": "1.2.0", - "zod": "3.21.1" + "zod": "3.21.2" }, "optionalDependencies": { "re2": "1.18.0" diff --git a/yarn.lock b/yarn.lock index 3b75587619ff63..6e02bce8ecbc17 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10586,10 +10586,10 @@ yocto-queue@^1.0.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== -zod@3.21.1: - version "3.21.1" - resolved "https://registry.yarnpkg.com/zod/-/zod-3.21.1.tgz#ac5bb7cf68876281ebd02f95ac4bb9a080370282" - integrity sha512-+dTu2m6gmCbO9Ahm4ZBDapx2O6ZY9QSPXst2WXjcznPMwf2YNpn3RevLx4KkZp1OPW/ouFcoBtBzFz/LeY69oA== +zod@3.21.2: + version "3.21.2" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.21.2.tgz#a25425916d63b74d5ddd0b2a1bf733ecc093964b" + integrity sha512-0Ygy2/IZNIxHterZdHjE5Vb8hp1fUHJD/BGvSHj8QJx+UipEVNvo9WLchoyBpz5JIaN6KmdGDGYdloGzpFK98g== zwitch@^1.0.0: version "1.0.5" From 329b1939adaa3037912cfe87327edbdfed6e1ae4 Mon Sep 17 00:00:00 2001 From: HonkingGoose <34918129+HonkingGoose@users.noreply.github.com> Date: Mon, 13 Mar 2023 10:29:56 +0100 Subject: [PATCH 142/228] docs(automerge): fix broken list layout (#20899) --- docs/usage/key-concepts/automerge.md | 70 ++++++++++++++-------------- 1 file changed, 36 insertions(+), 34 deletions(-) diff --git a/docs/usage/key-concepts/automerge.md b/docs/usage/key-concepts/automerge.md index bee31d4a2f0e79..1ac8ba0877f642 100644 --- a/docs/usage/key-concepts/automerge.md +++ b/docs/usage/key-concepts/automerge.md @@ -119,50 +119,52 @@ The steps to enable GitHub's Merge Queue differ based on whether you use GitHub !!! warning "GitHub Merge Queue is in beta" - GitHub's Merge Queue feature is labeled as a beta feature by GitHub themselves. - The Merge Queue may stop working, have bugs, or maybe you need to update your configuration when GitHub changes things. + GitHub's Merge Queue feature is labeled as a beta feature by GitHub. + The Merge Queue may stop working, have bugs, or you may need to update your configuration when GitHub changes things. #### If you use GitHub Actions If you use GitHub Actions as your CI provider, follow these steps: -1. Add the `on.merge_group` event to your GitHub Action `.yaml` files, for example: - - ```yaml - on: - pull_request: - merge_group: - ``` - -1. On `github.com`: - 1. Go to your repository's "homepage", click on Settings, scroll down to the Pull Requests section, [enable the "Allow auto-merge" checkbox](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-auto-merge-for-pull-requests-in-your-repository#managing-auto-merge) - 1. Go to your repository's branch protection rules for your base branch (usually `main`) and enable the "Require merge queue" setting - 1. Confirm you've set the correct "required checks" for your base branch -1. Allow Renovate to automerge by setting `automerge=true` and `platformAutomerge=true` in your Renovate config file, for example: - - ```json - { - "platformAutomerge": true, - "packageRules": [ - { - "description": "Automerge non-major updates", - "matchUpdateTypes": ["minor", "patch"], - "automerge": true - } - ] - } - ``` +Add the `on.merge_group` event to your GitHub Action `.yaml` files, for example: + +```yaml +on: + pull_request: + merge_group: +``` + +On `github.com`, go to your repository's "homepage", click on Settings, scroll down to the Pull Requests section and [enable the "Allow auto-merge" checkbox](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-auto-merge-for-pull-requests-in-your-repository#managing-auto-merge). + +Then go to your repository's branch protection rules for your base branch (usually `main`) and enable the "Require merge queue" setting. +Confirm you've set the correct "required checks" for your base branch. + +Finally, allow Renovate to automerge by setting `automerge=true` and `platformAutomerge=true` in your Renovate config file, for example: + +```json +{ + "platformAutomerge": true, + "packageRules": [ + { + "description": "Automerge non-major updates", + "matchUpdateTypes": ["minor", "patch"], + "automerge": true + } + ] +} +``` #### If you don't use GitHub Actions If you _don't_ use GitHub Actions as your CI provider, follow these steps: -1. Update your CI provider's configuration so it also runs tests on the temporary `gh-readonly-queue/{base_branch}` branches, read your CI providers's documentation to learn how to do this -1. On `github.com`: - 1. Go to your repository's "homepage", click on Settings, scroll down to the Pull Requests section, [enable the "Allow auto-merge" checkbox](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-auto-merge-for-pull-requests-in-your-repository#managing-auto-merge) - 1. Go to your repository's branch protection rules for your base branch (usually `main`) and enable the "Require merge queue" setting - 1. Confirm you've set the correct "required checks" for your base branch -1. Allow Renovate to automerge by setting `automerge=true` and `platformAutomerge=true` in your Renovate config file (see earlier example) +Update your CI provider's configuration so it also runs tests on the temporary `gh-readonly-queue/{base_branch}` branches, read your CI providers's documentation to learn how to do this. + +On `github.com`, go to your repository's "homepage", click on Settings, scroll down to the Pull Requests section and [enable the "Allow auto-merge" checkbox](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-auto-merge-for-pull-requests-in-your-repository#managing-auto-merge). +Go to your repository's branch protection rules for your base branch (usually `main`) and enable the "Require merge queue" setting. +Confirm you've set the correct "required checks" for your base branch. + +Finally, allow Renovate to automerge by setting `automerge=true` and `platformAutomerge=true` in your Renovate config file (see earlier example). ## Automerging and scheduling From 583bd5323287eb0dba701bd38c64d93074270951 Mon Sep 17 00:00:00 2001 From: Adam Setch Date: Mon, 13 Mar 2023 07:52:06 -0400 Subject: [PATCH 143/228] docs: add @setchy to about-us (#20903) --- docs/usage/about-us.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/usage/about-us.md b/docs/usage/about-us.md index b37185e5d57348..e81a41d3e1e9df 100644 --- a/docs/usage/about-us.md +++ b/docs/usage/about-us.md @@ -37,6 +37,7 @@ Some features made a lot of people happy, and efficient! - [@astellingwerf](https://github.com/astellingwerf) reviews PRs - [@danports](https://github.com/danports) worked on the Flux manager, and other managers. Feel free to ping `@danports` for any Flux-related issue or PR - [@shegox](https://github.com/shegox) worked on the Go manager, and improved our docs +- [@setchy](https://github.com/setchy) focused on Bitbucket Cloud and replacement features ## Renovate development From 5da3aada39452cb7633bcf701c64e560a3e7788b Mon Sep 17 00:00:00 2001 From: HonkingGoose <34918129+HonkingGoose@users.noreply.github.com> Date: Mon, 13 Mar 2023 15:57:44 +0100 Subject: [PATCH 144/228] docs(getting started): simplify (#20900) Co-authored-by: Rhys Arkins --- docs/usage/getting-started/use-cases.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/docs/usage/getting-started/use-cases.md b/docs/usage/getting-started/use-cases.md index 514a4d63ba6bbe..2ae0e8eb9e69fe 100644 --- a/docs/usage/getting-started/use-cases.md +++ b/docs/usage/getting-started/use-cases.md @@ -8,7 +8,7 @@ The original use case, and the most popular one, is for developers to automate d ### Updating of package files -We use the term "package file" to describe files which have references to dependencies. +We use the term "package file" to describe files which reference dependencies. Package files are managed by a "package manager". Example package files include: @@ -21,7 +21,7 @@ Example package files include: Renovate: -1. Scans your repositories to detect package files and their dependencies +1. Scans your repositories to find package files and their dependencies 1. Checks if any newer versions exist 1. Raises Pull Requests for available updates @@ -38,7 +38,7 @@ Many package managers support "lock files", which "freeze" the entire dependency npm, Yarn, Bundler, Composer, Poetry, Pipenv, and Cargo all support or use lock files. If you use a lock file then changes to your package file must come with a compatible change to the lock file. -Renovate can patch/update package files directly, but a lock file is too complex to "reverse engineer". +Renovate can patch/update package files directly, but can't "reverse engineer" lock files. This is why Renovate lets the package manager do the lock file update. A simplified example: @@ -52,12 +52,13 @@ A simplified example: ### Custom dependency extraction Renovate supports 60+ types of package files. -Not all dependencies are detected by default, this can be because: +By default, Renovate finds most dependencies, but there are exceptions. +This can be because: - The package manager/file format is not supported, or - The file format is not a standard or is proprietary -If your dependencies are not detected by default, you can use our "regex" manager to set your own custom patterns to extract dependencies. +If your dependencies are not found by default, you can use our "regex" manager to set your own custom patterns to extract dependencies. You configure the regex manager by telling it: - Which file pattern(s) to match @@ -74,7 +75,7 @@ Renovate is increasingly used for purposes which are traditionally described as It's common for repositories to have DevOps-related files like CI/CD configs, or "Infrastructure as Code" (IaC) files. Examples of IaC files are Docker, Kubernetes or Terraform files. -Renovate handles IaC files as "package managers" and "package files" and can detect and update them. +Renovate handles IaC files as "package managers" and "package files" and can find and update them. #### Docker-compatible images @@ -107,7 +108,7 @@ When you're using tag+digest based images, you'll have immutable builds. ### Internal package updates Your company typically has dozens of repositories, if not hundreds or thousands. -These repositories usually rely on other repositories and may have upstream or downstream internal dependencies. +These repositories often rely on other repositories and may have upstream or downstream internal dependencies. In such cases, it is best practice to: - Update downstream links as soon as possible, and @@ -184,7 +185,7 @@ You can use Renovate's "Dependency Dashboard" on platforms which support dynamic When you enable the Dependency Dashboard, Renovate creates a "Dependency Dashboard" issue. This issue lists all updates which are pending, in progress, or were previously closed ignored. -If you want to get an update ahead of schedule, or want to retry a previously closed update, you can select the update's checkbox in the Dependency Dashboard. +If you want to get an update ahead of schedule, or want to retry a previously closed update: select the update's checkbox in the Dependency Dashboard. ### Dependency Dashboard Approval From eb699b393536c5a912693225d4b851faf3ab14b2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 13 Mar 2023 15:20:16 +0000 Subject: [PATCH 145/228] chore(deps): update dependency eslint-config-prettier to v8.7.0 (#20909) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index e929db7e27011d..871a04fdaf8b76 100644 --- a/package.json +++ b/package.json @@ -299,7 +299,7 @@ "diff": "5.1.0", "emojibase-data": "7.0.1", "eslint": "8.35.0", - "eslint-config-prettier": "8.6.0", + "eslint-config-prettier": "8.7.0", "eslint-formatter-gha": "1.4.2", "eslint-import-resolver-typescript": "3.5.3", "eslint-plugin-import": "2.27.5", diff --git a/yarn.lock b/yarn.lock index 6e02bce8ecbc17..3360c9ce2f93c2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4972,10 +4972,10 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -eslint-config-prettier@8.6.0: - version "8.6.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.6.0.tgz#dec1d29ab728f4fa63061774e1672ac4e363d207" - integrity sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA== +eslint-config-prettier@8.7.0: + version "8.7.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.7.0.tgz#f1cc58a8afebc50980bd53475451df146c13182d" + integrity sha512-HHVXLSlVUhMSmyW4ZzEuvjpwqamgmlfkutD53cYXLikh4pt/modINRcCIApJ84czDxM4GZInwUrromsDdTImTA== eslint-formatter-gha@1.4.2: version "1.4.2" From 465d185b83cbf4a5275344c9bc564aa83edffd22 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 13 Mar 2023 15:21:52 +0000 Subject: [PATCH 146/228] chore(deps): update dependency aws-sdk-client-mock to v2.1.0 (#20908) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 871a04fdaf8b76..0422b21388c310 100644 --- a/package.json +++ b/package.json @@ -291,7 +291,7 @@ "@types/xmldoc": "1.1.6", "@typescript-eslint/eslint-plugin": "5.54.0", "@typescript-eslint/parser": "5.54.0", - "aws-sdk-client-mock": "2.0.1", + "aws-sdk-client-mock": "2.1.0", "callsite": "1.0.0", "common-tags": "1.8.2", "conventional-changelog-conventionalcommits": "5.0.0", diff --git a/yarn.lock b/yarn.lock index 3360c9ce2f93c2..a65c0675641f7d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3749,10 +3749,10 @@ available-typed-arrays@^1.0.5: resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== -aws-sdk-client-mock@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/aws-sdk-client-mock/-/aws-sdk-client-mock-2.0.1.tgz#c37ec569fa88688d8d88d7a7f028af26d6d2086e" - integrity sha512-Ib/AnI8ZdoIxOBbKSs28TUwJb7FI/AYVYn48PcXx6guk5fBs4GZJJEc+Ci9aImRtVmgO6jHN/6Etz17fr6j3qw== +aws-sdk-client-mock@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/aws-sdk-client-mock/-/aws-sdk-client-mock-2.1.0.tgz#58247c0fb651cddedbd093c0c06d6bc0caf82e89" + integrity sha512-JkrPrcEvQ4JwylVdQ0njYQMFVwVaZzoVc557rsCorIMjEtmrFvlVYEfIKWoYw8psU4cLjOMyqpxg65NcAn9fvQ== dependencies: "@types/sinon" "^10.0.10" sinon "^14.0.2" From d46338b6a0c87efd5e978792ff3f0ea15175f38b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 13 Mar 2023 16:47:18 +0000 Subject: [PATCH 147/228] chore(deps): update jest monorepo to v29.5.0 (#20910) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 8 ++--- yarn.lock | 92 ++++++++++++---------------------------------------- 2 files changed, 25 insertions(+), 75 deletions(-) diff --git a/package.json b/package.json index 0422b21388c310..6397adb4ca4e23 100644 --- a/package.json +++ b/package.json @@ -246,9 +246,9 @@ "re2": "1.18.0" }, "devDependencies": { - "@jest/globals": "29.4.3", - "@jest/reporters": "29.4.3", - "@jest/test-result": "29.4.3", + "@jest/globals": "29.5.0", + "@jest/reporters": "29.5.0", + "@jest/test-result": "29.5.0", "@ls-lint/ls-lint": "1.11.2", "@openpgp/web-stream-tools": "0.0.13", "@renovate/eslint-plugin": "file:./tools/eslint", @@ -311,7 +311,7 @@ "glob": "8.1.0", "graphql": "16.6.0", "husky": "8.0.3", - "jest": "29.4.3", + "jest": "29.5.0", "jest-extended": "3.2.4", "jest-junit": "15.0.0", "jest-mock-extended": "3.0.3", diff --git a/yarn.lock b/yarn.lock index a65c0675641f7d..5acd9564d1de60 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1649,7 +1649,7 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^29.4.3", "@jest/console@^29.5.0": +"@jest/console@^29.5.0": version "29.5.0" resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.5.0.tgz#593a6c5c0d3f75689835f1b3b4688c4f8544cb57" integrity sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ== @@ -1661,7 +1661,7 @@ jest-util "^29.5.0" slash "^3.0.0" -"@jest/core@^29.4.3", "@jest/core@^29.5.0": +"@jest/core@^29.5.0": version "29.5.0" resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.5.0.tgz#76674b96904484e8214614d17261cc491e5f1f03" integrity sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ== @@ -1695,7 +1695,7 @@ slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^29.4.3", "@jest/environment@^29.5.0": +"@jest/environment@^29.5.0": version "29.5.0" resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.5.0.tgz#9152d56317c1fdb1af389c46640ba74ef0bb4c65" integrity sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ== @@ -1719,7 +1719,7 @@ dependencies: jest-get-type "^29.4.3" -"@jest/expect@^29.4.3", "@jest/expect@^29.5.0": +"@jest/expect@^29.5.0": version "29.5.0" resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.5.0.tgz#80952f5316b23c483fbca4363ce822af79c38fba" integrity sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g== @@ -1739,17 +1739,7 @@ jest-mock "^29.5.0" jest-util "^29.5.0" -"@jest/globals@29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.4.3.tgz#63a2c4200d11bc6d46f12bbe25b07f771fce9279" - integrity sha512-8BQ/5EzfOLG7AaMcDh7yFCbfRLtsc+09E1RQmRBI4D6QQk4m6NSK/MXo+3bJrBN0yU8A2/VIcqhvsOLFmziioA== - dependencies: - "@jest/environment" "^29.4.3" - "@jest/expect" "^29.4.3" - "@jest/types" "^29.4.3" - jest-mock "^29.4.3" - -"@jest/globals@^29.5.0": +"@jest/globals@29.5.0", "@jest/globals@^29.5.0": version "29.5.0" resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.5.0.tgz#6166c0bfc374c58268677539d0c181f9c1833298" integrity sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ== @@ -1759,37 +1749,7 @@ "@jest/types" "^29.5.0" jest-mock "^29.5.0" -"@jest/reporters@29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.4.3.tgz#0a68a0c0f20554760cc2e5443177a0018969e353" - integrity sha512-sr2I7BmOjJhyqj9ANC6CTLsL4emMoka7HkQpcoMRlhCbQJjz2zsRzw0BDPiPyEFDXAbxKgGFYuQZiSJ1Y6YoTg== - dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.4.3" - "@jest/test-result" "^29.4.3" - "@jest/transform" "^29.4.3" - "@jest/types" "^29.4.3" - "@jridgewell/trace-mapping" "^0.3.15" - "@types/node" "*" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.3" - graceful-fs "^4.2.9" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^5.1.0" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.1.3" - jest-message-util "^29.4.3" - jest-util "^29.4.3" - jest-worker "^29.4.3" - slash "^3.0.0" - string-length "^4.0.1" - strip-ansi "^6.0.0" - v8-to-istanbul "^9.0.1" - -"@jest/reporters@^29.5.0": +"@jest/reporters@29.5.0", "@jest/reporters@^29.5.0": version "29.5.0" resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.5.0.tgz#985dfd91290cd78ddae4914ba7921bcbabe8ac9b" integrity sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA== @@ -1835,17 +1795,7 @@ callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.4.3.tgz#e13d973d16c8c7cc0c597082d5f3b9e7f796ccb8" - integrity sha512-Oi4u9NfBolMq9MASPwuWTlC5WvmNRwI4S8YrQg5R5Gi47DYlBe3sh7ILTqi/LGrK1XUE4XY9KZcQJTH1WJCLLA== - dependencies: - "@jest/console" "^29.4.3" - "@jest/types" "^29.4.3" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" - -"@jest/test-result@^29.4.3", "@jest/test-result@^29.5.0": +"@jest/test-result@29.5.0", "@jest/test-result@^29.5.0": version "29.5.0" resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.5.0.tgz#7c856a6ca84f45cc36926a4e9c6b57f1973f1408" integrity sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ== @@ -1865,7 +1815,7 @@ jest-haste-map "^29.5.0" slash "^3.0.0" -"@jest/transform@^29.4.3", "@jest/transform@^29.5.0": +"@jest/transform@^29.5.0": version "29.5.0" resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.5.0.tgz#cf9c872d0965f0cbd32f1458aa44a2b1988b00f9" integrity sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw== @@ -1886,7 +1836,7 @@ slash "^3.0.0" write-file-atomic "^4.0.2" -"@jest/types@^29.4.3", "@jest/types@^29.5.0": +"@jest/types@^29.5.0": version "29.5.0" resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.5.0.tgz#f59ef9b031ced83047c67032700d8c807d6e1593" integrity sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog== @@ -6506,7 +6456,7 @@ jest-circus@^29.5.0: slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^29.4.3: +jest-cli@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.5.0.tgz#b34c20a6d35968f3ee47a7437ff8e53e086b4a67" integrity sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw== @@ -6662,7 +6612,7 @@ jest-matcher-utils@^29.5.0: jest-get-type "^29.4.3" pretty-format "^29.5.0" -jest-message-util@^29.4.3, jest-message-util@^29.5.0: +jest-message-util@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.5.0.tgz#1f776cac3aca332ab8dd2e3b41625435085c900e" integrity sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA== @@ -6684,7 +6634,7 @@ jest-mock-extended@3.0.3: dependencies: ts-essentials "^7.0.3" -jest-mock@^29.4.3, jest-mock@^29.5.0: +jest-mock@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.5.0.tgz#26e2172bcc71d8b0195081ff1f146ac7e1518aed" integrity sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw== @@ -6810,7 +6760,7 @@ jest-snapshot@^29.5.0: pretty-format "^29.5.0" semver "^7.3.5" -jest-util@^29.0.0, jest-util@^29.4.3, jest-util@^29.5.0: +jest-util@^29.0.0, jest-util@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.5.0.tgz#24a4d3d92fc39ce90425311b23c27a6e0ef16b8f" integrity sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ== @@ -6848,7 +6798,7 @@ jest-watcher@^29.5.0: jest-util "^29.5.0" string-length "^4.0.1" -jest-worker@^29.4.3, jest-worker@^29.5.0: +jest-worker@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.5.0.tgz#bdaefb06811bd3384d93f009755014d8acb4615d" integrity sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA== @@ -6858,15 +6808,15 @@ jest-worker@^29.4.3, jest-worker@^29.5.0: merge-stream "^2.0.0" supports-color "^8.0.0" -jest@29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.4.3.tgz#1b8be541666c6feb99990fd98adac4737e6e6386" - integrity sha512-XvK65feuEFGZT8OO0fB/QAQS+LGHvQpaadkH5p47/j3Ocqq3xf2pK9R+G0GzgfuhXVxEv76qCOOcMb5efLk6PA== +jest@29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.5.0.tgz#f75157622f5ce7ad53028f2f8888ab53e1f1f24e" + integrity sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ== dependencies: - "@jest/core" "^29.4.3" - "@jest/types" "^29.4.3" + "@jest/core" "^29.5.0" + "@jest/types" "^29.5.0" import-local "^3.0.2" - jest-cli "^29.4.3" + jest-cli "^29.5.0" js-sdsl@^4.1.4: version "4.3.0" From 381204535a482e432f3ddf48a398b1c6dfc2f694 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 13 Mar 2023 17:47:24 +0000 Subject: [PATCH 148/228] chore(deps): update dependency rimraf to v4.3.1 (#20912) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 6397adb4ca4e23..0856cfdc9ed8b1 100644 --- a/package.json +++ b/package.json @@ -322,7 +322,7 @@ "mockdate": "3.0.5", "nock": "13.3.0", "npm-run-all": "4.1.5", - "rimraf": "4.3.0", + "rimraf": "4.3.1", "semantic-release": "20.1.1", "shelljs": "0.8.5", "strip-ansi": "6.0.1", diff --git a/yarn.lock b/yarn.lock index 5acd9564d1de60..5768d456f9fc28 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9087,10 +9087,10 @@ rfdc@^1.3.0: resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== -rimraf@4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-4.3.0.tgz#cd4d9a918c1735197e0ae8217e5eeb4657d42154" - integrity sha512-5qVDXPbByA1qSJEWMv1qAwKsoS22vVpsL2QyxCKBw4gf6XiFo1K3uRLY6uSOOBFDwnqAZtnbILqWKKlzh8bkGg== +rimraf@4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-4.3.1.tgz#ccb3525e39100478acb334fae6d23029b87912ea" + integrity sha512-GfHJHBzFQra23IxDzIdBqhOWfbtdgS1/dCHrDy+yvhpoJY5TdwdT28oWaHWfRpKFDLd3GZnGTx6Mlt4+anbsxQ== dependencies: glob "^9.2.0" From 75993aa802a1fde88f1e64564bb49d4b897dfc27 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 13 Mar 2023 18:42:53 +0000 Subject: [PATCH 149/228] chore(deps): update linters to v5.54.1 (#20914) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +-- yarn.lock | 90 ++++++++++++---------------------------------------- 2 files changed, 23 insertions(+), 71 deletions(-) diff --git a/package.json b/package.json index 0856cfdc9ed8b1..73cbd480142538 100644 --- a/package.json +++ b/package.json @@ -289,8 +289,8 @@ "@types/url-join": "4.0.1", "@types/validate-npm-package-name": "4.0.0", "@types/xmldoc": "1.1.6", - "@typescript-eslint/eslint-plugin": "5.54.0", - "@typescript-eslint/parser": "5.54.0", + "@typescript-eslint/eslint-plugin": "5.54.1", + "@typescript-eslint/parser": "5.54.1", "aws-sdk-client-mock": "2.1.0", "callsite": "1.0.0", "common-tags": "1.8.2", diff --git a/yarn.lock b/yarn.lock index 5768d456f9fc28..b2a505a8cce314 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3202,14 +3202,14 @@ dependencies: "@types/node" "*" -"@typescript-eslint/eslint-plugin@5.54.0": - version "5.54.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.54.0.tgz#2c821ad81b2c786d142279a8292090f77d1881f4" - integrity sha512-+hSN9BdSr629RF02d7mMtXhAJvDTyCbprNYJKrXETlul/Aml6YZwd90XioVbjejQeHbb3R8Dg0CkRgoJDxo8aw== - dependencies: - "@typescript-eslint/scope-manager" "5.54.0" - "@typescript-eslint/type-utils" "5.54.0" - "@typescript-eslint/utils" "5.54.0" +"@typescript-eslint/eslint-plugin@5.54.1": + version "5.54.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.54.1.tgz#0c5091289ce28372e38ab8d28e861d2dbe1ab29e" + integrity sha512-a2RQAkosH3d3ZIV08s3DcL/mcGc2M/UC528VkPULFxR9VnVPT8pBu0IyBAJJmVsCmhVfwQX1v6q+QGnmSe1bew== + dependencies: + "@typescript-eslint/scope-manager" "5.54.1" + "@typescript-eslint/type-utils" "5.54.1" + "@typescript-eslint/utils" "5.54.1" debug "^4.3.4" grapheme-splitter "^1.0.4" ignore "^5.2.0" @@ -3225,24 +3225,16 @@ dependencies: "@typescript-eslint/utils" "5.54.1" -"@typescript-eslint/parser@5.54.0": - version "5.54.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.54.0.tgz#def186eb1b1dbd0439df0dacc44fb6d8d5c417fe" - integrity sha512-aAVL3Mu2qTi+h/r04WI/5PfNWvO6pdhpeMRWk9R7rEV4mwJNzoWf5CCU5vDKBsPIFQFjEq1xg7XBI2rjiMXQbQ== +"@typescript-eslint/parser@5.54.1": + version "5.54.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.54.1.tgz#05761d7f777ef1c37c971d3af6631715099b084c" + integrity sha512-8zaIXJp/nG9Ff9vQNh7TI+C3nA6q6iIsGJ4B4L6MhZ7mHnTMR4YP5vp2xydmFXIy8rpyIVbNAG44871LMt6ujg== dependencies: - "@typescript-eslint/scope-manager" "5.54.0" - "@typescript-eslint/types" "5.54.0" - "@typescript-eslint/typescript-estree" "5.54.0" + "@typescript-eslint/scope-manager" "5.54.1" + "@typescript-eslint/types" "5.54.1" + "@typescript-eslint/typescript-estree" "5.54.1" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.54.0": - version "5.54.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.54.0.tgz#74b28ac9a3fc8166f04e806c957adb8c1fd00536" - integrity sha512-VTPYNZ7vaWtYna9M4oD42zENOBrb+ZYyCNdFs949GcN8Miwn37b8b7eMj+EZaq7VK9fx0Jd+JhmkhjFhvnovhg== - dependencies: - "@typescript-eslint/types" "5.54.0" - "@typescript-eslint/visitor-keys" "5.54.0" - "@typescript-eslint/scope-manager@5.54.1": version "5.54.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.54.1.tgz#6d864b4915741c608a58ce9912edf5a02bb58735" @@ -3251,39 +3243,21 @@ "@typescript-eslint/types" "5.54.1" "@typescript-eslint/visitor-keys" "5.54.1" -"@typescript-eslint/type-utils@5.54.0": - version "5.54.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.54.0.tgz#390717216eb61393a0cad2995da154b613ba7b26" - integrity sha512-WI+WMJ8+oS+LyflqsD4nlXMsVdzTMYTxl16myXPaCXnSgc7LWwMsjxQFZCK/rVmTZ3FN71Ct78ehO9bRC7erYQ== +"@typescript-eslint/type-utils@5.54.1": + version "5.54.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.54.1.tgz#4825918ec27e55da8bb99cd07ec2a8e5f50ab748" + integrity sha512-WREHsTz0GqVYLIbzIZYbmUUr95DKEKIXZNH57W3s+4bVnuF1TKe2jH8ZNH8rO1CeMY3U4j4UQeqPNkHMiGem3g== dependencies: - "@typescript-eslint/typescript-estree" "5.54.0" - "@typescript-eslint/utils" "5.54.0" + "@typescript-eslint/typescript-estree" "5.54.1" + "@typescript-eslint/utils" "5.54.1" debug "^4.3.4" tsutils "^3.21.0" -"@typescript-eslint/types@5.54.0": - version "5.54.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.54.0.tgz#7d519df01f50739254d89378e0dcac504cab2740" - integrity sha512-nExy+fDCBEgqblasfeE3aQ3NuafBUxZxgxXcYfzYRZFHdVvk5q60KhCSkG0noHgHRo/xQ/BOzURLZAafFpTkmQ== - "@typescript-eslint/types@5.54.1": version "5.54.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.54.1.tgz#29fbac29a716d0f08c62fe5de70c9b6735de215c" integrity sha512-G9+1vVazrfAfbtmCapJX8jRo2E4MDXxgm/IMOF4oGh3kq7XuK3JRkOg6y2Qu1VsTRmWETyTkWt1wxy7X7/yLkw== -"@typescript-eslint/typescript-estree@5.54.0": - version "5.54.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.54.0.tgz#f6f3440cabee8a43a0b25fa498213ebb61fdfe99" - integrity sha512-X2rJG97Wj/VRo5YxJ8Qx26Zqf0RRKsVHd4sav8NElhbZzhpBI8jU54i6hfo9eheumj4oO4dcRN1B/zIVEqR/MQ== - dependencies: - "@typescript-eslint/types" "5.54.0" - "@typescript-eslint/visitor-keys" "5.54.0" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.3.7" - tsutils "^3.21.0" - "@typescript-eslint/typescript-estree@5.54.1": version "5.54.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.54.1.tgz#df7b6ae05fd8fef724a87afa7e2f57fa4a599be1" @@ -3297,20 +3271,6 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/utils@5.54.0": - version "5.54.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.54.0.tgz#3db758aae078be7b54b8ea8ea4537ff6cd3fbc21" - integrity sha512-cuwm8D/Z/7AuyAeJ+T0r4WZmlnlxQ8wt7C7fLpFlKMR+dY6QO79Cq1WpJhvZbMA4ZeZGHiRWnht7ZJ8qkdAunw== - dependencies: - "@types/json-schema" "^7.0.9" - "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.54.0" - "@typescript-eslint/types" "5.54.0" - "@typescript-eslint/typescript-estree" "5.54.0" - eslint-scope "^5.1.1" - eslint-utils "^3.0.0" - semver "^7.3.7" - "@typescript-eslint/utils@5.54.1", "@typescript-eslint/utils@^5.10.0": version "5.54.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.54.1.tgz#7a3ee47409285387b9d4609ea7e1020d1797ec34" @@ -3325,14 +3285,6 @@ eslint-utils "^3.0.0" semver "^7.3.7" -"@typescript-eslint/visitor-keys@5.54.0": - version "5.54.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.54.0.tgz#846878afbf0cd67c19cfa8d75947383d4490db8f" - integrity sha512-xu4wT7aRCakGINTLGeyGqDn+78BwFlggwBjnHa1ar/KaGagnmwLYmlrXIrgAaQ3AE1Vd6nLfKASm7LrFHNbKGA== - dependencies: - "@typescript-eslint/types" "5.54.0" - eslint-visitor-keys "^3.3.0" - "@typescript-eslint/visitor-keys@5.54.1": version "5.54.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.54.1.tgz#d7a8a0f7181d6ac748f4d47b2306e0513b98bf8b" From 39caa803157de4d1ec245d7c1aa5663bcf073639 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 13 Mar 2023 18:43:00 +0000 Subject: [PATCH 150/228] chore(deps): update dependency lint-staged to v13.1.4 (#20913) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index 73cbd480142538..0c4135fb5e53a4 100644 --- a/package.json +++ b/package.json @@ -315,7 +315,7 @@ "jest-extended": "3.2.4", "jest-junit": "15.0.0", "jest-mock-extended": "3.0.3", - "lint-staged": "13.1.3", + "lint-staged": "13.1.4", "markdownlint-cli2": "0.6.0", "memfs": "3.4.13", "mock-fs": "5.2.0", diff --git a/yarn.lock b/yarn.lock index b2a505a8cce314..c1a8cd6c0e6811 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3987,6 +3987,11 @@ chalk@4.1.2, chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: ansi-styles "^4.1.0" supports-color "^7.1.0" +chalk@5.2.0, chalk@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.2.0.tgz#249623b7d66869c673699fb66d65723e54dfcfb3" + integrity sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA== + chalk@^2.0.0, chalk@^2.3.2, chalk@^2.4.1: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" @@ -4004,11 +4009,6 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.2.0.tgz#249623b7d66869c673699fb66d65723e54dfcfb3" - integrity sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA== - changelog-filename-regex@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/changelog-filename-regex/-/changelog-filename-regex-2.0.1.tgz#88944bd89a076fc572c0ab6b4a4f2bc2572ac02d" @@ -7071,13 +7071,13 @@ linkify-it@^4.0.1: dependencies: uc.micro "^1.0.1" -lint-staged@13.1.3: - version "13.1.3" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.1.3.tgz#5bf0ff98725e3354fb16dcd252b9a5e66bc8dcc7" - integrity sha512-PLbSCYUvW8lcwJ9koMFerBrJ16GsNivu1eDahMKgYlFa0f2rr2+rGVjj27L+1rg9JAz+DZesB+kXCAWHQJN9VQ== +lint-staged@13.1.4: + version "13.1.4" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.1.4.tgz#23969fea0bd89f266cb07227b2c9185e44e5b6fd" + integrity sha512-pJRmnRA4I4Rcc1k9GZIh9LQJlolCVDHqtJpIgPY7t99XY3uXXmUeDfhRLELYLgUFJPmEsWevTqarex9acSfx2A== dependencies: + chalk "5.2.0" cli-truncate "^3.1.0" - colorette "^2.0.19" commander "^10.0.0" debug "^4.3.4" execa "^7.0.0" From 182b01af0352e28263b2b5db32595008f1be3d5f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 14 Mar 2023 00:45:46 +0000 Subject: [PATCH 151/228] build(deps): update dependency zod to v3.21.3 (#20916) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 0c4135fb5e53a4..4f088673950b27 100644 --- a/package.json +++ b/package.json @@ -240,7 +240,7 @@ "validate-npm-package-name": "5.0.0", "vuln-vects": "1.1.0", "xmldoc": "1.2.0", - "zod": "3.21.2" + "zod": "3.21.3" }, "optionalDependencies": { "re2": "1.18.0" diff --git a/yarn.lock b/yarn.lock index c1a8cd6c0e6811..4846a9f133be18 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10488,10 +10488,10 @@ yocto-queue@^1.0.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== -zod@3.21.2: - version "3.21.2" - resolved "https://registry.yarnpkg.com/zod/-/zod-3.21.2.tgz#a25425916d63b74d5ddd0b2a1bf733ecc093964b" - integrity sha512-0Ygy2/IZNIxHterZdHjE5Vb8hp1fUHJD/BGvSHj8QJx+UipEVNvo9WLchoyBpz5JIaN6KmdGDGYdloGzpFK98g== +zod@3.21.3: + version "3.21.3" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.21.3.tgz#4ce194ae8f254fc102099a0292af66aa17c4ae7f" + integrity sha512-tz1QgJomEhMTQhOBvQxnnrTo8q77EjpGLlaWicCoEEkMzScuONzDkJKIHr83CS89fGY24iGCStj2ZOCHpPOEyA== zwitch@^1.0.0: version "1.0.5" From 7b627e390000be58196ce805ae2a428887e661d3 Mon Sep 17 00:00:00 2001 From: Maxime Brunet Date: Mon, 13 Mar 2023 22:09:15 -0700 Subject: [PATCH 152/228] fix(gomod): skip updating import path for incompatible versions (#20812) --- lib/modules/manager/gomod/artifacts.spec.ts | 49 +++++++++++++++++++++ lib/modules/manager/gomod/artifacts.ts | 7 ++- lib/modules/manager/gomod/update.spec.ts | 21 ++++++++- lib/modules/manager/gomod/update.ts | 3 +- 4 files changed, 75 insertions(+), 5 deletions(-) diff --git a/lib/modules/manager/gomod/artifacts.spec.ts b/lib/modules/manager/gomod/artifacts.spec.ts index 4c913e7fdff302..667eee6bdd7a3d 100644 --- a/lib/modules/manager/gomod/artifacts.spec.ts +++ b/lib/modules/manager/gomod/artifacts.spec.ts @@ -1434,6 +1434,55 @@ describe('modules/manager/gomod/artifacts', () => { ]); }); + it('skips updating import paths when incompatible version', async () => { + fs.readLocalFile + .mockResolvedValueOnce('Current go.sum') + .mockResolvedValueOnce(null); // vendor modules filename + const execSnapshots = mockExecAll(); + git.getRepoStatus.mockResolvedValueOnce( + partial({ + modified: ['go.sum'], + }) + ); + fs.readLocalFile + .mockResolvedValueOnce('New go.sum') + .mockResolvedValueOnce('New go.mod'); + expect( + await gomod.updateArtifacts({ + packageFileName: 'go.mod', + updatedDeps: [ + { + depName: 'github.com/docker/docker', + newVersion: 'v23.0.0+incompatible', + }, + ], + newPackageFileContent: gomod1, + config: { + ...config, + updateType: 'major', + postUpdateOptions: ['gomodUpdateImportPaths'], + }, + }) + ).toEqual([ + { file: { type: 'addition', path: 'go.sum', contents: 'New go.sum' } }, + { file: { type: 'addition', path: 'go.mod', contents: 'New go.mod' } }, + ]); + expect(execSnapshots).toMatchObject([ + { + cmd: 'go get -d -t ./...', + options: { cwd: '/tmp/github/some/repo' }, + }, + { + cmd: 'go mod tidy', + options: { cwd: '/tmp/github/some/repo' }, + }, + { + cmd: 'go mod tidy', + options: { cwd: '/tmp/github/some/repo' }, + }, + ]); + }); + it('skips gomodTidy without gomodUpdateImportPaths on major update', async () => { fs.readLocalFile.mockResolvedValueOnce('Current go.sum'); fs.readLocalFile.mockResolvedValueOnce(null); // vendor modules filename diff --git a/lib/modules/manager/gomod/artifacts.ts b/lib/modules/manager/gomod/artifacts.ts index 570ffed67a64be..6ef9025014685b 100644 --- a/lib/modules/manager/gomod/artifacts.ts +++ b/lib/modules/manager/gomod/artifacts.ts @@ -129,14 +129,17 @@ function getUpdateImportPathCmds( } const updateImportCommands = updatedDeps - .filter(({ newVersion }) => valid(newVersion)) + .filter( + ({ newVersion }) => + valid(newVersion) && !newVersion!.endsWith('+incompatible') + ) .map(({ depName, newVersion }) => ({ depName: depName!, newMajor: major(newVersion!), })) // Skip path updates going from v0 to v1 .filter( - ({ depName, newMajor }) => depName.startsWith('gopkg.in') || newMajor > 1 + ({ depName, newMajor }) => depName.startsWith('gopkg.in/') || newMajor > 1 ) .map( diff --git a/lib/modules/manager/gomod/update.spec.ts b/lib/modules/manager/gomod/update.spec.ts index 240eb184eec377..6270bb8cc74300 100644 --- a/lib/modules/manager/gomod/update.spec.ts +++ b/lib/modules/manager/gomod/update.spec.ts @@ -96,7 +96,7 @@ describe('modules/manager/gomod/update', () => { depType: 'require', }; const res = updateDependency({ fileContent: gomod1, upgrade }); - expect(res).not.toEqual(gomod2); + expect(res).not.toEqual(gomod1); expect(res).toContain('github.com/pkg/errors/v2 v2.0.0'); }); @@ -112,10 +112,27 @@ describe('modules/manager/gomod/update', () => { }; const res = updateDependency({ fileContent: gomod1, upgrade }); expect(res).toMatchSnapshot(); - expect(res).not.toEqual(gomod2); + expect(res).not.toEqual(gomod1); expect(res).toContain('gopkg.in/russross/blackfriday.v2 v2.0.0'); }); + it('skip replacing incompatible major updates', () => { + const upgrade = { + depName: 'github.com/Azure/azure-sdk-for-go', + managerData: { lineNumber: 8 }, + newMajor: 26, + updateType: 'major' as UpdateType, + currentValue: 'v25.1.0+incompatible', + newValue: 'v26.0.0+incompatible', + depType: 'require', + }; + const res = updateDependency({ fileContent: gomod1, upgrade }); + expect(res).not.toEqual(gomod1); + expect(res).toContain( + 'github.com/Azure/azure-sdk-for-go v26.0.0+incompatible' + ); + }); + it('returns null if mismatch', () => { const upgrade = { depName: 'github.com/aws/aws-sdk-go', diff --git a/lib/modules/manager/gomod/update.ts b/lib/modules/manager/gomod/update.ts index 47202948da111f..d2839abce36647 100644 --- a/lib/modules/manager/gomod/update.ts +++ b/lib/modules/manager/gomod/update.ts @@ -105,7 +105,8 @@ export function updateDependency({ ); } else if ( upgrade.newMajor! > 1 && - !newLine.includes(`/v${upgrade.newMajor}`) + !newLine.includes(`/v${upgrade.newMajor}`) && + !upgrade.newValue!.endsWith('+incompatible') ) { if (depName === depNameNoVersion) { // If package currently has no version, pin to latest one. From 3f5a0c04f5743319462cadfc390c5dd9130f6954 Mon Sep 17 00:00:00 2001 From: Martin Herndl Date: Tue, 14 Mar 2023 06:10:30 +0100 Subject: [PATCH 153/228] feat(composer): skip path repo dependencies (#20887) --- lib/modules/manager/composer/extract.spec.ts | 30 ++++++++++++++++++++ lib/modules/manager/composer/extract.ts | 9 ++++++ lib/modules/manager/composer/types.ts | 2 +- 3 files changed, 40 insertions(+), 1 deletion(-) diff --git a/lib/modules/manager/composer/extract.spec.ts b/lib/modules/manager/composer/extract.spec.ts index bee3f2ec6cbd7a..617db0e7245fe2 100644 --- a/lib/modules/manager/composer/extract.spec.ts +++ b/lib/modules/manager/composer/extract.spec.ts @@ -1,3 +1,4 @@ +import { codeBlock } from 'common-tags'; import { Fixtures } from '../../../../test/fixtures'; import { fs } from '../../../../test/util'; import { extractPackageFile } from '.'; @@ -248,6 +249,35 @@ describe('modules/manager/composer/extract', () => { }); }); + it('skips path dependencies', async () => { + const res = await extractPackageFile( + codeBlock` + { + "name": "acme/path-sources", + "description": "Fetch Packages via path", + "repositories": { + "acme/path1": { + "type": "path", + "url": "packages/acme/path1" + } + }, + "require": { + "acme/path1": "*" + } + } + `, + packageFile + ); + expect(res?.deps).toEqual([ + { + currentValue: '*', + depName: 'acme/path1', + depType: 'require', + skipReason: 'path-dependency', + }, + ]); + }); + it('extracts dependencies with lock file', async () => { fs.readLocalFile.mockResolvedValue('some content'); const res = await extractPackageFile(requirements1, packageFile); diff --git a/lib/modules/manager/composer/extract.ts b/lib/modules/manager/composer/extract.ts index 2b8588b7bb5716..ae40abec469249 100644 --- a/lib/modules/manager/composer/extract.ts +++ b/lib/modules/manager/composer/extract.ts @@ -46,6 +46,7 @@ function parseRepositories( switch (repo.type) { case 'vcs': case 'git': + case 'path': repositories[name!] = repo; break; case 'composer': @@ -144,6 +145,14 @@ export async function extractPackageFile( datasource = GitTagsDatasource.id; packageName = repositories[depName].url; break; + case 'path': + deps.push({ + depType, + depName, + currentValue, + skipReason: 'path-dependency', + }); + continue; } } const dep: PackageDependency = { diff --git a/lib/modules/manager/composer/types.ts b/lib/modules/manager/composer/types.ts index 896ff7bd8b0dee..c46f294d0cf861 100644 --- a/lib/modules/manager/composer/types.ts +++ b/lib/modules/manager/composer/types.ts @@ -1,7 +1,7 @@ // istanbul ignore file: types only export interface Repo { name?: string; - type: 'composer' | 'git' | 'package' | 'vcs'; + type: 'composer' | 'git' | 'package' | 'path' | 'vcs'; packagist?: boolean; 'packagist.org'?: boolean; url: string; From f90a6022a6f0b233d11d9276f339907d556bd9f5 Mon Sep 17 00:00:00 2001 From: HonkingGoose <34918129+HonkingGoose@users.noreply.github.com> Date: Tue, 14 Mar 2023 06:25:26 +0100 Subject: [PATCH 154/228] docs(self-hosted experimental): simplify (#20901) Co-authored-by: Rhys Arkins --- docs/usage/self-hosted-experimental.md | 27 +++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/docs/usage/self-hosted-experimental.md b/docs/usage/self-hosted-experimental.md index c172bdac0aaf18..62b5e65a6cb6cc 100644 --- a/docs/usage/self-hosted-experimental.md +++ b/docs/usage/self-hosted-experimental.md @@ -1,11 +1,11 @@ # Self-hosted experimental environment variables -The following environment variables are "experimental" because: +The following environment variables are "experimental" because they: -- They are not commonly needed -- They are typically an effort to work around some other service's or platform's problem -- They can be removed at any time -- They are variables for Renovate's internal use to validate they work as intended +- are not commonly needed +- are typically an effort to work around some other service's or platform's problem +- can be removed at any time +- are variables for Renovate's internal use to validate they work as intended Experimental variables which are commonly used and for which there is no external solution in sight can be converted to an official configuration option by the Renovate bot developers. @@ -38,7 +38,7 @@ If set to any string, Renovate will use this as the `user-agent` it sends with H ## `RENOVATE_X_HARD_EXIT` If set to any value, Renovate will use a "hard" `process.exit()` once all work is done, even if a sub-process is otherwise delaying Node.js from exiting. -See for background on why this was created. +See [issue 8660](https://github.com/renovatebot/renovate/issues/8660) for background on why this was created. ## `RENOVATE_X_IGNORE_NODE_WARN` @@ -53,15 +53,15 @@ Read [platform details](modules/platform/gitlab/index.md) to learn why we need t ## `RENOVATE_X_S3_ENDPOINT` -If set, Renovate will use this string as the `endpoint` when instantiating the AWS s3 client. +If set, Renovate will use this string as the `endpoint` when instantiating the AWS S3 client. ## `RENOVATE_X_S3_PATH_STYLE` -If set, Renovate will enable `forcePathStyle` when instantiating the AWS s3 client. +If set, Renovate will enable `forcePathStyle` when instantiating the AWS S3 client. -> Whether to force path style URLs for S3 objects (e.g., `https://s3.amazonaws.com//` instead of `https://.s3.amazonaws.com/` +> Whether to force path style URLs for S3 objects (e.g., `https://s3.amazonaws.com//` instead of `https://.s3.amazonaws.com/`) -Source: [AWS s3 documentation - Interface BucketEndpointInputConfig](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-s3/interfaces/bucketendpointinputconfig.html) +Source: [AWS S3 documentation - Interface BucketEndpointInputConfig](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-s3/interfaces/bucketendpointinputconfig.html) ## `RENOVATE_X_EXEC_GPID_HANDLE` @@ -69,7 +69,12 @@ If set, Renovate will terminate the whole process group of a terminated child pr ## `RENOVATE_X_MATCH_PACKAGE_NAMES_MORE` -If set, Renovate will try to match against `packageName` after trying `depName` When using `matchPackageNames` & `matchPackagePatterns` matchers. +If set, you'll get the following behavior. + +When using `matchPackageNames` and `matchPackagePatterns` matchers: + +1. Renovate first tries to match against `depName` +2. If `depName` doesn't match then Renovate tries to match against `packageName` ## `RENOVATE_X_AUTODISCOVER_REPO_SORT` From 1da1bc4885ca57fb070ab527befdf1029f97c393 Mon Sep 17 00:00:00 2001 From: wwuck <301402+wwuck@users.noreply.github.com> Date: Tue, 14 Mar 2023 16:56:07 +1100 Subject: [PATCH 155/228] docs: reduce ambiguity in gitLabIgnoreApprovals docs (#20918) --- docs/usage/configuration-options.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage/configuration-options.md b/docs/usage/configuration-options.md index 6912e64938eb5f..4b4328cd6b7ebf 100644 --- a/docs/usage/configuration-options.md +++ b/docs/usage/configuration-options.md @@ -963,7 +963,7 @@ Example: Ignore the default project level approval(s), so that Renovate bot can automerge its merge requests, without needing approval(s). Under the hood, it creates a MR-level approval rule where `approvals_required` is set to `0`. -This option works only when `automerge=true`, `automergeType=pr` or `automergeType=branch` and `platformAutomerge=true`. +This option works only when `automerge=true`, `automergeType=pr` or `automergeType=branch`, and `platformAutomerge=true`. Also, approval rules overriding should not be [prevented in GitLab settings](https://docs.gitlab.com/ee/user/project/merge_requests/approvals/settings.html#prevent-editing-approval-rules-in-merge-requests). ## golang From 69c15abdcce0393e339255c95af489b406049d75 Mon Sep 17 00:00:00 2001 From: Florian Greinacher Date: Tue, 14 Mar 2023 06:57:13 +0100 Subject: [PATCH 156/228] feat: add replacements for Kubernetes container registry move (#20898) Co-authored-by: Jamie Magee --- data/k8s-images.json | 871 ++++++++++++++++++ .../internal/auto-generate-replacements.ts | 4 +- lib/config/presets/internal/replacements.ts | 24 +- 3 files changed, 896 insertions(+), 3 deletions(-) create mode 100644 data/k8s-images.json diff --git a/data/k8s-images.json b/data/k8s-images.json new file mode 100644 index 00000000000000..8bbb873b13617a --- /dev/null +++ b/data/k8s-images.json @@ -0,0 +1,871 @@ +[ + "addon-builder", + "addon-manager/kube-addon-manager", + "addon-manager/kube-addon-manager-amd64", + "addon-manager/kube-addon-manager-arm", + "addon-manager/kube-addon-manager-arm64", + "addon-manager/kube-addon-manager-ppc64le", + "addon-manager/kube-addon-manager-s390x", + "addon-resizer", + "addon-resizer-amd64", + "addon-resizer-arm", + "addon-resizer-arm64", + "addon-resizer-ppc64le", + "addon-resizer-s390x", + "aggregator", + "alpine-iptables-amd64", + "alpine-iptables-arm", + "alpine-iptables-arm64", + "alpine-with-bash", + "apisnoop/auditlogger", + "apisnoop/snoopdb", + "apparmor-loader", + "artifact-promoter/cip", + "artifact-promoter/cip-auditor", + "artifact-promoter/kpromo", + "artifact-promoter/kpromo-auditor", + "artifact-promoter/vulndash", + "autoscaling/addon-resizer", + "autoscaling/addon-resizer-amd64", + "autoscaling/addon-resizer-arm", + "autoscaling/addon-resizer-arm64", + "autoscaling/addon-resizer-ppc64le", + "autoscaling/addon-resizer-s390x", + "autoscaling/cluster-autoscaler", + "autoscaling/cluster-autoscaler-amd64", + "autoscaling/cluster-autoscaler-arm64", + "autoscaling/vpa-admission-controller", + "autoscaling/vpa-admission-controller-amd64", + "autoscaling/vpa-admission-controller-arm", + "autoscaling/vpa-admission-controller-arm64", + "autoscaling/vpa-admission-controller-ppc64le", + "autoscaling/vpa-admission-controller-s390x", + "autoscaling/vpa-recommender", + "autoscaling/vpa-recommender-amd64", + "autoscaling/vpa-recommender-arm", + "autoscaling/vpa-recommender-arm64", + "autoscaling/vpa-recommender-ppc64le", + "autoscaling/vpa-recommender-s390x", + "autoscaling/vpa-updater", + "autoscaling/vpa-updater-amd64", + "autoscaling/vpa-updater-arm", + "autoscaling/vpa-updater-arm64", + "autoscaling/vpa-updater-ppc64le", + "autoscaling/vpa-updater-s390x", + "bom/bom", + "build-image/debian-base", + "build-image/debian-base-amd64", + "build-image/debian-base-arm", + "build-image/debian-base-arm64", + "build-image/debian-base-ppc64le", + "build-image/debian-base-s390x", + "build-image/debian-hyperkube-base", + "build-image/debian-hyperkube-base-amd64", + "build-image/debian-hyperkube-base-arm", + "build-image/debian-hyperkube-base-arm64", + "build-image/debian-hyperkube-base-ppc64le", + "build-image/debian-hyperkube-base-s390x", + "build-image/debian-iptables", + "build-image/debian-iptables-amd64", + "build-image/debian-iptables-arm", + "build-image/debian-iptables-arm64", + "build-image/debian-iptables-ppc64le", + "build-image/debian-iptables-s390x", + "build-image/distroless-iptables", + "build-image/distroless-iptables-amd64", + "build-image/distroless-iptables-arm", + "build-image/distroless-iptables-arm64", + "build-image/distroless-iptables-ppc64le", + "build-image/distroless-iptables-s390x", + "build-image/go-runner", + "build-image/go-runner-amd64", + "build-image/go-runner-arm", + "build-image/go-runner-arm64", + "build-image/go-runner-ppc64le", + "build-image/go-runner-s390x", + "build-image/kube-cross", + "build-image/kube-cross-amd64", + "build-image/kube-cross-arm64", + "build-image/kube-cross-ppc64le", + "build-image/kube-cross-s390x", + "build-image/setcap", + "build-image/setcap-amd64", + "build-image/setcap-arm", + "build-image/setcap-arm64", + "build-image/setcap-ppc64le", + "build-image/setcap-s390x", + "busybox", + "cadvisor", + "capi-cloudstack/capi-cloudstack-controller", + "capi-docker/capd-manager", + "capi-ibmcloud/cluster-api-ibmcloud-controller", + "capi-kubeadm/cluster-api-kubeadm-controller", + "capi-kubeadm/cluster-api-kubeadm-controller-amd64", + "capi-kubeadm/cluster-api-kubeadm-controller-arm", + "capi-kubeadm/cluster-api-kubeadm-controller-arm64", + "capi-kubeadm/cluster-api-kubeadm-controller-ppc64le", + "capi-kubeadm/cluster-api-kubeadm-controller-s390x", + "capi-openstack/capi-openstack-controller", + "capi-operator/cluster-api-operator", + "cassandra", + "cassandra-e2e-test", + "check-metadata-concealment", + "cloud-controller-manager", + "cloud-controller-manager-amd64", + "cloud-controller-manager-arm", + "cloud-controller-manager-arm64", + "cloud-controller-manager-ppc64le", + "cloud-controller-manager-s390x", + "cloud-provider-gcp/gcp-compute-persistent-disk-csi-driver", + "cloud-provider-gcp/gcp-filestore-csi-driver", + "cloud-provider-ibm/ibm-powervs-block-csi-driver", + "cloud-provider-ibm/ibm-vpc-block-csi-driver", + "cloudsql-authenticator", + "cluster-api-aws/cluster-api-aws-controller", + "cluster-api-aws/cluster-api-aws-controller-amd64", + "cluster-api-aws/cluster-api-aws-controller-arm", + "cluster-api-aws/cluster-api-aws-controller-arm64", + "cluster-api-aws/cluster-api-aws-controller-ppc64le", + "cluster-api-aws/cluster-api-aws-controller-s390x", + "cluster-api-aws/eks-bootstrap-controller", + "cluster-api-aws/eks-controlplane-controller", + "cluster-api-azure/cluster-api-azure-controller", + "cluster-api-do/cluster-api-do-controller", + "cluster-api-gcp/cluster-api-gcp-controller", + "cluster-api-nested/cluster-api-nested-controller", + "cluster-api-nested/nested-controlplane-controller", + "cluster-api/cluster-api-controller", + "cluster-api/cluster-api-controller-amd64", + "cluster-api/cluster-api-controller-arm", + "cluster-api/cluster-api-controller-arm64", + "cluster-api/cluster-api-controller-ppc64le", + "cluster-api/cluster-api-controller-s390x", + "cluster-api/clusterctl", + "cluster-api/kubeadm-bootstrap-controller", + "cluster-api/kubeadm-control-plane-controller", + "cluster-api/plantuml", + "cluster-autoscaler", + "cluster-proportional-autoscaler-amd64", + "cluster-proportional-autoscaler-arm", + "cluster-proportional-autoscaler-arm64", + "cluster-proportional-autoscaler-ppc64le", + "clusterapi-tester", + "clusterregistry", + "conformance", + "conformance-amd64", + "conformance-arm", + "conformance-arm64", + "conformance-ppc64le", + "conformance-s390x", + "coredns", + "coredns/coredns", + "cos-kernel-headers", + "cos-nvidia-driver-install", + "cpa/cluster-proportional-autoscaler", + "cpa/cluster-proportional-autoscaler-amd64", + "cpa/cluster-proportional-autoscaler-arm", + "cpa/cluster-proportional-autoscaler-arm64", + "cpa/cluster-proportional-autoscaler-ppc64le", + "cpa/cpvpa", + "cpa/cpvpa-amd64", + "cpa/cpvpa-arm", + "cpa/cpvpa-arm64", + "cpa/cpvpa-ppc64le", + "cpvpa-amd64", + "csi-secrets-store/driver", + "csi-secrets-store/driver-crds", + "csi/csi-attacher", + "csi/csi-node-driver-registrar", + "csi/csi-provisioner", + "csi/csi-resizer", + "csi/csi-snapshotter", + "csi/livenessprobe", + "csi/mock-driver", + "cuda-vector-add", + "custom-metrics-stackdriver-adapter", + "debian-base", + "debian-base-amd64", + "debian-base-arm", + "debian-base-arm64", + "debian-base-ppc64le", + "debian-base-s390x", + "debian-hyperkube-base", + "debian-hyperkube-base-amd64", + "debian-hyperkube-base-arm", + "debian-hyperkube-base-arm64", + "debian-hyperkube-base-ppc64le", + "debian-hyperkube-base-s390x", + "debian-iptables", + "debian-iptables-amd64", + "debian-iptables-arm", + "debian-iptables-arm64", + "debian-iptables-ppc64le", + "debian-iptables-s390x", + "defaultbackend", + "defaultbackend-amd64", + "defaultbackend-arm", + "defaultbackend-arm64", + "defaultbackend-ppc64le", + "defaultbackend-s390x", + "descheduler/descheduler", + "device-plugin-gpu", + "dns-pod-autoscaler", + "dns-rc-autoscaler", + "dns/k8s-dns-dnsmasq-nanny", + "dns/k8s-dns-dnsmasq-nanny-amd64", + "dns/k8s-dns-dnsmasq-nanny-arm", + "dns/k8s-dns-dnsmasq-nanny-arm64", + "dns/k8s-dns-dnsmasq-nanny-ppc64le", + "dns/k8s-dns-dnsmasq-nanny-s390x", + "dns/k8s-dns-kube-dns", + "dns/k8s-dns-kube-dns-amd64", + "dns/k8s-dns-kube-dns-arm", + "dns/k8s-dns-kube-dns-arm64", + "dns/k8s-dns-kube-dns-ppc64le", + "dns/k8s-dns-kube-dns-s390x", + "dns/k8s-dns-node-cache", + "dns/k8s-dns-node-cache-amd64", + "dns/k8s-dns-node-cache-arm", + "dns/k8s-dns-node-cache-arm64", + "dns/k8s-dns-node-cache-ppc64le", + "dns/k8s-dns-node-cache-s390x", + "dns/k8s-dns-sidecar", + "dns/k8s-dns-sidecar-amd64", + "dns/k8s-dns-sidecar-arm", + "dns/k8s-dns-sidecar-arm64", + "dns/k8s-dns-sidecar-ppc64le", + "dns/k8s-dns-sidecar-s390x", + "dnsmasq", + "dnsmasq-amd64", + "dnsmasq-metrics-amd64", + "dnsmasq-metrics-arm", + "dnsmasq-metrics-arm64", + "dnsmasq-metrics-ppc64le", + "dnsutils", + "e2e-net-amd64", + "e2e-test-images/agnhost", + "e2e-test-images/apparmor-loader", + "e2e-test-images/busybox", + "e2e-test-images/cuda-vector-add", + "e2e-test-images/echoserver", + "e2e-test-images/glusterdynamic-provisioner", + "e2e-test-images/httpd", + "e2e-test-images/ipc-utils", + "e2e-test-images/jessie-dnsutils", + "e2e-test-images/kitten", + "e2e-test-images/metadata-concealment", + "e2e-test-images/nautilus", + "e2e-test-images/nginx", + "e2e-test-images/node-perf/npb-ep", + "e2e-test-images/node-perf/npb-is", + "e2e-test-images/node-perf/tf-wide-deep", + "e2e-test-images/nonewprivs", + "e2e-test-images/nonroot", + "e2e-test-images/perl", + "e2e-test-images/pets/peer-finder", + "e2e-test-images/pets/redis-installer", + "e2e-test-images/pets/zookeeper-installer", + "e2e-test-images/redis", + "e2e-test-images/regression-issue-74839", + "e2e-test-images/resource-consumer", + "e2e-test-images/sample-apiserver", + "e2e-test-images/sample-device-plugin", + "e2e-test-images/volume/gluster", + "e2e-test-images/volume/iscsi", + "e2e-test-images/volume/nfs", + "e2e-test-images/volume/rbd", + "echoserver", + "echoserver-amd64", + "echoserver-arm", + "echoserver-ppc64le", + "elasticsearch", + "eptest", + "etcd", + "etcd-amd64", + "etcd-arm", + "etcd-arm64", + "etcd-empty-dir-cleanup", + "etcd-ppc64le", + "etcd-s390x", + "etcd-statefulset-e2e-test", + "etcd-version-monitor", + "etcd-version-monitor-shyamjvs", + "etcd/etcd", + "etcd/etcd-empty-dir-cleanup", + "etcd_monitor_shyamjvs", + "etcd_probe_shyamjvs", + "etcd_version_monitor", + "etcd_version_monitor_shyamjvs", + "etcdadm/etcd-backup", + "etcdadm/etcd-dump", + "etcdadm/etcd-manager", + "etcdadm/etcd-manager-slim", + "event-exporter", + "example-dns-backend", + "example-dns-frontend", + "example-guestbook-php-redis", + "exechealthz", + "exechealthz-amd64", + "exechealthz-arm", + "exechealthz-arm64", + "exechealthz-ppc64le", + "exechealthz-s390x", + "experimental/conformance", + "experimental/conformance-amd64", + "experimental/conformance-arm", + "experimental/conformance-arm64", + "experimental/conformance-ppc64le", + "experimental/conformance-s390x", + "experimental/kube-apiserver", + "experimental/kube-apiserver-amd64", + "experimental/kube-apiserver-arm", + "experimental/kube-apiserver-arm64", + "experimental/kube-apiserver-ppc64le", + "experimental/kube-apiserver-s390x", + "experimental/kube-scheduler-arm", + "experimental/kube-scheduler-arm64", + "experimental/kube-scheduler-ppc64le", + "experimental/kube-scheduler-s390x", + "explorer", + "external-dns/external-dns", + "fakegitserver", + "federation-apiserver", + "federation-apiserver-amd64", + "federation-apiserver-arm", + "federation-apiserver-arm64", + "federation-apiserver-ppc64le", + "federation-controller-manager", + "federation-controller-manager-amd64", + "federation-controller-manager-arm", + "federation-controller-manager-arm64", + "federation-controller-manager-ppc64le", + "fetcher", + "flannel-amd64", + "flannel-arm", + "flannel-arm64", + "flannel-ppc64le", + "flannel-server-helper", + "fluent-bit-sd", + "fluentd-elasticsearch", + "fluentd-gcp", + "fluentd-gcp-scaler", + "fluentd-journal-gcp", + "fluentd-sidecar-es", + "fluentd-sidecar-gcp", + "galera-install", + "gci-mounter", + "gcp-controller-manager", + "gcsweb", + "gcsweb-amd64", + "gen-swagger-docs", + "git-sync", + "git-sync-amd64", + "git-sync/git-sync", + "github-fetcher", + "github-token-counter", + "github-transform", + "gitolite-http", + "gke-certificates-controller", + "gke-cloud-kms-plugin", + "gke-cloud-kms-sync", + "gke-launcher", + "gke-master-backup", + "gke-metadata-server", + "gke-mpi-api-server", + "gke-mpi-metadata-server", + "gke-node-termination-handler", + "glbc", + "gmsa-webhook/k8s-gmsa-webhook", + "google-containers-test-image", + "goproxy", + "guestbook", + "gvisor-admission-webhook-amd64", + "haproxy", + "healthz-server", + "heapster", + "heapster-amd64", + "heapster-arm", + "heapster-arm64", + "heapster-grafana", + "heapster-grafana-amd64", + "heapster-grafana-arm", + "heapster-grafana-arm64", + "heapster-grafana-ppc64le", + "heapster-grafana-s390x", + "heapster-influxdb", + "heapster-influxdb-amd64", + "heapster-influxdb-arm", + "heapster-influxdb-arm64", + "heapster-influxdb-ppc64le", + "heapster-influxdb-s390x", + "heapster-ppc64le", + "heapster-s390x", + "heapster_grafana", + "heapster_influxdb", + "hostexec", + "hpa-example", + "hpa-example2", + "hugo", + "hyperkube", + "hyperkube-amd64", + "hyperkube-arm", + "hyperkube-arm64", + "hyperkube-ppc64le", + "hyperkube-s390x", + "infra-tools/archeio", + "infra-tools/octodns", + "ingress-gce-404-server-with-metrics-amd64", + "ingress-gce-glbc-amd64", + "ingress-nginx/controller", + "ingress-nginx/controller-chroot", + "ingress-nginx/e2e-test-cfssl", + "ingress-nginx/e2e-test-echo", + "ingress-nginx/e2e-test-fastcgi-helloserver", + "ingress-nginx/e2e-test-httpbin", + "ingress-nginx/e2e-test-runner", + "ingress-nginx/kube-webhook-certgen", + "ingress-nginx/nginx", + "ingress-nginx/nginx-errors", + "ingress-nginx/opentelemetry", + "ingressconformance/echoserver", + "ip-masq-agent", + "ip-masq-agent-amd64", + "ip-masq-agent-arm", + "ip-masq-agent-arm64", + "ip-masq-agent-ppc64le", + "iperf", + "jessie-dnsutils", + "jsandtest", + "k8s-cloud-kms-plugin", + "k8s-custom-iptables", + "k8s-dns-dnsmasq-amd64", + "k8s-dns-dnsmasq-arm", + "k8s-dns-dnsmasq-arm64", + "k8s-dns-dnsmasq-nanny", + "k8s-dns-dnsmasq-nanny-amd64", + "k8s-dns-dnsmasq-nanny-arm", + "k8s-dns-dnsmasq-nanny-arm64", + "k8s-dns-dnsmasq-nanny-ppc64le", + "k8s-dns-dnsmasq-nanny-s390x", + "k8s-dns-dnsmasq-ppc64le", + "k8s-dns-dnsmasq-s390x", + "k8s-dns-e2e-amd64", + "k8s-dns-e2e-arm", + "k8s-dns-e2e-arm64", + "k8s-dns-e2e-ppc64le", + "k8s-dns-ginkgo-amd64", + "k8s-dns-ginkgo-arm", + "k8s-dns-ginkgo-arm64", + "k8s-dns-ginkgo-ppc64le", + "k8s-dns-kube-dns", + "k8s-dns-kube-dns-amd64", + "k8s-dns-kube-dns-arm", + "k8s-dns-kube-dns-arm64", + "k8s-dns-kube-dns-ppc64le", + "k8s-dns-kube-dns-s390x", + "k8s-dns-node-cache", + "k8s-dns-node-cache-amd64", + "k8s-dns-node-cache-arm", + "k8s-dns-node-cache-arm64", + "k8s-dns-node-cache-ppc64le", + "k8s-dns-node-cache-s390x", + "k8s-dns-sidecar", + "k8s-dns-sidecar-amd64", + "k8s-dns-sidecar-arm", + "k8s-dns-sidecar-arm64", + "k8s-dns-sidecar-e2e-amd64", + "k8s-dns-sidecar-e2e-arm", + "k8s-dns-sidecar-e2e-arm64", + "k8s-dns-sidecar-e2e-ppc64le", + "k8s-dns-sidecar-ppc64le", + "k8s-dns-sidecar-s390x", + "k8s-jupyterhub", + "k8s-tpu-operator", + "kas-network-proxy/proxy-agent", + "kas-network-proxy/proxy-server", + "kibana", + "kops/dns-controller", + "kops/dns-controller-amd64", + "kops/dns-controller-arm64", + "kops/kops-controller", + "kops/kops-controller-amd64", + "kops/kops-controller-arm64", + "kops/kube-apiserver-healthcheck", + "kops/kube-apiserver-healthcheck-amd64", + "kops/kube-apiserver-healthcheck-arm64", + "kube-addon-manager", + "kube-addon-manager-amd64", + "kube-addon-manager-arm", + "kube-addon-manager-arm64", + "kube-addon-manager-ppc64le", + "kube-addon-manager-s390x", + "kube-aggregator", + "kube-aggregator-amd64", + "kube-aggregator-arm", + "kube-aggregator-arm64", + "kube-aggregator-ppc64le", + "kube-aggregator-s390x", + "kube-apiserver", + "kube-apiserver-amd64", + "kube-apiserver-arm", + "kube-apiserver-arm64", + "kube-apiserver-ppc64le", + "kube-apiserver-s390x", + "kube-controller-manager", + "kube-controller-manager-amd64", + "kube-controller-manager-arm", + "kube-controller-manager-arm64", + "kube-controller-manager-ppc64le", + "kube-controller-manager-s390x", + "kube-cross", + "kube-discovery-amd64", + "kube-discovery-arm", + "kube-discovery-arm64", + "kube-dns-perf-client-amd64", + "kube-dnsmasq-amd64", + "kube-dnsmasq-arm", + "kube-dnsmasq-arm64", + "kube-dnsmasq-ppc64le", + "kube-haproxy", + "kube-keepalived-vip", + "kube-nethealth-amd64", + "kube-proxy", + "kube-proxy-amd64", + "kube-proxy-arm", + "kube-proxy-arm64", + "kube-proxy-ppc64le", + "kube-proxy-s390x", + "kube-registry-proxy", + "kube-scheduler", + "kube-scheduler-amd64", + "kube-scheduler-arm", + "kube-scheduler-arm64", + "kube-scheduler-ppc64le", + "kube-scheduler-s390x", + "kube-state-metrics", + "kube-state-metrics-amd64", + "kube-state-metrics-arm", + "kube-state-metrics-arm64", + "kube-state-metrics-ppc64le", + "kube-state-metrics-s390x", + "kube-state-metrics/kube-state-metrics", + "kube-state-metrics/kube-state-metrics-amd64", + "kube-state-metrics/kube-state-metrics-arm", + "kube-state-metrics/kube-state-metrics-arm64", + "kube-state-metrics/kube-state-metrics-ppc64le", + "kube-state-metrics/kube-state-metrics-s390x", + "kube-ui", + "kube2sky", + "kube2sky-amd64", + "kube2sky-arm", + "kube2sky-arm64", + "kube2sky-ppc64le", + "kubectl", + "kubedash", + "kubedns-amd64", + "kubedns-arm", + "kubedns-arm64", + "kubedns-ppc64le", + "kubekins-e2e", + "kubekins-job-builder", + "kubekins-test", + "kubelet-to-gcm", + "kubernetes-dashboard", + "kubernetes-dashboard-amd64", + "kubernetes-dashboard-arm", + "kubernetes-dashboard-arm64", + "kubernetes-dashboard-init-amd64", + "kubernetes-dashboard-init-arm", + "kubernetes-dashboard-ppc64le", + "kubernetes-dashboard-s390x", + "kubernetes-kafka", + "kubernetes-zookeeper", + "kubernetes/conformance", + "kubernetes/conformance-amd64", + "kubernetes/conformance-arm", + "kubernetes/conformance-arm64", + "kubernetes/conformance-ppc64le", + "kubernetes/conformance-s390x", + "kubernetes/etcd", + "kubernetes/etcd-empty-dir-cleanup", + "kubernetes/hyperkube", + "kubernetes/hyperkube-amd64", + "kubernetes/hyperkube-arm", + "kubernetes/hyperkube-arm64", + "kubernetes/hyperkube-ppc64le", + "kubernetes/hyperkube-s390x", + "kubernetes/kube-apiserver", + "kubernetes/kube-apiserver-amd64", + "kubernetes/kube-apiserver-arm", + "kubernetes/kube-apiserver-arm64", + "kubernetes/kube-apiserver-ppc64le", + "kubernetes/kube-apiserver-s390x", + "kubernetes/kube-controller-manager", + "kubernetes/kube-controller-manager-amd64", + "kubernetes/kube-controller-manager-arm", + "kubernetes/kube-controller-manager-arm64", + "kubernetes/kube-controller-manager-ppc64le", + "kubernetes/kube-controller-manager-s390x", + "kubernetes/kube-proxy", + "kubernetes/kube-proxy-amd64", + "kubernetes/kube-proxy-arm", + "kubernetes/kube-proxy-arm64", + "kubernetes/kube-proxy-ppc64le", + "kubernetes/kube-proxy-s390x", + "kubernetes/kube-scheduler", + "kubernetes/kube-scheduler-amd64", + "kubernetes/kube-scheduler-arm", + "kubernetes/kube-scheduler-arm64", + "kubernetes/kube-scheduler-ppc64le", + "kubernetes/kube-scheduler-s390x", + "kubernetes/pause", + "kubernetes/pause-amd64", + "kubernetes/pause-arm", + "kubernetes/pause-arm64", + "kubernetes/pause-ppc64le", + "kubernetes/pause-s390x", + "kueue/kueue", + "kustomize/kustomize", + "kwok/cluster", + "kwok/kwok", + "leader-elector", + "liveness", + "loader", + "logexp", + "logexporter", + "logs-generator", + "managed-certificate-controller", + "metadata-proxy", + "metrics-server", + "metrics-server-amd64", + "metrics-server-arm", + "metrics-server-arm64", + "metrics-server-ppc64le", + "metrics-server-s390x", + "metrics-server/metrics-server", + "metrics-server/metrics-server-amd64", + "metrics-server/metrics-server-arm", + "metrics-server/metrics-server-arm64", + "metrics-server/metrics-server-ppc64le", + "metrics-server/metrics-server-s390x", + "minikube-nvidia-driver-installer", + "mongodb-install", + "mounttest", + "mounttest-user", + "multitenancy/externalip-webhook", + "mungegithub", + "mysql-galera", + "mysql-healthz", + "n-way-http", + "netd", + "netd-amd64", + "netexec", + "netproxy", + "nettest", + "networking/ingress-gce-404-server-with-metrics-amd64", + "networking/ip-masq-agent", + "networking/ip-masq-agent-amd64", + "networking/ip-masq-agent-arm", + "networking/ip-masq-agent-arm64", + "networking/ip-masq-agent-ppc64le", + "nfd/node-feature-discovery", + "nfd/node-feature-discovery-operator", + "nginx", + "nginx-ingress", + "nginx-ingress-controller", + "nginx-ingress-controller-amd64", + "nginx-ingress-controller-arm", + "nginx-ingress-controller-arm64", + "nginx-ingress-controller-ppc64le", + "nginx-scale", + "nginx-slim", + "nginx-slim-amd64", + "nginx-slim-arm", + "nginx-slim-arm64", + "nginx-slim-ppc64le", + "nginx-third-party", + "no-snat-test-amd64", + "no-snat-test-proxy-amd64", + "node-conformance", + "node-perf-dash", + "node-problem-detector", + "node-problem-detector/node-problem-detector", + "node-test", + "node-test-amd64", + "node-test-arm", + "node-test-arm64", + "nodejs-election-client", + "non-masquerade-daemon-amd64", + "nonewprivs", + "nvidia-gpu-device-plugin", + "pause", + "pause-amd64", + "pause-arm", + "pause-arm64", + "pause-ppc64le", + "pause-s390x", + "peer-finder", + "perfdash", + "podmaster", + "porter", + "portforwardtester", + "prometheus-adapter/prometheus-adapter", + "prometheus-dummy-exporter", + "prometheus-to-sd", + "provider-aws/aws-ebs-csi-driver", + "provider-aws/cloud-controller-manager", + "provider-os/barbican-kms-plugin", + "provider-os/cinder-csi-plugin", + "provider-os/k8s-keystone-auth", + "provider-os/magnum-auto-healer", + "provider-os/manila-csi-plugin", + "provider-os/octavia-ingress-controller", + "provider-os/openstack-cloud-controller-manager", + "proxy-agent", + "proxy-server", + "proxy-to-service", + "publisher", + "publishing-bot/k8s-publishing-bot", + "python", + "queue-health-base", + "queue-health-graph", + "queue-health-poll", + "redis", + "redis-install", + "redis-install-3.2.0", + "redis-slave", + "registry-promoter-test-image", + "releng/kubepkg", + "releng/kubepkg-rpm", + "releng/releng-ci", + "rescheduler", + "rescheduler-amd64", + "rescheduler-arm", + "rescheduler-arm64", + "rescheduler-ppc64le", + "rescheduler-s390x", + "resource_consumer", + "resource_consumer/controller", + "rethinkdb", + "scheduler-plugins/controller", + "scheduler-plugins/kube-scheduler", + "scl-image-builder/cluster-node-image-builder-amd64", + "sd-dummy-exporter", + "seccomp-operator/seccomp-operator", + "security-profiles-operator-bundle/security-profiles-operator", + "security-profiles-operator-bundle/security-profiles-operator-amd64", + "security-profiles-operator-bundle/security-profiles-operator-arm64", + "security-profiles-operator-bundle/security-profiles-operator-bundle", + "security-profiles-operator-bundle/security-profiles-operator-catalog", + "security-profiles-operator-catalog/security-profiles-operator", + "security-profiles-operator-catalog/security-profiles-operator-amd64", + "security-profiles-operator-catalog/security-profiles-operator-arm64", + "security-profiles-operator-catalog/security-profiles-operator-bundle", + "security-profiles-operator-catalog/security-profiles-operator-catalog", + "security-profiles-operator/security-profiles-operator", + "security-profiles-operator/security-profiles-operator-amd64", + "security-profiles-operator/security-profiles-operator-arm64", + "security-profiles-operator/security-profiles-operator-bundle", + "security-profiles-operator/security-profiles-operator-catalog", + "serve-hostname-amd64", + "serve-hostname-arm", + "serve-hostname-arm64", + "serve-hostname-ppc64le", + "serve-hostname-s390x", + "serve_hostname", + "serve_hostname-amd64", + "serve_hostname-arm", + "serve_hostname-arm64", + "serve_hostname-ppc64le", + "serve_hostname-s390x", + "servicelb", + "shame-mailer", + "shyamjvs-logexp", + "shyamjvs-prometheus-to-sd", + "sig-auth/pod-security-webhook", + "sig-storage/csi-attacher", + "sig-storage/csi-external-health-monitor-agent", + "sig-storage/csi-external-health-monitor-controller", + "sig-storage/csi-node-driver-registrar", + "sig-storage/csi-provisioner", + "sig-storage/csi-resizer", + "sig-storage/csi-snapshotter", + "sig-storage/hello-populator", + "sig-storage/hostpathplugin", + "sig-storage/iscsiplugin", + "sig-storage/livenessprobe", + "sig-storage/local-volume-provisioner", + "sig-storage/mock-driver", + "sig-storage/nfs-provisioner", + "sig-storage/nfs-subdir-external-provisioner", + "sig-storage/nfsplugin", + "sig-storage/smbplugin", + "sig-storage/snapshot-controller", + "sig-storage/snapshot-validation-webhook", + "sig-storage/volume-data-source-validator", + "skydns", + "skydns-amd64", + "skydns-arm", + "skydns-arm64", + "skydns-ppc64le", + "slack-infra/slack-event-log", + "slack-infra/slack-moderator", + "slack-infra/slack-report-message", + "slack-infra/slack-welcomer", + "slack-infra/tempelis", + "slo-monitor", + "spark", + "spark-base", + "spark-driver", + "spark-master", + "spark-worker", + "spartakus-amd64", + "startup-script", + "storage-migrator/storage-version-migration-initializer", + "storage-migrator/storage-version-migration-migrator", + "storage-migrator/storage-version-migration-trigger", + "storage/csi-attacher", + "storage/csi-node-driver-registrar", + "storage/csi-provisioner", + "storage/csi-resizer", + "storage/csi-snapshotter", + "storage/livenessprobe", + "storage/mock-driver", + "stress", + "submit-queue", + "tensorflow-gpu-notebook", + "test-webserver", + "test_subdir_1/test_subdir_2/test_image", + "tf-models", + "tiny-glibc-amd64", + "tiny-glibc-arm", + "tiny-glibc-arm64", + "tiny-glibc-ppc64le", + "toolbox", + "ubuntu", + "ubuntu-nvidia-driver-installer", + "ubuntu-slim", + "ubuntu-slim-amd64", + "ubuntu-slim-arm", + "ubuntu-slim-arm64", + "ubuntu-slim-ppc64le", + "update-demo", + "visio-stencil-creator", + "volume-ceph", + "volume-csi/compute-persistent-disk-csi-driver", + "volume-csi/gcp-compute-persistent-disk-csi-driver", + "volume-csi/gcp-filestore-csi-driver", + "volume-gluster", + "volume-iscsi", + "volume-nfs", + "volume-rbd", + "vpa-admission-controller", + "vpa-recommender", + "vpa-updater", + "watcher-daemonset", + "webhooks-publisher", + "zeppelin", + "zeppelin-proxy", + "zookeeper-install", + "zookeeper-install-3.5.0-alpha" +] diff --git a/lib/config/presets/internal/auto-generate-replacements.ts b/lib/config/presets/internal/auto-generate-replacements.ts index b904b6bcb0c44b..83b07c015bb985 100644 --- a/lib/config/presets/internal/auto-generate-replacements.ts +++ b/lib/config/presets/internal/auto-generate-replacements.ts @@ -4,10 +4,10 @@ import type { Preset } from '../types'; export type Replacement = [string[], string]; export interface ReplacementRule { - matchCurrentVersion: string; + matchCurrentVersion?: string; matchDatasources: string[]; replacements: Replacement[]; - replacementVersion: string; + replacementVersion?: string; } export interface PresetTemplate { diff --git a/lib/config/presets/internal/replacements.ts b/lib/config/presets/internal/replacements.ts index c8f288b76e0bb9..9a9ad7e45a0dc0 100644 --- a/lib/config/presets/internal/replacements.ts +++ b/lib/config/presets/internal/replacements.ts @@ -1,3 +1,5 @@ +import { z } from 'zod'; +import dataFiles from '../../../data-files.generated'; import type { Preset } from '../types'; import { PresetTemplate, @@ -698,6 +700,26 @@ const mui: PresetTemplate = { title: 'material-ui-to-mui', }; +const K8sImagesSchema = z.array(z.string()); + +const k8sImages = K8sImagesSchema.parse( + JSON.parse(dataFiles.get('data/k8s-images.json')!) +); +const k8Registry: PresetTemplate = { + description: + 'The Kubernetes container registry has changed from `k8s.gcr.io` to `registry.k8s.io`.', + packageRules: [ + { + matchDatasources: ['docker'], + replacements: k8sImages.map((k8sImage) => [ + [`k8s.gcr.io/${k8sImage}`], + `registry.k8s.io/${k8sImage}`, + ]), + }, + ], + title: 'k8s-registry-move', +}; + const messageFormat: PresetTemplate = { description: 'The `messageformat` monorepo package naming scheme changed from `messageFormat-{{package}}`-to-`@messageformat/{{package}}`.', @@ -730,4 +752,4 @@ const messageFormat: PresetTemplate = { title: 'messageFormat-{{package}}-to-@messageformat/{{package}}', }; -addPresets(presets, messageFormat, mui); +addPresets(presets, messageFormat, mui, k8Registry); From 688d75c35ed99ede68628f0c3f694a0c6ac3e9ef Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 14 Mar 2023 07:30:24 +0000 Subject: [PATCH 157/228] build(deps): update dependency zod to v3.21.4 (#20919) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 4f088673950b27..4437739aa171a1 100644 --- a/package.json +++ b/package.json @@ -240,7 +240,7 @@ "validate-npm-package-name": "5.0.0", "vuln-vects": "1.1.0", "xmldoc": "1.2.0", - "zod": "3.21.3" + "zod": "3.21.4" }, "optionalDependencies": { "re2": "1.18.0" diff --git a/yarn.lock b/yarn.lock index 4846a9f133be18..00c057769f9804 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10488,10 +10488,10 @@ yocto-queue@^1.0.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== -zod@3.21.3: - version "3.21.3" - resolved "https://registry.yarnpkg.com/zod/-/zod-3.21.3.tgz#4ce194ae8f254fc102099a0292af66aa17c4ae7f" - integrity sha512-tz1QgJomEhMTQhOBvQxnnrTo8q77EjpGLlaWicCoEEkMzScuONzDkJKIHr83CS89fGY24iGCStj2ZOCHpPOEyA== +zod@3.21.4: + version "3.21.4" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.21.4.tgz#10882231d992519f0a10b5dd58a38c9dabbb64db" + integrity sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw== zwitch@^1.0.0: version "1.0.5" From 1b90fd98fc7c62dc674a9e6d40c0d0823c407dcf Mon Sep 17 00:00:00 2001 From: HonkingGoose <34918129+HonkingGoose@users.noreply.github.com> Date: Tue, 14 Mar 2023 09:04:59 +0100 Subject: [PATCH 158/228] docs(configuration options): rewrite `configMigration` (#20902) --- docs/usage/configuration-options.md | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/docs/usage/configuration-options.md b/docs/usage/configuration-options.md index 4b4328cd6b7ebf..44fcb716a718cd 100644 --- a/docs/usage/configuration-options.md +++ b/docs/usage/configuration-options.md @@ -478,12 +478,13 @@ If enabled, all issues created by Renovate are set as confidential, even in a pu ## configMigration -If enabled, Renovate will raise a pull request if config file migration is needed. +If enabled, Renovate raises a pull request when it needs to migrate the Renovate config file. +Renovate only performs `configMigration` on `.json` and `.json5` files. We're adding new features to Renovate bot often. -Most times you can keep using your Renovate config and benefit from the new features right away. -But sometimes you need to change your Renovate configuration. -To help you with this, Renovate will create config migration pull requests. +Often you can keep using your Renovate config and benefit from the new features right away. +But sometimes you need to update your Renovate configuration. +To help you with this, Renovate will create config migration pull requests, when you enable `configMigration`. Example: @@ -497,13 +498,17 @@ After we changed the [`baseBranches`](https://docs.renovatebot.com/configuration ``` -!!! info - This feature writes plain JSON for `.json` files, and JSON5 for `.json5` files. - JSON5 content can potentially be down leveled (`.json` files) and all comments will be removed. +!!! caution + The `configMigration` feature writes plain JSON for `.json` files, and JSON5 for `.json5` files. + Renovate may downgrade JSON5 content to plain JSON. + When downgrading JSON5 to JSON Renovate may also remove the JSON5 comments. + This can happen because Renovate wrongly converts JSON5 to JSON, thus removing the comments. !!! note - Closing the config migration PR will cause it to be ignored and not being reopend/recreated in the future.', + When you close a config migration PR, Renovate ignores it forever. + This also means that Renovate won't create a config migration PR in future. + If you closed the PR by accident, find the closed PR and re-name the PR title to get a new PR. ## configWarningReuseIssue From d458a93356d2593eb5f14c15c04314e364788875 Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Tue, 14 Mar 2023 12:53:43 +0100 Subject: [PATCH 159/228] fix: log duration after rawExec error (#20924) --- lib/util/exec/index.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/util/exec/index.ts b/lib/util/exec/index.ts index ccb99ef13e9a42..c3e802ae892168 100644 --- a/lib/util/exec/index.ts +++ b/lib/util/exec/index.ts @@ -187,7 +187,8 @@ export async function exec( try { res = await rawExec(rawCmd, rawOptions); } catch (err) { - logger.debug({ err }, 'rawExec err'); + const durationMs = Math.round(Date.now() - startTime); + logger.debug({ err, durationMs }, 'rawExec err'); if (useDocker) { await removeDockerContainer(sideCarImage, dockerChildPrefix).catch( (removeErr: Error) => { From b74813180bed00aa8728584940bff921e5d039db Mon Sep 17 00:00:00 2001 From: Florian Greinacher Date: Tue, 14 Mar 2023 19:25:12 +0100 Subject: [PATCH 160/228] fix(presets): add k8s registry move to all replacements (#20928) --- lib/config/presets/internal/replacements.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/config/presets/internal/replacements.ts b/lib/config/presets/internal/replacements.ts index 9a9ad7e45a0dc0..1c4e3c6967a702 100644 --- a/lib/config/presets/internal/replacements.ts +++ b/lib/config/presets/internal/replacements.ts @@ -20,6 +20,7 @@ export const presets: Record = { 'replacements:jade-to-pug', 'replacements:joi-to-scoped', 'replacements:joi-to-unscoped', + 'replacements:k8s-registry-move', 'replacements:middie-to-scoped', 'replacements:now-to-vercel', 'replacements:parcel-css-to-lightningcss', From 3c5224eee48cc5915ff27e29f25436cb04d3a328 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20E=C3=9Flinger?= Date: Tue, 14 Mar 2023 19:29:25 +0100 Subject: [PATCH 161/228] feat: add datasource, versioning and manager for Azure Bicep resources (#20755) Co-authored-by: Michael Kriese Co-authored-by: Jamie Magee Co-authored-by: Rhys Arkins --- docs/usage/.pages | 1 + docs/usage/bicep.md | 45 +++ lib/modules/datasource/api.ts | 2 + .../azure-bicep-resource/index.spec.ts | 124 ++++++++ .../datasource/azure-bicep-resource/index.ts | 88 ++++++ .../datasource/azure-bicep-resource/readme.md | 1 + .../datasource/azure-bicep-resource/schema.ts | 25 ++ lib/modules/manager/api.ts | 2 + lib/modules/manager/bicep/extract.spec.ts | 278 ++++++++++++++++++ lib/modules/manager/bicep/extract.ts | 45 +++ lib/modules/manager/bicep/index.ts | 9 + lib/modules/manager/bicep/readme.md | 1 + lib/modules/versioning/api.ts | 2 + .../versioning/azure-rest-api/index.spec.ts | 137 +++++++++ .../versioning/azure-rest-api/index.ts | 49 +++ .../versioning/azure-rest-api/readme.md | 3 + 16 files changed, 812 insertions(+) create mode 100644 docs/usage/bicep.md create mode 100644 lib/modules/datasource/azure-bicep-resource/index.spec.ts create mode 100644 lib/modules/datasource/azure-bicep-resource/index.ts create mode 100644 lib/modules/datasource/azure-bicep-resource/readme.md create mode 100644 lib/modules/datasource/azure-bicep-resource/schema.ts create mode 100644 lib/modules/manager/bicep/extract.spec.ts create mode 100644 lib/modules/manager/bicep/extract.ts create mode 100644 lib/modules/manager/bicep/index.ts create mode 100644 lib/modules/manager/bicep/readme.md create mode 100644 lib/modules/versioning/azure-rest-api/index.spec.ts create mode 100644 lib/modules/versioning/azure-rest-api/index.ts create mode 100644 lib/modules/versioning/azure-rest-api/readme.md diff --git a/docs/usage/.pages b/docs/usage/.pages index 377432b3aed333..e6e2117b871bdd 100644 --- a/docs/usage/.pages +++ b/docs/usage/.pages @@ -10,6 +10,7 @@ nav: - ... | modules - Language Support: - 'Bazel': 'bazel.md' + - 'Bicep': 'bicep.md' - 'Docker': 'docker.md' - 'Golang': 'golang.md' - 'Java': 'java.md' diff --git a/docs/usage/bicep.md b/docs/usage/bicep.md new file mode 100644 index 00000000000000..ae21a09c0f956a --- /dev/null +++ b/docs/usage/bicep.md @@ -0,0 +1,45 @@ +--- +title: Bicep +description: Bicep dependencies support in Renovate +--- + +# Bicep + +Renovate supports upgrading API versions in `resource` references. +Upgrading `module` versions is not supported. + +## How it works + +1. Renovate searches for `.bicep` files. +2. Renovate parses the files for `resource` types and API versions. +3. Renovate looks up the latest version in the [Azure/bicep-types-az](https://github.com/Azure/bicep-types-az) repository. + +## Known issues + +API version updates of nested resources are not supported. + +The API version of the `blobServices` resource below for example, will not be upgraded: + +```bicep +resource storageAccount 'Microsoft.Storage/storageAccounts@2022-05-01' = { + name: 'test' + kind: 'StorageV2' + sku: { + name: 'Standard_LRS' + } + location: location + + resource blobServices 'blobServices@2022-05-01' = { + name: 'default' + } +} +``` + +## Future work + +- Support [versioned nested resource](https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/child-resource-name-type#within-parent-resource) API version upgrades. +- Support [module](https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/modules) version upgrades. + - [Public registry](https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/modules#public-module-registry) module references. + - [Private registry](https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/modules#private-module-registry) module references. + - [Template spec](https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/modules#file-in-template-spec) module references. + - [Module aliases](https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/bicep-config-modules#aliases-for-modules) support. diff --git a/lib/modules/datasource/api.ts b/lib/modules/datasource/api.ts index 8bb45960253cb1..96139eb717e9ee 100644 --- a/lib/modules/datasource/api.ts +++ b/lib/modules/datasource/api.ts @@ -1,6 +1,7 @@ import { ArtifactoryDatasource } from './artifactory'; import { AwsMachineImageDataSource } from './aws-machine-image'; import { AwsRdsDataSource } from './aws-rds'; +import { AzureBicepResourceDatasource } from './azure-bicep-resource'; import { AzurePipelinesTasksDatasource } from './azure-pipelines-tasks'; import { BitBucketTagsDatasource } from './bitbucket-tags'; import { CdnJsDatasource } from './cdnjs'; @@ -59,6 +60,7 @@ export default api; api.set(ArtifactoryDatasource.id, new ArtifactoryDatasource()); api.set(AwsMachineImageDataSource.id, new AwsMachineImageDataSource()); api.set(AwsRdsDataSource.id, new AwsRdsDataSource()); +api.set(AzureBicepResourceDatasource.id, new AzureBicepResourceDatasource()); api.set(AzurePipelinesTasksDatasource.id, new AzurePipelinesTasksDatasource()); api.set(BitBucketTagsDatasource.id, new BitBucketTagsDatasource()); api.set(CdnJsDatasource.id, new CdnJsDatasource()); diff --git a/lib/modules/datasource/azure-bicep-resource/index.spec.ts b/lib/modules/datasource/azure-bicep-resource/index.spec.ts new file mode 100644 index 00000000000000..c5b793bcb9509a --- /dev/null +++ b/lib/modules/datasource/azure-bicep-resource/index.spec.ts @@ -0,0 +1,124 @@ +import { codeBlock } from 'common-tags'; +import * as httpMock from '../../../../test/http-mock'; +import { AzureBicepResourceDatasource } from './index'; + +const gitHubHost = 'https://raw.githubusercontent.com'; +const indexPath = '/Azure/bicep-types-az/main/generated/index.json'; + +describe('modules/datasource/azure-bicep-resource/index', () => { + it('should return null when no version is found', async () => { + httpMock + .scope(gitHubHost) + .get(indexPath) + .reply( + 200, + codeBlock` + { + "Resources": {}, + "Functions": {} + } + ` + ); + + const azureBicepResourceDatasource = new AzureBicepResourceDatasource(); + const result = await azureBicepResourceDatasource.getReleases({ + packageName: 'unknown', + }); + + expect(result).toBeNull(); + }); + + it('should return versions when package is a function', async () => { + httpMock + .scope(gitHubHost) + .get(indexPath) + .reply( + 200, + codeBlock` + { + "Resources": {}, + "Functions": { + "microsoft.billing/billingaccounts": { + "2019-10-01-preview": [ + { + "RelativePath": "billing/microsoft.billing/2019-10-01-preview/types.json", + "Index": 307 + } + ], + "2020-05-01": [ + { + "RelativePath": "billing/microsoft.billing/2020-05-01/types.json", + "Index": 287 + } + ] + } + } + } + ` + ); + + const azureBicepResourceDatasource = new AzureBicepResourceDatasource(); + const result = await azureBicepResourceDatasource.getReleases({ + packageName: 'Microsoft.Billing/billingAccounts', + }); + + expect(result).toEqual({ + releases: [ + { + version: '2019-10-01-preview', + changelogUrl: + 'https://learn.microsoft.com/en-us/azure/templates/microsoft.billing/change-log/billingaccounts#2019-10-01-preview', + }, + { + version: '2020-05-01', + changelogUrl: + 'https://learn.microsoft.com/en-us/azure/templates/microsoft.billing/change-log/billingaccounts#2020-05-01', + }, + ], + }); + }); + + it('should return versions when package is a resource', async () => { + httpMock + .scope(gitHubHost) + .get(indexPath) + .reply( + 200, + codeBlock` + { + "Resources": { + "Microsoft.Storage/storageAccounts@2015-05-01-preview": { + "RelativePath": "storage/microsoft.storage/2015-05-01-preview/types.json", + "Index": 31 + }, + "Microsoft.Storage/storageAccounts@2018-02-01": { + "RelativePath": "storage/microsoft.storage/2018-02-01/types.json", + "Index": 85 + } + }, + "Functions": {} + } + ` + ); + + const azureBicepResourceDatasource = new AzureBicepResourceDatasource(); + const result = await azureBicepResourceDatasource.getReleases({ + packageName: 'Microsoft.Storage/storageAccounts', + }); + + expect(result).toEqual({ + releases: [ + { + version: '2015-05-01-preview', + changelogUrl: + 'https://learn.microsoft.com/en-us/azure/templates/microsoft.storage/change-log/storageaccounts#2015-05-01-preview', + }, + { + version: '2018-02-01', + changelogUrl: + 'https://learn.microsoft.com/en-us/azure/templates/microsoft.storage/change-log/storageaccounts#2018-02-01', + }, + ], + }); + }); +}); diff --git a/lib/modules/datasource/azure-bicep-resource/index.ts b/lib/modules/datasource/azure-bicep-resource/index.ts new file mode 100644 index 00000000000000..07c601356d41ec --- /dev/null +++ b/lib/modules/datasource/azure-bicep-resource/index.ts @@ -0,0 +1,88 @@ +import { cache } from '../../../util/cache/package/decorator'; +import * as azureRestApiVersioningApi from '../../versioning/azure-rest-api'; +import { Datasource } from '../datasource'; +import type { GetReleasesConfig, ReleaseResult } from '../types'; +import { BicepTypeIndex } from './schema'; + +const BICEP_TYPES_INDEX_URL = + 'https://raw.githubusercontent.com/Azure/bicep-types-az/main/generated/index.json'; + +export class AzureBicepResourceDatasource extends Datasource { + static readonly id = 'azure-bicep-resource'; + + override readonly defaultConfig = { + commitMessageTopic: 'resource {{depName}}', + commitMessageExtra: 'to {{{newVersion}}}', + prBodyColumns: ['Resource', 'Change'], + prBodyDefinitions: { + Resource: '{{{depNameLinked}}}', + }, + }; + + override readonly defaultVersioning = azureRestApiVersioningApi.id; + + constructor() { + super(AzureBicepResourceDatasource.id); + } + + @cache({ + namespace: `datasource-${AzureBicepResourceDatasource.id}`, + key: ({ packageName }: GetReleasesConfig) => `getReleases-${packageName}`, + }) + async getReleases( + getReleasesConfig: GetReleasesConfig + ): Promise { + const { packageName } = getReleasesConfig; + + const resourceVersionIndex = await this.getResourceVersionIndex(); + const versions = resourceVersionIndex[packageName.toLowerCase()]; + + if (!versions) { + return null; + } + + const firstSlashIndex = packageName.indexOf('/'); + const namespaceProvider = packageName + .slice(0, firstSlashIndex) + .toLowerCase(); + const type = packageName.slice(firstSlashIndex + 1).toLowerCase(); + + return { + releases: versions.map((version) => ({ + version, + changelogUrl: `https://learn.microsoft.com/en-us/azure/templates/${namespaceProvider}/change-log/${type}#${version}`, + })), + }; + } + + @cache({ + namespace: `datasource-${AzureBicepResourceDatasource.id}`, + key: 'getResourceVersionIndex', + ttlMinutes: 24 * 60, + }) + async getResourceVersionIndex(): Promise> { + const res = await this.getBicepTypeIndex(); + + const releaseMap = new Map(); + + for (const resourceReference of Object.keys(res.Resources)) { + const [type, version] = resourceReference.toLowerCase().split('@', 2); + const versions = releaseMap.get(type) ?? []; + versions.push(version); + releaseMap.set(type, versions); + } + + for (const functionResource of Object.entries(res.Functions)) { + const [type, versionMap] = functionResource; + const versions = Object.keys(versionMap); + releaseMap.set(type, versions); + } + + return Object.fromEntries(releaseMap); + } + + private async getBicepTypeIndex(): Promise { + const res = await this.http.getJson(BICEP_TYPES_INDEX_URL, BicepTypeIndex); + return res.body; + } +} diff --git a/lib/modules/datasource/azure-bicep-resource/readme.md b/lib/modules/datasource/azure-bicep-resource/readme.md new file mode 100644 index 00000000000000..b4b0aedabaca41 --- /dev/null +++ b/lib/modules/datasource/azure-bicep-resource/readme.md @@ -0,0 +1 @@ +This data source returns available Bicep resource versions from the official index, which is also used by all Bicep tooling: diff --git a/lib/modules/datasource/azure-bicep-resource/schema.ts b/lib/modules/datasource/azure-bicep-resource/schema.ts new file mode 100644 index 00000000000000..3f229e4c812a4b --- /dev/null +++ b/lib/modules/datasource/azure-bicep-resource/schema.ts @@ -0,0 +1,25 @@ +import { z } from 'zod'; + +export const BicepTypeIndex = z.object({ + Resources: z.record( + z.string(), + z.object({ + RelativePath: z.string(), + Index: z.number(), + }) + ), + Functions: z.record( + z.string(), + z.record( + z.string(), + z.array( + z.object({ + RelativePath: z.string(), + Index: z.number(), + }) + ) + ) + ), +}); + +export type BicepTypeIndex = z.infer; diff --git a/lib/modules/manager/api.ts b/lib/modules/manager/api.ts index e0d77944dfdb79..41dc108d9d1d8c 100644 --- a/lib/modules/manager/api.ts +++ b/lib/modules/manager/api.ts @@ -7,6 +7,7 @@ import * as batect from './batect'; import * as batectWrapper from './batect-wrapper'; import * as bazel from './bazel'; import * as bazelisk from './bazelisk'; +import * as bicep from './bicep'; import * as bitbucketPipelines from './bitbucket-pipelines'; import * as buildkite from './buildkite'; import * as bundler from './bundler'; @@ -94,6 +95,7 @@ api.set('batect', batect); api.set('batect-wrapper', batectWrapper); api.set('bazel', bazel); api.set('bazelisk', bazelisk); +api.set('bicep', bicep); api.set('bitbucket-pipelines', bitbucketPipelines); api.set('buildkite', buildkite); api.set('bundler', bundler); diff --git a/lib/modules/manager/bicep/extract.spec.ts b/lib/modules/manager/bicep/extract.spec.ts new file mode 100644 index 00000000000000..7c9d8bcb8ab8b2 --- /dev/null +++ b/lib/modules/manager/bicep/extract.spec.ts @@ -0,0 +1,278 @@ +import { codeBlock } from 'common-tags'; +import { extractPackageFile } from '.'; + +describe('modules/manager/bicep/extract', () => { + it('should extract a normal resource', async () => { + const result = await extractPackageFile( + codeBlock` + param location string = resourceGroup().location + + resource storageAccount 'Microsoft.Storage/storageAccounts@2022-09-01' = { + name: 'test' + kind: 'StorageV2' + sku: { + name: 'Standard_LRS' + } + location: location + } + `, + '', + {} + ); + + expect(result).toEqual({ + deps: [ + { + autoReplaceStringTemplate: "'{{depName}}@{{newValue}}'", + currentValue: '2022-09-01', + datasource: 'azure-bicep-resource', + depName: 'Microsoft.Storage/storageAccounts', + replaceString: "'Microsoft.Storage/storageAccounts@2022-09-01'", + versioning: 'azure-rest-api', + }, + ], + }); + }); + + it('should not extract a commented out resource', async () => { + const result = await extractPackageFile( + codeBlock` + // param location string = resourceGroup().location + + // resource storageAccount 'Microsoft.Storage/storageAccounts@2022-09-01' = { + // name: 'test' + // kind: 'StorageV2' + // sku: { + // name: 'Standard_LRS' + // } + // location: location + // } + `, + '', + {} + ); + + expect(result).toBeNull(); + }); + + it('should extract a conditional resource', async () => { + const result = await extractPackageFile( + codeBlock` + param location string = resourceGroup().location + + resource storageAccount 'Microsoft.Storage/storageAccounts@2022-09-01' = if(0 == 1) { + name: 'test' + kind: 'StorageV2' + sku: { + name: 'Standard_LRS' + } + location: location + } + `, + '', + {} + ); + + expect(result).toEqual({ + deps: [ + { + autoReplaceStringTemplate: "'{{depName}}@{{newValue}}'", + currentValue: '2022-09-01', + datasource: 'azure-bicep-resource', + depName: 'Microsoft.Storage/storageAccounts', + replaceString: "'Microsoft.Storage/storageAccounts@2022-09-01'", + versioning: 'azure-rest-api', + }, + ], + }); + }); + + it('should extract a existing resource', async () => { + const result = await extractPackageFile( + codeBlock` + resource storageAccount 'Microsoft.Storage/storageAccounts@2022-09-01' existing = { + name: 'test' + } + + output id string = storageAccount.id + `, + '', + {} + ); + + expect(result).toEqual({ + deps: [ + { + autoReplaceStringTemplate: "'{{depName}}@{{newValue}}'", + currentValue: '2022-09-01', + datasource: 'azure-bicep-resource', + depName: 'Microsoft.Storage/storageAccounts', + replaceString: "'Microsoft.Storage/storageAccounts@2022-09-01'", + versioning: 'azure-rest-api', + }, + ], + }); + }); + + it('should extract a conditional loop resource', async () => { + const result = await extractPackageFile( + codeBlock` + param location string = resourceGroup().location + + resource storageAccount 'Microsoft.Storage/storageAccounts@2022-09-01' = [for name in ['test', 'test2']: if(42 == 'the answer') { + name: name + kind: 'StorageV2' + sku: { + name: 'Standard_LRS' + } + location: location + }] + `, + '', + {} + ); + + expect(result).toEqual({ + deps: [ + { + autoReplaceStringTemplate: "'{{depName}}@{{newValue}}'", + currentValue: '2022-09-01', + datasource: 'azure-bicep-resource', + depName: 'Microsoft.Storage/storageAccounts', + replaceString: "'Microsoft.Storage/storageAccounts@2022-09-01'", + versioning: 'azure-rest-api', + }, + ], + }); + }); + + it('should extract a loop resource', async () => { + const result = await extractPackageFile( + codeBlock` + param location string = resourceGroup().location + + resource storageAccount 'Microsoft.Storage/storageAccounts@2022-09-01' = [for name in ['test', 'test2']: { + name: name + kind: 'StorageV2' + sku: { + name: 'Standard_LRS' + } + location: location + }] + `, + '', + {} + ); + + expect(result).toEqual({ + deps: [ + { + autoReplaceStringTemplate: "'{{depName}}@{{newValue}}'", + currentValue: '2022-09-01', + datasource: 'azure-bicep-resource', + depName: 'Microsoft.Storage/storageAccounts', + replaceString: "'Microsoft.Storage/storageAccounts@2022-09-01'", + versioning: 'azure-rest-api', + }, + ], + }); + }); + + it('should not extract a nested unversioned resource', async () => { + const result = await extractPackageFile( + codeBlock` + param location string = resourceGroup().location + + resource storageAccount 'Microsoft.Storage/storageAccounts@2022-09-01' = { + name: 'test' + kind: 'StorageV2' + sku: { + name: 'Standard_LRS' + } + location: location + + resource blobServices 'blobServices' = { + name: 'default' + } + } + `, + '', + {} + ); + + expect(result).toEqual({ + deps: [ + { + autoReplaceStringTemplate: "'{{depName}}@{{newValue}}'", + currentValue: '2022-09-01', + datasource: 'azure-bicep-resource', + depName: 'Microsoft.Storage/storageAccounts', + replaceString: "'Microsoft.Storage/storageAccounts@2022-09-01'", + versioning: 'azure-rest-api', + }, + ], + }); + }); + + it('should not extract a nested versioned resource', async () => { + const result = await extractPackageFile( + codeBlock` + param location string = resourceGroup().location + + resource storageAccount 'Microsoft.Storage/storageAccounts@2022-09-01' = { + name: 'test' + kind: 'StorageV2' + sku: { + name: 'Standard_LRS' + } + location: location + + resource blobServices 'blobServices@2022-09-01' = { + name: 'default' + } + } + `, + '', + {} + ); + + expect(result).toEqual({ + deps: [ + { + autoReplaceStringTemplate: "'{{depName}}@{{newValue}}'", + currentValue: '2022-09-01', + datasource: 'azure-bicep-resource', + depName: 'Microsoft.Storage/storageAccounts', + replaceString: "'Microsoft.Storage/storageAccounts@2022-09-01'", + versioning: 'azure-rest-api', + }, + ], + }); + }); + + it('should extract a sub resource', async () => { + const result = await extractPackageFile( + codeBlock` + resource storageAccount 'Microsoft.Storage/storageAccounts/blobServices/containers@2022-09-01' = { + name: 'parent/child/this' + } + `, + '', + {} + ); + + expect(result).toEqual({ + deps: [ + { + autoReplaceStringTemplate: "'{{depName}}@{{newValue}}'", + currentValue: '2022-09-01', + datasource: 'azure-bicep-resource', + depName: 'Microsoft.Storage/storageAccounts/blobServices/containers', + replaceString: + "'Microsoft.Storage/storageAccounts/blobServices/containers@2022-09-01'", + versioning: 'azure-rest-api', + }, + ], + }); + }); +}); diff --git a/lib/modules/manager/bicep/extract.ts b/lib/modules/manager/bicep/extract.ts new file mode 100644 index 00000000000000..a104d213648530 --- /dev/null +++ b/lib/modules/manager/bicep/extract.ts @@ -0,0 +1,45 @@ +import { newlineRegex, regEx } from '../../../util/regex'; +import { AzureBicepResourceDatasource } from '../../datasource/azure-bicep-resource'; +import type { + ExtractConfig, + PackageDependency, + PackageFileContent, +} from '../types'; + +const RESOURCE_REGEX = regEx( + /resource\s+[A-Za-z0-9_]+\s+(?'(?.+\..+\/.+)@(?.+?)')/ +); + +export function extractPackageFile( + content: string, + packageFile: string, + config: ExtractConfig +): Promise { + const deps: PackageDependency[] = []; + + for (const line of content.split(newlineRegex)) { + const trimmedLine = line?.trim(); + if (!trimmedLine || trimmedLine.startsWith('//')) { + continue; + } + + const match = RESOURCE_REGEX.exec(trimmedLine); + + if (!match?.groups) { + continue; + } + + const { depName, currentValue, replaceString } = match.groups; + + deps.push({ + datasource: AzureBicepResourceDatasource.id, + versioning: 'azure-rest-api', + depName, + currentValue, + autoReplaceStringTemplate: "'{{depName}}@{{newValue}}'", + replaceString, + }); + } + + return Promise.resolve(deps.length ? { deps } : null); +} diff --git a/lib/modules/manager/bicep/index.ts b/lib/modules/manager/bicep/index.ts new file mode 100644 index 00000000000000..6d03e93e34b143 --- /dev/null +++ b/lib/modules/manager/bicep/index.ts @@ -0,0 +1,9 @@ +import { AzureBicepResourceDatasource } from '../../datasource/azure-bicep-resource'; + +export { extractPackageFile } from './extract'; + +export const defaultConfig = { + fileMatch: ['\\.bicep$'], +}; + +export const supportedDatasources = [AzureBicepResourceDatasource.id]; diff --git a/lib/modules/manager/bicep/readme.md b/lib/modules/manager/bicep/readme.md new file mode 100644 index 00000000000000..0ed4154adfa570 --- /dev/null +++ b/lib/modules/manager/bicep/readme.md @@ -0,0 +1 @@ +Updates the Azure REST API version of `resource`s in [Bicep](https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/overview) files. diff --git a/lib/modules/versioning/api.ts b/lib/modules/versioning/api.ts index 3fc867e4472a72..56b21ce27e5092 100644 --- a/lib/modules/versioning/api.ts +++ b/lib/modules/versioning/api.ts @@ -1,4 +1,5 @@ import * as amazonMachineImage from './aws-machine-image'; +import * as azureRestApi from './azure-rest-api'; import * as cargo from './cargo'; import * as composer from './composer'; import * as conan from './conan'; @@ -38,6 +39,7 @@ const api = new Map(); export default api; api.set(amazonMachineImage.id, amazonMachineImage.api); +api.set(azureRestApi.id, azureRestApi.api); api.set(cargo.id, cargo.api); api.set(composer.id, composer.api); api.set(conan.id, conan.api); diff --git a/lib/modules/versioning/azure-rest-api/index.spec.ts b/lib/modules/versioning/azure-rest-api/index.spec.ts new file mode 100644 index 00000000000000..f556cae4e4f411 --- /dev/null +++ b/lib/modules/versioning/azure-rest-api/index.spec.ts @@ -0,0 +1,137 @@ +import { api as azureRestApi } from '.'; + +describe('modules/versioning/azure-rest-api/index', () => { + it.each` + version | expected + ${'0000-00-00'} | ${true} + ${'2023-01-01'} | ${true} + ${'2023-01-01-preview'} | ${true} + ${'2023-01-01-alpha'} | ${true} + ${'2023-01-01-beta'} | ${true} + ${'2023-01-01-rc'} | ${true} + ${'2023-01-01-privatepreview'} | ${true} + ${'2023-01-01preview'} | ${false} + ${'2023-01-01 '} | ${false} + ${' 2023-01-01'} | ${false} + ${'2023-01-01-'} | ${false} + ${'2023 01 01'} | ${false} + ${'2023-01-01-23'} | ${false} + ${'2023.01.01'} | ${false} + ${'2023_01_01'} | ${false} + ${'2023/01/01'} | ${false} + `('isValid("$version") === $expected', ({ version, expected }) => { + expect(azureRestApi.isValid(version)).toBe(expected); + }); + + it.each` + version | expected + ${'2023-01-01'} | ${true} + ${'2023-01-01-preview'} | ${true} + `('isCompatible("$version") === $expected', ({ version, expected }) => { + expect(azureRestApi.isCompatible(version)).toBe(expected); + }); + + it.each` + version | expected + ${'2023-01-01'} | ${true} + ${'2023-01-01-preview'} | ${false} + ${'2023-01-01-rc'} | ${false} + ${'2023-01-01-alpha'} | ${false} + ${'2023-01-01-beta'} | ${false} + ${'2023-01-01-privatepreview'} | ${false} + `('isStable("$version") === $expected', ({ version, expected }) => { + expect(azureRestApi.isStable(version)).toBe(expected); + }); + + it.each` + version | expected + ${'2023-01-01'} | ${true} + ${'2023-01-01-preview'} | ${true} + `('isSingleVersion("$version") === $expected', ({ version, expected }) => { + expect(azureRestApi.isSingleVersion(version)).toBe(expected); + }); + + it.each` + version | expected + ${'2023-01-01'} | ${true} + ${'2023-01-01-preview'} | ${true} + ${undefined} | ${false} + ${null} | ${false} + ${123} | ${false} + ${'1.2.3'} | ${false} + `('isVersion("$version") === $expected', ({ version, expected }) => { + expect(azureRestApi.isVersion(version)).toBe(expected); + }); + + it.each` + version | expected + ${'2023-01-01'} | ${20230101} + ${'2023-01-01-preview'} | ${20230101} + `('getMajor("$version") === 1', ({ version, expected }) => { + expect(azureRestApi.getMajor(version)).toBe(expected); + }); + + it.each` + version + ${'2023-01-01'} + ${'2023-01-01-preview'} + `('getMinor("$version") === 0', ({ version }) => { + expect(azureRestApi.getMinor(version)).toBe(0); + }); + + it.each` + version + ${'2023-01-01'} + ${'2023-01-01-preview'} + `('getPatch("$version") === 0', ({ version }) => { + expect(azureRestApi.getPatch(version)).toBe(0); + }); + + it.each` + version | other | expected + ${'2023-01-01'} | ${'2023-01-01'} | ${true} + ${'2023-01-01-preview'} | ${'2023-01-01-preview'} | ${true} + ${'2023-01-01'} | ${'2023-01-02'} | ${false} + ${'2023-01-01'} | ${'2023-02-01'} | ${false} + ${'2023-01-01'} | ${'2024-01-01'} | ${false} + `( + 'equals("$version", "$other") === $expected', + ({ version, other, expected }) => { + expect(azureRestApi.equals(version, other)).toBe(expected); + } + ); + + it.each` + version | other | expected + ${'2023-01-01'} | ${'2023-01-02'} | ${false} + ${'2023-01-01'} | ${'2023-02-01'} | ${false} + ${'2023-01-01'} | ${'2024-01-01'} | ${false} + ${'2023-01-01'} | ${'2023-01-01'} | ${false} + ${'2023-01-01-preview'} | ${'2023-01-01-preview'} | ${false} + ${'2023-01-02'} | ${'2023-01-01'} | ${true} + ${'2023-02-01'} | ${'2023-01-01'} | ${true} + ${'2024-01-01'} | ${'2023-01-01'} | ${true} + `( + 'isGreaterThan("$version", "$other") === $expected', + ({ version, other, expected }) => { + expect(azureRestApi.isGreaterThan(version, other)).toBe(expected); + } + ); + + it.each` + version | other | expected + ${'2023-01-01'} | ${'2023-01-01'} | ${0} + ${'2023-01-01-preview'} | ${'2023-01-01-preview'} | ${0} + ${'2023-01-01'} | ${'2023-01-02'} | ${-1} + ${'2023-01-01'} | ${'2023-02-01'} | ${-1} + ${'2023-01-01'} | ${'2024-01-01'} | ${-1} + ${'2023-01-02'} | ${'2023-01-01'} | ${1} + ${'2023-02-01'} | ${'2023-01-01'} | ${1} + ${'2024-01-01'} | ${'2023-01-01'} | ${1} + `( + 'sortVersions("$version", "$other") === $expected', + ({ version, other, expected }) => { + expect(azureRestApi.sortVersions(version, other)).toBe(expected); + } + ); +}); diff --git a/lib/modules/versioning/azure-rest-api/index.ts b/lib/modules/versioning/azure-rest-api/index.ts new file mode 100644 index 00000000000000..1d6436d0eebedf --- /dev/null +++ b/lib/modules/versioning/azure-rest-api/index.ts @@ -0,0 +1,49 @@ +import { regEx } from '../../../util/regex'; +import { GenericVersion, GenericVersioningApi } from '../generic'; +import type { VersioningApi } from '../types'; + +export const id = 'azure-rest-api'; +export const displayName = 'azure-rest-api'; + +export const urls = [ + 'https://github.com/microsoft/api-guidelines/blob/vNext/azure/Guidelines.md#api-versioning', +]; + +export const supportsRanges = false; + +const AZURE_REST_API_VERSION_REGEX = regEx( + /^(?\d{4})-(?\d{2})-(?\d{2})(?-[a-z]+)?$/ +); + +class AzureRestApiVersioningApi extends GenericVersioningApi { + protected _parse(version: string): GenericVersion | null { + if (!version) { + return null; + } + + const matchGroups = AZURE_REST_API_VERSION_REGEX.exec(version)?.groups; + + if (!matchGroups) { + return null; + } + + const { year, month, day, prerelease } = matchGroups; + + return { + release: [parseInt(`${year}${month}${day}`), 0, 0], + prerelease, + }; + } + + protected override _compare(_version: string, _other: string): number { + if (_version === _other) { + return 0; + } + + return _version > _other ? 1 : -1; + } +} + +export const api: VersioningApi = new AzureRestApiVersioningApi(); + +export default api; diff --git a/lib/modules/versioning/azure-rest-api/readme.md b/lib/modules/versioning/azure-rest-api/readme.md new file mode 100644 index 00000000000000..d92970ee68072b --- /dev/null +++ b/lib/modules/versioning/azure-rest-api/readme.md @@ -0,0 +1,3 @@ +The Azure REST APIs use a `YYYY-MM-DD` version with an optional `-preview` suffix: + +Internally at Microsoft they are using other additional suffixes: From 8137533c9416a1a243f0476607940af62da4a28f Mon Sep 17 00:00:00 2001 From: Adam Setch Date: Tue, 14 Mar 2023 17:02:24 -0400 Subject: [PATCH 162/228] feat(auto-replace): ability to specify global or first match from replacement rules (#20604) Co-authored-by: Rhys Arkins Co-authored-by: HonkingGoose <34918129+HonkingGoose@users.noreply.github.com> --- docs/usage/configuration-options.md | 31 +++++++++++++ lib/config/options/index.ts | 7 +++ lib/config/types.ts | 1 + .../update/branch/auto-replace.spec.ts | 45 +++++++++++++++++++ .../repository/update/branch/auto-replace.ts | 11 +++-- 5 files changed, 91 insertions(+), 4 deletions(-) diff --git a/docs/usage/configuration-options.md b/docs/usage/configuration-options.md index 44fcb716a718cd..517017b3ddf922 100644 --- a/docs/usage/configuration-options.md +++ b/docs/usage/configuration-options.md @@ -119,6 +119,37 @@ See [GitHub](https://docs.github.com/en/repositories/managing-your-repositorys-s If configured, Renovate will take a random sample of given size from assignees and assign them only, instead of assigning the entire list of `assignees` you have configured. +## autoReplaceGlobalMatch + +Setting this to `false` will replace only the first match during replacements updates. + +Disabling this is useful for situations where values are repeated within the dependency string, such as when the `currentVersion` is also featured somewhere within the `currentDigest`, but you only want to replace the first instance. + +Consider this example: + +```dockerfile +FROM java:8@sha256:0e8b2a860 +``` + +```json +{ + "packageRules": [ + { + "matchPackageNames": ["java"], + "replacementName": "eclipse-temurin", + "replacementVersion": "11" + } + ] +} +``` + +With the above replacement scenario, the current dependency has a version of `8`, which also features several times within the digest section. + +When using the default `autoReplaceGlobalMatch` configuration, Renovate will attempt to replace all instances of `8` within the dependency string with the `replacementVersion` value of `11`. +This will replace more than is intended and will be caught during replacement validation steps, resulting in the replacement PR to not be created. + +When setting `autoReplaceGlobalMatch` configuration to `false`, Renovate will only replace the first occurrence of `8` and will successfully create a replacement PR. + ## automerge By default, Renovate raises PRs but leaves them to someone or something else to merge them. diff --git a/lib/config/options/index.ts b/lib/config/options/index.ts index 162271a35abf0d..ec44d893752639 100644 --- a/lib/config/options/index.ts +++ b/lib/config/options/index.ts @@ -1197,6 +1197,13 @@ const options: RenovateOptions[] = [ cli: false, env: false, }, + { + name: 'autoReplaceGlobalMatch', + description: + 'Control whether replacement regular expressions are global matches or only the first match.', + type: 'boolean', + default: true, + }, { name: 'replacementName', description: diff --git a/lib/config/types.ts b/lib/config/types.ts index 0a48bb829bad2c..2c49c83da1584f 100644 --- a/lib/config/types.ts +++ b/lib/config/types.ts @@ -25,6 +25,7 @@ export interface RenovateSharedConfig { $schema?: string; automerge?: boolean; automergeStrategy?: MergeStrategy; + autoReplaceGlobalMatch?: boolean; pruneBranchAfterAutomerge?: boolean; branchPrefix?: string; branchPrefixOld?: string; diff --git a/lib/workers/repository/update/branch/auto-replace.spec.ts b/lib/workers/repository/update/branch/auto-replace.spec.ts index 7b2c928d6d16df..069045985b8723 100644 --- a/lib/workers/repository/update/branch/auto-replace.spec.ts +++ b/lib/workers/repository/update/branch/auto-replace.spec.ts @@ -1105,6 +1105,51 @@ describe('workers/repository/update/branch/auto-replace', () => { ); }); + it('autoReplaceGlobalMatch: throws error when globally replacing recurring values across version and digests', async () => { + const dockerfile = codeBlock` + FROM java:6@sha256:q1w2e3r4t5z6u7i8o9p0 + `; + upgrade.manager = 'dockerfile'; + upgrade.depName = 'java'; + upgrade.currentValue = '6'; + upgrade.currentDigest = 'sha256:q1w2e3r4t5z6u7i8o9p0'; + upgrade.depIndex = 0; + upgrade.pinDigests = true; + upgrade.updateType = 'replacement'; + upgrade.replaceString = 'java:6@sha256:q1w2e3r4t5z6u7i8o9p0'; + upgrade.newName = 'eclipse-temurin'; + upgrade.newValue = '11'; + upgrade.newDigest = 'sha256:p0o9i8u7z6t5r4e3w2q1'; + upgrade.packageFile = 'Dockerfile'; + const res = doAutoReplace(upgrade, dockerfile, reuseExistingBranch); + await expect(res).rejects.toThrow(WORKER_FILE_UPDATE_FAILED); + }); + + it('autoReplaceGlobalMatch: updates when replacing first match only of recurring values across version and digests', async () => { + const dockerfile = codeBlock` + FROM java:6@sha256:q1w2e3r4t5z6u7i8o9p0 + `; + upgrade.autoReplaceGlobalMatch = false; + upgrade.manager = 'dockerfile'; + upgrade.depName = 'java'; + upgrade.currentValue = '6'; + upgrade.currentDigest = 'sha256:q1w2e3r4t5z6u7i8o9p0'; + upgrade.depIndex = 0; + upgrade.pinDigests = true; + upgrade.updateType = 'replacement'; + upgrade.replaceString = 'java:6@sha256:q1w2e3r4t5z6u7i8o9p0'; + upgrade.newName = 'eclipse-temurin'; + upgrade.newValue = '11'; + upgrade.newDigest = 'sha256:p0o9i8u7z6t5r4e3w2q1'; + upgrade.packageFile = 'Dockerfile'; + const res = await doAutoReplace(upgrade, dockerfile, reuseExistingBranch); + expect(res).toBe( + codeBlock` + FROM eclipse-temurin:11@sha256:p0o9i8u7z6t5r4e3w2q1 + ` + ); + }); + it('regex: updates with pinDigest enabled but no currentDigest value', async () => { const yml = 'image: "some.url.com/my-repository:1.0"'; upgrade.manager = 'regex'; diff --git a/lib/workers/repository/update/branch/auto-replace.ts b/lib/workers/repository/update/branch/auto-replace.ts index 727ec6562c68be..8b9ee4967cd2f5 100644 --- a/lib/workers/repository/update/branch/auto-replace.ts +++ b/lib/workers/repository/update/branch/auto-replace.ts @@ -168,6 +168,7 @@ export async function doAutoReplace( currentDigest, currentDigestShort, newDigest, + autoReplaceGlobalMatch, autoReplaceStringTemplate, } = upgrade; /* @@ -206,26 +207,28 @@ export async function doAutoReplace( newString = compile(autoReplaceStringTemplate, upgrade, false); } else { newString = replaceString!; + + const autoReplaceRegExpFlag = autoReplaceGlobalMatch ? 'g' : ''; if (currentValue && newValue) { newString = newString.replace( - regEx(escapeRegExp(currentValue), 'g'), + regEx(escapeRegExp(currentValue), autoReplaceRegExpFlag), newValue ); } if (depName && newName) { newString = newString.replace( - regEx(escapeRegExp(depName), 'g'), + regEx(escapeRegExp(depName), autoReplaceRegExpFlag), newName ); } if (currentDigest && newDigest) { newString = newString.replace( - regEx(escapeRegExp(currentDigest), 'g'), + regEx(escapeRegExp(currentDigest), autoReplaceRegExpFlag), newDigest ); } else if (currentDigestShort && newDigest) { newString = newString.replace( - regEx(escapeRegExp(currentDigestShort), 'g'), + regEx(escapeRegExp(currentDigestShort), autoReplaceRegExpFlag), newDigest ); } From e47672734c67701a89e555733d28219d9e92a903 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 14 Mar 2023 22:57:10 +0000 Subject: [PATCH 163/228] chore(deps): update node.js to 5c0dbac (#20935) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .devcontainer/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 6a9ffb7b2aeb51..ae95e8fb34e406 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,4 +1,4 @@ -FROM containerbase/node:18.15.0@sha256:8dac04e5d94c0ee0680ba225e1b2fa495b33f2e8de1c975f8f7e80844226a63f +FROM containerbase/node:18.15.0@sha256:5c0dbacb3043a43551df6c79b6c34ee99d31edb0e063080fc8d85d19759f3c97 USER root From 3a32190d736b8ce66507a1192c71ce1e1b2a9f55 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 15 Mar 2023 03:29:07 +0000 Subject: [PATCH 164/228] chore(deps): update peter-evans/create-pull-request action to v4.2.4 (#20937) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/update-data.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update-data.yml b/.github/workflows/update-data.yml index cce07ba198d0c8..168d394ea730d7 100644 --- a/.github/workflows/update-data.yml +++ b/.github/workflows/update-data.yml @@ -33,7 +33,7 @@ jobs: run: yarn prettier-fix - name: Create pull request - uses: peter-evans/create-pull-request@2b011faafdcbc9ceb11414d64d0573f37c774b04 # v4.2.3 + uses: peter-evans/create-pull-request@38e0b6e68b4c852a5500a94740f0e535e0d7ba54 # v4.2.4 with: author: 'Renovate Bot ' branch: 'chore/update-static-data' From 2e25de12112dc2571aec7a1352edb420b4de5ce6 Mon Sep 17 00:00:00 2001 From: Lctrs Date: Wed, 15 Mar 2023 07:12:08 +0100 Subject: [PATCH 165/228] feat(datasource): support range constraints filtering (#20842) Co-authored-by: Rhys Arkins --- docs/usage/configuration-options.md | 2 +- lib/modules/datasource/index.spec.ts | 27 ++++++++++++++++--- lib/modules/datasource/index.ts | 11 ++++---- lib/modules/versioning/composer/index.spec.ts | 20 ++++++++++++++ lib/modules/versioning/composer/index.ts | 5 ++++ lib/modules/versioning/index.spec.ts | 1 + lib/modules/versioning/npm/index.spec.ts | 20 ++++++++++++++ lib/modules/versioning/npm/index.ts | 2 ++ lib/modules/versioning/poetry/index.spec.ts | 20 ++++++++++++++ lib/modules/versioning/poetry/index.ts | 5 ++++ lib/modules/versioning/python/index.spec.ts | 21 +++++++++++++++ lib/modules/versioning/python/index.ts | 7 +++++ lib/modules/versioning/types.ts | 9 +++++++ 13 files changed, 140 insertions(+), 10 deletions(-) diff --git a/docs/usage/configuration-options.md b/docs/usage/configuration-options.md index 517017b3ddf922..2fd11f6bce64df 100644 --- a/docs/usage/configuration-options.md +++ b/docs/usage/configuration-options.md @@ -591,7 +591,7 @@ Renovate supports two options: We are working on adding more advanced filtering options. Note: There must be a `constraints` object in your Renovate config for this to work. -This feature is limited to `pypi` datasource only. +This feature is limited to `packagist`, `npm`, and `pypi` datasources. ## defaultRegistryUrls diff --git a/lib/modules/datasource/index.spec.ts b/lib/modules/datasource/index.spec.ts index cb2bd428db396b..8b8dac55d090c1 100644 --- a/lib/modules/datasource/index.spec.ts +++ b/lib/modules/datasource/index.spec.ts @@ -35,6 +35,7 @@ const defaultRegistriesMock: RegistriesMock = { }; class DummyDatasource extends Datasource { + override defaultVersioning = 'python'; override defaultRegistryUrls = ['https://reg1.com']; constructor(private registriesMock: RegistriesMock = defaultRegistriesMock) { @@ -695,13 +696,31 @@ describe('modules/datasource/index', () => { 'https://foo.bar': { releases: [ { - version: '0.0.1', + version: '0.0.5', constraints: { - python: ['2.7'], + python: ['>= 3.0.0, < 4.0'], + }, + }, + { + version: '0.0.4', + constraints: { + python: ['>= 2.7, < 4.0'], + }, + }, + { + version: '0.0.3', + constraints: { + python: ['>= 2.7, < 3.0'], }, }, { version: '0.0.2', + constraints: { + python: ['2.7'], + }, + }, + { + version: '0.0.1', constraints: { python: ['1.0'], }, @@ -714,11 +733,11 @@ describe('modules/datasource/index', () => { datasource, packageName, defaultRegistryUrls: ['https://foo.bar'], - constraints: { python: '2.7.0' }, + constraints: { python: '>= 2.7, < 3.0' }, constraintsFiltering: 'strict', }); expect(res).toMatchObject({ - releases: [{ version: '0.0.1' }], + releases: [{ version: '0.0.3' }, { version: '0.0.4' }], }); }); }); diff --git a/lib/modules/datasource/index.ts b/lib/modules/datasource/index.ts index 92d07cf2f2a253..34e3b652743a38 100644 --- a/lib/modules/datasource/index.ts +++ b/lib/modules/datasource/index.ts @@ -405,20 +405,21 @@ export async function getPkgReleases( for (const [constraintName, constraintValue] of Object.entries( config.constraints ?? {} )) { - // Currently we only support if the constraint is a plain version - // TODO: Support range/range compatibility filtering #8476 - if (version.isVersion(constraintValue)) { + if (version.isValid(constraintValue)) { res.releases = res.releases.filter((release) => { const constraint = release.constraints?.[constraintName]; if (!is.nonEmptyArray(constraint)) { // A release with no constraints is OK return true; } + return constraint.some( - // If any of the release's constraints match, then it's OK + // If the constraint value is a subset of any release's constraints, then it's OK + // fallback to release's constraint match if subset is not supported by versioning (releaseConstraint) => !releaseConstraint || - version.matches(constraintValue, releaseConstraint) + (version.subset?.(constraintValue, releaseConstraint) ?? + version.matches(constraintValue, releaseConstraint)) ); }); } diff --git a/lib/modules/versioning/composer/index.spec.ts b/lib/modules/versioning/composer/index.spec.ts index 8f4e30b9283f92..f5ad722ef60478 100644 --- a/lib/modules/versioning/composer/index.spec.ts +++ b/lib/modules/versioning/composer/index.spec.ts @@ -116,6 +116,26 @@ describe('modules/versioning/composer/index', () => { expect(semver.matches(a, b)).toBe(expected); }); + test.each` + a | b | expected + ${'1.0.0'} | ${'1.0.0'} | ${true} + ${'1.0.0'} | ${'>=1.0.0'} | ${true} + ${'1.1.0'} | ${'^1.0.0'} | ${true} + ${'>=1.0.0'} | ${'>=1.0.0'} | ${true} + ${'~1.0.0'} | ${'~1.0.0'} | ${true} + ${'^1.0.0'} | ${'^1.0.0'} | ${true} + ${'>=1.0.0'} | ${'>=1.1.0'} | ${false} + ${'~1.0.0'} | ${'~1.1.0'} | ${false} + ${'^1.0.0'} | ${'^1.1.0'} | ${false} + ${'>=1.0.0'} | ${'<1.0.0'} | ${false} + ${'~1.0.0'} | ${'~0.9.0'} | ${false} + ${'^1.0.0'} | ${'^0.9.0'} | ${false} + ${'^1.1.0 || ^2.0.0'} | ${'^1.0.0 || ^2.0.0'} | ${true} + ${'^1.0.0 || ^2.0.0'} | ${'^1.1.0 || ^2.0.0'} | ${false} + `('subset("$a", "$b") === $expected', ({ a, b, expected }) => { + expect(semver.subset!(a, b)).toBe(expected); + }); + test.each` currentValue | rangeStrategy | currentVersion | newVersion | expected ${'~1.0'} | ${'pin'} | ${'1.0'} | ${'V1.1'} | ${'V1.1'} diff --git a/lib/modules/versioning/composer/index.ts b/lib/modules/versioning/composer/index.ts index 45740464213f83..1c1db9884b2d42 100644 --- a/lib/modules/versioning/composer/index.ts +++ b/lib/modules/versioning/composer/index.ts @@ -163,6 +163,10 @@ function minSatisfyingVersion( ); } +function subset(subRange: string, superRange: string): boolean | undefined { + return npm.subset!(composer2npm(subRange), composer2npm(superRange)); +} + function getNewValue({ currentValue, rangeStrategy, @@ -304,5 +308,6 @@ export const api: VersioningApi = { minSatisfyingVersion, getNewValue, sortVersions, + subset, }; export default api; diff --git a/lib/modules/versioning/index.spec.ts b/lib/modules/versioning/index.spec.ts index 6abc2f3c7d7bbc..9fe12ce0d6c38d 100644 --- a/lib/modules/versioning/index.spec.ts +++ b/lib/modules/versioning/index.spec.ts @@ -83,6 +83,7 @@ describe('modules/versioning/index', () => { 'toLocaleString', 'toString', 'valueOf', + 'subset', ]; const npmApi = Object.keys(allVersioning.get(semverVersioning.id)) .filter((val) => !optionalFunctions.includes(val)) diff --git a/lib/modules/versioning/npm/index.spec.ts b/lib/modules/versioning/npm/index.spec.ts index 20dedb0f82616c..d67a02b1b4ba34 100644 --- a/lib/modules/versioning/npm/index.spec.ts +++ b/lib/modules/versioning/npm/index.spec.ts @@ -55,6 +55,26 @@ describe('modules/versioning/npm/index', () => { expect(res).toBe(isSingle); }); + test.each` + a | b | expected + ${'1.0.0'} | ${'1.0.0'} | ${true} + ${'1.0.0'} | ${'>=1.0.0'} | ${true} + ${'1.1.0'} | ${'^1.0.0'} | ${true} + ${'>=1.0.0'} | ${'>=1.0.0'} | ${true} + ${'~1.0.0'} | ${'~1.0.0'} | ${true} + ${'^1.0.0'} | ${'^1.0.0'} | ${true} + ${'>=1.0.0'} | ${'>=1.1.0'} | ${false} + ${'~1.0.0'} | ${'~1.1.0'} | ${false} + ${'^1.0.0'} | ${'^1.1.0'} | ${false} + ${'>=1.0.0'} | ${'<1.0.0'} | ${false} + ${'~1.0.0'} | ${'~0.9.0'} | ${false} + ${'^1.0.0'} | ${'^0.9.0'} | ${false} + ${'^1.1.0 || ^2.0.0'} | ${'^1.0.0 || ^2.0.0'} | ${true} + ${'^1.0.0 || ^2.0.0'} | ${'^1.1.0 || ^2.0.0'} | ${false} + `('subset("$a", "$b") === $expected', ({ a, b, expected }) => { + expect(semver.subset!(a, b)).toBe(expected); + }); + test.each` currentValue | rangeStrategy | currentVersion | newVersion | expected ${'=1.0.0'} | ${'bump'} | ${'1.0.0'} | ${'1.1.0'} | ${'=1.1.0'} diff --git a/lib/modules/versioning/npm/index.ts b/lib/modules/versioning/npm/index.ts index 0f5d75cce198d5..6ece07d64fbf30 100644 --- a/lib/modules/versioning/npm/index.ts +++ b/lib/modules/versioning/npm/index.ts @@ -33,6 +33,7 @@ const { ltr: isLessThanRange, gt: isGreaterThan, eq: equals, + subset, } = semver; // If this is left as an alias, inputs like "17.04.0" throw errors @@ -63,6 +64,7 @@ export const api: VersioningApi = { getSatisfyingVersion, minSatisfyingVersion, sortVersions, + subset, }; export default api; diff --git a/lib/modules/versioning/poetry/index.spec.ts b/lib/modules/versioning/poetry/index.spec.ts index d0c69c2c3e5417..a5323ada04410f 100644 --- a/lib/modules/versioning/poetry/index.spec.ts +++ b/lib/modules/versioning/poetry/index.spec.ts @@ -258,3 +258,23 @@ describe('modules/versioning/poetry/index', () => { expect(versioning.sortVersions(a, b)).toEqual(expected); }); }); + +test.each` + a | b | expected + ${'1.0.0'} | ${'1.0.0'} | ${true} + ${'1.0.0'} | ${'>=1.0.0'} | ${true} + ${'1.1.0'} | ${'^1.0.0'} | ${true} + ${'>=1.0.0'} | ${'>=1.0.0'} | ${true} + ${'~1.0.0'} | ${'~1.0.0'} | ${true} + ${'^1.0.0'} | ${'^1.0.0'} | ${true} + ${'>=1.0.0'} | ${'>=1.1.0'} | ${false} + ${'~1.0.0'} | ${'~1.1.0'} | ${false} + ${'^1.0.0'} | ${'^1.1.0'} | ${false} + ${'>=1.0.0'} | ${'<1.0.0'} | ${false} + ${'~1.0.0'} | ${'~0.9.0'} | ${false} + ${'^1.0.0'} | ${'^0.9.0'} | ${false} + ${'^1.1.0 || ^2.0.0'} | ${'^1.0.0 || ^2.0.0'} | ${true} + ${'^1.0.0 || ^2.0.0'} | ${'^1.1.0 || ^2.0.0'} | ${false} +`('subset("$a", "$b") === $expected', ({ a, b, expected }) => { + expect(versioning.subset!(a, b)).toBe(expected); +}); diff --git a/lib/modules/versioning/poetry/index.ts b/lib/modules/versioning/poetry/index.ts index 230bbb46228a9c..a4f50f42104379 100644 --- a/lib/modules/versioning/poetry/index.ts +++ b/lib/modules/versioning/poetry/index.ts @@ -232,6 +232,10 @@ function sortVersions(a: string, b: string): number { return npm.sortVersions(poetry2semver(a) ?? '', poetry2semver(b) ?? ''); } +function subset(subRange: string, superRange: string): boolean | undefined { + return npm.subset!(poetry2npm(subRange), poetry2npm(superRange)); +} + export const api: VersioningApi = { equals, getMajor, @@ -249,5 +253,6 @@ export const api: VersioningApi = { matches, minSatisfyingVersion, sortVersions, + subset, }; export default api; diff --git a/lib/modules/versioning/python/index.spec.ts b/lib/modules/versioning/python/index.spec.ts index 041a12605795ec..710e5ff18fa1a4 100644 --- a/lib/modules/versioning/python/index.spec.ts +++ b/lib/modules/versioning/python/index.spec.ts @@ -100,3 +100,24 @@ describe('modules/versioning/python/index', () => { expect(versioning.getNewValue(partial())).toBeNull(); }); }); + +test.each` + a | b | expected + ${'1.0.0'} | ${'1.0.0'} | ${true} + ${'1.0.0'} | ${'>=1.0.0'} | ${true} + ${'1.1.0'} | ${'^1.0.0'} | ${true} + ${'>=1.0.0'} | ${'>=1.0.0'} | ${true} + ${'~1.0.0'} | ${'~1.0.0'} | ${true} + ${'^1.0.0'} | ${'^1.0.0'} | ${true} + ${'>=1.0.0'} | ${'>=1.1.0'} | ${false} + ${'~1.0.0'} | ${'~1.1.0'} | ${false} + ${'^1.0.0'} | ${'^1.1.0'} | ${false} + ${'>=1.0.0'} | ${'<1.0.0'} | ${false} + ${'~1.0.0'} | ${'~0.9.0'} | ${false} + ${'^1.0.0'} | ${'^0.9.0'} | ${false} + ${'^1.1.0 || ^2.0.0'} | ${'^1.0.0 || ^2.0.0'} | ${true} + ${'^1.0.0 || ^2.0.0'} | ${'^1.1.0 || ^2.0.0'} | ${false} + ${'1.2.3foo'} | ${'~1.1.0'} | ${undefined} +`('subset("$a", "$b") === $expected', ({ a, b, expected }) => { + expect(versioning.subset!(a, b)).toBe(expected); +}); diff --git a/lib/modules/versioning/python/index.ts b/lib/modules/versioning/python/index.ts index 7128ae92d76b46..7e287abc052d86 100644 --- a/lib/modules/versioning/python/index.ts +++ b/lib/modules/versioning/python/index.ts @@ -45,6 +45,12 @@ function getNewValue(_: NewValueConfig): string | null { return null; } +function subset(subRange: string, superRange: string): boolean | undefined { + return poetry.isValid(subRange) && poetry.isValid(superRange) + ? poetry.subset!(subRange, superRange) + : undefined; +} + export const api: VersioningApi = { ...poetry, getNewValue, @@ -53,5 +59,6 @@ export const api: VersioningApi = { isValid, matches, minSatisfyingVersion, + subset, }; export default api; diff --git a/lib/modules/versioning/types.ts b/lib/modules/versioning/types.ts index bb16fe5d70c5f5..a1808b08cb1c45 100644 --- a/lib/modules/versioning/types.ts +++ b/lib/modules/versioning/types.ts @@ -97,6 +97,15 @@ export interface VersioningApi { matches(version: string, range: string): boolean; valueToVersion?(version: string): string; + + /** + * @returns true if subRange is entirely contained by superRange, false otherwise, + * and undefined if it cannot determine it. + * + * @param subRange - the sub range + * @param superRange - the dom range + */ + subset?(subRange: string, superRange: string): boolean | undefined; } export interface VersioningApiConstructor { From ca03555739cb9a27391f868adc7268da88fe0be0 Mon Sep 17 00:00:00 2001 From: Florian Greinacher Date: Wed, 15 Mar 2023 08:26:26 +0100 Subject: [PATCH 166/228] feat(presets): include replacements:all in config:base (#20933) --- lib/config/presets/index.spec.ts | 1 + lib/config/presets/internal/config.ts | 1 + 2 files changed, 2 insertions(+) diff --git a/lib/config/presets/index.spec.ts b/lib/config/presets/index.spec.ts index 92784b5a581251..b79eccdd7face1 100644 --- a/lib/config/presets/index.spec.ts +++ b/lib/config/presets/index.spec.ts @@ -841,6 +841,7 @@ describe('config/presets/index', () => { ':ignoreModulesAndTests', 'group:monorepos', 'group:recommended', + 'replacements:all', 'workarounds:all', ], }); diff --git a/lib/config/presets/internal/config.ts b/lib/config/presets/internal/config.ts index 040c102aae93c5..451cedb40098ef 100644 --- a/lib/config/presets/internal/config.ts +++ b/lib/config/presets/internal/config.ts @@ -11,6 +11,7 @@ export const presets: Record = { ':ignoreModulesAndTests', 'group:monorepos', 'group:recommended', + 'replacements:all', 'workarounds:all', ], }, From d54e6aa9acde18c008b1697c44ef77a49fff9ae8 Mon Sep 17 00:00:00 2001 From: HonkingGoose <34918129+HonkingGoose@users.noreply.github.com> Date: Wed, 15 Mar 2023 10:57:46 +0100 Subject: [PATCH 167/228] chore(replacements): improve descriptions (#20942) --- lib/config/presets/internal/replacements.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/config/presets/internal/replacements.ts b/lib/config/presets/internal/replacements.ts index 1c4e3c6967a702..86d61039fd77a2 100644 --- a/lib/config/presets/internal/replacements.ts +++ b/lib/config/presets/internal/replacements.ts @@ -35,7 +35,7 @@ export const presets: Record = { ], }, 'apollo-server-to-scoped': { - description: '`apollo-server` packages became scoped', + description: '`apollo-server` packages became scoped.', packageRules: [ { matchCurrentVersion: '>=3.10.3', @@ -116,7 +116,7 @@ export const presets: Record = { ], }, 'fastify-to-scoped': { - description: '`fastify` packages became scoped', + description: '`fastify` packages became scoped.', packageRules: [ { matchCurrentVersion: '>=3.3.0 <4.0.0', @@ -542,7 +542,7 @@ export const presets: Record = { ], }, 'parcel-css-to-lightningcss': { - description: '`@parcel/css` was renamed `lightningcss`.', + description: '`@parcel/css` was renamed to `lightningcss`.', packageRules: [ { matchDatasources: ['npm'], @@ -579,7 +579,7 @@ export const presets: Record = { ], }, 'react-scripts-ts-to-react-scripts': { - description: '`react-scripts` supports typescripts since version 2.1.0.', + description: '`react-scripts` supports TypeScript since version `2.1.0`.', packageRules: [ { matchDatasources: ['npm'], From 3e92cdd10ab524c918fd9734e7b0f86add138896 Mon Sep 17 00:00:00 2001 From: Satoshi Namai Date: Wed, 15 Mar 2023 10:13:06 +0000 Subject: [PATCH 168/228] fix(manager/gradle): drop stdout from gradlew :dependency command (#20820) Co-authored-by: Rhys Arkins --- lib/modules/manager/gradle-wrapper/utils.ts | 14 +++++ lib/modules/manager/gradle/artifacts.spec.ts | 56 +++++++++++++++++--- lib/modules/manager/gradle/artifacts.ts | 9 ++++ lib/modules/manager/gradle/readme.md | 6 +++ 4 files changed, 78 insertions(+), 7 deletions(-) diff --git a/lib/modules/manager/gradle-wrapper/utils.ts b/lib/modules/manager/gradle-wrapper/utils.ts index 473e958f3cf4cb..0f410433714eb3 100644 --- a/lib/modules/manager/gradle-wrapper/utils.ts +++ b/lib/modules/manager/gradle-wrapper/utils.ts @@ -21,6 +21,20 @@ export function gradleWrapperFileName(): string { return './gradlew'; } +export function nullRedirectionCommand(): string { + if ( + os.platform() === 'win32' && + GlobalConfig.get('binarySource') !== 'docker' + ) { + // TODO: Windows environment without docker needs to be implemented + logger.debug( + 'Updating artifacts may fail due to excessive output from "gradle.bat :dependencies" command.' + ); + return ''; + } + return ' > /dev/null'; +} + export async function prepareGradleCommand( gradlewFile: string ): Promise { diff --git a/lib/modules/manager/gradle/artifacts.spec.ts b/lib/modules/manager/gradle/artifacts.spec.ts index 9d890b469d3923..a3cd828eb39d3f 100644 --- a/lib/modules/manager/gradle/artifacts.spec.ts +++ b/lib/modules/manager/gradle/artifacts.spec.ts @@ -158,7 +158,49 @@ describe('modules/manager/gradle/artifacts', () => { }, }, { - cmd: './gradlew --console=plain -q :dependencies --update-locks org.junit.jupiter:junit-jupiter-api,org.junit.jupiter:junit-jupiter-engine', + cmd: './gradlew --console=plain -q :dependencies --update-locks org.junit.jupiter:junit-jupiter-api,org.junit.jupiter:junit-jupiter-engine > /dev/null', + options: { + cwd: '/tmp/github/some/repo', + }, + }, + ]); + }); + + it('updates lock file in win32', async () => { + osPlatformSpy.mockReturnValue('win32'); + + const execSnapshots = mockExecAll(); + + const res = await updateArtifacts({ + packageFileName: 'build.gradle', + updatedDeps: [ + { depName: 'org.junit.jupiter:junit-jupiter-api' }, + { depName: 'org.junit.jupiter:junit-jupiter-engine' }, + ], + newPackageFileContent: '', + config: {}, + }); + + expect(res).toEqual([ + { + file: { + type: 'addition', + path: 'gradle.lockfile', + contents: 'New gradle.lockfile', + }, + }, + ]); + + // In win32, gradle.bat will be used and /dev/null redirection isn't used yet + expect(execSnapshots).toMatchObject([ + { + cmd: 'gradlew.bat --console=plain -q properties', + options: { + cwd: '/tmp/github/some/repo', + }, + }, + { + cmd: 'gradlew.bat --console=plain -q :dependencies --update-locks org.junit.jupiter:junit-jupiter-api,org.junit.jupiter:junit-jupiter-engine', options: { cwd: '/tmp/github/some/repo', }, @@ -200,7 +242,7 @@ describe('modules/manager/gradle/artifacts', () => { }, }, { - cmd: './gradlew --console=plain -q :dependencies --update-locks org.springframework.boot:org.springframework.boot.gradle.plugin', + cmd: './gradlew --console=plain -q :dependencies --update-locks org.springframework.boot:org.springframework.boot.gradle.plugin > /dev/null', options: { cwd: '/tmp/github/some/repo', }, @@ -250,7 +292,7 @@ describe('modules/manager/gradle/artifacts', () => { }, }, { - cmd: './gradlew --console=plain -q :dependencies --write-locks', + cmd: './gradlew --console=plain -q :dependencies --write-locks > /dev/null', options: { cwd: '/tmp/github/some/repo', }, @@ -312,7 +354,7 @@ describe('modules/manager/gradle/artifacts', () => { ' bash -l -c "' + 'install-tool java 16.0.1' + ' && ' + - './gradlew --console=plain -q :dependencies --write-locks' + + './gradlew --console=plain -q :dependencies --write-locks > /dev/null' + '"', options: { cwd: '/tmp/github/some/repo' }, }, @@ -347,7 +389,7 @@ describe('modules/manager/gradle/artifacts', () => { }, { cmd: 'install-tool java 16.0.1' }, { - cmd: './gradlew --console=plain -q :dependencies --write-locks', + cmd: './gradlew --console=plain -q :dependencies --write-locks > /dev/null', options: { cwd: '/tmp/github/some/repo' }, }, ]); @@ -383,7 +425,7 @@ describe('modules/manager/gradle/artifacts', () => { }, }, { - cmd: './gradlew --console=plain -q :dependencies :sub1:dependencies :sub2:dependencies --write-locks', + cmd: './gradlew --console=plain -q :dependencies :sub1:dependencies :sub2:dependencies --write-locks > /dev/null', options: { cwd: '/tmp/github/some/repo', }, @@ -484,7 +526,7 @@ describe('modules/manager/gradle/artifacts', () => { }, { cmd: 'install-tool java 11.0.1' }, { - cmd: './gradlew --console=plain -q :dependencies --write-locks', + cmd: './gradlew --console=plain -q :dependencies --write-locks > /dev/null', options: { cwd: '/tmp/github/some/repo' }, }, ]); diff --git a/lib/modules/manager/gradle/artifacts.ts b/lib/modules/manager/gradle/artifacts.ts index bc10e3c8a97a6a..671aa24a628fc7 100644 --- a/lib/modules/manager/gradle/artifacts.ts +++ b/lib/modules/manager/gradle/artifacts.ts @@ -13,6 +13,7 @@ import { extractGradleVersion, getJavaConstraint, gradleWrapperFileName, + nullRedirectionCommand, prepareGradleCommand, } from '../gradle-wrapper/utils'; import type { UpdateArtifact, UpdateArtifactsResult } from '../types'; @@ -157,6 +158,14 @@ export async function updateArtifacts({ cmd += ` --update-locks ${updatedDepNames.map(quote).join(',')}`; } + // `./gradlew :dependencies` command can output huge text due to `:dependencies` + // that renders dependency graphs. Given the output can exceed `ExecOptions.maxBuffer` size, + // drop stdout from the command. + // + // Note: Windows without docker doesn't supported this yet + const nullRedirection = nullRedirectionCommand(); + cmd += nullRedirection; + await writeLocalFile(packageFileName, newPackageFileContent); await exec(cmd, execOptions); diff --git a/lib/modules/manager/gradle/readme.md b/lib/modules/manager/gradle/readme.md index 407861566bb9e9..31fcbc59952917 100644 --- a/lib/modules/manager/gradle/readme.md +++ b/lib/modules/manager/gradle/readme.md @@ -1,2 +1,8 @@ The `gradle` manager uses a custom parser written in JavaScript, similar to many others managers. It does not call `gradle` directly in order to extract a list of dependencies. + +### Updating lockfiles + +Updating lockfiles is done with `./gradlew :dependencies --wirte/update-locks` command. +This command can output excessive text to the console. +While running the command, the output to stdout is dropped when you run Renovate on most platforms other than Windows. From 14f781597d275c1f5a28ab27b0b6dc8fc7f9bb5f Mon Sep 17 00:00:00 2001 From: HonkingGoose <34918129+HonkingGoose@users.noreply.github.com> Date: Wed, 15 Mar 2023 12:27:26 +0100 Subject: [PATCH 169/228] docs(config options): use admonition (#20948) --- docs/usage/configuration-options.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/usage/configuration-options.md b/docs/usage/configuration-options.md index 2fd11f6bce64df..d3c92fc29f22f6 100644 --- a/docs/usage/configuration-options.md +++ b/docs/usage/configuration-options.md @@ -184,7 +184,9 @@ So for example you could choose to automerge all (passing) `devDependencies` onl } ``` -Important: Renovate won't automerge on GitHub if a PR has a negative review outstanding. + +!!! warning "Negative reviews on GitHub block Renovate automerge" + Renovate won't automerge on GitHub if a PR has a negative review. !!! note From e83ef5a7d3a2f0d086a9b36b12ab8ed0bfa895b3 Mon Sep 17 00:00:00 2001 From: HonkingGoose <34918129+HonkingGoose@users.noreply.github.com> Date: Wed, 15 Mar 2023 12:27:44 +0100 Subject: [PATCH 170/228] docs(config options): use note admonition, fix styling (#20947) --- docs/usage/configuration-options.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/usage/configuration-options.md b/docs/usage/configuration-options.md index d3c92fc29f22f6..4ec354b5a88bef 100644 --- a/docs/usage/configuration-options.md +++ b/docs/usage/configuration-options.md @@ -2392,12 +2392,14 @@ The available sections are header, table, notes, changelogs, configDescription, ## prConcurrentLimit -This setting - if enabled - limits Renovate to a maximum of x concurrent PRs open at any time. +This setting - if enabled - limits Renovate to a maximum of `x` concurrent PRs open at any time. This limit is enforced on a per-repository basis. -Note: Renovate always creates security PRs, even if the concurrent PR limit is already reached. -Security PRs have `[SECURITY]` in their PR title. + +!!! note + Renovate always creates security PRs, even if the concurrent PR limit is already reached. + Security PRs have `[SECURITY]` in their PR title. ## prCreation From 25ea3d1864f584023d307dd4e6d240d1bda37dc2 Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Wed, 15 Mar 2023 12:37:55 +0100 Subject: [PATCH 171/228] fix(cache): use cached git values for branch cache (#20837) --- lib/util/git/index.ts | 6 +++++- lib/workers/repository/cache.ts | 33 ++++++++++++++++++++++++--------- 2 files changed, 29 insertions(+), 10 deletions(-) diff --git a/lib/util/git/index.ts b/lib/util/git/index.ts index 6df7303b275c57..d92e59455077e3 100644 --- a/lib/util/git/index.ts +++ b/lib/util/git/index.ts @@ -31,7 +31,10 @@ import { incLimitedValue } from '../../workers/global/limits'; import { getCache } from '../cache/repository'; import { newlineRegex, regEx } from '../regex'; import { parseGitAuthor } from './author'; -import { getCachedBehindBaseResult } from './behind-base-branch-cache'; +import { + getCachedBehindBaseResult, + setCachedBehindBaseResult, +} from './behind-base-branch-cache'; import { getNoVerify, simpleGitConfig } from './config'; import { getCachedConflictResult, @@ -595,6 +598,7 @@ export async function isBranchBehindBase( { currentBranch, currentBranchSha }, `branch.isBehindBase(): ${isBehind}` ); + setCachedBehindBaseResult(branchName, isBehind); return isBehind; } catch (err) /* istanbul ignore next */ { const errChecked = checkForPlatformFailure(err); diff --git a/lib/workers/repository/cache.ts b/lib/workers/repository/cache.ts index b4657d1a7b8e21..e80979449435d9 100644 --- a/lib/workers/repository/cache.ts +++ b/lib/workers/repository/cache.ts @@ -9,6 +9,9 @@ import type { BranchCache, BranchUpgradeCache, } from '../../util/cache/repository/types'; +import { getCachedBehindBaseResult } from '../../util/git/behind-base-branch-cache'; +import { getCachedConflictResult } from '../../util/git/conflicts-cache'; +import { getCachedModifiedResult } from '../../util/git/modified-cache'; import { getCachedPristineResult } from '../../util/git/pristine'; import type { BranchConfig, BranchUpgradeConfig } from '../types'; import { getPrCache } from './update/pr/pr-cache'; @@ -48,21 +51,33 @@ async function generateBranchCache( ): Promise { const { baseBranch, branchName } = branch; try { - const sha = await scm.getBranchCommit(branchName); + const branchSha = await scm.getBranchCommit(branchName); const baseBranchSha = await scm.getBranchCommit(baseBranch); const pristine = getCachedPristineResult(branchName); let prNo = null; - let isModified = false; - let isBehindBase = false; - let isConflicted = false; - if (sha) { + let isModified: boolean | undefined; + let isBehindBase: boolean | undefined; + let isConflicted: boolean | undefined; + if (baseBranchSha && branchSha) { const branchPr = await platform.getBranchPr(branchName); if (branchPr) { prNo = branchPr.number; } - isModified = await scm.isBranchModified(branchName); - isBehindBase = await scm.isBranchBehindBase(branchName, baseBranch); - isConflicted = await scm.isBranchConflicted(baseBranch, branchName); + isModified = getCachedModifiedResult(branchName, branchSha) ?? undefined; + isBehindBase = + getCachedBehindBaseResult( + branchName, + branchSha, + baseBranch, + baseBranchSha + ) ?? undefined; + isConflicted = + getCachedConflictResult( + branchName, + branchSha, + baseBranch, + baseBranchSha + ) ?? undefined; } const automerge = !!branch.automerge; const upgrades: BranchUpgradeCache[] = branch.upgrades @@ -82,7 +97,7 @@ async function generateBranchCache( pristine, prCache, prNo, - sha, + sha: branchSha, upgrades, }; } catch (error) { From 62e91aff402f24e83814a4cfaa5cc46bcac3f483 Mon Sep 17 00:00:00 2001 From: Michael Kriese Date: Wed, 15 Mar 2023 12:47:10 +0100 Subject: [PATCH 172/228] feat(preset): add containerbase replacements (#20941) Co-authored-by: Rhys Arkins Co-authored-by: HonkingGoose <34918129+HonkingGoose@users.noreply.github.com> --- lib/config/presets/internal/replacements.ts | 34 +++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/lib/config/presets/internal/replacements.ts b/lib/config/presets/internal/replacements.ts index 86d61039fd77a2..207c4c94d783d9 100644 --- a/lib/config/presets/internal/replacements.ts +++ b/lib/config/presets/internal/replacements.ts @@ -14,6 +14,7 @@ export const presets: Record = { extends: [ 'replacements:apollo-server-to-scoped', 'replacements:babel-eslint-to-eslint-parser', + 'replacements:containerbase', 'replacements:cucumber-to-scoped', 'replacements:fastify-to-scoped', 'replacements:hapi-to-scoped', @@ -104,6 +105,39 @@ export const presets: Record = { }, ], }, + containerbase: { + description: 'Replace containerbase dependencies.', + packageRules: [ + { + description: + 'Replace `containerbase/buildpack` with `containerbase/base`.', + matchDatasources: ['docker'], + matchPackageNames: ['containerbase/buildpack'], + replacementName: 'containerbase/base', + }, + { + description: + 'Replace `docker.io/containerbase/buildpack` with `docker.io/containerbase/base`.', + matchDatasources: ['docker'], + matchPackageNames: ['docker.io/containerbase/buildpack'], + replacementName: 'docker.io/containerbase/base', + }, + { + description: + 'Replace `ghcr.io/containerbase/buildpack` with `ghcr.io/containerbase/base`.', + matchDatasources: ['docker'], + matchPackageNames: ['ghcr.io/containerbase/buildpack'], + replacementName: 'ghcr.io/containerbase/base', + }, + { + description: + 'Replace `renovatebot/internal-tools` with `containerbase/internal-tools`.', + matchDatasources: ['github-tags'], + matchPackageNames: ['renovatebot/internal-tools'], + replacementName: 'containerbase/internal-tools', + }, + ], + }, 'cucumber-to-scoped': { description: '`cucumber` became scoped.', packageRules: [ From 54cae9ea4b99e13b605a087441a4cc49681b06aa Mon Sep 17 00:00:00 2001 From: HonkingGoose <34918129+HonkingGoose@users.noreply.github.com> Date: Wed, 15 Mar 2023 12:52:30 +0100 Subject: [PATCH 173/228] chore: capitalize brandname in log message (#20950) --- tools/generate-docs.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/generate-docs.ts b/tools/generate-docs.ts index 6b3f707ba092c8..f19869daf342b2 100644 --- a/tools/generate-docs.ts +++ b/tools/generate-docs.ts @@ -37,7 +37,7 @@ process.on('unhandledRejection', (err) => { return; } - logger.info('* fetching open github issues'); + logger.info('* fetching open GitHub issues'); const openItems = await getOpenGitHubItems(); logger.info('* platforms'); From f32a1e044a321b2c60cc7589b53ed9e7a453915c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 15 Mar 2023 12:20:38 +0000 Subject: [PATCH 174/228] chore(deps): update github/codeql-action action to v2.2.7 (#20952) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/codeql-analysis.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 0294b273ca7525..0eb9104acce9dc 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -30,7 +30,7 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@16964e90ba004cdf0cd845b866b5df21038b7723 # v2.2.6 + uses: github/codeql-action/init@168b99b3c22180941ae7dbdd5f5c9678ede476ba # v2.2.7 with: languages: javascript @@ -40,7 +40,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@16964e90ba004cdf0cd845b866b5df21038b7723 # v2.2.6 + uses: github/codeql-action/autobuild@168b99b3c22180941ae7dbdd5f5c9678ede476ba # v2.2.7 # ℹī¸ Command-line programs to run using the OS shell. # 📚 https://git.io/JvXDl @@ -54,4 +54,4 @@ jobs: # make release - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@16964e90ba004cdf0cd845b866b5df21038b7723 # v2.2.6 + uses: github/codeql-action/analyze@168b99b3c22180941ae7dbdd5f5c9678ede476ba # v2.2.7 From 03d966c2cae5435e6cc0dc85b9162f09bc567c75 Mon Sep 17 00:00:00 2001 From: Michael Kriese Date: Wed, 15 Mar 2023 15:07:29 +0100 Subject: [PATCH 175/228] fix(manager/npm): quote yarn args (#20955) --- .../npm/post-update/__snapshots__/yarn.spec.ts.snap | 4 ++-- lib/modules/manager/npm/post-update/yarn.ts | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/modules/manager/npm/post-update/__snapshots__/yarn.spec.ts.snap b/lib/modules/manager/npm/post-update/__snapshots__/yarn.spec.ts.snap index 0c307b7c7eccbf..ec217838dca065 100644 --- a/lib/modules/manager/npm/post-update/__snapshots__/yarn.spec.ts.snap +++ b/lib/modules/manager/npm/post-update/__snapshots__/yarn.spec.ts.snap @@ -884,7 +884,7 @@ exports[`modules/manager/npm/post-update/yarn performs lock file updates using y }, }, { - "cmd": "yarn up some-dep@^1.0.0", + "cmd": "yarn up 'some-dep@^1.0.0'", "options": { "cwd": "some-dir", "encoding": "utf-8", @@ -934,7 +934,7 @@ exports[`modules/manager/npm/post-update/yarn performs lock file updates using y }, }, { - "cmd": "yarn up some-dep@^1.0.0 --mode=update-lockfile", + "cmd": "yarn up 'some-dep@^1.0.0' --mode=update-lockfile", "options": { "cwd": "some-dir", "encoding": "utf-8", diff --git a/lib/modules/manager/npm/post-update/yarn.ts b/lib/modules/manager/npm/post-update/yarn.ts index a05dd4b7bb8f33..eb11a5f281606a 100644 --- a/lib/modules/manager/npm/post-update/yarn.ts +++ b/lib/modules/manager/npm/post-update/yarn.ts @@ -199,8 +199,7 @@ export async function generateLockFile( if (yarnUpdate && !isYarn1) { logger.debug('Updating Yarn binary'); // TODO: types (#7154) - // eslint-disable-next-line @typescript-eslint/restrict-template-expressions - commands.push(`yarn set version ${yarnUpdate.newValue}`); + commands.push(`yarn set version ${quote(yarnUpdate.newValue!)}`); } // This command updates the lock file based on package.json @@ -218,6 +217,7 @@ export async function generateLockFile( .map((update) => update.depName) .filter(is.string) .filter(uniqueStrings) + .map(quote) .join(' ')}${cmdOptions}` ); } else { @@ -225,9 +225,9 @@ export async function generateLockFile( commands.push( `yarn up ${lockUpdates // TODO: types (#7154) - // eslint-disable-next-line @typescript-eslint/restrict-template-expressions - .map((update) => `${update.depName}@${update.newValue}`) + .map((update) => `${update.depName!}@${update.newValue!}`) .filter(uniqueStrings) + .map(quote) .join(' ')}${cmdOptions}` ); } From c2bf909ce28c462d781a3aa1c26d7b029c479efe Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 15 Mar 2023 14:41:24 +0000 Subject: [PATCH 176/228] build(deps): update aws-sdk-js-v3 monorepo (#20956) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 12 +- yarn.lock | 1422 +++++++++++++++++++++++++------------------------- 2 files changed, 717 insertions(+), 717 deletions(-) diff --git a/package.json b/package.json index 4437739aa171a1..b7ea56d8019110 100644 --- a/package.json +++ b/package.json @@ -136,12 +136,12 @@ "node": ">=18.12.0" }, "dependencies": { - "@aws-sdk/client-codecommit": "3.282.0", - "@aws-sdk/client-ec2": "3.282.0", - "@aws-sdk/client-ecr": "3.282.0", - "@aws-sdk/client-iam": "3.282.0", - "@aws-sdk/client-rds": "3.282.0", - "@aws-sdk/client-s3": "3.282.0", + "@aws-sdk/client-codecommit": "3.290.0", + "@aws-sdk/client-ec2": "3.291.0", + "@aws-sdk/client-ecr": "3.290.0", + "@aws-sdk/client-iam": "3.291.0", + "@aws-sdk/client-rds": "3.290.0", + "@aws-sdk/client-s3": "3.290.0", "@breejs/later": "4.1.0", "@cheap-glitch/mi-cron": "1.0.1", "@iarna/toml": "3.0.0", diff --git a/yarn.lock b/yarn.lock index 00c057769f9804..939168254080ab 100644 --- a/yarn.lock +++ b/yarn.lock @@ -109,12 +109,12 @@ "@aws-sdk/util-utf8-browser" "^3.0.0" tslib "^1.11.1" -"@aws-sdk/abort-controller@3.272.0": - version "3.272.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/abort-controller/-/abort-controller-3.272.0.tgz#c2d244e9d422583a786dfb75485316cb1d4793ce" - integrity sha512-s2TV3phapcTwZNr4qLxbfuQuE9ZMP4RoJdkvRRCkKdm6jslsWLJf2Zlcxti/23hOlINUMYv2iXE2pftIgWGdpg== +"@aws-sdk/abort-controller@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/abort-controller/-/abort-controller-3.290.0.tgz#c8279257e4be8cd84144e1a16dca52f3371d31cc" + integrity sha512-Q4AqucQnhcsauH6tDf1bSRuOW/Ejwjs1qHPLlvknwX1IoxZettP3lXz9LLd8KZnEMFQLHPmBTbFIW+Ivpzl+vw== dependencies: - "@aws-sdk/types" "3.272.0" + "@aws-sdk/types" "3.290.0" tslib "^2.3.1" "@aws-sdk/chunked-blob-reader-native@3.208.0": @@ -132,584 +132,584 @@ dependencies: tslib "^2.3.1" -"@aws-sdk/client-codecommit@3.282.0": - version "3.282.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-codecommit/-/client-codecommit-3.282.0.tgz#ab8713de15e3cd1a2d7aa1d845973c71881aaa21" - integrity sha512-7MCPH9O87FEKWAJ6PGAnqNgsOvEhLQ+N8oBVMzZgZZ/qdj+EaSMdZaMdooVRYL6APQ05yrNtZHD2VhCMpOYy6Q== +"@aws-sdk/client-codecommit@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-codecommit/-/client-codecommit-3.290.0.tgz#5a87dc72b7c262db132f057907c959683cd5cac4" + integrity sha512-FRsCC5yAtXofxrJUtuKR67Ozd7yHTTKy47eaCCBotuQ3eIA5ATuArPFRFpySMQGRmC0/kOjY/WL3ZChKHZFgKA== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/client-sts" "3.282.0" - "@aws-sdk/config-resolver" "3.282.0" - "@aws-sdk/credential-provider-node" "3.282.0" - "@aws-sdk/fetch-http-handler" "3.282.0" - "@aws-sdk/hash-node" "3.272.0" - "@aws-sdk/invalid-dependency" "3.272.0" - "@aws-sdk/middleware-content-length" "3.282.0" - "@aws-sdk/middleware-endpoint" "3.282.0" - "@aws-sdk/middleware-host-header" "3.282.0" - "@aws-sdk/middleware-logger" "3.272.0" - "@aws-sdk/middleware-recursion-detection" "3.282.0" - "@aws-sdk/middleware-retry" "3.282.0" - "@aws-sdk/middleware-serde" "3.272.0" - "@aws-sdk/middleware-signing" "3.282.0" - "@aws-sdk/middleware-stack" "3.272.0" - "@aws-sdk/middleware-user-agent" "3.282.0" - "@aws-sdk/node-config-provider" "3.272.0" - "@aws-sdk/node-http-handler" "3.282.0" - "@aws-sdk/protocol-http" "3.282.0" - "@aws-sdk/smithy-client" "3.279.0" - "@aws-sdk/types" "3.272.0" - "@aws-sdk/url-parser" "3.272.0" + "@aws-sdk/client-sts" "3.290.0" + "@aws-sdk/config-resolver" "3.290.0" + "@aws-sdk/credential-provider-node" "3.290.0" + "@aws-sdk/fetch-http-handler" "3.290.0" + "@aws-sdk/hash-node" "3.290.0" + "@aws-sdk/invalid-dependency" "3.290.0" + "@aws-sdk/middleware-content-length" "3.290.0" + "@aws-sdk/middleware-endpoint" "3.290.0" + "@aws-sdk/middleware-host-header" "3.290.0" + "@aws-sdk/middleware-logger" "3.290.0" + "@aws-sdk/middleware-recursion-detection" "3.290.0" + "@aws-sdk/middleware-retry" "3.290.0" + "@aws-sdk/middleware-serde" "3.290.0" + "@aws-sdk/middleware-signing" "3.290.0" + "@aws-sdk/middleware-stack" "3.290.0" + "@aws-sdk/middleware-user-agent" "3.290.0" + "@aws-sdk/node-config-provider" "3.290.0" + "@aws-sdk/node-http-handler" "3.290.0" + "@aws-sdk/protocol-http" "3.290.0" + "@aws-sdk/smithy-client" "3.290.0" + "@aws-sdk/types" "3.290.0" + "@aws-sdk/url-parser" "3.290.0" "@aws-sdk/util-base64" "3.208.0" "@aws-sdk/util-body-length-browser" "3.188.0" "@aws-sdk/util-body-length-node" "3.208.0" - "@aws-sdk/util-defaults-mode-browser" "3.279.0" - "@aws-sdk/util-defaults-mode-node" "3.282.0" - "@aws-sdk/util-endpoints" "3.272.0" - "@aws-sdk/util-retry" "3.272.0" - "@aws-sdk/util-user-agent-browser" "3.282.0" - "@aws-sdk/util-user-agent-node" "3.282.0" + "@aws-sdk/util-defaults-mode-browser" "3.290.0" + "@aws-sdk/util-defaults-mode-node" "3.290.0" + "@aws-sdk/util-endpoints" "3.290.0" + "@aws-sdk/util-retry" "3.290.0" + "@aws-sdk/util-user-agent-browser" "3.290.0" + "@aws-sdk/util-user-agent-node" "3.290.0" "@aws-sdk/util-utf8" "3.254.0" tslib "^2.3.1" uuid "^8.3.2" -"@aws-sdk/client-ec2@3.282.0": - version "3.282.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-ec2/-/client-ec2-3.282.0.tgz#97b3d2e0489d62b9389b7789d933e2d5b0f372d6" - integrity sha512-6tVTvhmQxIyyRwIamg8FHJF/4rowUF49dEm72s0iKuZYoad244BHHSIm9EeWeKFeHV32UMh36pI+phLtvpL1SQ== +"@aws-sdk/client-ec2@3.291.0": + version "3.291.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-ec2/-/client-ec2-3.291.0.tgz#1bedbf384a8eb76a2ed2b9fa56047dd8c0079bff" + integrity sha512-nVw92++iwDB5RzBe7hCK+HiY/4hHFBd/tXBJlSg7rD6TGHyskv3Qn+n2ikpxPVSRYJgnZr/g9JYYQzm3r6RFxQ== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/client-sts" "3.282.0" - "@aws-sdk/config-resolver" "3.282.0" - "@aws-sdk/credential-provider-node" "3.282.0" - "@aws-sdk/fetch-http-handler" "3.282.0" - "@aws-sdk/hash-node" "3.272.0" - "@aws-sdk/invalid-dependency" "3.272.0" - "@aws-sdk/middleware-content-length" "3.282.0" - "@aws-sdk/middleware-endpoint" "3.282.0" - "@aws-sdk/middleware-host-header" "3.282.0" - "@aws-sdk/middleware-logger" "3.272.0" - "@aws-sdk/middleware-recursion-detection" "3.282.0" - "@aws-sdk/middleware-retry" "3.282.0" - "@aws-sdk/middleware-sdk-ec2" "3.282.0" - "@aws-sdk/middleware-serde" "3.272.0" - "@aws-sdk/middleware-signing" "3.282.0" - "@aws-sdk/middleware-stack" "3.272.0" - "@aws-sdk/middleware-user-agent" "3.282.0" - "@aws-sdk/node-config-provider" "3.272.0" - "@aws-sdk/node-http-handler" "3.282.0" - "@aws-sdk/protocol-http" "3.282.0" - "@aws-sdk/smithy-client" "3.279.0" - "@aws-sdk/types" "3.272.0" - "@aws-sdk/url-parser" "3.272.0" + "@aws-sdk/client-sts" "3.290.0" + "@aws-sdk/config-resolver" "3.290.0" + "@aws-sdk/credential-provider-node" "3.290.0" + "@aws-sdk/fetch-http-handler" "3.290.0" + "@aws-sdk/hash-node" "3.290.0" + "@aws-sdk/invalid-dependency" "3.290.0" + "@aws-sdk/middleware-content-length" "3.290.0" + "@aws-sdk/middleware-endpoint" "3.290.0" + "@aws-sdk/middleware-host-header" "3.290.0" + "@aws-sdk/middleware-logger" "3.290.0" + "@aws-sdk/middleware-recursion-detection" "3.290.0" + "@aws-sdk/middleware-retry" "3.290.0" + "@aws-sdk/middleware-sdk-ec2" "3.291.0" + "@aws-sdk/middleware-serde" "3.290.0" + "@aws-sdk/middleware-signing" "3.290.0" + "@aws-sdk/middleware-stack" "3.290.0" + "@aws-sdk/middleware-user-agent" "3.290.0" + "@aws-sdk/node-config-provider" "3.290.0" + "@aws-sdk/node-http-handler" "3.290.0" + "@aws-sdk/protocol-http" "3.290.0" + "@aws-sdk/smithy-client" "3.290.0" + "@aws-sdk/types" "3.290.0" + "@aws-sdk/url-parser" "3.290.0" "@aws-sdk/util-base64" "3.208.0" "@aws-sdk/util-body-length-browser" "3.188.0" "@aws-sdk/util-body-length-node" "3.208.0" - "@aws-sdk/util-defaults-mode-browser" "3.279.0" - "@aws-sdk/util-defaults-mode-node" "3.282.0" - "@aws-sdk/util-endpoints" "3.272.0" - "@aws-sdk/util-retry" "3.272.0" - "@aws-sdk/util-user-agent-browser" "3.282.0" - "@aws-sdk/util-user-agent-node" "3.282.0" + "@aws-sdk/util-defaults-mode-browser" "3.290.0" + "@aws-sdk/util-defaults-mode-node" "3.290.0" + "@aws-sdk/util-endpoints" "3.290.0" + "@aws-sdk/util-retry" "3.290.0" + "@aws-sdk/util-user-agent-browser" "3.290.0" + "@aws-sdk/util-user-agent-node" "3.290.0" "@aws-sdk/util-utf8" "3.254.0" - "@aws-sdk/util-waiter" "3.272.0" + "@aws-sdk/util-waiter" "3.290.0" fast-xml-parser "4.1.2" tslib "^2.3.1" uuid "^8.3.2" -"@aws-sdk/client-ecr@3.282.0": - version "3.282.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-ecr/-/client-ecr-3.282.0.tgz#7369fbe8970ab04b91bd1a285a7d3790948ecd67" - integrity sha512-r2KpgoXHGlL91xVVEClwR3NcNQ1mzdxghloynN+62VCOZOlaReQD2yhnh8oPhjpQbvWeFiuBjBNMZY8pXT1ILA== +"@aws-sdk/client-ecr@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-ecr/-/client-ecr-3.290.0.tgz#7998247388e93305ef7d91e6cb1e2411d3e729a8" + integrity sha512-GQXKV0QGi2KbhrxU9soXBMqfTmjMdsog2/yf19u7LXKR91Xhq5KNyz6WlavZy+lE5nPa1yartczB+2pZMildhQ== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/client-sts" "3.282.0" - "@aws-sdk/config-resolver" "3.282.0" - "@aws-sdk/credential-provider-node" "3.282.0" - "@aws-sdk/fetch-http-handler" "3.282.0" - "@aws-sdk/hash-node" "3.272.0" - "@aws-sdk/invalid-dependency" "3.272.0" - "@aws-sdk/middleware-content-length" "3.282.0" - "@aws-sdk/middleware-endpoint" "3.282.0" - "@aws-sdk/middleware-host-header" "3.282.0" - "@aws-sdk/middleware-logger" "3.272.0" - "@aws-sdk/middleware-recursion-detection" "3.282.0" - "@aws-sdk/middleware-retry" "3.282.0" - "@aws-sdk/middleware-serde" "3.272.0" - "@aws-sdk/middleware-signing" "3.282.0" - "@aws-sdk/middleware-stack" "3.272.0" - "@aws-sdk/middleware-user-agent" "3.282.0" - "@aws-sdk/node-config-provider" "3.272.0" - "@aws-sdk/node-http-handler" "3.282.0" - "@aws-sdk/protocol-http" "3.282.0" - "@aws-sdk/smithy-client" "3.279.0" - "@aws-sdk/types" "3.272.0" - "@aws-sdk/url-parser" "3.272.0" + "@aws-sdk/client-sts" "3.290.0" + "@aws-sdk/config-resolver" "3.290.0" + "@aws-sdk/credential-provider-node" "3.290.0" + "@aws-sdk/fetch-http-handler" "3.290.0" + "@aws-sdk/hash-node" "3.290.0" + "@aws-sdk/invalid-dependency" "3.290.0" + "@aws-sdk/middleware-content-length" "3.290.0" + "@aws-sdk/middleware-endpoint" "3.290.0" + "@aws-sdk/middleware-host-header" "3.290.0" + "@aws-sdk/middleware-logger" "3.290.0" + "@aws-sdk/middleware-recursion-detection" "3.290.0" + "@aws-sdk/middleware-retry" "3.290.0" + "@aws-sdk/middleware-serde" "3.290.0" + "@aws-sdk/middleware-signing" "3.290.0" + "@aws-sdk/middleware-stack" "3.290.0" + "@aws-sdk/middleware-user-agent" "3.290.0" + "@aws-sdk/node-config-provider" "3.290.0" + "@aws-sdk/node-http-handler" "3.290.0" + "@aws-sdk/protocol-http" "3.290.0" + "@aws-sdk/smithy-client" "3.290.0" + "@aws-sdk/types" "3.290.0" + "@aws-sdk/url-parser" "3.290.0" "@aws-sdk/util-base64" "3.208.0" "@aws-sdk/util-body-length-browser" "3.188.0" "@aws-sdk/util-body-length-node" "3.208.0" - "@aws-sdk/util-defaults-mode-browser" "3.279.0" - "@aws-sdk/util-defaults-mode-node" "3.282.0" - "@aws-sdk/util-endpoints" "3.272.0" - "@aws-sdk/util-retry" "3.272.0" - "@aws-sdk/util-user-agent-browser" "3.282.0" - "@aws-sdk/util-user-agent-node" "3.282.0" + "@aws-sdk/util-defaults-mode-browser" "3.290.0" + "@aws-sdk/util-defaults-mode-node" "3.290.0" + "@aws-sdk/util-endpoints" "3.290.0" + "@aws-sdk/util-retry" "3.290.0" + "@aws-sdk/util-user-agent-browser" "3.290.0" + "@aws-sdk/util-user-agent-node" "3.290.0" "@aws-sdk/util-utf8" "3.254.0" - "@aws-sdk/util-waiter" "3.272.0" + "@aws-sdk/util-waiter" "3.290.0" tslib "^2.3.1" -"@aws-sdk/client-iam@3.282.0": - version "3.282.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-iam/-/client-iam-3.282.0.tgz#b7559b44d080c9cdcb2c625ef6f47e72e2057c36" - integrity sha512-rWSxgNeSYRwaE1XXSeQHHBpQpZSByJZ5nbM57oqatzwpquxpFEy+P4x2CZNBrXSr3lfp860TpYvk63XRobrzIg== +"@aws-sdk/client-iam@3.291.0": + version "3.291.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-iam/-/client-iam-3.291.0.tgz#e3673e2ff9a3ef114bfd561cb3b07b842d590276" + integrity sha512-NbQbigFSQLzdx/8vz0FqMh7QVPH4UnzrGTxHKJxgRlasjPVs6hq2jrBr/ym3vtsYUHEEazbdRzTkXaj/uwOyeA== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/client-sts" "3.282.0" - "@aws-sdk/config-resolver" "3.282.0" - "@aws-sdk/credential-provider-node" "3.282.0" - "@aws-sdk/fetch-http-handler" "3.282.0" - "@aws-sdk/hash-node" "3.272.0" - "@aws-sdk/invalid-dependency" "3.272.0" - "@aws-sdk/middleware-content-length" "3.282.0" - "@aws-sdk/middleware-endpoint" "3.282.0" - "@aws-sdk/middleware-host-header" "3.282.0" - "@aws-sdk/middleware-logger" "3.272.0" - "@aws-sdk/middleware-recursion-detection" "3.282.0" - "@aws-sdk/middleware-retry" "3.282.0" - "@aws-sdk/middleware-serde" "3.272.0" - "@aws-sdk/middleware-signing" "3.282.0" - "@aws-sdk/middleware-stack" "3.272.0" - "@aws-sdk/middleware-user-agent" "3.282.0" - "@aws-sdk/node-config-provider" "3.272.0" - "@aws-sdk/node-http-handler" "3.282.0" - "@aws-sdk/protocol-http" "3.282.0" - "@aws-sdk/smithy-client" "3.279.0" - "@aws-sdk/types" "3.272.0" - "@aws-sdk/url-parser" "3.272.0" + "@aws-sdk/client-sts" "3.290.0" + "@aws-sdk/config-resolver" "3.290.0" + "@aws-sdk/credential-provider-node" "3.290.0" + "@aws-sdk/fetch-http-handler" "3.290.0" + "@aws-sdk/hash-node" "3.290.0" + "@aws-sdk/invalid-dependency" "3.290.0" + "@aws-sdk/middleware-content-length" "3.290.0" + "@aws-sdk/middleware-endpoint" "3.290.0" + "@aws-sdk/middleware-host-header" "3.290.0" + "@aws-sdk/middleware-logger" "3.290.0" + "@aws-sdk/middleware-recursion-detection" "3.290.0" + "@aws-sdk/middleware-retry" "3.290.0" + "@aws-sdk/middleware-serde" "3.290.0" + "@aws-sdk/middleware-signing" "3.290.0" + "@aws-sdk/middleware-stack" "3.290.0" + "@aws-sdk/middleware-user-agent" "3.290.0" + "@aws-sdk/node-config-provider" "3.290.0" + "@aws-sdk/node-http-handler" "3.290.0" + "@aws-sdk/protocol-http" "3.290.0" + "@aws-sdk/smithy-client" "3.290.0" + "@aws-sdk/types" "3.290.0" + "@aws-sdk/url-parser" "3.290.0" "@aws-sdk/util-base64" "3.208.0" "@aws-sdk/util-body-length-browser" "3.188.0" "@aws-sdk/util-body-length-node" "3.208.0" - "@aws-sdk/util-defaults-mode-browser" "3.279.0" - "@aws-sdk/util-defaults-mode-node" "3.282.0" - "@aws-sdk/util-endpoints" "3.272.0" - "@aws-sdk/util-retry" "3.272.0" - "@aws-sdk/util-user-agent-browser" "3.282.0" - "@aws-sdk/util-user-agent-node" "3.282.0" + "@aws-sdk/util-defaults-mode-browser" "3.290.0" + "@aws-sdk/util-defaults-mode-node" "3.290.0" + "@aws-sdk/util-endpoints" "3.290.0" + "@aws-sdk/util-retry" "3.290.0" + "@aws-sdk/util-user-agent-browser" "3.290.0" + "@aws-sdk/util-user-agent-node" "3.290.0" "@aws-sdk/util-utf8" "3.254.0" - "@aws-sdk/util-waiter" "3.272.0" + "@aws-sdk/util-waiter" "3.290.0" fast-xml-parser "4.1.2" tslib "^2.3.1" -"@aws-sdk/client-rds@3.282.0": - version "3.282.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-rds/-/client-rds-3.282.0.tgz#1f3e79bfd0786daa8cd81c9d6ac1d7e708ae0550" - integrity sha512-LxxnZ+AmG0pC5ddWEcYCtUzQcZw1+aMBlGEjPGSZWSs+5ll4BOSeyO/h+78mjKLoRRt1b0k6uP8GxO2QyX37Hw== +"@aws-sdk/client-rds@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-rds/-/client-rds-3.290.0.tgz#9d10c160a366c3e7e762dbd6df3184df89525d72" + integrity sha512-oysKCy3e5b/U4EdohVRbgUEYeHjQggg/KjSauSnuGAHohs5Dz07FxgltkhzpVJEDmaQvjIzrrm+chI4LIgZCGQ== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/client-sts" "3.282.0" - "@aws-sdk/config-resolver" "3.282.0" - "@aws-sdk/credential-provider-node" "3.282.0" - "@aws-sdk/fetch-http-handler" "3.282.0" - "@aws-sdk/hash-node" "3.272.0" - "@aws-sdk/invalid-dependency" "3.272.0" - "@aws-sdk/middleware-content-length" "3.282.0" - "@aws-sdk/middleware-endpoint" "3.282.0" - "@aws-sdk/middleware-host-header" "3.282.0" - "@aws-sdk/middleware-logger" "3.272.0" - "@aws-sdk/middleware-recursion-detection" "3.282.0" - "@aws-sdk/middleware-retry" "3.282.0" - "@aws-sdk/middleware-sdk-rds" "3.282.0" - "@aws-sdk/middleware-serde" "3.272.0" - "@aws-sdk/middleware-signing" "3.282.0" - "@aws-sdk/middleware-stack" "3.272.0" - "@aws-sdk/middleware-user-agent" "3.282.0" - "@aws-sdk/node-config-provider" "3.272.0" - "@aws-sdk/node-http-handler" "3.282.0" - "@aws-sdk/protocol-http" "3.282.0" - "@aws-sdk/smithy-client" "3.279.0" - "@aws-sdk/types" "3.272.0" - "@aws-sdk/url-parser" "3.272.0" + "@aws-sdk/client-sts" "3.290.0" + "@aws-sdk/config-resolver" "3.290.0" + "@aws-sdk/credential-provider-node" "3.290.0" + "@aws-sdk/fetch-http-handler" "3.290.0" + "@aws-sdk/hash-node" "3.290.0" + "@aws-sdk/invalid-dependency" "3.290.0" + "@aws-sdk/middleware-content-length" "3.290.0" + "@aws-sdk/middleware-endpoint" "3.290.0" + "@aws-sdk/middleware-host-header" "3.290.0" + "@aws-sdk/middleware-logger" "3.290.0" + "@aws-sdk/middleware-recursion-detection" "3.290.0" + "@aws-sdk/middleware-retry" "3.290.0" + "@aws-sdk/middleware-sdk-rds" "3.290.0" + "@aws-sdk/middleware-serde" "3.290.0" + "@aws-sdk/middleware-signing" "3.290.0" + "@aws-sdk/middleware-stack" "3.290.0" + "@aws-sdk/middleware-user-agent" "3.290.0" + "@aws-sdk/node-config-provider" "3.290.0" + "@aws-sdk/node-http-handler" "3.290.0" + "@aws-sdk/protocol-http" "3.290.0" + "@aws-sdk/smithy-client" "3.290.0" + "@aws-sdk/types" "3.290.0" + "@aws-sdk/url-parser" "3.290.0" "@aws-sdk/util-base64" "3.208.0" "@aws-sdk/util-body-length-browser" "3.188.0" "@aws-sdk/util-body-length-node" "3.208.0" - "@aws-sdk/util-defaults-mode-browser" "3.279.0" - "@aws-sdk/util-defaults-mode-node" "3.282.0" - "@aws-sdk/util-endpoints" "3.272.0" - "@aws-sdk/util-retry" "3.272.0" - "@aws-sdk/util-user-agent-browser" "3.282.0" - "@aws-sdk/util-user-agent-node" "3.282.0" + "@aws-sdk/util-defaults-mode-browser" "3.290.0" + "@aws-sdk/util-defaults-mode-node" "3.290.0" + "@aws-sdk/util-endpoints" "3.290.0" + "@aws-sdk/util-retry" "3.290.0" + "@aws-sdk/util-user-agent-browser" "3.290.0" + "@aws-sdk/util-user-agent-node" "3.290.0" "@aws-sdk/util-utf8" "3.254.0" - "@aws-sdk/util-waiter" "3.272.0" + "@aws-sdk/util-waiter" "3.290.0" fast-xml-parser "4.1.2" tslib "^2.3.1" -"@aws-sdk/client-s3@3.282.0": - version "3.282.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.282.0.tgz#1b794762ce0278e5b50d8095765a58b18fa31a52" - integrity sha512-Pc3GqSvsQhhsMwbbs+iqv/Ju2HK0z0Hwat1k+bIdzXnEBb8L+KQFuvabqlXd3QAkjkGuG+uHYqB6FheUwN3amg== +"@aws-sdk/client-s3@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.290.0.tgz#c887859ae8b275b3e6cef0f1263ef833268e38c8" + integrity sha512-3QVUyE5rvvM1Td9/5DS9iEZMXQsbqOuV1CMskDgD1/6Iav3OeGsBzDswifova5Tn6gRtDRxmNOZG1UH//7QZMw== dependencies: "@aws-crypto/sha1-browser" "3.0.0" "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/client-sts" "3.282.0" - "@aws-sdk/config-resolver" "3.282.0" - "@aws-sdk/credential-provider-node" "3.282.0" - "@aws-sdk/eventstream-serde-browser" "3.272.0" - "@aws-sdk/eventstream-serde-config-resolver" "3.272.0" - "@aws-sdk/eventstream-serde-node" "3.272.0" - "@aws-sdk/fetch-http-handler" "3.282.0" - "@aws-sdk/hash-blob-browser" "3.272.0" - "@aws-sdk/hash-node" "3.272.0" - "@aws-sdk/hash-stream-node" "3.272.0" - "@aws-sdk/invalid-dependency" "3.272.0" - "@aws-sdk/md5-js" "3.272.0" - "@aws-sdk/middleware-bucket-endpoint" "3.282.0" - "@aws-sdk/middleware-content-length" "3.282.0" - "@aws-sdk/middleware-endpoint" "3.282.0" - "@aws-sdk/middleware-expect-continue" "3.282.0" - "@aws-sdk/middleware-flexible-checksums" "3.282.0" - "@aws-sdk/middleware-host-header" "3.282.0" - "@aws-sdk/middleware-location-constraint" "3.272.0" - "@aws-sdk/middleware-logger" "3.272.0" - "@aws-sdk/middleware-recursion-detection" "3.282.0" - "@aws-sdk/middleware-retry" "3.282.0" - "@aws-sdk/middleware-sdk-s3" "3.282.0" - "@aws-sdk/middleware-serde" "3.272.0" - "@aws-sdk/middleware-signing" "3.282.0" - "@aws-sdk/middleware-ssec" "3.272.0" - "@aws-sdk/middleware-stack" "3.272.0" - "@aws-sdk/middleware-user-agent" "3.282.0" - "@aws-sdk/node-config-provider" "3.272.0" - "@aws-sdk/node-http-handler" "3.282.0" - "@aws-sdk/protocol-http" "3.282.0" - "@aws-sdk/signature-v4-multi-region" "3.282.0" - "@aws-sdk/smithy-client" "3.279.0" - "@aws-sdk/types" "3.272.0" - "@aws-sdk/url-parser" "3.272.0" + "@aws-sdk/client-sts" "3.290.0" + "@aws-sdk/config-resolver" "3.290.0" + "@aws-sdk/credential-provider-node" "3.290.0" + "@aws-sdk/eventstream-serde-browser" "3.290.0" + "@aws-sdk/eventstream-serde-config-resolver" "3.290.0" + "@aws-sdk/eventstream-serde-node" "3.290.0" + "@aws-sdk/fetch-http-handler" "3.290.0" + "@aws-sdk/hash-blob-browser" "3.290.0" + "@aws-sdk/hash-node" "3.290.0" + "@aws-sdk/hash-stream-node" "3.290.0" + "@aws-sdk/invalid-dependency" "3.290.0" + "@aws-sdk/md5-js" "3.290.0" + "@aws-sdk/middleware-bucket-endpoint" "3.290.0" + "@aws-sdk/middleware-content-length" "3.290.0" + "@aws-sdk/middleware-endpoint" "3.290.0" + "@aws-sdk/middleware-expect-continue" "3.290.0" + "@aws-sdk/middleware-flexible-checksums" "3.290.0" + "@aws-sdk/middleware-host-header" "3.290.0" + "@aws-sdk/middleware-location-constraint" "3.290.0" + "@aws-sdk/middleware-logger" "3.290.0" + "@aws-sdk/middleware-recursion-detection" "3.290.0" + "@aws-sdk/middleware-retry" "3.290.0" + "@aws-sdk/middleware-sdk-s3" "3.290.0" + "@aws-sdk/middleware-serde" "3.290.0" + "@aws-sdk/middleware-signing" "3.290.0" + "@aws-sdk/middleware-ssec" "3.290.0" + "@aws-sdk/middleware-stack" "3.290.0" + "@aws-sdk/middleware-user-agent" "3.290.0" + "@aws-sdk/node-config-provider" "3.290.0" + "@aws-sdk/node-http-handler" "3.290.0" + "@aws-sdk/protocol-http" "3.290.0" + "@aws-sdk/signature-v4-multi-region" "3.290.0" + "@aws-sdk/smithy-client" "3.290.0" + "@aws-sdk/types" "3.290.0" + "@aws-sdk/url-parser" "3.290.0" "@aws-sdk/util-base64" "3.208.0" "@aws-sdk/util-body-length-browser" "3.188.0" "@aws-sdk/util-body-length-node" "3.208.0" - "@aws-sdk/util-defaults-mode-browser" "3.279.0" - "@aws-sdk/util-defaults-mode-node" "3.282.0" - "@aws-sdk/util-endpoints" "3.272.0" - "@aws-sdk/util-retry" "3.272.0" - "@aws-sdk/util-stream-browser" "3.282.0" - "@aws-sdk/util-stream-node" "3.282.0" - "@aws-sdk/util-user-agent-browser" "3.282.0" - "@aws-sdk/util-user-agent-node" "3.282.0" + "@aws-sdk/util-defaults-mode-browser" "3.290.0" + "@aws-sdk/util-defaults-mode-node" "3.290.0" + "@aws-sdk/util-endpoints" "3.290.0" + "@aws-sdk/util-retry" "3.290.0" + "@aws-sdk/util-stream-browser" "3.290.0" + "@aws-sdk/util-stream-node" "3.290.0" + "@aws-sdk/util-user-agent-browser" "3.290.0" + "@aws-sdk/util-user-agent-node" "3.290.0" "@aws-sdk/util-utf8" "3.254.0" - "@aws-sdk/util-waiter" "3.272.0" + "@aws-sdk/util-waiter" "3.290.0" "@aws-sdk/xml-builder" "3.201.0" fast-xml-parser "4.1.2" tslib "^2.3.1" -"@aws-sdk/client-sso-oidc@3.282.0": - version "3.282.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.282.0.tgz#538259969e472e4497f01c8b6fe6fafd59db4147" - integrity sha512-upC4yBZllAXg5OVIuS8Lu9MI1aqfAObl2BBixj9fIYbDanQ02s0b1IwfZqlOqNNkGzMko1AWyiOSyOdVgyJ+xg== +"@aws-sdk/client-sso-oidc@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.290.0.tgz#99e8fb91d30cea91f11f193c5953c395b42af4eb" + integrity sha512-/+OSYCjyf2TjA57beWLBjG05yPwWlpqK4gO3GwpVqfygaRh6g5jS0CBVQs+z+xc7gmI0weC/nhc+BXR9qcJJAA== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/config-resolver" "3.282.0" - "@aws-sdk/fetch-http-handler" "3.282.0" - "@aws-sdk/hash-node" "3.272.0" - "@aws-sdk/invalid-dependency" "3.272.0" - "@aws-sdk/middleware-content-length" "3.282.0" - "@aws-sdk/middleware-endpoint" "3.282.0" - "@aws-sdk/middleware-host-header" "3.282.0" - "@aws-sdk/middleware-logger" "3.272.0" - "@aws-sdk/middleware-recursion-detection" "3.282.0" - "@aws-sdk/middleware-retry" "3.282.0" - "@aws-sdk/middleware-serde" "3.272.0" - "@aws-sdk/middleware-stack" "3.272.0" - "@aws-sdk/middleware-user-agent" "3.282.0" - "@aws-sdk/node-config-provider" "3.272.0" - "@aws-sdk/node-http-handler" "3.282.0" - "@aws-sdk/protocol-http" "3.282.0" - "@aws-sdk/smithy-client" "3.279.0" - "@aws-sdk/types" "3.272.0" - "@aws-sdk/url-parser" "3.272.0" + "@aws-sdk/config-resolver" "3.290.0" + "@aws-sdk/fetch-http-handler" "3.290.0" + "@aws-sdk/hash-node" "3.290.0" + "@aws-sdk/invalid-dependency" "3.290.0" + "@aws-sdk/middleware-content-length" "3.290.0" + "@aws-sdk/middleware-endpoint" "3.290.0" + "@aws-sdk/middleware-host-header" "3.290.0" + "@aws-sdk/middleware-logger" "3.290.0" + "@aws-sdk/middleware-recursion-detection" "3.290.0" + "@aws-sdk/middleware-retry" "3.290.0" + "@aws-sdk/middleware-serde" "3.290.0" + "@aws-sdk/middleware-stack" "3.290.0" + "@aws-sdk/middleware-user-agent" "3.290.0" + "@aws-sdk/node-config-provider" "3.290.0" + "@aws-sdk/node-http-handler" "3.290.0" + "@aws-sdk/protocol-http" "3.290.0" + "@aws-sdk/smithy-client" "3.290.0" + "@aws-sdk/types" "3.290.0" + "@aws-sdk/url-parser" "3.290.0" "@aws-sdk/util-base64" "3.208.0" "@aws-sdk/util-body-length-browser" "3.188.0" "@aws-sdk/util-body-length-node" "3.208.0" - "@aws-sdk/util-defaults-mode-browser" "3.279.0" - "@aws-sdk/util-defaults-mode-node" "3.282.0" - "@aws-sdk/util-endpoints" "3.272.0" - "@aws-sdk/util-retry" "3.272.0" - "@aws-sdk/util-user-agent-browser" "3.282.0" - "@aws-sdk/util-user-agent-node" "3.282.0" + "@aws-sdk/util-defaults-mode-browser" "3.290.0" + "@aws-sdk/util-defaults-mode-node" "3.290.0" + "@aws-sdk/util-endpoints" "3.290.0" + "@aws-sdk/util-retry" "3.290.0" + "@aws-sdk/util-user-agent-browser" "3.290.0" + "@aws-sdk/util-user-agent-node" "3.290.0" "@aws-sdk/util-utf8" "3.254.0" tslib "^2.3.1" -"@aws-sdk/client-sso@3.282.0": - version "3.282.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.282.0.tgz#9d31cf2eacd6d022213d40ad976ae3a00f99838f" - integrity sha512-VzdCCaxlDyU+7wvLDWh+uACQ6RPfaKLQ3yJ2UY0B0SkH4R0E4GLDJ2OJzqS5eyyOsnq1rxfY75S4WYzj8E2cvg== +"@aws-sdk/client-sso@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.290.0.tgz#59e4b1cb9644fd98cf0d428dd34b23bb91ca4037" + integrity sha512-FUFAbptuJSRKnzBgFJqXxusSG7PzECSqX0FnMh2vxCVu2PifaAE4stiMW8Myj8ABQAbfIrAWM+17upcrfmudoA== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/config-resolver" "3.282.0" - "@aws-sdk/fetch-http-handler" "3.282.0" - "@aws-sdk/hash-node" "3.272.0" - "@aws-sdk/invalid-dependency" "3.272.0" - "@aws-sdk/middleware-content-length" "3.282.0" - "@aws-sdk/middleware-endpoint" "3.282.0" - "@aws-sdk/middleware-host-header" "3.282.0" - "@aws-sdk/middleware-logger" "3.272.0" - "@aws-sdk/middleware-recursion-detection" "3.282.0" - "@aws-sdk/middleware-retry" "3.282.0" - "@aws-sdk/middleware-serde" "3.272.0" - "@aws-sdk/middleware-stack" "3.272.0" - "@aws-sdk/middleware-user-agent" "3.282.0" - "@aws-sdk/node-config-provider" "3.272.0" - "@aws-sdk/node-http-handler" "3.282.0" - "@aws-sdk/protocol-http" "3.282.0" - "@aws-sdk/smithy-client" "3.279.0" - "@aws-sdk/types" "3.272.0" - "@aws-sdk/url-parser" "3.272.0" + "@aws-sdk/config-resolver" "3.290.0" + "@aws-sdk/fetch-http-handler" "3.290.0" + "@aws-sdk/hash-node" "3.290.0" + "@aws-sdk/invalid-dependency" "3.290.0" + "@aws-sdk/middleware-content-length" "3.290.0" + "@aws-sdk/middleware-endpoint" "3.290.0" + "@aws-sdk/middleware-host-header" "3.290.0" + "@aws-sdk/middleware-logger" "3.290.0" + "@aws-sdk/middleware-recursion-detection" "3.290.0" + "@aws-sdk/middleware-retry" "3.290.0" + "@aws-sdk/middleware-serde" "3.290.0" + "@aws-sdk/middleware-stack" "3.290.0" + "@aws-sdk/middleware-user-agent" "3.290.0" + "@aws-sdk/node-config-provider" "3.290.0" + "@aws-sdk/node-http-handler" "3.290.0" + "@aws-sdk/protocol-http" "3.290.0" + "@aws-sdk/smithy-client" "3.290.0" + "@aws-sdk/types" "3.290.0" + "@aws-sdk/url-parser" "3.290.0" "@aws-sdk/util-base64" "3.208.0" "@aws-sdk/util-body-length-browser" "3.188.0" "@aws-sdk/util-body-length-node" "3.208.0" - "@aws-sdk/util-defaults-mode-browser" "3.279.0" - "@aws-sdk/util-defaults-mode-node" "3.282.0" - "@aws-sdk/util-endpoints" "3.272.0" - "@aws-sdk/util-retry" "3.272.0" - "@aws-sdk/util-user-agent-browser" "3.282.0" - "@aws-sdk/util-user-agent-node" "3.282.0" + "@aws-sdk/util-defaults-mode-browser" "3.290.0" + "@aws-sdk/util-defaults-mode-node" "3.290.0" + "@aws-sdk/util-endpoints" "3.290.0" + "@aws-sdk/util-retry" "3.290.0" + "@aws-sdk/util-user-agent-browser" "3.290.0" + "@aws-sdk/util-user-agent-node" "3.290.0" "@aws-sdk/util-utf8" "3.254.0" tslib "^2.3.1" -"@aws-sdk/client-sts@3.282.0": - version "3.282.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.282.0.tgz#1c4355a5d6a8e6af03e752c3273a59c57aaf1715" - integrity sha512-JZybEaST0rloS9drlX/0yJAnKHuV7DlS1n1WZxgaM2DY704ydlGiviiPQvC/q/dItsX4017gscC0blGJcUjK1g== +"@aws-sdk/client-sts@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.290.0.tgz#ed5f88379e2c3740b095d8e3a9ce13b806a244f7" + integrity sha512-E2X/7tZLziKLgi/owYoUL5gcorGJrbM2tANJdJmaqVUPhPvoY4wU8P91pGPKon9nQj0RQexre5ClZawYD6lTzA== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/config-resolver" "3.282.0" - "@aws-sdk/credential-provider-node" "3.282.0" - "@aws-sdk/fetch-http-handler" "3.282.0" - "@aws-sdk/hash-node" "3.272.0" - "@aws-sdk/invalid-dependency" "3.272.0" - "@aws-sdk/middleware-content-length" "3.282.0" - "@aws-sdk/middleware-endpoint" "3.282.0" - "@aws-sdk/middleware-host-header" "3.282.0" - "@aws-sdk/middleware-logger" "3.272.0" - "@aws-sdk/middleware-recursion-detection" "3.282.0" - "@aws-sdk/middleware-retry" "3.282.0" - "@aws-sdk/middleware-sdk-sts" "3.282.0" - "@aws-sdk/middleware-serde" "3.272.0" - "@aws-sdk/middleware-signing" "3.282.0" - "@aws-sdk/middleware-stack" "3.272.0" - "@aws-sdk/middleware-user-agent" "3.282.0" - "@aws-sdk/node-config-provider" "3.272.0" - "@aws-sdk/node-http-handler" "3.282.0" - "@aws-sdk/protocol-http" "3.282.0" - "@aws-sdk/smithy-client" "3.279.0" - "@aws-sdk/types" "3.272.0" - "@aws-sdk/url-parser" "3.272.0" + "@aws-sdk/config-resolver" "3.290.0" + "@aws-sdk/credential-provider-node" "3.290.0" + "@aws-sdk/fetch-http-handler" "3.290.0" + "@aws-sdk/hash-node" "3.290.0" + "@aws-sdk/invalid-dependency" "3.290.0" + "@aws-sdk/middleware-content-length" "3.290.0" + "@aws-sdk/middleware-endpoint" "3.290.0" + "@aws-sdk/middleware-host-header" "3.290.0" + "@aws-sdk/middleware-logger" "3.290.0" + "@aws-sdk/middleware-recursion-detection" "3.290.0" + "@aws-sdk/middleware-retry" "3.290.0" + "@aws-sdk/middleware-sdk-sts" "3.290.0" + "@aws-sdk/middleware-serde" "3.290.0" + "@aws-sdk/middleware-signing" "3.290.0" + "@aws-sdk/middleware-stack" "3.290.0" + "@aws-sdk/middleware-user-agent" "3.290.0" + "@aws-sdk/node-config-provider" "3.290.0" + "@aws-sdk/node-http-handler" "3.290.0" + "@aws-sdk/protocol-http" "3.290.0" + "@aws-sdk/smithy-client" "3.290.0" + "@aws-sdk/types" "3.290.0" + "@aws-sdk/url-parser" "3.290.0" "@aws-sdk/util-base64" "3.208.0" "@aws-sdk/util-body-length-browser" "3.188.0" "@aws-sdk/util-body-length-node" "3.208.0" - "@aws-sdk/util-defaults-mode-browser" "3.279.0" - "@aws-sdk/util-defaults-mode-node" "3.282.0" - "@aws-sdk/util-endpoints" "3.272.0" - "@aws-sdk/util-retry" "3.272.0" - "@aws-sdk/util-user-agent-browser" "3.282.0" - "@aws-sdk/util-user-agent-node" "3.282.0" + "@aws-sdk/util-defaults-mode-browser" "3.290.0" + "@aws-sdk/util-defaults-mode-node" "3.290.0" + "@aws-sdk/util-endpoints" "3.290.0" + "@aws-sdk/util-retry" "3.290.0" + "@aws-sdk/util-user-agent-browser" "3.290.0" + "@aws-sdk/util-user-agent-node" "3.290.0" "@aws-sdk/util-utf8" "3.254.0" fast-xml-parser "4.1.2" tslib "^2.3.1" -"@aws-sdk/config-resolver@3.282.0": - version "3.282.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/config-resolver/-/config-resolver-3.282.0.tgz#b76f3b7daedc2dfca261445f0d222b3d15d693e5" - integrity sha512-30qFLh2N4NXQ2EAook7NIFeu1K/nlrRLrdVb2BtGFi/F3cZnz+sy9o0XmL6x+sO9TznWjdNxD1RKQdqoAwGnCQ== +"@aws-sdk/config-resolver@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/config-resolver/-/config-resolver-3.290.0.tgz#400155b7d5e0a0215889f58e601ec334615585e1" + integrity sha512-Ovskri6IR4iBK0+3ttgjPSgOUEC+fd5tqRN5JlPCCZ9VwqwF/z26yYC4fAPaMUAJwPVRFeYYzQoszXGoxPyG7g== dependencies: - "@aws-sdk/signature-v4" "3.282.0" - "@aws-sdk/types" "3.272.0" + "@aws-sdk/signature-v4" "3.290.0" + "@aws-sdk/types" "3.290.0" "@aws-sdk/util-config-provider" "3.208.0" - "@aws-sdk/util-middleware" "3.272.0" + "@aws-sdk/util-middleware" "3.290.0" tslib "^2.3.1" -"@aws-sdk/credential-provider-env@3.272.0": - version "3.272.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.272.0.tgz#c647799806d2cf491b9b0d8d32682393caf74e20" - integrity sha512-QI65NbLnKLYHyTYhXaaUrq6eVsCCrMUb05WDA7+TJkWkjXesovpjc8vUKgFiLSxmgKmb2uOhHNcDyObKMrYQFw== +"@aws-sdk/credential-provider-env@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.290.0.tgz#da262156d7679f33c0edd75578221b64f3314266" + integrity sha512-gWsllElBm4DWZcc42Zb6sxaw77KBf6cY9iEezbVzVbJioqR9hIr1Pq3Nx30z1Q+1KiHSnt/Wl9cYYHOoNw2DnQ== dependencies: - "@aws-sdk/property-provider" "3.272.0" - "@aws-sdk/types" "3.272.0" + "@aws-sdk/property-provider" "3.290.0" + "@aws-sdk/types" "3.290.0" tslib "^2.3.1" -"@aws-sdk/credential-provider-imds@3.272.0": - version "3.272.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.272.0.tgz#8e740961c2e1f9b93a467e8d5e836e359e18592c" - integrity sha512-wwAfVY1jTFQEfxVfdYD5r5ieYGl+0g4nhekVxNMqE8E1JeRDd18OqiwAflzpgBIqxfqvCUkf+vl5JYyacMkNAQ== +"@aws-sdk/credential-provider-imds@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.290.0.tgz#3cf65860defad4cd9af266c1a96193a6dce94075" + integrity sha512-PkYEs7zzUVWnhkR9TlU1ORDcCnkD7qoqR1loXXSZc+EIOX9M7f+sXGLtCXVl9wV1Ekx3a5Tjud+aQcOJjjFePA== dependencies: - "@aws-sdk/node-config-provider" "3.272.0" - "@aws-sdk/property-provider" "3.272.0" - "@aws-sdk/types" "3.272.0" - "@aws-sdk/url-parser" "3.272.0" + "@aws-sdk/node-config-provider" "3.290.0" + "@aws-sdk/property-provider" "3.290.0" + "@aws-sdk/types" "3.290.0" + "@aws-sdk/url-parser" "3.290.0" tslib "^2.3.1" -"@aws-sdk/credential-provider-ini@3.282.0": - version "3.282.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.282.0.tgz#60bc1d0fb3cf7053335f42f95f01601f5fdcf4bc" - integrity sha512-2GKduXORcUgOigF1jZF7A1Wh4W/aJt3ynh7xb1vfx020nHx6YDljrEGpzgH6pOVzl7ZhgthpojicCuy2UumkMA== - dependencies: - "@aws-sdk/credential-provider-env" "3.272.0" - "@aws-sdk/credential-provider-imds" "3.272.0" - "@aws-sdk/credential-provider-process" "3.272.0" - "@aws-sdk/credential-provider-sso" "3.282.0" - "@aws-sdk/credential-provider-web-identity" "3.272.0" - "@aws-sdk/property-provider" "3.272.0" - "@aws-sdk/shared-ini-file-loader" "3.272.0" - "@aws-sdk/types" "3.272.0" +"@aws-sdk/credential-provider-ini@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.290.0.tgz#7062a952d57310c721fb09d1468333777f63e375" + integrity sha512-n3OGvkvNgMS6Kb2fuFrmNeCI8CP7DGOsEvcfYPMiXsQWx9hHAh/XIv7ksD3TL5Mn8Dr0NHmB6uY5WgUZDatqfw== + dependencies: + "@aws-sdk/credential-provider-env" "3.290.0" + "@aws-sdk/credential-provider-imds" "3.290.0" + "@aws-sdk/credential-provider-process" "3.290.0" + "@aws-sdk/credential-provider-sso" "3.290.0" + "@aws-sdk/credential-provider-web-identity" "3.290.0" + "@aws-sdk/property-provider" "3.290.0" + "@aws-sdk/shared-ini-file-loader" "3.290.0" + "@aws-sdk/types" "3.290.0" tslib "^2.3.1" -"@aws-sdk/credential-provider-node@3.282.0": - version "3.282.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.282.0.tgz#90b71f75ae25b8e654b15271b14b0af736a2b2b3" - integrity sha512-qyHipZW0ep8STY+SO+Me8ObQ1Ee/aaZTmAK0Os/gB+EsiZhIE+mi6zRcScwdnpgJPLRYMEe4p/Cr6DOrA0G0GQ== - dependencies: - "@aws-sdk/credential-provider-env" "3.272.0" - "@aws-sdk/credential-provider-imds" "3.272.0" - "@aws-sdk/credential-provider-ini" "3.282.0" - "@aws-sdk/credential-provider-process" "3.272.0" - "@aws-sdk/credential-provider-sso" "3.282.0" - "@aws-sdk/credential-provider-web-identity" "3.272.0" - "@aws-sdk/property-provider" "3.272.0" - "@aws-sdk/shared-ini-file-loader" "3.272.0" - "@aws-sdk/types" "3.272.0" +"@aws-sdk/credential-provider-node@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.290.0.tgz#d9444ae189d545b8cac8a52f578e79b2687a2b38" + integrity sha512-snLmeD7yAYq1x7lngCTM1VGmHYCZ4iUW5JRG9XPr7Npl7VWVdnNqaf5XBYEANgaFoWxjN3dNyDPg05+5Ew6QCA== + dependencies: + "@aws-sdk/credential-provider-env" "3.290.0" + "@aws-sdk/credential-provider-imds" "3.290.0" + "@aws-sdk/credential-provider-ini" "3.290.0" + "@aws-sdk/credential-provider-process" "3.290.0" + "@aws-sdk/credential-provider-sso" "3.290.0" + "@aws-sdk/credential-provider-web-identity" "3.290.0" + "@aws-sdk/property-provider" "3.290.0" + "@aws-sdk/shared-ini-file-loader" "3.290.0" + "@aws-sdk/types" "3.290.0" tslib "^2.3.1" -"@aws-sdk/credential-provider-process@3.272.0": - version "3.272.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.272.0.tgz#bd0c859554e705c085f0e2ad5dad7e1e43c967ad" - integrity sha512-hiCAjWWm2PeBFp5cjkxqyam/XADjiS+e7GzwC34TbZn3LisS0uoweLojj9tD11NnnUhyhbLteUvu5+rotOLwrg== +"@aws-sdk/credential-provider-process@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.290.0.tgz#aaae9f198810c2b4f586689fb359a2382723d737" + integrity sha512-PNnWDYSaE8dMepH59cyrXs45Ucdmzdnyuhcn/fVwQ0Nc7FzESxw1G7SgJZhYF4tMRDiepu6lbFEN0QXsTIM8Iw== dependencies: - "@aws-sdk/property-provider" "3.272.0" - "@aws-sdk/shared-ini-file-loader" "3.272.0" - "@aws-sdk/types" "3.272.0" + "@aws-sdk/property-provider" "3.290.0" + "@aws-sdk/shared-ini-file-loader" "3.290.0" + "@aws-sdk/types" "3.290.0" tslib "^2.3.1" -"@aws-sdk/credential-provider-sso@3.282.0": - version "3.282.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.282.0.tgz#a922821d9e0fa892af131c3774f1ecbd62545cd2" - integrity sha512-c4nibry7u0hkYRMi7+cWzdwYXfDDG+j3VYFxk2oOvU1VIJRyE6oeJqVaz3jgYLX9brHyrLJjuFCIJCUV/WXgIA== +"@aws-sdk/credential-provider-sso@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.290.0.tgz#02d5bdf54f6611169a07656b58a026927f9c33a7" + integrity sha512-tX5Ez3EiMrXDx6Vsn2gMq7ga3y4iyPneenCNToRUlmZrhF61DhMfA22gRwdwuP8hlFKXY4LRg51pBfJeq0ga8w== dependencies: - "@aws-sdk/client-sso" "3.282.0" - "@aws-sdk/property-provider" "3.272.0" - "@aws-sdk/shared-ini-file-loader" "3.272.0" - "@aws-sdk/token-providers" "3.282.0" - "@aws-sdk/types" "3.272.0" + "@aws-sdk/client-sso" "3.290.0" + "@aws-sdk/property-provider" "3.290.0" + "@aws-sdk/shared-ini-file-loader" "3.290.0" + "@aws-sdk/token-providers" "3.290.0" + "@aws-sdk/types" "3.290.0" tslib "^2.3.1" -"@aws-sdk/credential-provider-web-identity@3.272.0": - version "3.272.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.272.0.tgz#2a1d8f73654c2d50bf27c6355a550bc389d6057e" - integrity sha512-ImrHMkcgneGa/HadHAQXPwOrX26sAKuB8qlMxZF/ZCM2B55u8deY+ZVkVuraeKb7YsahMGehPFOfRAF6mvFI5Q== +"@aws-sdk/credential-provider-web-identity@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.290.0.tgz#4aecad2bcc4e4dbc56ad52872b332ec3ce10ae22" + integrity sha512-Apv6AnYtb5LTUreDVsqlXFNgiU0TQAZ8sfPg23pGrBGZvZU3KfDhF9n5j0i9Uca44O+/vB7UvbbvNAZS200vsQ== dependencies: - "@aws-sdk/property-provider" "3.272.0" - "@aws-sdk/types" "3.272.0" + "@aws-sdk/property-provider" "3.290.0" + "@aws-sdk/types" "3.290.0" tslib "^2.3.1" -"@aws-sdk/eventstream-codec@3.272.0": - version "3.272.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-codec/-/eventstream-codec-3.272.0.tgz#9d5cbc6c2e438eee18eb8532bc4a3cab16315214" - integrity sha512-HYMzglDnqUhvx3u9MdzZ/OjLuavaaH9zF9XMXRuv7bdsN9AAi3/0he0FEx84ZXNXSAZCebLwXJYf0ZrN6g37QA== +"@aws-sdk/eventstream-codec@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-codec/-/eventstream-codec-3.290.0.tgz#fb8f337da457a17ba89fafc5850de89199ccb84f" + integrity sha512-rUIEOTJhB/Up7FSUkrjmIExdJcmDP9Y1uMtnuhFcLhVXlELZ+tB0AfYCcbUBt8ZeMvrULlb+OkxWwHPyh8qkAA== dependencies: "@aws-crypto/crc32" "3.0.0" - "@aws-sdk/types" "3.272.0" + "@aws-sdk/types" "3.290.0" "@aws-sdk/util-hex-encoding" "3.201.0" tslib "^2.3.1" -"@aws-sdk/eventstream-serde-browser@3.272.0": - version "3.272.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-serde-browser/-/eventstream-serde-browser-3.272.0.tgz#c8b4a98beb9473db508a4669bd0dc25de4c0c825" - integrity sha512-mE1+mevS+KVKpnTLi5FytsBwAK1kWZ92ERtAiElp58SKE1OpfSg8lEY8VI6JKGlueN540Qq3LeIgA2/HJOcK/w== +"@aws-sdk/eventstream-serde-browser@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-serde-browser/-/eventstream-serde-browser-3.290.0.tgz#126636883c0ba8a8dacfb2aa424df6926b67e5ad" + integrity sha512-6XOtQh8Zj8AoEiF7oA+4iN4KsrtFFggkKzY+5g+NMNE9Z0vyQlc1Vo7MngicmxlX1l35KUW9Xe1DfAvCVzNUBQ== dependencies: - "@aws-sdk/eventstream-serde-universal" "3.272.0" - "@aws-sdk/types" "3.272.0" + "@aws-sdk/eventstream-serde-universal" "3.290.0" + "@aws-sdk/types" "3.290.0" tslib "^2.3.1" -"@aws-sdk/eventstream-serde-config-resolver@3.272.0": - version "3.272.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.272.0.tgz#f72ab037404ecb01e35dc619d7971813c269346c" - integrity sha512-e47BhGBvx+me53cvYx+47ml5KNDj7XoTth80krHlyLrimFELE1ij4tHSKR/XzilKKH1uIWmJQdlAi29129ZX5w== +"@aws-sdk/eventstream-serde-config-resolver@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.290.0.tgz#b9a89d405338fed549a51e26d6debfa374a06d85" + integrity sha512-nmHvgc21x79Q7ATMU2d3POKOjfs5zA2s407JAek6JAK4dpq+XO8B7sX9HcHlZc8+81z4LkWfdfsOC7fcgUaTPA== dependencies: - "@aws-sdk/types" "3.272.0" + "@aws-sdk/types" "3.290.0" tslib "^2.3.1" -"@aws-sdk/eventstream-serde-node@3.272.0": - version "3.272.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-serde-node/-/eventstream-serde-node-3.272.0.tgz#5f3e97e14419938271a2e62d2f759347a093530a" - integrity sha512-uto8y4FoZugWnczM1TKwv6oV2Po2Jgrp+W1Ws3baRQ4Lan+QpFx3Tps1N5rNzQ+7Uz0xT1BhbSNPAkKs22/jtg== +"@aws-sdk/eventstream-serde-node@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-serde-node/-/eventstream-serde-node-3.290.0.tgz#f20457ba5faecb89226c88f3888164bc6d86ca18" + integrity sha512-iD7tkWSf5I9ah6S5iL/Tc93fAC0QYZqyhKd2qKaNjF0o8draNjXWX2Bq16YrWH1H3eJBAAYAQZI7ldEP+mwccw== dependencies: - "@aws-sdk/eventstream-serde-universal" "3.272.0" - "@aws-sdk/types" "3.272.0" + "@aws-sdk/eventstream-serde-universal" "3.290.0" + "@aws-sdk/types" "3.290.0" tslib "^2.3.1" -"@aws-sdk/eventstream-serde-universal@3.272.0": - version "3.272.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-serde-universal/-/eventstream-serde-universal-3.272.0.tgz#3dbc2a92486f3c1772ab1aba52324376cc112013" - integrity sha512-E9jlt8tzDcEMoNlgv3+01jGPJPHmbmw2NsajZhB4axVMpEy247JV6qvCZe+5R+EGy96t0pfsO2naViEB4Va47g== +"@aws-sdk/eventstream-serde-universal@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-serde-universal/-/eventstream-serde-universal-3.290.0.tgz#8f3040ced8d5425f3624eefdac40f7cf6617015a" + integrity sha512-5Rz1Z+Oj9WR/NpazjgQBSapPCGUX63PHXprdv9FPeZdwkRH/ZBF1Bs4lOqixiZOcz9YX8UFtBBgrKCYH9JjtnQ== dependencies: - "@aws-sdk/eventstream-codec" "3.272.0" - "@aws-sdk/types" "3.272.0" + "@aws-sdk/eventstream-codec" "3.290.0" + "@aws-sdk/types" "3.290.0" tslib "^2.3.1" -"@aws-sdk/fetch-http-handler@3.282.0": - version "3.282.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.282.0.tgz#aee6e441013880553b15db7ce66cbebba2e26f6b" - integrity sha512-RTd53UzKtUucIEdVLGGgtlbVwp0QkOt3ZfHuA/A1lOH7meChSh1kz7B5z3p4HQDpXO+MQ1Y6Ble9Vg2fh1zwJQ== +"@aws-sdk/fetch-http-handler@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.290.0.tgz#53265b0f463f7e4c0266c1c7ad1233d0df88f5b4" + integrity sha512-hehbIxcqyJeiUBTbbP3C4tmY2p9UIh7bnLTKhocqaUcdEXQwlIRiQlnnA+TrQ5Uyoe+W3fAmv25tq08rB9ddhw== dependencies: - "@aws-sdk/protocol-http" "3.282.0" - "@aws-sdk/querystring-builder" "3.272.0" - "@aws-sdk/types" "3.272.0" + "@aws-sdk/protocol-http" "3.290.0" + "@aws-sdk/querystring-builder" "3.290.0" + "@aws-sdk/types" "3.290.0" "@aws-sdk/util-base64" "3.208.0" tslib "^2.3.1" -"@aws-sdk/hash-blob-browser@3.272.0": - version "3.272.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/hash-blob-browser/-/hash-blob-browser-3.272.0.tgz#c3f71c082f1c3f86fb4f7632e1a9cb418f8d8a03" - integrity sha512-IRCIMG42fXcdD92C8Sb0CQI8D/msxDwHGAIqP94iGhVEnKX2egyx5J8lmPY4gEky5UzyMMaH7cayBv89ZMEBmQ== +"@aws-sdk/hash-blob-browser@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/hash-blob-browser/-/hash-blob-browser-3.290.0.tgz#20a7db4810201dccaa9aeac4391f3b4320df381d" + integrity sha512-unKp9whdBAomUEHTfAYd/qloNNQG60eEw13RHysWdrN44Megaqu8y4HHRQEkfNxqXss5ERHpMja8uBj9gE7kEA== dependencies: "@aws-sdk/chunked-blob-reader" "3.188.0" "@aws-sdk/chunked-blob-reader-native" "3.208.0" - "@aws-sdk/types" "3.272.0" + "@aws-sdk/types" "3.290.0" tslib "^2.3.1" -"@aws-sdk/hash-node@3.272.0": - version "3.272.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/hash-node/-/hash-node-3.272.0.tgz#a39d80fd118ad306f17191f0565ea4db88aa0563" - integrity sha512-40dwND+iAm3VtPHPZu7/+CIdVJFk2s0cWZt1lOiMPMSXycSYJ45wMk7Lly3uoqRx0uWfFK5iT2OCv+fJi5jTng== +"@aws-sdk/hash-node@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/hash-node/-/hash-node-3.290.0.tgz#bce2a6d79c13a07db7240b3df4f5daebb419a78f" + integrity sha512-ayqJBOPoMa3H3eUhZHPu9ikNjoydu3nxj+R6tp8nMrKfFYDUu0XCdkpB0Wk/EBpMyWA2ZeyyfgXEUtQkqkAWBA== dependencies: - "@aws-sdk/types" "3.272.0" + "@aws-sdk/types" "3.290.0" "@aws-sdk/util-buffer-from" "3.208.0" "@aws-sdk/util-utf8" "3.254.0" tslib "^2.3.1" -"@aws-sdk/hash-stream-node@3.272.0": - version "3.272.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/hash-stream-node/-/hash-stream-node-3.272.0.tgz#543fb22d16b9fffae8b071f076fcbd39c8822fff" - integrity sha512-mWwQWdfVYoR6PXRLkHP6pC1cghZMg0ULuOAm70EtTO2YXiyLlMIDb+VD4RRbjh3hNkzh+y/W47wSUJthGBM1kg== +"@aws-sdk/hash-stream-node@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/hash-stream-node/-/hash-stream-node-3.290.0.tgz#78bb68726f52848c3facf8b9ccabc4362daa202b" + integrity sha512-6IjHrcD9qi3QIPNT8yGWNiMGdqvPru9lJX5tDSuZSe8cNOIRKFRSLkpQIRPdQLBQLbyJSX0MkwZ+apo6K7H09g== dependencies: - "@aws-sdk/types" "3.272.0" + "@aws-sdk/types" "3.290.0" "@aws-sdk/util-utf8" "3.254.0" tslib "^2.3.1" -"@aws-sdk/invalid-dependency@3.272.0": - version "3.272.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/invalid-dependency/-/invalid-dependency-3.272.0.tgz#93b34dc0f78d0c44a4beae6dc75dde4801915f1c" - integrity sha512-ysW6wbjl1Y78txHUQ/Tldj2Rg1BI7rpMO9B9xAF6yAX3mQ7t6SUPQG/ewOGvH2208NBIl3qP5e/hDf0Q6r/1iw== +"@aws-sdk/invalid-dependency@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/invalid-dependency/-/invalid-dependency-3.290.0.tgz#2952ce8322be4cce75d8f82756f70e9b7f409b3d" + integrity sha512-plJpEJ+PPTrpaMfg5KKsAfdXUi6iUZTc/PgP0/CPqCe3kuiWb1xb2GeTxOL5InzfBffVdHWeTanYu9+V0MIxVw== dependencies: - "@aws-sdk/types" "3.272.0" + "@aws-sdk/types" "3.290.0" tslib "^2.3.1" "@aws-sdk/is-array-buffer@3.201.0": @@ -719,323 +719,323 @@ dependencies: tslib "^2.3.1" -"@aws-sdk/md5-js@3.272.0": - version "3.272.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/md5-js/-/md5-js-3.272.0.tgz#2f4dc06541a60979bb807c8adc438f13fc3ad958" - integrity sha512-/GK32mgAarhn/F0xCeBKbYfLRof3tOCNrg8mAGNz9Di8E1/qMOnX/OXUGag0lsvNZ6DTjdjln29t4e8iKmOVqA== +"@aws-sdk/md5-js@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/md5-js/-/md5-js-3.290.0.tgz#c9cb2898139bd4ef98947666ee0bb534ab2db699" + integrity sha512-5JQfZObsehgX0S81j3nxS/X0wiXESisETQVG75HAUHfDiScojClfjc2WuOXCwChy3S6VZgjLpEbqEQ3CaFQKWg== dependencies: - "@aws-sdk/types" "3.272.0" + "@aws-sdk/types" "3.290.0" "@aws-sdk/util-utf8" "3.254.0" tslib "^2.3.1" -"@aws-sdk/middleware-bucket-endpoint@3.282.0": - version "3.282.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.282.0.tgz#08f09690b4b01d13cfc297964a0373e5dc9db031" - integrity sha512-yXsUigRNGFbFVC1h9WIcB9Dc5bDr0hTah3PARXq/Wa+tUwzWFTIawYDEhRF9w7fJyWfJUsVJbfIldlSmJnQM5w== +"@aws-sdk/middleware-bucket-endpoint@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.290.0.tgz#fe9dd4d6eeef9f0e674689aec6689cdd34f6288d" + integrity sha512-jFHcAdIXfyqcHFzldqDDEZ2qPi9GNsWMDCiKqMumOqWJvwzCzkzsNa0A+6nUnOd/eDLDslvbktrD296Qy8oLKA== dependencies: - "@aws-sdk/protocol-http" "3.282.0" - "@aws-sdk/types" "3.272.0" + "@aws-sdk/protocol-http" "3.290.0" + "@aws-sdk/types" "3.290.0" "@aws-sdk/util-arn-parser" "3.208.0" "@aws-sdk/util-config-provider" "3.208.0" tslib "^2.3.1" -"@aws-sdk/middleware-content-length@3.282.0": - version "3.282.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-content-length/-/middleware-content-length-3.282.0.tgz#aa05051b33e94b0db46ede2e9839b601503e081a" - integrity sha512-SDgMLRRTMr9LlHSNk4bXUXynYnkT4oNMqE+FxhjsdbT8hK36eS4AadM58R7nPwgjR3EuWRW4ZRRawLWatpWspA== +"@aws-sdk/middleware-content-length@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-content-length/-/middleware-content-length-3.290.0.tgz#f304325c741e91303f2380c9c5e4000cdb9c3d11" + integrity sha512-9I+vnGSe/S0U98ZRCbOAdQngYfO7kYvXb5gjjX08XUQDfbB+ooIM1VdKngHhzUCTAs48z/43PzpBCjGJvGjB9w== dependencies: - "@aws-sdk/protocol-http" "3.282.0" - "@aws-sdk/types" "3.272.0" + "@aws-sdk/protocol-http" "3.290.0" + "@aws-sdk/types" "3.290.0" tslib "^2.3.1" -"@aws-sdk/middleware-endpoint@3.282.0": - version "3.282.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.282.0.tgz#c69615330932db1292206926752cac84428fde47" - integrity sha512-8U9Mv/Sbdo1KI6/ip7IIUdBl5pgmalFbfkYAyO+AtmkEvawI9ipdWFs5HB0Dwd1BGVup5choY72Ik/7sCAAFTQ== +"@aws-sdk/middleware-endpoint@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.290.0.tgz#f1ccfd7dbb1675f749e827512715d3f33a2b7802" + integrity sha512-A7wIujIHHoQaQaqjlRynqoZ3S4S8ExYDReXUBwf4Dzx0wZ5A50owLMY9MKFyd9uukirZs8mDnPPYZuwUI4wR7w== dependencies: - "@aws-sdk/middleware-serde" "3.272.0" - "@aws-sdk/protocol-http" "3.282.0" - "@aws-sdk/signature-v4" "3.282.0" - "@aws-sdk/types" "3.272.0" - "@aws-sdk/url-parser" "3.272.0" + "@aws-sdk/middleware-serde" "3.290.0" + "@aws-sdk/protocol-http" "3.290.0" + "@aws-sdk/signature-v4" "3.290.0" + "@aws-sdk/types" "3.290.0" + "@aws-sdk/url-parser" "3.290.0" "@aws-sdk/util-config-provider" "3.208.0" - "@aws-sdk/util-middleware" "3.272.0" + "@aws-sdk/util-middleware" "3.290.0" tslib "^2.3.1" -"@aws-sdk/middleware-expect-continue@3.282.0": - version "3.282.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.282.0.tgz#6b02205c917a485ca7de96f63c7660446e0a4b17" - integrity sha512-BMzziPjQ4SozKgObdt9PJ1Cs7BLOz6RKzj9nSJKuLzxix8TX2XZhLY3Xuxu/fWXvuDYxly/NA6d/rIvqjcPk3A== +"@aws-sdk/middleware-expect-continue@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.290.0.tgz#84e36331599220328605b7f76bc977c589aa6677" + integrity sha512-MFRedBoLksB1kPJ/ffL1JD9D07Q7jQKEcEuxyGxj25eDiLbA4lxKuJIZI3Sj8P5XO0Lx6pguoxisnhLhp9EWtQ== dependencies: - "@aws-sdk/protocol-http" "3.282.0" - "@aws-sdk/types" "3.272.0" + "@aws-sdk/protocol-http" "3.290.0" + "@aws-sdk/types" "3.290.0" tslib "^2.3.1" -"@aws-sdk/middleware-flexible-checksums@3.282.0": - version "3.282.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.282.0.tgz#57864f19473348306d4f86bb15416808c37d81b1" - integrity sha512-yru/1bVrT4EV+Mpcr5docVgZ5/ywsy/mRyvZBfHD3qC5Ydd9fakOnFhHzxSCbKSWQN2jlxPNuAzWVznSuBbSqg== +"@aws-sdk/middleware-flexible-checksums@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.290.0.tgz#ceb25cafd23860cf59e04ed31cd76a7ccd3095b7" + integrity sha512-E621IkVQ4SMQMnkWeawlF0GqaZEHq0KvzAlprlCufktYD7OVxd1jQc0Epa7Pd3/b+rogSNiAdEihZbp7sfQsZg== dependencies: "@aws-crypto/crc32" "3.0.0" "@aws-crypto/crc32c" "3.0.0" "@aws-sdk/is-array-buffer" "3.201.0" - "@aws-sdk/protocol-http" "3.282.0" - "@aws-sdk/types" "3.272.0" + "@aws-sdk/protocol-http" "3.290.0" + "@aws-sdk/types" "3.290.0" "@aws-sdk/util-utf8" "3.254.0" tslib "^2.3.1" -"@aws-sdk/middleware-host-header@3.282.0": - version "3.282.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.282.0.tgz#3df90724f9a97b1bf8151faf7534ac7f7fa2c5e9" - integrity sha512-90dfYow4zh4tCatTOnqB3nE/dIAucQLZnMqwN/WBPu0fUqjymzpsNkPchqWBPnSWdNE8w3PiKMqqD9rjYwqw4Q== +"@aws-sdk/middleware-host-header@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.290.0.tgz#82ad8185f00fb1c9583408d7d03c8140873345fd" + integrity sha512-j1ss8pjSJyG0aB+X0VPYgTfoieB8m5c+PrWw85JRM/qgbQeurkyD3d/F00V1hkZI42gygOaPlmYMik3kQnmITw== dependencies: - "@aws-sdk/protocol-http" "3.282.0" - "@aws-sdk/types" "3.272.0" + "@aws-sdk/protocol-http" "3.290.0" + "@aws-sdk/types" "3.290.0" tslib "^2.3.1" -"@aws-sdk/middleware-location-constraint@3.272.0": - version "3.272.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.272.0.tgz#5f6b54479b2f0526288ea767e503349d382fa971" - integrity sha512-tROQ1DM9djxfXmXPTT0XietrUt6y6QEHShPI9rQMstjXYiaHBVXRveuRLcLAKwl4nXIrgmnIU7ygyj2ZyD8gcA== +"@aws-sdk/middleware-location-constraint@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.290.0.tgz#4546380e2cb7ffc20463265737a79368884e82d8" + integrity sha512-9DjPlNCPChmXP37vYonsAhBKPLk3HPQPK/aBTGkIwGhL1LE811Vzm1PoVCwN12zaB8JCt01yEVmStH9SWHEOIQ== dependencies: - "@aws-sdk/types" "3.272.0" + "@aws-sdk/types" "3.290.0" tslib "^2.3.1" -"@aws-sdk/middleware-logger@3.272.0": - version "3.272.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.272.0.tgz#372e2514b17b826a2b40562667e2543125980705" - integrity sha512-u2SQ0hWrFwxbxxYMG5uMEgf01pQY5jauK/LYWgGIvuCmFgiyRQQP3oN7kkmsxnS9MWmNmhbyQguX2NY02s5e9w== +"@aws-sdk/middleware-logger@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.290.0.tgz#a12945c7c125764d930f69c56d6dee70263325a4" + integrity sha512-wJOK31t/Y/Km6B5ULF/k2RmQB/6MXSN/hMuCiYsLMapFT+86mBlY8cXytYXtLS8afRKpuNy29EY+O6ovfjz6Ig== dependencies: - "@aws-sdk/types" "3.272.0" + "@aws-sdk/types" "3.290.0" tslib "^2.3.1" -"@aws-sdk/middleware-recursion-detection@3.282.0": - version "3.282.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.282.0.tgz#7766d7dc95fa59e8fdfe2dc8cc5af647063eaa0f" - integrity sha512-cSLq/daEaTEucbP/TgAXIOcpwLu7Bfw3VGzH1U56ngDjI4KWvUheF16JiB6OqKQXduPBPsdZ9dVmkDVKddmCRw== +"@aws-sdk/middleware-recursion-detection@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.290.0.tgz#76474668ccbe2fbc17535c948430ccec8aaf083d" + integrity sha512-m8Y7SE3NfVTyGubiRhueyHF7uqC5dCbD1bSLgVjvrSjO2yEL0Dv9QR1ad7a+p5ilS+Fq3RnOu1VeujfTHy0qRQ== dependencies: - "@aws-sdk/protocol-http" "3.282.0" - "@aws-sdk/types" "3.272.0" + "@aws-sdk/protocol-http" "3.290.0" + "@aws-sdk/types" "3.290.0" tslib "^2.3.1" -"@aws-sdk/middleware-retry@3.282.0": - version "3.282.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-retry/-/middleware-retry-3.282.0.tgz#0ddc73f9a41d7990bac2b8221452beb244cf88c5" - integrity sha512-3+0M1GP9o480IdqHVZbkhTgge63uKhDFlS6cQznpNGj0eIuQPhXRnlEz2/rma0INUqFm6+7qJ5yzHR4WQbfHpw== +"@aws-sdk/middleware-retry@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-retry/-/middleware-retry-3.290.0.tgz#aa644026ecf1c718eeed5f2d6c3acc79844a503d" + integrity sha512-mvXvYd/3L/f5ZcnFI1Q2hwk0OtzKMmkDfWW1BcoVzK0XHf2aeehbs7xgI92ICEi/5Ali0IG5krv5LqfgO154Sw== dependencies: - "@aws-sdk/protocol-http" "3.282.0" - "@aws-sdk/service-error-classification" "3.272.0" - "@aws-sdk/types" "3.272.0" - "@aws-sdk/util-middleware" "3.272.0" - "@aws-sdk/util-retry" "3.272.0" + "@aws-sdk/protocol-http" "3.290.0" + "@aws-sdk/service-error-classification" "3.290.0" + "@aws-sdk/types" "3.290.0" + "@aws-sdk/util-middleware" "3.290.0" + "@aws-sdk/util-retry" "3.290.0" tslib "^2.3.1" uuid "^8.3.2" -"@aws-sdk/middleware-sdk-ec2@3.282.0": - version "3.282.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-ec2/-/middleware-sdk-ec2-3.282.0.tgz#56cd9ab2c8cc6dd310a1259e21c66453ba9b692f" - integrity sha512-2gbfWGbIamprX+r2qUDWsRK3/Gk7siEVnqc1xhJIyFk+ZBKOe1y/Ye9Lf4e8vioVZbzwTc09muuAmyGv2iPSWQ== +"@aws-sdk/middleware-sdk-ec2@3.291.0": + version "3.291.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-ec2/-/middleware-sdk-ec2-3.291.0.tgz#f5b88149d0680a84b2a35f8fb36fbd8337f32195" + integrity sha512-pWNJFp0hnXsAx0DIZ5Eti93SoVKHLteKQUyRSWWhw+Ebq4frqBL3JM2J6cxl2awXVVuIXQAWdmdGX3rcT3PlVw== dependencies: - "@aws-sdk/middleware-endpoint" "3.282.0" - "@aws-sdk/protocol-http" "3.282.0" - "@aws-sdk/signature-v4" "3.282.0" - "@aws-sdk/types" "3.272.0" - "@aws-sdk/util-format-url" "3.272.0" + "@aws-sdk/middleware-endpoint" "3.290.0" + "@aws-sdk/protocol-http" "3.290.0" + "@aws-sdk/signature-v4" "3.290.0" + "@aws-sdk/types" "3.290.0" + "@aws-sdk/util-format-url" "3.290.0" tslib "^2.3.1" -"@aws-sdk/middleware-sdk-rds@3.282.0": - version "3.282.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-rds/-/middleware-sdk-rds-3.282.0.tgz#c6242436a1ef0e7cc7802b6b684c0aed4a887e76" - integrity sha512-k0Rj9z7yPF7fc99qhCKmqOZasmBjcOSNszZTRA2ISUG6AkEg378w4N7lcNmi5zXZxyyyTs2VmtTLInF9vyj/eg== +"@aws-sdk/middleware-sdk-rds@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-rds/-/middleware-sdk-rds-3.290.0.tgz#06776c640d872c5702edd615dc54b47e2a2a092a" + integrity sha512-2y89X3sDG1rd9rORvJn3gbw/D/JrUq04R4ibXcL1IOawmXxmJaxe0cqQrU9Aecsoae42W7wvWIvDHwS+ufmwsQ== dependencies: - "@aws-sdk/middleware-endpoint" "3.282.0" - "@aws-sdk/protocol-http" "3.282.0" - "@aws-sdk/signature-v4" "3.282.0" - "@aws-sdk/types" "3.272.0" - "@aws-sdk/util-format-url" "3.272.0" + "@aws-sdk/middleware-endpoint" "3.290.0" + "@aws-sdk/protocol-http" "3.290.0" + "@aws-sdk/signature-v4" "3.290.0" + "@aws-sdk/types" "3.290.0" + "@aws-sdk/util-format-url" "3.290.0" tslib "^2.3.1" -"@aws-sdk/middleware-sdk-s3@3.282.0": - version "3.282.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.282.0.tgz#ab0a43bac7309cb81b2c5f9705d42d49044318a4" - integrity sha512-AUHHbLG1tAw7kDtKtXCsiBUdENwHyFL/h0GD24gyupGmis3AwtLfxYsjsKjByCzB6xKAi8TuPHvIvelvGdgcuA== +"@aws-sdk/middleware-sdk-s3@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.290.0.tgz#c6e61e3f1b88d928b45f8a3f75e63d5a4cf852d2" + integrity sha512-6sks5cu5b2LVHFp2RviPZRsVrgeDyRfVExx9D9E18VCad+eejnXsFwx6yvoYFSV8J7mc2E1mCTSSSwKsaC+KBg== dependencies: - "@aws-sdk/protocol-http" "3.282.0" - "@aws-sdk/types" "3.272.0" + "@aws-sdk/protocol-http" "3.290.0" + "@aws-sdk/types" "3.290.0" "@aws-sdk/util-arn-parser" "3.208.0" tslib "^2.3.1" -"@aws-sdk/middleware-sdk-sts@3.282.0": - version "3.282.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.282.0.tgz#f8a52a0ef2b5e0bc7c3df697d0f24f85ea4f12c9" - integrity sha512-Qe20mtJcF6lxt7280FhTFD2IpBDn39MEXmbm/zIkXR2/cAmvji8YhcxhNrq1l7XiuMM6SokBDC/f3dlF1oOC6g== +"@aws-sdk/middleware-sdk-sts@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.290.0.tgz#850d03682dc9b7f37e958090b84b2311477811fb" + integrity sha512-NaYnDhFtmz/e9jNBNeY10A4AldCvjF46ZfeIWoBUsk/4qDlSP9kaCjTufEjNf/zMTtYzGiP/FUtLS7T6tfXdoQ== dependencies: - "@aws-sdk/middleware-signing" "3.282.0" - "@aws-sdk/property-provider" "3.272.0" - "@aws-sdk/protocol-http" "3.282.0" - "@aws-sdk/signature-v4" "3.282.0" - "@aws-sdk/types" "3.272.0" + "@aws-sdk/middleware-signing" "3.290.0" + "@aws-sdk/property-provider" "3.290.0" + "@aws-sdk/protocol-http" "3.290.0" + "@aws-sdk/signature-v4" "3.290.0" + "@aws-sdk/types" "3.290.0" tslib "^2.3.1" -"@aws-sdk/middleware-serde@3.272.0": - version "3.272.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-serde/-/middleware-serde-3.272.0.tgz#9cb23aaa93fbf404fdb8e01b514b36b2d6fb5bc8" - integrity sha512-kW1uOxgPSwtXPB5rm3QLdWomu42lkYpQL94tM1BjyFOWmBLO2lQhk5a7Dw6HkTozT9a+vxtscLChRa6KZe61Hw== +"@aws-sdk/middleware-serde@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-serde/-/middleware-serde-3.290.0.tgz#4f7e616dfeb2820c5eb90a5ff770914d0f03e6e3" + integrity sha512-lZCKlfJzosi3cVx02RKRTVvbAijHTfd16EiSyKRsQOF2rCu7Qt4LzygIlqUonCeHG6eSqOMMf7LAJ22IHafBbw== dependencies: - "@aws-sdk/types" "3.272.0" + "@aws-sdk/types" "3.290.0" tslib "^2.3.1" -"@aws-sdk/middleware-signing@3.282.0": - version "3.282.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.282.0.tgz#10551814e112300bfae906e00f9045ddad9fa05f" - integrity sha512-eE5qMDcqqxZPdSwybUEph/knrA2j2cHjW+B2ddROw3Ojg0XLjep5hOhithAudgBREQhYF9pdsBr6mUMynUIrKw== +"@aws-sdk/middleware-signing@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.290.0.tgz#e7e43e4a1697f135c544c75c5d07a4fcdf42b062" + integrity sha512-mEJZQrbXkOTI+BdFlpAd1CleVJL8B7qayANMNj9nrZqvZ7HzVDLEkNaJqFz9JFizYTfZC2ZjtATPrSiYDvFEfg== dependencies: - "@aws-sdk/property-provider" "3.272.0" - "@aws-sdk/protocol-http" "3.282.0" - "@aws-sdk/signature-v4" "3.282.0" - "@aws-sdk/types" "3.272.0" - "@aws-sdk/util-middleware" "3.272.0" + "@aws-sdk/property-provider" "3.290.0" + "@aws-sdk/protocol-http" "3.290.0" + "@aws-sdk/signature-v4" "3.290.0" + "@aws-sdk/types" "3.290.0" + "@aws-sdk/util-middleware" "3.290.0" tslib "^2.3.1" -"@aws-sdk/middleware-ssec@3.272.0": - version "3.272.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.272.0.tgz#fa4a0e19df3bbec515794e6398b9656ab91ec8c9" - integrity sha512-WDPcNPkscTmJUzdAvfx8p+YuUn2YR9ocmZA7yYUJ5kA94MyGH6Rbjp8tleWwQvah/HweeCQrYUzJk9wsH64LPA== +"@aws-sdk/middleware-ssec@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.290.0.tgz#be0283275bb12e9f71bd34145ddc1103b601304f" + integrity sha512-HRDYawju2mWMF0RObsskEZu9eaDlABVZn9y4quutVYY0EUOWBTvfXmNBiX0YSn7sfFEElFIVqdzsbCCmxoXXBg== dependencies: - "@aws-sdk/types" "3.272.0" + "@aws-sdk/types" "3.290.0" tslib "^2.3.1" -"@aws-sdk/middleware-stack@3.272.0": - version "3.272.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-stack/-/middleware-stack-3.272.0.tgz#e62048e47b8ce2ff71d6d32234b6c0be70b0b008" - integrity sha512-jhwhknnPBGhfXAGV5GXUWfEhDFoP/DN8MPCO2yC5OAxyp6oVJ8lTPLkZYMTW5VL0c0eG44dXpF4Ib01V+PlDrQ== +"@aws-sdk/middleware-stack@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-stack/-/middleware-stack-3.290.0.tgz#a6b5cecdaa0d75f54d958f15d5f6a71143cc5c6c" + integrity sha512-25iC/7oAokRfxixGkDjBSIAkNwtx2kcO+xMoDczFus9UrlOr2pBY0IXbPn6bB56q2zwsBTHcmMTn0H7FJSIQmw== dependencies: tslib "^2.3.1" -"@aws-sdk/middleware-user-agent@3.282.0": - version "3.282.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.282.0.tgz#6f6f3ed06bbf90c871516e1cdbce4cb98b90da2e" - integrity sha512-P1ealsSrUALo0w0Qu5nBKsNQwsmqIfsoNtFWpaznjIcXE5rRMlZL69zb0KnGbQCBfEXsgaMOWjeGT8I3/XbOHQ== +"@aws-sdk/middleware-user-agent@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.290.0.tgz#bd30eabe626f4a9b282eff075b71de017c48b7ef" + integrity sha512-ZR49PPra3LtqZBmXAtV8YrUSrkVG0hPBICE8cma/wMwbKGHa0G+Xu4pOZP0oQXs5XeGu1cs/Nx3AOJ2fgaMjhQ== dependencies: - "@aws-sdk/protocol-http" "3.282.0" - "@aws-sdk/types" "3.272.0" + "@aws-sdk/protocol-http" "3.290.0" + "@aws-sdk/types" "3.290.0" tslib "^2.3.1" -"@aws-sdk/node-config-provider@3.272.0": - version "3.272.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/node-config-provider/-/node-config-provider-3.272.0.tgz#7797a8f500593b1a7b91fc70bcd7a7245afd9a61" - integrity sha512-YYCIBh9g1EQo7hm2l22HX5Yr9RoPQ2RCvhzKvF1n1e8t1QH4iObQrYUtqHG4khcm64Cft8C5MwZmgzHbya5Z6Q== +"@aws-sdk/node-config-provider@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/node-config-provider/-/node-config-provider-3.290.0.tgz#0cce75d9692640bd45e5cb37b2db34a84625ca63" + integrity sha512-dQLnyCy5iT7Q5Ot2JOciNH9WkaixWwmEnvW6nBa6febzAYZVy78sfJOOP1EZ7ClG1aIhrsAN7/7wPebpn/Peiw== dependencies: - "@aws-sdk/property-provider" "3.272.0" - "@aws-sdk/shared-ini-file-loader" "3.272.0" - "@aws-sdk/types" "3.272.0" + "@aws-sdk/property-provider" "3.290.0" + "@aws-sdk/shared-ini-file-loader" "3.290.0" + "@aws-sdk/types" "3.290.0" tslib "^2.3.1" -"@aws-sdk/node-http-handler@3.282.0": - version "3.282.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/node-http-handler/-/node-http-handler-3.282.0.tgz#dde64a0977d98dc862770fc99b5127ff48726a9e" - integrity sha512-LIA4lsSKA/l1kTR5ERkJG2gARveB7Y40MR6yDwtIuhXeVu7Xo9m4BJFanCYIbyc093W0T53x438bwoBR+R+/fw== +"@aws-sdk/node-http-handler@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/node-http-handler/-/node-http-handler-3.290.0.tgz#90cd7a44fda8506eaa5a62d00e88efd6b09900df" + integrity sha512-HfzuzdpAJpO/ob9DQ3aEB/WmPCS5vZOic9T4TtSCmRd5e3+xdMtK/MQUizp8XkbUGBat7jPmcV13Gy4YmwfAuw== dependencies: - "@aws-sdk/abort-controller" "3.272.0" - "@aws-sdk/protocol-http" "3.282.0" - "@aws-sdk/querystring-builder" "3.272.0" - "@aws-sdk/types" "3.272.0" + "@aws-sdk/abort-controller" "3.290.0" + "@aws-sdk/protocol-http" "3.290.0" + "@aws-sdk/querystring-builder" "3.290.0" + "@aws-sdk/types" "3.290.0" tslib "^2.3.1" -"@aws-sdk/property-provider@3.272.0": - version "3.272.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/property-provider/-/property-provider-3.272.0.tgz#a626604303acfe83c1a1471f99872dee5641c1a4" - integrity sha512-V1pZTaH5eqpAt8O8CzbItHhOtzIfFuWymvwZFkAtwKuaHpnl7jjrTouV482zoq8AD/fF+VVSshwBKYA7bhidIw== +"@aws-sdk/property-provider@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/property-provider/-/property-provider-3.290.0.tgz#b6edda6c713e8e7ef53691bdc42a0785c37ad93e" + integrity sha512-2Zrh6/KecmiZ/cKVaeDtHRAfyOnAEfwJsgxfFugs3RxjJtYr0AbYJTF+mYp3f8Xc7DCjdxR055axo9TCTBSrwg== dependencies: - "@aws-sdk/types" "3.272.0" + "@aws-sdk/types" "3.290.0" tslib "^2.3.1" -"@aws-sdk/protocol-http@3.282.0": - version "3.282.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/protocol-http/-/protocol-http-3.282.0.tgz#ed6b345fad824bea27bd78dcc3f6b54c55118d70" - integrity sha512-aOPv5DhsbG06WKfeh2g0H8RGnaeI8pLhaA+Mq1BvzXcghhlDu+FM9K/GjC/f1lWk1UNryfevOR7SdQm95ciHQg== +"@aws-sdk/protocol-http@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/protocol-http/-/protocol-http-3.290.0.tgz#50c2a9edaede4178b01805fd5c45d4437a52b869" + integrity sha512-3VHbfmo7vaA/0ugJedjwyK85MT+OKQanz7ktUnAONH5KdG2/gPpa9ZSTyfK9kCVFin93YzC3pznZgr6oNYgGgg== dependencies: - "@aws-sdk/types" "3.272.0" + "@aws-sdk/types" "3.290.0" tslib "^2.3.1" -"@aws-sdk/querystring-builder@3.272.0": - version "3.272.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-builder/-/querystring-builder-3.272.0.tgz#788ca037e21942bb039c920c5dfa4d412b84ea27" - integrity sha512-ndo++7GkdCj5tBXE6rGcITpSpZS4PfyV38wntGYAlj9liL1omk3bLZRY6uzqqkJpVHqbg2fD7O2qHNItzZgqhw== +"@aws-sdk/querystring-builder@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-builder/-/querystring-builder-3.290.0.tgz#a126788e8f934f9550d9ad79f0da92d597087ada" + integrity sha512-7q8x8ux1RCUxUolqxsXfSbCObyMzvSwfJb9GgZ8rDi2U61l8W760a9ejHzizfQJvdldRSwFqmynkRAqYbvKixg== dependencies: - "@aws-sdk/types" "3.272.0" + "@aws-sdk/types" "3.290.0" "@aws-sdk/util-uri-escape" "3.201.0" tslib "^2.3.1" -"@aws-sdk/querystring-parser@3.272.0": - version "3.272.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-parser/-/querystring-parser-3.272.0.tgz#68db5798d10a353c35f62bf34cfcebaa53580e51" - integrity sha512-5oS4/9n6N1LZW9tI3qq/0GnCuWoOXRgcHVB+AJLRBvDbEe+GI+C/xK1tKLsfpDNgsQJHc4IPQoIt4megyZ/1+A== +"@aws-sdk/querystring-parser@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-parser/-/querystring-parser-3.290.0.tgz#d089c8c83cb19b07557d1f09e36dc5ec37ff8c0d" + integrity sha512-8QPDihJKSFYFphxUl5+FfXMQowhAoHuDeoqd1ce3byL0bm7k8emcGfiYD6QGxuDlpno+F4O1/Mz+e+cwNCdPVA== dependencies: - "@aws-sdk/types" "3.272.0" + "@aws-sdk/types" "3.290.0" tslib "^2.3.1" -"@aws-sdk/service-error-classification@3.272.0": - version "3.272.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/service-error-classification/-/service-error-classification-3.272.0.tgz#cf19b82c2ab1e63bb03793c68e6a2b2e7cbd8382" - integrity sha512-REoltM1LK9byyIufLqx9znhSolPcHQgVHIA2S0zu5sdt5qER4OubkLAXuo4MBbisUTmh8VOOvIyUb5ijZCXq1w== +"@aws-sdk/service-error-classification@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/service-error-classification/-/service-error-classification-3.290.0.tgz#4e9cc43da87b4a87dbad781f303dd92d7deed320" + integrity sha512-QP+QgL5Gm6RKl4KGwTRyG1kw0SxBbcmp/a/yhywVHmRI0/+4VsL+cooTqtjFr3xVmKoCX+/JZZ8P96VGFvRSZA== -"@aws-sdk/shared-ini-file-loader@3.272.0": - version "3.272.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.272.0.tgz#f924ec6e7c183ec749d42e204d8f0d0b7c58fa25" - integrity sha512-lzFPohp5sy2XvwFjZIzLVCRpC0i5cwBiaXmFzXYQZJm6FSCszHO4ax+m9yrtlyVFF/2YPWl+/bzNthy4aJtseA== +"@aws-sdk/shared-ini-file-loader@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.290.0.tgz#e7a76ad15560faabd0603adf752f8732da73a00b" + integrity sha512-kvLW5rwr4lwHdwkYnoHYpFVfWwZYwQO44eRnkrDnyvvhZTcCH3rBLApu6uvomnL+Ep4bEJ1anDKt3WywlGg5Qw== dependencies: - "@aws-sdk/types" "3.272.0" + "@aws-sdk/types" "3.290.0" tslib "^2.3.1" -"@aws-sdk/signature-v4-multi-region@3.282.0": - version "3.282.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.282.0.tgz#2fe9ef19c1564c93c3ba0205b9cc02e0810cf629" - integrity sha512-0+WZqFGL2Qjo9Upvn0clrK8hzjgp8I5EzJ81oGga1IQqgpJItl+nMGqfV8pv9xVw3Je5hk4GWCVjS2arXF9s4g== +"@aws-sdk/signature-v4-multi-region@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.290.0.tgz#89fa6c6216916d28a27fb056ea39316fb603c4a9" + integrity sha512-kkFExt8MlQWnYytDuqUNLJvGhiE/stHMK8U0s1AjG+xy+wi3Atq9q3mGXbdsWatDhpuzaMhwBSttrvKOfWLnmw== dependencies: - "@aws-sdk/protocol-http" "3.282.0" - "@aws-sdk/signature-v4" "3.282.0" - "@aws-sdk/types" "3.272.0" + "@aws-sdk/protocol-http" "3.290.0" + "@aws-sdk/signature-v4" "3.290.0" + "@aws-sdk/types" "3.290.0" "@aws-sdk/util-arn-parser" "3.208.0" tslib "^2.3.1" -"@aws-sdk/signature-v4@3.282.0": - version "3.282.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4/-/signature-v4-3.282.0.tgz#5ce58267b8225fadbf5134e616e02fae567cfc0a" - integrity sha512-rnSL3UyF/No7+O2EMtN1sTCiqL1a+odbfnfo3wCSl8DH5PEYINt2kZgVEvT1Fgaffk1pUggBBOZoR+arPIIDJA== +"@aws-sdk/signature-v4@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4/-/signature-v4-3.290.0.tgz#9b73d9de8328d6401e5399cd6021bb5addee3031" + integrity sha512-SUMflc8b8PC0ITV3AdYBSlTcn4oFjumBAPNNXBLKIpifQ1l7ZufFIulDPlqeouXTDwsuCVINAwE0DbItDe/7Qw== dependencies: "@aws-sdk/is-array-buffer" "3.201.0" - "@aws-sdk/types" "3.272.0" + "@aws-sdk/types" "3.290.0" "@aws-sdk/util-hex-encoding" "3.201.0" - "@aws-sdk/util-middleware" "3.272.0" + "@aws-sdk/util-middleware" "3.290.0" "@aws-sdk/util-uri-escape" "3.201.0" "@aws-sdk/util-utf8" "3.254.0" tslib "^2.3.1" -"@aws-sdk/smithy-client@3.279.0": - version "3.279.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/smithy-client/-/smithy-client-3.279.0.tgz#a3d90b7fb8e335cb8da46b70133c3db0d4ada8c5" - integrity sha512-ZcYWUQDGAYN6NXRpJuSn46PetrpPCA6TrDVwP9+3pERzTXZ66npXoG2XhHjNrOXy/Ted5A3OxKrM4/zLu9tK3A== +"@aws-sdk/smithy-client@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/smithy-client/-/smithy-client-3.290.0.tgz#0c05c305dc276b6c5bc9a9e35c2b07b447f62fb1" + integrity sha512-MDa+BJqM1FP2HYugVAscufoLJuapEdUTZPoyERVGfUEznKfKH33QXRoeqW1wzUNyhcxFONHLnXp1aYFBtnLx7g== dependencies: - "@aws-sdk/middleware-stack" "3.272.0" - "@aws-sdk/types" "3.272.0" + "@aws-sdk/middleware-stack" "3.290.0" + "@aws-sdk/types" "3.290.0" tslib "^2.3.1" -"@aws-sdk/token-providers@3.282.0": - version "3.282.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.282.0.tgz#a3983a121e430f1dce043aeb3251dc6a0887e009" - integrity sha512-Qk/D6i+Hpc0fp/2SRHbfJeKPgUIugzsmye3NL0OV1bqd1Y40dW5LT4u67VcZHwqxzYDKe6Eo+7NHJu7qfvwhog== +"@aws-sdk/token-providers@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.290.0.tgz#1728b78987b8c5feb2b05440a415e793d89222b9" + integrity sha512-fc5y8WH7RVwoaUaEdK3cRanxgHShZKAPZ0rCtHjoLURF8IjZIrn3AaZqV8YTgAAmIKNVC+argpj1G+suqXEB/Q== dependencies: - "@aws-sdk/client-sso-oidc" "3.282.0" - "@aws-sdk/property-provider" "3.272.0" - "@aws-sdk/shared-ini-file-loader" "3.272.0" - "@aws-sdk/types" "3.272.0" + "@aws-sdk/client-sso-oidc" "3.290.0" + "@aws-sdk/property-provider" "3.290.0" + "@aws-sdk/shared-ini-file-loader" "3.290.0" + "@aws-sdk/types" "3.290.0" tslib "^2.3.1" -"@aws-sdk/types@3.272.0": - version "3.272.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.272.0.tgz#83670e4009c2e72f1fdf55816c55c9f8b5935e0a" - integrity sha512-MmmL6vxMGP5Bsi+4wRx4mxYlU/LX6M0noOXrDh/x5FfG7/4ZOar/nDxqDadhJtNM88cuWVHZWY59P54JzkGWmA== +"@aws-sdk/types@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.290.0.tgz#06a14cf61c2e93d8d789665d2034260229a4de8f" + integrity sha512-uQLD9tLv8Q87CwrSB/taUoQ8wkGeFb1Gygc+kt5oClfMFP9HYzu944kW/1R7/J5LtBLT1QFYccd4gz6eOUNlsw== dependencies: tslib "^2.3.1" @@ -1046,13 +1046,13 @@ dependencies: tslib "^2.3.1" -"@aws-sdk/url-parser@3.272.0": - version "3.272.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/url-parser/-/url-parser-3.272.0.tgz#1a21abb8815ccc2c1344a3dfab0343f4e3eff4d3" - integrity sha512-vX/Tx02PlnQ/Kgtf5TnrNDHPNbY+amLZjW0Z1d9vzAvSZhQ4i9Y18yxoRDIaDTCNVRDjdhV8iuctW+05PB5JtQ== +"@aws-sdk/url-parser@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/url-parser/-/url-parser-3.290.0.tgz#de41d3e0f8178a01b3424c8163b6868d4210a2aa" + integrity sha512-19EAlyH4LyNMbAROE6KSuhFKhOwl67kciDavPjS8gFiHr6slon3oqXfz10+uzKf/pJKuY6qOpkUb9h7LnF4bFQ== dependencies: - "@aws-sdk/querystring-parser" "3.272.0" - "@aws-sdk/types" "3.272.0" + "@aws-sdk/querystring-parser" "3.290.0" + "@aws-sdk/types" "3.290.0" tslib "^2.3.1" "@aws-sdk/util-arn-parser@3.208.0": @@ -1099,43 +1099,43 @@ dependencies: tslib "^2.3.1" -"@aws-sdk/util-defaults-mode-browser@3.279.0": - version "3.279.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.279.0.tgz#8d16977f0162e272b2d77d67c4588a6374e8bd6e" - integrity sha512-RnchYRrpapTT5Hu23LOfk6e8RMVq0kUzho6xA6TJj1a4uGxkcRMvgzPipCq1P5uHu0mrkQBg9pGPEVNOUs38/Q== +"@aws-sdk/util-defaults-mode-browser@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.290.0.tgz#2abe74057eaf49c14c9557b2181c806a1d91bfd1" + integrity sha512-8Mt6/OA465uw1wSA/LCCd+6IjeIUTAbg2GiqfSBCBMNJNuqPwPXuWVjg6kBd1eEChyEtAuoLTygMefaBywg4HQ== dependencies: - "@aws-sdk/property-provider" "3.272.0" - "@aws-sdk/types" "3.272.0" + "@aws-sdk/property-provider" "3.290.0" + "@aws-sdk/types" "3.290.0" bowser "^2.11.0" tslib "^2.3.1" -"@aws-sdk/util-defaults-mode-node@3.282.0": - version "3.282.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.282.0.tgz#827c6d7c7b6de1493873a789be4d4916ae3163b2" - integrity sha512-D1BlFoA7ZMeK2diDUWFx1xBFrSaJuBZMRBuWbnbT9AnRYNCsASZ8DRU1KkZ8LuFQIwmZz94P9q683emYnZBhiw== +"@aws-sdk/util-defaults-mode-node@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.290.0.tgz#0efff7937241f89dd70f1acf6f7697181352400f" + integrity sha512-9c0jS7w1aZxfKkFXlTjp80QaKYKnutMmlsfP+/YXN9+s3yvwFcnsENMTNg5YVvkZa9e+Rhw/ySxVKTEJ7n/SOA== dependencies: - "@aws-sdk/config-resolver" "3.282.0" - "@aws-sdk/credential-provider-imds" "3.272.0" - "@aws-sdk/node-config-provider" "3.272.0" - "@aws-sdk/property-provider" "3.272.0" - "@aws-sdk/types" "3.272.0" + "@aws-sdk/config-resolver" "3.290.0" + "@aws-sdk/credential-provider-imds" "3.290.0" + "@aws-sdk/node-config-provider" "3.290.0" + "@aws-sdk/property-provider" "3.290.0" + "@aws-sdk/types" "3.290.0" tslib "^2.3.1" -"@aws-sdk/util-endpoints@3.272.0": - version "3.272.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.272.0.tgz#4e4c849708634c3dd840a11abaacb02c89db46d3" - integrity sha512-c4MPUaJt2G6gGpoiwIOqDfUa98c1J63RpYvf/spQEKOtC/tF5Gfqlxuq8FnAl5lHnrqj1B9ZXLLxFhHtDR0IiQ== +"@aws-sdk/util-endpoints@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.290.0.tgz#ab2c56b2814614c40c045ea2b4098ab03af24c6a" + integrity sha512-nDdSyWdxYEPE84qABQKasIFhm6oWjhiyM92g8zsHTqzrn67a4caA72FTL6cztgJOEd5GWvHn6r1BnRVhkG68Qw== dependencies: - "@aws-sdk/types" "3.272.0" + "@aws-sdk/types" "3.290.0" tslib "^2.3.1" -"@aws-sdk/util-format-url@3.272.0": - version "3.272.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-format-url/-/util-format-url-3.272.0.tgz#4ecf7267cc060b953afeb2e706c7d8e3ecc87da8" - integrity sha512-ZvYRnzDOjyR7UEZtCicDcV80nuk148IaBJfnzacVdsB3eu+rCcqZDCuGao/jKGNZGroMHmL8b4Tskwc4vZlDDw== +"@aws-sdk/util-format-url@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-format-url/-/util-format-url-3.290.0.tgz#af9372b91576998d1e93af23caa45177490c0ad2" + integrity sha512-MHeiyc8HIYvjeom0DF0OimBQ8oYvIqsG1wyfwDoFFA5A3gM6r8cl3VUg+t/KOXL+A85Ax4iALuG2ViT6zteKhg== dependencies: - "@aws-sdk/querystring-builder" "3.272.0" - "@aws-sdk/types" "3.272.0" + "@aws-sdk/querystring-builder" "3.290.0" + "@aws-sdk/types" "3.290.0" tslib "^2.3.1" "@aws-sdk/util-hex-encoding@3.201.0": @@ -1152,40 +1152,40 @@ dependencies: tslib "^2.3.1" -"@aws-sdk/util-middleware@3.272.0": - version "3.272.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-middleware/-/util-middleware-3.272.0.tgz#ed7d732a34659b07f949e2de39cde66271a3c632" - integrity sha512-Abw8m30arbwxqmeMMha5J11ESpHUNmCeSqSzE8/C4B8jZQtHY4kq7f+upzcNIQ11lsd+uzBEzNG3+dDRi0XOJQ== +"@aws-sdk/util-middleware@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-middleware/-/util-middleware-3.290.0.tgz#3353405daddd38ec98242abee0fc946c76976df1" + integrity sha512-lXGM9YSqwZgCeEPltc++jiGyZ/FLuh62IjrWSIVSL/FvkL6D8KSKNBd7Ab/KDDu5jt4iP5UZ4k3SGVk6monUZg== dependencies: tslib "^2.3.1" -"@aws-sdk/util-retry@3.272.0": - version "3.272.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-retry/-/util-retry-3.272.0.tgz#049f777d4a8f9fd7b7ed02e116d3a23ceb34f128" - integrity sha512-Ngha5414LR4gRHURVKC9ZYXsEJhMkm+SJ+44wlzOhavglfdcKKPUsibz5cKY1jpUV7oKECwaxHWpBB8r6h+hOg== +"@aws-sdk/util-retry@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-retry/-/util-retry-3.290.0.tgz#ea521ae287b34fdd943f4e2d87d69a9aa7006fc7" + integrity sha512-UjyUEguu2upaBvDJkeSUQPE4ryBTA7JhPyl6M7XA6rFSRtU5+1NI8KknSNw46buviNit0Yu0E6TzxNQyS70hKA== dependencies: - "@aws-sdk/service-error-classification" "3.272.0" + "@aws-sdk/service-error-classification" "3.290.0" tslib "^2.3.1" -"@aws-sdk/util-stream-browser@3.282.0": - version "3.282.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-stream-browser/-/util-stream-browser-3.282.0.tgz#25d02a7f37860c33ff0708759ffcaef0c0566900" - integrity sha512-84yUR9MYykbMeiAPYNSgnkEnQm7WWVXjYGNfCXQ+xL6hiQXG3F0q1NZ45aT1bIlCL8L/yck1bdfIvPHYHTpmsg== +"@aws-sdk/util-stream-browser@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-stream-browser/-/util-stream-browser-3.290.0.tgz#33b7098055285dd04a24b4b02429f794dd543989" + integrity sha512-mDfGVSZbostSM+kQPEeiDB57mt2oMywtuOtLmv8+iXRZmCBwaHrHZLWguEV+hy/DSKD0e9yAzPja6PbI0/maNA== dependencies: - "@aws-sdk/fetch-http-handler" "3.282.0" - "@aws-sdk/types" "3.272.0" + "@aws-sdk/fetch-http-handler" "3.290.0" + "@aws-sdk/types" "3.290.0" "@aws-sdk/util-base64" "3.208.0" "@aws-sdk/util-hex-encoding" "3.201.0" "@aws-sdk/util-utf8" "3.254.0" tslib "^2.3.1" -"@aws-sdk/util-stream-node@3.282.0": - version "3.282.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-stream-node/-/util-stream-node-3.282.0.tgz#e173c31cc41aee9c31ac1fa5268b8876a81cd3e2" - integrity sha512-zZLIxDTShpx4+n+2OE/fBIHKsltJYFl53J75pDycMi4LjeD/yZD3Paz68wexTznjwggnaespPsklGEB2Ug2/rQ== +"@aws-sdk/util-stream-node@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-stream-node/-/util-stream-node-3.290.0.tgz#c122a5339aa294ca3b40c91d2fb6dde1504ee95c" + integrity sha512-LUrJAt5knKvkJa3ZjOvAFf5bDKqT3DXM8l+KIYSwj9WM7a4rX+gAACILWQZLNvlzQAy+KEjPfhT7p0LZf6Os2w== dependencies: - "@aws-sdk/node-http-handler" "3.282.0" - "@aws-sdk/types" "3.272.0" + "@aws-sdk/node-http-handler" "3.290.0" + "@aws-sdk/types" "3.290.0" "@aws-sdk/util-buffer-from" "3.208.0" tslib "^2.3.1" @@ -1196,22 +1196,22 @@ dependencies: tslib "^2.3.1" -"@aws-sdk/util-user-agent-browser@3.282.0": - version "3.282.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.282.0.tgz#00998e8bbab30baa45c38701907b80338abe55cc" - integrity sha512-Z639oyTa5fZfyi4Xr64+eiAwBCxfpe9Op4Vhnr1z/RwonQM/qywydv6Ttpeq1q5uQ0nG4wTkOMpfh39g+VqIgw== +"@aws-sdk/util-user-agent-browser@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.290.0.tgz#e0b7585808fd5bd9be20057b41d3a4c2a4dd8f75" + integrity sha512-I+B5ooKRYQ9jHcdg7TOf20LlTfcBUlCJQ2AAqI1ukmJqal22OD1CtC1E+/XbplpU5mxRs4s2UQbxNaPA0yIrBA== dependencies: - "@aws-sdk/types" "3.272.0" + "@aws-sdk/types" "3.290.0" bowser "^2.11.0" tslib "^2.3.1" -"@aws-sdk/util-user-agent-node@3.282.0": - version "3.282.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.282.0.tgz#1e8c59b32f7567a07e222ecebb4bcf91398b01f2" - integrity sha512-GSOdWNmzEd554wR9HBrgeYptKBOybveVwUkd6ws+YTdCOz4xD5Gga+I5JomKkcMEUVdBrJnYVUtq7ZsJy2f11w== +"@aws-sdk/util-user-agent-node@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.290.0.tgz#94dec6201da61f6b56cbb40b2768fa95addd91a3" + integrity sha512-7juKgEMqpa0il6jZmiBKGDJslM4UIKX1bvhlqkSvvPfV3zFdfi0V2xavh68GfelWduBBkYLGRjsLunqzw64f8A== dependencies: - "@aws-sdk/node-config-provider" "3.272.0" - "@aws-sdk/types" "3.272.0" + "@aws-sdk/node-config-provider" "3.290.0" + "@aws-sdk/types" "3.290.0" tslib "^2.3.1" "@aws-sdk/util-utf8-browser@^3.0.0": @@ -1229,13 +1229,13 @@ "@aws-sdk/util-buffer-from" "3.208.0" tslib "^2.3.1" -"@aws-sdk/util-waiter@3.272.0": - version "3.272.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-waiter/-/util-waiter-3.272.0.tgz#958448b6522709d795327f658882ddf0277af273" - integrity sha512-N25/XsJ2wkPh1EgkFyb/GRgfHDityScfD49Hk1AwJWpfetzgkcEtWdeW4IuPymXlSKhrm5L+SBw49USxo9kBag== +"@aws-sdk/util-waiter@3.290.0": + version "3.290.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-waiter/-/util-waiter-3.290.0.tgz#48ed39903578ac186f99c7875243090a0ed86300" + integrity sha512-8dD1CN5uKAXvRybwk+U6XHPirmVFkHyqu/n20tKB7M/cSoSEM/S5WmaaAqyW3Y0Kv+RIRGcQJb4goYqm7pfZkA== dependencies: - "@aws-sdk/abort-controller" "3.272.0" - "@aws-sdk/types" "3.272.0" + "@aws-sdk/abort-controller" "3.290.0" + "@aws-sdk/types" "3.290.0" tslib "^2.3.1" "@aws-sdk/xml-builder@3.201.0": From 095c84ebfd1ae66b4c4eb8eb75988d85dbabdd3e Mon Sep 17 00:00:00 2001 From: Sergei Zharinov Date: Wed, 15 Mar 2023 18:37:12 +0300 Subject: [PATCH 177/228] test: Refactor tests for package cache decorator (#20958) --- lib/util/cache/package/decorator.spec.ts | 178 +++++++++++++---------- 1 file changed, 100 insertions(+), 78 deletions(-) diff --git a/lib/util/cache/package/decorator.spec.ts b/lib/util/cache/package/decorator.spec.ts index 6d892c681aec2c..1501b13098997c 100644 --- a/lib/util/cache/package/decorator.spec.ts +++ b/lib/util/cache/package/decorator.spec.ts @@ -1,6 +1,4 @@ import os from 'os'; -import { mock } from 'jest-mock-extended'; -import type { GetReleasesConfig } from '../../../modules/datasource'; import * as memCache from '../memory'; import { cache } from './decorator'; import * as packageCache from '.'; @@ -8,116 +6,140 @@ import * as packageCache from '.'; jest.mock('./file'); describe('util/cache/package/decorator', () => { - const spy = jest.fn(() => Promise.resolve()); + const setCache = jest.spyOn(packageCache, 'set'); - beforeAll(async () => { + let count = 1; + const getValue = jest.fn(() => { + const res = String(100 * count + 10 * count + count); + count += 1; + return Promise.resolve(res); + }); + + beforeEach(async () => { memCache.init(); await packageCache.init({ cacheDir: os.tmpdir() }); + count = 1; }); it('should cache string', async () => { - class MyClass { - @cache({ namespace: 'namespace', key: 'key' }) - public async getNumber(): Promise { - await spy(); - return Math.random(); + class Class { + @cache({ namespace: 'some-namespace', key: 'some-key' }) + public fn(): Promise { + return getValue(); } } - const myClass = new MyClass(); - expect(await myClass.getNumber()).toEqual(await myClass.getNumber()); - expect(await myClass.getNumber()).toBeDefined(); - expect(spy).toHaveBeenCalledTimes(1); + const obj = new Class(); + + expect(await obj.fn()).toBe('111'); + expect(await obj.fn()).toBe('111'); + expect(await obj.fn()).toBe('111'); + + expect(getValue).toHaveBeenCalledTimes(1); + expect(setCache).toHaveBeenCalledOnceWith( + 'some-namespace', + 'some-key', + '111', + 30 + ); }); - it('Do not cache', async () => { - class MyClass { + it('disables cache if cacheability check is false', async () => { + class Class { @cache({ namespace: 'namespace', key: 'key', cacheable: () => false }) - public async getString( - cacheKey: string, - test: string | null - ): Promise { - await spy(); - return test; + public fn(): Promise { + return getValue(); } } - const myClass = new MyClass(); - expect(await myClass.getString('null', null)).toBeNull(); - expect(await myClass.getString('null', null)).toBeNull(); - expect(await myClass.getString('test', 'test')).toBe('test'); - expect(await myClass.getString('test', 'test')).toBe('test'); - expect(spy).toHaveBeenCalledTimes(4); + const obj = new Class(); + + expect(await obj.fn()).toBe('111'); + expect(await obj.fn()).toBe('222'); + expect(await obj.fn()).toBe('333'); + + expect(getValue).toHaveBeenCalledTimes(3); + expect(setCache).not.toHaveBeenCalled(); }); - it('Do cache null', async () => { - class MyClass { - @cache({ namespace: 'namespace', key: (cacheKey, test) => cacheKey }) - public async getString( - cacheKey: string, - test: string | null - ): Promise { - await spy(); - return test; + it('caches null values', async () => { + class Class { + @cache({ namespace: 'namespace', key: 'key' }) + public async fn(val: string | null): Promise { + await getValue(); + return val; } } - const myClass = new MyClass(); - expect(await myClass.getString('null', null)).toBeNull(); - expect(await myClass.getString('null', null)).toBeNull(); - expect(await myClass.getString('test', 'test')).toBe('test'); - expect(await myClass.getString('test', 'test')).toBeDefined(); - expect(spy).toHaveBeenCalledTimes(2); + const obj = new Class(); + + expect(await obj.fn(null)).toBeNull(); + expect(await obj.fn(null)).toBeNull(); + expect(await obj.fn(null)).toBeNull(); + + expect(getValue).toHaveBeenCalledTimes(1); + expect(setCache).toHaveBeenCalledOnceWith('namespace', 'key', null, 30); }); - it('Do not cache undefined', async () => { - class MyClass { - @cache({ namespace: 'namespace', key: 'undefined' }) - public async getString(): Promise { - await spy(); + it('does not cache undefined', async () => { + class Class { + @cache({ namespace: 'namespace', key: 'key' }) + public async fn(): Promise { + await getValue(); return undefined; } } - const myClass = new MyClass(); - expect(await myClass.getString()).toBeUndefined(); - expect(await myClass.getString()).toEqual(await myClass.getString()); - expect(spy).toHaveBeenCalledTimes(3); + const obj = new Class(); + + expect(await obj.fn()).toBeUndefined(); + expect(await obj.fn()).toBeUndefined(); + expect(await obj.fn()).toBeUndefined(); + + expect(getValue).toHaveBeenCalledTimes(3); + expect(setCache).not.toHaveBeenCalled(); }); - it('should cache function', async () => { - class MyClass { + it('computes cache namespace and key from arguments', async () => { + type Arg = { + foo: 'namespace'; + bar: 'key'; + }; + + class Class { @cache({ - namespace: (arg: GetReleasesConfig) => arg.registryUrl ?? 'default', - key: () => 'key', + namespace: (prefix: string, arg: Arg) => `${prefix}-${arg.foo}`, + key: (prefix: string, arg: Arg) => `${prefix}-${arg.bar}`, }) - public async getNumber(_: GetReleasesConfig): Promise { - await spy(); - return Math.random(); + public fn(_prefix: string, _arg: Arg): Promise { + return getValue(); } } - const myClass = new MyClass(); - const getReleasesConfig: GetReleasesConfig = { - registryUrl: 'registry', - ...mock(), - }; - expect(await myClass.getNumber(getReleasesConfig)).toEqual( - await myClass.getNumber(getReleasesConfig) + const obj = new Class(); + const arg: Arg = { foo: 'namespace', bar: 'key' }; + + expect(await obj.fn('some', arg)).toBe('111'); + expect(await obj.fn('some', arg)).toBe('111'); + + expect(getValue).toHaveBeenCalledTimes(1); + expect(setCache).toHaveBeenCalledOnceWith( + 'some-namespace', + 'some-key', + '111', + 30 ); - expect(await myClass.getNumber(getReleasesConfig)).toBeDefined(); - expect(spy).toHaveBeenCalledTimes(1); }); - it('works', async () => { - class MyClass { - public async getNumber(): Promise { - await spy(); - return Math.random(); + it('wraps class methods', async () => { + class Class { + public fn(): Promise { + return getValue(); } } const decorator = cache({ namespace: 'namespace', key: 'key' }); - const getNumber = decorator( - MyClass.prototype, - 'getNumber', - undefined as never - ); + const fn = decorator(Class.prototype, 'fn', undefined as never); + + expect(await fn.value?.()).toBe('111'); + expect(await fn.value?.()).toBe('111'); + expect(await fn.value?.()).toBe('111'); - expect(await getNumber.value?.()).toBeNumber(); + expect(getValue).toHaveBeenCalledTimes(1); + expect(setCache).toHaveBeenCalledOnceWith('namespace', 'key', '111', 30); }); }); From b0753df85d327673afeefd954f9308491160bae1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 15 Mar 2023 15:55:51 +0000 Subject: [PATCH 178/228] docs: update references to renovate/renovate to v35.7.0 (#20962) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- docs/usage/docker.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage/docker.md b/docs/usage/docker.md index 7292511236d250..1d982ed634e087 100644 --- a/docs/usage/docker.md +++ b/docs/usage/docker.md @@ -388,7 +388,7 @@ To get access to the token a custom Renovate Docker image is needed that include The Dockerfile to create such an image can look like this: ```Dockerfile -FROM renovate/renovate:35.2.0 +FROM renovate/renovate:35.7.0 # Include the "Docker tip" which you can find here https://cloud.google.com/sdk/docs/install # under "Installation" for "Debian/Ubuntu" RUN ... From 1789d349bb32a46b034dbf7705e147680e07fce6 Mon Sep 17 00:00:00 2001 From: Michael Kriese Date: Wed, 15 Mar 2023 17:41:26 +0100 Subject: [PATCH 179/228] fix(platform/bitbucket): use `uuid` instead of `username` for issues filter (#20960) --- lib/modules/platform/bitbucket/index.spec.ts | 22 +++++++++------- lib/modules/platform/bitbucket/index.ts | 27 ++++++++++---------- lib/modules/platform/bitbucket/types.ts | 2 -- 3 files changed, 26 insertions(+), 25 deletions(-) diff --git a/lib/modules/platform/bitbucket/index.spec.ts b/lib/modules/platform/bitbucket/index.spec.ts index b81c7b809a9282..03337462d67624 100644 --- a/lib/modules/platform/bitbucket/index.spec.ts +++ b/lib/modules/platform/bitbucket/index.spec.ts @@ -457,10 +457,12 @@ describe('modules/platform/bitbucket/index', () => { describe('findIssue()', () => { it('does not throw', async () => { + httpMock.scope(baseUrl).get('/2.0/user').reply(200, { uuid: '12345' }); + await bitbucket.initPlatform({ username: 'renovate', password: 'pass' }); const scope = await initRepoMock({}, { has_issues: true }); scope .get( - '/2.0/repositories/some/repo/issues?q=title%3D%22title%22%20AND%20(state%20%3D%20%22new%22%20OR%20state%20%3D%20%22open%22)%20AND%20reporter.username%3D%22abc%22' + '/2.0/repositories/some/repo/issues?q=title%3D%22title%22%20AND%20(state%20%3D%20%22new%22%20OR%20state%20%3D%20%22open%22)%20AND%20reporter.uuid%3D%2212345%22' ) .reply(200, { values: [ @@ -488,7 +490,7 @@ describe('modules/platform/bitbucket/index', () => { ); scope .get( - '/2.0/repositories/some/empty/issues?q=title%3D%22title%22%20AND%20(state%20%3D%20%22new%22%20OR%20state%20%3D%20%22open%22)%20AND%20reporter.username%3D%22abc%22' + '/2.0/repositories/some/empty/issues?q=title%3D%22title%22%20AND%20(state%20%3D%20%22new%22%20OR%20state%20%3D%20%22open%22)' ) .reply(200, { values: [], @@ -502,7 +504,7 @@ describe('modules/platform/bitbucket/index', () => { const scope = await initRepoMock({}, { has_issues: true }); scope .get( - '/2.0/repositories/some/repo/issues?q=title%3D%22title%22%20AND%20(state%20%3D%20%22new%22%20OR%20state%20%3D%20%22open%22)%20AND%20reporter.username%3D%22abc%22' + '/2.0/repositories/some/repo/issues?q=title%3D%22title%22%20AND%20(state%20%3D%20%22new%22%20OR%20state%20%3D%20%22open%22)' ) .reply(200, { values: [ @@ -534,11 +536,11 @@ describe('modules/platform/bitbucket/index', () => { ); scope .get( - '/2.0/repositories/some/empty/issues?q=title%3D%22title%22%20AND%20(state%20%3D%20%22new%22%20OR%20state%20%3D%20%22open%22)%20AND%20reporter.username%3D%22abc%22' + '/2.0/repositories/some/empty/issues?q=title%3D%22title%22%20AND%20(state%20%3D%20%22new%22%20OR%20state%20%3D%20%22open%22)' ) .reply(200, { values: [] }) .get( - '/2.0/repositories/some/empty/issues?q=title%3D%22old-title%22%20AND%20(state%20%3D%20%22new%22%20OR%20state%20%3D%20%22open%22)%20AND%20reporter.username%3D%22abc%22' + '/2.0/repositories/some/empty/issues?q=title%3D%22old-title%22%20AND%20(state%20%3D%20%22new%22%20OR%20state%20%3D%20%22open%22)' ) .reply(200, { values: [] }) .post('/2.0/repositories/some/empty/issues') @@ -556,7 +558,7 @@ describe('modules/platform/bitbucket/index', () => { const scope = await initRepoMock({}, { has_issues: true }); scope .get( - '/2.0/repositories/some/repo/issues?q=title%3D%22title%22%20AND%20(state%20%3D%20%22new%22%20OR%20state%20%3D%20%22open%22)%20AND%20reporter.username%3D%22abc%22' + '/2.0/repositories/some/repo/issues?q=title%3D%22title%22%20AND%20(state%20%3D%20%22new%22%20OR%20state%20%3D%20%22open%22)' ) .reply(200, { values: [ @@ -593,7 +595,7 @@ describe('modules/platform/bitbucket/index', () => { const scope = await initRepoMock({}, { has_issues: true }); scope .get( - '/2.0/repositories/some/repo/issues?q=title%3D%22title%22%20AND%20(state%20%3D%20%22new%22%20OR%20state%20%3D%20%22open%22)%20AND%20reporter.username%3D%22abc%22' + '/2.0/repositories/some/repo/issues?q=title%3D%22title%22%20AND%20(state%20%3D%20%22new%22%20OR%20state%20%3D%20%22open%22)' ) .reply(200, { values: [ @@ -624,11 +626,13 @@ describe('modules/platform/bitbucket/index', () => { }); it('get issues', async () => { + httpMock.scope(baseUrl).get('/2.0/user').reply(200, { uuid: '12345' }); + await bitbucket.initPlatform({ username: 'renovate', password: 'pass' }); const scope = await initRepoMock({}, { has_issues: true }); scope .get('/2.0/repositories/some/repo/issues') .query({ - q: '(state = "new" OR state = "open") AND reporter.username="abc"', + q: '(state = "new" OR state = "open") AND reporter.uuid="12345"', }) .reply(200, { values: [ @@ -655,7 +659,7 @@ describe('modules/platform/bitbucket/index', () => { scope .get('/2.0/repositories/some/repo/issues') .query({ - q: '(state = "new" OR state = "open") AND reporter.username="abc"', + q: '(state = "new" OR state = "open")', }) .reply(500, {}); const issues = await bitbucket.getIssueList(); diff --git a/lib/modules/platform/bitbucket/index.ts b/lib/modules/platform/bitbucket/index.ts index efe7852211674c..dda49add7a2748 100644 --- a/lib/modules/platform/bitbucket/index.ts +++ b/lib/modules/platform/bitbucket/index.ts @@ -169,7 +169,6 @@ export async function initRepo({ }); config = { repository, - username: opts.username, ignorePrAuthor, } as Config; let info: RepoInfo; @@ -462,13 +461,14 @@ type BbIssue = { id: number; title: string; content?: { raw: string } }; async function findOpenIssues(title: string): Promise { try { - const filter = encodeURIComponent( - [ - `title=${JSON.stringify(title)}`, - '(state = "new" OR state = "open")', - `reporter.username="${config.username}"`, - ].join(' AND ') - ); + const filters = [ + `title=${JSON.stringify(title)}`, + '(state = "new" OR state = "open")', + ]; + if (renovateUserUuid) { + filters.push(`reporter.uuid="${renovateUserUuid}"`); + } + const filter = encodeURIComponent(filters.join(' AND ')); return ( ( await bitbucketHttp.getJson<{ values: BbIssue[] }>( @@ -603,12 +603,11 @@ export async function getIssueList(): Promise { return []; } try { - const filter = encodeURIComponent( - [ - '(state = "new" OR state = "open")', - `reporter.username="${config.username}"`, - ].join(' AND ') - ); + const filters = ['(state = "new" OR state = "open")']; + if (renovateUserUuid) { + filters.push(`reporter.uuid="${renovateUserUuid}"`); + } + const filter = encodeURIComponent(filters.join(' AND ')); return ( ( await bitbucketHttp.getJson<{ values: Issue[] }>( diff --git a/lib/modules/platform/bitbucket/types.ts b/lib/modules/platform/bitbucket/types.ts index 7611dba4edd0aa..0ffb4b9623cb77 100644 --- a/lib/modules/platform/bitbucket/types.ts +++ b/lib/modules/platform/bitbucket/types.ts @@ -15,8 +15,6 @@ export interface Config { owner: string; prList: Pr[]; repository: string; - username: string; - userUuid: string; ignorePrAuthor: boolean; } From ccec42fdcf5d62c2b50b6db30fa7535b2418aed2 Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Wed, 15 Mar 2023 19:23:14 +0100 Subject: [PATCH 180/228] fix(config): migrate includeForks properly (#20965) --- .../migrations/custom/include-forks-migration.spec.ts | 8 ++++---- lib/config/migrations/custom/include-forks-migration.ts | 2 +- lib/config/migrations/migrations-service.ts | 2 ++ 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/config/migrations/custom/include-forks-migration.spec.ts b/lib/config/migrations/custom/include-forks-migration.spec.ts index ca4ce0b9b2a5b2..03de829b977e62 100644 --- a/lib/config/migrations/custom/include-forks-migration.spec.ts +++ b/lib/config/migrations/custom/include-forks-migration.spec.ts @@ -1,8 +1,8 @@ -import { RenovateForkMigration } from './include-forks-migration'; +import { IncludeForksMigration } from './include-forks-migration'; describe('config/migrations/custom/include-forks-migration', () => { it('should migrate true', () => { - expect(RenovateForkMigration).toMigrate( + expect(IncludeForksMigration).toMigrate( { includeForks: true, }, @@ -13,7 +13,7 @@ describe('config/migrations/custom/include-forks-migration', () => { }); it('should migrate false', () => { - expect(RenovateForkMigration).toMigrate( + expect(IncludeForksMigration).toMigrate( { includeForks: false, }, @@ -24,7 +24,7 @@ describe('config/migrations/custom/include-forks-migration', () => { }); it('should not migrate non boolean value', () => { - expect(RenovateForkMigration).toMigrate( + expect(IncludeForksMigration).toMigrate( { includeForks: 'test', }, diff --git a/lib/config/migrations/custom/include-forks-migration.ts b/lib/config/migrations/custom/include-forks-migration.ts index 5afede3db6b588..675d0ff98953d8 100644 --- a/lib/config/migrations/custom/include-forks-migration.ts +++ b/lib/config/migrations/custom/include-forks-migration.ts @@ -1,7 +1,7 @@ import is from '@sindresorhus/is'; import { AbstractMigration } from '../base/abstract-migration'; -export class RenovateForkMigration extends AbstractMigration { +export class IncludeForksMigration extends AbstractMigration { override readonly deprecated = true; override readonly propertyName = 'includeForks'; diff --git a/lib/config/migrations/migrations-service.ts b/lib/config/migrations/migrations-service.ts index fc23f576e39c9d..de172fdd7c391b 100644 --- a/lib/config/migrations/migrations-service.ts +++ b/lib/config/migrations/migrations-service.ts @@ -24,6 +24,7 @@ import { GoModTidyMigration } from './custom/go-mod-tidy-migration'; import { HostRulesMigration } from './custom/host-rules-migration'; import { IgnoreNodeModulesMigration } from './custom/ignore-node-modules-migration'; import { IgnoreNpmrcFileMigration } from './custom/ignore-npmrc-file-migration'; +import { IncludeForksMigration } from './custom/include-forks-migration'; import { MatchDatasourcesMigration } from './custom/match-datasources-migration'; import { MatchStringsMigration } from './custom/match-strings-migration'; import { NodeMigration } from './custom/node-migration'; @@ -111,6 +112,7 @@ export class MigrationsService { HostRulesMigration, IgnoreNodeModulesMigration, IgnoreNpmrcFileMigration, + IncludeForksMigration, MatchStringsMigration, PackageNameMigration, PackagePatternMigration, From a5c9f247be2f5bc3ab746bf878966bc94a62c023 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 15 Mar 2023 21:18:39 +0000 Subject: [PATCH 181/228] chore(deps): update actions/checkout action to v3.4.0 (#20970) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/build.yml | 6 +++--- .github/workflows/codeql-analysis.yml | 2 +- .github/workflows/dependency-review.yml | 2 +- .github/workflows/release-npm.yml | 2 +- .github/workflows/update-data.yml | 2 +- .github/workflows/ws_scan.yaml | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0efe1f8324ee56..07f0000768d031 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -55,7 +55,7 @@ jobs: NODE_VERSION: ${{ matrix.node-version }} steps: - - uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 + - uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3.4.0 with: fetch-depth: 2 @@ -106,7 +106,7 @@ jobs: timeout-minutes: 15 steps: - - uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 + - uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3.4.0 with: fetch-depth: 2 @@ -156,7 +156,7 @@ jobs: steps: # full checkout for semantic-release - - uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 + - uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3.4.0 with: fetch-depth: 0 diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 0eb9104acce9dc..ebd2e575f2b753 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -22,7 +22,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 + uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3.4.0 - name: Delete fixtures to suppress false positives run: | diff --git a/.github/workflows/dependency-review.yml b/.github/workflows/dependency-review.yml index c63e08617ac558..1fd608f27be41a 100644 --- a/.github/workflows/dependency-review.yml +++ b/.github/workflows/dependency-review.yml @@ -9,7 +9,7 @@ jobs: runs-on: ubuntu-latest steps: - name: 'Checkout Repository' - uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 + uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3.4.0 - name: 'Dependency Review' uses: actions/dependency-review-action@c090f4e553673e6e505ea70d6a95362ee12adb94 # v3.0.3 diff --git a/.github/workflows/release-npm.yml b/.github/workflows/release-npm.yml index c81c935698ce79..74e64ee622c6d5 100644 --- a/.github/workflows/release-npm.yml +++ b/.github/workflows/release-npm.yml @@ -38,7 +38,7 @@ jobs: echo "NPM_TAG=${{ github.event.inputs.tag }}" >> $GITHUB_ENV fi - - uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 + - uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3.4.0 with: ref: ${{ env.GIT_SHA }} diff --git a/.github/workflows/update-data.yml b/.github/workflows/update-data.yml index 168d394ea730d7..42fe1f3cff7e51 100644 --- a/.github/workflows/update-data.yml +++ b/.github/workflows/update-data.yml @@ -15,7 +15,7 @@ jobs: update-data: runs-on: ubuntu-latest steps: - - uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 + - uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3.4.0 - name: Set up Node.js ${{ env.NODE_VERSION }} uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0 diff --git a/.github/workflows/ws_scan.yaml b/.github/workflows/ws_scan.yaml index 59825cb6c417d2..0a2725369e8ca6 100644 --- a/.github/workflows/ws_scan.yaml +++ b/.github/workflows/ws_scan.yaml @@ -11,7 +11,7 @@ jobs: WS_SCAN: runs-on: ubuntu-latest steps: - - uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 + - uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3.4.0 - name: Download UA run: curl -LJO https://github.com/whitesource/unified-agent-distribution/releases/latest/download/wss-unified-agent.jar From c31eb5f177b467c6fa4c5d1ffc0ce9a20b8c0663 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 16 Mar 2023 02:34:16 +0000 Subject: [PATCH 182/228] chore(deps): update dependency rimraf to v4.4.0 (#20973) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index b7ea56d8019110..77212c48f70605 100644 --- a/package.json +++ b/package.json @@ -322,7 +322,7 @@ "mockdate": "3.0.5", "nock": "13.3.0", "npm-run-all": "4.1.5", - "rimraf": "4.3.1", + "rimraf": "4.4.0", "semantic-release": "20.1.1", "shelljs": "0.8.5", "strip-ansi": "6.0.1", diff --git a/yarn.lock b/yarn.lock index 939168254080ab..0c46282c912f39 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9039,10 +9039,10 @@ rfdc@^1.3.0: resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== -rimraf@4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-4.3.1.tgz#ccb3525e39100478acb334fae6d23029b87912ea" - integrity sha512-GfHJHBzFQra23IxDzIdBqhOWfbtdgS1/dCHrDy+yvhpoJY5TdwdT28oWaHWfRpKFDLd3GZnGTx6Mlt4+anbsxQ== +rimraf@4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-4.4.0.tgz#c7a9f45bb2ec058d2e60ef9aca5167974313d605" + integrity sha512-X36S+qpCUR0HjXlkDe4NAOhS//aHH0Z+h8Ckf2auGJk3PTnx5rLmrHkwNdbVQuCSUhOyFrlRvFEllZOYE+yZGQ== dependencies: glob "^9.2.0" From 15c7e8dea298bdf96328922a060c1163f446cd3a Mon Sep 17 00:00:00 2001 From: John Daly Date: Wed, 15 Mar 2023 21:57:34 -0700 Subject: [PATCH 183/228] fix: Prevent uninitialized cacheProxy from being accessed in cleanup (#20975) --- lib/util/cache/package/index.spec.ts | 3 +++ lib/util/cache/package/index.ts | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/util/cache/package/index.spec.ts b/lib/util/cache/package/index.spec.ts index 24f1cb5e5f47ad..65bbab5c49b58f 100644 --- a/lib/util/cache/package/index.spec.ts +++ b/lib/util/cache/package/index.spec.ts @@ -7,6 +7,9 @@ describe('util/cache/package/index', () => { it('returns undefined if not initialized', async () => { expect(await get('test', 'missing-key')).toBeUndefined(); expect(await set('test', 'some-key', 'some-value', 5)).toBeUndefined(); + expect(async () => { + await cleanup({}); + }).not.toThrow(); }); it('sets and gets file', async () => { diff --git a/lib/util/cache/package/index.ts b/lib/util/cache/package/index.ts index 9cb48a05b271b2..438095147c78c6 100644 --- a/lib/util/cache/package/index.ts +++ b/lib/util/cache/package/index.ts @@ -4,7 +4,7 @@ import * as fileCache from './file'; import * as redisCache from './redis'; import type { PackageCache } from './types'; -let cacheProxy: PackageCache; +let cacheProxy: PackageCache | undefined; function getGlobalKey(namespace: string, key: string): string { return `global%%${namespace}%%${key}`; @@ -74,7 +74,7 @@ export async function cleanup(config: AllConfig): Promise { if (config?.redisUrl) { await redisCache.end(); } - if (cacheProxy.cleanup) { + if (cacheProxy?.cleanup) { await cacheProxy.cleanup(); } } From 85834b251983266e8fe6dfe92bf1d08546bbc9c6 Mon Sep 17 00:00:00 2001 From: Johannes Feichtner <343448+Churro@users.noreply.github.com> Date: Thu, 16 Mar 2023 06:21:50 +0100 Subject: [PATCH 184/228] feat(manager/gradle): add support for plugins in inlined version catalogs (#20969) --- lib/modules/manager/gradle/parser.spec.ts | 1 + .../manager/gradle/parser/version-catalogs.ts | 25 ++++++++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/lib/modules/manager/gradle/parser.spec.ts b/lib/modules/manager/gradle/parser.spec.ts index f47c12c93bb5fd..99bb0063431c9b 100644 --- a/lib/modules/manager/gradle/parser.spec.ts +++ b/lib/modules/manager/gradle/parser.spec.ts @@ -708,6 +708,7 @@ describe('modules/manager/gradle/parser', () => { ${''} | ${'library("foo", "bar", "baz", "qux").version("1.2.3")'} | ${null} ${''} | ${'library("foo.bar", "foo", "bar").version("1.2.3", "4.5.6")'} | ${null} ${''} | ${'library("foo", bar, "baz").version("1.2.3")'} | ${null} + ${''} | ${'plugin("foo.bar", "foo").version("1.2.3")'} | ${{ depName: 'foo', currentValue: '1.2.3' }} ${''} | ${'alias("foo.bar").to("foo", "bar").version("1.2.3")'} | ${{ depName: 'foo:bar', currentValue: '1.2.3' }} ${'version("baz", "1.2.3")'} | ${'alias("foo.bar").to("foo", "bar").versionRef("baz")'} | ${{ depName: 'foo:bar', currentValue: '1.2.3' }} ${'version("baz", "1.2.3")'} | ${'alias("foo.bar").to("foo", "bar").version("${baz}")'} | ${{ depName: 'foo:bar', currentValue: '1.2.3' }} diff --git a/lib/modules/manager/gradle/parser/version-catalogs.ts b/lib/modules/manager/gradle/parser/version-catalogs.ts index 30bcb78f5ecf68..f08b32767e38e4 100644 --- a/lib/modules/manager/gradle/parser/version-catalogs.ts +++ b/lib/modules/manager/gradle/parser/version-catalogs.ts @@ -8,7 +8,7 @@ import { storeInTokenMap, storeVarToken, } from './common'; -import { handleLibraryDep } from './handlers'; +import { handleLibraryDep, handlePlugin } from './handlers'; const qGroupId = qValueMatcher.handler((ctx) => storeInTokenMap(ctx, 'groupId') @@ -61,6 +61,28 @@ const qVersionCatalogDependencies = q .handler(handleLibraryDep) .handler(cleanupTempVars); +// plugin("foo.bar", "foo:bar") +const qVersionCatalogPlugins = q + .sym('plugin', storeVarToken) + .handler((ctx) => storeInTokenMap(ctx, 'methodName')) + .tree({ + type: 'wrapped-tree', + maxDepth: 1, + startsWith: '(', + endsWith: ')', + search: q + .begin() + .join(qStringValue) + .handler((ctx) => storeInTokenMap(ctx, 'alias')) + .op(',') + .alt(qStringValue) + .handler((ctx) => storeInTokenMap(ctx, 'pluginName')) + .end(), + }) + .opt(qVersionCatalogVersion) + .handler(handlePlugin) + .handler(cleanupTempVars); + // alias("foo.bar").to("foo", "bar").version("1.2.3") const qVersionCatalogAliasDependencies = q .sym('alias') @@ -90,5 +112,6 @@ const qVersionCatalogAliasDependencies = q export const qVersionCatalogs = q.alt( qVersionCatalogDependencies, + qVersionCatalogPlugins, qVersionCatalogAliasDependencies ); From d739141f7d93daf97b3bf80a5b32907b84a82964 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=8BFaizaan?= Date: Thu, 16 Mar 2023 11:20:08 +0530 Subject: [PATCH 185/228] fix: Add support for PAT in Bitbucket Server. Closes #14900 (#20974) --- lib/modules/platform/bitbucket-server/index.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/modules/platform/bitbucket-server/index.ts b/lib/modules/platform/bitbucket-server/index.ts index acdc8bd71fce18..b3e574dc7fedfe 100644 --- a/lib/modules/platform/bitbucket-server/index.ts +++ b/lib/modules/platform/bitbucket-server/index.ts @@ -81,13 +81,14 @@ export function initPlatform({ endpoint, username, password, + token, }: PlatformParams): Promise { if (!endpoint) { throw new Error('Init: You must configure a Bitbucket Server endpoint'); } - if (!(username && password)) { + if (!(username && password) && !token) { throw new Error( - 'Init: You must configure a Bitbucket Server username/password' + 'Init: You must configure either a Bitbucket Server token or username and password' ); } // TODO: Add a connection check that endpoint/username/password combination are valid (#9595) From 1a8088c4d6ef9bafeb26b8c6b19818551758839f Mon Sep 17 00:00:00 2001 From: Michael Kriese Date: Thu, 16 Mar 2023 10:52:02 +0100 Subject: [PATCH 186/228] fix: Revert "fix: Add support for PAT in Bitbucket Server. Closes #14900" (#20979) --- lib/modules/platform/bitbucket-server/index.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/modules/platform/bitbucket-server/index.ts b/lib/modules/platform/bitbucket-server/index.ts index b3e574dc7fedfe..acdc8bd71fce18 100644 --- a/lib/modules/platform/bitbucket-server/index.ts +++ b/lib/modules/platform/bitbucket-server/index.ts @@ -81,14 +81,13 @@ export function initPlatform({ endpoint, username, password, - token, }: PlatformParams): Promise { if (!endpoint) { throw new Error('Init: You must configure a Bitbucket Server endpoint'); } - if (!(username && password) && !token) { + if (!(username && password)) { throw new Error( - 'Init: You must configure either a Bitbucket Server token or username and password' + 'Init: You must configure a Bitbucket Server username/password' ); } // TODO: Add a connection check that endpoint/username/password combination are valid (#9595) From 79cfad9324fed57c6e3a3c8ef080dbd65980c86e Mon Sep 17 00:00:00 2001 From: Michael Kriese Date: Thu, 16 Mar 2023 11:09:27 +0100 Subject: [PATCH 187/228] docs(platform/bitbucket-server): add Data Center (#20980) --- lib/modules/platform/bitbucket-server/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/modules/platform/bitbucket-server/index.md b/lib/modules/platform/bitbucket-server/index.md index b4f27e0c243967..8d4ec5417b953d 100644 --- a/lib/modules/platform/bitbucket-server/index.md +++ b/lib/modules/platform/bitbucket-server/index.md @@ -1,4 +1,4 @@ -# Bitbucket Server +# Bitbucket Data Center and Server ## Authentication From 5d82120bbbdd922cbd451eba1d981ae0d5e70fc8 Mon Sep 17 00:00:00 2001 From: Adam Setch Date: Thu, 16 Mar 2023 08:36:59 -0400 Subject: [PATCH 188/228] feat(manager/bitbucket-pipelines): add support for docker-based pipes (#20938) Co-authored-by: Rhys Arkins --- .../__fixtures__/bitbucket-pipelines.yaml | 3 +- .../bitbucket-pipelines/extract.spec.ts | 11 +++- .../manager/bitbucket-pipelines/extract.ts | 58 ++++++++++--------- 3 files changed, 42 insertions(+), 30 deletions(-) diff --git a/lib/modules/manager/bitbucket-pipelines/__fixtures__/bitbucket-pipelines.yaml b/lib/modules/manager/bitbucket-pipelines/__fixtures__/bitbucket-pipelines.yaml index ec44288c93764c..c56064f849f004 100644 --- a/lib/modules/manager/bitbucket-pipelines/__fixtures__/bitbucket-pipelines.yaml +++ b/lib/modules/manager/bitbucket-pipelines/__fixtures__/bitbucket-pipelines.yaml @@ -6,6 +6,7 @@ pipelines: name: Build and Test image: node:10.15.2 script: + - pipe: docker://jfrogecosystem/jfrog-setup-cli:2.0.2 - npm install - npm test - npm run dist @@ -21,4 +22,4 @@ pipelines: AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY AWS_DEFAULT_REGION: "us-east-1" S3_BUCKET: "my-bucket-name" - LOCAL_PATH: "dist" \ No newline at end of file + LOCAL_PATH: "dist" diff --git a/lib/modules/manager/bitbucket-pipelines/extract.spec.ts b/lib/modules/manager/bitbucket-pipelines/extract.spec.ts index 70607241007e82..cec1fdd230ccf4 100644 --- a/lib/modules/manager/bitbucket-pipelines/extract.spec.ts +++ b/lib/modules/manager/bitbucket-pipelines/extract.spec.ts @@ -29,6 +29,15 @@ describe('modules/manager/bitbucket-pipelines/extract', () => { "depType": "docker", "replaceString": "node:10.15.2", }, + { + "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}", + "currentDigest": undefined, + "currentValue": "2.0.2", + "datasource": "docker", + "depName": "jfrogecosystem/jfrog-setup-cli", + "depType": "docker", + "replaceString": "jfrogecosystem/jfrog-setup-cli:2.0.2", + }, { "currentValue": "0.2.1", "datasource": "bitbucket-tags", @@ -37,7 +46,7 @@ describe('modules/manager/bitbucket-pipelines/extract', () => { }, ] `); - expect(res?.deps).toHaveLength(3); + expect(res?.deps).toHaveLength(4); }); }); }); diff --git a/lib/modules/manager/bitbucket-pipelines/extract.ts b/lib/modules/manager/bitbucket-pipelines/extract.ts index 1b3f67d363dfad..967bf2f9732325 100644 --- a/lib/modules/manager/bitbucket-pipelines/extract.ts +++ b/lib/modules/manager/bitbucket-pipelines/extract.ts @@ -1,5 +1,6 @@ import { logger } from '../../../logger'; import { newlineRegex, regEx } from '../../../util/regex'; +import { BitBucketTagsDatasource } from '../../datasource/bitbucket-tags'; import { getDep } from '../dockerfile/extract'; import type { PackageDependency, PackageFileContent } from '../types'; @@ -15,40 +16,19 @@ export function extractPackageFile(content: string): PackageFileContent | null { const pipeMatch = pipeRegex.exec(line); if (pipeMatch) { const pipe = pipeMatch[1]; - const [depName, currentValue] = pipe.split(':'); - const dep: PackageDependency = { - depName, - currentValue, - datasource: 'bitbucket-tags', - }; - - logger.trace( - { - depName: dep.depName, - currentValue: dep.currentValue, - }, - 'Bitbucket pipe' - ); - dep.depType = 'bitbucket-tags'; - deps.push(dep); + if (pipe.startsWith('docker://')) { + const currentPipe = pipe.replace('docker://', ''); + addDepAsDockerImage(deps, currentPipe); + } else { + addDepAsBitbucketTag(deps, pipe); + } } const dockerImageMatch = dockerImageRegex.exec(line); if (dockerImageMatch) { const currentFrom = dockerImageMatch[1]; - const dep = getDep(currentFrom); - - logger.trace( - { - depName: dep.depName, - currentValue: dep.currentValue, - currentDigest: dep.currentDigest, - }, - 'Docker image' - ); - dep.depType = 'docker'; - deps.push(dep); + addDepAsDockerImage(deps, currentFrom); } } } catch (err) /* istanbul ignore next */ { @@ -59,3 +39,25 @@ export function extractPackageFile(content: string): PackageFileContent | null { } return { deps }; } +function addDepAsBitbucketTag( + deps: PackageDependency>[], + pipe: string +): void { + const [depName, currentValue] = pipe.split(':'); + const dep: PackageDependency = { + depName, + currentValue, + datasource: BitBucketTagsDatasource.id, + }; + dep.depType = 'bitbucket-tags'; + deps.push(dep); +} + +function addDepAsDockerImage( + deps: PackageDependency>[], + currentDockerImage: string +): void { + const dep = getDep(currentDockerImage); + dep.depType = 'docker'; + deps.push(dep); +} From b2bea97e99c4e2019ea6e511066f254ba3ce880c Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Fri, 17 Mar 2023 07:36:56 +0100 Subject: [PATCH 189/228] chore: change invalid to needs-discussion (#20997) --- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- .github/label-actions.yml | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 7e8bf6bea06b61..c184e443e3557c 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -5,7 +5,7 @@ body: - type: markdown attributes: value: | - Don't create a Bug Report like this without a Discussion and [minimal reproduction](https://github.com/renovatebot/renovate/blob/main/docs/development/minimal-reproductions.md) first. + Don't create a Bug Report like this without a GitHub Discussion and [minimal reproduction](https://github.com/renovatebot/renovate/blob/main/docs/development/minimal-reproductions.md) first. Invalid bug reports waste the time of maintainers and can confuse other users so they will closed, locked and deleted. You are always welcome to create Discussions and new users should always do that instead. diff --git a/.github/label-actions.yml b/.github/label-actions.yml index eb6440e5eb1538..be2793bf00a3cc 100644 --- a/.github/label-actions.yml +++ b/.github/label-actions.yml @@ -166,14 +166,16 @@ The Renovate team -'invalid': +'needs-discussion': unlabel: - 'type:bug' - 'type:feature' - 'priority-5-triage' - 'status:requirements' comment: > - This issue has been labeled as `invalid` by a maintainer so is being automatically closed and locked. It will later be deleted to avoid polluting repository searches with duplicate or incorrect content. + **Please create a GitHub Discussion instead of this issue.** + + As this issue has been labeled as `needs-discussion` by a maintainer it is being automatically closed and locked. It will later be deleted to avoid polluting repository searches with duplicate or incorrect content. This doesn't necessarily mean that what you've reported isn't a problem or a reasonable idea, but it does mean that it should be raised as a Discussion first and not an Issue. Please create a Discussion now, assuming you still wish to discuss it. From f167c7335636eadac675eb60f5cc05ee5ded081a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 17 Mar 2023 08:24:07 +0000 Subject: [PATCH 190/228] chore(deps): update dependency @types/node to v18.15.0 (#20999) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 7 +------ 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 77212c48f70605..12033ba24b0692 100644 --- a/package.json +++ b/package.json @@ -279,7 +279,7 @@ "@types/marshal": "0.5.1", "@types/moo": "0.5.5", "@types/nock": "10.0.3", - "@types/node": "18.14.6", + "@types/node": "18.15.0", "@types/parse-link-header": "2.0.1", "@types/semver": "7.3.13", "@types/semver-stable": "3.0.0", diff --git a/yarn.lock b/yarn.lock index 0c46282c912f39..781e87329d41b3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3066,16 +3066,11 @@ dependencies: "@types/node" "*" -"@types/node@*": +"@types/node@*", "@types/node@18.15.0": version "18.15.0" resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.0.tgz#286a65e3fdffd691e170541e6ecb0410b16a38be" integrity sha512-z6nr0TTEOBGkzLGmbypWOGnpSpSIBorEhC4L+4HeQ2iezKCi4f77kyslRwvHeNitymGQ+oFyIWGP96l/DPSV9w== -"@types/node@18.14.6": - version "18.14.6" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.14.6.tgz#ae1973dd2b1eeb1825695bb11ebfb746d27e3e93" - integrity sha512-93+VvleD3mXwlLI/xASjw0FzKcwzl3OdTCzm1LaRfqgS21gfFtK3zDXM5Op9TeeMsJVOaJ2VRDpT9q4Y3d0AvA== - "@types/node@^13.7.0": version "13.13.52" resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.52.tgz#03c13be70b9031baaed79481c0c0cfb0045e53f7" From 4765caf7a2b213e43c0a902776e538048c51f620 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 17 Mar 2023 09:15:45 +0000 Subject: [PATCH 191/228] chore(deps): update node.js to 0359d0e (#20998) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .devcontainer/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index ae95e8fb34e406..1238fd950f12a2 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,4 +1,4 @@ -FROM containerbase/node:18.15.0@sha256:5c0dbacb3043a43551df6c79b6c34ee99d31edb0e063080fc8d85d19759f3c97 +FROM containerbase/node:18.15.0@sha256:0359d0e4bac80ee84d104f347ec86d88f4df631bfa6b16c9254fc9daffe6ec9b USER root From e29c8ad964f92e721d03072698bb532320f3c25b Mon Sep 17 00:00:00 2001 From: Adam Setch Date: Fri, 17 Mar 2023 08:13:37 -0400 Subject: [PATCH 192/228] fix(bitbucket): use correct case (#21002) --- docs/usage/faq.md | 4 +-- lib/constants/platform.spec.ts | 4 +-- lib/modules/datasource/api.ts | 4 +-- .../datasource/bitbucket-tags/index.spec.ts | 4 +-- .../datasource/bitbucket-tags/index.ts | 32 +++++++++---------- lib/modules/datasource/go/base.ts | 4 +-- lib/modules/datasource/go/common.ts | 6 ++-- lib/modules/datasource/go/index.ts | 4 +-- lib/modules/datasource/go/releases-direct.ts | 8 ++--- .../manager/bitbucket-pipelines/extract.ts | 4 +-- lib/modules/manager/deps-edn/extract.ts | 4 +-- lib/modules/manager/flux/extract.spec.ts | 4 +-- lib/modules/manager/flux/extract.ts | 4 +-- lib/modules/manager/flux/index.ts | 4 +-- .../terraform/extractors/others/modules.ts | 4 +-- lib/modules/manager/terraform/index.ts | 4 +-- .../platform/bitbucket-server/index.ts | 2 +- lib/modules/platform/bitbucket/comments.ts | 4 +-- lib/modules/platform/bitbucket/index.md | 2 +- 19 files changed, 53 insertions(+), 53 deletions(-) diff --git a/docs/usage/faq.md b/docs/usage/faq.md index 4fda340ee3c187..bfe5902dab1eba 100644 --- a/docs/usage/faq.md +++ b/docs/usage/faq.md @@ -33,8 +33,8 @@ If you're self hosting Renovate, use the latest release if possible. | Feature | Platforms which lack feature | See Renovate issue(s) | | -------------------- | ---------------------------------------------------------- | ------------------------------------------------------------ | -| Dependency Dashboard | Azure, BitBucket, BitBucket Server | [#9592](https://github.com/renovatebot/renovate/issues/9592) | -| Hosted app | Azure, BitBucket, BitBucket Server, Forgejo, Gitea, GitLab | | +| Dependency Dashboard | Azure, Bitbucket, Bitbucket Server | [#9592](https://github.com/renovatebot/renovate/issues/9592) | +| Hosted app | Azure, Bitbucket, Bitbucket Server, Forgejo, Gitea, GitLab | | ## Major platform features not supported by Renovate diff --git a/lib/constants/platform.spec.ts b/lib/constants/platform.spec.ts index b663bd5db70cc5..d17b855807bc2b 100644 --- a/lib/constants/platform.spec.ts +++ b/lib/constants/platform.spec.ts @@ -1,4 +1,4 @@ -import { BitBucketTagsDatasource } from '../modules/datasource/bitbucket-tags'; +import { BitbucketTagsDatasource } from '../modules/datasource/bitbucket-tags'; import { GithubReleasesDatasource } from '../modules/datasource/github-releases'; import { GithubTagsDatasource } from '../modules/datasource/github-tags'; import { GitlabPackagesDatasource } from '../modules/datasource/gitlab-packages'; @@ -58,7 +58,7 @@ describe('constants/platform', () => { it('should be part of the BITBUCKET_API_USING_HOST_TYPES ', () => { expect( - BITBUCKET_API_USING_HOST_TYPES.includes(BitBucketTagsDatasource.id) + BITBUCKET_API_USING_HOST_TYPES.includes(BitbucketTagsDatasource.id) ).toBeTrue(); expect(BITBUCKET_API_USING_HOST_TYPES.includes('bitbucket')).toBeTrue(); }); diff --git a/lib/modules/datasource/api.ts b/lib/modules/datasource/api.ts index 96139eb717e9ee..48ffd8c4c97cf0 100644 --- a/lib/modules/datasource/api.ts +++ b/lib/modules/datasource/api.ts @@ -3,7 +3,7 @@ import { AwsMachineImageDataSource } from './aws-machine-image'; import { AwsRdsDataSource } from './aws-rds'; import { AzureBicepResourceDatasource } from './azure-bicep-resource'; import { AzurePipelinesTasksDatasource } from './azure-pipelines-tasks'; -import { BitBucketTagsDatasource } from './bitbucket-tags'; +import { BitbucketTagsDatasource } from './bitbucket-tags'; import { CdnJsDatasource } from './cdnjs'; import { ClojureDatasource } from './clojure'; import { ConanDatasource } from './conan'; @@ -62,7 +62,7 @@ api.set(AwsMachineImageDataSource.id, new AwsMachineImageDataSource()); api.set(AwsRdsDataSource.id, new AwsRdsDataSource()); api.set(AzureBicepResourceDatasource.id, new AzureBicepResourceDatasource()); api.set(AzurePipelinesTasksDatasource.id, new AzurePipelinesTasksDatasource()); -api.set(BitBucketTagsDatasource.id, new BitBucketTagsDatasource()); +api.set(BitbucketTagsDatasource.id, new BitbucketTagsDatasource()); api.set(CdnJsDatasource.id, new CdnJsDatasource()); api.set(ClojureDatasource.id, new ClojureDatasource()); api.set(ConanDatasource.id, new ConanDatasource()); diff --git a/lib/modules/datasource/bitbucket-tags/index.spec.ts b/lib/modules/datasource/bitbucket-tags/index.spec.ts index 79ac0913e9f30b..d2340ea5791070 100644 --- a/lib/modules/datasource/bitbucket-tags/index.spec.ts +++ b/lib/modules/datasource/bitbucket-tags/index.spec.ts @@ -1,8 +1,8 @@ import { getDigest, getPkgReleases } from '..'; import * as httpMock from '../../../../test/http-mock'; -import { BitBucketTagsDatasource } from '.'; +import { BitbucketTagsDatasource } from '.'; -const datasource = BitBucketTagsDatasource.id; +const datasource = BitbucketTagsDatasource.id; describe('modules/datasource/bitbucket-tags/index', () => { describe('getReleases', () => { diff --git a/lib/modules/datasource/bitbucket-tags/index.ts b/lib/modules/datasource/bitbucket-tags/index.ts index ff5c436bf95b77..10407dce691651 100644 --- a/lib/modules/datasource/bitbucket-tags/index.ts +++ b/lib/modules/datasource/bitbucket-tags/index.ts @@ -7,8 +7,8 @@ import { Datasource } from '../datasource'; import type { DigestConfig, GetReleasesConfig, ReleaseResult } from '../types'; import type { BitbucketCommit, BitbucketTag } from './types'; -export class BitBucketTagsDatasource extends Datasource { - bitbucketHttp = new BitbucketHttp(BitBucketTagsDatasource.id); +export class BitbucketTagsDatasource extends Datasource { + bitbucketHttp = new BitbucketHttp(BitbucketTagsDatasource.id); static readonly id = 'bitbucket-tags'; @@ -18,10 +18,10 @@ export class BitBucketTagsDatasource extends Datasource { static readonly defaultRegistryUrls = ['https://bitbucket.org']; - static readonly cacheNamespace = `datasource-${BitBucketTagsDatasource.id}`; + static readonly cacheNamespace = `datasource-${BitbucketTagsDatasource.id}`; constructor() { - super(BitBucketTagsDatasource.id); + super(BitbucketTagsDatasource.id); } static getRegistryURL(registryUrl?: string): string { @@ -34,22 +34,22 @@ export class BitBucketTagsDatasource extends Datasource { repo: string, type: string ): string { - return `${BitBucketTagsDatasource.getRegistryURL( + return `${BitbucketTagsDatasource.getRegistryURL( registryUrl )}:${repo}:${type}`; } static getSourceUrl(packageName: string, registryUrl?: string): string { - const url = BitBucketTagsDatasource.getRegistryURL(registryUrl); + const url = BitbucketTagsDatasource.getRegistryURL(registryUrl); const normalizedUrl = ensureTrailingSlash(url); return `${normalizedUrl}${packageName}`; } // getReleases fetches list of tags for the repository @cache({ - namespace: BitBucketTagsDatasource.cacheNamespace, + namespace: BitbucketTagsDatasource.cacheNamespace, key: ({ registryUrl, packageName }: GetReleasesConfig) => - BitBucketTagsDatasource.getCacheKey(registryUrl, packageName, 'tags'), + BitbucketTagsDatasource.getCacheKey(registryUrl, packageName, 'tags'), }) async getReleases({ registryUrl, @@ -59,8 +59,8 @@ export class BitBucketTagsDatasource extends Datasource { const bitbucketTags = await utils.accumulateValues(url); const dependency: ReleaseResult = { - sourceUrl: BitBucketTagsDatasource.getSourceUrl(repo, registryUrl), - registryUrl: BitBucketTagsDatasource.getRegistryURL(registryUrl), + sourceUrl: BitbucketTagsDatasource.getSourceUrl(repo, registryUrl), + registryUrl: BitbucketTagsDatasource.getRegistryURL(registryUrl), releases: bitbucketTags.map(({ name, target }) => ({ version: name, gitRef: name, @@ -73,9 +73,9 @@ export class BitBucketTagsDatasource extends Datasource { // getTagCommit fetched the commit has for specified tag @cache({ - namespace: BitBucketTagsDatasource.cacheNamespace, + namespace: BitbucketTagsDatasource.cacheNamespace, key: (registryUrl: string | undefined, repo: string, tag: string): string => - BitBucketTagsDatasource.getCacheKey(registryUrl, repo, `tag-${tag}`), + BitbucketTagsDatasource.getCacheKey(registryUrl, repo, `tag-${tag}`), }) async getTagCommit( _registryUrl: string | undefined, @@ -91,9 +91,9 @@ export class BitBucketTagsDatasource extends Datasource { } @cache({ - namespace: BitBucketTagsDatasource.cacheNamespace, + namespace: BitbucketTagsDatasource.cacheNamespace, key: (registryUrl: string, repo: string) => - BitBucketTagsDatasource.getCacheKey(registryUrl, repo, 'mainbranch'), + BitbucketTagsDatasource.getCacheKey(registryUrl, repo, 'mainbranch'), ttlMinutes: 60, }) async getMainBranch(repo: string): Promise { @@ -107,9 +107,9 @@ export class BitBucketTagsDatasource extends Datasource { // getDigest fetched the latest commit for repository main branch // however, if newValue is provided, then getTagCommit is called @cache({ - namespace: BitBucketTagsDatasource.cacheNamespace, + namespace: BitbucketTagsDatasource.cacheNamespace, key: ({ registryUrl, packageName }: DigestConfig) => - BitBucketTagsDatasource.getCacheKey(registryUrl, packageName, 'digest'), + BitbucketTagsDatasource.getCacheKey(registryUrl, packageName, 'digest'), }) override async getDigest( { packageName: repo, registryUrl }: DigestConfig, diff --git a/lib/modules/datasource/go/base.ts b/lib/modules/datasource/go/base.ts index c8e8e557388392..55327a369c98b7 100644 --- a/lib/modules/datasource/go/base.ts +++ b/lib/modules/datasource/go/base.ts @@ -7,7 +7,7 @@ import * as hostRules from '../../../util/host-rules'; import { Http } from '../../../util/http'; import { regEx } from '../../../util/regex'; import { trimLeadingSlash, trimTrailingSlash } from '../../../util/url'; -import { BitBucketTagsDatasource } from '../bitbucket-tags'; +import { BitbucketTagsDatasource } from '../bitbucket-tags'; import { GitTagsDatasource } from '../git-tags'; import { GithubTagsDatasource } from '../github-tags'; import { GitlabTagsDatasource } from '../gitlab-tags'; @@ -53,7 +53,7 @@ export class BaseGoDatasource { const split = goModule.split('/'); const packageName = split[1] + '/' + split[2]; return { - datasource: BitBucketTagsDatasource.id, + datasource: BitbucketTagsDatasource.id, packageName, registryUrl: 'https://bitbucket.org', }; diff --git a/lib/modules/datasource/go/common.ts b/lib/modules/datasource/go/common.ts index 049478ba49748a..593eca50b7522f 100644 --- a/lib/modules/datasource/go/common.ts +++ b/lib/modules/datasource/go/common.ts @@ -1,5 +1,5 @@ import { getSourceUrl as githubSourceUrl } from '../../../util/github/url'; -import { BitBucketTagsDatasource } from '../bitbucket-tags'; +import { BitbucketTagsDatasource } from '../bitbucket-tags'; import { GithubTagsDatasource } from '../github-tags'; import { GitlabTagsDatasource } from '../gitlab-tags'; import { getSourceUrl as gitlabSourceUrl } from '../gitlab-tags/util'; @@ -24,8 +24,8 @@ export function getSourceUrl( return gitlabSourceUrl(packageName, registryUrl); } - if (datasource === BitBucketTagsDatasource.id) { - return BitBucketTagsDatasource.getSourceUrl(packageName, registryUrl); + if (datasource === BitbucketTagsDatasource.id) { + return BitbucketTagsDatasource.getSourceUrl(packageName, registryUrl); } } diff --git a/lib/modules/datasource/go/index.ts b/lib/modules/datasource/go/index.ts index 89fcff28f1802c..4da9a69ae2bf8d 100644 --- a/lib/modules/datasource/go/index.ts +++ b/lib/modules/datasource/go/index.ts @@ -3,7 +3,7 @@ import { cache } from '../../../util/cache/package/decorator'; import { regEx } from '../../../util/regex'; import { addSecretForSanitizing } from '../../../util/sanitize'; import { parseUrl } from '../../../util/url'; -import { BitBucketTagsDatasource } from '../bitbucket-tags'; +import { BitbucketTagsDatasource } from '../bitbucket-tags'; import { Datasource } from '../datasource'; import { GitTagsDatasource } from '../git-tags'; import { GithubTagsDatasource } from '../github-tags'; @@ -76,7 +76,7 @@ export class GoDatasource extends Datasource { case GithubTagsDatasource.id: { return this.direct.github.getDigest(source, tag); } - case BitBucketTagsDatasource.id: { + case BitbucketTagsDatasource.id: { return this.direct.bitbucket.getDigest?.(source, tag) ?? null; } case GitlabTagsDatasource.id: { diff --git a/lib/modules/datasource/go/releases-direct.ts b/lib/modules/datasource/go/releases-direct.ts index 07171bef6fda1a..b9fb0b61301cd4 100644 --- a/lib/modules/datasource/go/releases-direct.ts +++ b/lib/modules/datasource/go/releases-direct.ts @@ -1,7 +1,7 @@ import { logger } from '../../../logger'; import { cache } from '../../../util/cache/package/decorator'; import { regEx } from '../../../util/regex'; -import { BitBucketTagsDatasource } from '../bitbucket-tags'; +import { BitbucketTagsDatasource } from '../bitbucket-tags'; import { Datasource } from '../datasource'; import { GitTagsDatasource } from '../git-tags'; import { GithubTagsDatasource } from '../github-tags'; @@ -16,14 +16,14 @@ export class GoDirectDatasource extends Datasource { git: GitTagsDatasource; github: GithubTagsDatasource; gitlab: GitlabTagsDatasource; - bitbucket: BitBucketTagsDatasource; + bitbucket: BitbucketTagsDatasource; constructor() { super(GoDirectDatasource.id); this.git = new GitTagsDatasource(); this.github = new GithubTagsDatasource(); this.gitlab = new GitlabTagsDatasource(); - this.bitbucket = new BitBucketTagsDatasource(); + this.bitbucket = new BitbucketTagsDatasource(); } /** @@ -70,7 +70,7 @@ export class GoDirectDatasource extends Datasource { res = await this.gitlab.getReleases(source); break; } - case BitBucketTagsDatasource.id: { + case BitbucketTagsDatasource.id: { res = await this.bitbucket.getReleases(source); break; } diff --git a/lib/modules/manager/bitbucket-pipelines/extract.ts b/lib/modules/manager/bitbucket-pipelines/extract.ts index 967bf2f9732325..f033e89c2a2c6a 100644 --- a/lib/modules/manager/bitbucket-pipelines/extract.ts +++ b/lib/modules/manager/bitbucket-pipelines/extract.ts @@ -1,6 +1,6 @@ import { logger } from '../../../logger'; import { newlineRegex, regEx } from '../../../util/regex'; -import { BitBucketTagsDatasource } from '../../datasource/bitbucket-tags'; +import { BitbucketTagsDatasource } from '../../datasource/bitbucket-tags'; import { getDep } from '../dockerfile/extract'; import type { PackageDependency, PackageFileContent } from '../types'; @@ -47,7 +47,7 @@ function addDepAsBitbucketTag( const dep: PackageDependency = { depName, currentValue, - datasource: BitBucketTagsDatasource.id, + datasource: BitbucketTagsDatasource.id, }; dep.depType = 'bitbucket-tags'; deps.push(dep); diff --git a/lib/modules/manager/deps-edn/extract.ts b/lib/modules/manager/deps-edn/extract.ts index e3ddc9df7ac2d6..1684aba2acf2bf 100644 --- a/lib/modules/manager/deps-edn/extract.ts +++ b/lib/modules/manager/deps-edn/extract.ts @@ -1,6 +1,6 @@ import is from '@sindresorhus/is'; import { regEx } from '../../../util/regex'; -import { BitBucketTagsDatasource } from '../../datasource/bitbucket-tags'; +import { BitbucketTagsDatasource } from '../../datasource/bitbucket-tags'; import { ClojureDatasource } from '../../datasource/clojure'; import { CLOJARS_REPO } from '../../datasource/clojure/common'; import { GitRefsDatasource } from '../../datasource/git-refs'; @@ -66,7 +66,7 @@ function resolveGitPackageFromEdnKey( const bitbucketDependencyGroups = bitbucketDependencyRegex.exec(key)?.groups; if (bitbucketDependencyGroups?.packageName) { - dep.datasource = BitBucketTagsDatasource.id; + dep.datasource = BitbucketTagsDatasource.id; dep.packageName = bitbucketDependencyGroups.packageName; return; } diff --git a/lib/modules/manager/flux/extract.spec.ts b/lib/modules/manager/flux/extract.spec.ts index c4a77cf7f64c42..6e8b4694637ab0 100644 --- a/lib/modules/manager/flux/extract.spec.ts +++ b/lib/modules/manager/flux/extract.spec.ts @@ -2,7 +2,7 @@ import { codeBlock } from 'common-tags'; import { Fixtures } from '../../../../test/fixtures'; import { GlobalConfig } from '../../../config/global'; import type { RepoGlobalConfig } from '../../../config/types'; -import { BitBucketTagsDatasource } from '../../datasource/bitbucket-tags'; +import { BitbucketTagsDatasource } from '../../datasource/bitbucket-tags'; import { DockerDatasource } from '../../datasource/docker'; import { GitRefsDatasource } from '../../datasource/git-refs'; import { GitTagsDatasource } from '../../datasource/git-tags'; @@ -455,7 +455,7 @@ describe('modules/manager/flux/extract', () => { deps: [ { currentValue: '2020.5.6+staging.ze', - datasource: BitBucketTagsDatasource.id, + datasource: BitbucketTagsDatasource.id, depName: 'renovate-repo', packageName: 'renovatebot/renovate', sourceUrl: 'https://bitbucket.org/renovatebot/renovate', diff --git a/lib/modules/manager/flux/extract.ts b/lib/modules/manager/flux/extract.ts index 91db3749a90c17..41bc404242f4ac 100644 --- a/lib/modules/manager/flux/extract.ts +++ b/lib/modules/manager/flux/extract.ts @@ -2,7 +2,7 @@ import { loadAll } from 'js-yaml'; import { logger } from '../../../logger'; import { readLocalFile } from '../../../util/fs'; import { regEx } from '../../../util/regex'; -import { BitBucketTagsDatasource } from '../../datasource/bitbucket-tags'; +import { BitbucketTagsDatasource } from '../../datasource/bitbucket-tags'; import { GitRefsDatasource } from '../../datasource/git-refs'; import { GitTagsDatasource } from '../../datasource/git-tags'; import { GithubReleasesDatasource } from '../../datasource/github-releases'; @@ -130,7 +130,7 @@ function resolveGitRepositoryPerSourceTag( const bitbucketMatchGroups = bitbucketUrlRegex.exec(gitUrl)?.groups; if (bitbucketMatchGroups) { - dep.datasource = BitBucketTagsDatasource.id; + dep.datasource = BitbucketTagsDatasource.id; dep.packageName = bitbucketMatchGroups.packageName; dep.sourceUrl = `https://bitbucket.org/${dep.packageName}`; return; diff --git a/lib/modules/manager/flux/index.ts b/lib/modules/manager/flux/index.ts index af5907558b3e20..58d21b8673d27f 100644 --- a/lib/modules/manager/flux/index.ts +++ b/lib/modules/manager/flux/index.ts @@ -1,4 +1,4 @@ -import { BitBucketTagsDatasource } from '../../datasource/bitbucket-tags'; +import { BitbucketTagsDatasource } from '../../datasource/bitbucket-tags'; import { DockerDatasource } from '../../datasource/docker'; import { GitRefsDatasource } from '../../datasource/git-refs'; import { GitTagsDatasource } from '../../datasource/git-tags'; @@ -21,7 +21,7 @@ export const supportedDatasources = [ GithubTagsDatasource.id, GitlabTagsDatasource.id, GitTagsDatasource.id, - BitBucketTagsDatasource.id, + BitbucketTagsDatasource.id, HelmDatasource.id, DockerDatasource.id, ]; diff --git a/lib/modules/manager/terraform/extractors/others/modules.ts b/lib/modules/manager/terraform/extractors/others/modules.ts index 82835cd6745f08..3eba9cc81aa02c 100644 --- a/lib/modules/manager/terraform/extractors/others/modules.ts +++ b/lib/modules/manager/terraform/extractors/others/modules.ts @@ -1,7 +1,7 @@ import is from '@sindresorhus/is'; import { logger } from '../../../../../logger'; import { regEx } from '../../../../../util/regex'; -import { BitBucketTagsDatasource } from '../../../../datasource/bitbucket-tags'; +import { BitbucketTagsDatasource } from '../../../../datasource/bitbucket-tags'; import { GitTagsDatasource } from '../../../../datasource/git-tags'; import { GithubTagsDatasource } from '../../../../datasource/github-tags'; import { TerraformModuleDatasource } from '../../../../datasource/terraform-module'; @@ -78,7 +78,7 @@ export class ModuleExtractor extends DependencyExtractor { bitbucketRefMatch.groups.project; dep.packageName = dep.depName; dep.currentValue = bitbucketRefMatch.groups.tag; - dep.datasource = BitBucketTagsDatasource.id; + dep.datasource = BitbucketTagsDatasource.id; } else if (azureDevOpsSshRefMatch?.groups) { dep.depType = 'module'; dep.depName = `${azureDevOpsSshRefMatch.groups.organization}/${azureDevOpsSshRefMatch.groups.project}/${azureDevOpsSshRefMatch.groups.repository}${azureDevOpsSshRefMatch.groups.modulepath}`; diff --git a/lib/modules/manager/terraform/index.ts b/lib/modules/manager/terraform/index.ts index 06aedc5420739c..d429e781909add 100644 --- a/lib/modules/manager/terraform/index.ts +++ b/lib/modules/manager/terraform/index.ts @@ -1,4 +1,4 @@ -import { BitBucketTagsDatasource } from '../../datasource/bitbucket-tags'; +import { BitbucketTagsDatasource } from '../../datasource/bitbucket-tags'; import { DockerDatasource } from '../../datasource/docker'; import { GitTagsDatasource } from '../../datasource/git-tags'; import { GithubReleasesDatasource } from '../../datasource/github-releases'; @@ -12,7 +12,7 @@ export { updateLockedDependency } from './lockfile/update-locked'; export { extractPackageFile } from './extract'; export const supportedDatasources = [ - BitBucketTagsDatasource.id, + BitbucketTagsDatasource.id, DockerDatasource.id, GitTagsDatasource.id, GithubTagsDatasource.id, diff --git a/lib/modules/platform/bitbucket-server/index.ts b/lib/modules/platform/bitbucket-server/index.ts index acdc8bd71fce18..47fecb5852cb1d 100644 --- a/lib/modules/platform/bitbucket-server/index.ts +++ b/lib/modules/platform/bitbucket-server/index.ts @@ -148,7 +148,7 @@ export async function getJsonFile( return JSON5.parse(raw); } -// Initialize BitBucket Server by getting base branch +// Initialize Bitbucket Server by getting base branch export async function initRepo({ repository, cloneSubmodules, diff --git a/lib/modules/platform/bitbucket/comments.ts b/lib/modules/platform/bitbucket/comments.ts index d077fb583f44e3..6aefe689edf3c5 100644 --- a/lib/modules/platform/bitbucket/comments.ts +++ b/lib/modules/platform/bitbucket/comments.ts @@ -13,7 +13,7 @@ interface Comment { export type CommentsConfig = Pick; -interface EnsureBitBucketCommentConfig extends EnsureCommentConfig { +interface EnsureBitbucketCommentConfig extends EnsureCommentConfig { config: CommentsConfig; } @@ -71,7 +71,7 @@ export async function ensureComment({ number: prNo, topic, content, -}: EnsureBitBucketCommentConfig): Promise { +}: EnsureBitbucketCommentConfig): Promise { try { const comments = await getComments(config, prNo); let body: string; diff --git a/lib/modules/platform/bitbucket/index.md b/lib/modules/platform/bitbucket/index.md index 1985939353564e..7b8da4676f7972 100644 --- a/lib/modules/platform/bitbucket/index.md +++ b/lib/modules/platform/bitbucket/index.md @@ -28,4 +28,4 @@ Remember to: ## Unsupported platform features/concepts - Adding assignees to PRs not supported (does not seem to be a Bitbucket concept) -- `automergeStrategy=rebase` not supported by BitBucket Cloud, see [Jira issue BCLOUD-16610](https://jira.atlassian.com/browse/BCLOUD-16610) +- `automergeStrategy=rebase` not supported by Bitbucket Cloud, see [Jira issue BCLOUD-16610](https://jira.atlassian.com/browse/BCLOUD-16610) From 3de8d6c5341b1604d505ab0ced4e2363b82f6468 Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Fri, 17 Mar 2023 15:06:32 +0100 Subject: [PATCH 193/228] fix(auto-replace): handle missing depName or packageName values (#21005) --- lib/workers/repository/update/branch/auto-replace.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/workers/repository/update/branch/auto-replace.ts b/lib/workers/repository/update/branch/auto-replace.ts index 8b9ee4967cd2f5..dd227fc711e582 100644 --- a/lib/workers/repository/update/branch/auto-replace.ts +++ b/lib/workers/repository/update/branch/auto-replace.ts @@ -103,7 +103,13 @@ export async function confirmIfDepUpdated( function getDepsSignature(deps: PackageDependency[]): string { // TODO: types (#7154) - return deps.map((dep) => `${dep.depName!}${dep.packageName!}`).join(','); + return deps + .map( + (dep) => + `${(dep.depName ?? dep.packageName)!}${(dep.packageName ?? + dep.depName)!}` + ) + .join(','); } export async function checkBranchDepsMatchBaseDeps( From 3c9cb362490c7cc3430f94260c43524419abe1ff Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 17 Mar 2023 14:16:09 +0000 Subject: [PATCH 194/228] chore(deps): update dependency lint-staged to v13.2.0 (#21006) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 14 ++++---------- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index 12033ba24b0692..949da066b53a5e 100644 --- a/package.json +++ b/package.json @@ -315,7 +315,7 @@ "jest-extended": "3.2.4", "jest-junit": "15.0.0", "jest-mock-extended": "3.0.3", - "lint-staged": "13.1.4", + "lint-staged": "13.2.0", "markdownlint-cli2": "0.6.0", "memfs": "3.4.13", "mock-fs": "5.2.0", diff --git a/yarn.lock b/yarn.lock index 781e87329d41b3..60571a53e3c296 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7066,10 +7066,10 @@ linkify-it@^4.0.1: dependencies: uc.micro "^1.0.1" -lint-staged@13.1.4: - version "13.1.4" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.1.4.tgz#23969fea0bd89f266cb07227b2c9185e44e5b6fd" - integrity sha512-pJRmnRA4I4Rcc1k9GZIh9LQJlolCVDHqtJpIgPY7t99XY3uXXmUeDfhRLELYLgUFJPmEsWevTqarex9acSfx2A== +lint-staged@13.2.0: + version "13.2.0" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.2.0.tgz#b7abaf79c91cd36d824f17b23a4ce5209206126a" + integrity sha512-GbyK5iWinax5Dfw5obm2g2ccUiZXNGtAS4mCbJ0Lv4rq6iEtfBSjOYdcbOtAIFtM114t0vdpViDDetjVTSd8Vw== dependencies: chalk "5.2.0" cli-truncate "^3.1.0" @@ -7083,7 +7083,6 @@ lint-staged@13.1.4: object-inspect "^1.12.3" pidtree "^0.6.0" string-argv "^0.3.1" - supports-color "9.3.1" yaml "^2.2.1" listr2@^5.0.7: @@ -9659,11 +9658,6 @@ strnum@^1.0.5: resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db" integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA== -supports-color@9.3.1: - version "9.3.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-9.3.1.tgz#34e4ad3c71c9a39dae3254ecc46c9b74e89e15a6" - integrity sha512-knBY82pjmnIzK3NifMo3RxEIRD9E0kIzV4BKcyTZ9+9kWgLMxd4PrsTSMoFQUabgRBbF8KOLRDCyKgNV+iK44Q== - supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" From b9e129ce97479ef968e03e651d79b561e9946b2a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 17 Mar 2023 19:27:42 +0000 Subject: [PATCH 195/228] chore(deps): update node.js to 85f7a97 (#21014) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .devcontainer/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 1238fd950f12a2..f77db1f9bf4ae4 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,4 +1,4 @@ -FROM containerbase/node:18.15.0@sha256:0359d0e4bac80ee84d104f347ec86d88f4df631bfa6b16c9254fc9daffe6ec9b +FROM containerbase/node:18.15.0@sha256:85f7a978d6273bda9942b95f477322d4e3627d57008f93fa3927377f5e808568 USER root From 20459cc59ba3460d23454c830d12c230d16bd2b6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 17 Mar 2023 22:53:54 +0000 Subject: [PATCH 196/228] chore(deps): update dependency eslint to v8.36.0 (#21016) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 42 +++++++++++++++++++++++++++--------------- 2 files changed, 28 insertions(+), 16 deletions(-) diff --git a/package.json b/package.json index 949da066b53a5e..f3d0f0e930d0bb 100644 --- a/package.json +++ b/package.json @@ -298,7 +298,7 @@ "cross-env": "7.0.3", "diff": "5.1.0", "emojibase-data": "7.0.1", - "eslint": "8.35.0", + "eslint": "8.36.0", "eslint-config-prettier": "8.7.0", "eslint-formatter-gha": "1.4.2", "eslint-import-resolver-typescript": "3.5.3", diff --git a/yarn.lock b/yarn.lock index 60571a53e3c296..e3d4f063bafc0a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1574,7 +1574,19 @@ dependencies: "@jridgewell/trace-mapping" "0.3.9" -"@eslint/eslintrc@^2.0.0": +"@eslint-community/eslint-utils@^4.2.0": + version "4.3.0" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.3.0.tgz#a556790523a351b4e47e9d385f47265eaaf9780a" + integrity sha512-v3oplH6FYCULtFuCeqyuTd9D2WKO937Dxdq+GmHOLL72TTRriLxz2VLlNfkZRsvj6PKnOPAtuT6dwrs/pA5DvA== + dependencies: + eslint-visitor-keys "^3.3.0" + +"@eslint-community/regexpp@^4.4.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.4.0.tgz#3e61c564fcd6b921cb789838631c5ee44df09403" + integrity sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ== + +"@eslint/eslintrc@^2.0.1": version "2.0.1" resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.1.tgz#7888fe7ec8f21bc26d646dbd2c11cd776e21192d" integrity sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw== @@ -1589,10 +1601,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.35.0": - version "8.35.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.35.0.tgz#b7569632b0b788a0ca0e438235154e45d42813a7" - integrity sha512-JXdzbRiWclLVoD8sNUjR443VVlYqiYmDVT6rGUEIEHU5YJW0gaVZwV2xgM7D4arkvASqD0IlLUVjHiFuxaftRw== +"@eslint/js@8.36.0": + version "8.36.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.36.0.tgz#9837f768c03a1e4a30bd304a64fb8844f0e72efe" + integrity sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg== "@gar/promisify@^1.1.3": version "1.1.3" @@ -5004,13 +5016,15 @@ eslint-visitor-keys@^3.3.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== -eslint@8.35.0: - version "8.35.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.35.0.tgz#fffad7c7e326bae606f0e8f436a6158566d42323" - integrity sha512-BxAf1fVL7w+JLRQhWl2pzGeSiGqbWumV4WNvc9Rhp6tiCtm4oHnyPBSEtMGZwrQgudFQ+otqzWoPB7x+hxoWsw== +eslint@8.36.0: + version "8.36.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.36.0.tgz#1bd72202200a5492f91803b113fb8a83b11285cf" + integrity sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw== dependencies: - "@eslint/eslintrc" "^2.0.0" - "@eslint/js" "8.35.0" + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.4.0" + "@eslint/eslintrc" "^2.0.1" + "@eslint/js" "8.36.0" "@humanwhocodes/config-array" "^0.11.8" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" @@ -5021,9 +5035,8 @@ eslint@8.35.0: doctrine "^3.0.0" escape-string-regexp "^4.0.0" eslint-scope "^7.1.1" - eslint-utils "^3.0.0" eslint-visitor-keys "^3.3.0" - espree "^9.4.0" + espree "^9.5.0" esquery "^1.4.2" esutils "^2.0.2" fast-deep-equal "^3.1.3" @@ -5045,12 +5058,11 @@ eslint@8.35.0: minimatch "^3.1.2" natural-compare "^1.4.0" optionator "^0.9.1" - regexpp "^3.2.0" strip-ansi "^6.0.1" strip-json-comments "^3.1.0" text-table "^0.2.0" -espree@^9.4.0, espree@^9.5.0: +espree@^9.5.0: version "9.5.0" resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.0.tgz#3646d4e3f58907464edba852fa047e6a27bdf113" integrity sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw== From 48e37930b3d007208f2c3f4b936cf8dde85128f7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 18 Mar 2023 04:36:52 +0000 Subject: [PATCH 197/228] chore(deps): update node.js to a016596 (#21018) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .devcontainer/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index f77db1f9bf4ae4..2c053beb779e23 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,4 +1,4 @@ -FROM containerbase/node:18.15.0@sha256:85f7a978d6273bda9942b95f477322d4e3627d57008f93fa3927377f5e808568 +FROM containerbase/node:18.15.0@sha256:a016596a25881969543284c8e1d54b9ed08175ab03a99520a8950914d60a0acc USER root From 1f22ed2a0e4272e285358632e43b85d3799efa98 Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Sat, 18 Mar 2023 08:57:00 +0100 Subject: [PATCH 198/228] chore: downgrade cached etag log to trace --- lib/modules/datasource/npm/get.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/modules/datasource/npm/get.ts b/lib/modules/datasource/npm/get.ts index 4a66f58f519983..d883f777f9b8ce 100644 --- a/lib/modules/datasource/npm/get.ts +++ b/lib/modules/datasource/npm/get.ts @@ -99,7 +99,7 @@ export async function getDependency( try { const options: HttpOptions = {}; if (cachedResult?.cacheData?.etag) { - logger.debug('Using cached etag'); + logger.trace({ packageName }, 'Using cached etag'); options.headers = { 'If-None-Match': cachedResult.cacheData.etag }; } const raw = await http.getJson(packageUrl, options); From 712fc31fc75477d7b460de344d109c7c39094d2a Mon Sep 17 00:00:00 2001 From: HonkingGoose <34918129+HonkingGoose@users.noreply.github.com> Date: Sat, 18 Mar 2023 14:40:13 +0100 Subject: [PATCH 199/228] docs(go modules): vendored major upgrades not supported (#21025) --- docs/usage/golang.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/usage/golang.md b/docs/usage/golang.md index ed75cbd47eb029..705e294f208096 100644 --- a/docs/usage/golang.md +++ b/docs/usage/golang.md @@ -47,6 +47,11 @@ The reason for this is that a `go mod tidy` command may make changes to `go.mod` Vendoring of Go Modules is done automatically if `vendor/modules.txt` is present. Renovate will commit all files changed within the `vendor/` folder. + +!!! note + Renovate does not support vendoring major upgrades of Go modules. + Follow issue [#21010](https://github.com/renovatebot/renovate/issues/21010). + ### Go binary version By default, Renovate will keep up with the latest version of the `go` binary. From 42b0e102e4c200d1323ccf3b4566c1328ac4cae2 Mon Sep 17 00:00:00 2001 From: Sergei Zharinov Date: Sat, 18 Mar 2023 17:52:01 +0300 Subject: [PATCH 200/228] feat(github): Don't store `updatedAt` field in GraphQL cache record (#21024) --- .../abstract-cache-strategy.ts | 40 +++++++++++-------- .../memory-cache-strategy.spec.ts | 13 +----- .../package-cache-strategy.spec.ts | 30 ++++++++------ .../package-cache-strategy.ts | 24 ++++++----- lib/util/github/graphql/readme.md | 2 - lib/util/github/graphql/types.ts | 1 - 6 files changed, 55 insertions(+), 55 deletions(-) diff --git a/lib/util/github/graphql/cache-strategies/abstract-cache-strategy.ts b/lib/util/github/graphql/cache-strategies/abstract-cache-strategy.ts index 3e2de9f2898e12..07a29b0d126de6 100644 --- a/lib/util/github/graphql/cache-strategies/abstract-cache-strategy.ts +++ b/lib/util/github/graphql/cache-strategies/abstract-cache-strategy.ts @@ -1,3 +1,4 @@ +import { dequal } from 'dequal'; import { DateTime } from 'luxon'; import type { GithubDatasourceItem, @@ -35,7 +36,20 @@ export abstract class AbstractGithubGraphqlCacheStrategy< */ private items: Record | undefined; protected createdAt = this.now; - protected updatedAt = this.now; + + /** + * This flag helps to indicate whether the cache record + * should be persisted after the current cache access cycle. + */ + protected hasUpdatedItems = false; + + /** + * Loading and persisting data is delegated to the concrete strategy. + */ + abstract load(): Promise | undefined>; + abstract persist( + cacheRecord: GithubGraphqlCacheRecord + ): Promise; constructor( protected readonly cacheNs: string, @@ -54,7 +68,6 @@ export abstract class AbstractGithubGraphqlCacheStrategy< let result: GithubGraphqlCacheRecord = { items: {}, createdAt: this.createdAt.toISO(), - updatedAt: this.updatedAt.toISO(), }; const storedData = await this.load(); @@ -68,7 +81,6 @@ export abstract class AbstractGithubGraphqlCacheStrategy< } this.createdAt = DateTime.fromISO(result.createdAt); - this.updatedAt = DateTime.fromISO(result.updatedAt); this.items = result.items; return this.items; } @@ -99,8 +111,14 @@ export abstract class AbstractGithubGraphqlCacheStrategy< // If we reached previously stored item that is stabilized, // we assume the further pagination will not yield any new items. const oldItem = cachedItems[version]; - if (oldItem && this.isStabilized(oldItem)) { - isPaginationDone = true; + if (oldItem) { + if (this.isStabilized(oldItem)) { + isPaginationDone = true; + } + + if (!dequal(oldItem, item)) { + this.hasUpdatedItems = true; + } } cachedItems[version] = item; @@ -129,23 +147,11 @@ export abstract class AbstractGithubGraphqlCacheStrategy< return Object.values(resultItems); } - /** - * Update `updatedAt` field and persist the data. - */ private async store(cachedItems: Record): Promise { const cacheRecord: GithubGraphqlCacheRecord = { items: cachedItems, createdAt: this.createdAt.toISO(), - updatedAt: this.now.toISO(), }; await this.persist(cacheRecord); } - - /** - * Loading and persisting data is delegated to the concrete strategy. - */ - abstract load(): Promise | undefined>; - abstract persist( - cacheRecord: GithubGraphqlCacheRecord - ): Promise; } diff --git a/lib/util/github/graphql/cache-strategies/memory-cache-strategy.spec.ts b/lib/util/github/graphql/cache-strategies/memory-cache-strategy.spec.ts index a5479a547a7db6..96e88b48bf4ca3 100644 --- a/lib/util/github/graphql/cache-strategies/memory-cache-strategy.spec.ts +++ b/lib/util/github/graphql/cache-strategies/memory-cache-strategy.spec.ts @@ -26,7 +26,6 @@ describe('util/github/graphql/cache-strategies/memory-cache-strategy', () => { const cacheRecord: CacheRecord = { items, createdAt: isoTs('2022-10-01 15:30'), - updatedAt: isoTs('2022-10-30 12:35'), }; memCache.set('github-graphql-cache:foo:bar', clone(cacheRecord)); @@ -40,10 +39,7 @@ describe('util/github/graphql/cache-strategies/memory-cache-strategy', () => { expect(res).toEqual(Object.values(items)); expect(isPaginationDone).toBe(true); - expect(memCache.get('github-graphql-cache:foo:bar')).toEqual({ - ...cacheRecord, - updatedAt: isoTs(now), - }); + expect(memCache.get('github-graphql-cache:foo:bar')).toEqual(cacheRecord); // One second later, the cache is invalid now = '2022-10-31 15:30:00'; @@ -58,7 +54,6 @@ describe('util/github/graphql/cache-strategies/memory-cache-strategy', () => { expect(memCache.get('github-graphql-cache:foo:bar')).toEqual({ items: {}, createdAt: isoTs(now), - updatedAt: isoTs(now), }); }); @@ -71,7 +66,6 @@ describe('util/github/graphql/cache-strategies/memory-cache-strategy', () => { const cacheRecord: CacheRecord = { items: oldItems, createdAt: isoTs('2022-10-30 12:00'), - updatedAt: isoTs('2022-10-30 12:00'), }; memCache.set('github-graphql-cache:foo:bar', clone(cacheRecord)); @@ -96,7 +90,6 @@ describe('util/github/graphql/cache-strategies/memory-cache-strategy', () => { '4': newItem, }, createdAt: isoTs('2022-10-30 12:00'), - updatedAt: isoTs(now), }); }); @@ -109,7 +102,6 @@ describe('util/github/graphql/cache-strategies/memory-cache-strategy', () => { const cacheRecord: CacheRecord = { items: oldItems, createdAt: isoTs('2022-10-30 12:00'), - updatedAt: isoTs('2022-10-30 12:00'), }; memCache.set('github-graphql-cache:foo:bar', clone(cacheRecord)); @@ -136,7 +128,6 @@ describe('util/github/graphql/cache-strategies/memory-cache-strategy', () => { const cacheRecord: CacheRecord = { items: oldItems, createdAt: isoTs('2022-12-31 12:00'), - updatedAt: isoTs('2022-12-31 12:00'), }; memCache.set('github-graphql-cache:foo:bar', clone(cacheRecord)); @@ -181,7 +172,6 @@ describe('util/github/graphql/cache-strategies/memory-cache-strategy', () => { const cacheRecord: CacheRecord = { items, createdAt: isoTs('2022-10-30 12:00'), - updatedAt: isoTs('2022-10-30 12:00'), }; memCache.set('github-graphql-cache:foo:bar', clone(cacheRecord)); @@ -219,7 +209,6 @@ describe('util/github/graphql/cache-strategies/memory-cache-strategy', () => { '8': { version: '8', releaseTimestamp: isoTs('2022-10-08 10:00') }, }, createdAt: isoTs('2022-10-30 12:00'), - updatedAt: isoTs('2022-10-31 15:30'), }); }); }); diff --git a/lib/util/github/graphql/cache-strategies/package-cache-strategy.spec.ts b/lib/util/github/graphql/cache-strategies/package-cache-strategy.spec.ts index 0e2f3f6c8ba6d2..ea2809c2e0a8c4 100644 --- a/lib/util/github/graphql/cache-strategies/package-cache-strategy.spec.ts +++ b/lib/util/github/graphql/cache-strategies/package-cache-strategy.spec.ts @@ -18,46 +18,52 @@ describe('util/github/graphql/cache-strategies/package-cache-strategy', () => { const cacheSet = jest.spyOn(packageCache, 'set'); it('reconciles old cache record with new items', async () => { + const item1 = { version: '1', releaseTimestamp: isoTs('2020-01-01 10:00') }; + const item2 = { version: '2', releaseTimestamp: isoTs('2020-01-01 11:00') }; + const item3 = { version: '3', releaseTimestamp: isoTs('2020-01-01 12:00') }; + const oldItems = { - '1': { version: '1', releaseTimestamp: isoTs('2020-01-01 10:00') }, - '2': { version: '2', releaseTimestamp: isoTs('2020-01-01 11:00') }, - '3': { version: '3', releaseTimestamp: isoTs('2020-01-01 12:00') }, + '1': item1, + '2': item2, + '3': item3, }; const cacheRecord: CacheRecord = { items: oldItems, createdAt: isoTs('2022-10-15 12:00'), - updatedAt: isoTs('2022-10-15 12:00'), }; cacheGet.mockResolvedValueOnce(clone(cacheRecord)); const now = '2022-10-30 12:00'; mockTime(now); + const updatedItem = { + ...item3, + releaseTimestamp: isoTs('2020-01-01 12:30'), + }; const newItem = { version: '4', releaseTimestamp: isoTs('2022-10-15 18:00'), }; - const page = [newItem]; + const page = [newItem, updatedItem]; const strategy = new GithubGraphqlPackageCacheStrategy('foo', 'bar'); const isPaginationDone = await strategy.reconcile(page); const res = await strategy.finalize(); - expect(res).toEqual([...Object.values(oldItems), newItem]); - expect(isPaginationDone).toBe(false); + expect(res).toEqual([item1, item2, updatedItem, newItem]); + expect(isPaginationDone).toBe(true); expect(cacheSet.mock.calls).toEqual([ [ 'foo', 'bar', { items: { - '1': { version: '1', releaseTimestamp: isoTs('2020-01-01 10:00') }, - '2': { version: '2', releaseTimestamp: isoTs('2020-01-01 11:00') }, - '3': { version: '3', releaseTimestamp: isoTs('2020-01-01 12:00') }, - '4': { version: '4', releaseTimestamp: isoTs('2022-10-15 18:00') }, + '1': item1, + '2': item2, + '3': updatedItem, + '4': newItem, }, createdAt: isoTs('2022-10-15 12:00'), - updatedAt: isoTs('2022-10-30 12:00'), }, 15 * 24 * 60, ], diff --git a/lib/util/github/graphql/cache-strategies/package-cache-strategy.ts b/lib/util/github/graphql/cache-strategies/package-cache-strategy.ts index 4bafebda533523..1de0b93b52312d 100644 --- a/lib/util/github/graphql/cache-strategies/package-cache-strategy.ts +++ b/lib/util/github/graphql/cache-strategies/package-cache-strategy.ts @@ -15,17 +15,19 @@ export class GithubGraphqlPackageCacheStrategy< async persist( cacheRecord: GithubGraphqlCacheRecord ): Promise { - const expiry = this.createdAt.plus({ - days: AbstractGithubGraphqlCacheStrategy.cacheTTLDays, - }); - const ttlMinutes = expiry.diff(this.now, ['minutes']).as('minutes'); - if (ttlMinutes && ttlMinutes > 0) { - await packageCache.set( - this.cacheNs, - this.cacheKey, - cacheRecord, - ttlMinutes - ); + if (this.hasUpdatedItems) { + const expiry = this.createdAt.plus({ + days: AbstractGithubGraphqlCacheStrategy.cacheTTLDays, + }); + const ttlMinutes = expiry.diff(this.now, ['minutes']).as('minutes'); + if (ttlMinutes && ttlMinutes > 0) { + await packageCache.set( + this.cacheNs, + this.cacheKey, + cacheRecord, + ttlMinutes + ); + } } } } diff --git a/lib/util/github/graphql/readme.md b/lib/util/github/graphql/readme.md index 002a45c11530c1..6a094e4cbf7f6d 100644 --- a/lib/util/github/graphql/readme.md +++ b/lib/util/github/graphql/readme.md @@ -99,7 +99,6 @@ As we retrieve items during the fetch process, we gradually construct a data str "2.0.0": { "version": "2.0.0", "releaseTimestamp": "2022-09-01" }, }, "createdAt": "2022-12-20", - "updatedAt": "2022-12-20", } ``` @@ -159,7 +158,6 @@ Given we performed fetch at the day of latest release, new cache looks like: "2.0.0": { "version": "2.0.0", "releaseTimestamp": "2022-09-01" }, }, "createdAt": "2022-12-20", - "updatedAt": "2022-12-30", } ``` diff --git a/lib/util/github/graphql/types.ts b/lib/util/github/graphql/types.ts index 7bcfa4ec4adb35..1fbbca8bd8f12c 100644 --- a/lib/util/github/graphql/types.ts +++ b/lib/util/github/graphql/types.ts @@ -92,7 +92,6 @@ export interface GithubGraphqlCacheRecord< > { items: Record; createdAt: string; - updatedAt: string; } export interface GithubGraphqlCacheStrategy< From cf8619aaacc68fbd2084b67a104b08d8284fc475 Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Sat, 18 Mar 2023 19:44:56 +0100 Subject: [PATCH 201/228] chore(logs): lower lookup logging (#21027) --- lib/modules/datasource/npm/get.ts | 2 +- lib/workers/repository/process/lookup/filter-checks.ts | 6 +++--- lib/workers/repository/updates/branch-name.ts | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/modules/datasource/npm/get.ts b/lib/modules/datasource/npm/get.ts index d883f777f9b8ce..dedf43762c76bb 100644 --- a/lib/modules/datasource/npm/get.ts +++ b/lib/modules/datasource/npm/get.ts @@ -104,7 +104,7 @@ export async function getDependency( } const raw = await http.getJson(packageUrl, options); if (cachedResult?.cacheData && raw.statusCode === 304) { - logger.debug({ packageName }, 'Cached npm result is revalidated'); + logger.trace(`Cached npm result for ${packageName} is revalidated`); cachedResult.cacheData.softExpireAt = softExpireAt; await packageCache.set( cacheNamespace, diff --git a/lib/workers/repository/process/lookup/filter-checks.ts b/lib/workers/repository/process/lookup/filter-checks.ts index 93044425c83425..a740bc4202b9ff 100644 --- a/lib/workers/repository/process/lookup/filter-checks.ts +++ b/lib/workers/repository/process/lookup/filter-checks.ts @@ -62,7 +62,7 @@ export async function filterInternalChecks( if (is.integer(stabilityDays) && releaseTimestamp) { if (getElapsedDays(releaseTimestamp) < stabilityDays) { // Skip it if it doesn't pass checks - logger.debug( + logger.trace( { depName, check: 'stabilityDays' }, `Release ${candidateRelease.version} is pending status checks` ); @@ -82,7 +82,7 @@ export async function filterInternalChecks( ); // TODO #7154 if (!satisfiesConfidenceLevel(confidenceLevel, minimumConfidence!)) { - logger.debug( + logger.trace( { depName, check: 'minimumConfidence' }, `Release ${candidateRelease.version} is pending status checks` ); @@ -97,7 +97,7 @@ export async function filterInternalChecks( if (!release) { if (pendingReleases.length) { // If all releases were pending then just take the highest - logger.debug( + logger.trace( { depName, bucket }, 'All releases are pending - using latest' ); diff --git a/lib/workers/repository/updates/branch-name.ts b/lib/workers/repository/updates/branch-name.ts index b88ec208b3d8e5..9805478942316e 100644 --- a/lib/workers/repository/updates/branch-name.ts +++ b/lib/workers/repository/updates/branch-name.ts @@ -48,9 +48,9 @@ function cleanBranchName( export function generateBranchName(update: RenovateConfig): void { // Check whether to use a group name if (update.groupName) { - logger.debug('Using group branchName template'); + logger.trace('Using group branchName template'); // TODO: types (#7154) - logger.debug( + logger.trace( `Dependency ${update.depName!} is part of group ${update.groupName}` ); update.groupSlug = slugify(update.groupSlug ?? update.groupName, { From 25c60afa8ed705066be3f8e4d927cfc91b89c8b9 Mon Sep 17 00:00:00 2001 From: Sullivan SENECHAL Date: Sat, 18 Mar 2023 19:48:26 +0100 Subject: [PATCH 202/228] feat(presets): gitbeaker monorepo (#21028) --- lib/config/presets/internal/monorepo.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/config/presets/internal/monorepo.ts b/lib/config/presets/internal/monorepo.ts index 930bf6a3f73ee2..6cb890ae466752 100644 --- a/lib/config/presets/internal/monorepo.ts +++ b/lib/config/presets/internal/monorepo.ts @@ -96,6 +96,7 @@ const repoGroups = { formatjs: 'https://github.com/formatjs/formatjs', framework7: 'https://github.com/framework7io/framework7', gatsby: 'https://github.com/gatsbyjs/gatsby', + gitbeaker: 'https://github.com/jdalrymple/gitbeaker', grafana: 'https://github.com/grafana/grafana', 'graphql-mesh': 'https://github.com/Urigo/graphql-mesh', 'graphql-modules': 'https://github.com/Urigo/graphql-modules', From 0df82ad7eceb643b4859e49c8740ff5cfc546880 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 18 Mar 2023 21:07:12 +0000 Subject: [PATCH 203/228] chore(deps): update dependency aws-sdk-client-mock to v2.1.1 (#21029) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index f3d0f0e930d0bb..743ec3881287ff 100644 --- a/package.json +++ b/package.json @@ -291,7 +291,7 @@ "@types/xmldoc": "1.1.6", "@typescript-eslint/eslint-plugin": "5.54.1", "@typescript-eslint/parser": "5.54.1", - "aws-sdk-client-mock": "2.1.0", + "aws-sdk-client-mock": "2.1.1", "callsite": "1.0.0", "common-tags": "1.8.2", "conventional-changelog-conventionalcommits": "5.0.0", diff --git a/yarn.lock b/yarn.lock index e3d4f063bafc0a..76ea58718f0fbe 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3658,10 +3658,10 @@ available-typed-arrays@^1.0.5: resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== -aws-sdk-client-mock@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/aws-sdk-client-mock/-/aws-sdk-client-mock-2.1.0.tgz#58247c0fb651cddedbd093c0c06d6bc0caf82e89" - integrity sha512-JkrPrcEvQ4JwylVdQ0njYQMFVwVaZzoVc557rsCorIMjEtmrFvlVYEfIKWoYw8psU4cLjOMyqpxg65NcAn9fvQ== +aws-sdk-client-mock@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/aws-sdk-client-mock/-/aws-sdk-client-mock-2.1.1.tgz#52e5e580fd5654492f9b477153928e373034798e" + integrity sha512-UuxXmICU4nmXTRm2BzLZdXmnyI+5NEBb5McRDkObasXVxXChvLm0Ci/PGENh4sCD+Es64SJiz70mtY48JROk0A== dependencies: "@types/sinon" "^10.0.10" sinon "^14.0.2" From eac9ef60792a39336478b552de137c08f124bf76 Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Sun, 19 Mar 2023 08:38:25 +0100 Subject: [PATCH 204/228] docs: clarify forkProcessing filename (#21021) --- docs/usage/configuration-options.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/usage/configuration-options.md b/docs/usage/configuration-options.md index 4ec354b5a88bef..82305b51ac3569 100644 --- a/docs/usage/configuration-options.md +++ b/docs/usage/configuration-options.md @@ -964,9 +964,13 @@ If this option is enabled, reviewers will need to create a new PR if additional ## forkProcessing By default, Renovate will skip over any repositories that are forked if Renovate is using `autodiscover` mode. -This includes if the forked repository has a Renovate config file, because Renovate can't tell if that file was added by the original repository or not. +This includes if the forked repository has a Renovate config file in the repo, because Renovate can't tell if that file was added by the original repository or not. If you wish to enable processing of a forked repository by Renovate when autodiscovering, you need to add `"forkProcessing": "enabled"` to your repository config or run the CLI command with `--fork-processing=enabled`. + +!!! note + Only the `onboardingConfigFileName` (which defaults to `renovate.json`) is supported for `forkProcessing`. You cannot use other filenames because Renovate will use the platform API to check only for the default filename. + If you are running in non-autodiscover mode (e.g. supplying a list of repositories to Renovate) but wish to skip forked repositories, you need to configure `"forkProcessing": "disabled"` in your global config. If you are using the hosted Mend Renovate then this option will be configured to `"enabled"` automatically if you "Selected" repositories individually but `"disabled"` if you installed for "All" repositories. If you have installed Renovate into "All" repositories but have a fork you want to use, then add `"forkProcessing": "enabled"` to the repository's `renovate.json` file. From c2fe56a1265cc946de1a50f97e6f3dfec9e1a131 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nikolai=20R=C3=B8ed=20Kristiansen?= Date: Sun, 19 Mar 2023 09:15:15 +0100 Subject: [PATCH 205/228] feat(manager/helmfile): Support kustomize (#20782) --- .../helmfile/__fixtures__/multidoc.yaml | 23 ++++++++++++ .../__snapshots__/extract.spec.ts.snap | 10 +++++ .../manager/helmfile/artifacts.spec.ts | 23 ++++++++---- lib/modules/manager/helmfile/artifacts.ts | 37 ++++++++++++------- lib/modules/manager/helmfile/extract.spec.ts | 1 + lib/modules/manager/helmfile/extract.ts | 5 ++- lib/modules/manager/helmfile/types.ts | 5 ++- lib/modules/manager/helmfile/utils.ts | 10 +++++ lib/util/exec/containerbase.ts | 6 +++ lib/util/exec/types.ts | 1 + 10 files changed, 98 insertions(+), 23 deletions(-) create mode 100644 lib/modules/manager/helmfile/utils.ts diff --git a/lib/modules/manager/helmfile/__fixtures__/multidoc.yaml b/lib/modules/manager/helmfile/__fixtures__/multidoc.yaml index 69d3c8544701a0..d42bd70e57cfd2 100644 --- a/lib/modules/manager/helmfile/__fixtures__/multidoc.yaml +++ b/lib/modules/manager/helmfile/__fixtures__/multidoc.yaml @@ -25,6 +25,8 @@ repositories: url: https://charts.bitnami.com/bitnami - name: prometheus-community url: https://prometheus-community.github.io/helm-charts +- name: incubator + url: https://charts.helm.sh/incubator/ templates: external-chart: &external-chart @@ -72,3 +74,24 @@ releases: {{`{{ range .Alerts }} *Alert:* {{ .Annotations.summary }} {{ end }}`}} + +- name: raw1 + chart: incubator/raw + version: 0.1.0 + values: + - resources: + - apiVersion: v1 + kind: ConfigMap + metadata: + name: raw1 + namespace: default + data: + foo: FOO + strategicMergePatches: + - apiVersion: v1 + kind: ConfigMap + metadata: + name: raw1 + namespace: default + data: + bar: BAR diff --git a/lib/modules/manager/helmfile/__snapshots__/extract.spec.ts.snap b/lib/modules/manager/helmfile/__snapshots__/extract.spec.ts.snap index dbe1c07f508bbc..49b560fae84aa4 100644 --- a/lib/modules/manager/helmfile/__snapshots__/extract.spec.ts.snap +++ b/lib/modules/manager/helmfile/__snapshots__/extract.spec.ts.snap @@ -30,6 +30,16 @@ exports[`modules/manager/helmfile/extract extractPackageFile() parses multidoc y "depName": "external-dns", "skipReason": "invalid-version", }, + { + "currentValue": "0.1.0", + "depName": "raw", + "managerData": { + "needKustomize": true, + }, + "registryUrls": [ + "https://charts.helm.sh/incubator/", + ], + }, ], } `; diff --git a/lib/modules/manager/helmfile/artifacts.spec.ts b/lib/modules/manager/helmfile/artifacts.spec.ts index d2213cbb15902a..f4c448451ac191 100644 --- a/lib/modules/manager/helmfile/artifacts.spec.ts +++ b/lib/modules/manager/helmfile/artifacts.spec.ts @@ -42,8 +42,9 @@ releases: chart: oauth2-proxy/oauth2-proxy version: 6.8.0 `; + const lockFile = codeBlock` -version: 0.150.0 +version: 0.151.0 dependencies: - name: backstage repository: https://backstage.github.io/charts @@ -51,11 +52,11 @@ dependencies: - name: oauth2-proxy repository: https://oauth2-proxy.github.io/manifests version: 6.2.1 -digest: sha256:98c605fc3de51960ad1eb022f01dfae3bb0a1a06549e56fa39ec86db2a9a072d -generated: "2023-01-23T12:13:46.487247+01:00" +digest: sha256:e284706b71f37b757a536703da4cb148d67901afbf1ab431f7d60a9852ca6eef +generated: "2023-03-08T21:32:06.122276997+01:00" `; const lockFileTwo = codeBlock` -version: 0.150.0 +version: 0.151.0 dependencies: - name: backstage repository: https://backstage.github.io/charts @@ -63,8 +64,8 @@ dependencies: - name: oauth2-proxy repository: https://oauth2-proxy.github.io/manifests version: 6.8.0 -digest: sha256:8ceea14d17c0f3c108a26ba341c63380e2426db66484d2b2876ab6e636e52af4 -generated: "2023-01-23T12:16:41.881988+01:00" +digest: sha256:9d83889176d005effb86041d30c20361625561cbfb439cbd16d7243225bac17c +generated: "2023-03-08T21:30:48.273709455+01:00" `; describe('modules/manager/helmfile/artifacts', () => { @@ -171,6 +172,8 @@ describe('modules/manager/helmfile/artifacts', () => { ' && ' + 'install-tool helmfile v0.129.0' + ' && ' + + 'install-tool kustomize 5.0.0' + + ' && ' + 'helmfile deps -f helmfile.yaml' + '"', }, @@ -181,6 +184,7 @@ describe('modules/manager/helmfile/artifacts', () => { expectedCommands: [ { cmd: 'install-tool helm v3.7.2' }, { cmd: 'install-tool helmfile v0.129.0' }, + { cmd: 'install-tool kustomize 5.0.0' }, { cmd: 'helmfile deps -f helmfile.yaml' }, ], }, @@ -203,7 +207,12 @@ describe('modules/manager/helmfile/artifacts', () => { datasource.getPkgReleases.mockResolvedValueOnce({ releases: [{ version: 'v0.129.0' }], }); - const updatedDeps = [{ depName: 'dep1' }]; + datasource.getPkgReleases.mockResolvedValueOnce({ + releases: [{ version: '5.0.0' }], + }); + const updatedDeps = [ + { depName: 'dep1', managerData: { needKustomize: true } }, + ]; expect( await helmfile.updateArtifacts({ packageFileName: 'helmfile.yaml', diff --git a/lib/modules/manager/helmfile/artifacts.ts b/lib/modules/manager/helmfile/artifacts.ts index c7a9f23ae5ff0c..578372e1068361 100644 --- a/lib/modules/manager/helmfile/artifacts.ts +++ b/lib/modules/manager/helmfile/artifacts.ts @@ -3,7 +3,7 @@ import { quote } from 'shlex'; import { TEMPORARY_ERROR } from '../../../constants/error-messages'; import { logger } from '../../../logger'; import { exec } from '../../../util/exec'; -import type { ExecOptions } from '../../../util/exec/types'; +import type { ToolConstraint } from '../../../util/exec/types'; import { getSiblingFileName, readLocalFile, @@ -40,21 +40,30 @@ export async function updateArtifacts({ try { await writeLocalFile(packageFileName, newPackageFileContent); - const execOptions: ExecOptions = { + const toolConstraints: ToolConstraint[] = [ + { + toolName: 'helm', + constraint: config.constraints?.helm, + }, + { + toolName: 'helmfile', + constraint: config.constraints?.helmfile, + }, + ]; + const needKustomize = updatedDeps.some( + (dep) => dep.managerData?.needKustomize + ); + if (needKustomize) { + toolConstraints.push({ + toolName: 'kustomize', + constraint: config.constraints?.kustomize, + }); + } + await exec(`helmfile deps -f ${quote(packageFileName)}`, { docker: {}, extraEnv: {}, - toolConstraints: [ - { - toolName: 'helm', - constraint: config.constraints?.helm, - }, - { - toolName: 'helmfile', - constraint: config.constraints?.helmfile, - }, - ], - }; - await exec(`helmfile deps -f ${quote(packageFileName)}`, execOptions); + toolConstraints, + }); const newHelmLockContent = await readLocalFile(lockFileName, 'utf8'); if (existingLockFileContent === newHelmLockContent) { diff --git a/lib/modules/manager/helmfile/extract.spec.ts b/lib/modules/manager/helmfile/extract.spec.ts index f3f535df14bf66..6b312da7b7ff9d 100644 --- a/lib/modules/manager/helmfile/extract.spec.ts +++ b/lib/modules/manager/helmfile/extract.spec.ts @@ -199,6 +199,7 @@ describe('modules/manager/helmfile/extract', () => { { depName: 'kube-prometheus-stack', currentValue: '13.7' }, { depName: 'invalid', skipReason: 'invalid-name' }, { depName: 'external-dns', skipReason: 'invalid-version' }, + { depName: 'raw', managerData: { needKustomize: true } }, ], }); }); diff --git a/lib/modules/manager/helmfile/extract.ts b/lib/modules/manager/helmfile/extract.ts index 5477a52dc4aff3..70b79c72001a1c 100644 --- a/lib/modules/manager/helmfile/extract.ts +++ b/lib/modules/manager/helmfile/extract.ts @@ -10,6 +10,7 @@ import type { PackageFileContent, } from '../types'; import type { Doc } from './types'; +import { areKustomizationsUsed } from './utils'; const isValidChartName = (name: string | undefined): boolean => !!name && !regEx(/[!@#$%^&*(),.?":{}/|<>A-Z]/).test(name); @@ -92,7 +93,9 @@ export function extractPackageFile( .concat([config.registryAliases?.[repoName]] as string[]) .filter(is.string), }; - + if (areKustomizationsUsed(dep)) { + res.managerData = { needKustomize: true }; + } // in case of OCI repository, we need a PackageDependency with a DockerDatasource and a packageName const repository = doc.repositories?.find( (repo) => repo.name === repoName diff --git a/lib/modules/manager/helmfile/types.ts b/lib/modules/manager/helmfile/types.ts index f2a9593e7cd509..d38263d102190b 100644 --- a/lib/modules/manager/helmfile/types.ts +++ b/lib/modules/manager/helmfile/types.ts @@ -1,7 +1,10 @@ -interface Release { +export interface Release { name: string; chart: string; version: string; + strategicMergePatches?: unknown; + jsonPatches?: unknown; + transformers?: unknown; } interface Repository { diff --git a/lib/modules/manager/helmfile/utils.ts b/lib/modules/manager/helmfile/utils.ts new file mode 100644 index 00000000000000..415925b9d10aa0 --- /dev/null +++ b/lib/modules/manager/helmfile/utils.ts @@ -0,0 +1,10 @@ +import type { Release } from './types'; + +/** Returns true if kustomize specific keys exist in a helmfile release */ +export function areKustomizationsUsed(release: Release): boolean { + return ( + release.strategicMergePatches !== undefined || + release.jsonPatches !== undefined || + release.transformers !== undefined + ); +} diff --git a/lib/util/exec/containerbase.ts b/lib/util/exec/containerbase.ts index 3c3f5c1909e306..ed55be68f8879c 100644 --- a/lib/util/exec/containerbase.ts +++ b/lib/util/exec/containerbase.ts @@ -80,6 +80,12 @@ const allToolConfig: Record = { packageName: 'jsonnet-bundler/jsonnet-bundler', versioning: semverVersioningId, }, + kustomize: { + datasource: 'github-releases', + packageName: 'kubernetes-sigs/kustomize', + extractVersion: '^kustomize/v(?.*)$', + versioning: semverVersioningId, + }, lerna: { datasource: 'npm', packageName: 'lerna', diff --git a/lib/util/exec/types.ts b/lib/util/exec/types.ts index ffe794991044b2..80cedbe66da617 100644 --- a/lib/util/exec/types.ts +++ b/lib/util/exec/types.ts @@ -7,6 +7,7 @@ export interface ToolConstraint { export interface ToolConfig { datasource: string; + extractVersion?: string; packageName: string; hash?: boolean; versioning: string; From e804fda25f2899d7260e317977c5b4ebee8d421c Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Sun, 19 Mar 2023 09:21:28 +0100 Subject: [PATCH 206/228] refactor(git): cache list of branches per-sha per repo (#20839) --- lib/util/git/index.ts | 18 +++++++++++------- lib/util/git/types.ts | 1 + 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/lib/util/git/index.ts b/lib/util/git/index.ts index d92e59455077e3..a8593e5622958a 100644 --- a/lib/util/git/index.ts +++ b/lib/util/git/index.ts @@ -242,6 +242,7 @@ export async function initRepo(args: StorageConfig): Promise { config.ignoredAuthors = []; config.additionalBranches = []; config.branchIsModified = {}; + config.commitBranches = {}; const { localDir } = GlobalConfig.get(); git = simpleGit(localDir, simpleGitConfig()).env({ ...process.env, @@ -587,13 +588,16 @@ export async function isBranchBehindBase( await syncGit(); try { const { currentBranchSha, currentBranch } = config; - const branches = await git.branch([ - '--remotes', - '--verbose', - '--contains', - config.currentBranchSha, - ]); - isBehind = !branches.all.map(localName).includes(branchName); + config.commitBranches[config.currentBranchSha] ??= ( + await git.branch([ + '--remotes', + '--verbose', + '--contains', + config.currentBranchSha, + ]) + ).all.map(localName); + isBehind = + !config.commitBranches[config.currentBranchSha].includes(branchName); logger.debug( { currentBranch, currentBranchSha }, `branch.isBehindBase(): ${isBehind}` diff --git a/lib/util/git/types.ts b/lib/util/git/types.ts index ef0e18e86c8744..bacf172951c0dc 100644 --- a/lib/util/git/types.ts +++ b/lib/util/git/types.ts @@ -25,6 +25,7 @@ export interface LocalConfig extends StorageConfig { currentBranchSha: string; branchCommits: Record; branchIsModified: Record; + commitBranches: Record; ignoredAuthors: string[]; gitAuthorName?: string | null; gitAuthorEmail?: string; From 1292e7586323f2597524ec3dc7bcc6e1d219de41 Mon Sep 17 00:00:00 2001 From: Youssef Dhraief Date: Sun, 19 Mar 2023 09:41:12 +0100 Subject: [PATCH 207/228] feat(manager/argocd): added support for argocd multisource (#20648) --- .../__fixtures__/malformedApplications.yml | 12 +++ .../argocd/__fixtures__/validApplication.yml | 52 +++++++++++++ .../__fixtures__/validApplicationSet.yml | 70 +++++++++++++++++ lib/modules/manager/argocd/extract.spec.ts | 63 +++++++++++++++ lib/modules/manager/argocd/extract.ts | 77 +++++++++++-------- lib/modules/manager/argocd/types.ts | 13 ++-- 6 files changed, 250 insertions(+), 37 deletions(-) diff --git a/lib/modules/manager/argocd/__fixtures__/malformedApplications.yml b/lib/modules/manager/argocd/__fixtures__/malformedApplications.yml index 574b683230cc89..98e9465c74c0d7 100644 --- a/lib/modules/manager/argocd/__fixtures__/malformedApplications.yml +++ b/lib/modules/manager/argocd/__fixtures__/malformedApplications.yml @@ -9,3 +9,15 @@ spec: # malformed application as the source section is missing apiVersion: argoproj.io/v1alpha1 kind: Application +--- +# malformed application as the sources array is empty +apiVersion: argoproj.io/v1alpha1 +kind: Application +spec: + sources: [] +--- +# malformed application as the source is null +apiVersion: argoproj.io/v1alpha1 +kind: Application +spec: + source: null diff --git a/lib/modules/manager/argocd/__fixtures__/validApplication.yml b/lib/modules/manager/argocd/__fixtures__/validApplication.yml index e06d78e6589295..83f87c47ebfc0a 100644 --- a/lib/modules/manager/argocd/__fixtures__/validApplication.yml +++ b/lib/modules/manager/argocd/__fixtures__/validApplication.yml @@ -75,3 +75,55 @@ spec: chart: some/image3 repoURL: somecontainer.registry.io:443/ targetRevision: 1.0.0 +--- +apiVersion: argoproj.io/v1alpha1 +kind: Application +spec: + sources: + - chart: some/image3 + repoURL: somecontainer.registry.io:443/ + targetRevision: 1.0.0 +--- +apiVersion: argoproj.io/v1alpha1 +kind: Application +spec: + sources: + - ref: foo + repoURL: https://git.example.com/foo/bar.git + targetRevision: v1.2.0 + - chart: some/image3 + repoURL: somecontainer.registry.io:443/ + targetRevision: 1.0.0 + +--- +apiVersion: argoproj.io/v1alpha1 +kind: Application +spec: + sources: + - ref: foo + repoURL: https://git.example.com/foo/bar.git + targetRevision: v1.2.0 + path: bar + - chart: traefik + repoURL: gs://helm-charts-internal + targetRevision: 0.0.2 + helm: + valueFiles: + - $foo/values.yaml + +--- +apiVersion: argoproj.io/v1alpha1 +kind: Application +spec: + sources: + - ref: foo + repoURL: https://git.example.com/foo/bar.git + targetRevision: v1.2.0 + path: bar + - chart: somechart + repoURL: https://foo.io/repo + targetRevision: 0.0.2 + helm: + valueFiles: + - $foo/values.yaml + diff --git a/lib/modules/manager/argocd/__fixtures__/validApplicationSet.yml b/lib/modules/manager/argocd/__fixtures__/validApplicationSet.yml index e17a7e7bdc7fc7..4207c92ddffbf7 100644 --- a/lib/modules/manager/argocd/__fixtures__/validApplicationSet.yml +++ b/lib/modules/manager/argocd/__fixtures__/validApplicationSet.yml @@ -73,3 +73,73 @@ spec: destination: name: '{{server}}' namespace: podinfo +--- +apiVersion: argoproj.io/v1alpha1 +kind: ApplicationSet +metadata: + name: podinfo +spec: + generators: + - clusters: {} + template: + metadata: + name: '{{name}}-podinfo' + spec: + project: default + sources: + - chart: some/image3 + repoURL: somecontainer.registry.io:443/ + targetRevision: 1.0.0 + destination: + name: '{{server}}' + namespace: podinfo +--- +apiVersion: argoproj.io/v1alpha1 +kind: ApplicationSet +metadata: + name: podinfo +spec: + generators: + - clusters: {} + template: + metadata: + name: '{{name}}-podinfo' + spec: + project: default + sources: + - ref: foo + repoURL: https://git.example.com/foo/bar.git + targetRevision: v1.2.0 + - chart: some/image3 + repoURL: somecontainer.registry.io:443/ + targetRevision: 1.0.0 + destination: + name: '{{server}}' + namespace: podinfo +--- +apiVersion: argoproj.io/v1alpha1 +kind: ApplicationSet +metadata: + name: podinfo +spec: + generators: + - clusters: {} + template: + metadata: + name: '{{name}}-podinfo' + spec: + project: default + sources: + - ref: foo + repoURL: https://git.example.com/foo/bar.git + targetRevision: v1.2.0 + path: bar + - chart: somechart + repoURL: https://foo.io/repo + targetRevision: 0.0.2 + helm: + valueFiles: + - $foo/values.yaml + destination: + name: '{{server}}' + namespace: podinfo diff --git a/lib/modules/manager/argocd/extract.spec.ts b/lib/modules/manager/argocd/extract.spec.ts index 3413c86012edc1..003276cd78b521 100644 --- a/lib/modules/manager/argocd/extract.spec.ts +++ b/lib/modules/manager/argocd/extract.spec.ts @@ -74,6 +74,43 @@ describe('modules/manager/argocd/extract', () => { datasource: 'docker', depName: 'somecontainer.registry.io:443/some/image3', }, + { + currentValue: '1.0.0', + datasource: 'docker', + depName: 'somecontainer.registry.io:443/some/image3', + }, + { + currentValue: 'v1.2.0', + datasource: 'git-tags', + depName: 'https://git.example.com/foo/bar.git', + }, + { + currentValue: '1.0.0', + datasource: 'docker', + depName: 'somecontainer.registry.io:443/some/image3', + }, + { + currentValue: 'v1.2.0', + datasource: 'git-tags', + depName: 'https://git.example.com/foo/bar.git', + }, + { + currentValue: '0.0.2', + datasource: 'helm', + depName: 'traefik', + registryUrls: ['gs://helm-charts-internal'], + }, + { + currentValue: 'v1.2.0', + datasource: 'git-tags', + depName: 'https://git.example.com/foo/bar.git', + }, + { + currentValue: '0.0.2', + datasource: 'helm', + depName: 'somechart', + registryUrls: ['https://foo.io/repo'], + }, ], }); }); @@ -110,6 +147,32 @@ describe('modules/manager/argocd/extract', () => { depName: 'podinfo', registryUrls: ['https://stefanprodan.github.io/podinfo'], }, + { + currentValue: '1.0.0', + datasource: 'docker', + depName: 'somecontainer.registry.io:443/some/image3', + }, + { + currentValue: 'v1.2.0', + datasource: 'git-tags', + depName: 'https://git.example.com/foo/bar.git', + }, + { + currentValue: '1.0.0', + datasource: 'docker', + depName: 'somecontainer.registry.io:443/some/image3', + }, + { + currentValue: 'v1.2.0', + datasource: 'git-tags', + depName: 'https://git.example.com/foo/bar.git', + }, + { + currentValue: '0.0.2', + datasource: 'helm', + depName: 'somechart', + registryUrls: ['https://foo.io/repo'], + }, ], }); }); diff --git a/lib/modules/manager/argocd/extract.ts b/lib/modules/manager/argocd/extract.ts index eed4b535357c83..93a3ce116f2be3 100644 --- a/lib/modules/manager/argocd/extract.ts +++ b/lib/modules/manager/argocd/extract.ts @@ -1,6 +1,7 @@ import is from '@sindresorhus/is'; import { loadAll } from 'js-yaml'; import { logger } from '../../../logger'; +import { coerceArray } from '../../../util/array'; import { trimTrailingSlash } from '../../../util/url'; import { DockerDatasource } from '../../datasource/docker'; import { GitTagsDatasource } from '../../datasource/git-tags'; @@ -10,22 +11,37 @@ import type { PackageDependency, PackageFileContent, } from '../types'; -import type { ApplicationDefinition, ApplicationSource } from './types'; +import type { + ApplicationDefinition, + ApplicationSource, + ApplicationSpec, +} from './types'; import { fileTestRegex } from './util'; -function createDependency( - definition: ApplicationDefinition -): PackageDependency | null { - let source: ApplicationSource; - switch (definition.kind) { - case 'Application': - source = definition?.spec?.source; - break; - case 'ApplicationSet': - source = definition?.spec?.template?.spec?.source; - break; +export function extractPackageFile( + content: string, + fileName: string, + _config?: ExtractConfig +): PackageFileContent | null { + // check for argo reference. API version for the kind attribute is used + if (fileTestRegex.test(content) === false) { + return null; } + let definitions: ApplicationDefinition[]; + try { + definitions = loadAll(content) as ApplicationDefinition[]; + } catch (err) { + logger.debug({ err, fileName }, 'Failed to parse ArgoCD definition.'); + return null; + } + + const deps = definitions.filter(is.plainObject).flatMap(processAppSpec); + + return deps.length ? { deps } : null; +} + +function processSource(source: ApplicationSource): PackageDependency | null { if ( !source || !is.nonEmptyString(source.repoURL) || @@ -66,28 +82,27 @@ function createDependency( }; } -export function extractPackageFile( - content: string, - fileName: string, - _config?: ExtractConfig -): PackageFileContent | null { - // check for argo reference. API version for the kind attribute is used - if (fileTestRegex.test(content) === false) { - return null; +function processAppSpec( + definition: ApplicationDefinition +): PackageDependency[] { + const spec: ApplicationSpec | null | undefined = + definition.kind === 'Application' + ? definition?.spec + : definition?.spec?.template?.spec; + + if (is.nullOrUndefined(spec)) { + return []; } - let definitions: ApplicationDefinition[]; - try { - definitions = loadAll(content) as ApplicationDefinition[]; - } catch (err) { - logger.debug({ err, fileName }, 'Failed to parse ArgoCD definition.'); - return null; + const deps: (PackageDependency | null)[] = []; + + if (is.nonEmptyObject(spec.source)) { + deps.push(processSource(spec.source)); } - const deps = definitions - .filter(is.plainObject) - .map((definition) => createDependency(definition)) - .filter(is.truthy); + for (const source of coerceArray(spec.sources)) { + deps.push(processSource(source)); + } - return deps.length ? { deps } : null; + return deps.filter(is.truthy); } diff --git a/lib/modules/manager/argocd/types.ts b/lib/modules/manager/argocd/types.ts index 95420e8c0fd59f..f8b473e6d195af 100644 --- a/lib/modules/manager/argocd/types.ts +++ b/lib/modules/manager/argocd/types.ts @@ -8,20 +8,21 @@ export interface ApplicationSource { targetRevision: string; } +export interface ApplicationSpec { + source?: ApplicationSource; + sources?: ApplicationSource[]; +} + export interface Application extends KubernetesResource { kind: 'Application'; - spec: { - source: ApplicationSource; - }; + spec: ApplicationSpec; } export interface ApplicationSet extends KubernetesResource { kind: 'ApplicationSet'; spec: { template: { - spec: { - source: ApplicationSource; - }; + spec: ApplicationSpec; }; }; } From 8a12dc66fef4f327196b4a5be0b1894664e20325 Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Sun, 19 Mar 2023 15:37:32 +0100 Subject: [PATCH 208/228] feat(git): use rev-list count to determine behind base status (#21036) --- lib/util/git/index.ts | 28 +++++++++------------------- 1 file changed, 9 insertions(+), 19 deletions(-) diff --git a/lib/util/git/index.ts b/lib/util/git/index.ts index a8593e5622958a..37ec3f5eef35ab 100644 --- a/lib/util/git/index.ts +++ b/lib/util/git/index.ts @@ -111,10 +111,6 @@ export async function gitRetry(gitFunc: () => Promise): Promise { throw lastError; } -function localName(branchName: string): string { - return branchName.replace(regEx(/^origin\//), ''); -} - async function isDirectory(dir: string): Promise { try { return (await fs.stat(dir)).isDirectory(); @@ -242,7 +238,6 @@ export async function initRepo(args: StorageConfig): Promise { config.ignoredAuthors = []; config.additionalBranches = []; config.branchIsModified = {}; - config.commitBranches = {}; const { localDir } = GlobalConfig.get(); git = simpleGit(localDir, simpleGitConfig()).env({ ...process.env, @@ -572,11 +567,13 @@ export async function isBranchBehindBase( branchName: string, baseBranch: string ): Promise { + const baseBranchSha = getBranchCommit(baseBranch); + const branchSha = getBranchCommit(branchName); let isBehind = getCachedBehindBaseResult( branchName, - getBranchCommit(branchName), // branch sha + branchSha, baseBranch, - getBranchCommit(baseBranch) // base branch sha + baseBranchSha ); if (isBehind !== null) { logger.debug(`branch.isBehindBase(): using cached result "${isBehind}"`); @@ -587,19 +584,12 @@ export async function isBranchBehindBase( await syncGit(); try { - const { currentBranchSha, currentBranch } = config; - config.commitBranches[config.currentBranchSha] ??= ( - await git.branch([ - '--remotes', - '--verbose', - '--contains', - config.currentBranchSha, - ]) - ).all.map(localName); - isBehind = - !config.commitBranches[config.currentBranchSha].includes(branchName); + const behindCount = ( + await git.raw(['rev-list', '--count', `${branchSha!}..${baseBranchSha!}`]) + ).trim(); + isBehind = behindCount !== '0'; logger.debug( - { currentBranch, currentBranchSha }, + { baseBranch, branchName }, `branch.isBehindBase(): ${isBehind}` ); setCachedBehindBaseResult(branchName, isBehind); From 686bff397cb3f86c7d29d1a76f75af7ee20ee788 Mon Sep 17 00:00:00 2001 From: RahulGautamSingh Date: Sun, 19 Mar 2023 21:33:01 +0530 Subject: [PATCH 209/228] refactor(test): use minimal config objects (#20773) --- lib/config/types.ts | 5 +- lib/modules/manager/npm/extract/index.spec.ts | 57 ++-- lib/modules/manager/npm/post-update/lerna.ts | 2 +- lib/modules/manager/types.ts | 6 +- .../repository/updates/generate.spec.ts | 309 +++++++++--------- 5 files changed, 200 insertions(+), 179 deletions(-) diff --git a/lib/config/types.ts b/lib/config/types.ts index 2c49c83da1584f..f6e8d56952fdbc 100644 --- a/lib/config/types.ts +++ b/lib/config/types.ts @@ -34,6 +34,9 @@ export interface RenovateSharedConfig { manager?: string; commitMessage?: string; commitMessagePrefix?: string; + commitMessageTopic?: string; + commitMessageAction?: string; + commitMessageExtra?: string; confidential?: boolean; customChangelogUrl?: string; draftPR?: boolean; @@ -253,7 +256,7 @@ export interface RenovateConfig secrets?: Record; constraints?: Record; - skipInstalls?: boolean; + skipInstalls?: boolean | null; constraintsFiltering?: ConstraintsFilter; } diff --git a/lib/modules/manager/npm/extract/index.spec.ts b/lib/modules/manager/npm/extract/index.spec.ts index e6672bd53f89ee..1932f6fd8525ab 100644 --- a/lib/modules/manager/npm/extract/index.spec.ts +++ b/lib/modules/manager/npm/extract/index.spec.ts @@ -1,6 +1,6 @@ import { Fixtures } from '../../../../../test/fixtures'; import { fs } from '../../../../../test/util'; -import { getConfig } from '../../../../config/defaults'; +import type { ExtractConfig } from '../../types'; import * as npmExtract from '.'; jest.mock('../../../../util/fs'); @@ -8,8 +8,9 @@ const realFs = jest.requireActual( '../../../../util/fs' ); -// TODO: fix types -const defaultConfig = getConfig(); +const defaultExtractConfig = { + skipInstalls: null, +} satisfies ExtractConfig; const input01Content = Fixtures.get('inputs/01.json', '..'); const input02Content = Fixtures.get('inputs/02.json', '..'); @@ -35,7 +36,7 @@ describe('modules/manager/npm/extract/index', () => { const res = await npmExtract.extractPackageFile( 'not json', 'package.json', - defaultConfig + defaultExtractConfig ); expect(res).toBeNull(); }); @@ -44,7 +45,7 @@ describe('modules/manager/npm/extract/index', () => { const res = await npmExtract.extractPackageFile( invalidNameContent, 'package.json', - defaultConfig + defaultExtractConfig ); expect(res).toMatchSnapshot({ deps: [{ skipReason: 'invalid-name' }], @@ -55,7 +56,7 @@ describe('modules/manager/npm/extract/index', () => { const res = await npmExtract.extractPackageFile( vendorisedContent, 'package.json', - defaultConfig + defaultExtractConfig ); expect(res).toBeNull(); }); @@ -65,7 +66,7 @@ describe('modules/manager/npm/extract/index', () => { npmExtract.extractPackageFile( '{ "renovate": {} }', 'backend/package.json', - defaultConfig + defaultExtractConfig ) ).rejects.toThrow(); }); @@ -74,7 +75,7 @@ describe('modules/manager/npm/extract/index', () => { const res = await npmExtract.extractPackageFile( '{ "renovate": {} }', 'package.json', - defaultConfig + defaultExtractConfig ); expect(res).toBeNull(); }); @@ -83,7 +84,7 @@ describe('modules/manager/npm/extract/index', () => { const res = await npmExtract.extractPackageFile( '{"dependencies": true, "devDependencies": []}', 'package.json', - defaultConfig + defaultExtractConfig ); expect(res).toBeNull(); }); @@ -92,7 +93,7 @@ describe('modules/manager/npm/extract/index', () => { const res = await npmExtract.extractPackageFile( input01Content, 'package.json', - defaultConfig + defaultExtractConfig ); expect(res).toMatchSnapshot({ deps: [ @@ -119,7 +120,7 @@ describe('modules/manager/npm/extract/index', () => { const res = await npmExtract.extractPackageFile( input01GlobContent, 'package.json', - defaultConfig + defaultExtractConfig ); expect(res?.deps).toHaveLength(13); expect(res).toMatchSnapshot({ @@ -154,7 +155,7 @@ describe('modules/manager/npm/extract/index', () => { const res = await npmExtract.extractPackageFile( input01Content, 'package.json', - defaultConfig + defaultExtractConfig ); expect(res).toMatchSnapshot({ managerData: { @@ -183,7 +184,7 @@ describe('modules/manager/npm/extract/index', () => { const res = await npmExtract.extractPackageFile( input01Content, 'package.json', - { ...defaultConfig, npmrc: 'config-npmrc' } + { ...defaultExtractConfig, npmrc: 'config-npmrc' } ); expect(res?.npmrc).toBe('config-npmrc'); }); @@ -281,7 +282,7 @@ describe('modules/manager/npm/extract/index', () => { const res = await npmExtract.extractPackageFile( input01Content, 'package.json', - defaultConfig + defaultExtractConfig ); expect(res).toMatchSnapshot({ managerData: { @@ -302,7 +303,7 @@ describe('modules/manager/npm/extract/index', () => { const res = await npmExtract.extractPackageFile( input01Content, 'package.json', - defaultConfig + defaultExtractConfig ); expect(res).toMatchSnapshot({ managerData: { @@ -323,7 +324,7 @@ describe('modules/manager/npm/extract/index', () => { const res = await npmExtract.extractPackageFile( input01Content, 'package.json', - defaultConfig + defaultExtractConfig ); expect(res).toMatchSnapshot({ managerData: { @@ -344,7 +345,7 @@ describe('modules/manager/npm/extract/index', () => { const res = await npmExtract.extractPackageFile( workspacesSimpleContent, 'package.json', - defaultConfig + defaultExtractConfig ); expect(res).toMatchSnapshot({ managerData: { workspacesPackages: ['packages/*'] }, @@ -361,7 +362,7 @@ describe('modules/manager/npm/extract/index', () => { const res = await npmExtract.extractPackageFile( workspacesSimpleContent, 'package.json', - defaultConfig + defaultExtractConfig ); expect(res).toMatchSnapshot({ managerData: { workspacesPackages: ['packages/*'] }, @@ -378,7 +379,7 @@ describe('modules/manager/npm/extract/index', () => { const res = await npmExtract.extractPackageFile( workspacesContent, 'package.json', - defaultConfig + defaultExtractConfig ); expect(res).toMatchSnapshot({ managerData: { workspacesPackages: ['packages/*'] }, @@ -411,7 +412,7 @@ describe('modules/manager/npm/extract/index', () => { const res = await npmExtract.extractPackageFile( pJsonStr, 'package.json', - defaultConfig + defaultExtractConfig ); expect(res).toMatchSnapshot({ extractedConstraints: { @@ -494,7 +495,7 @@ describe('modules/manager/npm/extract/index', () => { const res = await npmExtract.extractPackageFile( pJsonStr, 'package.json', - defaultConfig + defaultExtractConfig ); expect(res).toMatchSnapshot({ deps: [ @@ -525,7 +526,7 @@ describe('modules/manager/npm/extract/index', () => { const res = await npmExtract.extractPackageFile( pJsonStr, 'package.json', - defaultConfig + defaultExtractConfig ); expect(res).toMatchSnapshot({ deps: [ @@ -568,7 +569,7 @@ describe('modules/manager/npm/extract/index', () => { const res = await npmExtract.extractPackageFile( pJsonStr, 'package.json', - defaultConfig + defaultExtractConfig ); expect(res).toMatchObject({ @@ -622,7 +623,7 @@ describe('modules/manager/npm/extract/index', () => { const res = await npmExtract.extractPackageFile( pJsonStr, 'package.json', - defaultConfig + defaultExtractConfig ); expect(res).toMatchSnapshot({ deps: [ @@ -735,7 +736,7 @@ describe('modules/manager/npm/extract/index', () => { const res = await npmExtract.extractPackageFile( pJsonStr, 'package.json', - defaultConfig + defaultExtractConfig ); expect(res).toMatchSnapshot({ deps: [ @@ -760,7 +761,7 @@ describe('modules/manager/npm/extract/index', () => { const res = await npmExtract.extractPackageFile( input01Content, 'package.json', - defaultConfig + defaultExtractConfig ); expect(res).toMatchSnapshot(); }); @@ -773,7 +774,7 @@ describe('modules/manager/npm/extract/index', () => { const res = await npmExtract.extractPackageFile( pJsonStr, 'package.json', - defaultConfig + defaultExtractConfig ); expect(res).toMatchSnapshot({ extractedConstraints: { yarn: '3.0.0' }, @@ -815,7 +816,7 @@ describe('modules/manager/npm/extract/index', () => { const res = await npmExtract.extractPackageFile( content, 'package.json', - defaultConfig + defaultExtractConfig ); expect(res).toMatchObject({ deps: [ diff --git a/lib/modules/manager/npm/post-update/lerna.ts b/lib/modules/manager/npm/post-update/lerna.ts index 72db5a57ad7aa0..da3614f85f6123 100644 --- a/lib/modules/manager/npm/post-update/lerna.ts +++ b/lib/modules/manager/npm/post-update/lerna.ts @@ -40,7 +40,7 @@ export async function generateLockFiles( lockFileDir: string, config: PostUpdateConfig, env: NodeJS.ProcessEnv, - skipInstalls?: boolean + skipInstalls?: boolean | null ): Promise { const lernaClient = lernaPackageFile.managerData?.lernaClient; if (!is.nonEmptyString(lernaClient)) { diff --git a/lib/modules/manager/types.ts b/lib/modules/manager/types.ts index 27edf51ab2c219..fffd4ac2ddd717 100644 --- a/lib/modules/manager/types.ts +++ b/lib/modules/manager/types.ts @@ -19,7 +19,7 @@ export interface ExtractConfig extends CustomExtractConfig { registryAliases?: Record; npmrc?: string; npmrcMerge?: boolean; - skipInstalls?: boolean; + skipInstalls?: boolean | null; } export interface CustomExtractConfig extends RegexManagerTemplates { @@ -63,7 +63,7 @@ export interface PackageFileContent> lockFiles?: string[]; npmrc?: string; packageFileVersion?: string; - skipInstalls?: boolean; + skipInstalls?: boolean | null; matchStrings?: string[]; matchStringsStrategy?: MatchStringsStrategy; } @@ -269,7 +269,7 @@ export interface PostUpdateConfig> ManagerData { updatedPackageFiles?: FileChange[]; postUpdateOptions?: string[]; - skipInstalls?: boolean; + skipInstalls?: boolean | null; ignoreScripts?: boolean; packageFile?: string; diff --git a/lib/workers/repository/updates/generate.spec.ts b/lib/workers/repository/updates/generate.spec.ts index 2f436d4bf62d8a..040726a9034f8e 100644 --- a/lib/workers/repository/updates/generate.spec.ts +++ b/lib/workers/repository/updates/generate.spec.ts @@ -1,26 +1,39 @@ import { codeBlock } from 'common-tags'; -import { getConfig, partial } from '../../../../test/util'; -import type { RenovateConfig, UpdateType } from '../../../config/types'; +import { getConfig } from '../../../../test/util'; +import type { UpdateType } from '../../../config/types'; import { NpmDatasource } from '../../../modules/datasource/npm'; import type { BranchUpgradeConfig } from '../../types'; import { generateBranchConfig } from './generate'; -let defaultConfig: RenovateConfig; +const { + commitMessage, + commitMessagePrefix, + commitMessageAction, + commitMessageTopic, + commitMessageExtra, +} = getConfig(); +let requiredDefaultOptions = {}; beforeEach(() => { jest.resetAllMocks(); - defaultConfig = getConfig(); + requiredDefaultOptions = { + commitMessage, + commitMessagePrefix, + commitMessageAction, + commitMessageTopic, + commitMessageExtra, + }; }); describe('workers/repository/updates/generate', () => { describe('generateBranchConfig()', () => { it('does not group single upgrade', () => { - const branch = partial([ + const branch = [ { manager: 'some-manager', + branchName: 'some-branch', depName: 'some-dep', groupName: 'some-group', - branchName: 'some-branch', prTitle: 'some-title', releaseTimestamp: '2017-02-07T20:01:41+00:00', foo: 1, @@ -28,7 +41,7 @@ describe('workers/repository/updates/generate', () => { foo: 2, }, }, - ]); + ] satisfies BranchUpgradeConfig[]; const res = generateBranchConfig(branch); expect(res.foo).toBe(1); expect(res.groupName).toBeUndefined(); @@ -36,14 +49,14 @@ describe('workers/repository/updates/generate', () => { }); it('handles lockFileMaintenance', () => { - const branch = partial([ + const branch = [ { manager: 'some-manager', branchName: 'some-branch', prTitle: 'some-title', isLockFileMaintenance: true, }, - ]); + ] satisfies BranchUpgradeConfig[]; const res = generateBranchConfig(branch); expect(res).toMatchSnapshot({ branchName: 'some-branch', @@ -60,7 +73,7 @@ describe('workers/repository/updates/generate', () => { }); it('handles lockFileUpdate', () => { - const branch = partial([ + const branch = [ { manager: 'some-manager', branchName: 'some-branch', @@ -72,7 +85,7 @@ describe('workers/repository/updates/generate', () => { newValue: '^1.0.0', newVersion: '1.0.1', }, - ]); + ] satisfies BranchUpgradeConfig[]; const res = generateBranchConfig(branch); expect(res).toMatchSnapshot({ branchName: 'some-branch', @@ -102,7 +115,7 @@ describe('workers/repository/updates/generate', () => { }); it('does not group same upgrades', () => { - const branch = partial([ + const branch = [ { manager: 'some-manager', depName: 'some-dep', @@ -125,14 +138,14 @@ describe('workers/repository/updates/generate', () => { foo: 2, }, }, - ]); + ] satisfies BranchUpgradeConfig[]; const res = generateBranchConfig(branch); expect(res.foo).toBe(1); expect(res.groupName).toBeUndefined(); }); it('groups multiple upgrades same version', () => { - const branch = partial([ + const branch: BranchUpgradeConfig[] = [ { manager: 'some-manager', depName: 'some-dep', @@ -191,7 +204,7 @@ describe('workers/repository/updates/generate', () => { releaseTimestamp: '2017-02-06T20:01:41+00:00', automerge: false, }, - ]); + ]; const res = generateBranchConfig(branch); expect(res.foo).toBe(2); expect(res.groupName).toBeDefined(); @@ -204,7 +217,7 @@ describe('workers/repository/updates/generate', () => { }); it('groups major updates with different versions but same newValue, no recreateClosed', () => { - const branch = partial([ + const branch = [ { manager: 'some-manager', depName: 'some-dep', @@ -233,14 +246,14 @@ describe('workers/repository/updates/generate', () => { isMajor: true, newMajor: 5, }, - ]); + ] satisfies BranchUpgradeConfig[]; const res = generateBranchConfig(branch); expect(res.groupName).toBeDefined(); expect(res.recreateClosed).toBeFalsy(); }); it('groups multiple digest updates immortally', () => { - const branch = partial([ + const branch = [ { manager: 'some-manager', depName: 'some-dep', @@ -263,84 +276,89 @@ describe('workers/repository/updates/generate', () => { newDigest: 'sha256:abcdef987654321', isDigest: true, }, - ]); + ] satisfies BranchUpgradeConfig[]; const res = generateBranchConfig(branch); expect(res.groupName).toBeDefined(); expect(res.recreateClosed).toBeTrue(); }); it('Grouped pin & pinDigest can be recreated', () => { - // TODO #7154 incompatible types - const branch: BranchUpgradeConfig[] = [ + const branch = [ { - ...defaultConfig, + ...requiredDefaultOptions, isPinDigest: true, updateType: 'pinDigest', newValue: 'v2', newDigest: 'dc323e67f16fb5f7663d20ff7941f27f5809e9b6', - } as BranchUpgradeConfig, + }, { - ...defaultConfig, + ...requiredDefaultOptions, updateType: 'pin', isPin: true, newValue: "'2.2.0'", newVersion: '2.2.0', newMajor: 2, - } as BranchUpgradeConfig, - ]; + }, + ] as BranchUpgradeConfig[]; const res = generateBranchConfig(branch); expect(res.recreateClosed).toBeTrue(); }); it('Grouped pin can be recreated', () => { - // TODO #7154 incompatible types - const branch: BranchUpgradeConfig[] = [ + const branch = [ { - ...defaultConfig, + ...requiredDefaultOptions, updateType: 'pin', isPin: true, newValue: "'2.2.0'", newVersion: '2.2.0', newMajor: 2, - } as BranchUpgradeConfig, + manager: 'some-manager', + branchName: 'some-branch', + }, { - ...defaultConfig, + ...requiredDefaultOptions, updateType: 'pin', isPin: true, newValue: "'3.2.0'", newVersion: '3.2.0', newMajor: 3, - } as BranchUpgradeConfig, - ]; + manager: 'some-manager', + branchName: 'some-branch', + }, + ] satisfies BranchUpgradeConfig[]; const res = generateBranchConfig(branch); expect(res.recreateClosed).toBeTrue(); }); it('grouped pinDigest can be recreated', () => { - // TODO #7154 incompatible types - const branch: BranchUpgradeConfig[] = [ + const branch = [ { - ...defaultConfig, + ...requiredDefaultOptions, isPinDigest: true, newDigest: 'abcd', newValue: 'v3', updateType: 'pinDigest', - } as BranchUpgradeConfig, + manager: 'some-manager', + branchName: 'some-branch', + }, { - ...defaultConfig, + ...requiredDefaultOptions, isPinDigest: true, newDigest: 'dcba', newMajor: 2, newValue: 'v2', updateType: 'pinDigest', - } as BranchUpgradeConfig, - ]; + manager: 'some-manager', + branchName: 'some-branch', + }, + ] satisfies BranchUpgradeConfig[]; const res = generateBranchConfig(branch); expect(res.recreateClosed).toBeTrue(); }); it('groups multiple upgrades different version', () => { - const branch = partial([ + const branch = [ { manager: 'some-manager', depName: 'depB', @@ -379,7 +397,7 @@ describe('workers/repository/updates/generate', () => { updateType: 'minor', separateMinorPatch: true, }, - ]); + ] satisfies BranchUpgradeConfig[]; const res = generateBranchConfig(branch); expect(res).toMatchObject({ foo: 2, @@ -393,7 +411,7 @@ describe('workers/repository/updates/generate', () => { }); it('groups multiple upgrades different version but same value', () => { - const branch = partial([ + const branch = [ { manager: 'some-manager', depName: 'depB', @@ -426,7 +444,7 @@ describe('workers/repository/updates/generate', () => { }, releaseTimestamp: '2017-02-08T20:01:41+00:00', }, - ]); + ] satisfies BranchUpgradeConfig[]; const res = generateBranchConfig(branch); expect(res.foo).toBe(2); expect(res.singleVersion).toBeUndefined(); @@ -436,7 +454,7 @@ describe('workers/repository/updates/generate', () => { }); it('groups multiple upgrades different value but same version', () => { - const branch = partial([ + const branch = [ { manager: 'some-manager', depName: 'depB', @@ -469,7 +487,7 @@ describe('workers/repository/updates/generate', () => { }, releaseTimestamp: '2017-02-08T20:01:41+00:00', }, - ]); + ] satisfies BranchUpgradeConfig[]; const res = generateBranchConfig(branch); expect(res.foo).toBe(2); expect(res.singleVersion).toBeUndefined(); @@ -479,7 +497,7 @@ describe('workers/repository/updates/generate', () => { }); it('groups multiple digest updates', () => { - const branch = partial([ + const branch = [ { manager: 'some-manager', depName: 'foo/bar', @@ -510,7 +528,7 @@ describe('workers/repository/updates/generate', () => { foo: 2, }, }, - ]); + ] satisfies BranchUpgradeConfig[]; const res = generateBranchConfig(branch); expect(res.foo).toBe(2); expect(res.singleVersion).toBeUndefined(); @@ -519,24 +537,25 @@ describe('workers/repository/updates/generate', () => { }); it('pins digest to table', () => { - // TODO #7154 incompatible types - const branch: BranchUpgradeConfig[] = [ + const branch = [ { - ...defaultConfig, + ...requiredDefaultOptions, depName: 'foo-image', newDigest: 'abcdefg987612345', currentDigest: '', updateType: 'pinDigest', isPinDigest: true, - } as BranchUpgradeConfig, - ]; + manager: 'some-manager', + branchName: 'some-branch', + }, + ] satisfies BranchUpgradeConfig[]; const res = generateBranchConfig(branch); expect(res.upgrades[0].displayFrom).toBe(''); expect(res.upgrades[0].displayTo).toBe('abcdefg'); }); it('fixes different messages', () => { - const branch = partial([ + const branch = [ { manager: 'some-manager', depName: 'depA', @@ -569,17 +588,16 @@ describe('workers/repository/updates/generate', () => { }, releaseTimestamp: '2017-02-08T20:01:41+00:00', }, - ]); + ] satisfies BranchUpgradeConfig[]; const res = generateBranchConfig(branch); expect(res.foo).toBe(1); expect(res.groupName).toBeUndefined(); }); it('uses semantic commits', () => { - // TODO #7154 incompatible types - const branch: BranchUpgradeConfig[] = [ + const branch = [ { - ...defaultConfig, + ...requiredDefaultOptions, manager: 'some-manager', depName: 'some-dep', semanticCommits: 'enabled', @@ -592,8 +610,9 @@ describe('workers/repository/updates/generate', () => { group: { foo: 2, }, - } as BranchUpgradeConfig, - ]; + branchName: 'some-branch', + }, + ] satisfies BranchUpgradeConfig[]; const res = generateBranchConfig(branch); expect(res.prTitle).toBe( 'chore(package): update dependency some-dep to v1.2.0' @@ -604,10 +623,9 @@ describe('workers/repository/updates/generate', () => { }); it('scopes monorepo commits', () => { - // TODO #7154 incompatible types - const branch: BranchUpgradeConfig[] = [ + const branch = [ { - ...defaultConfig, + ...requiredDefaultOptions, manager: 'some-manager', depName: 'some-dep', packageFile: 'package.json', @@ -622,8 +640,9 @@ describe('workers/repository/updates/generate', () => { group: { foo: 2, }, - } as BranchUpgradeConfig, - ]; + branchName: 'some-branch', + }, + ] satisfies BranchUpgradeConfig[]; const res = generateBranchConfig(branch); expect(res.prTitle).toBe('chore(): update dependency some-dep to v1.2.0'); expect(res.commitMessage).toBe( @@ -632,10 +651,9 @@ describe('workers/repository/updates/generate', () => { }); it('scopes monorepo commits with nested package files using parent directory', () => { - // TODO #7154 incompatible types - const branch: BranchUpgradeConfig[] = [ + const branch = [ { - ...defaultConfig, + ...requiredDefaultOptions, commitBodyTable: false, manager: 'some-manager', depName: 'some-dep', @@ -651,8 +669,9 @@ describe('workers/repository/updates/generate', () => { group: { foo: 2, }, - } as BranchUpgradeConfig, - ]; + branchName: 'some-branch', + }, + ] satisfies BranchUpgradeConfig[]; const res = generateBranchConfig(branch); expect(res.prTitle).toBe( 'chore(bar): update dependency some-dep to v1.2.0' @@ -663,10 +682,9 @@ describe('workers/repository/updates/generate', () => { }); it('scopes monorepo commits with nested package files using base directory', () => { - // TODO #7154 incompatible types - const branch: BranchUpgradeConfig[] = [ + const branch = [ { - ...defaultConfig, + ...requiredDefaultOptions, manager: 'some-manager', depName: 'some-dep', packageFile: 'foo/bar/package.json', @@ -681,8 +699,9 @@ describe('workers/repository/updates/generate', () => { group: { foo: 2, }, - } as BranchUpgradeConfig, - ]; + branchName: 'some-branch', + }, + ] satisfies BranchUpgradeConfig[]; const res = generateBranchConfig(branch); expect(res.prTitle).toBe( 'chore(foo/bar): update dependency some-dep to v1.2.0' @@ -693,11 +712,9 @@ describe('workers/repository/updates/generate', () => { }); it('use prettyVersion in pr title when there is a v', () => { - // TODO #7154 incompatible types - const branch: BranchUpgradeConfig[] = [ + const branch = [ { - ...defaultConfig, - manager: 'some-manager', + ...requiredDefaultOptions, depName: 'some-dep', packageFile: 'foo/bar/package.json', packageFileDir: 'foo/bar', @@ -708,8 +725,10 @@ describe('workers/repository/updates/generate', () => { newValue: 'v1.2.0', isSingleVersion: true, newVersion: 'v1.2.0', - } as BranchUpgradeConfig, - ]; + manager: 'some-manager', + branchName: 'some-branch', + }, + ] satisfies BranchUpgradeConfig[]; const res = generateBranchConfig(branch); expect(res.prTitle).toBe( 'chore(foo/bar): update dependency some-dep v1.2.0' @@ -720,10 +739,9 @@ describe('workers/repository/updates/generate', () => { }); it('use prettyVersion in pr title there is no v', () => { - // TODO #7154 incompatible types - const branch: BranchUpgradeConfig[] = [ + const branch = [ { - ...defaultConfig, + ...requiredDefaultOptions, manager: 'some-manager', depName: 'some-dep', packageFile: 'foo/bar/package.json', @@ -735,8 +753,9 @@ describe('workers/repository/updates/generate', () => { newValue: '3.2.0', newVersion: '3.2.0', newMajor: 3, - } as BranchUpgradeConfig, - ]; + branchName: 'some-branch', + }, + ] satisfies BranchUpgradeConfig[]; const res = generateBranchConfig(branch); expect(res.prTitle).toBe( 'chore(foo/bar): update dependency some-dep v3.2.0' @@ -747,10 +766,9 @@ describe('workers/repository/updates/generate', () => { }); it('use newMajor in pr title with v', () => { - // TODO #7154 incompatible types - const branch: BranchUpgradeConfig[] = [ + const branch = [ { - ...defaultConfig, + ...requiredDefaultOptions, manager: 'some-manager', depName: 'some-dep', packageFile: 'foo/bar/package.json', @@ -762,8 +780,9 @@ describe('workers/repository/updates/generate', () => { newValue: '3.2.0', newVersion: '3.2.0', newMajor: 3, - } as BranchUpgradeConfig, - ]; + branchName: 'some-branch', + }, + ] satisfies BranchUpgradeConfig[]; const res = generateBranchConfig(branch); expect(res.prTitle).toBe('chore(foo/bar): update dependency some-dep v3'); expect(res.commitMessage).toBe( @@ -772,10 +791,9 @@ describe('workers/repository/updates/generate', () => { }); it('Default commitMessageExtra pr title', () => { - // TODO #7154 incompatible types - const branch: BranchUpgradeConfig[] = [ + const branch = [ { - ...defaultConfig, + ...requiredDefaultOptions, manager: 'some-manager', depName: 'some-dep', packageFile: 'foo/bar/package.json', @@ -786,8 +804,9 @@ describe('workers/repository/updates/generate', () => { newValue: 'v1.2.0', isSingleVersion: true, newVersion: 'v1.2.0', - } as BranchUpgradeConfig, - ]; + branchName: 'some-branch', + }, + ] satisfies BranchUpgradeConfig[]; const res = generateBranchConfig(branch); expect(res.prTitle).toBe( 'chore(foo/bar): update dependency some-dep to v1.2.0' @@ -798,41 +817,41 @@ describe('workers/repository/updates/generate', () => { }); it('adds commit message body', () => { - // TODO #7154 incompatible types - const branch: BranchUpgradeConfig[] = [ + const branch = [ { - ...defaultConfig, + ...requiredDefaultOptions, manager: 'some-manager', depName: 'some-dep', commitBody: '[skip-ci]', newValue: '1.2.0', isSingleVersion: true, newVersion: '1.2.0', - } as BranchUpgradeConfig, - ]; + branchName: 'some-branch', + }, + ] satisfies BranchUpgradeConfig[]; const res = generateBranchConfig(branch); expect(res.prTitle).toBe('Update dependency some-dep to v1.2.0'); expect(res.commitMessage).toBe('Update dependency some-dep to v1.2.0'); }); it('supports manual prTitle', () => { - // TODO #7154 incompatible types - const branch: BranchUpgradeConfig[] = [ + const branch = [ { - ...defaultConfig, + ...requiredDefaultOptions, manager: 'some-manager', depName: 'some-dep', prTitle: 'Upgrade {{depName}}', toLowerCase: true, - } as BranchUpgradeConfig, - ]; + branchName: 'some-branch', + }, + ] satisfies BranchUpgradeConfig[]; const res = generateBranchConfig(branch); expect(res.prTitle).toBe('upgrade some-dep'); expect(res.commitMessage).toBe('update dependency some-dep to'); }); it('handles @types specially', () => { - const branch = partial([ + const branch = [ { manager: 'some-manager', commitBodyTable: true, @@ -869,7 +888,7 @@ describe('workers/repository/updates/generate', () => { newValue: '1.0.0', group: {}, }, - ]); + ] satisfies BranchUpgradeConfig[]; const res = generateBranchConfig(branch); expect(res.recreateClosed).toBeFalse(); expect(res.groupName).toBeUndefined(); @@ -897,7 +916,7 @@ describe('workers/repository/updates/generate', () => { }); it('handles @types specially (reversed)', () => { - const branch = partial([ + const branch = [ { manager: 'some-manager', depName: 'some-dep', @@ -930,7 +949,7 @@ describe('workers/repository/updates/generate', () => { labels: ['a'], group: {}, }, - ]); + ] satisfies BranchUpgradeConfig[]; expect(generateBranchConfig(branch)).toMatchSnapshot({ upgrades: [ { @@ -958,8 +977,7 @@ describe('workers/repository/updates/generate', () => { }); it('handles upgrades', () => { - // TODO #7154 incompatible types - const branch: BranchUpgradeConfig[] = [ + const branch = [ { manager: 'some-manager', depName: 'some-dep', @@ -970,7 +988,7 @@ describe('workers/repository/updates/generate', () => { fileReplacePosition: 5, }, { - ...defaultConfig, + ...requiredDefaultOptions, manager: 'some-manager', depName: 'some-dep', branchName: 'some-branch', @@ -982,7 +1000,7 @@ describe('workers/repository/updates/generate', () => { fileReplacePosition: 1, }, { - ...defaultConfig, + ...requiredDefaultOptions, manager: 'some-manager', depName: 'some-dep', branchName: 'some-branch', @@ -994,7 +1012,7 @@ describe('workers/repository/updates/generate', () => { fileReplacePosition: 2, }, { - ...defaultConfig, + ...requiredDefaultOptions, manager: 'some-manager', depName: 'some-dep', branchName: 'some-branch', @@ -1006,13 +1024,13 @@ describe('workers/repository/updates/generate', () => { updateType: 'patch' as UpdateType, fileReplacePosition: 0, }, - ] as BranchUpgradeConfig[]; + ] satisfies BranchUpgradeConfig[]; const res = generateBranchConfig(branch); expect(res.prTitle).toMatchSnapshot('some-title (patch)'); }); it('combines prBodyColumns', () => { - const branch = partial([ + const branch = [ { manager: 'some-manager', branchName: 'some-branch', @@ -1023,13 +1041,13 @@ describe('workers/repository/updates/generate', () => { branchName: 'some-branch', prBodyColumns: ['column-c', 'column-b', 'column-a'], }, - ]); + ] satisfies BranchUpgradeConfig[]; const res = generateBranchConfig(branch); expect(res.prBodyColumns).toEqual(['column-a', 'column-b', 'column-c']); }); it('sorts upgrades, without position first', () => { - const branch = partial([ + const branch = [ { manager: 'some-manager', depName: 'some-dep1', @@ -1062,7 +1080,7 @@ describe('workers/repository/updates/generate', () => { newValue: '0.6.0', fileReplacePosition: undefined, }, - ]); + ] satisfies BranchUpgradeConfig[]; const res = generateBranchConfig(branch); expect( res.upgrades.map((upgrade) => upgrade.fileReplacePosition) @@ -1070,7 +1088,7 @@ describe('workers/repository/updates/generate', () => { }); it('passes through pendingChecks', () => { - const branch = partial([ + const branch = [ { manager: 'some-manager', depName: 'some-dep', @@ -1087,14 +1105,14 @@ describe('workers/repository/updates/generate', () => { prTitle: 'some-title', pendingChecks: true, }, - ]); + ] satisfies BranchUpgradeConfig[]; const res = generateBranchConfig(branch); expect(res.pendingChecks).toBeTrue(); expect(res.upgrades).toHaveLength(2); }); it('filters pendingChecks', () => { - const branch = partial([ + const branch = [ { manager: 'some-manager', depName: 'some-dep', @@ -1110,14 +1128,14 @@ describe('workers/repository/updates/generate', () => { branchName: 'some-branch', prTitle: 'some-title', }, - ]); + ] satisfies BranchUpgradeConfig[]; const res = generateBranchConfig(branch); expect(res.pendingChecks).toBeUndefined(); expect(res.upgrades).toHaveLength(1); }); it('displays pending versions', () => { - const branch = partial([ + const branch = [ { manager: 'some-manager', depName: 'some-dep', @@ -1141,7 +1159,7 @@ describe('workers/repository/updates/generate', () => { prTitle: 'Two pending versions', pendingVersions: ['1.1.0', '1.1.1'], }, - ]); + ] satisfies BranchUpgradeConfig[]; const res = generateBranchConfig(branch); expect(res.upgrades.map((u) => u.displayPending)).toStrictEqual([ '', @@ -1151,7 +1169,7 @@ describe('workers/repository/updates/generate', () => { }); it('merge excludeCommitPaths if appears in upgrade', () => { - const branch = partial([ + const branch = [ { manager: 'some-manager', depName: 'some-dep1', @@ -1175,7 +1193,7 @@ describe('workers/repository/updates/generate', () => { newValue: '0.9.0', excludeCommitPaths: ['some/path', 'some/other-manager/path'], }, - ]); + ] satisfies BranchUpgradeConfig[]; const res = generateBranchConfig(branch); const excludeCommitPaths = res.excludeCommitPaths ?? []; expect(excludeCommitPaths.sort()).toStrictEqual( @@ -1184,9 +1202,9 @@ describe('workers/repository/updates/generate', () => { }); it('generates pretty version name properly', () => { - const branch: BranchUpgradeConfig[] = [ + const branch = [ { - ...defaultConfig, + ...requiredDefaultOptions, depName: 'some-dep', isSingleVersion: true, manager: 'some-manager', @@ -1195,8 +1213,9 @@ describe('workers/repository/updates/generate', () => { semanticCommits: 'enabled', semanticCommitScope: 'package', semanticCommitType: 'chore', - } as BranchUpgradeConfig, - ]; + branchName: 'some-branch', + }, + ] satisfies BranchUpgradeConfig[]; const res = generateBranchConfig(branch); expect(res.prTitle).toBe( 'chore(package): update dependency some-dep to foo-pkg-v3.2.1' @@ -1207,23 +1226,22 @@ describe('workers/repository/updates/generate', () => { }); it('prevents issue with duplicating "v" character', () => { - const branch = partial([ + const branch = [ { manager: 'some-manager', branchName: 'some-branch', commitMessage: 'update to vv1.2.0', }, - ]); + ] satisfies BranchUpgradeConfig[]; const res = generateBranchConfig(branch); expect(res.prTitle).toBe('update to v1.2.0'); expect(res.commitMessage).toBe('update to v1.2.0'); }); it('apply semanticCommits and commitMessagePrefix together', () => { - // TODO #7154 incompatible types - const branch: BranchUpgradeConfig[] = [ + const branch = [ { - ...defaultConfig, + ...requiredDefaultOptions, branchName: 'some-branch', commitMessagePrefix: 'PATCH:', depName: 'some-dep', @@ -1231,8 +1249,8 @@ describe('workers/repository/updates/generate', () => { newValue: '1.2.0', semanticCommits: 'enabled', semanticCommitScope: null, - } as BranchUpgradeConfig, - ]; + }, + ] satisfies BranchUpgradeConfig[]; const res = generateBranchConfig(branch); expect(res.prTitle).toBe('PATCH: Update dependency some-dep to 1.2.0'); expect(res.commitMessage).toBe( @@ -1241,7 +1259,7 @@ describe('workers/repository/updates/generate', () => { }); it('dedupes duplicate table rows', () => { - const branch = partial([ + const branch = [ { commitBodyTable: true, manager: 'some-manager', @@ -1286,7 +1304,7 @@ describe('workers/repository/updates/generate', () => { currentVersion: '5.1.1', newVersion: '5.1.2', }, - ]); + ] satisfies BranchUpgradeConfig[]; const res = generateBranchConfig(branch); expect(res.commitMessage?.trim()).toBe(codeBlock` | datasource | package | from | to | @@ -1304,18 +1322,17 @@ describe('workers/repository/updates/generate', () => { }); it('using commitMessagePrefix without separator', () => { - // TODO #7154 incompatible types - const branch: BranchUpgradeConfig[] = [ + const branch = [ { - ...defaultConfig, + ...requiredDefaultOptions, branchName: 'some-branch', commitMessagePrefix: '🆙', depName: 'some-dep', manager: 'some-manager', newValue: '1.2.0', commitMessageAction: 'Update', - } as BranchUpgradeConfig, - ]; + }, + ] satisfies BranchUpgradeConfig[]; const res = generateBranchConfig(branch); expect(res.prTitle).toBe('🆙 Update dependency some-dep to 1.2.0'); expect(res.commitMessage).toBe('🆙 Update dependency some-dep to 1.2.0'); From 33cd2331e7294237451e1f370f89c741ca0b2f76 Mon Sep 17 00:00:00 2001 From: RahulGautamSingh Date: Sun, 19 Mar 2023 21:38:41 +0530 Subject: [PATCH 210/228] fix(platform/github): detect pr-edited if target changed (#21026) Co-authored-by: Rhys Arkins --- lib/modules/platform/github/common.ts | 4 +++ lib/modules/platform/github/index.spec.ts | 2 +- lib/modules/platform/github/types.ts | 1 + .../repository/update/branch/index.spec.ts | 29 +++++++++++++++++++ 4 files changed, 35 insertions(+), 1 deletion(-) diff --git a/lib/modules/platform/github/common.ts b/lib/modules/platform/github/common.ts index 62e12a6ce645e3..db8a22b3c84dcb 100644 --- a/lib/modules/platform/github/common.ts +++ b/lib/modules/platform/github/common.ts @@ -50,6 +50,10 @@ export function coerceRestPr(pr: GhRestPr): GhPr { result.closedAt = pr.closed_at; } + if (pr.base?.ref) { + result.targetBranch = pr.base.ref; + } + schema.match(platformSchemas.Pr, result, 'warn'); return result; } diff --git a/lib/modules/platform/github/index.spec.ts b/lib/modules/platform/github/index.spec.ts index bb9424ae581f74..c9dd817f40ee39 100644 --- a/lib/modules/platform/github/index.spec.ts +++ b/lib/modules/platform/github/index.spec.ts @@ -650,7 +650,7 @@ describe('modules/platform/github/index', () => { const pr1: GhRestPr = { number: 1, head: { ref: 'branch-1', sha: '111', repo: { full_name: 'some/repo' } }, - base: { repo: { pushed_at: '' } }, + base: { repo: { pushed_at: '' }, ref: 'repo/fork_branch' }, state: 'open', title: 'PR #1', created_at: t1, diff --git a/lib/modules/platform/github/types.ts b/lib/modules/platform/github/types.ts index 9c62287dcfd79a..fd06dcf31b2d82 100644 --- a/lib/modules/platform/github/types.ts +++ b/lib/modules/platform/github/types.ts @@ -41,6 +41,7 @@ export interface GhRestPr { repo: { pushed_at?: string; }; + ref: string; }; mergeable_state: string; number: number; diff --git a/lib/workers/repository/update/branch/index.spec.ts b/lib/workers/repository/update/branch/index.spec.ts index aecdbccea5928f..146312255a2e52 100644 --- a/lib/workers/repository/update/branch/index.spec.ts +++ b/lib/workers/repository/update/branch/index.spec.ts @@ -373,6 +373,35 @@ describe('workers/repository/update/branch/index', () => { ); }); + it('skips branch if tagretBranch of update PR is changed by user', async () => { + const pr = partial({ + state: 'open', + targetBranch: 'old_base', + }); + const ensureCommentConfig = partial({ + number: pr.number, + topic: 'Edited/Blocked Notification', + }); + schedule.isScheduledNow.mockReturnValueOnce(false); + scm.branchExists.mockResolvedValue(true); + scm.isBranchModified.mockResolvedValueOnce(false); + platform.getBranchPr.mockResolvedValueOnce(pr); + config.baseBranch = 'new_base'; + const res = await branchWorker.processBranch(config); + expect(res).toEqual({ + branchExists: true, + prNo: undefined, + result: 'pr-edited', + }); + expect(logger.debug).toHaveBeenCalledWith( + `PR has been edited, PrNo:${pr.number}` + ); + expect(platform.ensureComment).toHaveBeenCalledTimes(1); + expect(platform.ensureComment).toHaveBeenCalledWith( + expect.objectContaining({ ...ensureCommentConfig }) + ); + }); + it('skips branch if edited PR found without commenting', async () => { const pr = partial({ state: 'open', From 1013302e0f5bc4b51d346d52421c1c12cbc152dd Mon Sep 17 00:00:00 2001 From: RahulGautamSingh Date: Sun, 19 Mar 2023 21:39:46 +0530 Subject: [PATCH 211/228] refactor: exactOptionalPropertyTypes (#20761) Co-authored-by: Michael Kriese --- lib/config/migrate-validate.spec.ts | 2 +- lib/config/presets/gitea/index.ts | 2 +- lib/config/presets/github/index.ts | 6 +++--- lib/config/presets/gitlab/index.ts | 4 ++-- lib/config/presets/local/common.ts | 4 ++-- lib/config/presets/types.ts | 16 ++++++++-------- lib/config/presets/util.ts | 2 +- lib/instrumentation/decorator.ts | 3 ++- lib/instrumentation/types.ts | 2 +- lib/modules/datasource/datasource.ts | 2 +- lib/modules/datasource/docker/index.ts | 2 +- .../datasource/galaxy-collection/index.ts | 4 ++-- .../__snapshots__/releases-direct.spec.ts.snap | 2 +- lib/modules/datasource/go/releases-direct.ts | 2 +- lib/modules/datasource/go/releases-goproxy.ts | 2 +- lib/modules/datasource/golang-version/index.ts | 2 +- lib/modules/datasource/types.ts | 16 ++++++++-------- lib/modules/platform/types.ts | 1 + lib/util/github/graphql/types.ts | 2 +- lib/workers/repository/onboarding/pr/index.ts | 5 ++++- lib/workers/repository/update/pr/index.ts | 12 ++++++------ 21 files changed, 49 insertions(+), 44 deletions(-) diff --git a/lib/config/migrate-validate.spec.ts b/lib/config/migrate-validate.spec.ts index ff6744efd614b8..e64b707b59ecaf 100644 --- a/lib/config/migrate-validate.spec.ts +++ b/lib/config/migrate-validate.spec.ts @@ -37,7 +37,7 @@ describe('config/migrate-validate', () => { it('isOnboarded', async () => { const input: RenovateConfig = {}; const res = await migrateAndValidate( - { ...config, repoIsOnboarded: true, warnings: undefined }, + { ...config, repoIsOnboarded: true }, input ); expect(res.warnings).toBeUndefined(); diff --git a/lib/config/presets/gitea/index.ts b/lib/config/presets/gitea/index.ts index dfc8884396195f..8728cf2027637e 100644 --- a/lib/config/presets/gitea/index.ts +++ b/lib/config/presets/gitea/index.ts @@ -37,7 +37,7 @@ export function getPresetFromEndpoint( filePreset: string, presetPath?: string, endpoint = Endpoint, - tag?: string + tag?: string | undefined ): Promise { return fetchPreset({ repo, diff --git a/lib/config/presets/github/index.ts b/lib/config/presets/github/index.ts index 315c5125942ca8..da087ae1c4582e 100644 --- a/lib/config/presets/github/index.ts +++ b/lib/config/presets/github/index.ts @@ -14,7 +14,7 @@ export async function fetchJSONFile( repo: string, fileName: string, endpoint: string, - tag?: string | null + tag?: string | undefined ): Promise { let ref = ''; if (is.nonEmptyString(tag)) { @@ -42,7 +42,7 @@ export function getPresetFromEndpoint( filePreset: string, presetPath?: string, endpoint = Endpoint, - tag?: string + tag?: string | undefined ): Promise { return fetchPreset({ repo, @@ -58,7 +58,7 @@ export function getPreset({ repo, presetName = 'default', presetPath, - tag = undefined, + tag, }: PresetConfig): Promise { return getPresetFromEndpoint(repo, presetName, presetPath, Endpoint, tag); } diff --git a/lib/config/presets/gitlab/index.ts b/lib/config/presets/gitlab/index.ts index 5c2902fc02796f..b1f4071ccd9923 100644 --- a/lib/config/presets/gitlab/index.ts +++ b/lib/config/presets/gitlab/index.ts @@ -24,7 +24,7 @@ export async function fetchJSONFile( repo: string, fileName: string, endpoint: string, - tag?: string | null + tag?: string | undefined ): Promise { let url = endpoint; let ref = ''; @@ -60,7 +60,7 @@ export function getPresetFromEndpoint( presetName: string, presetPath?: string, endpoint = Endpoint, - tag?: string | null + tag?: string | undefined ): Promise { return fetchPreset({ repo, diff --git a/lib/config/presets/local/common.ts b/lib/config/presets/local/common.ts index 144eada8fa4c44..c22e6f86f3dea1 100644 --- a/lib/config/presets/local/common.ts +++ b/lib/config/presets/local/common.ts @@ -8,7 +8,7 @@ export async function fetchJSONFile( repo: string, fileName: string, _endpoint?: string, - tag?: string | null + tag?: string | undefined ): Promise { let raw: string | null; try { @@ -35,7 +35,7 @@ export function getPresetFromEndpoint( filePreset: string, presetPath: string | undefined, endpoint: string, - tag?: string | null + tag?: string | undefined ): Promise { return fetchPreset({ repo, diff --git a/lib/config/presets/types.ts b/lib/config/presets/types.ts index cc31c2e27ab4a9..943739dafa3388 100644 --- a/lib/config/presets/types.ts +++ b/lib/config/presets/types.ts @@ -5,9 +5,9 @@ export type Preset = RenovateConfig & Record; export type PresetConfig = { repo: string; - presetPath?: string; + presetPath?: string | undefined; presetName?: string; - tag?: string; + tag?: string | undefined; }; export interface PresetApi { @@ -19,24 +19,24 @@ export interface PresetApi { export interface ParsedPreset { presetSource: string; repo: string; - presetPath?: string; + presetPath?: string | undefined; presetName: string; - tag?: string; - params?: string[]; + tag?: string | undefined; + params?: string[] | undefined; } export type PresetFetcher = ( repo: string, fileName: string, endpoint: string, - tag?: string | null + tag?: string | undefined ) => Promise; export type FetchPresetConfig = { repo: string; filePreset: string; - presetPath?: string; + presetPath?: string | undefined; endpoint: string; - tag?: string | null; + tag?: string | undefined; fetch: PresetFetcher; }; diff --git a/lib/config/presets/util.ts b/lib/config/presets/util.ts index 270da8757e5ff7..8d8382e3d55609 100644 --- a/lib/config/presets/util.ts +++ b/lib/config/presets/util.ts @@ -17,7 +17,7 @@ export async function fetchPreset({ filePreset, presetPath, endpoint: _endpoint, - tag = null, + tag, fetch, }: FetchPresetConfig): Promise { // TODO: fix me, can be undefiend #7154 diff --git a/lib/instrumentation/decorator.ts b/lib/instrumentation/decorator.ts index 39f1d365a84e39..30f8ce6de1f4bf 100644 --- a/lib/instrumentation/decorator.ts +++ b/lib/instrumentation/decorator.ts @@ -1,3 +1,4 @@ +import { SpanKind } from '@opentelemetry/api'; import { Decorator, decorate } from '../util/decorator'; import type { SpanParameters } from './types'; import { instrument as instrumentFunc } from '.'; @@ -9,7 +10,7 @@ export function instrument({ name, attributes, ignoreParentSpan, - kind, + kind = SpanKind.INTERNAL, }: SpanParameters): Decorator { return decorate(async ({ callback }) => { return await instrumentFunc(name, callback, { diff --git a/lib/instrumentation/types.ts b/lib/instrumentation/types.ts index 8b312d03d754d2..a753ecb56d1436 100644 --- a/lib/instrumentation/types.ts +++ b/lib/instrumentation/types.ts @@ -12,7 +12,7 @@ export interface SpanParameters { /** * Attributes which should be added to the span */ - attributes?: Attributes; + attributes?: Attributes | undefined; /** * Should this span be added to the root span or to the current active span diff --git a/lib/modules/datasource/datasource.ts b/lib/modules/datasource/datasource.ts index a8cb0b3ebc8a78..95d6abf947b9bc 100644 --- a/lib/modules/datasource/datasource.ts +++ b/lib/modules/datasource/datasource.ts @@ -22,7 +22,7 @@ export abstract class Datasource implements DatasourceApi { defaultRegistryUrls?: string[] | (() => string[]); - defaultVersioning: string | undefined; + defaultVersioning?: string | undefined; registryStrategy: RegistryStrategy | undefined = 'first'; diff --git a/lib/modules/datasource/docker/index.ts b/lib/modules/datasource/docker/index.ts index c2192fec8dfd01..43e66d2321d35c 100644 --- a/lib/modules/datasource/docker/index.ts +++ b/lib/modules/datasource/docker/index.ts @@ -234,7 +234,7 @@ export async function getAuthHeaders( } async function getECRAuthToken( - region: string | undefined, + region: string, opts: HostRule ): Promise { const config: ECRClientConfig = { region }; diff --git a/lib/modules/datasource/galaxy-collection/index.ts b/lib/modules/datasource/galaxy-collection/index.ts index 701536848b5e14..2e71f354336acd 100644 --- a/lib/modules/datasource/galaxy-collection/index.ts +++ b/lib/modules/datasource/galaxy-collection/index.ts @@ -93,7 +93,7 @@ export class GalaxyCollectionDatasource extends Datasource { try { const release: Release = { version: basicRelease.version, - isDeprecated: basicRelease.isDeprecated, + isDeprecated: !!basicRelease.isDeprecated, downloadUrl: versionDetails.download_url, newDigest: versionDetails.artifact.sha256, dependencies: versionDetails.metadata.dependencies, @@ -118,7 +118,7 @@ export class GalaxyCollectionDatasource extends Datasource { // extract base information which are only provided on the release from the newest release const result: ReleaseResult = { releases: filteredReleases, - sourceUrl: newestVersionDetails?.metadata.repository, + sourceUrl: newestVersionDetails?.metadata.repository ?? null, homepage: newestVersionDetails?.metadata.homepage, tags: newestVersionDetails?.metadata.tags, }; diff --git a/lib/modules/datasource/go/__snapshots__/releases-direct.spec.ts.snap b/lib/modules/datasource/go/__snapshots__/releases-direct.spec.ts.snap index 40b52a688f5542..4e65ba27707cd4 100644 --- a/lib/modules/datasource/go/__snapshots__/releases-direct.spec.ts.snap +++ b/lib/modules/datasource/go/__snapshots__/releases-direct.spec.ts.snap @@ -31,7 +31,7 @@ exports[`modules/datasource/go/releases-direct getReleases support git 1`] = ` "version": "v2.0.0", }, ], - "sourceUrl": undefined, + "sourceUrl": null, } `; diff --git a/lib/modules/datasource/go/releases-direct.ts b/lib/modules/datasource/go/releases-direct.ts index b9fb0b61301cd4..13950d682f5632 100644 --- a/lib/modules/datasource/go/releases-direct.ts +++ b/lib/modules/datasource/go/releases-direct.ts @@ -85,7 +85,7 @@ export class GoDirectDatasource extends Datasource { return null; } - const sourceUrl = getSourceUrl(source); + const sourceUrl = getSourceUrl(source) ?? null; /** * github.com/org/mod/submodule should be tagged as submodule/va.b.c diff --git a/lib/modules/datasource/go/releases-goproxy.ts b/lib/modules/datasource/go/releases-goproxy.ts index a541c06c2872b3..7d00bfaa18eb45 100644 --- a/lib/modules/datasource/go/releases-goproxy.ts +++ b/lib/modules/datasource/go/releases-goproxy.ts @@ -92,7 +92,7 @@ export class GoProxyDatasource extends Datasource { const datasource = await BaseGoDatasource.getDatasource( packageName ); - const sourceUrl = getSourceUrl(datasource); + const sourceUrl = getSourceUrl(datasource) ?? null; result = { releases, sourceUrl }; } catch (err) { logger.trace({ err }, `Can't get datasource for ${packageName}`); diff --git a/lib/modules/datasource/golang-version/index.ts b/lib/modules/datasource/golang-version/index.ts index d0cd118bbb055d..33a9959da861f2 100644 --- a/lib/modules/datasource/golang-version/index.ts +++ b/lib/modules/datasource/golang-version/index.ts @@ -67,7 +67,7 @@ export class GolangVersionDatasource extends Datasource { lines.splice(0, startOfReleases + 1); // Parse the release list - let release: Omit & { version?: string } = { + let release: Omit & { version?: string | undefined } = { version: undefined, }; let skipFutureRelease = false; diff --git a/lib/modules/datasource/types.ts b/lib/modules/datasource/types.ts index a112d5fd5eec5a..095d9f2ef1fcf1 100644 --- a/lib/modules/datasource/types.ts +++ b/lib/modules/datasource/types.ts @@ -48,12 +48,12 @@ export interface Release { isStable?: boolean; releaseTimestamp?: any; version: string; - newDigest?: string; + newDigest?: string | undefined; constraints?: Record; dependencies?: Record; devDependencies?: Record; registryUrl?: string; - sourceUrl?: string; + sourceUrl?: string | undefined; sourceDirectory?: string; } @@ -61,11 +61,11 @@ export interface ReleaseResult { deprecationMessage?: string; isPrivate?: boolean; releases: Release[]; - tags?: Record; + tags?: Record | undefined; // URL metadata changelogUrl?: string; dependencyUrl?: string; - homepage?: string; + homepage?: string | undefined; gitRef?: string; sourceUrl?: string | null; sourceDirectory?: string; @@ -81,8 +81,8 @@ export interface DatasourceApi extends ModuleApi { getDigest?(config: DigestConfig, newValue?: string): Promise; getReleases(config: GetReleasesConfig): Promise; defaultRegistryUrls?: string[] | (() => string[]); - defaultVersioning?: string; - defaultConfig?: Record; + defaultVersioning?: string | undefined; + defaultConfig?: Record | undefined; /** * Strategy to use when multiple registryUrls are available to the datasource. @@ -90,7 +90,7 @@ export interface DatasourceApi extends ModuleApi { * hunt: registryUrls will be tried in order until one returns a result * merge: all registryUrls will be tried and the results merged if more than one returns a result */ - registryStrategy?: RegistryStrategy; + registryStrategy?: RegistryStrategy | undefined; /** * Whether custom registryUrls are allowed. @@ -102,7 +102,7 @@ export interface DatasourceApi extends ModuleApi { * true: datasoure index wrapper should cache all results (based on registryUrl/packageName) * false: caching is not performed, or performed within the datasource implementation */ - caching?: boolean; + caching?: boolean | undefined; /** optional URLs to add to docs as references */ urls?: string[]; diff --git a/lib/modules/platform/types.ts b/lib/modules/platform/types.ts index eeafd70cd235a4..06b9fc1896db75 100644 --- a/lib/modules/platform/types.ts +++ b/lib/modules/platform/types.ts @@ -95,6 +95,7 @@ export type PlatformPrOptions = { usePlatformAutomerge?: boolean; forkModeDisallowMaintainerEdits?: boolean; }; + export interface CreatePRConfig { sourceBranch: string; targetBranch: string; diff --git a/lib/util/github/graphql/types.ts b/lib/util/github/graphql/types.ts index 1fbbca8bd8f12c..41344df196f769 100644 --- a/lib/util/github/graphql/types.ts +++ b/lib/util/github/graphql/types.ts @@ -55,7 +55,7 @@ export interface GithubPackageConfig { /** * Default: https://api.github.com */ - registryUrl?: string; + registryUrl?: string | undefined; } /** diff --git a/lib/workers/repository/onboarding/pr/index.ts b/lib/workers/repository/onboarding/pr/index.ts index d1d7ce2b71422e..923dec654e8c2d 100644 --- a/lib/workers/repository/onboarding/pr/index.ts +++ b/lib/workers/repository/onboarding/pr/index.ts @@ -171,7 +171,10 @@ If you need any further assistance then you can also [request help here](${ prTitle: config.onboardingPrTitle!, prBody, labels, - platformOptions: getPlatformPrOptions({ ...config, automerge: false }), + platformOptions: getPlatformPrOptions({ + ...config, + automerge: false, + }), }); logger.info( { pr: `Pull Request #${pr!.number}` }, diff --git a/lib/workers/repository/update/pr/index.ts b/lib/workers/repository/update/pr/index.ts index f333e266fce6a0..cc308d54ab14ce 100644 --- a/lib/workers/repository/update/pr/index.ts +++ b/lib/workers/repository/update/pr/index.ts @@ -47,11 +47,11 @@ export function getPlatformPrOptions( ); return { - azureAutoApprove: config.azureAutoApprove, - azureWorkItemId: config.azureWorkItemId, - bbUseDefaultReviewers: config.bbUseDefaultReviewers, - gitLabIgnoreApprovals: config.gitLabIgnoreApprovals, - forkModeDisallowMaintainerEdits: config.forkModeDisallowMaintainerEdits, + azureAutoApprove: !!config.azureAutoApprove, + azureWorkItemId: config.azureWorkItemId ?? 0, + bbUseDefaultReviewers: !!config.bbUseDefaultReviewers, + gitLabIgnoreApprovals: !!config.gitLabIgnoreApprovals, + forkModeDisallowMaintainerEdits: !!config.forkModeDisallowMaintainerEdits, usePlatformAutomerge, }; } @@ -391,7 +391,7 @@ export async function ensurePr( prBody, labels: prepareLabels(config), platformOptions: getPlatformPrOptions(config), - draftPR: config.draftPR, + draftPR: !!config.draftPR, }); incLimitedValue('PullRequests'); From 5f32cdb109de94bea9e9fbd46152796ee01ff5b4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 20 Mar 2023 02:25:34 +0000 Subject: [PATCH 212/228] docs: update references to renovate/renovate to v35.14.1 (#21040) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- docs/usage/docker.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage/docker.md b/docs/usage/docker.md index 1d982ed634e087..4a254244b5bb1e 100644 --- a/docs/usage/docker.md +++ b/docs/usage/docker.md @@ -388,7 +388,7 @@ To get access to the token a custom Renovate Docker image is needed that include The Dockerfile to create such an image can look like this: ```Dockerfile -FROM renovate/renovate:35.7.0 +FROM renovate/renovate:35.14.1 # Include the "Docker tip" which you can find here https://cloud.google.com/sdk/docs/install # under "Installation" for "Debian/Ubuntu" RUN ... From 2f5a4d23a864a45f547d7ae9d56565c796aa74f4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 20 Mar 2023 06:29:36 +0100 Subject: [PATCH 213/228] chore(deps): lock file maintenance (#21041) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 221 +++++++++++++++++++++++++++++++++++------------------- 1 file changed, 142 insertions(+), 79 deletions(-) diff --git a/yarn.lock b/yarn.lock index 76ea58718f0fbe..65985d8a0a4153 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1040,9 +1040,9 @@ tslib "^2.3.1" "@aws-sdk/types@^3.222.0": - version "3.289.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.289.0.tgz#c1042bcefa21e90e754ba665094599fa8a7f35f8" - integrity sha512-wwUC+VwoNlEkgDzK/aJG3+zeMcYRcYFQV4mbZaicYdp3v8hmkUkJUhyxuZYl/FmY46WG+DYv+/Y3NilgfsE+Wg== + version "3.292.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.292.0.tgz#54aa7347123116ac368f08df5e02954207328c63" + integrity sha512-1teYAY2M73UXZxMAxqZxVS2qwXjQh0OWtt7qyLfha0TtIk/fZ1hRwFgxbDCHUFcdNBSOSbKH/ESor90KROXLCQ== dependencies: tslib "^2.3.1" @@ -1146,9 +1146,9 @@ tslib "^2.3.1" "@aws-sdk/util-locate-window@^3.0.0": - version "3.208.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.208.0.tgz#0f598fc238a1256e4bcb64d01459f03a922dd4c3" - integrity sha512-iua1A2+P7JJEDHVgvXrRJSvsnzG7stYSGQnBVphIUlemwl6nN5D+QrgbjECtrbxRz8asYFHSzhdhECqN+tFiBg== + version "3.292.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.292.0.tgz#cba0911be4fdf1db31a0b379cc6229a5a0ba1ae0" + integrity sha512-6xnFJXZI9pKw5lQCDvuWA5PnOaUtNRKWwdxvGkkLx5orboFaoVMS6zowjSQxwVNRjW82u6dYNkhmj9mZ8VSjWg== dependencies: tslib "^2.3.1" @@ -1258,32 +1258,32 @@ integrity sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g== "@babel/core@^7.11.6", "@babel/core@^7.12.3": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.21.0.tgz#1341aefdcc14ccc7553fcc688dd8986a2daffc13" - integrity sha512-PuxUbxcW6ZYe656yL3EAhpy7qXKq0DmYsrJLpbB8XrsCP9Nm+XCg9XFMb5vIDliPD7+U/+M+QJlH17XOcB7eXA== + version "7.21.3" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.21.3.tgz#cf1c877284a469da5d1ce1d1e53665253fae712e" + integrity sha512-qIJONzoa/qiHghnm0l1n4i/6IIziDpzqc36FBs4pzMhDUraHqponwJLiAKm1hGLP3OSB/TVNz6rMwVGpwxxySw== dependencies: "@ampproject/remapping" "^2.2.0" "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.21.0" + "@babel/generator" "^7.21.3" "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-module-transforms" "^7.21.0" + "@babel/helper-module-transforms" "^7.21.2" "@babel/helpers" "^7.21.0" - "@babel/parser" "^7.21.0" + "@babel/parser" "^7.21.3" "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.0" - "@babel/types" "^7.21.0" + "@babel/traverse" "^7.21.3" + "@babel/types" "^7.21.3" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.2" semver "^6.3.0" -"@babel/generator@^7.21.0", "@babel/generator@^7.21.1", "@babel/generator@^7.7.2": - version "7.21.1" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.1.tgz#951cc626057bc0af2c35cd23e9c64d384dea83dd" - integrity sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA== +"@babel/generator@^7.21.3", "@babel/generator@^7.7.2": + version "7.21.3" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.3.tgz#232359d0874b392df04045d72ce2fd9bb5045fce" + integrity sha512-QS3iR1GYC/YGUnW7IdggFeN5c1poPUurnGttOV/bZgPGV+izC/D8HnD6DLwod0fsatNyVn1G3EVWMYIF0nHbeA== dependencies: - "@babel/types" "^7.21.0" + "@babel/types" "^7.21.3" "@jridgewell/gen-mapping" "^0.3.2" "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" @@ -1326,7 +1326,7 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-module-transforms@^7.21.0": +"@babel/helper-module-transforms@^7.21.2": version "7.21.2" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz#160caafa4978ac8c00ac66636cb0fa37b024e2d2" integrity sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ== @@ -1392,10 +1392,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.21.0", "@babel/parser@^7.21.2": - version "7.21.2" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.2.tgz#dacafadfc6d7654c3051a66d6fe55b6cb2f2a0b3" - integrity sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.21.3": + version "7.21.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.3.tgz#1d285d67a19162ff9daa358d4cb41d50c06220b3" + integrity sha512-lobG0d7aOfQRXh8AyklEAgZGvA4FShxo6xQbUrrT/cNBPUdIDojlokwJsQyCC/eKia7ifqM0yP+2DRZ4WKw2RQ== "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -1512,26 +1512,26 @@ "@babel/parser" "^7.20.7" "@babel/types" "^7.20.7" -"@babel/traverse@^7.21.0", "@babel/traverse@^7.21.2", "@babel/traverse@^7.7.2": - version "7.21.2" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.2.tgz#ac7e1f27658750892e815e60ae90f382a46d8e75" - integrity sha512-ts5FFU/dSUPS13tv8XiEObDu9K+iagEKME9kAbaP7r0Y9KtZJZ+NGndDvWoRAYNpeWafbpFeki3q9QoMD6gxyw== +"@babel/traverse@^7.21.0", "@babel/traverse@^7.21.2", "@babel/traverse@^7.21.3", "@babel/traverse@^7.7.2": + version "7.21.3" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.3.tgz#4747c5e7903d224be71f90788b06798331896f67" + integrity sha512-XLyopNeaTancVitYZe2MlUEvgKb6YVVPXzofHgqHijCImG33b/uTurMS488ht/Hbsb2XK3U2BnSTxKVNGV3nGQ== dependencies: "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.21.1" + "@babel/generator" "^7.21.3" "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-function-name" "^7.21.0" "@babel/helper-hoist-variables" "^7.18.6" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.21.2" - "@babel/types" "^7.21.2" + "@babel/parser" "^7.21.3" + "@babel/types" "^7.21.3" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.20.2", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.2", "@babel/types@^7.3.0", "@babel/types@^7.3.3": - version "7.21.2" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.2.tgz#92246f6e00f91755893c2876ad653db70c8310d1" - integrity sha512-3wRZSs7jiFaB8AjxiiD+VqN5DTG2iRvJGQ+qYFrs/654lg6kGTQWIOFjlBo5RaXuAZjBmP3+OQH4dmhqiiyYxw== +"@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.20.2", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.2", "@babel/types@^7.21.3", "@babel/types@^7.3.0", "@babel/types@^7.3.3": + version "7.21.3" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.3.tgz#4865a5357ce40f64e3400b0f3b737dc6d4f64d05" + integrity sha512-sBGdETxC+/M4o/zKC0sl6sjWv62WFR/uzxrJ6uYyMLZOUlPnwzw0tKgVHOXxaAd5l2g8pEDM5RZ495GPQI77kg== dependencies: "@babel/helper-string-parser" "^7.19.4" "@babel/helper-validator-identifier" "^7.19.1" @@ -2880,7 +2880,7 @@ resolved "https://registry.yarnpkg.com/@types/diff/-/diff-5.0.2.tgz#dd565e0086ccf8bc6522c6ebafd8a3125c91c12b" integrity sha512-uw8eYMIReOwstQ0QKF0sICefSy8cNO/v7gOTiIy9SbwuHyEecJUm7qlgueOO5S1udZ5I/irVydHVwMchgzbKTg== -"@types/emscripten@^1.38.0": +"@types/emscripten@^1.39.6": version "1.39.6" resolved "https://registry.yarnpkg.com/@types/emscripten/-/emscripten-1.39.6.tgz#698b90fe60d44acf93c31064218fbea93fbfd85a" integrity sha512-H90aoynNhhkQP6DRweEjJp5vfUVdIj7tdPLsu7pq89vODD/lcugKfZOsfgwpvM6XUewEp2N5dCg1Uf3Qe55Dcg== @@ -3078,7 +3078,12 @@ dependencies: "@types/node" "*" -"@types/node@*", "@types/node@18.15.0": +"@types/node@*": + version "18.15.3" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.3.tgz#f0b991c32cfc6a4e7f3399d6cb4b8cf9a0315014" + integrity sha512-p6ua9zBxz5otCmbpb5D3U4B5Nanw6Pk3PPyX05xnxbB/fRv71N7CPmORg7uAD5P70T0xmx1pzAx/FUfa5X+3cw== + +"@types/node@18.15.0": version "18.15.0" resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.0.tgz#286a65e3fdffd691e170541e6ecb0410b16a38be" integrity sha512-z6nr0TTEOBGkzLGmbypWOGnpSpSIBorEhC4L+4HeQ2iezKCi4f77kyslRwvHeNitymGQ+oFyIWGP96l/DPSV9w== @@ -3226,11 +3231,11 @@ tsutils "^3.21.0" "@typescript-eslint/experimental-utils@^5.3.0": - version "5.54.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.54.1.tgz#a45609ce43fc6b24b4c4dde215446eaad7805223" - integrity sha512-oqSc2Gr4TL/2M0XRJ9abA1o3Wf1cFJTNqWq0kjdStIIvgMQGZ3TSaFFJ2Cvy3Fgqi9UfDZ8u5idbACssIIyHaw== + version "5.55.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.55.0.tgz#ea2dd8737834af3a36b6a7be5bee57f57160c942" + integrity sha512-3ZqXIZhdGyGQAIIGATeMtg7prA6VlyxGtcy5hYIR/3qUqp3t18pWWUYhL9mpsDm7y8F9mr3ISMt83TiqCt7OPQ== dependencies: - "@typescript-eslint/utils" "5.54.1" + "@typescript-eslint/utils" "5.55.0" "@typescript-eslint/parser@5.54.1": version "5.54.1" @@ -3250,6 +3255,14 @@ "@typescript-eslint/types" "5.54.1" "@typescript-eslint/visitor-keys" "5.54.1" +"@typescript-eslint/scope-manager@5.55.0": + version "5.55.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.55.0.tgz#e863bab4d4183ddce79967fe10ceb6c829791210" + integrity sha512-OK+cIO1ZGhJYNCL//a3ROpsd83psf4dUJ4j7pdNVzd5DmIk+ffkuUIX2vcZQbEW/IR41DYsfJTB19tpCboxQuw== + dependencies: + "@typescript-eslint/types" "5.55.0" + "@typescript-eslint/visitor-keys" "5.55.0" + "@typescript-eslint/type-utils@5.54.1": version "5.54.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.54.1.tgz#4825918ec27e55da8bb99cd07ec2a8e5f50ab748" @@ -3265,6 +3278,11 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.54.1.tgz#29fbac29a716d0f08c62fe5de70c9b6735de215c" integrity sha512-G9+1vVazrfAfbtmCapJX8jRo2E4MDXxgm/IMOF4oGh3kq7XuK3JRkOg6y2Qu1VsTRmWETyTkWt1wxy7X7/yLkw== +"@typescript-eslint/types@5.55.0": + version "5.55.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.55.0.tgz#9830f8d3bcbecf59d12f821e5bc6960baaed41fd" + integrity sha512-M4iRh4AG1ChrOL6Y+mETEKGeDnT7Sparn6fhZ5LtVJF1909D5O4uqK+C5NPbLmpfZ0XIIxCdwzKiijpZUOvOug== + "@typescript-eslint/typescript-estree@5.54.1": version "5.54.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.54.1.tgz#df7b6ae05fd8fef724a87afa7e2f57fa4a599be1" @@ -3278,7 +3296,20 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/utils@5.54.1", "@typescript-eslint/utils@^5.10.0": +"@typescript-eslint/typescript-estree@5.55.0": + version "5.55.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.55.0.tgz#8db7c8e47ecc03d49b05362b8db6f1345ee7b575" + integrity sha512-I7X4A9ovA8gdpWMpr7b1BN9eEbvlEtWhQvpxp/yogt48fy9Lj3iE3ild/1H3jKBBIYj5YYJmS2+9ystVhC7eaQ== + dependencies: + "@typescript-eslint/types" "5.55.0" + "@typescript-eslint/visitor-keys" "5.55.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/utils@5.54.1": version "5.54.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.54.1.tgz#7a3ee47409285387b9d4609ea7e1020d1797ec34" integrity sha512-IY5dyQM8XD1zfDe5X8jegX6r2EVU5o/WJnLu/znLPWCBF7KNGC+adacXnt5jEYS9JixDcoccI6CvE4RCjHMzCQ== @@ -3292,6 +3323,20 @@ eslint-utils "^3.0.0" semver "^7.3.7" +"@typescript-eslint/utils@5.55.0", "@typescript-eslint/utils@^5.10.0": + version "5.55.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.55.0.tgz#34e97322e7ae5b901e7a870aabb01dad90023341" + integrity sha512-FkW+i2pQKcpDC3AY6DU54yl8Lfl14FVGYDgBTyGKB75cCwV3KpkpTMFi9d9j2WAJ4271LR2HeC5SEWF/CZmmfw== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@types/json-schema" "^7.0.9" + "@types/semver" "^7.3.12" + "@typescript-eslint/scope-manager" "5.55.0" + "@typescript-eslint/types" "5.55.0" + "@typescript-eslint/typescript-estree" "5.55.0" + eslint-scope "^5.1.1" + semver "^7.3.7" + "@typescript-eslint/visitor-keys@5.54.1": version "5.54.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.54.1.tgz#d7a8a0f7181d6ac748f4d47b2306e0513b98bf8b" @@ -3300,6 +3345,14 @@ "@typescript-eslint/types" "5.54.1" eslint-visitor-keys "^3.3.0" +"@typescript-eslint/visitor-keys@5.55.0": + version "5.55.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.55.0.tgz#01ad414fca8367706d76cdb94adf788dc5b664a2" + integrity sha512-q2dlHHwWgirKh1D3acnuApXG+VNXpEY5/AwRxDVuEQpxWaB0jCDe0jFMVMALJ3ebSfuOVE8/rMS+9ZOYGg1GWw== + dependencies: + "@typescript-eslint/types" "5.55.0" + eslint-visitor-keys "^3.3.0" + "@yarnpkg/core@3.4.0": version "3.4.0" resolved "https://registry.yarnpkg.com/@yarnpkg/core/-/core-3.4.0.tgz#1684dfcbd4e68ff28a11a25154d415f7de2c8224" @@ -3338,12 +3391,12 @@ tslib "^1.13.0" tunnel "^0.0.6" -"@yarnpkg/fslib@^2.10.1", "@yarnpkg/fslib@^2.5.0", "@yarnpkg/fslib@^2.9.0": - version "2.10.1" - resolved "https://registry.yarnpkg.com/@yarnpkg/fslib/-/fslib-2.10.1.tgz#3ed7e450f1316e535740653c2e8eff2d851c45cb" - integrity sha512-pVMLtOYu87N5y5G2lyPNYTY2JbTco99v7nGFI34Blx01Ct9LmoKVOc91vnLOYIMMljKr1c8xs1O2UamRdMG5Pg== +"@yarnpkg/fslib@^2.10.1", "@yarnpkg/fslib@^2.10.2", "@yarnpkg/fslib@^2.5.0", "@yarnpkg/fslib@^2.9.0": + version "2.10.2" + resolved "https://registry.yarnpkg.com/@yarnpkg/fslib/-/fslib-2.10.2.tgz#16e419a1412084f152e8eec16183a7f80bc73684" + integrity sha512-6WfQrPEV8QVpDPw5kd5s5jsb3QLqwVFSGZy3rEjl3p2FZ3OtIfYcLbFirOxXj2jXiKQDe7XbYsw1WjSf8K94gw== dependencies: - "@yarnpkg/libzip" "^2.2.4" + "@yarnpkg/libzip" "^2.3.0" tslib "^1.13.0" "@yarnpkg/json-proxy@^2.1.1": @@ -3354,12 +3407,12 @@ "@yarnpkg/fslib" "^2.5.0" tslib "^1.13.0" -"@yarnpkg/libzip@^2.2.4": - version "2.2.4" - resolved "https://registry.yarnpkg.com/@yarnpkg/libzip/-/libzip-2.2.4.tgz#438744efe3b7ae0514f5db1ead130c1df1e685f6" - integrity sha512-QP0vUP+w0d7Jlo7jqTnlRChSnIB/dOF7nJFLD/gsPvFIHsVWLQQuAiolOcXQUD2hezLD1mQd2qb0yOKqPYRcfQ== +"@yarnpkg/libzip@^2.2.4", "@yarnpkg/libzip@^2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@yarnpkg/libzip/-/libzip-2.3.0.tgz#fe1e762e47669f6e2c960fc118436608d834e3be" + integrity sha512-6xm38yGVIa6mKm/DUCF2zFFJhERh/QWp1ufm4cNUvxsONBmfPg8uZ9pZBdOmF6qFGr/HlT6ABBkCSx/dlEtvWg== dependencies: - "@types/emscripten" "^1.38.0" + "@types/emscripten" "^1.39.6" tslib "^1.13.0" "@yarnpkg/parsers@2.5.1", "@yarnpkg/parsers@^2.5.1": @@ -3371,12 +3424,12 @@ tslib "^1.13.0" "@yarnpkg/pnp@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@yarnpkg/pnp/-/pnp-3.3.0.tgz#78be9a718ec58472154da602133826813b8be34c" - integrity sha512-ZiNfQIodOEatHODe33KNfWph9Db6aPPDMGrrRaAksrKoQhTN6B22CLK2wVPRKYfRiS5UvMd4SMYEUpdXMAAnmg== + version "3.3.1" + resolved "https://registry.yarnpkg.com/@yarnpkg/pnp/-/pnp-3.3.1.tgz#8ce0777f2950cbadc9978ba3bd3407b4b9c2a640" + integrity sha512-iA2IKk2hOQqEBBHBZ3j004mCfzsPGx5PNjgGn8kb6/VMXokX4mhZzPNI/q7ipI0+UaIMeDXvIzwdGL2GSmgsTA== dependencies: "@types/node" "^13.7.0" - "@yarnpkg/fslib" "^2.10.1" + "@yarnpkg/fslib" "^2.10.2" "@yarnpkg/shell@^3.2.5": version "3.2.5" @@ -3974,9 +4027,9 @@ camelcase@^6.2.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001449: - version "1.0.30001464" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001464.tgz#888922718df48ce5e33dcfe1a2af7d42676c5eb7" - integrity sha512-oww27MtUmusatpRpCGSOneQk2/l5czXANDSFvsc7VuOQ86s3ANhZetpwXNf1zY/zdfP63Xvjz325DAdAoES13g== + version "1.0.30001468" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001468.tgz#0101837c6a4e38e6331104c33dcfb3bdf367a4b7" + integrity sha512-zgAo8D5kbOyUcRAgSmgyuvBkjrGk5CGYG5TYgFdpQv+ywcyEpo1LOWoG8YmoflGnh+V+UsNuKYedsoYs0hzV5A== cardinal@^2.1.1: version "2.1.1" @@ -4335,9 +4388,9 @@ convert-source-map@^2.0.0: integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== core-js-pure@^3.25.1: - version "3.29.0" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.29.0.tgz#0e1ac889214398641ea4bb1c6cf25ff0959ec1d2" - integrity sha512-v94gUjN5UTe1n0yN/opTihJ8QBWD2O8i19RfTZR7foONPWArnjB96QA/wk5ozu1mm6ja3udQCzOzwQXTxi3xOQ== + version "3.29.1" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.29.1.tgz#1be6ca2b8772f6b4df7fc4621743286e676c6162" + integrity sha512-4En6zYVi0i0XlXHVz/bi6l1XDjCqkKRq765NXuX+SnaIatlE96Odt5lMLjdxUiNI1v9OXI5DSLWYPlmTfkTktg== core-util-is@~1.0.0: version "1.0.3" @@ -4345,9 +4398,9 @@ core-util-is@~1.0.0: integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== cosmiconfig@^8.0.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.1.0.tgz#947e174c796483ccf0a48476c24e4fefb7e1aea8" - integrity sha512-0tLZ9URlPGU7JsKq0DQOQ3FoRsYX8xDZ7xMiATQfaiGMz7EHowNkbU9u1coAOmnh9p/1ySpm0RB3JNWRXM5GCg== + version "8.1.3" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.1.3.tgz#0e614a118fcc2d9e5afc2f87d53cd09931015689" + integrity sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw== dependencies: import-fresh "^3.2.1" js-yaml "^4.1.0" @@ -4483,11 +4536,16 @@ deep-is@^0.1.3: resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== -deepmerge@4.3.0, deepmerge@^4.2.2: +deepmerge@4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.0.tgz#65491893ec47756d44719ae520e0e2609233b59b" integrity sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og== +deepmerge@^4.2.2: + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + defaults@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" @@ -4678,9 +4736,9 @@ editorconfig@1.0.2: semver "^7.3.8" electron-to-chromium@^1.4.284: - version "1.4.328" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.328.tgz#b4565ffa502542b561cea16086d6d9b916c7095a" - integrity sha512-DE9tTy2PNmy1v55AZAO542ui+MLC2cvINMK4P2LXGsJdput/ThVG9t+QGecPuAZZSgC8XoI+Jh9M1OG9IoNSCw== + version "1.4.333" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.333.tgz#ebb21f860f8a29923717b06ec0cb54e77ed34c04" + integrity sha512-YyE8+GKyGtPEP1/kpvqsdhD6rA/TP1DUFDN4uiU/YI52NzDxmwHkEb3qjId8hLBa5siJvG0sfC3O66501jMruQ== email-addresses@5.0.0: version "5.0.0" @@ -5141,9 +5199,9 @@ execa@^6.1.0: strip-final-newline "^3.0.0" execa@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-7.1.0.tgz#50c6f39438b7ce407e8c7a6829c72b074778238d" - integrity sha512-T6nIJO3LHxUZ6ahVRaxXz9WLEruXLqdcluA+UuTptXmLM7nDAn9lx9IfkxPyzEL21583qSt4RmL44pO71EHaJQ== + version "7.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-7.1.1.tgz#3eb3c83d239488e7b409d48e8813b76bb55c9c43" + integrity sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q== dependencies: cross-spawn "^7.0.3" get-stream "^6.0.1" @@ -5584,9 +5642,9 @@ glob@^7.0.0, glob@^7.1.3, glob@^7.1.4: path-is-absolute "^1.0.0" glob@^9.2.0: - version "9.2.1" - resolved "https://registry.yarnpkg.com/glob/-/glob-9.2.1.tgz#f47e34e1119e7d4f93a546e75851ba1f1e68de50" - integrity sha512-Pxxgq3W0HyA3XUvSXcFhRSs+43Jsx0ddxcFrbjxNGkL2Ak5BAUBxLqI5G6ADDeCHLfzzXFhe0b1yYcctGmytMA== + version "9.3.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-9.3.0.tgz#be6e50d172d025c3fcf87903ae25b36b787c0bb0" + integrity sha512-EAZejC7JvnQINayvB/7BJbpZpNOJ8Lrw2OZNEvQxe0vaLn1SuwMcfV7/MNaX8L/T0wmptBFI4YMtDvSBxYDc7w== dependencies: fs.realpath "^1.0.0" minimatch "^7.4.1" @@ -5691,11 +5749,16 @@ got@11.8.6, got@^11.7.0, got@^11.8.6: p-cancelable "^2.0.0" responselike "^2.0.0" -graceful-fs@4.2.10, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.10, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: +graceful-fs@4.2.10: version "4.2.10" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.10, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + graph-data-structure@3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/graph-data-structure/-/graph-data-structure-3.2.0.tgz#db7886a69a2073c76291eef75c973d532eea3b48" @@ -5874,9 +5937,9 @@ human-signals@^3.0.1: integrity sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ== human-signals@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.0.tgz#2095c3cd5afae40049403d4b811235b03879db50" - integrity sha512-zyzVyMjpGBX2+6cDVZeFPCdtOtdsxOeseRhB9tkQ6xXmGUNrcnBzdEKPy3VPNYz+4gy1oukVOXcrJCunSyc6QQ== + version "4.3.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" + integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== humanize-ms@^1.2.1: version "1.2.1" From fba9013510d9406ce2075f344a274b76e5864a04 Mon Sep 17 00:00:00 2001 From: Liora Milbaum Date: Mon, 20 Mar 2023 07:30:37 +0200 Subject: [PATCH 214/228] fix(asdf-pulumi): Extract version (#21038) --- lib/modules/manager/asdf/extract.spec.ts | 2 +- lib/modules/manager/asdf/upgradeable-tooling.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/modules/manager/asdf/extract.spec.ts b/lib/modules/manager/asdf/extract.spec.ts index 997e07c9c7a15d..dd323150f2b1fd 100644 --- a/lib/modules/manager/asdf/extract.spec.ts +++ b/lib/modules/manager/asdf/extract.spec.ts @@ -322,7 +322,7 @@ dummy 1.2.3 datasource: 'github-releases', packageName: 'pulumi/pulumi', depName: 'pulumi', - versioning: '^v(?\\S+)', + extractVersion: '^v(?\\S+)', }, { currentValue: '3.11.0', diff --git a/lib/modules/manager/asdf/upgradeable-tooling.ts b/lib/modules/manager/asdf/upgradeable-tooling.ts index d9b2e7f79f6191..287c6610386b26 100644 --- a/lib/modules/manager/asdf/upgradeable-tooling.ts +++ b/lib/modules/manager/asdf/upgradeable-tooling.ts @@ -305,7 +305,7 @@ export const upgradeableTooling: Record = { config: { datasource: GithubReleasesDatasource.id, packageName: 'pulumi/pulumi', - versioning: '^v(?\\S+)', + extractVersion: '^v(?\\S+)', }, }, python: { From 3514ba5c66aa10f9b44fd34cdc363e0f5e22b585 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 20 Mar 2023 08:45:03 +0100 Subject: [PATCH 215/228] chore(deps): update dependency @types/node to v18.15.1 (#21042) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 743ec3881287ff..b9da05ef859a3f 100644 --- a/package.json +++ b/package.json @@ -279,7 +279,7 @@ "@types/marshal": "0.5.1", "@types/moo": "0.5.5", "@types/nock": "10.0.3", - "@types/node": "18.15.0", + "@types/node": "18.15.1", "@types/parse-link-header": "2.0.1", "@types/semver": "7.3.13", "@types/semver-stable": "3.0.0", diff --git a/yarn.lock b/yarn.lock index 65985d8a0a4153..6075ccb928ee14 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3083,10 +3083,10 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.3.tgz#f0b991c32cfc6a4e7f3399d6cb4b8cf9a0315014" integrity sha512-p6ua9zBxz5otCmbpb5D3U4B5Nanw6Pk3PPyX05xnxbB/fRv71N7CPmORg7uAD5P70T0xmx1pzAx/FUfa5X+3cw== -"@types/node@18.15.0": - version "18.15.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.0.tgz#286a65e3fdffd691e170541e6ecb0410b16a38be" - integrity sha512-z6nr0TTEOBGkzLGmbypWOGnpSpSIBorEhC4L+4HeQ2iezKCi4f77kyslRwvHeNitymGQ+oFyIWGP96l/DPSV9w== +"@types/node@18.15.1": + version "18.15.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.1.tgz#41dc2bf78e8085a250d4670d95edb7fba621dd29" + integrity sha512-U2TWca8AeHSmbpi314QBESRk7oPjSZjDsR+c+H4ECC1l+kFgpZf8Ydhv3SJpPy51VyZHHqxlb6mTTqYNNRVAIw== "@types/node@^13.7.0": version "13.13.52" From 80ccbb084fe7704fa88c64656f63b481d027a368 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 20 Mar 2023 08:10:01 +0000 Subject: [PATCH 216/228] chore(deps): update actions/dependency-review-action action to v3.0.4 (#21043) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/dependency-review.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dependency-review.yml b/.github/workflows/dependency-review.yml index 1fd608f27be41a..3a9c04c81af0b1 100644 --- a/.github/workflows/dependency-review.yml +++ b/.github/workflows/dependency-review.yml @@ -12,4 +12,4 @@ jobs: uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3.4.0 - name: 'Dependency Review' - uses: actions/dependency-review-action@c090f4e553673e6e505ea70d6a95362ee12adb94 # v3.0.3 + uses: actions/dependency-review-action@f46c48ed6d4f1227fb2d9ea62bf6bcbed315589e # v3.0.4 From 52c2ce00c531c28377e04b7708a3daab12d0cec4 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 20 Mar 2023 15:58:59 +0000 Subject: [PATCH 217/228] fix(data): automatic update of static data (#21030) Co-authored-by: Renovate Bot Co-authored-by: Jamie Magee --- data/azure-pipelines-marketplace-tasks.json | 2547 +++++++++++++------ data/azure-pipelines-tasks.json | 36 + 2 files changed, 1821 insertions(+), 762 deletions(-) diff --git a/data/azure-pipelines-marketplace-tasks.json b/data/azure-pipelines-marketplace-tasks.json index d639e845486d66..eb54eb4270e91d 100644 --- a/data/azure-pipelines-marketplace-tasks.json +++ b/data/azure-pipelines-marketplace-tasks.json @@ -517,7 +517,6 @@ "2.0.0", "2.1.0" ], - "02878cab-09e2-4482-9a15-1a89ac214211": ["23.1.0"], "028e3c65-1d7c-448e-b096-d5ee467ee6fb": [ "4.8.9", "4.9.1", @@ -624,7 +623,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "0366bd90-118b-11e6-b29f-8574dc09c50a": ["0.1.0"], "03928031-4eac-41a3-9fd1-86ebd2c2a46e": ["1.1.4"], @@ -666,7 +666,6 @@ "1.0.17", "1.0.18" ], - "03ba9f80-945d-4c88-a1cc-ed830a5f1064": ["23.1.0"], "03cc3c90-4737-11e8-adef-bd824f485eb1": ["0.1.0", "1.0.0"], "03cc3c90-4737-11e8-adef-bd824f485eb2": [ "1.0.1", @@ -1329,7 +1328,8 @@ "2.0.3", "2.0.4", "2.0.5", - "2.0.6" + "2.0.6", + "2.0.7" ], "06c78041-a284-4965-a58a-6bab5a4ed75b": ["1.0.7", "1.1.1", "1.1.2", "1.1.4"], "06c9c5a0-7351-11e5-9c5d-3590204d70da": [ @@ -1579,7 +1579,8 @@ "07a04851-f6d3-473a-82e1-e9026d0b5528": [ "2.11.3447906", "3.0.3513646", - "3.0.3517186" + "3.0.3517186", + "3.0.3642585" ], "07a15c20-6352-1d11-abde-aa01c4d0331d": [ "1.3.1", @@ -2904,6 +2905,16 @@ "0.3.0", "0.3.1" ], + "0a1c7f0a-2381-4759-9308-d541a4c00377": [ + "1.1.1", + "1.1.2", + "1.1.3", + "1.1.4", + "1.1.5", + "1.1.6", + "1.1.7", + "1.1.11" + ], "0a2fa000-e13d-46a4-9bea-c26dedf08b73": ["21.4.1"], "0a3b12a2-9178-482b-9bf3-ff9af4ce9a3c": [ "0.0.1", @@ -2997,7 +3008,8 @@ "0ae6f751-0884-4b80-8cb7-1686f59d4288": [ "2.11.3447906", "3.0.3513646", - "3.0.3517186" + "3.0.3517186", + "3.0.3642585" ], "0b095fdd-8cb5-49a3-8b0e-45de609c0468": [ "1.20200821.23844", @@ -3026,7 +3038,7 @@ "1.20210315.43772" ], "0b3bdfa0-e983-462c-b2be-0ce71b2bb474": ["0.1.0", "0.1.4"], - "0b477ee0-b50e-4eb1-84ba-de09326dce3d": ["22.6.0"], + "0b477ee0-b50e-4eb1-84ba-de09326dce3d": ["22.6.0", "23.2.0"], "0b592257-47c8-4b2d-b194-91c68ab53a36": ["0.1.0"], "0b6f0167-8389-4db8-89c6-4ae7688cd15a": [ "0.0.82", @@ -3149,6 +3161,7 @@ "1.1.82" ], "0c2e3a3c-ace4-4e32-ae7e-6aac67b6c0b1": ["0.1.0"], + "0c3b6fa3-7234-4332-b743-70a3e776ed04": ["23.1.0", "23.1.1", "23.1.2"], "0c3e661c-d316-443e-9a77-470989da8e29": [ "8.0.4", "8.0.10", @@ -3425,10 +3438,10 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "0ddc42e1-3229-42ff-a166-c4360bb16337": ["1.1.7", "2.0.8"], - "0de688e2-4332-4beb-8985-19d105a4ec14": ["23.1.0"], "0df6b5b0-b606-11e6-adea-c19266564b12": ["0.1.0"], "0e0f3bf7-d96c-45d6-aa76-f9afb71fb77e": [ "0.0.0", @@ -3605,6 +3618,7 @@ "0.11.0", "0.12.0" ], + "0f0d0489-2b45-4a26-b65f-e6414f9965dd": ["23.1.0", "23.1.1", "23.1.2"], "0f10e9a0-9d2b-11e6-9324-2935380740c6": [ "0.1.1", "0.1.2", @@ -4289,6 +4303,7 @@ "0.1.8" ], "122796cd-516d-1023-aff1-ca58da24e2b7": ["1.0.5", "1.0.14"], + "12291677-2485-4494-9ee6-8fc1f0b1c2f5": ["23.1.0", "23.1.1", "23.1.2"], "12345679-11d6-4897-ab4d-96330c48c610": [ "1.0.13", "1.0.14", @@ -5102,6 +5117,7 @@ "0.1.7" ], "14545bca-ae4b-48ba-89cc-72e86f8fa576": ["2.5.0", "2.6.0"], + "145d2283-1381-4ca9-b6a8-7c57d0b75d9d": ["23.1.0", "23.1.1", "23.1.2"], "14718d60-f310-42e6-b5f7-8cdfef232061": ["1.0.0", "1.1.0", "1.2.0"], "14880d61-32fc-47d4-afd4-ae27aaf12528": ["0.1.183", "0.1.184", "0.1.194"], "14b0d197-f815-4d5e-b695-262c7c76b3a7": ["1.0.0"], @@ -5155,7 +5171,8 @@ "1.30.1", "1.31.0", "1.32.0", - "1.33.0" + "1.33.0", + "1.34.0" ], "14e92359-f063-4955-b3c0-96a5523b71f4": [ "0.8.992", @@ -5620,6 +5637,7 @@ "4.32.0", "4.33.0", "4.34.0", + "4.35.0", "5.0.0", "5.1.0", "5.1.1", @@ -5635,7 +5653,8 @@ "5.9.0", "5.10.0", "5.11.0", - "5.11.1" + "5.11.1", + "5.12.0" ], "15d52d16-71e4-4d11-997f-9d51ed147255": [ "1.0.0", @@ -5667,6 +5686,7 @@ "1.0.9", "1.0.10" ], + "16102e67-5498-4da6-a74a-3f6edab58148": ["23.1.0", "23.1.1", "23.1.2"], "16223b9e-ae21-427d-8c0e-aaf1173b700c": ["1.0.3", "1.1.0"], "1627fcfe-f292-4904-adac-26cfb14bdb07": [ "1.1.20", @@ -5864,7 +5884,8 @@ "3.1.0", "3.2.0", "3.3.0", - "3.3.1" + "3.3.1", + "3.4.0" ], "165eea4a-9ddf-420f-aeec-acc1c34f9ef0": [ "0.0.1", @@ -6034,7 +6055,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "17068310-10c3-11e8-aa64-03200040d282": [ "0.1.0", @@ -6190,6 +6212,7 @@ "3.5.178", "3.5.220", "3.5.260", + "3.5.268", "4.0.8", "4.0.50", "4.0.89", @@ -6202,7 +6225,8 @@ "4.0.161", "4.0.178", "4.0.220", - "4.0.260" + "4.0.260", + "4.0.268" ], "176eb220-fd8f-11e6-a0f0-bbfbe2a1e49f": ["1.0.0"], "177d6c30-0b47-11e9-a403-978c0ed4b9ed": [ @@ -6375,6 +6399,7 @@ "1.41.63" ], "18266cf5-298a-4d59-9805-006a6b94bdc2": ["1.1.5", "2.1.5"], + "18370706-38f2-4477-a01b-7d42d6a73660": ["0.1.0", "0.2.0", "0.3.0"], "183c9b19-ac1d-56d8-b5a9-9ba71ef843af": [ "0.435.0", "0.437.0", @@ -6451,6 +6476,7 @@ ], "186585e2-87f4-43af-9224-6aa5298a1c5a": ["1.0.0"], "18868996-814b-48e1-9b9c-e631954a0f6c": ["0.5.1", "0.5.2", "0.5.5", "0.5.6"], + "18a39101-3589-4644-8f20-898cffeb61d0": ["23.1.0", "23.1.1", "23.1.2"], "18e7af2f-a100-4868-9c88-bb3a07b3b3be": [ "0.0.1", "0.0.2", @@ -7156,7 +7182,6 @@ "0.2.4", "0.2.5" ], - "1da3f80e-d282-45de-ae53-43ea9e3451a8": ["23.1.0"], "1da752a0-03bf-429c-a239-b5f06d43d629": [ "1.420.10", "1.420.11", @@ -7600,6 +7625,7 @@ "2.5.2", "2.5.3" ], + "1e1d8658-3b8a-43ea-b99b-6aca23a44d00": ["1.0.0"], "1e654a42-4fcd-41f4-81cf-e31b5161190b": ["1.0.0", "1.0.8"], "1e654a42-4fcd-41f4-81cf-e31b5161191a": ["1.2.1", "1.2.2"], "1e7f110f-8b7c-45a0-83b1-432b184fba61": ["7.5.6"], @@ -7689,7 +7715,6 @@ "1.2.176", "1.2.178" ], - "1ec603d8-0286-44b9-bf6c-924b7096b9c2": ["23.1.0"], "1ed28650-ea93-45a3-8f29-d0400ad51ce9": [ "0.1.0", "0.1.1", @@ -8019,7 +8044,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "20f4b3c9-8187-470f-91ea-96e5650fabc2": [ "0.3.1", @@ -8300,6 +8326,7 @@ "3.5.178", "3.5.220", "3.5.260", + "3.5.268", "4.0.8", "4.0.50", "4.0.89", @@ -8312,7 +8339,8 @@ "4.0.161", "4.0.178", "4.0.220", - "4.0.260" + "4.0.260", + "4.0.268" ], "22805355-0fa1-421d-893a-f40ebc51a4de": ["2.0.2"], "22a3cc76-45e3-4ac1-92bb-cbe3f8201a4a": [ @@ -8457,7 +8485,8 @@ "4.0.161", "4.0.178", "4.0.220", - "4.0.260" + "4.0.260", + "4.0.268" ], "232044c0-f2b9-4a68-895c-84c988472d6e": [ "0.0.2", @@ -8476,7 +8505,7 @@ "1.2.3", "1.3.2" ], - "2364f995-5ce9-4f83-87a7-c70166e271b9": ["22.6.0"], + "2364f995-5ce9-4f83-87a7-c70166e271b9": ["22.6.0", "23.2.0"], "2367bd9e-c6c2-40fe-9468-f1800d5dee8f": [ "1.19043.2", "1.19061.1", @@ -8752,7 +8781,7 @@ "2.9.0", "2.12.0" ], - "2559c3c1-9b1d-41b8-b77e-e729314a491f": ["0.0.1", "0.0.2", "0.0.3"], + "2559c3c1-9b1d-41b8-b77e-e729314a491f": ["0.0.1", "0.0.2", "0.0.3", "0.0.4"], "258a38e6-0183-45dc-83f9-335e6c8bcedf": [ "1.2.7", "1.2.9", @@ -8798,6 +8827,7 @@ "0.1.2" ], "25d52c82-c978-4743-be00-a5c13cb01d96": ["1.113.0"], + "25dea4be-9073-47c0-8d15-f6d8ac4d9399": ["23.1.0", "23.1.1", "23.1.2"], "25e3decd-0119-43cd-8819-85b4a5fdde84": [ "1.0.1", "1.0.13", @@ -9008,6 +9038,17 @@ "0.6.16" ], "27fff241-a77e-492a-ba5a-d2e5f7f1997f": ["0.1.0", "0.1.1", "0.1.2"], + "281f6ba9-3d8f-425d-b63b-86479427ab39": [ + "1.1.0", + "1.1.1", + "1.1.2", + "1.1.3", + "1.1.4", + "1.1.5", + "1.1.6", + "1.1.7", + "1.1.8" + ], "2850151b-ec95-4c1e-81a4-917de1f4c0ef": [ "0.0.5", "0.0.7", @@ -9088,6 +9129,7 @@ "1.0.11", "1.0.12" ], + "285b0614-b6ed-4351-a939-3497730e3814": ["23.1.0", "23.1.1", "23.1.2"], "2877ea0e-d12a-4afc-afa6-213ef3bac5a9": [ "1.0.3", "1.0.6", @@ -9236,6 +9278,7 @@ "1.2.3", "1.3.0" ], + "29dfa0b0-3e4d-408b-9786-859ef8516c28": ["23.1.0", "23.1.1", "23.1.2"], "29fa9060-e5a6-40bd-9b84-956efc2febd8": ["21.4.1"], "2a12d98c-8838-40ba-be69-c0b5d88743f5": [ "1.0.4", @@ -9313,10 +9356,9 @@ ], "2adf5d8e-029c-4ee6-8dbc-0a895ec2ce05": ["1.0.0", "1.1.0", "2.0.0", "2.0.1"], "2aec407f-7763-43a5-a27f-bf45a58e4f1d": ["1.6.0"], - "2b1cbeb0-d97d-459b-a746-277fa51749dc": ["23.1.0"], "2b3158b5-c06a-4648-a3d5-ff39701cc436": ["1.0.0"], "2b367b90-3297-4ee0-ad14-626f5eb71afb": ["1.0.0"], - "2b4600b9-5cd9-4e3b-9c8b-553c8e58383a": ["0.7.11"], + "2b4600b9-5cd9-4e3b-9c8b-553c8e58383a": ["0.7.11", "0.7.12"], "2b622fc5-7481-4765-9724-0ef4575d7e3b": [ "1.1.6", "1.2.1", @@ -9612,7 +9654,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "2c7fd6a2-7276-43ca-bb16-3caae1dd4698": ["0.1.1", "0.2.1", "0.3.1"], "2c912ca7-b6b3-47d8-8c99-0a91e7b059a2": [ @@ -9704,7 +9747,9 @@ "1.0.3", "1.0.4", "1.0.5", - "1.1.0" + "1.1.0", + "1.2.0", + "1.2.1" ], "2d15b88e-f58b-48dd-8b17-e8f35594e4ab": [ "0.1.0", @@ -9818,7 +9863,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "2d96d34f-155b-406c-9af2-fb5bdb01408a": ["1.0.6"], "2d984e26-2173-493f-b55d-57858ef496fc": [ @@ -9884,6 +9930,7 @@ "1.207.0", "1.218.0" ], + "2e75c308-cbbc-4e68-b11f-6c985e6a4376": ["23.1.0", "23.1.1", "23.1.2"], "2e896ff0-f4c0-45af-b63c-81a1da1d9105": [ "1.2.18", "1.2.19", @@ -9957,7 +10004,7 @@ "3.0.1999", "3.0.2003" ], - "2ed34943-e39d-4289-bd57-686fae0f69d7": ["1.0.0", "1.0.1", "2.0.1"], + "2ed34943-e39d-4289-bd57-686fae0f69d7": ["1.0.0", "1.0.1", "2.0.1", "2.1.0"], "2edc5463-c7ef-4a6d-952b-ffd367574311": ["1.0.0", "1.1.0"], "2eed6fe6-d190-4086-ba5b-f3d59b274881": [ "0.0.1", @@ -10305,7 +10352,6 @@ "2.0.3", "3.0.0" ], - "2f65269f-9796-4596-9acf-f4037ae0b533": ["23.1.0"], "2f7a32d0-699f-4693-8955-e5ff64e3f4a1": [ "1.0.0", "1.1.0", @@ -10617,6 +10663,7 @@ "1.2.4", "1.3.0" ], + "3123867b-41b3-46b8-b5bb-8af6d48224da": ["23.1.0", "23.1.1", "23.1.2"], "312eb806-f643-41d7-bbe0-5e61c37aba91": [ "0.0.3", "0.0.6", @@ -10709,7 +10756,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "31cd0453-55d2-4547-b0a3-c882cc6b6c4d": ["0.1.0", "0.1.1"], "31e75ea0-9d2b-11e6-acba-7dd161269b2e": [ @@ -10905,6 +10953,7 @@ "0.0.26", "0.0.27", "0.0.28", + "0.0.29", "1.1.8" ], "31f040e5-e040-4336-878a-59a493355536": [ @@ -10919,6 +10968,7 @@ "0.0.26", "0.0.27", "0.0.28", + "0.0.29", "1.1.8" ], "31f040e5-e040-4336-878a-59a493389784": [ @@ -11461,7 +11511,6 @@ "0.0.15" ], "33416f37-5fe8-488d-a2aa-48f52e7a14f9": ["0.1.0", "0.2.0", "0.2.5"], - "33568536-a41b-44ec-adc0-e5c1f45e8bbd": ["23.1.0"], "3356988a-91b9-40ee-871b-273f35ee5f6e": [ "1.0.0", "1.0.1", @@ -12092,7 +12141,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "379b4b77-75d2-4fb8-84a3-05b51d97154c": [ "2.2.2", @@ -12780,6 +12830,7 @@ "2.0.61" ], "3bb3e250-f533-11e5-930d-c5573c0da11e": ["0.1.4"], + "3c1dd330-7675-4b14-b528-f982232e4727": ["23.1.0", "23.1.1", "23.1.2"], "3c20c00c-6ba0-4d09-af89-89fbda2934be": [ "1.0.0", "4.0.3", @@ -12923,7 +12974,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "3d116dd1-d4bd-53f0-b6f3-cb9a511d911f": [ "1.0.1", @@ -13507,7 +13559,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "3ff9107a-251e-4828-af68-fcb7090cb3d6": ["0.0.5", "0.0.6"], "400ea42f-b258-4da4-9a55-68b174cae84c": [ @@ -13798,7 +13851,6 @@ "2.1.3", "2.1.4" ], - "41ab7ab8-ec3a-4450-b64b-a885fb639f74": ["23.1.0"], "41adda2e-e373-4281-a149-08922f27b09b": [ "0.1.0", "0.1.1", @@ -13907,7 +13959,8 @@ "3.1.0", "3.2.0", "3.3.0", - "3.3.1" + "3.3.1", + "3.4.0" ], "42crunch.cicd.audit.5a144934-d2e8-4e39-b38f-307eacf66fe8": ["1.0.1"], "42crunch.cicd.audit.apicontractsecurityaudit": [ @@ -13943,7 +13996,8 @@ "3.1.0", "3.2.0", "3.3.0", - "3.3.1" + "3.3.1", + "3.4.0" ], "42crunch.cicd.audit.audit": ["1.0.1"], "42crunch.cicd.audit.openapisecurityaudit": [ @@ -14053,7 +14107,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "43c8e3f9-f0a7-5689-905b-f4d9f452a1dc": [ "1.0.95", @@ -14145,7 +14200,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "44d7756a-165c-4b11-bced-37a905a31c9a": ["0.2.35", "0.2.36"], "44d9cfb7-7efd-48e2-b2ae-4750950271be": [ @@ -14190,7 +14246,6 @@ "450f7d20-946c-4524-a9e8-ec4e42e35b76": ["21.4.1"], "452d20bc-cc20-4e93-8652-333696af24bf": ["0.1.0", "0.2.0"], "4537b95e-61a8-45af-b178-c7e5f86d17b9": ["21.4.1"], - "45428fd3-a672-4709-a6e4-90b7092da8ae": ["23.1.0"], "4578fa22-6039-4d83-90e0-3e12f68d6b26": [ "1.15.22", "1.16.2", @@ -14265,7 +14320,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "45cd7182-50f4-11eb-998f-02004c4f4f50": [ "0.1.28", @@ -14349,7 +14405,8 @@ "2.0.3", "2.0.4", "2.0.5", - "2.0.6" + "2.0.6", + "2.0.7" ], "46dcb5e9-914b-4b19-b653-22b0a65fe235": ["21.4.1"], "46f0ed50-30cc-45e7-9826-b5d57a385c8e": [ @@ -14361,7 +14418,12 @@ "1.11.3", "2.13.4" ], - "47203ae0-e66b-4cc7-bdbd-77ea87aaf473": ["2.0.13", "2.0.15", "2.0.16"], + "47203ae0-e66b-4cc7-bdbd-77ea87aaf473": [ + "2.0.13", + "2.0.15", + "2.0.16", + "2.0.17" + ], "472a20e1-558b-46c7-bbb4-def75b0752e7": [ "1.0.0", "1.0.1", @@ -14582,6 +14644,7 @@ "3.5.178", "3.5.220", "3.5.260", + "3.5.268", "4.0.8", "4.0.50", "4.0.89", @@ -14594,7 +14657,8 @@ "4.0.161", "4.0.178", "4.0.220", - "4.0.260" + "4.0.260", + "4.0.268" ], "47ba6c2e-d5c2-44e7-bd91-5792159eb4eb": [ "1.0.0", @@ -14783,6 +14847,7 @@ "4.4.1" ], "49b73561-bc73-43a5-862f-95247574d899": ["1.3.0", "1.4.0", "1.5.0"], + "49da0505-a53f-46a8-9c14-36ef53457a32": ["23.1.0", "23.1.1", "23.1.2"], "49e32553-9a91-4694-a513-72e52933a681": [ "0.0.1", "0.0.2", @@ -15109,7 +15174,6 @@ "1.0.10", "1.0.11" ], - "4b680c98-0b13-4e53-8856-73abef070247": ["23.1.0"], "4b8b6753-c498-48c8-8f84-203b229a85ba": ["1.1.48"], "4b8ea1ca-9132-4caa-8127-7490130e131f": [ "1.22.0", @@ -15131,7 +15195,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "4bc7e8e0-97c4-4ba2-af7e-ea12b1b06c5f": ["15.188.1", "15.188.2"], "4bit-dev.semantic-versioning.00d41d52-30eb-42cc-9718-b52753e27da2.f46f9e97-9751-4554-980e-be15b3945e37": [ @@ -15560,7 +15625,7 @@ "6.0.502" ], "4e476451-a01b-4b86-ab9e-658d496f9b17": ["9.0.5", "9.0.6", "12.0.7"], - "4e6d2469-e404-4080-9719-ac8dc9b7b3ee": ["22.6.0"], + "4e6d2469-e404-4080-9719-ac8dc9b7b3ee": ["22.6.0", "23.2.0"], "4e6e25e3-c0b5-4986-8714-5c751945c15f": [ "1.0.0", "1.0.1", @@ -15713,6 +15778,7 @@ "2.0.5", "2.0.6" ], + "4eb92e59-8cf6-4b5a-b679-0484a99549ee": ["23.1.0", "23.1.1", "23.1.2"], "4eb9bad0-fd4b-465b-94cd-94bd4e8543b5": ["1.0.1"], "4ed0db5c-8f98-4a6f-98c2-bde0a80a540b": [ "0.3.0", @@ -15780,7 +15846,6 @@ "1.0.19", "1.0.20" ], - "4ed7bb07-11eb-4f12-9de7-37ba7471fcdd": ["23.1.0"], "4ed9c77e-9b10-46ad-901a-78fe21178d8a": [ "0.1.0", "1.0.1", @@ -16192,7 +16257,6 @@ "1.0.15", "1.0.18" ], - "508939e9-38f4-4ffb-bfaf-2cfcad24d053": ["23.1.0"], "50938938-bf74-4acd-b7ab-3a7cfc801d8a": [ "1.1.14", "1.1.15", @@ -16402,7 +16466,7 @@ "3.0.0", "3.1.0" ], - "51355d76-dd54-4754-919d-bba27fdf59e4": ["0.7.11"], + "51355d76-dd54-4754-919d-bba27fdf59e4": ["0.7.11", "0.7.12"], "5164728d-cfca-4576-a066-bde89930bf2b": [ "0.0.16", "1.0.2", @@ -16485,7 +16549,8 @@ "51d18b73-ba80-440e-95c2-59620cb4be1c": [ "2.11.3447906", "3.0.3513646", - "3.0.3517186" + "3.0.3517186", + "3.0.3642585" ], "51fa7ac6-d9cc-41c0-b7f3-2c7f4a31d153": ["0.0.1", "0.0.2", "0.0.3"], "520de8ba-2076-4eb4-8914-6c193e779161": ["1.0.4"], @@ -17259,7 +17324,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "54b62d89-ac91-4bc3-9495-bbcd521dc2fa": [ "0.1.0", @@ -17282,7 +17348,6 @@ "2.2.0", "2.3.0" ], - "54f16e23-92e0-456e-aa6b-81b5ba088419": ["23.1.0"], "553fa7ff-af12-4821-8ace-6bf3dc410e62": [ "0.1.4", "0.1.8", @@ -17829,7 +17894,8 @@ "0.0.5", "0.0.6", "0.0.7", - "0.1.2" + "0.1.2", + "0.1.3" ], "590a09aa-6954-46b6-9eb3-d4985aa7d80b": ["0.1.3", "0.2.8"], "5916aacf-ed6c-4580-bf28-cf4b21c2b521": [ @@ -17961,7 +18027,6 @@ "5a144934-d2e8-4e39-b38f-307eacf66fe8": ["1.0.1"], "5a2273e0-aa4f-4502-bcba-6817835e2bbd": ["6.0.465", "6.0.502"], "5a22c382-dfab-45dc-81a9-119b60bf149e": ["1.2.0"], - "5a354b4a-68c0-474f-abd8-202229be650c": ["23.1.0"], "5a7067c0-afc3-474f-8c55-3769fa0f3c9e": ["0.3.0", "0.4.1"], "5a775a50-3372-1290-9ce0-1579c1e597fb": [ "0.1.0", @@ -18247,9 +18312,9 @@ "5ba96c72-cff1-411e-a333-ea2bbf4f2f78": [ "1.0.3447906", "1.0.3513646", - "1.0.3517186" + "1.0.3517186", + "1.0.3642585" ], - "5bb56a8d-9525-4af3-a64d-dae0677dd692": ["0.1.0", "0.1.1", "0.1.2"], "5bc8d075-b550-4236-a3c6-1cd3f52d90ee": ["1.0.0", "1.0.1"], "5bf98930-3058-4afe-b031-48d312459df4": [ "1.4.798", @@ -18287,7 +18352,6 @@ "0.10.0" ], "5c3d4b9f-3c7b-415d-a4e8-c7bc4f62d536": ["1.1.4"], - "5c41b001-294f-47b1-a5d5-34cbf7abe488": ["23.1.0"], "5c44ef11-265e-4581-9ec0-f6fdaa0908ef": ["0.4.0", "0.5.0", "0.6.0", "1.0.0"], "5c5c32ee-52ee-4b91-9ef6-b48f965f30e2": ["0.5.1", "0.5.2", "0.5.5", "0.5.6"], "5c63daef-d7f0-40cc-85d0-3b5f09d3e0ec": ["1.0.0", "1.1.0", "1.1.1"], @@ -18410,6 +18474,7 @@ "3.5.178", "3.5.220", "3.5.260", + "3.5.268", "4.0.124", "4.1.8", "4.1.50", @@ -18423,7 +18488,8 @@ "4.1.161", "4.1.178", "4.1.220", - "4.1.260" + "4.1.260", + "4.1.268" ], "5c826f20-4d2b-4ab6-a3f5-54956a2f65fe": ["1.0.20", "1.1.15"], "5c975f9d-1c3a-469f-b7c2-8907bf3eacf1": ["1.0.0", "1.3.0"], @@ -18598,7 +18664,10 @@ "0.9.11", "0.9.13", "0.9.14", - "0.9.15" + "0.9.15", + "0.10.0", + "0.10.1", + "0.10.2" ], "5d57f4e0-6fcd-4a6e-9d29-28e60297b850": ["0.1.0"], "5d741236-331c-4461-82a2-9d55eb91bb91": [ @@ -18888,7 +18957,11 @@ "9.1.11639", "9.1.11643", "9.1.11647", - "9.1.61695" + "9.1.61695", + "9.1.91713", + "9.1.91714", + "9.1.91716", + "9.1.91717" ], "5e683ca0-59bf-4a1e-ac5c-f4885372271c": [ "1.0.0", @@ -18965,6 +19038,7 @@ "1.7.2", "2.8.2" ], + "5ef76ecd-41c5-42a4-9d94-d44314efc517": ["23.1.0", "23.1.1", "23.1.2"], "5f0427b3-e660-4f4d-9a93-60dd13f40028": [ "0.0.7", "0.0.8", @@ -19015,6 +19089,19 @@ "0.1.54" ], "5f0427b3-e660-4f4d-9a93-60dd13f40029": ["0.0.1", "0.0.2"], + "5f0427b3-e660-4f4d-9a93-60dd13f40030": ["0.0.1"], + "5f0427b3-e660-4f4d-9a93-60dd13f40031": ["0.0.1", "0.0.11"], + "5f0427b3-e660-4f4d-9a93-60dd13f40032": [ + "0.0.1", + "0.0.2", + "0.0.3", + "0.0.4", + "0.0.5", + "0.0.6", + "0.0.7", + "0.0.8", + "0.0.9" + ], "5f085399-5bf7-44e2-9539-6b1125e4aa2f": [ "0.0.1", "0.0.3", @@ -19660,6 +19747,7 @@ "3.5.178", "3.5.220", "3.5.260", + "3.5.268", "4.0.8", "4.0.50", "4.0.89", @@ -19672,7 +19760,8 @@ "4.0.161", "4.0.178", "4.0.220", - "4.0.260" + "4.0.260", + "4.0.268" ], "63388616-cec1-4f0c-92e6-78e7cde08ef5": ["0.1.2", "0.1.3", "0.1.4", "0.1.5"], "633def46-148b-4100-9d5f-bc74881de42f": ["0.1.2", "0.1.6"], @@ -20164,6 +20253,7 @@ "0.1.4", "0.2.1" ], + "656977f5-2a08-4e85-b67b-eaea60b44c76": ["23.1.0", "23.1.1", "23.1.2"], "65751afb-5038-48f6-ae57-342a3a210165": ["1.1.0", "1.2.0", "1.6.3", "1.6.9"], "658b2abe-dcdc-45d9-b4ed-4fbc8a863d6b": [ "0.1.0", @@ -20612,7 +20702,8 @@ "666f48a9-3550-4db6-b74b-2f8aa4b99444": [ "2.11.3447906", "3.0.3513646", - "3.0.3517186" + "3.0.3517186", + "3.0.3642585" ], "66c0f6d3-431f-4e66-8e8b-bc4a3ed2eb90": [ "0.1.0", @@ -21112,7 +21203,6 @@ ], "6a64a121-4682-4b2d-950a-7a675ab636cc": ["7.5.0"], "6aaacd39-5014-4271-b466-45267f1f74a9": ["1.0.9"], - "6af551d1-13c6-44ce-bb8c-1a4a9c0af93b": ["22.6.0"], "6b04316e-495f-4243-86c6-6427a6c5b4d4": ["1.1.2", "1.1.3", "1.1.4"], "6b134cb3-d9ca-444e-9273-e89482a70569": ["1.0.0"], "6b25e590-344c-4dff-bd69-c20fe0b8cd8a": ["7.5.0"], @@ -21192,7 +21282,6 @@ "0.2.31", "0.2.32" ], - "6bfa46a4-a7a6-4e77-a683-0b8f7eb19ce4": ["23.1.0"], "6bfcb1cd-a7fe-46e6-abdb-e60c1cbd6906": [ "0.1.0", "0.1.1", @@ -21490,6 +21579,7 @@ "2.0.3383", "2.0.3402" ], + "6ccd396f-6642-4079-8653-c20980166070": ["23.1.0", "23.1.1", "23.1.2"], "6cf13cc2-b9c7-4164-af9e-1d5a0db47a6b": [ "0.0.2", "0.0.3", @@ -21597,6 +21687,7 @@ "4.32.0", "4.33.0", "4.34.0", + "4.35.0", "5.0.0", "5.1.0", "5.2.0", @@ -21610,7 +21701,8 @@ "5.8.0", "5.9.0", "5.10.0", - "5.11.0" + "5.11.0", + "5.12.0" ], "6d27c589-0e7f-4737-bba7-a9440ae3f87d": [ "1.0.0", @@ -21723,6 +21815,7 @@ "1.1.7", "1.2.0" ], + "6de965fa-d4a5-4a42-bbb6-035898549d19": ["23.1.0", "23.1.1", "23.1.2"], "6e103f70-3658-11e7-a455-7fec28a699f6": ["0.1.22"], "6e18e7cf-62c9-43e6-ab52-f7a2eab9432c": [ "0.2019.67", @@ -22075,7 +22168,8 @@ "1.2.7", "1.2.8", "1.2.9", - "1.2.10" + "1.2.10", + "1.2.11" ], "6e9144d5-e822-4838-be87-ca5f8fef046b": [ "0.1.7", @@ -22125,7 +22219,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "6ea9b0f1-2fb0-4735-bd6e-0f3f58f094ae": [ "0.1.0", @@ -22204,10 +22299,10 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "6f059bbc-83be-4058-8e6e-83cc8ad41da9": ["0.1.0"], - "6f0f2562-12bc-4d35-8451-74909df79cc3": ["23.1.0"], "6f432af8-1146-11ea-9a9f-362b9e155667": ["0.4.2", "0.6.8", "0.7.8"], "6f43479d-5b2a-4aae-a464-2be406aaa068": ["0.2.31"], "6f650d20-9c5d-4cce-ad66-e68742ceadf5": [ @@ -22991,7 +23086,11 @@ "9.1.11639", "9.1.11643", "9.1.11647", - "9.1.61695" + "9.1.61695", + "9.1.91713", + "9.1.91714", + "9.1.91716", + "9.1.91717" ], "72cd03e2-337b-4dfb-96ef-45652729df8d": [ "0.0.1", @@ -23494,6 +23593,7 @@ "0.1.1187689", "0.1.1239020" ], + "756266d7-4ce1-4522-a934-c08a5e5665f7": ["23.1.0", "23.1.1", "23.1.2"], "75791037-6539-683a-bfa1-a310d82016b8": ["2.0.0", "2.4.0", "2.5.0", "2.6.0"], "75791037-6539-683a-bfa1-a310d82016d3": ["2.2.0", "2.3.0"], "75797f68-ee17-4dcb-97e2-550eb87f2728": [ @@ -23595,7 +23695,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "75e0df60-f8c3-44b5-a48f-83f4ff71ae4b": [ "0.0.3", @@ -23755,7 +23856,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "76c103d8-c5e8-4f03-acaf-e31fbb276c84": [ "1.0.0", @@ -23861,7 +23963,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "76da6c87-b541-476b-8294-d47dc5679312": [ "9.0.2", @@ -24213,7 +24316,7 @@ "0.4.2", "0.4.7" ], - "79c830dd-92bb-4e02-b330-6638db9df26c": ["22.6.0"], + "79c830dd-92bb-4e02-b330-6638db9df26c": ["22.6.0", "23.2.0"], "79d92bb0-5cae-11e7-94c2-fff61a32ec2a": ["1.0.0", "1.0.3"], "79e0d24a-97b1-4cac-bcd5-398429dc44b0": [ "0.0.2", @@ -24271,7 +24374,6 @@ "7a3fbeab-c278-458e-94f8-f8cb044d10d1": ["0.1.2"], "7a3fbeab-c278-458e-94f8-f8cb044d10d5": ["0.1.1", "0.1.2"], "7a3fbeab-c278-458e-94f8-f8cb044d10d9": ["0.1.1", "1.0.5"], - "7a455a96-a278-4656-ba8c-076dd42b7d6f": ["23.1.0"], "7a5fadd7-438e-4e37-bba4-aac9d265893c": ["0.1.16", "0.1.17", "0.1.18"], "7a706bcb-daf2-49c0-b770-ce2db484205d": [ "0.0.33", @@ -24399,6 +24501,7 @@ "6.0.465", "6.0.502" ], + "7af26d69-0154-45e2-8a1c-ca0325aac951": ["23.1.0", "23.1.1", "23.1.2"], "7b0900d8-19d2-4c2a-9131-473d431266af": [ "1.7.0", "1.7.1", @@ -25374,6 +25477,7 @@ "0.2.2", "0.2.3" ], + "7ec297dc-e276-4efa-bae7-d4c11e06fcab": ["23.1.0", "23.1.1", "23.1.2"], "7ed4dab3-0331-5132-a663-e40d70a9e1be": ["0.124.0", "1.212.0"], "7ef7cdfa-aa45-42c5-93c8-d7603643dd99": [ "1.0.1", @@ -25965,7 +26069,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "805fbdcc-38d9-4043-9c04-e84e7208baa8": [ "0.2.0", @@ -26272,7 +26377,6 @@ "2.0.3", "2.0.4" ], - "821df394-873a-4216-8635-5b952f6cfc7c": ["23.1.0"], "82264530-7c14-4534-9fdb-b82b053342f4": ["1.1.2"], "822d6cb9-d4d1-431b-9513-e7db7d718a49": [ "1.0.2", @@ -26486,7 +26590,8 @@ "1.0.5", "1.0.6", "1.0.7", - "1.0.8" + "1.0.8", + "1.0.9" ], "83c91e05-bdf9-42ce-b27e-6dae8771294e": [ "0.2.15", @@ -26534,7 +26639,8 @@ "83faa8cf-ff90-4cb5-8ca0-389edc2c0af5": [ "2.11.3447906", "3.0.3513646", - "3.0.3517186" + "3.0.3517186", + "3.0.3642585" ], "84110c9d-d8df-43a1-8d53-672b6bf34663": [ "1.0.44", @@ -27772,6 +27878,7 @@ "2.5.640", "2.6.687" ], + "8aded5a2-27d8-40cd-86ab-bf0a4ba8770e": ["23.1.0", "23.1.1", "23.1.2"], "8af7083b-a782-46c2-94fc-18965c6b48bf": ["1.0.0", "1.1.0"], "8b01f2af-78e5-4828-81a1-b1c763fe7ca9": ["1.0.0", "1.0.2", "1.0.3"], "8b05c43b-e07e-43e1-8cfd-fa60802a18a9": [ @@ -27785,7 +27892,6 @@ "0.1.1640004186", "0.1.1640004632" ], - "8b6361e6-113e-43d0-b6dd-d7f6cbe874d0": ["23.1.0"], "8bac6a77-5fff-498a-8771-4c18225430d3": ["1.0.1"], "8bcdcddf-d4f6-406b-bb21-dca8b911665d": [ "0.90.0", @@ -28028,6 +28134,7 @@ "8d0174b6-d3b5-41fe-a22c-8ab4bcf19272": ["1.0.0", "1.0.3"], "8d07311b-5c6d-4dba-9983-342f5471940b": ["0.2.0"], "8d09ef8e-4e82-4802-af33-6d094ad1b6f4": ["1.0.0"], + "8d20bedf-7996-4cbb-b6f8-53b1dd6b8d9a": ["23.1.0", "23.1.1", "23.1.2"], "8d583286-8c17-4b19-b113-25c54730a63b": ["1.0.1", "1.0.2", "1.0.5", "1.0.9"], "8d616517-6390-454f-b369-6fd038d8fe96": [ "1.0.0", @@ -28060,7 +28167,6 @@ "8de2a935-98e7-4232-9431-7658ac2add52": ["2.1.0", "2.1.1", "2.2.1"], "8e065185-f0bc-4e04-991f-5476e271c92a": ["0.1.0", "0.1.1", "0.1.2", "0.1.3"], "8e2d6b0b-71a0-4740-84c4-ad2c3f229867": ["1.0.0", "1.0.3", "1.1.0"], - "8e524f4d-a1b0-4ecb-9914-3b16499eeccd": ["23.1.0"], "8e5938ef-e118-40d8-8051-5b8569fe0bf3": ["1.0.0", "1.0.3", "1.1.0"], "8e70da9d-532d-4416-a07f-5ec10f84339f": [ "0.6.7", @@ -28303,6 +28409,9 @@ "0.9.13", "0.9.14", "0.9.15", + "0.10.0", + "0.10.1", + "0.10.2", "1.0.0", "5.0.2" ], @@ -28452,6 +28561,7 @@ ], "913b4df6-df22-496c-a007-86e88ab65bae": ["21.4.1"], "9147289a-2501-4ad1-b2e3-aa3f7817b007": ["0.1.0"], + "914acf0d-6c0a-444b-a2ad-3c7f8fa397d0": ["23.1.0", "23.1.1", "23.1.2"], "9155350c-422e-44a7-8d98-ed28e4bb8649": ["0.1.0"], "9177f350-4f43-11e7-8a59-cd20d17e2322": ["0.1.0", "0.1.1", "0.2.0"], "9179241e-ef84-47f8-948a-329278287c6c": ["1.0.0"], @@ -28568,7 +28678,6 @@ "1.0.10", "1.1.0" ], - "9272e200-84b3-445a-9964-e079fa1fc4f2": ["23.1.0"], "9279cedb-d351-5297-a412-ac89b570457e": [ "1.2.0", "1.3.0", @@ -28911,7 +29020,8 @@ "1.414.0", "1.415.0", "1.416.0", - "1.419.0" + "1.419.0", + "1.420.0" ], "941d4821-d5b0-4b4b-8e2d-bae866fd5d85": [ "0.0.10", @@ -29525,7 +29635,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "97687860-e43c-46ec-a079-967886619de2": ["1.0.0"], "9788ca49-dc8f-4d6b-bd5a-bab0fed0bc0c": [ @@ -29558,7 +29669,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "97a070c8-e426-46aa-8a40-4ac9760ce4f4": ["1.0.0"], "97d5a2f2-92a0-475c-a120-591a43a7bc93": [ @@ -29679,6 +29791,7 @@ "2.0.0", "2.0.1" ], + "98fee4ab-6711-4399-a8c7-c6a2227d0f10": ["23.1.0", "23.1.1", "23.1.2"], "9917dac2-0ff3-4b6a-b236-9baff3bbb99d": [ "1.1.0", "3.1.0", @@ -29686,7 +29799,6 @@ "3.1.2", "3.1.3" ], - "992f8568-0eec-4d3b-bd8d-962486cb706c": ["23.1.0"], "99796404-38d2-487b-887e-5b581b5c47eb": [ "0.0.3", "0.1.0", @@ -29945,9 +30057,7 @@ "99ea0209-b47e-4a35-8084-9a8eb95838ee": ["0.1.0", "0.1.1"], "9a42f43b-1191-4139-a980-32915814b378": ["1.0.0"], "9a4aaa5b-0edd-4018-b9eb-60dbba0ab713": ["2.0.0", "2.0.1", "2.2.0"], - "9a53d609-93d6-49ba-a389-ded339231449": ["23.1.0"], "9a610776-bf44-420c-8c39-6c3eaa907b19": ["0.2.5"], - "9a8522df-c774-43b0-9a27-8f6682bc7935": ["23.1.0"], "9a90d8a1-59bd-4e6d-a272-395ebca0781d": [ "1.0.0", "1.0.1", @@ -30008,7 +30118,10 @@ "0.9.11", "0.9.13", "0.9.14", - "0.9.15" + "0.9.15", + "0.10.0", + "0.10.1", + "0.10.2" ], "9aea8869-034d-4094-a6ad-880767d0686c": [ "1.0.2", @@ -30236,7 +30349,6 @@ "2.1.10", "3.0.10" ], - "9cd3110e-b677-4719-a290-57aa5b1b2928": ["23.1.0"], "9cd95940-14a5-11e9-a400-87ffab4fe319": [ "0.2.0", "0.2.1", @@ -30500,7 +30612,6 @@ "2.4.2", "2.4.3" ], - "9ee808fd-b3ed-4a55-91d4-060c597bbbfb": ["23.1.0"], "9f152d4d-9616-47f8-a0a8-fc1a8c88afbe": [ "1.420.10", "1.420.213", @@ -30783,6 +30894,7 @@ "1.0.17", "1.0.42" ], + "9fd78d2c-92ed-4734-8b23-ed7d87208c63": ["23.1.0", "23.1.1", "23.1.2"], "a0393340-3465-4b5d-bbc4-0f6b1cd5ae4c": [ "0.1.0", "0.1.3", @@ -30889,6 +31001,9 @@ "0.9.13", "0.9.14", "0.9.15", + "0.10.0", + "0.10.1", + "0.10.2", "1.0.0", "5.0.2" ], @@ -30916,7 +31031,6 @@ "1.1.7" ], "a0a0f697-cc4b-5bd3-bc8d-22ad9c77baab": ["0.125.0", "1.131.0", "2.214.0"], - "a0aec1ff-837c-49fd-98e4-3477816314d0": ["23.1.0"], "a0ca5cb2-bacd-46ab-82dc-b0e1984f6006": [ "8.5.171", "8.5.742", @@ -30965,7 +31079,9 @@ "9.1.51686", "9.1.61689", "9.1.71696", - "9.1.81710" + "9.1.81710", + "9.1.91713", + "9.1.91717" ], "a0cea86d-5dc4-4df4-bbf7-1940642467c2": ["1.188.0"], "a0d38a2c-522d-4ece-973f-1cf9b6ea158c": ["0.202.0"], @@ -31410,7 +31526,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "a4b6bbe8-1976-45f9-9595-444dedb5743f": [ "1.0.0", @@ -31551,7 +31668,6 @@ ], "a67d9016-264e-4df8-b47e-85ea302d09b3": ["3.0.0", "3.0.1", "4.0.0", "5.0.1"], "a6808a30-c138-11e6-8c43-453c29d2d2d0": ["1.0.0"], - "a68cb3bc-ad13-4bd8-9d65-7fbd54d5092e": ["23.1.0"], "a6900347-c049-485c-b383-2902e10c28f2": [ "0.0.2", "0.0.3", @@ -31903,7 +32019,12 @@ "0.1.38", "0.1.39", "0.1.40", - "0.1.41" + "0.1.41", + "0.1.42", + "0.1.43", + "0.1.44", + "0.1.45", + "0.1.46" ], "a709d5ab-8356-4228-9172-58d362fc4aa7": ["0.1.18"], "a7692b5d-a590-5763-949b-12ac8ed24643": [ @@ -32105,6 +32226,7 @@ "1.4.0", "1.5.0" ], + "a7f5b121-015f-4a44-bb0e-17ab853e6e64": ["23.1.0", "23.1.1", "23.1.2"], "a7fb084b-f87a-4c04-ac87-8f4028c301d8": [ "0.1.0", "0.1.2", @@ -32401,6 +32523,7 @@ ], "a8ef694b-5a8a-4a4c-8f59-f6b7d671fa9b": ["0.1.0"], "a8fb3344-8d08-4127-851e-7090f1eb0b6b": ["15.188.1", "15.188.2"], + "a926f430-cee2-4e01-a27b-3b717a2fdc34": ["23.1.0", "23.1.1", "23.1.2"], "a93140cf-a222-40bf-a585-68f23b8e200f": [ "1.0.0", "1.7.0", @@ -33016,7 +33139,6 @@ "1.0.30" ], "ab2326bd-b83b-4a74-a5a5-a3927c5a229c": ["1.0.1"], - "ab2c4c3d-e4d9-49df-9276-abcc5dfcbc14": ["23.1.0"], "ab41f149-dbaa-4bf3-b1df-905d523a16c1": [ "1.1.4999", "1.1.5999", @@ -34475,7 +34597,7 @@ ], "ad5ad4a9-f3e0-4ca1-bf35-855d197482e9": ["5.6.10"], "ad5ee7de-41ec-42c8-84d0-8359bc39a4f5": ["0.1.0", "1.0.0"], - "ad948672-12e4-4c52-b6ef-8c84cc5d8ada": ["23.1.0"], + "ad673ad4-77b6-4c54-8a37-21d55d5e880b": ["23.1.0", "23.1.1", "23.1.2"], "ad98d6a4-f775-45e0-a4c1-6b31b89f38d1": [ "1.0.1", "1.0.2", @@ -35708,7 +35830,6 @@ "3.0.3517186" ], "aef91bee-4793-41aa-b8e8-96a3b2de4ce4": ["1.0.13", "1.0.15"], - "af1fd5e0-48e5-4444-9a41-67ebc3981530": ["23.1.0"], "af2736a0-e189-11e5-8909-474652c774cb": ["0.1.4"], "af548c05-29b1-497d-823c-2d172019ccf4": [ "1.20200421.29360", @@ -45318,7 +45439,8 @@ "3.1.0", "3.2.0", "3.3.0", - "3.3.1" + "3.3.1", + "3.4.0" ], "apicoveragetest": [ "0.1.0", @@ -46955,7 +47077,7 @@ "5.2.0", "6.0.0" ], - "armdeploymentinsights": ["1.0.0", "1.0.1", "2.0.1"], + "armdeploymentinsights": ["1.0.0", "1.0.1", "2.0.1", "2.1.0"], "armoutputparserextension": [ "0.0.1", "0.0.2", @@ -49522,12 +49644,14 @@ "authoritypartnersinc.arm-deployment-insights.arm-deployment-insights-task.2ed34943-e39d-4289-bd57-686fae0f69d7": [ "1.0.0", "1.0.1", - "2.0.1" + "2.0.1", + "2.1.0" ], "authoritypartnersinc.arm-deployment-insights.arm-deployment-insights-task.armdeploymentinsights": [ "1.0.0", "1.0.1", - "2.0.1" + "2.0.1", + "2.1.0" ], "autodefects": ["1.0.21", "1.1.0", "1.1.1", "1.1.5"], "automagically.backupremotefolder.backupremotefolder.backupremotefolder": [ @@ -50836,7 +50960,9 @@ "1.0.3", "1.0.4", "1.0.5", - "1.1.0" + "1.1.0", + "1.2.0", + "1.2.1" ], "az-pipelines-2-sharepoint": [ "0.1.0", @@ -52348,6 +52474,26 @@ "2.0.0" ], "azureappservicesetconnectionstrings": ["1.0.0", "2.0.0"], + "azurechaosstudio.chaosstudioextension.custom-build-release-task.0a1c7f0a-2381-4759-9308-d541a4c00377": [ + "1.1.1", + "1.1.2", + "1.1.3", + "1.1.4", + "1.1.5", + "1.1.6", + "1.1.7", + "1.1.11" + ], + "azurechaosstudio.chaosstudioextension.custom-build-release-task.chaos-studio-release-task-extension": [ + "1.1.1", + "1.1.2", + "1.1.3", + "1.1.4", + "1.1.5", + "1.1.6", + "1.1.7", + "1.1.11" + ], "azurecontaineragentcreate": ["0.9.0", "0.9.1"], "azurecontainerappsrc": [ "0.1.0", @@ -53262,6 +53408,7 @@ "0.1.2161" ], "b0604801-95b3-4623-94b7-5b6935b362c5": ["1.0.0", "1.0.18"], + "b075614e-f76c-485c-a8e0-ad843fad0e36": ["23.1.0", "23.1.1", "23.1.2"], "b07f3415-0818-4108-b90c-d0255f37b7d2": [ "1.0.0", "1.0.4", @@ -53302,7 +53449,7 @@ "15.145.0" ], "b0b5419e-bdda-48b4-84fa-55d8af6b5bfb": ["1.0.0"], - "b0c5b027-c823-4a19-a86f-8717d8fcfb40": ["23.1.0"], + "b0dccc97-764d-49e2-ae58-c1df071fea3f": ["23.1.0", "23.1.1", "23.1.2"], "b0e438f2-18ba-44df-b6e5-1deb7a29811f": ["1.19.1", "1.21.1"], "b104a15c-1856-4671-986f-e40a6cb517e5": [ "1.0.4", @@ -53425,6 +53572,7 @@ "1.1.9" ], "b1c93e62-5cbd-4d4d-9cba-3b1185f26fb2": ["1.188.0"], + "b1ca1391-e6ee-40f0-b751-cb3fca446451": ["23.1.0", "23.1.1", "23.1.2"], "b1fc9b46-8253-4031-8657-f5579cd1ab5c": [ "1.0.2", "1.0.4", @@ -53500,6 +53648,7 @@ "3.5.178", "3.5.220", "3.5.260", + "3.5.268", "4.0.8", "4.0.50", "4.0.89", @@ -53512,8 +53661,10 @@ "4.0.161", "4.0.178", "4.0.220", - "4.0.260" + "4.0.260", + "4.0.268" ], + "b2b7480c-7f29-4afe-a33d-23c0d452470f": ["23.1.0", "23.1.1", "23.1.2"], "b2c-policy-build": [ "0.1.0", "0.1.1", @@ -53608,7 +53759,10 @@ "0.9.11", "0.9.13", "0.9.14", - "0.9.15" + "0.9.15", + "0.10.0", + "0.10.1", + "0.10.2" ], "b3c6bb07-1292-44e7-9ec9-b211fc98b6d2": [ "0.159.0", @@ -53934,6 +54088,7 @@ "2.2.57" ], "b5175205-82c0-4519-b4de-7cd8b99fc43f": ["0.1.0", "0.1.1"], + "b520ca01-2912-44ad-9977-caad43d70e66": ["23.1.0", "23.1.1", "23.1.2"], "b5241088-1066-4c72-bb30-a9138dcf5d83": ["0.0.1", "0.0.2", "0.0.3"], "b5377cda-e54d-425a-999a-5cca18d44267": [ "1.0.0", @@ -54228,7 +54383,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "b68d33d0-8397-4c24-a852-af122e8ed969": [ "1.0.0", @@ -54248,7 +54404,7 @@ "1.3.8" ], "b69d19a0-7f6d-11e5-a86a-c199aa7a6cf0": ["1.1.0", "1.2.0", "1.2.1", "1.2.2"], - "b6b825f4-533e-42de-82e8-633bb17be567": ["22.6.0"], + "b6b825f4-533e-42de-82e8-633bb17be567": ["22.6.0", "23.2.0"], "b6d19a53-dc5f-4b71-a49c-63e87f49e9ab": [ "1.1.0", "1.1.1", @@ -54313,6 +54469,7 @@ "0.146.1876", "0.146.1924" ], + "b6fd383d-fc98-405d-a98a-37a161e7cc9b": ["23.1.0", "23.1.1", "23.1.2"], "b700f673-acfc-4f5f-8b5e-24a585646319": [ "1.0.1", "1.0.2", @@ -54537,7 +54694,9 @@ "9.1.51686", "9.1.61689", "9.1.71696", - "9.1.81710" + "9.1.81710", + "9.1.91713", + "9.1.91717" ], "b7cd5a2e-1c4c-4f61-8b25-ba72cf4fc8ce": [ "0.1.0", @@ -54602,7 +54761,6 @@ "0.34.0" ], "b7e4e747-3d00-4d72-bbf8-154889c0ae17": ["1.0.0"], - "b7f1f322-d1fb-4361-a83f-1f45c81c6bc4": ["23.1.0"], "b803651c-21ac-4851-9fbf-c75b0e82e4c5": [ "0.8.0", "0.9.0", @@ -54619,7 +54777,10 @@ "0.9.11", "0.9.13", "0.9.14", - "0.9.15" + "0.9.15", + "0.10.0", + "0.10.1", + "0.10.2" ], "b80885a6-50d9-4985-95b2-5696f11cb69f": ["1.0.36", "1.0.37", "1.0.38"], "b8191a40-7d09-11e7-adbb-b774110c0faf": [ @@ -54804,6 +54965,7 @@ "3.5.178", "3.5.220", "3.5.260", + "3.5.268", "4.0.8", "4.0.50", "4.0.89", @@ -54816,7 +54978,8 @@ "4.0.161", "4.0.178", "4.0.220", - "4.0.260" + "4.0.260", + "4.0.268" ], "b876037c-d990-4718-baca-65a8df0dd9dd": [ "1.0.1", @@ -54913,7 +55076,7 @@ "1.9.26", "1.9.27" ], - "b9d2cbbf-a568-432b-bddc-4a8ad11c06a5": ["22.6.0"], + "b9d2cbbf-a568-432b-bddc-4a8ad11c06a5": ["22.6.0", "23.2.0"], "b9e73261-8b50-4e5b-8064-45ea8d5521c1": ["0.1.0", "1.0.0"], "ba0d0ad0-393c-11eb-bbda-d53a76740bce": [ "0.1.0", @@ -54973,7 +55136,6 @@ ], "ba7a9474-2599-45da-877d-75e5ad6df8ce": ["21.4.1"], "ba7d1938-81b7-4018-be0a-61093123521b": ["1.3.5"], - "baaac1a9-a733-4cd2-ac9c-f1efe6c04fd1": ["23.1.0"], "bab49c9c-fc9b-4d7c-9919-c4272a0930b7": ["9.0.2", "12.0.3"], "backendpack": ["0.1.18", "0.1.19", "1.0.7", "1.0.8", "1.0.9"], "backrightup.build-release-task.custom-build-release-task.9674ffe2-37d9-468a-acd1-724db1a396d0": [ @@ -56605,7 +56767,7 @@ "0.7.0", "0.8.0" ], - "bfc50905-2ff3-4d34-be60-b59618fd371e": ["22.6.0"], + "bfc50905-2ff3-4d34-be60-b59618fd371e": ["22.6.0", "23.2.0"], "bfd05e80-f553-4a07-aaff-b44ab65bd61d": [ "0.0.1", "0.0.3", @@ -56636,7 +56798,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "bfd2bc68-a3b1-4910-bf8f-110fe978ca22": [ "5.8.0", @@ -59091,7 +59254,6 @@ "0.9.1", "0.9.2" ], - "c003aa1a-03b9-4373-9a01-efd55559765d": ["23.1.0"], "c004e2d2-e842-40f0-9ed4-89fb9bdd2e33": [ "1.420.10", "1.420.213", @@ -59296,6 +59458,7 @@ "4.0.5" ], "c0194396-f7c0-4f61-8441-2bd934dac867": ["1.0.1", "1.0.3"], + "c01a83fb-0553-4448-8136-ad7909d8bb33": ["23.1.0", "23.1.1", "23.1.2"], "c01ed260-de55-11e5-a96c-15f2d80f9c9b": ["0.1.2", "0.1.3", "0.1.4"], "c030fa5b-9e93-47fc-a3ed-3ea4e45ddccf": ["1.0.0", "1.0.1", "1.0.2"], "c051fce0-2c60-11e6-b89d-9176a5588bd7": ["0.1.0"], @@ -59541,6 +59704,7 @@ "0.4.4", "0.4.5" ], + "c1fd831a-3f3e-48f7-8e97-b4462b7bee5a": ["23.1.0", "23.1.1", "23.1.2"], "c2352bb0-02ff-11e7-b013-d7281afbb3a9": ["0.0.1", "0.0.2"], "c2399c77-038c-48ca-86cf-f46ef717596e": ["1.0.0", "1.0.1"], "c23a6305-299e-4871-8cba-1bca894d21dc": [ @@ -59610,7 +59774,6 @@ "0.1.23", "0.1.30" ], - "c27fd67c-1147-4c17-9956-cbdd878eba56": ["23.1.0"], "c288dcae-5ae4-4a37-a59d-11bb07d393a9": [ "1.0.1", "1.0.2", @@ -60169,7 +60332,10 @@ "0.9.11", "0.9.13", "0.9.14", - "0.9.15" + "0.9.15", + "0.10.0", + "0.10.1", + "0.10.2" ], "c791abe6-9acf-4302-bcbd-af77c84f72c0": ["0.2.0", "0.2.3", "0.2.4", "0.2.5"], "c7ff6910-8d2a-43cb-859f-83cb8db6e4e9": [ @@ -61109,7 +61275,8 @@ "5.4.59", "5.4.61", "5.4.62", - "5.4.66" + "5.4.66", + "5.4.67" ], "casthighlight.highlight-automated-code-scan.custom-build-task.highlightcodescan": [ "0.1.0", @@ -61176,7 +61343,8 @@ "5.4.59", "5.4.61", "5.4.62", - "5.4.66" + "5.4.66", + "5.4.67" ], "catcomp.btdfprojectfileupdatertypescript.vsts-btdf-projver-task.416b14b0-7411-4148-bdbe-42f73fd86c77": [ "0.1.2", @@ -62373,7 +62541,8 @@ "1.33.1", "1.34.0", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "ce0b296e-f1e6-4be2-a18b-a431c106cb86": [ "0.0.76", @@ -62388,7 +62557,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "ce296515-b55b-4894-924a-eb7a57d618f1": ["1.0.3"], "ce399001-0aaa-4364-b5f8-50543569449d": ["1.0.1"], @@ -63168,6 +63338,16 @@ "0.1.0" ], "changetaskstateonex": ["0.1.0"], + "chaos-studio-release-task-extension": [ + "1.1.1", + "1.1.2", + "1.1.3", + "1.1.4", + "1.1.5", + "1.1.6", + "1.1.7", + "1.1.11" + ], "chaosattackrunner": [ "0.3.11", "0.3.21", @@ -67554,7 +67734,6 @@ "6.20152.28", "6.20207.2" ], - "cnfsegregationtask": ["22.6.0"], "cobertura-transform": ["0.0.4", "0.0.5", "0.0.7", "0.0.8"], "code insight scan": ["2.0.0", "2.1.0", "3.1.0", "3.2.0"], "code-management-mainer": [ @@ -69741,7 +69920,7 @@ "1.0.6", "1.0.7" ], - "create-annotated-tags": ["0.0.1", "0.0.2", "0.0.3"], + "create-annotated-tags": ["0.0.1", "0.0.2", "0.0.3", "0.0.4"], "create-pull-request": [ "1.0.0", "1.0.1", @@ -71036,7 +71215,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "d07f3415-0818-4108-b90c-d0255f37b7d2": [ "1.0.0", @@ -71130,7 +71310,8 @@ "5.4.59", "5.4.61", "5.4.62", - "5.4.66" + "5.4.66", + "5.4.67" ], "d0b32dd5-f8bd-4118-8e66-699ad33189a2": [ "0.0.12", @@ -71472,7 +71653,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "d4be1abb-797c-4c72-9a8b-e7940d99989b": [ "1.29.0", @@ -71742,6 +71924,7 @@ "1.1.7", "1.1.8" ], + "d555d02e-87ef-4481-8267-10b4a8d9fc0b": ["23.1.0", "23.1.1", "23.1.2"], "d57ab29a-be69-431f-8523-e4bd1b170eb8": [ "1.1.10", "1.1.11", @@ -72303,7 +72486,8 @@ "0.3.1900000319", "0.3.1900000324", "0.3.1900000325", - "0.3.1900000326" + "0.3.1900000326", + "0.3.1900000328" ], "d797ac40-e1b3-4d1f-b665-2f282ca41541": ["21.4.1"], "d7b8f29f-640e-4e08-926b-de4e265b6742": ["0.1.0", "0.1.1", "0.121.0"], @@ -72511,7 +72695,12 @@ "0.1.38", "0.1.39", "0.1.40", - "0.1.41" + "0.1.41", + "0.1.42", + "0.1.43", + "0.1.44", + "0.1.45", + "0.1.46" ], "d8ac3c00-0e8b-11e9-a5ae-9f228aba3e18": [ "0.2.0", @@ -72904,7 +73093,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "da327da2-cdb8-4250-b401-4ec8afe36d6c": ["1.0.1"], "da348ff0-8e5d-11e7-a7f2-03f376957963": [ @@ -72966,6 +73156,7 @@ "2.0.3", "3.0.0" ], + "da6e49d9-4357-4fc8-a7fb-5d9206b562e7": ["23.1.0", "23.1.1", "23.1.2"], "da9d5e69-e1b0-4af0-8f4b-a236c0c1d55d": [ "2.0.0", "2.0.3", @@ -75364,57 +75555,130 @@ "dbforgesync": ["1.0.60", "1.1.1"], "dbmaestro-add-objects": ["7.5.0"], "dbmaestro-add-schema": ["7.5.0"], - "dbmaestro-add-tag": ["7.5.0", "21.4.1", "23.1.0"], - "dbmaestro-add-tag-type": ["7.5.0", "21.4.1", "23.1.0"], - "dbmaestro-apply-label": ["7.5.0", "21.4.1", "23.1.0"], - "dbmaestro-backup": ["21.4.1", "23.1.0"], - "dbmaestro-build": ["7.5.6", "21.4.1", "23.1.0"], + "dbmaestro-add-tag": ["7.5.0", "21.4.1", "23.1.0", "23.1.1", "23.1.2"], + "dbmaestro-add-tag-type": ["7.5.0", "21.4.1", "23.1.0", "23.1.1", "23.1.2"], + "dbmaestro-apply-label": ["7.5.0", "21.4.1", "23.1.0", "23.1.1", "23.1.2"], + "dbmaestro-backup": ["21.4.1", "23.1.0", "23.1.1", "23.1.2"], + "dbmaestro-build": ["7.5.6", "21.4.1", "23.1.0", "23.1.1", "23.1.2"], "dbmaestro-build-by-task-ids": ["7.5.0"], - "dbmaestro-build-env-to-version": ["7.5.0", "21.4.1", "23.1.0"], - "dbmaestro-cancel-job": ["7.5.0", "21.4.1", "23.1.0"], - "dbmaestro-change-schema-password": ["7.5.6", "21.4.1", "23.1.0"], + "dbmaestro-build-env-to-version": [ + "7.5.0", + "21.4.1", + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro-cancel-job": ["7.5.0", "21.4.1", "23.1.0", "23.1.1", "23.1.2"], + "dbmaestro-change-schema-password": [ + "7.5.6", + "21.4.1", + "23.1.0", + "23.1.1", + "23.1.2" + ], "dbmaestro-check-in": ["7.5.0"], "dbmaestro-check-out": ["7.5.0"], - "dbmaestro-create-manifest-file": ["7.5.9", "21.4.1", "23.1.0"], - "dbmaestro-custom-build": ["7.5.6", "21.4.1", "23.1.0"], + "dbmaestro-create-manifest-file": [ + "7.5.9", + "21.4.1", + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro-custom-build": ["7.5.6", "21.4.1", "23.1.0", "23.1.1", "23.1.2"], "dbmaestro-custom-build-by-task-ids": ["7.5.0"], - "dbmaestro-delete-project": ["23.1.0"], - "dbmaestro-delete-project-mapping": ["7.5.0", "21.4.1", "23.1.0"], - "dbmaestro-delete-tag": ["7.5.0", "21.4.1", "23.1.0"], - "dbmaestro-delete-tag-type": ["7.5.0", "21.4.1", "23.1.0"], + "dbmaestro-delete-project": ["23.1.0", "23.1.1", "23.1.2"], + "dbmaestro-delete-project-mapping": [ + "7.5.0", + "21.4.1", + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro-delete-tag": ["7.5.0", "21.4.1", "23.1.0", "23.1.1", "23.1.2"], + "dbmaestro-delete-tag-type": [ + "7.5.0", + "21.4.1", + "23.1.0", + "23.1.1", + "23.1.2" + ], "dbmaestro-demote-package": ["7.5.0", "21.4.1"], - "dbmaestro-display-match-schemas": ["7.5.6", "21.4.1", "23.1.0"], - "dbmaestro-display-project-mapping": ["7.5.0", "21.4.1", "23.1.0"], - "dbmaestro-export-project": ["23.1.0"], - "dbmaestro-get-activities": ["21.4.1", "23.1.0"], - "dbmaestro-get-backups": ["21.4.1", "23.1.0"], - "dbmaestro-get-env-packages": ["7.5.0", "21.4.1", "23.1.0"], - "dbmaestro-get-latest": ["7.5.6", "21.4.1", "23.1.0"], - "dbmaestro-get-packages": ["21.4.1", "23.1.0"], - "dbmaestro-get-project-data": ["21.4.1", "23.1.0"], - "dbmaestro-get-roles": ["21.4.1", "23.1.0"], - "dbmaestro-get-specific": ["7.5.6", "21.4.1", "23.1.0"], - "dbmaestro-get-user-project-roles": ["21.4.1", "23.1.0"], - "dbmaestro-import-project": ["23.1.0"], - "dbmaestro-package": ["7.5.0", "21.4.1", "23.1.0"], - "dbmaestro-pre-check": ["7.5.0", "21.4.1", "23.1.0"], - "dbmaestro-pre-check-environment": ["21.4.1", "23.1.0"], - "dbmaestro-project-mapping": ["7.5.0", "21.4.1", "23.1.0"], + "dbmaestro-display-match-schemas": [ + "7.5.6", + "21.4.1", + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro-display-project-mapping": [ + "7.5.0", + "21.4.1", + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro-export-project": ["23.1.0", "23.1.1", "23.1.2"], + "dbmaestro-get-activities": ["21.4.1", "23.1.0", "23.1.1", "23.1.2"], + "dbmaestro-get-backups": ["21.4.1", "23.1.0", "23.1.1", "23.1.2"], + "dbmaestro-get-env-packages": [ + "7.5.0", + "21.4.1", + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro-get-latest": ["7.5.6", "21.4.1", "23.1.0", "23.1.1", "23.1.2"], + "dbmaestro-get-packages": ["21.4.1", "23.1.0", "23.1.1", "23.1.2"], + "dbmaestro-get-project-data": ["21.4.1", "23.1.0", "23.1.1", "23.1.2"], + "dbmaestro-get-roles": ["21.4.1", "23.1.0", "23.1.1", "23.1.2"], + "dbmaestro-get-specific": ["7.5.6", "21.4.1", "23.1.0", "23.1.1", "23.1.2"], + "dbmaestro-get-user-project-roles": ["21.4.1", "23.1.0", "23.1.1", "23.1.2"], + "dbmaestro-import-project": ["23.1.0", "23.1.1", "23.1.2"], + "dbmaestro-login": ["23.1.2"], + "dbmaestro-package": ["7.5.0", "21.4.1", "23.1.0", "23.1.1", "23.1.2"], + "dbmaestro-pre-check": ["7.5.0", "21.4.1", "23.1.0", "23.1.1", "23.1.2"], + "dbmaestro-pre-check-environment": ["21.4.1", "23.1.0", "23.1.1", "23.1.2"], + "dbmaestro-project-mapping": [ + "7.5.0", + "21.4.1", + "23.1.0", + "23.1.1", + "23.1.2" + ], "dbmaestro-promote-package": ["7.5.0", "21.4.1"], - "dbmaestro-restore": ["21.4.1", "23.1.0"], - "dbmaestro-run-package-dev": ["7.5.6", "21.4.1", "23.1.0"], + "dbmaestro-restore": ["21.4.1", "23.1.0", "23.1.1", "23.1.2"], + "dbmaestro-run-package-dev": [ + "7.5.6", + "21.4.1", + "23.1.0", + "23.1.1", + "23.1.2" + ], "dbmaestro-set-integration-state": ["7.5.6"], - "dbmaestro-set-version": ["7.5.0", "21.4.1", "23.1.0"], - "dbmaestro-sync-permissions": ["21.4.1", "23.1.0"], - "dbmaestro-task-rollback": ["7.5.0", "21.4.1", "23.1.0"], - "dbmaestro-transfer-package": ["7.5.0", "21.4.1", "23.1.0"], - "dbmaestro-transfer-package-down": ["23.1.0"], - "dbmaestro-transfer-package-up": ["23.1.0"], - "dbmaestro-update-project": ["23.1.0"], - "dbmaestro-update-tag-type-name": ["7.5.0", "21.4.1", "23.1.0"], - "dbmaestro-upgrade": ["7.5.0", "21.4.1", "23.1.0"], - "dbmaestro-validate": ["7.5.0", "21.4.1", "23.1.0"], - "dbmaestro-view-labels": ["7.5.0", "21.4.1", "23.1.0"], + "dbmaestro-set-version": ["7.5.0", "21.4.1", "23.1.0", "23.1.1", "23.1.2"], + "dbmaestro-sync-permissions": ["21.4.1", "23.1.0", "23.1.1", "23.1.2"], + "dbmaestro-task-rollback": ["7.5.0", "21.4.1", "23.1.0", "23.1.1", "23.1.2"], + "dbmaestro-transfer-package": [ + "7.5.0", + "21.4.1", + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro-transfer-package-down": ["23.1.0", "23.1.1", "23.1.2"], + "dbmaestro-transfer-package-up": ["23.1.0", "23.1.1", "23.1.2"], + "dbmaestro-update-project": ["23.1.0", "23.1.1", "23.1.2"], + "dbmaestro-update-tag-type-name": [ + "7.5.0", + "21.4.1", + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro-upgrade": ["7.5.0", "21.4.1", "23.1.0", "23.1.1", "23.1.2"], + "dbmaestro-validate": ["7.5.0", "21.4.1", "23.1.0", "23.1.1", "23.1.2"], + "dbmaestro-view-labels": ["7.5.0", "21.4.1", "23.1.0", "23.1.1", "23.1.2"], "dbmaestro.dbmaestro-automation-integration-2-4-1.dbmaestro-add-tag-type-utililty-task.4537b95e-61a8-45af-b178-c7e5f86d17b9": [ "21.4.1" ], @@ -75877,271 +76141,460 @@ "dbmaestro.dbmaestro-automation-integration-2-7.dbmaestro-view-labels-utility-task.dbmaestro-view-labels": [ "7.5.0" ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-add-tag-type-utililty-task.5c41b001-294f-47b1-a5d5-34cbf7abe488": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-add-tag-type-utililty-task.dbmaestro-add-tag-type": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-add-tag-utililty-task.c27fd67c-1147-4c17-9956-cbdd878eba56": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-add-tag-utililty-task.dbmaestro-add-tag": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-apply-label-utility-task.4ed7bb07-11eb-4f12-9de7-37ba7471fcdd": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-apply-label-utility-task.dbmaestro-apply-label": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-backup-release-task.af1fd5e0-48e5-4444-9a41-67ebc3981530": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-backup-release-task.dbmaestro-backup": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-build-build-task.a68cb3bc-ad13-4bd8-9d65-7fbd54d5092e": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-build-build-task.dbmaestro-build": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-build-env-to-version-build-task.dbmaestro-build-env-to-version": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-build-env-to-version-build-task.de8ace26-11cf-4835-b158-63e684602523": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-cancel-job-utility-task.33568536-a41b-44ec-adc0-e5c1f45e8bbd": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-cancel-job-utility-task.dbmaestro-cancel-job": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-change-schema-password-utility-task.41ab7ab8-ec3a-4450-b64b-a885fb639f74": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-change-schema-password-utility-task.dbmaestro-change-schema-password": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-create-manifest-file.8e524f4d-a1b0-4ecb-9914-3b16499eeccd": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-create-manifest-file.dbmaestro-create-manifest-file": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-custom-build-build-task.dbmaestro-custom-build": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-custom-build-build-task.f8996a1d-b73c-41f5-a903-a7e399380399": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-delete-project-mapping-utility-task.508939e9-38f4-4ffb-bfaf-2cfcad24d053": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-delete-project-mapping-utility-task.dbmaestro-delete-project-mapping": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-delete-project-utility-task.0de688e2-4332-4beb-8985-19d105a4ec14": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-delete-project-utility-task.dbmaestro-delete-project": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-delete-tag-type-utility-task.03ba9f80-945d-4c88-a1cc-ed830a5f1064": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-delete-tag-type-utility-task.dbmaestro-delete-tag-type": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-delete-tag-utility-task.ad948672-12e4-4c52-b6ef-8c84cc5d8ada": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-delete-tag-utility-task.dbmaestro-delete-tag": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-display-match-schemas-utility-task.7a455a96-a278-4656-ba8c-076dd42b7d6f": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-display-match-schemas-utility-task.dbmaestro-display-match-schemas": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-display-project-mapping-utility-task.a0aec1ff-837c-49fd-98e4-3477816314d0": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-display-project-mapping-utility-task.dbmaestro-display-project-mapping": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-export-project-utility-task.4b680c98-0b13-4e53-8856-73abef070247": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-export-project-utility-task.dbmaestro-export-project": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-get-activities-task.c003aa1a-03b9-4373-9a01-efd55559765d": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-get-activities-task.dbmaestro-get-activities": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-get-backups-task.baaac1a9-a733-4cd2-ac9c-f1efe6c04fd1": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-get-backups-task.dbmaestro-get-backups": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-get-env-packages-utility-task.9ee808fd-b3ed-4a55-91d4-060c597bbbfb": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-get-env-packages-utility-task.dbmaestro-get-env-packages": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-get-latest-release-task.8b6361e6-113e-43d0-b6dd-d7f6cbe874d0": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-get-latest-release-task.dbmaestro-get-latest": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-get-packages-task.6bfa46a4-a7a6-4e77-a683-0b8f7eb19ce4": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-get-packages-task.dbmaestro-get-packages": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-get-project-data-task.b0c5b027-c823-4a19-a86f-8717d8fcfb40": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-get-project-data-task.dbmaestro-get-project-data": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-get-roles-task.9272e200-84b3-445a-9964-e079fa1fc4f2": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-get-roles-task.dbmaestro-get-roles": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-get-specific-release-task.45428fd3-a672-4709-a6e4-90b7092da8ae": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-get-specific-release-task.dbmaestro-get-specific": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-get-user-project-roles-task.dbmaestro-get-user-project-roles": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-get-user-project-roles-task.e5c65772-7b88-48ee-bdc0-33ded5f5f9d9": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-import-project-task.9cd3110e-b677-4719-a290-57aa5b1b2928": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-import-project-task.dbmaestro-import-project": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-package-release-task.54f16e23-92e0-456e-aa6b-81b5ba088419": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-package-release-task.dbmaestro-package": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-pre-check-environment-task.2b1cbeb0-d97d-459b-a746-277fa51749dc": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-pre-check-environment-task.dbmaestro-pre-check-environment": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-pre-check-release-task.1ec603d8-0286-44b9-bf6c-924b7096b9c2": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-pre-check-release-task.dbmaestro-pre-check": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-project-mapping-utility-task.b7f1f322-d1fb-4361-a83f-1f45c81c6bc4": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-project-mapping-utility-task.dbmaestro-project-mapping": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-run-package-dev-release-task.1da3f80e-d282-45de-ae53-43ea9e3451a8": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-run-package-dev-release-task.dbmaestro-run-package-dev": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-set-version-utility-task.6f0f2562-12bc-4d35-8451-74909df79cc3": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-set-version-utility-task.dbmaestro-set-version": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-sync-permissions-task.ab2c4c3d-e4d9-49df-9276-abcc5dfcbc14": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-sync-permissions-task.dbmaestro-sync-permissions": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-task-restore-release-task.992f8568-0eec-4d3b-bd8d-962486cb706c": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-task-restore-release-task.dbmaestro-restore": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-task-rollback-release-task.5a354b4a-68c0-474f-abd8-202229be650c": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-task-rollback-release-task.dbmaestro-task-rollback": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-transfer-package-down-task.9a53d609-93d6-49ba-a389-ded339231449": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-transfer-package-down-task.dbmaestro-transfer-package-down": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-transfer-package-release-task.2f65269f-9796-4596-9acf-f4037ae0b533": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-transfer-package-release-task.dbmaestro-transfer-package": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-transfer-package-up-task.dbmaestro-transfer-package-up": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-transfer-package-up-task.f50007c9-b837-4dfc-bacb-477af7975e31": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-update-project-task.821df394-873a-4216-8635-5b952f6cfc7c": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-update-project-task.dbmaestro-update-project": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-update-tag-type-name-utility-task.9a8522df-c774-43b0-9a27-8f6682bc7935": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-update-tag-type-name-utility-task.dbmaestro-update-tag-type-name": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-upgrade-release-task.dbmaestro-upgrade": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-upgrade-release-task.e4c4edc8-8192-4c3e-8fae-dc01ee492cd9": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-validate-release-task.dbmaestro-validate": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-validate-release-task.df2e4df6-28ad-40a7-8e92-a82f4f0b25c3": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-view-labels-utility-task.02878cab-09e2-4482-9a15-1a89ac214211": [ - "23.1.0" - ], - "dbmaestro.dbmaestro-automation-integration-23-1-0.dbmaestro-view-labels-utility-task.dbmaestro-view-labels": [ - "23.1.0" + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-add-tag-type-utililty-task.49da0505-a53f-46a8-9c14-36ef53457a32": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-add-tag-type-utililty-task.dbmaestro-add-tag-type": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-add-tag-utililty-task.d555d02e-87ef-4481-8267-10b4a8d9fc0b": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-add-tag-utililty-task.dbmaestro-add-tag": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-apply-label-utility-task.12291677-2485-4494-9ee6-8fc1f0b1c2f5": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-apply-label-utility-task.dbmaestro-apply-label": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-backup-release-task.16102e67-5498-4da6-a74a-3f6edab58148": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-backup-release-task.dbmaestro-backup": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-build-build-task.dbmaestro-build": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-build-build-task.e3ea2cf3-557f-4611-ad5a-ad093fea8aa2": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-build-env-to-version-build-task.b520ca01-2912-44ad-9977-caad43d70e66": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-build-env-to-version-build-task.dbmaestro-build-env-to-version": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-cancel-job-utility-task.25dea4be-9073-47c0-8d15-f6d8ac4d9399": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-cancel-job-utility-task.dbmaestro-cancel-job": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-change-schema-password-utility-task.756266d7-4ce1-4522-a934-c08a5e5665f7": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-change-schema-password-utility-task.dbmaestro-change-schema-password": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-create-manifest-file.dbmaestro-create-manifest-file": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-create-manifest-file.f752b241-8fc8-437c-8b19-58ca37c8fac5": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-custom-build-build-task.c1fd831a-3f3e-48f7-8e97-b4462b7bee5a": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-custom-build-build-task.dbmaestro-custom-build": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-delete-project-mapping-utility-task.ad673ad4-77b6-4c54-8a37-21d55d5e880b": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-delete-project-mapping-utility-task.dbmaestro-delete-project-mapping": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-delete-project-utility-task.7ec297dc-e276-4efa-bae7-d4c11e06fcab": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-delete-project-utility-task.dbmaestro-delete-project": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-delete-tag-type-utility-task.b075614e-f76c-485c-a8e0-ad843fad0e36": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-delete-tag-type-utility-task.dbmaestro-delete-tag-type": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-delete-tag-utility-task.a926f430-cee2-4e01-a27b-3b717a2fdc34": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-delete-tag-utility-task.dbmaestro-delete-tag": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-display-match-schemas-utility-task.b1ca1391-e6ee-40f0-b751-cb3fca446451": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-display-match-schemas-utility-task.dbmaestro-display-match-schemas": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-display-project-mapping-utility-task.da6e49d9-4357-4fc8-a7fb-5d9206b562e7": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-display-project-mapping-utility-task.dbmaestro-display-project-mapping": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-export-project-utility-task.18a39101-3589-4644-8f20-898cffeb61d0": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-export-project-utility-task.dbmaestro-export-project": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-get-activities-task.0c3b6fa3-7234-4332-b743-70a3e776ed04": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-get-activities-task.dbmaestro-get-activities": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-get-backups-task.0f0d0489-2b45-4a26-b65f-e6414f9965dd": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-get-backups-task.dbmaestro-get-backups": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-get-env-packages-utility-task.dbmaestro-get-env-packages": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-get-env-packages-utility-task.e372b77b-21a6-4469-b4d9-7abb9d65d53d": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-get-latest-release-task.8aded5a2-27d8-40cd-86ab-bf0a4ba8770e": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-get-latest-release-task.dbmaestro-get-latest": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-get-packages-task.145d2283-1381-4ca9-b6a8-7c57d0b75d9d": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-get-packages-task.dbmaestro-get-packages": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-get-project-data-task.2e75c308-cbbc-4e68-b11f-6c985e6a4376": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-get-project-data-task.dbmaestro-get-project-data": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-get-roles-task.6de965fa-d4a5-4a42-bbb6-035898549d19": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-get-roles-task.dbmaestro-get-roles": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-get-specific-release-task.5ef76ecd-41c5-42a4-9d94-d44314efc517": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-get-specific-release-task.dbmaestro-get-specific": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-get-user-project-roles-task.6ccd396f-6642-4079-8653-c20980166070": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-get-user-project-roles-task.dbmaestro-get-user-project-roles": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-import-project-task.c01a83fb-0553-4448-8136-ad7909d8bb33": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-import-project-task.dbmaestro-import-project": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-login-utility-task.285b0614-b6ed-4351-a939-3497730e3814": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-login-utility-task.dbmaestro-login": [ + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-login-utility-task.dbmaestro-sync-permissions": [ + "23.1.0", + "23.1.1" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-package-release-task.dbmaestro-package": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-package-release-task.dc1d078b-b016-4673-99db-260dbf816928": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-pre-check-environment-task.b0dccc97-764d-49e2-ae58-c1df071fea3f": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-pre-check-environment-task.dbmaestro-pre-check-environment": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-pre-check-release-task.656977f5-2a08-4e85-b67b-eaea60b44c76": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-pre-check-release-task.dbmaestro-pre-check": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-project-mapping-utility-task.b2b7480c-7f29-4afe-a33d-23c0d452470f": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-project-mapping-utility-task.dbmaestro-project-mapping": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-run-package-dev-release-task.b6fd383d-fc98-405d-a98a-37a161e7cc9b": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-run-package-dev-release-task.dbmaestro-run-package-dev": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-set-version-utility-task.914acf0d-6c0a-444b-a2ad-3c7f8fa397d0": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-set-version-utility-task.dbmaestro-set-version": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-sync-permissions-task.4eb92e59-8cf6-4b5a-b679-0484a99549ee": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-sync-permissions-task.dbmaestro-sync-permissions": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-task-restore-release-task.a7f5b121-015f-4a44-bb0e-17ab853e6e64": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-task-restore-release-task.dbmaestro-restore": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-task-rollback-release-task.8d20bedf-7996-4cbb-b6f8-53b1dd6b8d9a": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-task-rollback-release-task.dbmaestro-task-rollback": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-transfer-package-down-task.98fee4ab-6711-4399-a8c7-c6a2227d0f10": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-transfer-package-down-task.dbmaestro-transfer-package-down": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-transfer-package-release-task.3123867b-41b3-46b8-b5bb-8af6d48224da": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-transfer-package-release-task.dbmaestro-transfer-package": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-transfer-package-up-task.9fd78d2c-92ed-4734-8b23-ed7d87208c63": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-transfer-package-up-task.dbmaestro-transfer-package-up": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-update-project-task.29dfa0b0-3e4d-408b-9786-859ef8516c28": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-update-project-task.dbmaestro-update-project": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-update-tag-type-name-utility-task.dbmaestro-update-tag-type-name": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-update-tag-type-name-utility-task.f64be191-5efa-4241-8523-b39f37422433": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-upgrade-release-task.dbmaestro-upgrade": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-upgrade-release-task.fe449bb0-b977-42ec-9876-ae9629b5d1ea": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-validate-release-task.3c1dd330-7675-4b14-b528-f982232e4727": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-validate-release-task.dbmaestro-validate": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-view-labels-utility-task.7af26d69-0154-45e2-8a1c-ca0325aac951": [ + "23.1.0", + "23.1.1", + "23.1.2" + ], + "dbmaestro.dbmaestro-automation-integration-23-1-3.dbmaestro-view-labels-utility-task.dbmaestro-view-labels": [ + "23.1.0", + "23.1.1", + "23.1.2" ], "dbojsendatafactorydeployment": ["0.9.5", "0.9.7"], + "dc1d078b-b016-4673-99db-260dbf816928": ["23.1.0", "23.1.1", "23.1.2"], "dc28e910-44e2-4c2a-9c2a-1eb72b891d68": [ "0.1.0", "0.2.0", @@ -76647,7 +77100,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "dd5ff920-784e-4906-83ce-459e1cf8ad82": ["21.4.1"], "dd862edc-5d88-4d2c-b83b-fff2a695e5c0": [ @@ -76730,7 +77184,12 @@ "0.1.38", "0.1.39", "0.1.40", - "0.1.41" + "0.1.41", + "0.1.42", + "0.1.43", + "0.1.44", + "0.1.45", + "0.1.46" ], "de4be6e2-9c1e-4ae3-9a7e-6854f719bcc3": ["1.0.0"], "de5a1d00-15b4-4678-ad73-b1d8717ea69b": [ @@ -76777,7 +77236,6 @@ "1.0.280", "1.0.296" ], - "de8ace26-11cf-4835-b158-63e684602523": ["23.1.0"], "deadlydog.waitbuildandreleasetask.wait.5a775a50-3372-1290-9ce0-1579c1e597fb": [ "0.1.0", "0.1.1", @@ -77784,6 +78242,28 @@ "4.0.1002", "4.0.1007" ], + "deepcrawl.lumar-protect-tools.run-lumar-protect-build-task.281f6ba9-3d8f-425d-b63b-86479427ab39": [ + "1.1.0", + "1.1.1", + "1.1.2", + "1.1.3", + "1.1.4", + "1.1.5", + "1.1.6", + "1.1.7", + "1.1.8" + ], + "deepcrawl.lumar-protect-tools.run-lumar-protect-build-task.run-lumar-protect-build-task": [ + "1.1.0", + "1.1.1", + "1.1.2", + "1.1.3", + "1.1.4", + "1.1.5", + "1.1.6", + "1.1.7", + "1.1.8" + ], "def84f71-43aa-4905-b44d-4da5fef782a2": [ "0.1.0", "0.1.1", @@ -78638,7 +79118,8 @@ "2.0.4", "2.0.5", "2.0.6", - "22.6.0" + "22.6.0", + "23.2.0" ], "deploytoazureanalysisservices": ["1.0.0", "1.0.1", "1.0.2"], "deprecatedgooglecloudsdkinstaller": ["0.5.0"], @@ -78798,7 +79279,8 @@ "0.3.1900000319", "0.3.1900000324", "0.3.1900000325", - "0.3.1900000326" + "0.3.1900000326", + "0.3.1900000328" ], "devcontainers.ci.devcontainersci.devcontainersci": [ "0.2.1900000143", @@ -78827,7 +79309,8 @@ "0.3.1900000319", "0.3.1900000324", "0.3.1900000325", - "0.3.1900000326" + "0.3.1900000326", + "0.3.1900000328" ], "devcontainersci": [ "0.2.1900000143", @@ -78856,7 +79339,8 @@ "0.3.1900000319", "0.3.1900000324", "0.3.1900000325", - "0.3.1900000326" + "0.3.1900000326", + "0.3.1900000328" ], "devcreateblueprint": ["1.4.0"], "devenvbuild": ["1.2.0", "2.0.3", "2.0.4", "2.0.5"], @@ -78970,7 +79454,6 @@ "1.1.15", "1.1.16" ], - "df2e4df6-28ad-40a7-8e92-a82f4f0b25c3": ["23.1.0"], "df7b6e5c-7a4d-4e16-816f-801e911e7f2d": ["0.2.0", "0.6.0", "0.7.0", "1.0.0"], "dfbe1493-3bb1-44d5-ac87-7f14a148a6f7": ["1.0.4"], "dfc18792-8901-4297-a4de-6edef6796070": [ @@ -81266,7 +81749,9 @@ "1.0.3", "1.0.4", "1.0.5", - "1.1.0" + "1.1.0", + "1.2.0", + "1.2.1" ], "durablefunctionsmonitor.az-func-as-a-graph-do-extension.custom-build-release-task.az-func-as-a-graph": [ "0.1.0", @@ -81297,7 +81782,9 @@ "1.0.3", "1.0.4", "1.0.5", - "1.1.0" + "1.1.0", + "1.2.0", + "1.2.1" ], "durgaprasadkatari.datamover.datamover.62c7427a-86cc-4f72-b02e-8056c6c8ea29": [ "1.2.0", @@ -82312,7 +82799,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "e243a9dd-eec9-4968-a5d2-ebf26fd89b18": ["3.0.37"], "e2450612-3a85-413e-8ab6-a4098bf5bebe": [ @@ -82426,6 +82914,9 @@ "0.9.13", "0.9.14", "0.9.15", + "0.10.0", + "0.10.1", + "0.10.2", "1.0.0" ], "e32cef69-9959-488f-8820-afbc87c8a726": [ @@ -82459,6 +82950,7 @@ "0.1.5", "0.1.6" ], + "e372b77b-21a6-4469-b4d9-7abb9d65d53d": ["23.1.0", "23.1.1", "23.1.2"], "e3afaac5-bb5b-4435-9a1d-640552aa018c": ["0.2.32"], "e3b19710-626e-11e6-865c-3771efe12c4b": ["0.6.0", "0.7.1", "0.7.2", "0.7.3"], "e3e21af7-e370-4e5b-8b96-0554ee25a60d": ["0.1.0"], @@ -82484,6 +82976,7 @@ "3.1.1", "3.1.2" ], + "e3ea2cf3-557f-4611-ad5a-ad093fea8aa2": ["23.1.0", "23.1.1", "23.1.2"], "e42cbc98-47bd-48a7-8da5-258698afc839": [ "0.1.9", "0.2.1", @@ -82582,7 +83075,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "e47c77ac-a316-45ce-bb10-5932158c7af4": [ "0.0.1", @@ -82674,8 +83168,7 @@ "0.1.30" ], "e4be9ef8-2b4b-4630-b263-ee06af231b31": ["0.1.7", "0.1.8", "0.1.9"], - "e4c104ab-0d8d-4f79-9cdb-4687df347558": ["22.6.0"], - "e4c4edc8-8192-4c3e-8fae-dc01ee492cd9": ["23.1.0"], + "e4c104ab-0d8d-4f79-9cdb-4687df347558": ["22.6.0", "23.2.0"], "e4d7a958-82c3-4b55-94da-4ff052cdf119": ["0.0.1", "0.0.3", "0.0.4", "0.0.5"], "e4e2625a-f2ba-4f03-a0d4-985103b3c746": ["1.0.1", "1.0.2", "1.0.3"], "e4e76c18-202b-43d8-bd49-e48623290ad2": [ @@ -82826,6 +83319,7 @@ "3.5.178", "3.5.220", "3.5.260", + "3.5.268", "4.0.8", "4.0.50", "4.0.89", @@ -82838,7 +83332,8 @@ "4.0.161", "4.0.178", "4.0.220", - "4.0.260" + "4.0.260", + "4.0.268" ], "e59c5ae6-3afd-479d-bc40-81cd6c541840": [ "1.0.30", @@ -82910,7 +83405,6 @@ "10.0.0", "10.1.0" ], - "e5c65772-7b88-48ee-bdc0-33ded5f5f9d9": ["23.1.0"], "e5ca5a91-35ff-4a7b-a316-d9804c1a436b": [ "1.1.1297", "1.2.3", @@ -83178,7 +83672,8 @@ "0.0.5", "0.0.6", "0.0.7", - "0.1.2" + "0.1.2", + "0.1.3" ], "e7dd893b-1cff-4d8a-a92a-a6ff49fc69fa": ["1.0.1"], "e7e6f2ae-fe5e-4191-9fd3-dbd811fa72e6": [ @@ -83805,7 +84300,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "ea42b06e-b052-4e88-bdc7-751acf970077": [ "0.1.1", @@ -84496,7 +84992,8 @@ "ef33e496-05b4-4e5d-ba93-7e3ae477d9ca": [ "2.11.3447906", "3.0.3513646", - "3.0.3517186" + "3.0.3517186", + "3.0.3642585" ], "ef5ba6df-1dec-49c8-aeda-15bfdb6f6d56": ["9.0.5", "12.0.6"], "ef6e39d1-dbac-47e0-8c6b-f5735aaa4096": [ @@ -86486,7 +86983,12 @@ "0.1.38", "0.1.39", "0.1.40", - "0.1.41" + "0.1.41", + "0.1.42", + "0.1.43", + "0.1.44", + "0.1.45", + "0.1.46" ], "evit15.evit15-build-release-task.generate-test-run.generate-test-run": [ "0.1.0", @@ -86527,7 +87029,12 @@ "0.1.38", "0.1.39", "0.1.40", - "0.1.41" + "0.1.41", + "0.1.42", + "0.1.43", + "0.1.44", + "0.1.45", + "0.1.46" ], "evit15.evit15-build-release-task.set-automation-status.de0c2390-25d1-4610-ad6d-9bb4b7a7f1f3": [ "0.1.11", @@ -86560,7 +87067,12 @@ "0.1.38", "0.1.39", "0.1.40", - "0.1.41" + "0.1.41", + "0.1.42", + "0.1.43", + "0.1.44", + "0.1.45", + "0.1.46" ], "evit15.evit15-build-release-task.set-automation-status.set-automation-status": [ "0.1.11", @@ -86593,7 +87105,12 @@ "0.1.38", "0.1.39", "0.1.40", - "0.1.41" + "0.1.41", + "0.1.42", + "0.1.43", + "0.1.44", + "0.1.45", + "0.1.46" ], "evit15.evit15-build-release-task.set-test-run-status.d8ac0cf9-4bd7-4148-b59b-82fac6393f9e": [ "0.1.9", @@ -86628,7 +87145,12 @@ "0.1.38", "0.1.39", "0.1.40", - "0.1.41" + "0.1.41", + "0.1.42", + "0.1.43", + "0.1.44", + "0.1.45", + "0.1.46" ], "evit15.evit15-build-release-task.set-test-run-status.set-test-run-status": [ "0.1.9", @@ -86663,7 +87185,12 @@ "0.1.38", "0.1.39", "0.1.40", - "0.1.41" + "0.1.41", + "0.1.42", + "0.1.43", + "0.1.44", + "0.1.45", + "0.1.46" ], "evysolutionsgmbh.git-tag-version.custom-git-tag-version.f3da490b-e193-425e-aa92-0adcf0139819": [ "1.0.0", @@ -88362,7 +88889,7 @@ "1.4.0", "1.5.0" ], - "extrateststask": ["22.6.0"], + "extrateststask": ["22.6.0", "23.2.0"], "eyalyovel.eyal-tasks.sod-main.a615cd40-5e41-11e5-bee7-bd6eddb93244": [ "0.2.0" ], @@ -88695,7 +89222,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "f12486d0-7d09-11e7-b6b2-091599e20064": [ "0.0.9", @@ -88992,7 +89520,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "f3da490b-e193-425e-aa92-0adcf0139819": ["1.0.0", "1.1.0", "1.1.1", "1.1.2"], "f3e19d34-4767-42fe-ae2d-971e6c5b1850": ["999.9.1"], @@ -89159,7 +89688,6 @@ "0.1.4", "1.0.987" ], - "f50007c9-b837-4dfc-bacb-477af7975e31": ["23.1.0"], "f5304356-f6e3-48e9-9b65-a9efa41ce7a2": [ "0.0.6", "0.6.0", @@ -89180,7 +89708,10 @@ "0.9.11", "0.9.13", "0.9.14", - "0.9.15" + "0.9.15", + "0.10.0", + "0.10.1", + "0.10.2" ], "f5384bf0-1b5c-11ea-b0cc-5b064956a213": [ "1.0.0", @@ -89365,6 +89896,7 @@ ], "f63a7f0b-a432-4b2b-8ec3-a2a9e089cdf2": ["9.0.4", "12.0.5"], "f63afbd3-a43d-481e-bc66-179141753981": ["1.0.0"], + "f64be191-5efa-4241-8523-b39f37422433": ["23.1.0", "23.1.1", "23.1.2"], "f64d3db3-f19a-41dd-bdb8-f8f0e60a4bb1": [ "8.0.0", "8.0.1", @@ -89430,6 +89962,7 @@ "f702cbfe-5cee-4adc-9a79-cfb9b0679231": ["1.0.3", "2.0.3"], "f702cbfe-5cee-4adc-9a79-cfb9b06792a5": ["0.0.2", "0.0.3"], "f71cf7ec-cc2e-4d4c-b93d-e21e142ae2cf": ["1.0.0"], + "f752b241-8fc8-437c-8b19-58ca37c8fac5": ["23.1.0", "23.1.1", "23.1.2"], "f759bd8d-4303-4888-b473-3154b28879d2": [ "0.4.4", "0.4.5", @@ -89518,6 +90051,7 @@ "3.5.178", "3.5.220", "3.5.260", + "3.5.268", "4.0.8", "4.0.50", "4.0.89", @@ -89530,7 +90064,8 @@ "4.0.161", "4.0.178", "4.0.220", - "4.0.260" + "4.0.260", + "4.0.268" ], "f7c56e2a-d1f1-4cff-b5d3-a32c9516c6e0": ["0.0.1", "0.0.2"], "f7cb8f80-5e35-11e7-8723-9bcb094935b3": ["1.0.0", "1.0.3"], @@ -89553,7 +90088,6 @@ "f853a3ff-dbff-4877-9a3c-faa22596861c": ["1.0.0", "1.0.1", "1.0.2"], "f8646b2a-2a8f-4244-a269-468c596ae4a1": ["1.0.0", "1.0.3", "1.3.0", "1.4.0"], "f891ac70-84df-11e8-a82f-2fbc6e6db5f0": ["1.0.0"], - "f8996a1d-b73c-41f5-a903-a7e399380399": ["23.1.0"], "f8a140d7-a179-4d5a-99d4-35adbe6d5081": ["0.5.1", "0.5.2", "0.5.5", "0.5.6"], "f8b18f87-bde0-47c0-bf7f-baa6b082054b": [ "0.1.0", @@ -90126,7 +90660,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "fb61ed1d-442b-4018-bb46-e54afe16e262": ["1.0.3", "1.0.4"], "fb692f50-03a7-44cf-9110-2a943afeb976": [ @@ -90665,7 +91200,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "fd593137-89b4-4d81-82f1-c098c1343e0a": [ "1.1.0", @@ -90755,7 +91291,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "fd5fe5df-92fb-4dfc-814b-3887c6e28510": [ "0.0.1", @@ -90823,6 +91360,7 @@ ], "fe0d5b93-4223-46cd-b031-6d5b0a637d8f": ["9.0.4", "12.0.5"], "fe23a1da-48da-418d-a547-baf81f9d7f70": ["1.188.0"], + "fe449bb0-b977-42ec-9876-ae9629b5d1ea": ["23.1.0", "23.1.1", "23.1.2"], "fe504acc-6115-40cb-89ff-191386b5e7bf": [ "0.0.104", "0.0.134", @@ -93732,7 +94270,23 @@ "0.1.38", "0.1.39", "0.1.40", - "0.1.41" + "0.1.41", + "0.1.42", + "0.1.43", + "0.1.44", + "0.1.45", + "0.1.46" + ], + "generateandpublishvsixtomarketplace": [ + "0.0.1", + "0.0.2", + "0.0.3", + "0.0.4", + "0.0.5", + "0.0.6", + "0.0.7", + "0.0.8", + "0.0.9" ], "generateentityframeworkmigrationscript": [ "0.1.0", @@ -94968,7 +95522,10 @@ "0.9.11", "0.9.13", "0.9.14", - "0.9.15" + "0.9.15", + "0.10.0", + "0.10.1", + "0.10.2" ], "gitreleasemanager/close": [ "0.0.6", @@ -94990,7 +95547,10 @@ "0.9.11", "0.9.13", "0.9.14", - "0.9.15" + "0.9.15", + "0.10.0", + "0.10.1", + "0.10.2" ], "gitreleasemanager/create": [ "0.0.6", @@ -95012,7 +95572,10 @@ "0.9.11", "0.9.13", "0.9.14", - "0.9.15" + "0.9.15", + "0.10.0", + "0.10.1", + "0.10.2" ], "gitreleasemanager/discard": [ "0.0.6", @@ -95034,7 +95597,10 @@ "0.9.11", "0.9.13", "0.9.14", - "0.9.15" + "0.9.15", + "0.10.0", + "0.10.1", + "0.10.2" ], "gitreleasemanager/open": [ "0.0.6", @@ -95056,7 +95622,10 @@ "0.9.11", "0.9.13", "0.9.14", - "0.9.15" + "0.9.15", + "0.10.0", + "0.10.1", + "0.10.2" ], "gitreleasemanager/publish": [ "0.8.0", @@ -95074,7 +95643,10 @@ "0.9.11", "0.9.13", "0.9.14", - "0.9.15" + "0.9.15", + "0.10.0", + "0.10.1", + "0.10.2" ], "gitreleasemanager/setup": [ "0.0.6", @@ -95096,7 +95668,10 @@ "0.9.11", "0.9.13", "0.9.14", - "0.9.15" + "0.9.15", + "0.10.0", + "0.10.1", + "0.10.2" ], "gitsync": [ "0.3.1", @@ -95182,7 +95757,10 @@ "0.9.11", "0.9.13", "0.9.14", - "0.9.15" + "0.9.15", + "0.10.0", + "0.10.1", + "0.10.2" ], "gittools.gittools.addasset-gitreleasemanager-task.gitreleasemanager/addasset": [ "0.8.0", @@ -95200,7 +95778,10 @@ "0.9.11", "0.9.13", "0.9.14", - "0.9.15" + "0.9.15", + "0.10.0", + "0.10.1", + "0.10.2" ], "gittools.gittools.close-gitreleasemanager-task.f5304356-f6e3-48e9-9b65-a9efa41ce7a2": [ "0.0.6", @@ -95222,7 +95803,10 @@ "0.9.11", "0.9.13", "0.9.14", - "0.9.15" + "0.9.15", + "0.10.0", + "0.10.1", + "0.10.2" ], "gittools.gittools.close-gitreleasemanager-task.gitreleasemanager/close": [ "0.0.6", @@ -95244,7 +95828,10 @@ "0.9.11", "0.9.13", "0.9.14", - "0.9.15" + "0.9.15", + "0.10.0", + "0.10.1", + "0.10.2" ], "gittools.gittools.create-gitreleasemanager-task.c77d38be-46a9-4ef1-a181-2d6050ed23d2": [ "0.0.6", @@ -95266,7 +95853,10 @@ "0.9.11", "0.9.13", "0.9.14", - "0.9.15" + "0.9.15", + "0.10.0", + "0.10.1", + "0.10.2" ], "gittools.gittools.create-gitreleasemanager-task.gitreleasemanager/create": [ "0.0.6", @@ -95288,7 +95878,10 @@ "0.9.11", "0.9.13", "0.9.14", - "0.9.15" + "0.9.15", + "0.10.0", + "0.10.1", + "0.10.2" ], "gittools.gittools.discard-gitreleasemanager-task.9ae78b66-6100-4522-8106-b7ae00bbfcdf": [ "0.0.6", @@ -95310,7 +95903,10 @@ "0.9.11", "0.9.13", "0.9.14", - "0.9.15" + "0.9.15", + "0.10.0", + "0.10.1", + "0.10.2" ], "gittools.gittools.discard-gitreleasemanager-task.gitreleasemanager/discard": [ "0.0.6", @@ -95332,7 +95928,10 @@ "0.9.11", "0.9.13", "0.9.14", - "0.9.15" + "0.9.15", + "0.10.0", + "0.10.1", + "0.10.2" ], "gittools.gittools.execute-gitversion-task.9013cf7f-ee8d-49f4-a39b-db244928d391": [ "0.0.6", @@ -95357,6 +95956,9 @@ "0.9.13", "0.9.14", "0.9.15", + "0.10.0", + "0.10.1", + "0.10.2", "1.0.0", "5.0.2" ], @@ -95387,7 +95989,10 @@ "0.9.11", "0.9.13", "0.9.14", - "0.9.15" + "0.9.15", + "0.10.0", + "0.10.1", + "0.10.2" ], "gittools.gittools.open-gitreleasemanager-task.5d437bf5-f193-4449-b531-c4c69eebaa48": [ "0.0.6", @@ -95409,7 +96014,10 @@ "0.9.11", "0.9.13", "0.9.14", - "0.9.15" + "0.9.15", + "0.10.0", + "0.10.1", + "0.10.2" ], "gittools.gittools.open-gitreleasemanager-task.gitreleasemanager/open": [ "0.0.6", @@ -95431,7 +96039,10 @@ "0.9.11", "0.9.13", "0.9.14", - "0.9.15" + "0.9.15", + "0.10.0", + "0.10.1", + "0.10.2" ], "gittools.gittools.publish-gitreleasemanager-task.b3c54483-4140-45d8-b442-3a0b096b5f7f": [ "0.8.0", @@ -95449,7 +96060,10 @@ "0.9.11", "0.9.13", "0.9.14", - "0.9.15" + "0.9.15", + "0.10.0", + "0.10.1", + "0.10.2" ], "gittools.gittools.publish-gitreleasemanager-task.gitreleasemanager/publish": [ "0.8.0", @@ -95467,7 +96081,10 @@ "0.9.11", "0.9.13", "0.9.14", - "0.9.15" + "0.9.15", + "0.10.0", + "0.10.1", + "0.10.2" ], "gittools.gittools.setup-gitreleasemanager-task.e3022448-b00d-4b57-b504-606a0bcf8279": [ "0.0.6", @@ -95491,6 +96108,9 @@ "0.9.13", "0.9.14", "0.9.15", + "0.10.0", + "0.10.1", + "0.10.2", "1.0.0" ], "gittools.gittools.setup-gitreleasemanager-task.gitreleasemanager-setup": [ @@ -95518,7 +96138,10 @@ "0.9.11", "0.9.13", "0.9.14", - "0.9.15" + "0.9.15", + "0.10.0", + "0.10.1", + "0.10.2" ], "gittools.gittools.setup-gitversion-task.a06c02ae-7b9a-4082-90dc-fe27b500e54f": [ "0.0.6", @@ -95543,6 +96166,9 @@ "0.9.13", "0.9.14", "0.9.15", + "0.10.0", + "0.10.1", + "0.10.2", "1.0.0", "5.0.2" ], @@ -95573,7 +96199,10 @@ "0.9.11", "0.9.13", "0.9.14", - "0.9.15" + "0.9.15", + "0.10.0", + "0.10.1", + "0.10.2" ], "gitversion": ["5.0.0", "5.0.2"], "gitversion-execute": ["0.4.0", "0.5.0", "0.6.0", "1.0.0", "5.0.2"], @@ -95606,7 +96235,10 @@ "0.9.11", "0.9.13", "0.9.14", - "0.9.15" + "0.9.15", + "0.10.0", + "0.10.1", + "0.10.2" ], "gitversion/setup": [ "0.0.6", @@ -95628,7 +96260,10 @@ "0.9.11", "0.9.13", "0.9.14", - "0.9.15" + "0.9.15", + "0.10.0", + "0.10.1", + "0.10.2" ], "giuliovdev.hugo-extension.hugo-build-task-v2.528c73d9-c552-4e2d-a26f-fb5c91c32554": [ "2.0.0" @@ -97036,10 +97671,27 @@ "2.0.3", "2.0.4", "2.0.5", - "2.0.6" + "2.0.6", + "2.0.7" + ], + "hclappscan": [ + "1.2.6", + "1.2.7", + "1.2.8", + "1.2.9", + "1.2.10", + "1.2.11", + "2.0.0" + ], + "hclappscanoncloud": [ + "2.0.1", + "2.0.2", + "2.0.3", + "2.0.4", + "2.0.5", + "2.0.6", + "2.0.7" ], - "hclappscan": ["1.2.6", "1.2.7", "1.2.8", "1.2.9", "1.2.10", "2.0.0"], - "hclappscanoncloud": ["2.0.1", "2.0.2", "2.0.3", "2.0.4", "2.0.5", "2.0.6"], "hclonetestapitask": [ "0.1.1", "0.3.1", @@ -97074,7 +97726,8 @@ "2.0.3", "2.0.4", "2.0.5", - "2.0.6" + "2.0.6", + "2.0.7" ], "hcltechnologies.applicationsecurity-vsts.custom-ase-task.hcl appscan enterprise": [ "2.0.0", @@ -97083,7 +97736,8 @@ "2.0.3", "2.0.4", "2.0.5", - "2.0.6" + "2.0.6", + "2.0.7" ], "hcltechnologies.applicationsecurity-vsts.custom-asoc-task.46d7c5c4-ec5a-461f-98e9-f8adce322b4e": [ "2.0.0", @@ -97092,7 +97746,8 @@ "2.0.3", "2.0.4", "2.0.5", - "2.0.6" + "2.0.6", + "2.0.7" ], "hcltechnologies.applicationsecurity-vsts.custom-asoc-task.hclappscan": [ "2.0.0" @@ -97103,7 +97758,8 @@ "2.0.3", "2.0.4", "2.0.5", - "2.0.6" + "2.0.6", + "2.0.7" ], "hcltechnologies.applicationsecurity-vsts.custom-build-release-task.6e743613-d4b8-48d2-8ee3-1b8ec3ab00fe": [ "1.0.0", @@ -97118,7 +97774,8 @@ "1.2.7", "1.2.8", "1.2.9", - "1.2.10" + "1.2.10", + "1.2.11" ], "hcltechnologies.applicationsecurity-vsts.custom-build-release-task.applicationsecurity": [ "1.0.0", @@ -97135,7 +97792,8 @@ "1.2.7", "1.2.8", "1.2.9", - "1.2.10" + "1.2.10", + "1.2.11" ], "hcltechnologies.build-release-task-hcl.onetestapi.5ea8b444-ad35-477d-b4f6-f5665b02900f": [ "0.1.1", @@ -97319,6 +97977,16 @@ "0.3.0", "0.5.0" ], + "henningmeyer.querymailer.send-query-task.18370706-38f2-4477-a01b-7d42d6a73660": [ + "0.1.0", + "0.2.0", + "0.3.0" + ], + "henningmeyer.querymailer.send-query-task.querymailer": [ + "0.1.0", + "0.2.0", + "0.3.0" + ], "herusec-scan": ["0.0.4", "0.0.7"], "hey24sheep.envar.environmentvariables.ba15421e-d1b3-4be9-92a2-c5cb7f914e28": [ "0.1.0", @@ -97541,7 +98209,8 @@ "5.4.59", "5.4.61", "5.4.62", - "5.4.66" + "5.4.66", + "5.4.67" ], "hlv-download-ftp-artifact": ["1.2.1", "1.2.2"], "hlv-git-commands": ["1.0.0", "1.0.8"], @@ -105643,12 +106312,14 @@ "imsherlock01.create-annotated-tags.create-annotated-tags-task.2559c3c1-9b1d-41b8-b77e-e729314a491f": [ "0.0.1", "0.0.2", - "0.0.3" + "0.0.3", + "0.0.4" ], "imsherlock01.create-annotated-tags.create-annotated-tags-task.create-annotated-tags": [ "0.0.1", "0.0.2", - "0.0.3" + "0.0.3", + "0.0.4" ], "imsherlock01.deploy-ssrs-reports.delete-report-folder.3fc40e3d-760e-412f-b221-d12155d6fb30": [ "0.0.1", @@ -106795,6 +107466,7 @@ "3.5.178", "3.5.220", "3.5.260", + "3.5.268", "4.0.8", "4.0.50", "4.0.89", @@ -106807,7 +107479,8 @@ "4.0.161", "4.0.178", "4.0.220", - "4.0.260" + "4.0.260", + "4.0.268" ], "installbccontainerhelper": [ "0.0.0", @@ -107756,6 +108429,7 @@ "3.5.178", "3.5.220", "3.5.260", + "3.5.268", "4.0.8", "4.0.50", "4.0.89", @@ -107768,7 +108442,8 @@ "4.0.161", "4.0.178", "4.0.220", - "4.0.260" + "4.0.260", + "4.0.268" ], "isazuredevopsextensionvalidserver": [ "2.0.5", @@ -107822,7 +108497,8 @@ "4.0.161", "4.0.178", "4.0.220", - "4.0.260" + "4.0.260", + "4.0.268" ], "istio": ["1.0.0", "1.0.3"], "itszap.itszap-release-packager.itszap-build-releasepackager.3efc5a90-d2d9-11e5-870b-fddad3389520": [ @@ -108368,16 +109044,20 @@ "1.0.29" ], "jasonbjohnson.azure-pipelines-tasks-terraform.azure-pipelines-tasks-terraform-cli.51355d76-dd54-4754-919d-bba27fdf59e4": [ - "0.7.11" + "0.7.11", + "0.7.12" ], "jasonbjohnson.azure-pipelines-tasks-terraform.azure-pipelines-tasks-terraform-cli.terraformcli": [ - "0.7.11" + "0.7.11", + "0.7.12" ], "jasonbjohnson.azure-pipelines-tasks-terraform.azure-pipelines-tasks-terraform-installer.2b4600b9-5cd9-4e3b-9c8b-553c8e58383a": [ - "0.7.11" + "0.7.11", + "0.7.12" ], "jasonbjohnson.azure-pipelines-tasks-terraform.azure-pipelines-tasks-terraform-installer.terraforminstaller": [ - "0.7.11" + "0.7.11", + "0.7.12" ], "jasonwhalley.pulumi-installer-task.pulumi-installer-task.af7fa111-9fb4-422f-be9f-95c96deaa4ea": [ "0.1.1", @@ -120974,7 +121654,8 @@ "1.0.5", "1.0.6", "1.0.7", - "1.0.8" + "1.0.8", + "1.0.9" ], "maciejmaciejewski.azure-pipelines-cucumber.publishcucumberreport.publishcucumberreport": [ "1.0.0", @@ -120985,7 +121666,8 @@ "1.0.5", "1.0.6", "1.0.7", - "1.0.8" + "1.0.8", + "1.0.9" ], "maciejmaciejewski.azure-pipelines-deno.denodownload.b420a230-a2fb-11ea-9147-afd94f8273de": [ "1.0.0" @@ -123368,7 +124050,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.add-solution-component.powerplatformaddsolutioncomponent": [ "2.0.3", @@ -123379,7 +124062,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.apply-solution-upgrade.44baeac4-f767-4cb9-83e8-d210ce763397": [ "0.0.23", @@ -123402,7 +124086,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.apply-solution-upgrade.powerplatformapplysolutionupgrade": [ "0.0.23", @@ -123425,17 +124110,20 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.assign-group.47203ae0-e66b-4cc7-bdbd-77ea87aaf473": [ "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.assign-group.powerplatformassigngroup": [ "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.assign-user.4bc2c638-8a95-473d-bc83-2c9ec8b18885": [ "2.0.3", @@ -123446,7 +124134,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.assign-user.powerplatformassignuser": [ "2.0.3", @@ -123457,7 +124146,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.backup-environment.bfd05e80-f553-4a07-aaff-b44ab65bd61d": [ "0.0.1", @@ -123489,7 +124179,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.backup-environment.powerplatformbackupenvironment": [ "0.0.1", @@ -123521,7 +124212,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.checker.54b4d3aa-732f-436b-9996-2a96a6715191": [ "0.0.1", @@ -123553,7 +124245,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.checker.powerplatformchecker": [ "0.0.1", @@ -123585,7 +124278,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.copy-environment.0dba3baf-3724-455d-b194-3c6ec0b56431": [ "0.0.1", @@ -123617,7 +124311,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.copy-environment.powerplatformcopyenvironment": [ "0.0.1", @@ -123649,7 +124344,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.create-environment.9788ca49-dc8f-4d6b-bd5a-bab0fed0bc0c": [ "0.0.1", @@ -123681,7 +124377,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.create-environment.powerplatformcreateenvironment": [ "0.0.1", @@ -123713,7 +124410,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.delete-environment.d06e33c0-b482-48fc-8376-e3623651de01": [ "0.0.1", @@ -123745,7 +124443,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.delete-environment.powerplatformdeleteenvironment": [ "0.0.1", @@ -123777,7 +124476,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.delete-solution.a497eae1-e8b2-4ec8-be6a-e865c0b952c1": [ "0.0.23", @@ -123800,7 +124500,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.delete-solution.powerplatformdeletesolution": [ "0.0.23", @@ -123823,7 +124524,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.deploy-package.6eba22e9-9666-4241-8664-3d96354449c3": [ "0.0.1", @@ -123855,7 +124557,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.deploy-package.powerplatformdeploypackage": [ "0.0.1", @@ -123887,7 +124590,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.download-paportal.75caa998-d6b8-481b-9ac9-63f49bd41e23": [ "0.0.76", @@ -123902,7 +124606,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.download-paportal.powerplatformdownloadpaportal": [ "0.0.76", @@ -123917,7 +124622,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.export-data.378ce4ea-1265-49fd-a64d-f36da5b2fb31": [ "2.0.7", @@ -123925,7 +124631,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.export-data.powerplatformexportdata": [ "2.0.7", @@ -123933,7 +124640,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.export-solution.16f6dae7-e6ef-4629-ae75-7988463cb6a6": [ "0.0.1", @@ -123965,7 +124673,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.export-solution.powerplatformexportsolution": [ "0.0.1", @@ -123997,7 +124706,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.import-data.975fae62-ca27-4125-8fa5-f7cc0844c4f6": [ "2.0.7", @@ -124005,7 +124715,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.import-data.powerplatformimportdata": [ "2.0.7", @@ -124013,7 +124724,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.import-solution.fb4a48f1-0eeb-4909-9e47-9bc290e1cb89": [ "0.0.1", @@ -124045,7 +124757,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.import-solution.powerplatformimportsolution": [ "0.0.1", @@ -124077,19 +124790,22 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.install-application.4395c90d-df12-4914-a900-98165bddb8cf": [ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.install-application.powerplatforminstallapplication": [ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.pack-solution.769929ed-e421-451b-8255-21a8d9d9d3f9": [ "0.0.1", @@ -124121,7 +124837,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.pack-solution.powerplatformpacksolution": [ "0.0.1", @@ -124153,7 +124870,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.publish-customizations.da253d32-26bf-47cc-8994-ddb90bbfbe36": [ "0.0.1", @@ -124185,7 +124903,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.publish-customizations.powerplatformpublishcustomizations": [ "0.0.1", @@ -124217,7 +124936,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.reset-environment.6e960d4e-ff9f-4112-8dd0-db0e97a7f131": [ "0.0.1", @@ -124249,7 +124969,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.reset-environment.powerplatformresetenvironment": [ "0.0.1", @@ -124281,7 +125002,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.restore-environment.f11d7007-9076-4ecf-839f-b46e0f65dbc6": [ "0.0.1", @@ -124313,7 +125035,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.restore-environment.powerplatformrestoreenvironment": [ "0.0.1", @@ -124345,7 +125068,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.set-connection-variables.f39f114b-39ae-487c-b3af-2e243c29cbb1": [ "2.0.7", @@ -124353,7 +125077,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.set-connection-variables.powerplatformsetconnectionvariables": [ "2.0.7", @@ -124361,7 +125086,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.set-solution-version.2c73f444-efd5-46b6-9416-44273166267b": [ "0.0.1", @@ -124393,7 +125119,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.set-solution-version.powerplatformsetsolutionversion": [ "0.0.1", @@ -124425,7 +125152,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.tool-installer.8015465b-f367-4ec4-8215-8edf682574d3": [ "0.0.1", @@ -124457,7 +125185,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.tool-installer.powerplatformtoolinstaller": [ "0.0.1", @@ -124489,7 +125218,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.unpack-solution.3cac89bb-1ef1-4aa7-a3c6-36c6e79c700e": [ "0.0.1", @@ -124521,7 +125251,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.unpack-solution.powerplatformunpacksolution": [ "0.0.1", @@ -124553,7 +125284,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.upload-paportal.ce0b296e-f1e6-4be2-a18b-a431c106cb86": [ "0.0.76", @@ -124568,7 +125300,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.upload-paportal.powerplatformuploadpaportal": [ "0.0.76", @@ -124583,7 +125316,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.whoami.d4a5d5cd-341b-47da-88a7-1c2379a0783a": [ "0.0.1", @@ -124615,7 +125349,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-isvexptools.powerplatform-buildtools.whoami.powerplatformwhoami": [ "0.0.1", @@ -124647,7 +125382,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "microsoft-oryx.azurecontainerappsrc.container-apps-deploy-pipelines-task.04e660e2-4ef0-4169-9c5d-23c0579757f6": [ "0.1.0", @@ -126804,6 +127540,7 @@ "3.5.178", "3.5.220", "3.5.260", + "3.5.268", "4.0.124", "4.1.8", "4.1.50", @@ -126817,7 +127554,8 @@ "4.1.161", "4.1.178", "4.1.220", - "4.1.260" + "4.1.260", + "4.1.268" ], "ms-devlabs.vsts-developer-tools-build-tasks.extension-version-build-task.extensionversion": [ "0.0.0", @@ -126921,6 +127659,7 @@ "3.5.178", "3.5.220", "3.5.260", + "3.5.268", "4.0.124", "4.1.8", "4.1.50", @@ -126934,7 +127673,8 @@ "4.1.161", "4.1.178", "4.1.220", - "4.1.260" + "4.1.260", + "4.1.268" ], "ms-devlabs.vsts-developer-tools-build-tasks.install-extension-build-task.": [ "0.0.0" @@ -127041,6 +127781,7 @@ "3.5.178", "3.5.220", "3.5.260", + "3.5.268", "4.0.8", "4.0.50", "4.0.89", @@ -127053,7 +127794,8 @@ "4.0.161", "4.0.178", "4.0.220", - "4.0.260" + "4.0.260", + "4.0.268" ], "ms-devlabs.vsts-developer-tools-build-tasks.install-extension-build-task.installazuredevopsextension": [ "2.0.5", @@ -127107,6 +127849,7 @@ "3.5.178", "3.5.220", "3.5.260", + "3.5.268", "4.0.8", "4.0.50", "4.0.89", @@ -127119,7 +127862,8 @@ "4.0.161", "4.0.178", "4.0.220", - "4.0.260" + "4.0.260", + "4.0.268" ], "ms-devlabs.vsts-developer-tools-build-tasks.install-extension-build-task.installextension": [ "0.0.0", @@ -127256,6 +128000,7 @@ "3.5.178", "3.5.220", "3.5.260", + "3.5.268", "4.0.8", "4.0.50", "4.0.89", @@ -127268,7 +128013,8 @@ "4.0.161", "4.0.178", "4.0.220", - "4.0.260" + "4.0.260", + "4.0.268" ], "ms-devlabs.vsts-developer-tools-build-tasks.is-valid-extension-agent-build-task.check marketplace validation status.": [ "1.1.65", @@ -127355,6 +128101,7 @@ "3.5.178", "3.5.220", "3.5.260", + "3.5.268", "4.0.8", "4.0.50", "4.0.89", @@ -127367,7 +128114,8 @@ "4.0.161", "4.0.178", "4.0.220", - "4.0.260" + "4.0.260", + "4.0.268" ], "ms-devlabs.vsts-developer-tools-build-tasks.is-valid-extension-build-task.231decda-22cb-4e83-b2f4-31fc86a0de1f": [ "1.1.65", @@ -127452,7 +128200,8 @@ "4.0.161", "4.0.178", "4.0.220", - "4.0.260" + "4.0.260", + "4.0.268" ], "ms-devlabs.vsts-developer-tools-build-tasks.is-valid-extension-build-task.check marketplace validation status.": [ "1.1.65", @@ -127539,7 +128288,8 @@ "4.0.161", "4.0.178", "4.0.220", - "4.0.260" + "4.0.260", + "4.0.268" ], "ms-devlabs.vsts-developer-tools-build-tasks.package-extension-build-task.": [ "0.0.0" @@ -127646,6 +128396,7 @@ "3.5.178", "3.5.220", "3.5.260", + "3.5.268", "4.0.8", "4.0.50", "4.0.89", @@ -127658,7 +128409,8 @@ "4.0.161", "4.0.178", "4.0.220", - "4.0.260" + "4.0.260", + "4.0.268" ], "ms-devlabs.vsts-developer-tools-build-tasks.package-extension-build-task.packageazuredevopsextension": [ "2.0.5", @@ -127712,6 +128464,7 @@ "3.5.178", "3.5.220", "3.5.260", + "3.5.268", "4.0.8", "4.0.50", "4.0.89", @@ -127724,7 +128477,8 @@ "4.0.161", "4.0.178", "4.0.220", - "4.0.260" + "4.0.260", + "4.0.268" ], "ms-devlabs.vsts-developer-tools-build-tasks.package-extension-build-task.packagevstsextension": [ "0.0.0", @@ -127880,6 +128634,7 @@ "3.5.178", "3.5.220", "3.5.260", + "3.5.268", "4.0.8", "4.0.50", "4.0.89", @@ -127892,7 +128647,8 @@ "4.0.161", "4.0.178", "4.0.220", - "4.0.260" + "4.0.260", + "4.0.268" ], "ms-devlabs.vsts-developer-tools-build-tasks.publish-extension-build-task.publishazuredevopsextension": [ "2.0.5", @@ -127946,6 +128702,7 @@ "3.5.178", "3.5.220", "3.5.260", + "3.5.268", "4.0.8", "4.0.50", "4.0.89", @@ -127958,7 +128715,8 @@ "4.0.161", "4.0.178", "4.0.220", - "4.0.260" + "4.0.260", + "4.0.268" ], "ms-devlabs.vsts-developer-tools-build-tasks.publish-extension-build-task.publishextension": [ "0.0.0", @@ -128080,6 +128838,7 @@ "3.5.178", "3.5.220", "3.5.260", + "3.5.268", "4.0.8", "4.0.50", "4.0.89", @@ -128092,7 +128851,8 @@ "4.0.161", "4.0.178", "4.0.220", - "4.0.260" + "4.0.260", + "4.0.268" ], "ms-devlabs.vsts-developer-tools-build-tasks.publish-vs-extension-build-task.publishvisualstudioextension": [ "2.0.5", @@ -128145,6 +128905,7 @@ "3.5.178", "3.5.220", "3.5.260", + "3.5.268", "4.0.8", "4.0.50", "4.0.89", @@ -128157,7 +128918,8 @@ "4.0.161", "4.0.178", "4.0.220", - "4.0.260" + "4.0.260", + "4.0.268" ], "ms-devlabs.vsts-developer-tools-build-tasks.publish-vs-extension-build-task.publishvsextension": [ "1.2.14", @@ -128281,6 +129043,7 @@ "3.5.178", "3.5.220", "3.5.260", + "3.5.268", "4.0.8", "4.0.50", "4.0.89", @@ -128293,7 +129056,8 @@ "4.0.161", "4.0.178", "4.0.220", - "4.0.260" + "4.0.260", + "4.0.268" ], "ms-devlabs.vsts-developer-tools-build-tasks.share-extension-build-task.shareazuredevopsextension": [ "2.0.5", @@ -128346,6 +129110,7 @@ "3.5.178", "3.5.220", "3.5.260", + "3.5.268", "4.0.8", "4.0.50", "4.0.89", @@ -128358,7 +129123,8 @@ "4.0.161", "4.0.178", "4.0.220", - "4.0.260" + "4.0.260", + "4.0.268" ], "ms-devlabs.vsts-developer-tools-build-tasks.share-extension-build-task.shareextension": [ "0.0.0", @@ -128476,6 +129242,7 @@ "3.5.178", "3.5.220", "3.5.260", + "3.5.268", "4.0.8", "4.0.50", "4.0.89", @@ -128488,7 +129255,8 @@ "4.0.161", "4.0.178", "4.0.220", - "4.0.260" + "4.0.260", + "4.0.268" ], "ms-devlabs.vsts-developer-tools-build-tasks.tfx-installer-build-task.tfxinstaller": [ "1.2.30", @@ -128555,6 +129323,7 @@ "3.5.178", "3.5.220", "3.5.260", + "3.5.268", "4.0.8", "4.0.50", "4.0.89", @@ -128567,7 +129336,8 @@ "4.0.161", "4.0.178", "4.0.220", - "4.0.260" + "4.0.260", + "4.0.268" ], "ms-devlabs.vsts-developer-tools-build-tasks.unpublish-extension-build-task.b2664b33-2f30-40a4-b75f-bb9456ad27d2": [ "3.1.60", @@ -128597,6 +129367,7 @@ "3.5.178", "3.5.220", "3.5.260", + "3.5.268", "4.0.8", "4.0.50", "4.0.89", @@ -128609,7 +129380,8 @@ "4.0.161", "4.0.178", "4.0.220", - "4.0.260" + "4.0.260", + "4.0.268" ], "ms-devlabs.vsts-developer-tools-build-tasks.unpublish-extension-build-task.unpublishazuredevopsextension": [ "3.1.60", @@ -128639,6 +129411,7 @@ "3.5.178", "3.5.220", "3.5.260", + "3.5.268", "4.0.8", "4.0.50", "4.0.89", @@ -128651,7 +129424,8 @@ "4.0.161", "4.0.178", "4.0.220", - "4.0.260" + "4.0.260", + "4.0.268" ], "ms-easbuild.buildnotification.task-buildnotification.b0e438f2-18ba-44df-b6e5-1deb7a29811f": [ "1.19.1", @@ -130574,7 +131348,6 @@ "3.1.0", "3.1.1" ], - "mssql script runner": ["0.1.0", "0.1.1", "0.1.2"], "msswiftkey.android-app-size-diff-utils.android-app-size-diff.911fb029-c89b-4d09-a2d4-610486918018": [ "1.0.0", "1.0.1", @@ -131511,7 +132284,8 @@ "1.414.0", "1.415.0", "1.416.0", - "1.419.0" + "1.419.0", + "1.420.0" ], "ndepend.ndependextension.ndepend-task.ndependtask": [ "1.0.0", @@ -131699,7 +132473,8 @@ "1.414.0", "1.415.0", "1.416.0", - "1.419.0" + "1.419.0", + "1.420.0" ], "ndependtask": [ "1.0.0", @@ -131887,7 +132662,8 @@ "1.414.0", "1.415.0", "1.416.0", - "1.419.0" + "1.419.0", + "1.420.0" ], "needcode.applicationbackup.needcode-applicationbackup.1ae9cc7b-29a4-4614-82df-00dc3ea74cd0": [ "1.0.0", @@ -133624,44 +134400,64 @@ "nodeandnpmtool": ["0.1.0", "1.0.4", "1.0.5"], "nodejsexec": ["0.1.0", "0.1.3", "0.1.5"], "nodejsrunner": ["0.4.2", "0.6.8", "0.7.8"], - "nokia.ncdcnfsegregationextension.cnfsegregationcontid.6af551d1-13c6-44ce-bb8c-1a4a9c0af93b": [ - "22.6.0" - ], - "nokia.ncdcnfsegregationextension.cnfsegregationcontid.cnfsegregationtask": [ - "22.6.0" - ], "nokia.ncddeployextension.deploycontid.4e6d2469-e404-4080-9719-ac8dc9b7b3ee": [ - "22.6.0" + "22.6.0", + "23.2.0" ], - "nokia.ncddeployextension.deploycontid.deploytask": ["22.6.0"], + "nokia.ncddeployextension.deploycontid.deploytask": ["22.6.0", "23.2.0"], "nokia.ncdextratestsextension.extratestscontid.0b477ee0-b50e-4eb1-84ba-de09326dce3d": [ - "22.6.0" + "22.6.0", + "23.2.0" + ], + "nokia.ncdextratestsextension.extratestscontid.extrateststask": [ + "22.6.0", + "23.2.0" ], - "nokia.ncdextratestsextension.extratestscontid.extrateststask": ["22.6.0"], "nokia.ncdpromotionextension.promotioncontid.79c830dd-92bb-4e02-b330-6638db9df26c": [ - "22.6.0" + "22.6.0", + "23.2.0" + ], + "nokia.ncdpromotionextension.promotioncontid.promotiontask": [ + "22.6.0", + "23.2.0" ], - "nokia.ncdpromotionextension.promotioncontid.promotiontask": ["22.6.0"], "nokia.ncdrepocheckextension.repocheckcontid.e4c104ab-0d8d-4f79-9cdb-4687df347558": [ - "22.6.0" + "22.6.0", + "23.2.0" + ], + "nokia.ncdrepocheckextension.repocheckcontid.repochecktask": [ + "22.6.0", + "23.2.0" ], - "nokia.ncdrepocheckextension.repocheckcontid.repochecktask": ["22.6.0"], "nokia.ncdrollbackextension.rollbackcontid.b6b825f4-533e-42de-82e8-633bb17be567": [ - "22.6.0" + "22.6.0", + "23.2.0" + ], + "nokia.ncdrollbackextension.rollbackcontid.nsrollbacktask": [ + "22.6.0", + "23.2.0" ], - "nokia.ncdrollbackextension.rollbackcontid.nsrollbacktask": ["22.6.0"], "nokia.ncdterminateextension.terminatecontid.b9d2cbbf-a568-432b-bddc-4a8ad11c06a5": [ - "22.6.0" + "22.6.0", + "23.2.0" + ], + "nokia.ncdterminateextension.terminatecontid.terminatenstask": [ + "22.6.0", + "23.2.0" ], - "nokia.ncdterminateextension.terminatecontid.terminatenstask": ["22.6.0"], "nokia.ncdtestnsextension.testcontid.2364f995-5ce9-4f83-87a7-c70166e271b9": [ - "22.6.0" + "22.6.0", + "23.2.0" ], - "nokia.ncdtestnsextension.testcontid.testnstask": ["22.6.0"], + "nokia.ncdtestnsextension.testcontid.testnstask": ["22.6.0", "23.2.0"], "nokia.ncdtestsetupextension.testsetupcontid.bfc50905-2ff3-4d34-be60-b59618fd371e": [ - "22.6.0" + "22.6.0", + "23.2.0" + ], + "nokia.ncdtestsetupextension.testsetupcontid.testsetuptask": [ + "22.6.0", + "23.2.0" ], - "nokia.ncdtestsetupextension.testsetupcontid.testsetuptask": ["22.6.0"], "north52-create-n52-configuration": [ "1.1.0", "1.1.1", @@ -133901,7 +134697,7 @@ "3.0.5", "3.0.6" ], - "nsrollbacktask": ["22.6.0"], + "nsrollbacktask": ["22.6.0", "23.2.0"], "nubeone.tfs-changelog-generator.tfs-changelog-generator-task.29242a04-0b5d-4f5c-9a2a-abbaaba4c690": [ "1.0.0", "1.0.1", @@ -138653,6 +139449,7 @@ "0.0.26", "0.0.27", "0.0.28", + "0.0.29", "1.1.8" ], "owaspzaponpremisestop": [ @@ -138667,6 +139464,7 @@ "0.0.26", "0.0.27", "0.0.28", + "0.0.29", "1.1.8" ], "owaspzapscan": [ @@ -138772,6 +139570,7 @@ "3.5.178", "3.5.220", "3.5.260", + "3.5.268", "4.0.8", "4.0.50", "4.0.89", @@ -138784,7 +139583,8 @@ "4.0.161", "4.0.178", "4.0.220", - "4.0.260" + "4.0.260", + "4.0.268" ], "packages-config-merger": ["1.0.2"], "packagesconfigmerger": ["1.0.2"], @@ -141615,7 +142415,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "powerplatformapplysolutionupgrade": [ "0.0.23", @@ -141638,9 +142439,10 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], - "powerplatformassigngroup": ["2.0.13", "2.0.15", "2.0.16"], + "powerplatformassigngroup": ["2.0.13", "2.0.15", "2.0.16", "2.0.17"], "powerplatformassignuser": [ "2.0.3", "2.0.4", @@ -141650,7 +142452,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "powerplatformbackupenvironment": [ "0.0.1", @@ -141682,7 +142485,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "powerplatformchecker": [ "0.0.1", @@ -141714,7 +142518,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "powerplatformcopyenvironment": [ "0.0.1", @@ -141746,7 +142551,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "powerplatformcreateenvironment": [ "0.0.1", @@ -141778,7 +142584,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "powerplatformdeleteenvironment": [ "0.0.1", @@ -141810,7 +142617,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "powerplatformdeletesolution": [ "0.0.23", @@ -141833,7 +142641,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "powerplatformdeploypackage": [ "0.0.1", @@ -141865,7 +142674,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "powerplatformdownloadpaportal": [ "0.0.76", @@ -141880,7 +142690,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "powerplatformexportdata": [ "2.0.7", @@ -141888,7 +142699,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "powerplatformexportsolution": [ "0.0.1", @@ -141920,7 +142732,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "powerplatformimportdata": [ "2.0.7", @@ -141928,7 +142741,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "powerplatformimportsolution": [ "0.0.1", @@ -141960,9 +142774,16 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" + ], + "powerplatforminstallapplication": [ + "2.0.10", + "2.0.13", + "2.0.15", + "2.0.16", + "2.0.17" ], - "powerplatforminstallapplication": ["2.0.10", "2.0.13", "2.0.15", "2.0.16"], "powerplatformpacksolution": [ "0.0.1", "0.0.3", @@ -141993,7 +142814,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "powerplatformpublishcustomizations": [ "0.0.1", @@ -142025,7 +142847,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "powerplatformresetenvironment": [ "0.0.1", @@ -142057,7 +142880,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "powerplatformrestoreenvironment": [ "0.0.1", @@ -142089,7 +142913,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "powerplatformsetconnectionvariables": [ "2.0.7", @@ -142097,7 +142922,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "powerplatformsetsolutionversion": [ "0.0.1", @@ -142129,7 +142955,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "powerplatformtoolinstaller": [ "0.0.1", @@ -142161,7 +142988,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "powerplatformunpacksolution": [ "0.0.1", @@ -142193,7 +143021,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "powerplatformuploadpaportal": [ "0.0.76", @@ -142208,7 +143037,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "powerplatformwhoami": [ "0.0.1", @@ -142240,7 +143070,8 @@ "2.0.10", "2.0.13", "2.0.15", - "2.0.16" + "2.0.16", + "2.0.17" ], "powershell": ["1.0.0", "1.0.1", "1.0.2"], "powershell script analyzer": [ @@ -142801,7 +143632,7 @@ "0.1.38", "0.1.40" ], - "promotiontask": ["22.6.0"], + "promotiontask": ["22.6.0", "23.2.0"], "proofdock.chaos-platform.chaos-attack-runner-task.a0d95e01-832d-4d0f-8114-c6f15c8dd418": [ "0.3.11", "0.3.21", @@ -143609,6 +144440,7 @@ "3.5.178", "3.5.220", "3.5.260", + "3.5.268", "4.0.8", "4.0.50", "4.0.89", @@ -143621,7 +144453,8 @@ "4.0.161", "4.0.178", "4.0.220", - "4.0.260" + "4.0.260", + "4.0.268" ], "publishazuredscpullserverconfigurations": ["1.0.2", "1.0.3", "1.0.4"], "publishbcappdocker": [ @@ -143722,7 +144555,8 @@ "1.0.5", "1.0.6", "1.0.7", - "1.0.8" + "1.0.8", + "1.0.9" ], "publishdacpactask": [ "1.1.0", @@ -144183,6 +145017,7 @@ "3.5.178", "3.5.220", "3.5.260", + "3.5.268", "4.0.8", "4.0.50", "4.0.89", @@ -144195,7 +145030,8 @@ "4.0.161", "4.0.178", "4.0.220", - "4.0.260" + "4.0.260", + "4.0.268" ], "publishvsextension": [ "1.2.14", @@ -145561,6 +146397,7 @@ "3.5.178", "3.5.220", "3.5.260", + "3.5.268", "4.0.124", "4.1.8", "4.1.50", @@ -145574,8 +146411,10 @@ "4.1.161", "4.1.178", "4.1.220", - "4.1.260" + "4.1.260", + "4.1.268" ], + "querymailer": ["0.1.0", "0.2.0", "0.3.0"], "querysurge-run-suite-task": [ "0.1.18", "0.1.19", @@ -147345,16 +148184,6 @@ "1.0.7", "1.0.8" ], - "ray-lomax.mssql-script-runner.custom-build-release-task.5bb56a8d-9525-4af3-a64d-dae0677dd692": [ - "0.1.0", - "0.1.1", - "0.1.2" - ], - "ray-lomax.mssql-script-runner.custom-build-release-task.mssql script runner": [ - "0.1.0", - "0.1.1", - "0.1.2" - ], "ray-lomax.web-config-changer.custom-build-task.84c56f60-f8ed-11e9-bd58-73f707d2abec": [ "1.0.0", "1.0.1", @@ -149801,7 +150630,7 @@ "2.1.5", "2.1.6" ], - "repochecktask": ["22.6.0"], + "repochecktask": ["22.6.0", "23.2.0"], "reportdelete": ["1.2.0"], "reportgenerator": [ "0.1.0", @@ -151148,7 +151977,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "richardfennellbm.bm-vsts-versioning-task.version-androidmanifest-task.versionandroidmanifest": [ "1.24.19", @@ -151215,7 +152045,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "richardfennellbm.bm-vsts-versioning-task.version-angularfile-task.b667bc49-cad0-48f5-b727-3a6bb418222f": [ "1.31.7", @@ -151275,7 +152106,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "richardfennellbm.bm-vsts-versioning-task.version-angularfile-task.versionangularfile": [ "1.31.7", @@ -151335,7 +152167,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "richardfennellbm.bm-vsts-versioning-task.version-appx-task.ea3a1166-3aee-434f-b34d-0bf5f763e1f2": [ "1.1.1", @@ -151425,7 +152258,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "richardfennellbm.bm-vsts-versioning-task.version-appx-task.versionappx": [ "1.1.1", @@ -151515,7 +152349,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "richardfennellbm.bm-vsts-versioning-task.version-assemblies-task.e47012ed-074c-4f77-ac9f-a6812f900ab0": [ "1.1.0", @@ -151605,7 +152440,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "richardfennellbm.bm-vsts-versioning-task.version-assemblies-task.versionassemblies": [ "1.1.0", @@ -151695,7 +152531,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "richardfennellbm.bm-vsts-versioning-task.version-dacpac-task.fd593137-89b4-4d81-82f1-c098c1343e0a": [ "1.1.0", @@ -151785,7 +152622,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "richardfennellbm.bm-vsts-versioning-task.version-dacpac-task.versiondacpac": [ "1.1.0", @@ -151875,7 +152713,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "richardfennellbm.bm-vsts-versioning-task.version-dotnetcoreassemblies-task.4578fa22-6039-4d83-90e0-3e12f68d6b26": [ "1.15.22", @@ -151951,7 +152790,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "richardfennellbm.bm-vsts-versioning-task.version-dotnetcoreassemblies-task.versiondotnetcoreassemblies": [ "1.15.22", @@ -152027,7 +152867,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "richardfennellbm.bm-vsts-versioning-task.version-iosplistmanifest-task.e23ccfaa-0d23-4fb7-b9f1-215b3060c452": [ "2.33.16", @@ -152039,7 +152880,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "richardfennellbm.bm-vsts-versioning-task.version-iosplistmanifest-task.versioniosplistmanifest": [ "2.33.16", @@ -152051,7 +152893,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "richardfennellbm.bm-vsts-versioning-task.version-jsonfile-task.3190c289-2a62-49c4-a126-df889a58018d": [ "1.31.7", @@ -152111,7 +152954,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "richardfennellbm.bm-vsts-versioning-task.version-jsonfile-task.versionjsonfile": [ "1.31.7", @@ -152171,7 +153015,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "richardfennellbm.bm-vsts-versioning-task.version-nuspec-task.dd570fa4-abc8-4845-87b3-04be7f189ad8": [ "1.6.6", @@ -152257,7 +153102,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "richardfennellbm.bm-vsts-versioning-task.version-nuspec-task.versionnuspec": [ "1.6.6", @@ -152343,7 +153189,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "richardfennellbm.bm-vsts-versioning-task.version-powershellmodule-task.036278fe-8a47-426b-b5b3-bef05334db00": [ "1.40.4", @@ -152394,7 +153241,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "richardfennellbm.bm-vsts-versioning-task.version-powershellmodule-task.versionpowershellmodule": [ "1.40.4", @@ -152445,7 +153293,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "richardfennellbm.bm-vsts-versioning-task.version-sharepointappmanifest-task.2d932e86-7068-4a1e-ab4d-f104fad6db37": [ "1.12.4", @@ -152525,7 +153374,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "richardfennellbm.bm-vsts-versioning-task.version-sharepointappmanifest-task.versionsharepointappmanifest": [ "1.12.4", @@ -152605,7 +153455,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "richardfennellbm.bm-vsts-versioning-task.version-vsix-task.76d2151f-27c2-430c-8116-73693d3ab13e": [ "1.2.0", @@ -152695,7 +153546,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "richardfennellbm.bm-vsts-versioning-task.version-vsix-task.versionvsix": [ "1.2.0", @@ -152785,7 +153637,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "richardfennellbm.bm-vsts-versioning-task.version-wix-task.fd2ef332-9676-4e8f-8e95-b22be61ec9dd": [ "1.15.22", @@ -152861,7 +153714,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "richardfennellbm.bm-vsts-versioning-task.version-wix-task.versionwix": [ "1.15.22", @@ -152937,7 +153791,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "richardfennellbm.bm-vsts-wikipdfexport-tasks.wikipdfexporttask.48d40d27-32e1-460e-8ea6-0dfb48abdd6f": [ "1.0.17", @@ -155337,6 +156192,17 @@ "0.9.191", "0.9.196" ], + "run-lumar-protect-build-task": [ + "1.1.0", + "1.1.1", + "1.1.2", + "1.1.3", + "1.1.4", + "1.1.5", + "1.1.6", + "1.1.7", + "1.1.8" + ], "run-pipeline": ["1.1.1", "1.2.0"], "run-stryker": [ "0.1.0", @@ -157402,7 +158268,8 @@ "0.0.5", "0.0.6", "0.0.7", - "0.1.2" + "0.1.2", + "0.1.3" ], "scribesecurity.valint-cli.custom-build-release-install-task.e7b5f8cb-6824-434d-8a6e-a23d2024ecd6": [ "0.0.1", @@ -157412,7 +158279,8 @@ "0.0.5", "0.0.6", "0.0.7", - "0.1.2" + "0.1.2", + "0.1.3" ], "scribesecurity.valint-cli.custom-build-release-install-task.scribeinstall": [ "0.0.1", @@ -157421,7 +158289,8 @@ "0.0.5", "0.0.6", "0.0.7", - "0.1.2" + "0.1.2", + "0.1.3" ], "scribesecurity.valint-cli.custom-build-release-install-task.valintinstall": [ "0.0.2" @@ -157434,7 +158303,8 @@ "0.0.5", "0.0.6", "0.0.7", - "0.1.2" + "0.1.2", + "0.1.3" ], "scribesecurity.valint-cli.custom-build-release-task.valintcli": [ "0.0.1", @@ -157444,7 +158314,8 @@ "0.0.5", "0.0.6", "0.0.7", - "0.1.2" + "0.1.2", + "0.1.3" ], "scribesolutiondeployment": [ "0.1.0", @@ -161996,7 +162867,12 @@ "0.1.38", "0.1.39", "0.1.40", - "0.1.41" + "0.1.41", + "0.1.42", + "0.1.43", + "0.1.44", + "0.1.45", + "0.1.46" ], "set-azure-ad-application": [ "1.0.1", @@ -162164,7 +163040,12 @@ "0.1.38", "0.1.39", "0.1.40", - "0.1.41" + "0.1.41", + "0.1.42", + "0.1.43", + "0.1.44", + "0.1.45", + "0.1.46" ], "set-toggle-parameter": [ "0.1.20", @@ -162848,6 +163729,7 @@ "3.5.178", "3.5.220", "3.5.260", + "3.5.268", "4.0.8", "4.0.50", "4.0.89", @@ -162860,7 +163742,8 @@ "4.0.161", "4.0.178", "4.0.220", - "4.0.260" + "4.0.260", + "4.0.268" ], "shareextension": [ "0.0.0", @@ -163297,6 +164180,8 @@ ], "short-git-version-hash-extractor": ["1.0.1"], "showallenvironmentvariables": ["0.0.1", "0.0.2"], + "showallpowershellvariables": ["0.0.1", "0.0.11"], + "showallvariables": ["0.0.1"], "showvariables": [ "1.0.12", "1.0.14", @@ -164686,6 +165571,28 @@ "1.1.2", "1.1.9" ], + "solucionespsg.generateandpublishvsixtomarketplace.psg.generateandpublishvsixtomarketplace.5f0427b3-e660-4f4d-9a93-60dd13f40032": [ + "0.0.1", + "0.0.2", + "0.0.3", + "0.0.4", + "0.0.5", + "0.0.6", + "0.0.7", + "0.0.8", + "0.0.9" + ], + "solucionespsg.generateandpublishvsixtomarketplace.psg.generateandpublishvsixtomarketplace.generateandpublishvsixtomarketplace": [ + "0.0.1", + "0.0.2", + "0.0.3", + "0.0.4", + "0.0.5", + "0.0.6", + "0.0.7", + "0.0.8", + "0.0.9" + ], "solucionespsg.owaspzaponpremisestartstop.psg.owaspzaponpremisestart.31f040e5-e040-4336-878a-59a493355535": [ "0.0.3", "0.0.4", @@ -164698,6 +165605,7 @@ "0.0.26", "0.0.27", "0.0.28", + "0.0.29", "1.1.8" ], "solucionespsg.owaspzaponpremisestartstop.psg.owaspzaponpremisestart.owaspzaponpremisestart": [ @@ -164712,6 +165620,7 @@ "0.0.26", "0.0.27", "0.0.28", + "0.0.29", "1.1.8" ], "solucionespsg.owaspzaponpremisestartstop.psg.owaspzaponpremisestop.31f040e5-e040-4336-878a-59a493355536": [ @@ -164726,6 +165635,7 @@ "0.0.26", "0.0.27", "0.0.28", + "0.0.29", "1.1.8" ], "solucionespsg.owaspzaponpremisestartstop.psg.owaspzaponpremisestop.owaspzaponpremisestop": [ @@ -164740,6 +165650,7 @@ "0.0.26", "0.0.27", "0.0.28", + "0.0.29", "1.1.8" ], "solucionespsg.showallenvironmentvariables.psg.showallenvironmentvariables.5f0427b3-e660-4f4d-9a93-60dd13f40029": [ @@ -164750,6 +165661,20 @@ "0.0.1", "0.0.2" ], + "solucionespsg.showallpowershellvariables.psg.showallpowershellvariables.5f0427b3-e660-4f4d-9a93-60dd13f40031": [ + "0.0.1", + "0.0.11" + ], + "solucionespsg.showallpowershellvariables.psg.showallpowershellvariables.showallpowershellvariables": [ + "0.0.1", + "0.0.11" + ], + "solucionespsg.showallvariables.psg.showallvariables.5f0427b3-e660-4f4d-9a93-60dd13f40030": [ + "0.0.1" + ], + "solucionespsg.showallvariables.psg.showallvariables.showallvariables": [ + "0.0.1" + ], "solucionespsg.updateversionvariablesandpackage.psg.updateversionvariablesandpackage.5f0427b3-e660-4f4d-9a93-60dd13f40028": [ "0.0.7", "0.0.8", @@ -164925,7 +165850,8 @@ "1.33.1", "1.34.0", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "sonarcloudprepare": [ "1.0.0", @@ -164976,7 +165902,8 @@ "1.30.1", "1.31.0", "1.32.0", - "1.33.0" + "1.33.0", + "1.34.0" ], "sonarcloudpublish": [ "1.0.0", @@ -165040,6 +165967,7 @@ "4.32.0", "4.33.0", "4.34.0", + "4.35.0", "5.0.0", "5.1.0", "5.2.0", @@ -165053,7 +165981,8 @@ "5.8.0", "5.9.0", "5.10.0", - "5.11.0" + "5.11.0", + "5.12.0" ], "sonarqubeprepare": [ "4.0.0", @@ -165105,6 +166034,7 @@ "4.32.0", "4.33.0", "4.34.0", + "4.35.0", "5.0.0", "5.1.0", "5.1.1", @@ -165120,7 +166050,8 @@ "5.9.0", "5.10.0", "5.11.0", - "5.11.1" + "5.11.1", + "5.12.0" ], "sonarqubepublish": [ "4.0.0", @@ -165282,7 +166213,8 @@ "1.30.1", "1.31.0", "1.32.0", - "1.33.0" + "1.33.0", + "1.34.0" ], "sonarsource.sonarcloud.14d9cde6-c1da-4d55-aa01-2965cd301255.sonarcloudprepare": [ "1.0.0", @@ -165333,7 +166265,8 @@ "1.30.1", "1.31.0", "1.32.0", - "1.33.0" + "1.33.0", + "1.34.0" ], "sonarsource.sonarcloud.38b27399-a642-40af-bb7d-9971f69712e8.38b27399-a642-40af-bb7d-9971f69712e8": [ "1.0.0", @@ -165420,7 +166353,8 @@ "1.33.1", "1.34.0", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "sonarsource.sonarcloud.ce096e50-6155-4de8-8800-4221aaeed4a1.sonarcloudanalyze": [ "1.0.0", @@ -165467,7 +166401,8 @@ "1.33.1", "1.34.0", "1.35.0", - "1.36.0" + "1.36.0", + "1.37.0" ], "sonarsource.sonarqube.15b84ca1-b62f-4a2a-a403-89b77a063157.15b84ca1-b62f-4a2a-a403-89b77a063157": [ "2.0.0", @@ -165553,6 +166488,7 @@ "4.32.0", "4.33.0", "4.34.0", + "4.35.0", "5.0.0", "5.1.0", "5.1.1", @@ -165568,7 +166504,8 @@ "5.9.0", "5.10.0", "5.11.0", - "5.11.1" + "5.11.1", + "5.12.0" ], "sonarsource.sonarqube.15b84ca1-b62f-4a2a-a403-89b77a063157.sonarqubeprepare": [ "4.0.0", @@ -165620,6 +166557,7 @@ "4.32.0", "4.33.0", "4.34.0", + "4.35.0", "5.0.0", "5.1.0", "5.1.1", @@ -165635,7 +166573,8 @@ "5.9.0", "5.10.0", "5.11.0", - "5.11.1" + "5.11.1", + "5.12.0" ], "sonarsource.sonarqube.15b84ca1-b62f-4a2a-a403-89b77a063157.sonarqubescannermsbuildbegin": [ "2.0.0", @@ -165793,6 +166732,7 @@ "4.32.0", "4.33.0", "4.34.0", + "4.35.0", "5.0.0", "5.1.0", "5.2.0", @@ -165806,7 +166746,8 @@ "5.8.0", "5.9.0", "5.10.0", - "5.11.0" + "5.11.0", + "5.12.0" ], "sonarsource.sonarqube.6d01813a-9589-4b15-8491-8164aeb38055.sonarqubeanalyze": [ "4.0.0", @@ -165852,6 +166793,7 @@ "4.32.0", "4.33.0", "4.34.0", + "4.35.0", "5.0.0", "5.1.0", "5.2.0", @@ -165865,7 +166807,8 @@ "5.8.0", "5.9.0", "5.10.0", - "5.11.0" + "5.11.0", + "5.12.0" ], "sonarsource.sonarqube.6d01813a-9589-4b15-8491-8164aeb38055.sonarqubescannermsbuildend": [ "2.0.0", @@ -170526,7 +171469,7 @@ "telegramnotifytask": ["0.1.0"], "tencentcloudcosdeploy": ["1.1.54", "1.1.55"], "tencentcloudrefreshcdn": ["1.0.0", "1.0.18"], - "terminatenstask": ["22.6.0"], + "terminatenstask": ["22.6.0", "23.2.0"], "terraform": [ "1.0.0", "1.0.1", @@ -170674,7 +171617,8 @@ "0.7.6", "0.7.7", "0.7.8", - "0.7.11" + "0.7.11", + "0.7.12" ], "terraformdestroy": [ "0.1.0", @@ -170785,6 +171729,7 @@ "0.7.7", "0.7.8", "0.7.11", + "0.7.12", "0.197.0", "0.201.0", "0.202.0", @@ -171085,10 +172030,10 @@ "0.2.6", "0.2.7" ], - "testnstask": ["22.6.0"], + "testnstask": ["22.6.0", "23.2.0"], "testproject-run": ["1.0.0"], "testrunperformanceanalyzer": ["0.1.3", "0.9.1", "1.0.0", "1.0.1"], - "testsetuptask": ["22.6.0"], + "testsetuptask": ["22.6.0", "23.2.0"], "tf-buildandreleasetask": ["0.1.0", "1.0.0", "1.0.1"], "tf-vc-add": [ "2.0.1", @@ -172235,6 +173180,7 @@ "3.5.178", "3.5.220", "3.5.260", + "3.5.268", "4.0.8", "4.0.50", "4.0.89", @@ -172247,7 +173193,8 @@ "4.0.161", "4.0.178", "4.0.220", - "4.0.260" + "4.0.260", + "4.0.268" ], "tg.vsts-ssis.buildssis-task.1cbf64a9-c6d0-431b-9d98-8f5d509b5e09": [ "0.0.1148", @@ -174944,7 +175891,11 @@ "9.1.11639", "9.1.11643", "9.1.11647", - "9.1.61695" + "9.1.61695", + "9.1.91713", + "9.1.91714", + "9.1.91716", + "9.1.91717" ], "typemock.typemock-tasks-beta.typemocksmartrunner.typemocksmartrunner": [ "8.9.61405", @@ -174987,7 +175938,11 @@ "9.1.11639", "9.1.11643", "9.1.11647", - "9.1.61695" + "9.1.61695", + "9.1.91713", + "9.1.91714", + "9.1.91716", + "9.1.91717" ], "typemock.typemock-tasks-beta.vstestwithtypemock.5e2467be-4fa5-4fe4-b84d-7b276cc1800d": [ "8.9.61405", @@ -175030,7 +175985,11 @@ "9.1.11639", "9.1.11643", "9.1.11647", - "9.1.61695" + "9.1.61695", + "9.1.91713", + "9.1.91714", + "9.1.91716", + "9.1.91717" ], "typemock.typemock-tasks-beta.vstestwithtypemock.vstestwithtypemock": [ "8.9.61405", @@ -175073,7 +176032,11 @@ "9.1.11639", "9.1.11643", "9.1.11647", - "9.1.61695" + "9.1.61695", + "9.1.91713", + "9.1.91714", + "9.1.91716", + "9.1.91717" ], "typemock.typemock-tasks.typemock_smart_runner.84b5a581-2a93-4aa8-b459-8fef028d2d83": [ "8.5.741" @@ -175127,7 +176090,9 @@ "9.1.51686", "9.1.61689", "9.1.71696", - "9.1.81710" + "9.1.81710", + "9.1.91713", + "9.1.91717" ], "typemock.typemock-tasks.typemocksmartrunner.af5a8f5a-e610-49ed-8aa9-821d14beb92c": [ "8.4.1", @@ -175185,7 +176150,9 @@ "9.1.51686", "9.1.61689", "9.1.71696", - "9.1.81710" + "9.1.81710", + "9.1.91713", + "9.1.91717" ], "typemock.typemock-tasks.typemocksmartrunnertask.a0ca5cb2-bacd-46ab-82dc-b0e1984f6006": [ "8.5.742", @@ -175247,7 +176214,9 @@ "9.1.51686", "9.1.61689", "9.1.71696", - "9.1.81710" + "9.1.81710", + "9.1.91713", + "9.1.91717" ], "typemock.typemock-tasks.vstestwithtypemock.d9a4ee62-4f10-4146-8e06-274bd42b7453": [ "8.4.2", @@ -175303,7 +176272,9 @@ "9.1.51686", "9.1.61689", "9.1.71696", - "9.1.81710" + "9.1.81710", + "9.1.91713", + "9.1.91717" ], "typemock.typemock-tasks.vstestwithtypemocktask.b79d073d-713c-4c2b-9ec4-f88d990cfa34": [ "8.5.742", @@ -175402,7 +176373,11 @@ "9.1.61689", "9.1.61695", "9.1.71696", - "9.1.81710" + "9.1.81710", + "9.1.91713", + "9.1.91714", + "9.1.91716", + "9.1.91717" ], "typemocksmartrunnertask": ["8.5.742", "8.5.743"], "typings": ["0.1.0", "0.1.1"], @@ -175578,7 +176553,8 @@ "uipath.vsts-uipath-package-preview.uipath-assets-preview.83faa8cf-ff90-4cb5-8ca0-389edc2c0af5": [ "2.11.3447906", "3.0.3513646", - "3.0.3517186" + "3.0.3517186", + "3.0.3642585" ], "uipath.vsts-uipath-package-preview.uipath-assets-preview.f4df1586-7648-4160-ad6d-a03b05af0004": [ "2.11.3445511" @@ -175587,12 +176563,14 @@ "2.11.3445511", "2.11.3447906", "3.0.3513646", - "3.0.3517186" + "3.0.3517186", + "3.0.3642585" ], "uipath.vsts-uipath-package-preview.uipath-deploy-preview.666f48a9-3550-4db6-b74b-2f8aa4b99444": [ "2.11.3447906", "3.0.3513646", - "3.0.3517186" + "3.0.3517186", + "3.0.3642585" ], "uipath.vsts-uipath-package-preview.uipath-deploy-preview.72167370-9f1d-47d5-be00-6f2554c20001": [ "2.11.3445511" @@ -175601,12 +176579,14 @@ "2.11.3445511", "2.11.3447906", "3.0.3513646", - "3.0.3517186" + "3.0.3517186", + "3.0.3642585" ], "uipath.vsts-uipath-package-preview.uipath-install-platform-preview.0ae6f751-0884-4b80-8cb7-1686f59d4288": [ "2.11.3447906", "3.0.3513646", - "3.0.3517186" + "3.0.3517186", + "3.0.3642585" ], "uipath.vsts-uipath-package-preview.uipath-install-platform-preview.723917b2-c29b-4c74-b536-611be986beb2": [ "2.11.3445511" @@ -175615,7 +176595,8 @@ "2.11.3445511", "2.11.3447906", "3.0.3513646", - "3.0.3517186" + "3.0.3517186", + "3.0.3642585" ], "uipath.vsts-uipath-package-preview.uipath-pack-preview.33265b4a-5861-41e6-a42c-83efecec0002": [ "2.11.3445511" @@ -175623,13 +176604,15 @@ "uipath.vsts-uipath-package-preview.uipath-pack-preview.51d18b73-ba80-440e-95c2-59620cb4be1c": [ "2.11.3447906", "3.0.3513646", - "3.0.3517186" + "3.0.3517186", + "3.0.3642585" ], "uipath.vsts-uipath-package-preview.uipath-pack-preview.uipathpack-preview": [ "2.11.3445511", "2.11.3447906", "3.0.3513646", - "3.0.3517186" + "3.0.3517186", + "3.0.3642585" ], "uipath.vsts-uipath-package-preview.uipath-runjob-preview.aef39911-3d63-40d6-bdef-909edadf0005": [ "2.11.3445511" @@ -175637,18 +176620,21 @@ "uipath.vsts-uipath-package-preview.uipath-runjob-preview.ef33e496-05b4-4e5d-ba93-7e3ae477d9ca": [ "2.11.3447906", "3.0.3513646", - "3.0.3517186" + "3.0.3517186", + "3.0.3642585" ], "uipath.vsts-uipath-package-preview.uipath-runjob-preview.uipathrunjob-preview": [ "2.11.3445511", "2.11.3447906", "3.0.3513646", - "3.0.3517186" + "3.0.3517186", + "3.0.3642585" ], "uipath.vsts-uipath-package-preview.uipath-test-preview.07a04851-f6d3-473a-82e1-e9026d0b5528": [ "2.11.3447906", "3.0.3513646", - "3.0.3517186" + "3.0.3517186", + "3.0.3642585" ], "uipath.vsts-uipath-package-preview.uipath-test-preview.edd520aa-3aec-408b-9649-642f8b920003": [ "2.11.3445511" @@ -175657,7 +176643,8 @@ "2.11.3445511", "2.11.3447906", "3.0.3513646", - "3.0.3517186" + "3.0.3517186", + "3.0.3642585" ], "uipath.vsts-uipath-package-preview.vsts-eventlog-to-tests.0e237901-8ece-4bc9-bedf-05ed7f0e98d5": [ "1.0.3445511" @@ -175665,13 +176652,15 @@ "uipath.vsts-uipath-package-preview.vsts-eventlog-to-tests.5ba96c72-cff1-411e-a333-ea2bbf4f2f78": [ "1.0.3447906", "1.0.3513646", - "1.0.3517186" + "1.0.3517186", + "1.0.3642585" ], "uipath.vsts-uipath-package-preview.vsts-eventlog-to-tests.uipathpackage-preview": [ "1.0.3445511", "1.0.3447906", "1.0.3513646", - "1.0.3517186" + "1.0.3517186", + "1.0.3642585" ], "uipath.vsts-uipath-package.uipath-assets.f4df1586-7648-4160-ad6d-a03b05af0004": [ "2.1.1309266", @@ -176193,7 +177182,8 @@ "2.11.3445511", "2.11.3447906", "3.0.3513646", - "3.0.3517186" + "3.0.3517186", + "3.0.3642585" ], "uipathdeploy": [ "2.0.965899", @@ -176225,7 +177215,8 @@ "2.11.3445511", "2.11.3447906", "3.0.3513646", - "3.0.3517186" + "3.0.3517186", + "3.0.3642585" ], "uipathinstallplatform": [ "2.8.2109351", @@ -176254,7 +177245,8 @@ "2.11.3445511", "2.11.3447906", "3.0.3513646", - "3.0.3517186" + "3.0.3517186", + "3.0.3642585" ], "uipathpack": [ "2.0.965899", @@ -176286,7 +177278,8 @@ "2.11.3445511", "2.11.3447906", "3.0.3513646", - "3.0.3517186" + "3.0.3517186", + "3.0.3642585" ], "uipathpackage": [ "0.1.0", @@ -176398,7 +177391,8 @@ "1.0.3445511", "1.0.3447906", "1.0.3513646", - "1.0.3517186" + "1.0.3517186", + "1.0.3642585" ], "uipathrunjob": [ "2.1.1309266", @@ -176424,7 +177418,8 @@ "2.11.3445511", "2.11.3447906", "3.0.3513646", - "3.0.3517186" + "3.0.3517186", + "3.0.3642585" ], "uipathtest": [ "2.0.965899", @@ -176456,7 +177451,8 @@ "2.11.3445511", "2.11.3447906", "3.0.3513646", - "3.0.3517186" + "3.0.3517186", + "3.0.3642585" ], "ulrikstrid.vsts-esy.custom-build-release-task.de6ff299-5f71-4949-8fb6-bfb690b9cb5d": [ "0.2.1", @@ -176914,6 +177910,7 @@ "3.5.178", "3.5.220", "3.5.260", + "3.5.268", "4.0.8", "4.0.50", "4.0.89", @@ -176926,7 +177923,8 @@ "4.0.161", "4.0.178", "4.0.220", - "4.0.260" + "4.0.260", + "4.0.268" ], "unzip": [ "0.1.1", @@ -177859,7 +178857,8 @@ "0.0.5", "0.0.6", "0.0.7", - "0.1.2" + "0.1.2", + "0.1.3" ], "valintinstall": ["0.0.2"], "variabledehydration": [ @@ -179023,7 +180022,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "versionangularfile": [ "1.31.7", @@ -179083,7 +180083,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "versionappx": [ "1.1.1", @@ -179173,7 +180174,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "versionassemblies": [ "0.1.3", @@ -179325,7 +180327,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "versionbumpfromfile": ["0.1.0"], "versioncounter": [ @@ -179432,7 +180435,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "versiondotnetcoreassemblies": [ "1.15.22", @@ -179508,7 +180512,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "versionintovariables": ["1.0.0", "1.2.0", "1.2.1"], "versioniosplistmanifest": [ @@ -179521,7 +180526,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "versionjsonfile": [ "1.31.7", @@ -179581,7 +180587,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "versionnuspec": [ "1.6.6", @@ -179667,7 +180674,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "versionpowershellmodule": [ "1.40.4", @@ -179718,7 +180726,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "versionreadertask": [ "1.0.0", @@ -179817,7 +180826,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "versiontosemver2": [ "0.3.0", @@ -179919,7 +180929,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "versionwix": [ "1.15.22", @@ -179995,7 +181006,8 @@ "2.39.2", "2.40.35", "3.0.9", - "3.1.6" + "3.1.6", + "3.2.13" ], "versionwritertask": ["1.0.0"], "vfabing.azurevirtualmachinemanagertask.custom-build-release-task.azurevirtualmachinemanagertask": [ @@ -181396,7 +182408,11 @@ "9.1.61689", "9.1.61695", "9.1.71696", - "9.1.81710" + "9.1.81710", + "9.1.91713", + "9.1.91714", + "9.1.91716", + "9.1.91717" ], "vstestwithtypemocktask": ["8.5.742", "8.5.743"], "vsts-chef-task-cookbook-gems": [ @@ -185087,6 +186103,13 @@ "0.1.1187689", "0.1.1239020" ], + "xrm-world.xrm-documentation-generator.xrm-documentation-generator-task.1e1d8658-3b8a-43ea-b99b-6aca23a44d00": [ + "1.0.0" + ], + "xrm-world.xrm-documentation-generator.xrm-documentation-generator-task.xrmdocumentationgenerator": [ + "1.0.0" + ], + "xrmdocumentationgenerator": ["1.0.0"], "xther-deployment": ["0.1.0", "0.1.1"], "yamlpatch": [ "1.1.4999", diff --git a/data/azure-pipelines-tasks.json b/data/azure-pipelines-tasks.json index 1475bbb35c221f..aafd34f6206108 100644 --- a/data/azure-pipelines-tasks.json +++ b/data/azure-pipelines-tasks.json @@ -3257,6 +3257,7 @@ "4.1.7" ], "azurespringcloud": [ + "0.220.0", "0.217.1", "0.217.0", "0.216.1", @@ -3275,6 +3276,7 @@ "0.185.6" ], "5679292e-de0e-473a-948e-4874d2d8ef97": [ + "0.220.0", "0.217.1", "0.217.0", "0.216.1", @@ -3293,6 +3295,7 @@ "0.185.6" ], "azurestaticwebapp": [ + "0.220.0", "0.219.0", "0.217.0", "0.208.0", @@ -3305,6 +3308,7 @@ "0.1.0" ], "18aad896-e191-4720-88d6-8ced4806941a": [ + "0.220.0", "0.219.0", "0.217.0", "0.208.0", @@ -3945,6 +3949,7 @@ "2.127.0" ], "cocoapods": [ + "0.220.0", "0.212.0", "0.207.0", "0.201.1", @@ -3964,6 +3969,7 @@ "0.131.0" ], "bfc05e0d-839c-42cd-89c7-0f9fbfcab965": [ + "0.220.0", "0.212.0", "0.207.0", "0.201.1", @@ -4475,6 +4481,7 @@ "2.1.35" ], "dockercompose": [ + "0.220.0", "0.219.0", "0.214.0", "0.198.0", @@ -4529,6 +4536,7 @@ "0.4.16" ], "6975e2d1-96d3-4afc-8a41-498b5d34ea19": [ + "0.220.0", "0.219.0", "0.214.0", "0.198.0", @@ -5243,6 +5251,7 @@ "1.0.2", "1.0.1", "1.0.0", + "2.219.0", "2.207.2", "2.207.3", "2.207.1", @@ -5353,6 +5362,7 @@ "0.136.2", "0.136.0", "0.135.0", + "1.220.0", "1.193.0", "1.192.0" ], @@ -5410,6 +5420,7 @@ "0.136.2", "0.136.0", "0.135.0", + "1.220.0", "1.193.0", "1.192.0" ], @@ -7243,6 +7254,7 @@ "0.5.5" ], "installapplecertificate": [ + "2.219.0", "2.214.0", "2.212.0", "2.200.0", @@ -7280,6 +7292,7 @@ "2.134.1" ], "d2eff759-736d-4b7b-8554-7ba0960d49d6": [ + "2.219.0", "2.214.0", "2.212.0", "2.200.0", @@ -7493,6 +7506,7 @@ "1.0.1" ], "javatoolinstaller": [ + "0.220.0", "0.218.0", "0.217.1", "0.217.0", @@ -7556,6 +7570,7 @@ "0.134.1" ], "c0e0b74f-0931-47c7-ac27-7c5a19456a36": [ + "0.220.0", "0.218.0", "0.217.1", "0.217.0", @@ -9028,6 +9043,7 @@ "nodetaskrunnerinstaller": ["0.218.0"], "31c75b2b-bcdf-4706-8d7c-4da6a1959bc2": ["0.218.0"], "nodetool": [ + "0.220.0", "0.218.0", "0.213.0", "0.211.0", @@ -9060,6 +9076,7 @@ "0.124.0" ], "31c75bbb-bcdf-4706-8d7c-4da6a1959bc2": [ + "0.220.0", "0.218.0", "0.213.0", "0.211.0", @@ -9446,6 +9463,7 @@ "1.0.15" ], "nugetauthenticate": [ + "0.220.0", "0.203.0", "0.198.0", "0.194.0", @@ -9469,6 +9487,7 @@ "1.203.0" ], "f5fd8599-ccfa-4d6e-b965-4d14bed7097b": [ + "0.220.0", "0.203.0", "0.198.0", "0.194.0", @@ -9492,6 +9511,8 @@ "1.203.0" ], "nugetcommand": [ + "2.220.1", + "2.220.0", "2.216.0", "2.214.2", "2.214.3", @@ -9585,6 +9606,8 @@ "2.0.27" ], "333b11bd-d341-40d9-afcf-b32d5ce6f23b": [ + "2.220.1", + "2.220.0", "2.216.0", "2.214.2", "2.214.3", @@ -9698,6 +9721,7 @@ "0.2.35", "0.2.34", "0.2.33", + "1.219.0", "1.216.0", "1.214.0", "1.208.0", @@ -9871,6 +9895,7 @@ "0.2.37" ], "nugetrestore": [ + "1.219.0", "1.216.0", "1.214.0", "1.208.0", @@ -9894,6 +9919,7 @@ "1.0.3" ], "nugettoolinstaller": [ + "0.219.0", "0.218.0", "0.215.0", "0.208.1", @@ -9977,6 +10003,7 @@ "1.149.1" ], "2c65196a-54fd-4a02-9be8-d9d1837b7c5d": [ + "0.219.0", "0.218.0", "0.215.0", "0.208.1", @@ -10060,6 +10087,7 @@ "1.149.1" ], "nuget": [ + "0.219.0", "0.218.1", "0.218.0", "0.208.1", @@ -10114,6 +10142,7 @@ "0.1.3" ], "2661b7e5-00f9-4de1-ba41-04e68d70b528": [ + "0.219.0", "0.218.1", "0.218.0", "0.208.1", @@ -10530,6 +10559,7 @@ "3.0.0" ], "powershell": [ + "2.220.0", "2.212.0", "2.210.0", "2.200.0", @@ -10563,6 +10593,7 @@ "2.129.0" ], "e213ff0f-5d5c-4791-802d-52ea3e7be1f1": [ + "2.220.0", "2.212.0", "2.210.0", "2.200.0", @@ -12010,6 +12041,7 @@ "0.0.1" ], "usedotnet": [ + "2.219.0", "2.207.2", "2.207.3", "2.207.1", @@ -12355,6 +12387,7 @@ "1.0.89", "1.0.88", "1.0.87", + "2.219.0", "2.215.0", "2.210.0", "2.205.0", @@ -12491,6 +12524,7 @@ "2.135.4", "2.135.3", "2.135.2", + "3.219.0", "3.217.0", "3.210.0", "3.205.0" @@ -12509,6 +12543,7 @@ "1.0.89", "1.0.88", "1.0.87", + "2.219.0", "2.215.0", "2.210.0", "2.205.0", @@ -12645,6 +12680,7 @@ "2.135.4", "2.135.3", "2.135.2", + "3.219.0", "3.217.0", "3.210.0", "3.205.0" From 12e265397d516ed8646230ba41ceb706983c1959 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 20 Mar 2023 20:54:33 +0000 Subject: [PATCH 218/228] chore(deps): update dependency @types/node to v18.15.2 (#21053) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index b9da05ef859a3f..9d89ee152cc10e 100644 --- a/package.json +++ b/package.json @@ -279,7 +279,7 @@ "@types/marshal": "0.5.1", "@types/moo": "0.5.5", "@types/nock": "10.0.3", - "@types/node": "18.15.1", + "@types/node": "18.15.2", "@types/parse-link-header": "2.0.1", "@types/semver": "7.3.13", "@types/semver-stable": "3.0.0", diff --git a/yarn.lock b/yarn.lock index 6075ccb928ee14..2f177c78fb4cef 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3083,10 +3083,10 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.3.tgz#f0b991c32cfc6a4e7f3399d6cb4b8cf9a0315014" integrity sha512-p6ua9zBxz5otCmbpb5D3U4B5Nanw6Pk3PPyX05xnxbB/fRv71N7CPmORg7uAD5P70T0xmx1pzAx/FUfa5X+3cw== -"@types/node@18.15.1": - version "18.15.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.1.tgz#41dc2bf78e8085a250d4670d95edb7fba621dd29" - integrity sha512-U2TWca8AeHSmbpi314QBESRk7oPjSZjDsR+c+H4ECC1l+kFgpZf8Ydhv3SJpPy51VyZHHqxlb6mTTqYNNRVAIw== +"@types/node@18.15.2": + version "18.15.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.2.tgz#0407ceb15647f186318101546d5ae40725b73810" + integrity sha512-sDPHm2wfx2QhrMDK0pOt2J4KLJMAcerqWNvnED0itPRJWvI+bK+uNHzcH1dFsBlf7G3u8tqXmRF3wkvL9yUwMw== "@types/node@^13.7.0": version "13.13.52" From f399efbff2e7b1328a89fe8556c907fc9014c409 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 21 Mar 2023 01:18:37 +0000 Subject: [PATCH 219/228] chore(deps): update node.js to 3c89fc4 (#21055) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .devcontainer/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 2c053beb779e23..ba27aa83671c37 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,4 +1,4 @@ -FROM containerbase/node:18.15.0@sha256:a016596a25881969543284c8e1d54b9ed08175ab03a99520a8950914d60a0acc +FROM containerbase/node:18.15.0@sha256:3c89fc489f4d2c46d3f8e2da86421b87ad7d6b344e69465deb3d3a6a6f0fff9e USER root From 5ba02a06f46692c5730f29c5bc7f15293a91f74d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 21 Mar 2023 04:30:27 +0100 Subject: [PATCH 220/228] chore(deps): update linters (#21054) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 6 +-- yarn.lock | 115 +++++++++++---------------------------------------- 2 files changed, 28 insertions(+), 93 deletions(-) diff --git a/package.json b/package.json index 9d89ee152cc10e..c7632dc7109c85 100644 --- a/package.json +++ b/package.json @@ -263,7 +263,7 @@ "@types/common-tags": "1.8.1", "@types/conventional-commits-detector": "1.0.0", "@types/diff": "5.0.2", - "@types/eslint": "8.21.1", + "@types/eslint": "8.21.2", "@types/fs-extra": "11.0.1", "@types/git-url-parse": "9.0.1", "@types/github-url-from-git": "1.5.1", @@ -289,8 +289,8 @@ "@types/url-join": "4.0.1", "@types/validate-npm-package-name": "4.0.0", "@types/xmldoc": "1.1.6", - "@typescript-eslint/eslint-plugin": "5.54.1", - "@typescript-eslint/parser": "5.54.1", + "@typescript-eslint/eslint-plugin": "5.55.0", + "@typescript-eslint/parser": "5.55.0", "aws-sdk-client-mock": "2.1.1", "callsite": "1.0.0", "common-tags": "1.8.2", diff --git a/yarn.lock b/yarn.lock index 2f177c78fb4cef..02066db60d4aae 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2885,10 +2885,10 @@ resolved "https://registry.yarnpkg.com/@types/emscripten/-/emscripten-1.39.6.tgz#698b90fe60d44acf93c31064218fbea93fbfd85a" integrity sha512-H90aoynNhhkQP6DRweEjJp5vfUVdIj7tdPLsu7pq89vODD/lcugKfZOsfgwpvM6XUewEp2N5dCg1Uf3Qe55Dcg== -"@types/eslint@8.21.1": - version "8.21.1" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.21.1.tgz#110b441a210d53ab47795124dbc3e9bb993d1e7c" - integrity sha512-rc9K8ZpVjNcLs8Fp0dkozd5Pt2Apk1glO4Vgz8ix1u6yFByxfqo5Yavpy65o+93TAe24jr7v+eSBtFLvOQtCRQ== +"@types/eslint@8.21.2": + version "8.21.2" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.21.2.tgz#2b61b43a8b0e66006856a2a4c8e51f6f773ead27" + integrity sha512-EMpxUyystd3uZVByZap1DACsMXvb82ypQnGn89e1Y0a+LYu3JJscUd/gqhRsVFDkaD2MIiWo0MT8EfXr3DGRKw== dependencies: "@types/estree" "*" "@types/json-schema" "*" @@ -3214,19 +3214,19 @@ dependencies: "@types/node" "*" -"@typescript-eslint/eslint-plugin@5.54.1": - version "5.54.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.54.1.tgz#0c5091289ce28372e38ab8d28e861d2dbe1ab29e" - integrity sha512-a2RQAkosH3d3ZIV08s3DcL/mcGc2M/UC528VkPULFxR9VnVPT8pBu0IyBAJJmVsCmhVfwQX1v6q+QGnmSe1bew== +"@typescript-eslint/eslint-plugin@5.55.0": + version "5.55.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.55.0.tgz#bc2400c3a23305e8c9a9c04aa40933868aaaeb47" + integrity sha512-IZGc50rtbjk+xp5YQoJvmMPmJEYoC53SiKPXyqWfv15XoD2Y5Kju6zN0DwlmaGJp1Iw33JsWJcQ7nw0lGCGjVg== dependencies: - "@typescript-eslint/scope-manager" "5.54.1" - "@typescript-eslint/type-utils" "5.54.1" - "@typescript-eslint/utils" "5.54.1" + "@eslint-community/regexpp" "^4.4.0" + "@typescript-eslint/scope-manager" "5.55.0" + "@typescript-eslint/type-utils" "5.55.0" + "@typescript-eslint/utils" "5.55.0" debug "^4.3.4" grapheme-splitter "^1.0.4" ignore "^5.2.0" natural-compare-lite "^1.4.0" - regexpp "^3.2.0" semver "^7.3.7" tsutils "^3.21.0" @@ -3237,24 +3237,16 @@ dependencies: "@typescript-eslint/utils" "5.55.0" -"@typescript-eslint/parser@5.54.1": - version "5.54.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.54.1.tgz#05761d7f777ef1c37c971d3af6631715099b084c" - integrity sha512-8zaIXJp/nG9Ff9vQNh7TI+C3nA6q6iIsGJ4B4L6MhZ7mHnTMR4YP5vp2xydmFXIy8rpyIVbNAG44871LMt6ujg== +"@typescript-eslint/parser@5.55.0": + version "5.55.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.55.0.tgz#8c96a0b6529708ace1dcfa60f5e6aec0f5ed2262" + integrity sha512-ppvmeF7hvdhUUZWSd2EEWfzcFkjJzgNQzVST22nzg958CR+sphy8A6K7LXQZd6V75m1VKjp+J4g/PCEfSCmzhw== dependencies: - "@typescript-eslint/scope-manager" "5.54.1" - "@typescript-eslint/types" "5.54.1" - "@typescript-eslint/typescript-estree" "5.54.1" + "@typescript-eslint/scope-manager" "5.55.0" + "@typescript-eslint/types" "5.55.0" + "@typescript-eslint/typescript-estree" "5.55.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.54.1": - version "5.54.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.54.1.tgz#6d864b4915741c608a58ce9912edf5a02bb58735" - integrity sha512-zWKuGliXxvuxyM71UA/EcPxaviw39dB2504LqAmFDjmkpO8qNLHcmzlh6pbHs1h/7YQ9bnsO8CCcYCSA8sykUg== - dependencies: - "@typescript-eslint/types" "5.54.1" - "@typescript-eslint/visitor-keys" "5.54.1" - "@typescript-eslint/scope-manager@5.55.0": version "5.55.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.55.0.tgz#e863bab4d4183ddce79967fe10ceb6c829791210" @@ -3263,39 +3255,21 @@ "@typescript-eslint/types" "5.55.0" "@typescript-eslint/visitor-keys" "5.55.0" -"@typescript-eslint/type-utils@5.54.1": - version "5.54.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.54.1.tgz#4825918ec27e55da8bb99cd07ec2a8e5f50ab748" - integrity sha512-WREHsTz0GqVYLIbzIZYbmUUr95DKEKIXZNH57W3s+4bVnuF1TKe2jH8ZNH8rO1CeMY3U4j4UQeqPNkHMiGem3g== +"@typescript-eslint/type-utils@5.55.0": + version "5.55.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.55.0.tgz#74bf0233523f874738677bb73cb58094210e01e9" + integrity sha512-ObqxBgHIXj8rBNm0yh8oORFrICcJuZPZTqtAFh0oZQyr5DnAHZWfyw54RwpEEH+fD8suZaI0YxvWu5tYE/WswA== dependencies: - "@typescript-eslint/typescript-estree" "5.54.1" - "@typescript-eslint/utils" "5.54.1" + "@typescript-eslint/typescript-estree" "5.55.0" + "@typescript-eslint/utils" "5.55.0" debug "^4.3.4" tsutils "^3.21.0" -"@typescript-eslint/types@5.54.1": - version "5.54.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.54.1.tgz#29fbac29a716d0f08c62fe5de70c9b6735de215c" - integrity sha512-G9+1vVazrfAfbtmCapJX8jRo2E4MDXxgm/IMOF4oGh3kq7XuK3JRkOg6y2Qu1VsTRmWETyTkWt1wxy7X7/yLkw== - "@typescript-eslint/types@5.55.0": version "5.55.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.55.0.tgz#9830f8d3bcbecf59d12f821e5bc6960baaed41fd" integrity sha512-M4iRh4AG1ChrOL6Y+mETEKGeDnT7Sparn6fhZ5LtVJF1909D5O4uqK+C5NPbLmpfZ0XIIxCdwzKiijpZUOvOug== -"@typescript-eslint/typescript-estree@5.54.1": - version "5.54.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.54.1.tgz#df7b6ae05fd8fef724a87afa7e2f57fa4a599be1" - integrity sha512-bjK5t+S6ffHnVwA0qRPTZrxKSaFYocwFIkZx5k7pvWfsB1I57pO/0M0Skatzzw1sCkjJ83AfGTL0oFIFiDX3bg== - dependencies: - "@typescript-eslint/types" "5.54.1" - "@typescript-eslint/visitor-keys" "5.54.1" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.3.7" - tsutils "^3.21.0" - "@typescript-eslint/typescript-estree@5.55.0": version "5.55.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.55.0.tgz#8db7c8e47ecc03d49b05362b8db6f1345ee7b575" @@ -3309,20 +3283,6 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/utils@5.54.1": - version "5.54.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.54.1.tgz#7a3ee47409285387b9d4609ea7e1020d1797ec34" - integrity sha512-IY5dyQM8XD1zfDe5X8jegX6r2EVU5o/WJnLu/znLPWCBF7KNGC+adacXnt5jEYS9JixDcoccI6CvE4RCjHMzCQ== - dependencies: - "@types/json-schema" "^7.0.9" - "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.54.1" - "@typescript-eslint/types" "5.54.1" - "@typescript-eslint/typescript-estree" "5.54.1" - eslint-scope "^5.1.1" - eslint-utils "^3.0.0" - semver "^7.3.7" - "@typescript-eslint/utils@5.55.0", "@typescript-eslint/utils@^5.10.0": version "5.55.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.55.0.tgz#34e97322e7ae5b901e7a870aabb01dad90023341" @@ -3337,14 +3297,6 @@ eslint-scope "^5.1.1" semver "^7.3.7" -"@typescript-eslint/visitor-keys@5.54.1": - version "5.54.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.54.1.tgz#d7a8a0f7181d6ac748f4d47b2306e0513b98bf8b" - integrity sha512-q8iSoHTgwCfgcRJ2l2x+xCbu8nBlRAlsQ33k24Adj8eoVBE0f8dUeI+bAa8F84Mv05UGbAx57g2zrRsYIooqQg== - dependencies: - "@typescript-eslint/types" "5.54.1" - eslint-visitor-keys "^3.3.0" - "@typescript-eslint/visitor-keys@5.55.0": version "5.55.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.55.0.tgz#01ad414fca8367706d76cdb94adf788dc5b664a2" @@ -5057,18 +5009,6 @@ eslint-scope@^7.1.1: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" - integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== - dependencies: - eslint-visitor-keys "^2.0.0" - -eslint-visitor-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" - integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== - eslint-visitor-keys@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" @@ -8974,11 +8914,6 @@ regexp.prototype.flags@^1.4.3: define-properties "^1.1.3" functions-have-names "^1.2.2" -regexpp@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== - registry-auth-token@^5.0.0: version "5.0.2" resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-5.0.2.tgz#8b026cc507c8552ebbe06724136267e63302f756" From aebf72d496e8193d59470e0007e004e298c80bd5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 21 Mar 2023 04:51:33 +0000 Subject: [PATCH 221/228] build(deps): update opentelemetry-js monorepo (#21050) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Rhys Arkins --- .../__snapshots__/index.spec.ts.snap | 4 + package.json | 18 +- yarn.lock | 194 ++++++++++-------- 3 files changed, 119 insertions(+), 97 deletions(-) diff --git a/lib/instrumentation/__snapshots__/index.spec.ts.snap b/lib/instrumentation/__snapshots__/index.spec.ts.snap index 385b530d449f37..ca711e00ae88cc 100644 --- a/lib/instrumentation/__snapshots__/index.spec.ts.snap +++ b/lib/instrumentation/__snapshots__/index.spec.ts.snap @@ -15,6 +15,7 @@ MultiSpanProcessor { "_isCalled": false, "_that": [Circular], }, + "_unresolvedExports": Set {}, }, ], } @@ -35,8 +36,10 @@ MultiSpanProcessor { "_isCalled": false, "_that": [Circular], }, + "_unresolvedExports": Set {}, }, BatchSpanProcessor { + "_droppedSpansCount": 0, "_exportTimeoutMillis": 30000, "_exporter": OTLPTraceExporter { "DEFAULT_HEADERS": {}, @@ -82,6 +85,7 @@ exports[`instrumentation/index activate remote logger 1`] = ` MultiSpanProcessor { "_spanProcessors": [ BatchSpanProcessor { + "_droppedSpansCount": 0, "_exportTimeoutMillis": 30000, "_exporter": OTLPTraceExporter { "DEFAULT_HEADERS": {}, diff --git a/package.json b/package.json index c7632dc7109c85..67b6755fd7c804 100644 --- a/package.json +++ b/package.json @@ -145,16 +145,16 @@ "@breejs/later": "4.1.0", "@cheap-glitch/mi-cron": "1.0.1", "@iarna/toml": "3.0.0", - "@opentelemetry/api": "1.4.0", - "@opentelemetry/context-async-hooks": "1.9.1", - "@opentelemetry/exporter-trace-otlp-http": "0.35.1", - "@opentelemetry/instrumentation": "0.35.1", + "@opentelemetry/api": "1.4.1", + "@opentelemetry/context-async-hooks": "1.10.0", + "@opentelemetry/exporter-trace-otlp-http": "0.36.0", + "@opentelemetry/instrumentation": "0.36.0", "@opentelemetry/instrumentation-bunyan": "0.31.1", - "@opentelemetry/instrumentation-http": "0.35.1", - "@opentelemetry/resources": "1.9.1", - "@opentelemetry/sdk-trace-base": "1.9.1", - "@opentelemetry/sdk-trace-node": "1.9.1", - "@opentelemetry/semantic-conventions": "1.9.1", + "@opentelemetry/instrumentation-http": "0.36.0", + "@opentelemetry/resources": "1.10.0", + "@opentelemetry/sdk-trace-base": "1.10.0", + "@opentelemetry/sdk-trace-node": "1.10.0", + "@opentelemetry/semantic-conventions": "1.10.0", "@qnighy/marshal": "0.1.3", "@renovatebot/osv-offline": "1.2.2", "@renovatebot/pep440": "2.1.13", diff --git a/yarn.lock b/yarn.lock index 02066db60d4aae..c9244066cdc382 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2236,33 +2236,33 @@ resolved "https://registry.yarnpkg.com/@openpgp/web-stream-tools/-/web-stream-tools-0.0.13.tgz#f0be50120c152efb11b65df29ab482dc192dbbd7" integrity sha512-VQ0O0lUcD9ilLcMLQMJMgPhp8fDgMd4copd+UhSBGjud0vbI1ONQ3ffAhixEMml/AApLJtqCpd7PJcccPliFSA== -"@opentelemetry/api@1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.4.0.tgz#2c91791a9ba6ca0a0f4aaac5e45d58df13639ac8" - integrity sha512-IgMK9i3sFGNUqPMbjABm0G26g0QCKCUBfglhQ7rQq6WcxbKfEHRcmwsoER4hZcuYqJgkYn2OeuoJIv7Jsftp7g== +"@opentelemetry/api@1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.4.1.tgz#ff22eb2e5d476fbc2450a196e40dd243cc20c28f" + integrity sha512-O2yRJce1GOc6PAy3QxFM4NzFiWzvScDC1/5ihYBL6BUEVdq0XMWN01sppE+H6bBXbaFYipjwFLEWLg5PaSOThA== -"@opentelemetry/context-async-hooks@1.9.1": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/context-async-hooks/-/context-async-hooks-1.9.1.tgz#2a4809a4d0acccc53dd477d2e79fde76abce6c59" - integrity sha512-HmycxnnIm00gdmxfD5OkDotL15bGqazLYqQJdcv1uNt22OSc5F/a3Paz3yznmf+/gWdPG8nlq/zd9H0mNXJnGg== +"@opentelemetry/context-async-hooks@1.10.0": + version "1.10.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/context-async-hooks/-/context-async-hooks-1.10.0.tgz#6e96e056806b739c315fe8dd0f7b2417070ab244" + integrity sha512-mNITMJZUkbCV2sLnI4vwW6N0r8MUwzYs2rMShEH2ZECHhyYhRINrzf73hDc3YKsvscSTv46F5g1NA2r15FA/hQ== -"@opentelemetry/core@1.9.1": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/core/-/core-1.9.1.tgz#e343337e1a7bf30e9a6aef3ef659b9b76379762a" - integrity sha512-6/qon6tw2I8ZaJnHAQUUn4BqhTbTNRS0WP8/bA0ynaX+Uzp/DDbd0NS0Cq6TMlh8+mrlsyqDE7mO50nmv2Yvlg== +"@opentelemetry/core@1.10.0": + version "1.10.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/core/-/core-1.10.0.tgz#12626d19287030a16ec1101f8efcacb5198a89bb" + integrity sha512-H5/mfU3TsEBe/cnnLu3VCkzjqyRARmhxQGsT64KwafxjzkDh+c2Bk4n140Cg/xhgrjK2sFsxbJj6d0xZlVo/OQ== dependencies: - "@opentelemetry/semantic-conventions" "1.9.1" + "@opentelemetry/semantic-conventions" "1.10.0" -"@opentelemetry/exporter-trace-otlp-http@0.35.1": - version "0.35.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.35.1.tgz#9bf988f91fb145b29a051bce8ff5ef85029ca575" - integrity sha512-EJgAsrvscKsqb/GzF1zS74vM+Z/aQRhrFE7hs/1GK1M9bLixaVyMGwg2pxz1wdYdjxS1mqpHMhXU+VvMvFCw1w== +"@opentelemetry/exporter-trace-otlp-http@0.36.0": + version "0.36.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.36.0.tgz#9bea6e6db840f23a4ce96ad47fe1129fb625c9d1" + integrity sha512-BrM2Fkgxuc7mZExPCfdeD2WqGOGAGAyHZIXyp1mIfesFp58TaHo7EI8fYFOkY+OS2mLkKrGx5M7vzJO8bLP/cg== dependencies: - "@opentelemetry/core" "1.9.1" - "@opentelemetry/otlp-exporter-base" "0.35.1" - "@opentelemetry/otlp-transformer" "0.35.1" - "@opentelemetry/resources" "1.9.1" - "@opentelemetry/sdk-trace-base" "1.9.1" + "@opentelemetry/core" "1.10.0" + "@opentelemetry/otlp-exporter-base" "0.36.0" + "@opentelemetry/otlp-transformer" "0.36.0" + "@opentelemetry/resources" "1.10.0" + "@opentelemetry/sdk-trace-base" "1.10.0" "@opentelemetry/instrumentation-bunyan@0.31.1": version "0.31.1" @@ -2272,17 +2272,26 @@ "@opentelemetry/instrumentation" "^0.35.1" "@types/bunyan" "1.8.7" -"@opentelemetry/instrumentation-http@0.35.1": - version "0.35.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-http/-/instrumentation-http-0.35.1.tgz#8a62e5ed737b51596a6799ecf4d70fe6ef1c26c4" - integrity sha512-tH92LznX5pcxpuTSb6A662IdldlMk8QTtneDN66h4nIT9ch98Gtu68GSSKjMoTR25GzH3opvPC9mX2xJamxMJw== +"@opentelemetry/instrumentation-http@0.36.0": + version "0.36.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-http/-/instrumentation-http-0.36.0.tgz#37103d8bbb3aa02b88973258495d7ea8c6948e2c" + integrity sha512-e7aEx/wwQzdfLShkhr4zvop00cIG4a0gfAnyI7Btt7otrTq+FqDEEh54CSdc1bIP0i1KgPnWypaMrnx6gVJ1Pw== dependencies: - "@opentelemetry/core" "1.9.1" - "@opentelemetry/instrumentation" "0.35.1" - "@opentelemetry/semantic-conventions" "1.9.1" + "@opentelemetry/core" "1.10.0" + "@opentelemetry/instrumentation" "0.36.0" + "@opentelemetry/semantic-conventions" "1.10.0" semver "^7.3.5" -"@opentelemetry/instrumentation@0.35.1", "@opentelemetry/instrumentation@^0.35.1": +"@opentelemetry/instrumentation@0.36.0": + version "0.36.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation/-/instrumentation-0.36.0.tgz#164cf6df250d77a5e293e2402719a38149592cc9" + integrity sha512-KQA0zqbUfX8xv6ucqEHxj5bq1H15vijmk1mii8Pz9LKRWa8P8CXSDrMUKRoOQXWO2UILPUyAn5htoTHnE9/HPg== + dependencies: + require-in-the-middle "^6.0.0" + semver "^7.3.2" + shimmer "^1.2.1" + +"@opentelemetry/instrumentation@^0.35.1": version "0.35.1" resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation/-/instrumentation-0.35.1.tgz#065bdbc4771137347e648eb4c6c6de6e9e97e4d1" integrity sha512-EZsvXqxenbRTSNsft6LDcrT4pjAiyZOx3rkDNeqKpwZZe6GmZtsXaZZKuDkJtz9fTjOGjDHjZj9/h80Ya9iIJw== @@ -2291,79 +2300,79 @@ semver "^7.3.2" shimmer "^1.2.1" -"@opentelemetry/otlp-exporter-base@0.35.1": - version "0.35.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.35.1.tgz#535166608d5d36e6c959b2857d01245ee3a916b1" - integrity sha512-Sc0buJIs8CfUeQCL/12vDDjBREgsqHdjboBa/kPQDgMf008OBJSM02Ijj6T1TH+QVHl/VHBBEVJF+FTf0EH9Vg== +"@opentelemetry/otlp-exporter-base@0.36.0": + version "0.36.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.36.0.tgz#c46ecd84ed6efd959f2d7b2ae6bf3441914dabb7" + integrity sha512-ImlnEd0LUpB5/eKCtvYG4HPvKqxxR+t6QBb0DBTaXRAXJaY+3p5w1Jw1lH/bdDtYp1HY6E4NiBfb4GI9qJNznA== dependencies: - "@opentelemetry/core" "1.9.1" + "@opentelemetry/core" "1.10.0" -"@opentelemetry/otlp-transformer@0.35.1": - version "0.35.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-transformer/-/otlp-transformer-0.35.1.tgz#d4333b71324b83dbb1b0b3a4cfd769b3e214c6f9" - integrity sha512-c0HXcJ49MKoWSaA49J8PXlVx48CeEFpL0odP6KBkVT+Bw6kAe8JlI3mIezyN05VCDJGtS2I5E6WEsE+DJL1t9A== +"@opentelemetry/otlp-transformer@0.36.0": + version "0.36.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-transformer/-/otlp-transformer-0.36.0.tgz#18c17f7842b2df37989b1f65a2fb4bf87fb9fba6" + integrity sha512-abZV+g6SeX2C6RvJTaTa42Ldj52Y1Ho7J2F2deaVPT7goZ3IQ2LrvXRIiG/Trp4iTuQcryVl6tH6RDZk51PQBw== dependencies: - "@opentelemetry/core" "1.9.1" - "@opentelemetry/resources" "1.9.1" - "@opentelemetry/sdk-metrics" "1.9.1" - "@opentelemetry/sdk-trace-base" "1.9.1" + "@opentelemetry/core" "1.10.0" + "@opentelemetry/resources" "1.10.0" + "@opentelemetry/sdk-metrics" "1.10.0" + "@opentelemetry/sdk-trace-base" "1.10.0" -"@opentelemetry/propagator-b3@1.9.1": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/propagator-b3/-/propagator-b3-1.9.1.tgz#40a538e91b6e96c07663a6622a102cd6d8c7963a" - integrity sha512-V+/ufHnZSr0YlbNhPg4PIQAZOhP61fVwL0JZJ6qnl9i0jgaZBSAtV99ZvHMxMy0Z1tf+oGj1Hk+S6jRRXL+j1Q== +"@opentelemetry/propagator-b3@1.10.0": + version "1.10.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/propagator-b3/-/propagator-b3-1.10.0.tgz#bc98f20548634220ed29f0f3083347e0feb57a90" + integrity sha512-FPj9US9RXW+B/sN2Jf7gpEvJ8RAtO+6iM2fYfg4EtdridyFXXYaLC73EsIvOr7CveU7P3yG+jlhZweoPhIapfw== dependencies: - "@opentelemetry/core" "1.9.1" + "@opentelemetry/core" "1.10.0" -"@opentelemetry/propagator-jaeger@1.9.1": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.9.1.tgz#bb86a81b22c3d1a89dd5952d4a97441de41b6791" - integrity sha512-xjG5HnOgu/1f9+GphWr8lqxaU51iFL9HgFdnSQBSFqhM2OeMuzpFt6jmkpZJBAK3oqQ9BG52fHfCdYlw3GOkVQ== +"@opentelemetry/propagator-jaeger@1.10.0": + version "1.10.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.10.0.tgz#15bf1c4f20e751b85f5321bb33ae2fd4a738bd75" + integrity sha512-bA6+RiEKmONAcN4GR79gvnqn005/td+8e6GsNbJZOP3pHekQHNfekuXAiN5mrQlF+1IVbS0x/UylC9g871z8VA== dependencies: - "@opentelemetry/core" "1.9.1" + "@opentelemetry/core" "1.10.0" -"@opentelemetry/resources@1.9.1": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/resources/-/resources-1.9.1.tgz#5ad3d80ba968a3a0e56498ce4bc82a6a01f2682f" - integrity sha512-VqBGbnAfubI+l+yrtYxeLyOoL358JK57btPMJDd3TCOV3mV5TNBmzvOfmesM4NeTyXuGJByd3XvOHvFezLn3rQ== +"@opentelemetry/resources@1.10.0": + version "1.10.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/resources/-/resources-1.10.0.tgz#79e8388899a79e13a830b3bd776cc8489a107b9b" + integrity sha512-bh4auHOdS0/cwSgviCPbkItLwLZRWCZKp/ns2soVwlWQMJH36FIHbcYJf7G9+Rthlc6u163VhUefho+eDrPVeA== dependencies: - "@opentelemetry/core" "1.9.1" - "@opentelemetry/semantic-conventions" "1.9.1" + "@opentelemetry/core" "1.10.0" + "@opentelemetry/semantic-conventions" "1.10.0" -"@opentelemetry/sdk-metrics@1.9.1": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-metrics/-/sdk-metrics-1.9.1.tgz#babc162a81df9884c16b1e67c2dd26ab478f3080" - integrity sha512-AyhKDcA8NuV7o1+9KvzRMxNbATJ8AcrutKilJ6hWSo9R5utnzxgffV4y+Hp4mJn84iXxkv+CBb99GOJ2A5OMzA== +"@opentelemetry/sdk-metrics@1.10.0": + version "1.10.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-metrics/-/sdk-metrics-1.10.0.tgz#627f164036ad053551b3e75447adf9a902b066aa" + integrity sha512-vOB3khvj894ppOwafNqKNavpChZYR2S2IZyy8PmL0DwNgFPGYwkWxZkv7YJduBNzcCd+Ao+ug93jdSFFhnpIhQ== dependencies: - "@opentelemetry/core" "1.9.1" - "@opentelemetry/resources" "1.9.1" + "@opentelemetry/core" "1.10.0" + "@opentelemetry/resources" "1.10.0" lodash.merge "4.6.2" -"@opentelemetry/sdk-trace-base@1.9.1": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.9.1.tgz#c349491b432a7e0ae7316f0b48b2d454d79d2b84" - integrity sha512-Y9gC5M1efhDLYHeeo2MWcDDMmR40z6QpqcWnPCm4Dmh+RHAMf4dnEBBntIe1dDpor686kyU6JV1D29ih1lZpsQ== - dependencies: - "@opentelemetry/core" "1.9.1" - "@opentelemetry/resources" "1.9.1" - "@opentelemetry/semantic-conventions" "1.9.1" - -"@opentelemetry/sdk-trace-node@1.9.1": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.9.1.tgz#1fb067b30997145cb40d81b3859192cfc3e0e950" - integrity sha512-wwwCM2G/A0LY3oPLDyO31uRnm9EMNkhhjSxL9cmkK2kM+F915em8K0pXkPWFNGWu0OHkGALWYwH6Oz0P5nVcHA== - dependencies: - "@opentelemetry/context-async-hooks" "1.9.1" - "@opentelemetry/core" "1.9.1" - "@opentelemetry/propagator-b3" "1.9.1" - "@opentelemetry/propagator-jaeger" "1.9.1" - "@opentelemetry/sdk-trace-base" "1.9.1" +"@opentelemetry/sdk-trace-base@1.10.0": + version "1.10.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.10.0.tgz#abbffa0ae39234f4c441357edc3f4da45dc73ef5" + integrity sha512-X4rRShtVQ893LCU4GNKS1TKFua9nSjVmo0VJvigfSFSOmyyOLfiyTWmVL9MKV7Ws0HqLOIWJixJY0x28fw3Tzg== + dependencies: + "@opentelemetry/core" "1.10.0" + "@opentelemetry/resources" "1.10.0" + "@opentelemetry/semantic-conventions" "1.10.0" + +"@opentelemetry/sdk-trace-node@1.10.0": + version "1.10.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.10.0.tgz#08dd12780f92c1d68fd22c32aba815d85090197d" + integrity sha512-1mNZgGexVQ09xEuo/bJM3eUPEZSbsNGqMTKPKJtEa4oiB2EYFnUWz+s5bk3ohOzl2kKnZCbiIBIwbqHBX6ggyg== + dependencies: + "@opentelemetry/context-async-hooks" "1.10.0" + "@opentelemetry/core" "1.10.0" + "@opentelemetry/propagator-b3" "1.10.0" + "@opentelemetry/propagator-jaeger" "1.10.0" + "@opentelemetry/sdk-trace-base" "1.10.0" semver "^7.3.5" -"@opentelemetry/semantic-conventions@1.9.1": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.9.1.tgz#ad3367684a57879392513479e0a436cb2ac46dad" - integrity sha512-oPQdbFDmZvjXk5ZDoBGXG8B4tSB/qW5vQunJWQMFUBp7Xe8O1ByPANueJ+Jzg58esEBegyyxZ7LRmfJr7kFcFg== +"@opentelemetry/semantic-conventions@1.10.0": + version "1.10.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.10.0.tgz#2addef53b595c687c133922ecad0e850b9287fc9" + integrity sha512-Mzo5IyrI59YuYWeNoOZRXfUCc3upjmxCmczSm+pUgWprvSNfdOX70SVde84UxmuzU7MF1MEkPXKXTYG3ymRw2w== "@pkgr/utils@^2.3.1": version "2.3.1" @@ -8972,6 +8981,15 @@ require-in-the-middle@^5.0.3: module-details-from-path "^1.0.3" resolve "^1.22.1" +require-in-the-middle@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/require-in-the-middle/-/require-in-the-middle-6.0.0.tgz#01cc6416286fb5e672d0fe031d996f8bc202509d" + integrity sha512-+dtWQ7l2lqQDxheaG3jjyN1QI37gEwvzACSgjYi4/C2y+ZTUMeRW8BIOm+9NBKvwaMBUSZfPXVOt1skB0vBkRw== + dependencies: + debug "^4.1.1" + module-details-from-path "^1.0.3" + resolve "^1.22.1" + resolve-alpn@^1.0.0: version "1.2.1" resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" From 25e0fa206539d921a7d722c0e0f9321249612997 Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Tue, 21 Mar 2023 07:27:36 +0100 Subject: [PATCH 222/228] refactor: MergeConfidence types (#21058) --- lib/util/merge-confidence/common.ts | 6 ++++++ lib/util/merge-confidence/index.spec.ts | 5 ++++- lib/util/merge-confidence/index.ts | 10 ++++------ lib/util/merge-confidence/types.ts | 3 +++ lib/workers/repository/process/lookup/types.ts | 3 ++- lib/workers/repository/update/branch/status-checks.ts | 8 +++----- lib/workers/types.ts | 4 ++-- 7 files changed, 24 insertions(+), 15 deletions(-) create mode 100644 lib/util/merge-confidence/common.ts create mode 100644 lib/util/merge-confidence/types.ts diff --git a/lib/util/merge-confidence/common.ts b/lib/util/merge-confidence/common.ts new file mode 100644 index 00000000000000..94a7033290d976 --- /dev/null +++ b/lib/util/merge-confidence/common.ts @@ -0,0 +1,6 @@ +export const MERGE_CONFIDENCE = [ + 'low', + 'neutral', + 'high', + 'very high', +] as const; diff --git a/lib/util/merge-confidence/index.spec.ts b/lib/util/merge-confidence/index.spec.ts index 142a1f540fcf94..315351cf025c4f 100644 --- a/lib/util/merge-confidence/index.spec.ts +++ b/lib/util/merge-confidence/index.spec.ts @@ -1,6 +1,7 @@ import * as httpMock from '../../../test/http-mock'; import * as memCache from '../cache/memory'; import * as hostRules from '../host-rules'; +import type { MergeConfidence } from './types'; import { getMergeConfidenceLevel, isActiveConfidenceLevel, @@ -18,7 +19,9 @@ describe('util/merge-confidence/index', () => { }); it('returns false if nonsense', () => { - expect(isActiveConfidenceLevel('nonsense')).toBeFalse(); + expect( + isActiveConfidenceLevel('nonsense' as MergeConfidence) + ).toBeFalse(); }); it('returns true if valid value (high)', () => { diff --git a/lib/util/merge-confidence/index.ts b/lib/util/merge-confidence/index.ts index 87574a244a45c1..cea1e0d4be7222 100644 --- a/lib/util/merge-confidence/index.ts +++ b/lib/util/merge-confidence/index.ts @@ -4,13 +4,11 @@ import * as memCache from '../cache/memory'; import * as packageCache from '../cache/package'; import * as hostRules from '../host-rules'; import { Http } from '../http'; +import { MERGE_CONFIDENCE } from './common'; +import type { MergeConfidence } from './types'; const http = new Http('merge-confidence'); -const MERGE_CONFIDENCE = ['low', 'neutral', 'high', 'very high']; -type MergeConfidenceTuple = typeof MERGE_CONFIDENCE; -export type MergeConfidence = MergeConfidenceTuple[number]; - export const confidenceLevels: Record = { low: -1, neutral: 0, @@ -18,7 +16,7 @@ export const confidenceLevels: Record = { 'very high': 2, }; -export function isActiveConfidenceLevel(confidence: string): boolean { +export function isActiveConfidenceLevel(confidence: MergeConfidence): boolean { return confidence !== 'low' && MERGE_CONFIDENCE.includes(confidence); } @@ -76,7 +74,7 @@ export async function getMergeConfidenceLevel( if (cachedResult) { return cachedResult; } - let confidence = 'neutral'; + let confidence: MergeConfidence = 'neutral'; try { const res = (await http.getJson<{ confidence: MergeConfidence }>(url)).body; if (MERGE_CONFIDENCE.includes(res.confidence)) { diff --git a/lib/util/merge-confidence/types.ts b/lib/util/merge-confidence/types.ts new file mode 100644 index 00000000000000..686f36546d0849 --- /dev/null +++ b/lib/util/merge-confidence/types.ts @@ -0,0 +1,3 @@ +import type { MERGE_CONFIDENCE } from './common'; + +export type MergeConfidence = (typeof MERGE_CONFIDENCE)[number]; diff --git a/lib/workers/repository/process/lookup/types.ts b/lib/workers/repository/process/lookup/types.ts index 92e489c6dc790e..5a0e1a40bb9b45 100644 --- a/lib/workers/repository/process/lookup/types.ts +++ b/lib/workers/repository/process/lookup/types.ts @@ -8,6 +8,7 @@ import type { RangeConfig, } from '../../../../modules/manager/types'; import type { SkipReason } from '../../../../types'; +import type { MergeConfidence } from '../../../../util/merge-confidence/types'; export interface FilterConfig { allowedVersions?: string; @@ -43,7 +44,7 @@ export interface LookupUpdateConfig separateMultipleMajor?: boolean; datasource: string; packageName: string; - minimumConfidence?: string; + minimumConfidence?: MergeConfidence | undefined; replacementName?: string; replacementVersion?: string; } diff --git a/lib/workers/repository/update/branch/status-checks.ts b/lib/workers/repository/update/branch/status-checks.ts index 4fa6792ce6c7c5..a880fc3a9e6e1e 100644 --- a/lib/workers/repository/update/branch/status-checks.ts +++ b/lib/workers/repository/update/branch/status-checks.ts @@ -2,10 +2,8 @@ import type { RenovateConfig } from '../../../../config/types'; import { logger } from '../../../../logger'; import { platform } from '../../../../modules/platform'; import type { BranchStatus } from '../../../../types'; -import { - MergeConfidence, - isActiveConfidenceLevel, -} from '../../../../util/merge-confidence'; +import { isActiveConfidenceLevel } from '../../../../util/merge-confidence'; +import type { MergeConfidence } from '../../../../util/merge-confidence/types'; export async function resolveBranchStatus( branchName: string, @@ -80,7 +78,7 @@ export async function setStability(config: StabilityConfig): Promise { export interface ConfidenceConfig extends RenovateConfig { confidenceStatus?: BranchStatus; - minimumConfidence?: MergeConfidence; + minimumConfidence?: MergeConfidence | undefined; } export async function setConfidence(config: ConfidenceConfig): Promise { diff --git a/lib/workers/types.ts b/lib/workers/types.ts index 845ef59737627c..7b53bcddb2747c 100644 --- a/lib/workers/types.ts +++ b/lib/workers/types.ts @@ -16,7 +16,7 @@ import type { } from '../modules/manager/types'; import type { PlatformPrOptions } from '../modules/platform/types'; import type { FileChange } from '../util/git/types'; -import type { MergeConfidence } from '../util/merge-confidence'; +import type { MergeConfidence } from '../util/merge-confidence/types'; import type { ChangeLogRelease, ChangeLogResult, @@ -61,7 +61,7 @@ export interface BranchUpgradeConfig releases?: ReleaseWithNotes[]; releaseTimestamp?: string; repoName?: string; - minimumConfidence?: MergeConfidence; + minimumConfidence?: MergeConfidence | undefined; sourceDirectory?: string; updatedPackageFiles?: FileChange[]; From 3b60c934a0c98481be51140addd872675ac740ee Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Tue, 21 Mar 2023 07:50:54 +0100 Subject: [PATCH 223/228] refactor: merge confidence default undefined (#21059) --- lib/util/merge-confidence/index.spec.ts | 14 +++++++------- lib/util/merge-confidence/index.ts | 8 ++++---- .../repository/process/lookup/filter-checks.ts | 15 ++++++++------- lib/workers/repository/update/branch/index.ts | 15 ++++++++------- 4 files changed, 27 insertions(+), 25 deletions(-) diff --git a/lib/util/merge-confidence/index.spec.ts b/lib/util/merge-confidence/index.spec.ts index 315351cf025c4f..dc46fd6c2df911 100644 --- a/lib/util/merge-confidence/index.spec.ts +++ b/lib/util/merge-confidence/index.spec.ts @@ -85,7 +85,7 @@ describe('util/merge-confidence/index', () => { ).toBe('high'); }); - it('returns neutral if no token', async () => { + it('returns undefined if no token', async () => { expect( await getMergeConfidenceLevel( 'npm', @@ -94,7 +94,7 @@ describe('util/merge-confidence/index', () => { '25.0.0', 'major' ) - ).toBe('neutral'); + ).toBeUndefined(); }); it('returns valid confidence level', async () => { @@ -120,7 +120,7 @@ describe('util/merge-confidence/index', () => { ).toBe('high'); }); - it('returns neutral if invalid confidence level', async () => { + it('returns undefined if invalid confidence level', async () => { hostRules.add({ hostType: 'merge-confidence', token: '123test' }); const datasource = 'npm'; const depName = 'renovate'; @@ -140,10 +140,10 @@ describe('util/merge-confidence/index', () => { newVersion, 'minor' ) - ).toBe('neutral'); + ).toBeUndefined(); }); - it('returns neutral if exception from API', async () => { + it('returns undefined if exception from API', async () => { hostRules.add({ hostType: 'merge-confidence', token: '123test' }); const datasource = 'npm'; const depName = 'renovate'; @@ -163,7 +163,7 @@ describe('util/merge-confidence/index', () => { newVersion, 'minor' ) - ).toBe('neutral'); + ).toBeUndefined(); // FIXME: no cache hit httpMock @@ -181,7 +181,7 @@ describe('util/merge-confidence/index', () => { newVersion, 'minor' ) - ).toBe('neutral'); + ).toBeUndefined(); }); it('returns high if pinning digest', async () => { diff --git a/lib/util/merge-confidence/index.ts b/lib/util/merge-confidence/index.ts index cea1e0d4be7222..7d19a84bd7c37a 100644 --- a/lib/util/merge-confidence/index.ts +++ b/lib/util/merge-confidence/index.ts @@ -48,7 +48,7 @@ export async function getMergeConfidenceLevel( currentVersion: string, newVersion: string, updateType: UpdateType -): Promise { +): Promise { if (!(currentVersion && newVersion && updateType)) { return 'neutral'; } @@ -62,11 +62,11 @@ export async function getMergeConfidenceLevel( }); if (!token) { logger.warn('No Merge Confidence API token found'); - return 'neutral'; + return undefined; } // istanbul ignore if if (memCache.get('merge-confidence-invalid-token')) { - return 'neutral'; + return undefined; } const url = `https://badges.renovateapi.com/packages/${datasource}/${depName}/${newVersion}/confidence.api/${currentVersion}`; const cachedResult = await packageCache.get('merge-confidence', token + url); @@ -74,7 +74,7 @@ export async function getMergeConfidenceLevel( if (cachedResult) { return cachedResult; } - let confidence: MergeConfidence = 'neutral'; + let confidence: MergeConfidence | undefined; try { const res = (await http.getJson<{ confidence: MergeConfidence }>(url)).body; if (MERGE_CONFIDENCE.includes(res.confidence)) { diff --git a/lib/workers/repository/process/lookup/filter-checks.ts b/lib/workers/repository/process/lookup/filter-checks.ts index a740bc4202b9ff..4cd6ac70f6150d 100644 --- a/lib/workers/repository/process/lookup/filter-checks.ts +++ b/lib/workers/repository/process/lookup/filter-checks.ts @@ -73,13 +73,14 @@ export async function filterInternalChecks( // TODO #7154 if (isActiveConfidenceLevel(minimumConfidence!)) { - const confidenceLevel = await getMergeConfidenceLevel( - datasource!, - depName!, - currentVersion!, - newVersion, - updateType! - ); + const confidenceLevel = + (await getMergeConfidenceLevel( + datasource!, + depName!, + currentVersion!, + newVersion, + updateType! + )) ?? 'neutral'; // TODO #7154 if (!satisfiesConfidenceLevel(confidenceLevel, minimumConfidence!)) { logger.trace( diff --git a/lib/workers/repository/update/branch/index.ts b/lib/workers/repository/update/branch/index.ts index b779a277aa1344..188e5f31a1a666 100644 --- a/lib/workers/repository/update/branch/index.ts +++ b/lib/workers/repository/update/branch/index.ts @@ -311,13 +311,14 @@ export async function processBranch( const currentVersion = upgrade.currentVersion!; const newVersion = upgrade.newVersion!; if (isActiveConfidenceLevel(minimumConfidence)) { - const confidence = await getMergeConfidenceLevel( - datasource, - depName, - currentVersion, - newVersion, - updateType - ); + const confidence = + (await getMergeConfidenceLevel( + datasource, + depName, + currentVersion, + newVersion, + updateType + )) ?? 'neutral'; if (satisfiesConfidenceLevel(confidence, minimumConfidence)) { config.confidenceStatus = 'green'; } else { From 1b88fe4711488d28d2660fe38869fd39992b6bca Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 21 Mar 2023 07:49:41 +0000 Subject: [PATCH 224/228] chore(deps): update dependency @types/node to v18.15.3 (#21060) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 7 +------ 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 67b6755fd7c804..00b5e93628bdd6 100644 --- a/package.json +++ b/package.json @@ -279,7 +279,7 @@ "@types/marshal": "0.5.1", "@types/moo": "0.5.5", "@types/nock": "10.0.3", - "@types/node": "18.15.2", + "@types/node": "18.15.3", "@types/parse-link-header": "2.0.1", "@types/semver": "7.3.13", "@types/semver-stable": "3.0.0", diff --git a/yarn.lock b/yarn.lock index c9244066cdc382..676cfe2fb3be89 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3087,16 +3087,11 @@ dependencies: "@types/node" "*" -"@types/node@*": +"@types/node@*", "@types/node@18.15.3": version "18.15.3" resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.3.tgz#f0b991c32cfc6a4e7f3399d6cb4b8cf9a0315014" integrity sha512-p6ua9zBxz5otCmbpb5D3U4B5Nanw6Pk3PPyX05xnxbB/fRv71N7CPmORg7uAD5P70T0xmx1pzAx/FUfa5X+3cw== -"@types/node@18.15.2": - version "18.15.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.2.tgz#0407ceb15647f186318101546d5ae40725b73810" - integrity sha512-sDPHm2wfx2QhrMDK0pOt2J4KLJMAcerqWNvnED0itPRJWvI+bK+uNHzcH1dFsBlf7G3u8tqXmRF3wkvL9yUwMw== - "@types/node@^13.7.0": version "13.13.52" resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.52.tgz#03c13be70b9031baaed79481c0c0cfb0045e53f7" From 623f2cadd97a183c9d11bcb6fd1f20d43d99d5a1 Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Tue, 21 Mar 2023 12:16:36 +0100 Subject: [PATCH 225/228] feat: customize merge confidence host (#21061) Co-authored-by: Gabriel-Ladzaretti <97394622+Gabriel-Ladzaretti@users.noreply.github.com> --- docs/usage/self-hosted-experimental.md | 5 + lib/util/merge-confidence/index.spec.ts | 456 ++++++++++++++++-------- lib/util/merge-confidence/index.ts | 199 +++++++++-- lib/workers/global/initialize.ts | 2 + 4 files changed, 495 insertions(+), 167 deletions(-) diff --git a/docs/usage/self-hosted-experimental.md b/docs/usage/self-hosted-experimental.md index 62b5e65a6cb6cc..563757351086fa 100644 --- a/docs/usage/self-hosted-experimental.md +++ b/docs/usage/self-hosted-experimental.md @@ -76,6 +76,11 @@ When using `matchPackageNames` and `matchPackagePatterns` matchers: 1. Renovate first tries to match against `depName` 2. If `depName` doesn't match then Renovate tries to match against `packageName` +## `RENOVATE_X_MERGE_CONFIDENCE_API_BASE_URL` + +If set, Renovate will query this API for Merge Confidence data. +This feature is in private beta. + ## `RENOVATE_X_AUTODISCOVER_REPO_SORT` diff --git a/lib/util/merge-confidence/index.spec.ts b/lib/util/merge-confidence/index.spec.ts index dc46fd6c2df911..b64be0b932373b 100644 --- a/lib/util/merge-confidence/index.spec.ts +++ b/lib/util/merge-confidence/index.spec.ts @@ -1,14 +1,22 @@ import * as httpMock from '../../../test/http-mock'; +import { EXTERNAL_HOST_ERROR } from '../../constants/error-messages'; +import { logger } from '../../logger'; +import type { HostRule } from '../../types'; import * as memCache from '../cache/memory'; import * as hostRules from '../host-rules'; -import type { MergeConfidence } from './types'; import { getMergeConfidenceLevel, + initConfig, + initMergeConfidence, isActiveConfidenceLevel, + resetConfig, satisfiesConfidenceLevel, } from '.'; describe('util/merge-confidence/index', () => { + const apiBaseUrl = 'https://www.baseurl.com/'; + const defaultApiBaseUrl = 'https://badges.renovateapi.com/'; + describe('isActiveConfidenceLevel()', () => { it('returns false if null', () => { expect(isActiveConfidenceLevel(null as never)).toBeFalse(); @@ -19,9 +27,7 @@ describe('util/merge-confidence/index', () => { }); it('returns false if nonsense', () => { - expect( - isActiveConfidenceLevel('nonsense' as MergeConfidence) - ).toBeFalse(); + expect(isActiveConfidenceLevel('nonsense')).toBeFalse(); }); it('returns true if valid value (high)', () => { @@ -43,157 +49,323 @@ describe('util/merge-confidence/index', () => { }); }); - describe('getMergeConfidenceLevel()', () => { + describe('API calling functions', () => { + const hostRule: HostRule = { + hostType: 'merge-confidence', + token: 'some-token', + }; + beforeEach(() => { - hostRules.clear(); + jest.resetAllMocks(); + process.env.RENOVATE_X_MERGE_CONFIDENCE_API_BASE_URL = apiBaseUrl; + hostRules.add(hostRule); + initConfig(); memCache.reset(); }); - it('returns neutral if undefined updateType', async () => { - expect( - await getMergeConfidenceLevel( - 'npm', - 'renovate', - '25.0.0', - '25.0.0', - undefined as never - ) - ).toBe('neutral'); + afterEach(() => { + hostRules.clear(); + resetConfig(); }); - it('returns neutral if irrelevant updateType', async () => { - expect( - await getMergeConfidenceLevel( - 'npm', - 'renovate', - '24.1.0', - '25.0.0', - 'bump' - ) - ).toBe('neutral'); - }); + describe('getMergeConfidenceLevel()', () => { + it('returns neutral if undefined updateType', async () => { + expect( + await getMergeConfidenceLevel( + 'npm', + 'renovate', + '25.0.0', + '25.0.0', + undefined as never + ) + ).toBe('neutral'); + }); - it('returns high if pinning', async () => { - expect( - await getMergeConfidenceLevel( - 'npm', - 'renovate', - '25.0.1', - '25.0.1', - 'pin' - ) - ).toBe('high'); - }); + it('returns neutral if irrelevant updateType', async () => { + expect( + await getMergeConfidenceLevel( + 'npm', + 'renovate', + '24.1.0', + '25.0.0', + 'bump' + ) + ).toBe('neutral'); + }); - it('returns undefined if no token', async () => { - expect( - await getMergeConfidenceLevel( - 'npm', - 'renovate', - '24.2.0', - '25.0.0', - 'major' - ) - ).toBeUndefined(); - }); + it('returns high if pinning', async () => { + expect( + await getMergeConfidenceLevel( + 'npm', + 'renovate', + '25.0.1', + '25.0.1', + 'pin' + ) + ).toBe('high'); + }); - it('returns valid confidence level', async () => { - hostRules.add({ hostType: 'merge-confidence', token: '123test' }); - const datasource = 'npm'; - const depName = 'renovate'; - const currentVersion = '24.3.0'; - const newVersion = '25.0.0'; - httpMock - .scope('https://badges.renovateapi.com') - .get( - `/packages/${datasource}/${depName}/${newVersion}/confidence.api/${currentVersion}` - ) - .reply(200, { confidence: 'high' }); - expect( - await getMergeConfidenceLevel( - datasource, - depName, - currentVersion, - newVersion, - 'major' - ) - ).toBe('high'); - }); + it('returns undefined if no token', async () => { + resetConfig(); + hostRules.clear(); - it('returns undefined if invalid confidence level', async () => { - hostRules.add({ hostType: 'merge-confidence', token: '123test' }); - const datasource = 'npm'; - const depName = 'renovate'; - const currentVersion = '25.0.0'; - const newVersion = '25.1.0'; - httpMock - .scope('https://badges.renovateapi.com') - .get( - `/packages/${datasource}/${depName}/${newVersion}/confidence.api/${currentVersion}` - ) - .reply(200, { nope: 'nope' }); - expect( - await getMergeConfidenceLevel( - datasource, - depName, - currentVersion, - newVersion, - 'minor' - ) - ).toBeUndefined(); - }); + expect( + await getMergeConfidenceLevel( + 'npm', + 'renovate', + '24.2.0', + '25.0.0', + 'major' + ) + ).toBeUndefined(); + }); + + it('returns undefined if datasource is unsupported', async () => { + expect( + await getMergeConfidenceLevel( + 'not-npm', + 'renovate', + '24.2.0', + '25.0.0', + 'major' + ) + ).toBeUndefined(); + }); + + it('returns valid confidence level', async () => { + const datasource = 'npm'; + const depName = 'renovate'; + const currentVersion = '24.3.0'; + const newVersion = '25.0.0'; + httpMock + .scope(apiBaseUrl) + .get( + `/api/mc/json/${datasource}/${depName}/${currentVersion}/${newVersion}` + ) + .reply(200, { confidence: 'high' }); + + expect( + await getMergeConfidenceLevel( + datasource, + depName, + currentVersion, + newVersion, + 'major' + ) + ).toBe('high'); + }); + + it('returns neutral on invalid merge confidence response from api', async () => { + const datasource = 'npm'; + const depName = 'renovate'; + const currentVersion = '25.0.0'; + const newVersion = '25.1.0'; + httpMock + .scope(apiBaseUrl) + .get( + `/api/mc/json/${datasource}/${depName}/${currentVersion}/${newVersion}` + ) + .reply(200, { invalid: 'invalid' }); + + expect( + await getMergeConfidenceLevel( + datasource, + depName, + currentVersion, + newVersion, + 'minor' + ) + ).toBe('neutral'); + }); + + it('returns neutral on non 403/5xx error from API', async () => { + const datasource = 'npm'; + const depName = 'renovate'; + const currentVersion = '25.0.0'; + const newVersion = '25.4.0'; + httpMock + .scope(apiBaseUrl) + .get( + `/api/mc/json/${datasource}/${depName}/${currentVersion}/${newVersion}` + ) + .reply(400); + + expect( + await getMergeConfidenceLevel( + datasource, + depName, + currentVersion, + newVersion, + 'minor' + ) + ).toBe('neutral'); + expect(logger.warn).toHaveBeenCalledWith( + expect.anything(), + 'error fetching merge confidence data' + ); + }); + + it('throws on 403-Forbidden response from API', async () => { + const datasource = 'npm'; + const packageName = 'renovate'; + const currentVersion = '25.0.0'; + const newVersion = '25.4.0'; + httpMock + .scope(apiBaseUrl) + .get( + `/api/mc/json/${datasource}/${packageName}/${currentVersion}/${newVersion}` + ) + .reply(403); - it('returns undefined if exception from API', async () => { - hostRules.add({ hostType: 'merge-confidence', token: '123test' }); - const datasource = 'npm'; - const depName = 'renovate'; - const currentVersion = '25.0.0'; - const newVersion = '25.4.0'; - httpMock - .scope('https://badges.renovateapi.com') - .get( - `/packages/${datasource}/${depName}/${newVersion}/confidence.api/${currentVersion}` - ) - .reply(403); - expect( - await getMergeConfidenceLevel( - datasource, - depName, - currentVersion, - newVersion, - 'minor' - ) - ).toBeUndefined(); - - // FIXME: no cache hit - httpMock - .scope('https://badges.renovateapi.com') - .get( - `/packages/${datasource}/${depName}-new/${newVersion}/confidence.api/${currentVersion}` - ) - .reply(403); - // memory cache - expect( - await getMergeConfidenceLevel( - datasource, - depName + '-new', - currentVersion, - newVersion, - 'minor' - ) - ).toBeUndefined(); + await expect( + getMergeConfidenceLevel( + datasource, + packageName, + currentVersion, + newVersion, + 'minor' + ) + ).rejects.toThrow(EXTERNAL_HOST_ERROR); + expect(logger.error).toHaveBeenCalledWith( + expect.anything(), + 'merge confidence API token rejected - aborting run' + ); + }); + + it('throws on server error responses', async () => { + const datasource = 'npm'; + const packageName = 'renovate'; + const currentVersion = '25.0.0'; + const newVersion = '25.4.0'; + httpMock + .scope(apiBaseUrl) + .get( + `/api/mc/json/${datasource}/${packageName}/${currentVersion}/${newVersion}` + ) + .reply(503); + + await expect( + getMergeConfidenceLevel( + datasource, + packageName, + currentVersion, + newVersion, + 'minor' + ) + ).rejects.toThrow(EXTERNAL_HOST_ERROR); + expect(logger.error).toHaveBeenCalledWith( + expect.anything(), + 'merge confidence API failure: 5xx - aborting run' + ); + }); + + it('returns high if pinning digest', async () => { + expect( + await getMergeConfidenceLevel( + 'npm', + 'renovate', + '25.0.1', + '25.0.1', + 'pinDigest' + ) + ).toBe('high'); + }); }); - it('returns high if pinning digest', async () => { - expect( - await getMergeConfidenceLevel( - 'npm', - 'renovate', - '25.0.1', - '25.0.1', - 'pinDigest' - ) - ).toBe('high'); + describe('initMergeConfidence()', () => { + it('using default base url if none is set', async () => { + resetConfig(); + delete process.env.RENOVATE_X_MERGE_CONFIDENCE_API_BASE_URL; + httpMock + .scope(defaultApiBaseUrl) + .get(`/api/mc/availability`) + .reply(200); + + await expect(initMergeConfidence()).toResolve(); + expect(logger.trace).toHaveBeenCalledWith( + 'using default merge confidence API base URL' + ); + expect(logger.debug).toHaveBeenCalledWith( + 'merge confidence API - successfully authenticated' + ); + }); + + it('warns and then resolves if base url is invalid', async () => { + resetConfig(); + process.env.RENOVATE_X_MERGE_CONFIDENCE_API_BASE_URL = + 'invalid-url.com'; + httpMock + .scope(defaultApiBaseUrl) + .get(`/api/mc/availability`) + .reply(200); + + await expect(initMergeConfidence()).toResolve(); + expect(logger.warn).toHaveBeenCalledWith( + expect.anything(), + 'invalid merge confidence API base URL found in environment variables - using default value instead' + ); + expect(logger.debug).toHaveBeenCalledWith( + 'merge confidence API - successfully authenticated' + ); + }); + + it('resolves if no token', async () => { + resetConfig(); + hostRules.clear(); + + await expect(initMergeConfidence()).toResolve(); + expect(logger.trace).toHaveBeenCalledWith( + 'merge confidence API usage is disabled' + ); + }); + + it('resolves when token is valid', async () => { + httpMock.scope(apiBaseUrl).get(`/api/mc/availability`).reply(200); + + await expect(initMergeConfidence()).toResolve(); + expect(logger.debug).toHaveBeenCalledWith( + 'merge confidence API - successfully authenticated' + ); + }); + + it('throws on 403-Forbidden from mc API', async () => { + httpMock.scope(apiBaseUrl).get(`/api/mc/availability`).reply(403); + + await expect(initMergeConfidence()).rejects.toThrow( + EXTERNAL_HOST_ERROR + ); + expect(logger.error).toHaveBeenCalledWith( + expect.anything(), + 'merge confidence API token rejected - aborting run' + ); + }); + + it('throws on 5xx host errors from mc API', async () => { + httpMock.scope(apiBaseUrl).get(`/api/mc/availability`).reply(503); + + await expect(initMergeConfidence()).rejects.toThrow( + EXTERNAL_HOST_ERROR + ); + expect(logger.error).toHaveBeenCalledWith( + expect.anything(), + 'merge confidence API failure: 5xx - aborting run' + ); + }); + + it('throws on ECONNRESET', async () => { + httpMock + .scope(apiBaseUrl) + .get(`/api/mc/availability`) + .replyWithError({ code: 'ECONNRESET' }); + + await expect(initMergeConfidence()).rejects.toThrow( + EXTERNAL_HOST_ERROR + ); + expect(logger.error).toHaveBeenCalledWith( + expect.anything(), + 'merge confidence API request failed - aborting run' + ); + }); }); }); }); diff --git a/lib/util/merge-confidence/index.ts b/lib/util/merge-confidence/index.ts index 7d19a84bd7c37a..a63d389c5312f8 100644 --- a/lib/util/merge-confidence/index.ts +++ b/lib/util/merge-confidence/index.ts @@ -1,13 +1,19 @@ +import is from '@sindresorhus/is'; import type { UpdateType } from '../../config/types'; import { logger } from '../../logger'; -import * as memCache from '../cache/memory'; +import { ExternalHostError } from '../../types/errors/external-host-error'; import * as packageCache from '../cache/package'; import * as hostRules from '../host-rules'; import { Http } from '../http'; import { MERGE_CONFIDENCE } from './common'; import type { MergeConfidence } from './types'; -const http = new Http('merge-confidence'); +const hostType = 'merge-confidence'; +const http = new Http(hostType); +let token: string | undefined; +let apiBaseUrl: string | undefined; + +const supportedDatasources = ['npm', 'maven', 'pypi']; export const confidenceLevels: Record = { low: -1, @@ -16,8 +22,22 @@ export const confidenceLevels: Record = { 'very high': 2, }; -export function isActiveConfidenceLevel(confidence: MergeConfidence): boolean { - return confidence !== 'low' && MERGE_CONFIDENCE.includes(confidence); +export function initConfig(): void { + apiBaseUrl = getApiBaseUrl(); + token = getApiToken(); +} + +export function resetConfig(): void { + token = undefined; + apiBaseUrl = undefined; +} + +export function isMergeConfidence(value: string): value is MergeConfidence { + return MERGE_CONFIDENCE.includes(value as MergeConfidence); +} + +export function isActiveConfidenceLevel(confidence: string): boolean { + return isMergeConfidence(confidence) && confidence !== 'low'; } export function satisfiesConfidenceLevel( @@ -42,6 +62,18 @@ const updateTypeConfidenceMapping: Record = patch: null, }; +/** + * Retrieves the merge confidence of a package update if the merge confidence API is enabled. Otherwise, undefined is returned. + * + * @param datasource + * @param depName + * @param currentVersion + * @param newVersion + * @param updateType + * + * @returns The merge confidence level for the given package release. + * @throws {ExternalHostError} If a request has been made and an error occurs during the request, such as a timeout, connection reset, authentication failure, or internal server error. + */ export async function getMergeConfidenceLevel( datasource: string, depName: string, @@ -49,44 +81,161 @@ export async function getMergeConfidenceLevel( newVersion: string, updateType: UpdateType ): Promise { + if (is.nullOrUndefined(apiBaseUrl) || is.nullOrUndefined(token)) { + return undefined; + } + + if (!supportedDatasources.includes(datasource)) { + return undefined; + } + if (!(currentVersion && newVersion && updateType)) { return 'neutral'; } + const mappedConfidence = updateTypeConfidenceMapping[updateType]; if (mappedConfidence) { return mappedConfidence; } - const { token } = hostRules.find({ - hostType: 'merge-confidence', - url: 'https://badges.renovateapi.com', - }); - if (!token) { - logger.warn('No Merge Confidence API token found'); - return undefined; - } - // istanbul ignore if - if (memCache.get('merge-confidence-invalid-token')) { - return undefined; + + return await queryApi(datasource, depName, currentVersion, newVersion); +} + +/** + * Queries the Merge Confidence API with the given package release information. + * + * @param datasource + * @param depName + * @param currentVersion + * @param newVersion + * + * @returns The merge confidence level for the given package release. + * @throws {ExternalHostError} if a timeout or connection reset error, authentication failure, or internal server error occurs during the request. + * + * @remarks + * Results are cached for 60 minutes to reduce the number of API calls. + */ +async function queryApi( + datasource: string, + depName: string, + currentVersion: string, + newVersion: string +): Promise { + // istanbul ignore if: defensive, already been validated before calling this function + if (is.nullOrUndefined(apiBaseUrl) || is.nullOrUndefined(token)) { + return 'neutral'; } - const url = `https://badges.renovateapi.com/packages/${datasource}/${depName}/${newVersion}/confidence.api/${currentVersion}`; - const cachedResult = await packageCache.get('merge-confidence', token + url); + + const url = `${apiBaseUrl}api/mc/json/${datasource}/${depName}/${currentVersion}/${newVersion}`; + const cacheKey = `${token}:${url}`; + const cachedResult = await packageCache.get(hostType, cacheKey); + // istanbul ignore if if (cachedResult) { + logger.debug( + { datasource, depName, currentVersion, newVersion, cachedResult }, + 'using merge confidence cached result' + ); return cachedResult; } - let confidence: MergeConfidence | undefined; + + let confidence: MergeConfidence = 'neutral'; try { const res = (await http.getJson<{ confidence: MergeConfidence }>(url)).body; - if (MERGE_CONFIDENCE.includes(res.confidence)) { + if (isMergeConfidence(res.confidence)) { confidence = res.confidence; } } catch (err) { - logger.debug({ err }, 'Error fetching merge confidence'); - if (err.statusCode === 403) { - memCache.set('merge-confidence-invalid-token', true); - logger.warn('Merge Confidence API token rejected'); - } + apiErrorHandler(err); } - await packageCache.set('merge-confidence', token + url, confidence, 60); + + await packageCache.set(hostType, cacheKey, confidence, 60); return confidence; } + +/** + * Checks the health of the Merge Confidence API by attempting to authenticate with it. + * + * @returns Resolves when the API health check is completed successfully. + * + * @throws {ExternalHostError} if a timeout, connection reset error, authentication failure, or internal server error occurs during the request. + * + * @remarks + * This function first checks that the API base URL and an authentication bearer token are defined before attempting to + * authenticate with the API. If either the base URL or token is not defined, it will immediately return + * without making a request. + */ +export async function initMergeConfidence(): Promise { + initConfig(); + + if (is.nullOrUndefined(apiBaseUrl) || is.nullOrUndefined(token)) { + logger.trace('merge confidence API usage is disabled'); + return; + } + + const url = `${apiBaseUrl}api/mc/availability`; + try { + await http.get(url); + } catch (err) { + apiErrorHandler(err); + } + + logger.debug('merge confidence API - successfully authenticated'); + return; +} + +function getApiBaseUrl(): string { + const defaultBaseUrl = 'https://badges.renovateapi.com/'; + const baseFromEnv = process.env.RENOVATE_X_MERGE_CONFIDENCE_API_BASE_URL; + + if (is.nullOrUndefined(baseFromEnv)) { + logger.trace('using default merge confidence API base URL'); + return defaultBaseUrl; + } + + try { + const parsedBaseUrl = new URL(baseFromEnv).toString(); + logger.trace( + { baseUrl: parsedBaseUrl }, + 'using merge confidence API base found in environment variables' + ); + return parsedBaseUrl; + } catch (err) { + logger.warn( + { err, baseFromEnv }, + 'invalid merge confidence API base URL found in environment variables - using default value instead' + ); + return defaultBaseUrl; + } +} + +function getApiToken(): string | undefined { + return hostRules.find({ + hostType, + })?.token; +} + +/** + * Handles errors returned by the Merge Confidence API. + * + * @param err - The error object returned by the API. + * @throws {ExternalHostError} if a timeout or connection reset error, authentication failure, or internal server error occurs during the request. + */ +function apiErrorHandler(err: any): void { + if (err.code === 'ETIMEDOUT' || err.code === 'ECONNRESET') { + logger.error({ err }, 'merge confidence API request failed - aborting run'); + throw new ExternalHostError(err, hostType); + } + + if (err.statusCode === 403) { + logger.error({ err }, 'merge confidence API token rejected - aborting run'); + throw new ExternalHostError(err, hostType); + } + + if (err.statusCode >= 500 && err.statusCode < 600) { + logger.error({ err }, 'merge confidence API failure: 5xx - aborting run'); + throw new ExternalHostError(err, hostType); + } + + logger.warn({ err }, 'error fetching merge confidence data'); +} diff --git a/lib/workers/global/initialize.ts b/lib/workers/global/initialize.ts index 73a2d5eefb7229..3ec5c90ab6fdee 100644 --- a/lib/workers/global/initialize.ts +++ b/lib/workers/global/initialize.ts @@ -9,6 +9,7 @@ import * as packageCache from '../../util/cache/package'; import { setEmojiConfig } from '../../util/emoji'; import { validateGitVersion } from '../../util/git'; import * as hostRules from '../../util/host-rules'; +import { initMergeConfidence } from '../../util/merge-confidence'; import { setMaxLimit } from './limits'; async function setDirectories(input: AllConfig): Promise { @@ -74,6 +75,7 @@ export async function globalInitialize( limitCommitsPerRun(config); setEmojiConfig(config); setGlobalHostRules(config); + await initMergeConfidence(); return config; } From 036aba716f0bbb8a9cdcc7a64606a08fd2952ca9 Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Tue, 21 Mar 2023 17:35:44 +0100 Subject: [PATCH 226/228] chore: improve bug issue template (#21051) Co-authored-by: HonkingGoose <34918129+HonkingGoose@users.noreply.github.com> --- .github/ISSUE_TEMPLATE/bug_report.yml | 26 ++++++-------------------- 1 file changed, 6 insertions(+), 20 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index c184e443e3557c..3b1d63988d8f22 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -14,8 +14,9 @@ body: attributes: label: How are you running Renovate? options: + - 'Placeholder value, please select the correct response from the dropdown' - 'Mend Renovate hosted app on github.com' - - 'Self-hosted' + - 'Self-hosted Renovate' validations: required: true @@ -44,30 +45,14 @@ body: validations: required: false - - type: input - id: platform-version-if-selfhosting - attributes: - label: If you're self-hosting Renovate, tell us what version of the platform you run. - description: | - This field is for the version number of your _platform_, so one of these: - - AWS CodeCommit - - Azure DevOps - - Bitbucket Cloud - - Bitbucket Server - - Azure DevOps - - Gitea or Forgejo - - GitHub (.com and Enterprise Server) - - GitLab (.com and CE/EE) - validations: - required: false - - type: dropdown id: regression-error attributes: label: Was this something which used to work for you, and then stopped? options: + - 'Placeholder value, please select the correct response from the dropdown' + - 'I am trying to get this working for the first time' - 'It used to work, and then stopped' - - 'I never saw this working' validations: required: true @@ -107,7 +92,8 @@ body: label: Have you created a minimal reproduction repository? description: Please read the [minimal reproductions documentation](https://github.com/renovatebot/renovate/blob/main/docs/development/minimal-reproductions.md) to learn how to make a good minimal reproduction repository. options: - - 'I have read the minimal reproductions documentation and linked to such a repository in the bug description' + - 'Placeholder value, please select the correct response from the dropdown' + - 'I have linked to a minimal reproduction in the description above' - 'I have explained in the description why a minimal reproduction is impossible' validations: required: true From b25022066e68dec810cc17d8368df8188b397c72 Mon Sep 17 00:00:00 2001 From: Adam Setch Date: Tue, 21 Mar 2023 12:42:13 -0400 Subject: [PATCH 227/228] feat(replacements): support for replacement name templating (#20905) Co-authored-by: Sebastian Poxhofer --- docs/usage/configuration-options.md | 42 ++++++- lib/config/options/index.ts | 10 ++ .../repository/process/lookup/index.spec.ts | 103 ++++++++++++++++++ .../repository/process/lookup/index.ts | 39 ++----- .../repository/process/lookup/types.ts | 1 + .../repository/process/lookup/utils.ts | 72 ++++++++++++ 6 files changed, 237 insertions(+), 30 deletions(-) create mode 100644 lib/workers/repository/process/lookup/utils.ts diff --git a/docs/usage/configuration-options.md b/docs/usage/configuration-options.md index 82305b51ac3569..f7fdb909328d84 100644 --- a/docs/usage/configuration-options.md +++ b/docs/usage/configuration-options.md @@ -2176,9 +2176,49 @@ Managers which do not support replacement: - `regex` Use the `replacementName` config option to set the name of a replacement package. -Must be used with `replacementVersion` (see example below). + +Can be used in combination with `replacementVersion`. + You can suggest a new community package rule by editing [the `replacements.ts` file on the Renovate repository](https://github.com/renovatebot/renovate/blob/main/lib/config/presets/internal/replacements.ts) and opening a pull request. +### replacementNameTemplate + + +!!! note + `replacementName` will take precedence if used within the same package rule. + +Use the `replacementNameTemplate` config option to control the replacement name. + +Use the triple brace `{{{ }}}` notation to avoid Handlebars escaping any special characters. + +For example, the following package rule can be used to replace the registry for `docker` images: + +```json +{ + "packageRules": [ + { + "matchDatasources": ["docker"], + "matchPackagePrefix": ["^docker.io/.*)"], + "replacementNameTemplate": "{{{replace 'docker.io/' 'ghcr.io/' packageName}}}" + } + ] +} +``` + +Or, to add a registry prefix to any `docker` images that do not contain an explicit registry: + +```json +{ + "packageRules": [ + { + "matchDatasources": ["docker"], + "matchPackagePrefix": ["^([^.]+)(\\/\\:)?$"], + "replacementNameTemplate": "some.registry.org/{{{packageName}}}" + } + ] +} +``` + ### replacementVersion This config option only works with some managers. diff --git a/lib/config/options/index.ts b/lib/config/options/index.ts index ec44d893752639..428b8dc17720f6 100644 --- a/lib/config/options/index.ts +++ b/lib/config/options/index.ts @@ -1214,6 +1214,16 @@ const options: RenovateOptions[] = [ cli: false, env: false, }, + { + name: 'replacementNameTemplate', + description: 'Controls what the replacement package name.', + type: 'string', + default: '{{{packageName}}}', + stage: 'package', + parent: 'packageRules', + cli: false, + env: false, + }, { name: 'replacementVersion', description: diff --git a/lib/workers/repository/process/lookup/index.spec.ts b/lib/workers/repository/process/lookup/index.spec.ts index 40f8e62f9970f1..5cea45a80f47b7 100644 --- a/lib/workers/repository/process/lookup/index.spec.ts +++ b/lib/workers/repository/process/lookup/index.spec.ts @@ -1941,6 +1941,14 @@ describe('workers/repository/process/lookup/index', () => { ]); }); + it('handles replacements - skips if package and replacement names match', async () => { + config.packageName = 'openjdk'; + config.currentValue = undefined; + config.datasource = DockerDatasource.id; + config.replacementName = 'openjdk'; + expect((await lookup.lookupUpdates(config)).updates).toMatchObject([]); + }); + it('handles replacements - name and version', async () => { config.currentValue = '1.4.1'; config.packageName = 'q'; @@ -1958,6 +1966,101 @@ describe('workers/repository/process/lookup/index', () => { ]); }); + it('handles replacements - can template replacement name without a replacement version', async () => { + config.packageName = 'mirror.some.org/library/openjdk'; + config.currentValue = '17.0.0'; + config.replacementNameTemplate = `{{{replace 'mirror.some.org/' 'new.registry.io/' packageName}}}`; + config.datasource = DockerDatasource.id; + getDockerReleases.mockResolvedValueOnce({ + releases: [ + { + version: '17.0.0', + }, + { + version: '18.0.0', + }, + ], + }); + + expect((await lookup.lookupUpdates(config)).updates).toMatchObject([ + { + updateType: 'replacement', + newName: 'new.registry.io/library/openjdk', + newValue: '17.0.0', + }, + { + updateType: 'major', + newMajor: 18, + newValue: '18.0.0', + newVersion: '18.0.0', + }, + ]); + }); + + it('handles replacements - can template replacement name with a replacement version', async () => { + config.packageName = 'mirror.some.org/library/openjdk'; + config.currentValue = '17.0.0'; + config.replacementNameTemplate = `{{{replace 'mirror.some.org/' 'new.registry.io/' packageName}}}`; + config.replacementVersion = '18.0.0'; + config.datasource = DockerDatasource.id; + getDockerReleases.mockResolvedValueOnce({ + releases: [ + { + version: '17.0.0', + }, + { + version: '18.0.0', + }, + ], + }); + + expect((await lookup.lookupUpdates(config)).updates).toMatchObject([ + { + updateType: 'replacement', + newName: 'new.registry.io/library/openjdk', + newValue: '18.0.0', + }, + { + updateType: 'major', + newMajor: 18, + newValue: '18.0.0', + newVersion: '18.0.0', + }, + ]); + }); + + it('handles replacements - replacementName takes precedence over replacementNameTemplate', async () => { + config.packageName = 'mirror.some.org/library/openjdk'; + config.currentValue = '17.0.0'; + config.replacementNameTemplate = `{{{replace 'mirror.some.org/' 'new.registry.io/' packageName}}}`; + config.replacementName = 'eclipse-temurin'; + config.datasource = DockerDatasource.id; + getDockerReleases.mockResolvedValueOnce({ + releases: [ + { + version: '17.0.0', + }, + { + version: '18.0.0', + }, + ], + }); + + expect((await lookup.lookupUpdates(config)).updates).toMatchObject([ + { + updateType: 'replacement', + newName: 'eclipse-temurin', + newValue: '17.0.0', + }, + { + updateType: 'major', + newMajor: 18, + newValue: '18.0.0', + newVersion: '18.0.0', + }, + ]); + }); + it('rollback for invalid version to last stable version', async () => { config.currentValue = '2.5.17'; config.packageName = 'vue'; diff --git a/lib/workers/repository/process/lookup/index.ts b/lib/workers/repository/process/lookup/index.ts index a262baf9922a7f..70c1e0595a6f5c 100644 --- a/lib/workers/repository/process/lookup/index.ts +++ b/lib/workers/repository/process/lookup/index.ts @@ -26,6 +26,11 @@ import { filterInternalChecks } from './filter-checks'; import { generateUpdate } from './generate'; import { getRollbackUpdate } from './rollback'; import type { LookupUpdateConfig, UpdateResult } from './types'; +import { + addReplacementUpdateIfValid, + isReplacementNameRulesConfigured, + isReplacementRulesConfigured, +} from './utils'; export async function lookupUpdates( inconfig: LookupUpdateConfig @@ -157,27 +162,10 @@ export async function lookupUpdates( } let rangeStrategy = getRangeStrategy(config); - if (config.replacementName && !config.replacementVersion) { - res.updates.push({ - updateType: 'replacement', - newName: config.replacementName, - newValue: currentValue!, - }); + if (isReplacementRulesConfigured(config)) { + addReplacementUpdateIfValid(res.updates, config); } - if (config.replacementName && config.replacementVersion) { - res.updates.push({ - updateType: 'replacement', - newName: config.replacementName, - newValue: versioning.getNewValue({ - // TODO #7154 - currentValue: currentValue!, - newVersion: config.replacementVersion, - rangeStrategy: rangeStrategy!, - isReplacement: true, - })!, - }); - } // istanbul ignore next if ( isVulnerabilityAlert && @@ -344,19 +332,12 @@ export async function lookupUpdates( } else { delete res.skipReason; } - } else if ( - !currentValue && - config.replacementName && - !config.replacementVersion - ) { + } else if (!currentValue && isReplacementNameRulesConfigured(config)) { logger.debug( `Handle name-only replacement for ${packageName} without current version` ); - res.updates.push({ - updateType: 'replacement', - newName: config.replacementName, - newValue: currentValue!, - }); + + addReplacementUpdateIfValid(res.updates, config); } else { res.skipReason = 'invalid-value'; } diff --git a/lib/workers/repository/process/lookup/types.ts b/lib/workers/repository/process/lookup/types.ts index 5a0e1a40bb9b45..14f1187c629cd7 100644 --- a/lib/workers/repository/process/lookup/types.ts +++ b/lib/workers/repository/process/lookup/types.ts @@ -46,6 +46,7 @@ export interface LookupUpdateConfig packageName: string; minimumConfidence?: MergeConfidence | undefined; replacementName?: string; + replacementNameTemplate?: string; replacementVersion?: string; } diff --git a/lib/workers/repository/process/lookup/utils.ts b/lib/workers/repository/process/lookup/utils.ts new file mode 100644 index 00000000000000..4abf2903681ccf --- /dev/null +++ b/lib/workers/repository/process/lookup/utils.ts @@ -0,0 +1,72 @@ +import is from '@sindresorhus/is'; + +import { getRangeStrategy } from '../../../../modules/manager'; +import type { LookupUpdate } from '../../../../modules/manager/types'; +import * as allVersioning from '../../../../modules/versioning'; +import * as template from '../../../../util/template'; +import type { LookupUpdateConfig } from './types'; + +export function addReplacementUpdateIfValid( + updates: LookupUpdate[], + config: LookupUpdateConfig +): void { + const replacementNewName = determineNewReplacementName(config); + const replacementNewValue = determineNewReplacementValue(config); + + if ( + config.packageName !== replacementNewName || + config.currentValue !== replacementNewValue + ) { + updates.push({ + updateType: 'replacement', + newName: replacementNewName, + newValue: replacementNewValue!, + }); + } +} + +export function isReplacementNameRulesConfigured( + config: LookupUpdateConfig +): boolean { + return ( + is.nonEmptyString(config.replacementName) || + is.nonEmptyString(config.replacementNameTemplate) + ); +} + +export function isReplacementRulesConfigured( + config: LookupUpdateConfig +): boolean { + return ( + isReplacementNameRulesConfigured(config) || + is.nonEmptyString(config.replacementVersion) + ); +} + +export function determineNewReplacementName( + config: LookupUpdateConfig +): string { + return ( + config.replacementName ?? + template.compile(config.replacementNameTemplate!, config, true) + ); +} + +export function determineNewReplacementValue( + config: LookupUpdateConfig +): string | undefined | null { + const versioning = allVersioning.get(config.versioning); + const rangeStrategy = getRangeStrategy(config); + + if (!is.nullOrUndefined(config.replacementVersion)) { + return versioning.getNewValue({ + // TODO #7154 + currentValue: config.currentValue!, + newVersion: config.replacementVersion, + rangeStrategy: rangeStrategy!, + isReplacement: true, + }); + } + + return config.currentValue; +} From 1615d262264fd5db4bee76802c3542bc0fd36556 Mon Sep 17 00:00:00 2001 From: Gabriel-Ladzaretti <97394622+Gabriel-Ladzaretti@users.noreply.github.com> Date: Tue, 21 Mar 2023 20:37:38 +0200 Subject: [PATCH 228/228] feat(packageRules): add merge confidence matcher (#21049) Co-authored-by: Rhys Arkins Co-authored-by: HonkingGoose <34918129+HonkingGoose@users.noreply.github.com> Co-authored-by: Michael Kriese --- docs/usage/configuration-options.md | 33 +++++++ lib/config/options/index.ts | 15 +++ lib/config/types.ts | 3 + lib/config/validation.ts | 1 + lib/modules/manager/types.ts | 2 + lib/util/package-rules/index.spec.ts | 55 +++++++++++ lib/util/package-rules/matchers.ts | 2 + lib/util/package-rules/merge-confidence.ts | 19 ++++ .../repository/process/lookup/generate.ts | 16 ++- .../repository/process/lookup/index.spec.ts | 98 +++++++++++++++++++ .../repository/process/lookup/index.ts | 2 +- 11 files changed, 243 insertions(+), 3 deletions(-) create mode 100644 lib/util/package-rules/merge-confidence.ts diff --git a/docs/usage/configuration-options.md b/docs/usage/configuration-options.md index f7fdb909328d84..67f8f640df594d 100644 --- a/docs/usage/configuration-options.md +++ b/docs/usage/configuration-options.md @@ -2135,6 +2135,39 @@ For example to apply a special label for Major updates: } ``` +### matchConfidence + + +!!! warning + This configuration option needs a Mend API key, and is in private beta testing only. + API keys are not available for free or via the `renovatebot/renovate` repository. + +For example to group high merge confidence updates: + +```json +{ + "packageRules": [ + { + "matchConfidence": ["high", "very high"], + "groupName": "high merge confidence" + } + ] +} +``` + +Tokens can be configured via `hostRules` using the `"merge-confidence"` `hostType`: + +```json +{ + "hostRules": [ + { + "hostType": "merge-confidence", + "token": "********" + } + ] +} +``` + ### customChangelogUrl Use this field to set the source URL for a package, including overriding an existing one. diff --git a/lib/config/options/index.ts b/lib/config/options/index.ts index 428b8dc17720f6..e140838639592a 100644 --- a/lib/config/options/index.ts +++ b/lib/config/options/index.ts @@ -1234,6 +1234,21 @@ const options: RenovateOptions[] = [ cli: false, env: false, }, + { + name: 'matchConfidence', + description: + 'Merge confidence levels to match against (`low`, `neutral`, `high`, `very high`). Valid only within `packageRules` object.', + type: 'array', + subType: 'string', + allowedValues: ['low', 'neutral', 'high', 'very high'], + allowString: true, + stage: 'package', + parent: 'packageRules', + mergeable: true, + cli: false, + env: false, + experimental: true, + }, { name: 'matchUpdateTypes', description: diff --git a/lib/config/types.ts b/lib/config/types.ts index f6e8d56952fdbc..aedf88d6237cdc 100644 --- a/lib/config/types.ts +++ b/lib/config/types.ts @@ -2,6 +2,7 @@ import type { LogLevel } from 'bunyan'; import type { PlatformId } from '../constants'; import type { HostRule } from '../types'; import type { GitNoVerifyOption } from '../util/git/types'; +import type { MergeConfidence } from '../util/merge-confidence/types'; export type RenovateConfigStage = | 'global' @@ -328,6 +329,7 @@ export interface PackageRule matchSourceUrlPrefixes?: string[]; matchSourceUrls?: string[]; matchUpdateTypes?: UpdateType[]; + matchConfidence?: MergeConfidence[]; registryUrls?: string[] | null; } @@ -458,6 +460,7 @@ export interface PackageRuleInputConfig extends Record { currentVersion?: string; lockedVersion?: string; updateType?: UpdateType; + mergeConfidenceLevel?: MergeConfidence | undefined; isBump?: boolean; sourceUrl?: string | null; language?: string; diff --git a/lib/config/validation.ts b/lib/config/validation.ts index 52d7e9a1deda0a..f5c7b59c5c5657 100644 --- a/lib/config/validation.ts +++ b/lib/config/validation.ts @@ -333,6 +333,7 @@ export async function validateConfig( 'matchSourceUrlPrefixes', 'matchSourceUrls', 'matchUpdateTypes', + 'matchConfidence', ]; if (key === 'packageRules') { for (const [subIndex, packageRule] of val.entries()) { diff --git a/lib/modules/manager/types.ts b/lib/modules/manager/types.ts index fffd4ac2ddd717..80f84fe48094df 100644 --- a/lib/modules/manager/types.ts +++ b/lib/modules/manager/types.ts @@ -8,6 +8,7 @@ import type { import type { ProgrammingLanguage } from '../../constants'; import type { ModuleApi, RangeStrategy, SkipReason } from '../../types'; import type { FileChange } from '../../util/git/types'; +import type { MergeConfidence } from '../../util/merge-confidence/types'; export type Result = T | Promise; @@ -94,6 +95,7 @@ export interface LookupUpdate { pendingVersions?: string[]; newVersion?: string; updateType?: UpdateType; + mergeConfidenceLevel?: MergeConfidence | undefined; userStrings?: Record; checksumUrl?: string; downloadUrl?: string; diff --git a/lib/util/package-rules/index.spec.ts b/lib/util/package-rules/index.spec.ts index a64c37ba2fef07..dc3d30bc62882e 100644 --- a/lib/util/package-rules/index.spec.ts +++ b/lib/util/package-rules/index.spec.ts @@ -1,6 +1,7 @@ import type { PackageRuleInputConfig, UpdateType } from '../../config/types'; import { DockerDatasource } from '../../modules/datasource/docker'; import { OrbDatasource } from '../../modules/datasource/orb'; +import type { MergeConfidence } from '../merge-confidence/types'; import { applyPackageRules } from './index'; type TestConfig = PackageRuleInputConfig & { @@ -625,6 +626,60 @@ describe('util/package-rules/index', () => { expect(res.x).toBeUndefined(); }); + it('matches matchConfidence', () => { + const config: TestConfig = { + packageRules: [ + { + matchConfidence: ['high'], + x: 1, + }, + ], + }; + const dep = { + depType: 'dependencies', + depName: 'a', + mergeConfidenceLevel: 'high' as MergeConfidence, + }; + const res = applyPackageRules({ ...config, ...dep }); + expect(res.x).toBe(1); + }); + + it('non-matches matchConfidence', () => { + const config: TestConfig = { + packageRules: [ + { + matchConfidence: ['high'], + x: 1, + }, + ], + }; + const dep = { + depType: 'dependencies', + depName: 'a', + mergeConfidenceLevel: 'low' as MergeConfidence, + }; + const res = applyPackageRules({ ...config, ...dep }); + expect(res.x).toBeUndefined(); + }); + + it('does not match matchConfidence when there is no mergeConfidenceLevel', () => { + const config: TestConfig = { + packageRules: [ + { + matchConfidence: ['high'], + x: 1, + }, + ], + }; + const dep = { + depType: 'dependencies', + depName: 'a', + mergeConfidenceLevel: undefined, + }; + const res = applyPackageRules({ ...config, ...dep }); + expect(res.x).toBeUndefined(); + }); + it('filters naked depType', () => { const config: TestConfig = { packageRules: [ diff --git a/lib/util/package-rules/matchers.ts b/lib/util/package-rules/matchers.ts index 6697839344baac..2a11fdd8180d58 100644 --- a/lib/util/package-rules/matchers.ts +++ b/lib/util/package-rules/matchers.ts @@ -8,6 +8,7 @@ import { DepTypesMatcher } from './dep-types'; import { FilesMatcher } from './files'; import { LanguagesMatcher } from './languages'; import { ManagersMatcher } from './managers'; +import { MergeConfidenceMatcher } from './merge-confidence'; import { PackageNameMatcher } from './package-names'; import { PackagePatternsMatcher } from './package-patterns'; import { PackagePrefixesMatcher } from './package-prefixes'; @@ -36,6 +37,7 @@ matchers.push([new BaseBranchesMatcher()]); matchers.push([new ManagersMatcher()]); matchers.push([new DatasourcesMatcher()]); matchers.push([new UpdateTypesMatcher()]); +matchers.push([new MergeConfidenceMatcher()]); matchers.push([new SourceUrlsMatcher(), new SourceUrlPrefixesMatcher()]); matchers.push([new CurrentValueMatcher()]); matchers.push([new CurrentVersionMatcher()]); diff --git a/lib/util/package-rules/merge-confidence.ts b/lib/util/package-rules/merge-confidence.ts new file mode 100644 index 00000000000000..a29a6cfb55d43c --- /dev/null +++ b/lib/util/package-rules/merge-confidence.ts @@ -0,0 +1,19 @@ +import is from '@sindresorhus/is'; +import type { PackageRule, PackageRuleInputConfig } from '../../config/types'; +import { Matcher } from './base'; + +export class MergeConfidenceMatcher extends Matcher { + override matches( + { mergeConfidenceLevel }: PackageRuleInputConfig, + { matchConfidence }: PackageRule + ): boolean | null { + if (is.nullOrUndefined(matchConfidence)) { + return null; + } + return ( + is.array(matchConfidence) && + is.nonEmptyString(mergeConfidenceLevel) && + matchConfidence.includes(mergeConfidenceLevel) + ); + } +} diff --git a/lib/workers/repository/process/lookup/generate.ts b/lib/workers/repository/process/lookup/generate.ts index 3df6376504b689..5ad3cefff1d30d 100644 --- a/lib/workers/repository/process/lookup/generate.ts +++ b/lib/workers/repository/process/lookup/generate.ts @@ -1,19 +1,21 @@ +import is from '@sindresorhus/is'; import { logger } from '../../../../logger'; import type { Release } from '../../../../modules/datasource'; import type { LookupUpdate } from '../../../../modules/manager/types'; import type { VersioningApi } from '../../../../modules/versioning'; import type { RangeStrategy } from '../../../../types'; +import { getMergeConfidenceLevel } from '../../../../util/merge-confidence'; import type { LookupUpdateConfig } from './types'; import { getUpdateType } from './update-type'; -export function generateUpdate( +export async function generateUpdate( config: LookupUpdateConfig, versioning: VersioningApi, rangeStrategy: RangeStrategy, currentVersion: string, bucket: string, release: Release -): LookupUpdate { +): Promise { const newVersion = release.version; const update: LookupUpdate = { bucket, @@ -77,6 +79,16 @@ export function generateUpdate( update.updateType = update.updateType ?? getUpdateType(config, versioning, currentVersion, newVersion); + const { datasource, packageName, packageRules } = config; + if (packageRules?.some((pr) => is.nonEmptyArray(pr.matchConfidence))) { + update.mergeConfidenceLevel = await getMergeConfidenceLevel( + datasource, + packageName, + currentVersion, + newVersion, + update.updateType + ); + } if (!versioning.isVersion(update.newValue)) { update.isRange = true; } diff --git a/lib/workers/repository/process/lookup/index.spec.ts b/lib/workers/repository/process/lookup/index.spec.ts index 5cea45a80f47b7..2039816e067f5f 100644 --- a/lib/workers/repository/process/lookup/index.spec.ts +++ b/lib/workers/repository/process/lookup/index.spec.ts @@ -1,3 +1,4 @@ +import * as hostRules from '../../../../../lib/util/host-rules'; import { Fixtures } from '../../../../../test/fixtures'; import * as httpMock from '../../../../../test/http-mock'; import { getConfig, partial } from '../../../../../test/util'; @@ -14,7 +15,11 @@ import { id as gitVersioningId } from '../../../../modules/versioning/git'; import { id as npmVersioningId } from '../../../../modules/versioning/npm'; import { id as pep440VersioningId } from '../../../../modules/versioning/pep440'; import { id as poetryVersioningId } from '../../../../modules/versioning/poetry'; +import type { HostRule } from '../../../../types'; +import * as memCache from '../../../../util/cache/memory'; import * as githubGraphql from '../../../../util/github/graphql'; +import { initConfig, resetConfig } from '../../../../util/merge-confidence'; +import * as McApi from '../../../../util/merge-confidence'; import type { LookupUpdateConfig } from './types'; import * as lookup from '.'; @@ -67,6 +72,7 @@ describe('workers/repository/process/lookup/index', () => { // TODO: fix mocks afterEach(() => { httpMock.clear(false); + hostRules.clear(); }); describe('.lookupUpdates()', () => { @@ -2082,5 +2088,97 @@ describe('workers/repository/process/lookup/index', () => { }, ]); }); + + describe('handles merge confidence', () => { + const defaultApiBaseUrl = 'https://badges.renovateapi.com/'; + const getMergeConfidenceSpy = jest.spyOn( + McApi, + 'getMergeConfidenceLevel' + ); + const hostRule: HostRule = { + hostType: 'merge-confidence', + token: 'some-token', + }; + + beforeEach(() => { + hostRules.add(hostRule); + initConfig(); + memCache.reset(); + }); + + afterEach(() => { + resetConfig(); + }); + + it('gets a merge confidence level for a given update when corresponding packageRule is in use', async () => { + const datasource = NpmDatasource.id; + const packageName = 'webpack'; + const newVersion = '3.8.1'; + const currentValue = '3.7.0'; + config.packageRules = [{ matchConfidence: ['high'] }]; + config.currentValue = currentValue; + config.packageName = packageName; + config.datasource = datasource; + httpMock + .scope('https://registry.npmjs.org') + .get('/webpack') + .reply(200, webpackJson); + httpMock + .scope(defaultApiBaseUrl) + .get( + `/api/mc/json/${datasource}/${packageName}/${currentValue}/${newVersion}` + ) + .reply(200, { confidence: 'high' }); + + const lookupUpdates = (await lookup.lookupUpdates(config)).updates; + + expect(lookupUpdates).toMatchObject([ + { + mergeConfidenceLevel: `high`, + }, + ]); + }); + + it('does not get a merge confidence level when no packageRule is set', async () => { + config.currentValue = '3.7.0'; + config.packageName = 'webpack'; + config.datasource = NpmDatasource.id; + httpMock + .scope('https://registry.npmjs.org') + .get('/webpack') + .reply(200, webpackJson); + + const lookupUpdates = (await lookup.lookupUpdates(config)).updates; + + expect(getMergeConfidenceSpy).toHaveBeenCalledTimes(0); + expect(lookupUpdates).not.toMatchObject([ + { + mergeConfidenceLevel: expect.anything(), + }, + ]); + }); + + it('does not set merge confidence value when API is not in use', async () => { + const datasource = NpmDatasource.id; + config.packageRules = [{ matchConfidence: ['high'] }]; + config.currentValue = '3.7.0'; + config.packageName = 'webpack'; + config.datasource = datasource; + hostRules.clear(); // reset merge confidence + initConfig(); + httpMock + .scope('https://registry.npmjs.org') + .get('/webpack') + .reply(200, webpackJson); + + const lookupUpdates = (await lookup.lookupUpdates(config)).updates; + + expect(lookupUpdates).not.toMatchObject([ + { + mergeConfidenceLevel: expect.anything(), + }, + ]); + }); + }); }); }); diff --git a/lib/workers/repository/process/lookup/index.ts b/lib/workers/repository/process/lookup/index.ts index 70c1e0595a6f5c..5b1b0ba7b4d8c5 100644 --- a/lib/workers/repository/process/lookup/index.ts +++ b/lib/workers/repository/process/lookup/index.ts @@ -285,7 +285,7 @@ export async function lookupUpdates( return res; } const newVersion = release.version; - const update = generateUpdate( + const update = await generateUpdate( config, versioning, // TODO #7154