diff --git a/lib/config/index.ts b/lib/config/index.ts index 076ef08bae98f1383670ce28b69642a9af5eaea0..886b0a688842fa2a847f86474b595db12792bc08 100644 --- a/lib/config/index.ts +++ b/lib/config/index.ts @@ -1,7 +1,12 @@ import { logger } from '../logger'; import { get, getLanguageList, getManagerList } from '../modules/manager'; import * as options from './options'; -import type { AllConfig, RenovateConfig, RenovateConfigStage } from './types'; +import type { + AllConfig, + ManagerConfig, + RenovateConfig, + RenovateConfigStage, +} from './types'; import { mergeChildConfig } from './utils'; export { mergeChildConfig }; @@ -9,24 +14,23 @@ export { mergeChildConfig }; export function getManagerConfig( config: RenovateConfig, manager: string -): RenovateConfig { - let managerConfig: RenovateConfig = { +): ManagerConfig { + let managerConfig: ManagerConfig = { ...config, language: null, - manager: null, + manager, }; const language = get(manager, 'language'); if (language) { // TODO: fix types #7154 managerConfig = mergeChildConfig(managerConfig, config[language] as any); + managerConfig.language = language; } // TODO: fix types #7154 managerConfig = mergeChildConfig(managerConfig, config[manager] as any); for (const i of getLanguageList().concat(getManagerList())) { delete managerConfig[i]; } - managerConfig.language = language; - managerConfig.manager = manager; return managerConfig; } diff --git a/lib/config/types.ts b/lib/config/types.ts index 7b97a44377f1e2d8e402436db07dd9136c4c9bac..2c58466bd75976ba71a274e42412963e3b3966a3 100644 --- a/lib/config/types.ts +++ b/lib/config/types.ts @@ -1,5 +1,6 @@ import type { LogLevel } from 'bunyan'; import type { Range } from 'semver'; +import type { ExtractConfig } from '../modules/manager/types'; import type { HostRule } from '../types'; import type { GitNoVerifyOption } from '../util/git/types'; @@ -429,6 +430,17 @@ export interface MigratedRenovateConfig extends RenovateConfig { gradle?: RenovateConfig; } +export interface ManagerConfig extends RenovateConfig { + manager: string; + language?: string | null; +} + +export interface WorkerExtractConfig extends ExtractConfig { + manager: string; + enabled?: boolean; + fileList: string[]; +} + export interface ValidationResult { errors: ValidationMessage[]; warnings: ValidationMessage[]; diff --git a/lib/modules/manager/index.spec.ts b/lib/modules/manager/index.spec.ts index dac8175de31371e207c06a765485627a3867d44b..1c646ff8f237ba99c9cda8938bcec39c50b2b7e6 100644 --- a/lib/modules/manager/index.spec.ts +++ b/lib/modules/manager/index.spec.ts @@ -109,8 +109,12 @@ describe('modules/manager/index', () => { defaultConfig: {}, supportedDatasources: [], }); - expect(manager.extractPackageFile('unknown', null)).toBeNull(); - expect(manager.extractPackageFile('dummy', null)).toBeNull(); + expect( + manager.extractPackageFile('unknown', null, 'filename', {}) + ).toBeNull(); + expect( + manager.extractPackageFile('dummy', null, 'filename', {}) + ).toBeNull(); }); it('returns non-null', () => { @@ -120,7 +124,9 @@ describe('modules/manager/index', () => { extractPackageFile: () => Promise.resolve({ deps: [] }), }); - expect(manager.extractPackageFile('dummy', null)).not.toBeNull(); + expect( + manager.extractPackageFile('dummy', null, 'filename', {}) + ).not.toBeNull(); }); afterEach(() => { diff --git a/lib/modules/manager/index.ts b/lib/modules/manager/index.ts index 08e5eae3560d9d01564ee6bfecf251dd9e00e510..e8ee94bbaf050061dafc3575e325a22cfb0653e1 100644 --- a/lib/modules/manager/index.ts +++ b/lib/modules/manager/index.ts @@ -59,8 +59,8 @@ export async function extractAllPackageFiles( export function extractPackageFile( manager: string, content: string, - fileName?: string, - config?: ExtractConfig + fileName: string, + config: ExtractConfig ): Result<PackageFile | null> { if (!managers.has(manager)) { return null; diff --git a/lib/modules/manager/types.ts b/lib/modules/manager/types.ts index 0a4f314fad4ecaa2a967a0e45b3952d15bf92e9a..6592cd67205dc012e750df1fb3846398d3aa6113 100644 --- a/lib/modules/manager/types.ts +++ b/lib/modules/manager/types.ts @@ -15,10 +15,8 @@ export interface ManagerData<T> { } export interface ExtractConfig { - constraints?: Record<string, string>; registryUrls?: string[]; endpoint?: string; - gradle?: { timeout?: number }; aliases?: Record<string, string>; npmrc?: string; npmrcMerge?: boolean; diff --git a/lib/workers/repository/extract/index.ts b/lib/workers/repository/extract/index.ts index a231d7cfa48aa1541a54e95f50effb03abf3d707..de496dc5dbb4ffb2d7697defe6088b1876de70d2 100644 --- a/lib/workers/repository/extract/index.ts +++ b/lib/workers/repository/extract/index.ts @@ -1,6 +1,10 @@ import is from '@sindresorhus/is'; import { getManagerConfig, mergeChildConfig } from '../../../config'; -import type { RenovateConfig } from '../../../config/types'; +import type { + ManagerConfig, + RenovateConfig, + WorkerExtractConfig, +} from '../../../config/types'; import { logger } from '../../../logger'; import { getManagerList } from '../../../modules/manager'; import type { PackageFile } from '../../../modules/manager/types'; @@ -18,13 +22,13 @@ export async function extractAllDependencies( config.enabledManagers.includes(manager) ); } - const extractList: RenovateConfig[] = []; + const extractList: WorkerExtractConfig[] = []; const fileList = await getFileList(); - const tryConfig = (extractConfig: RenovateConfig): void => { - const matchingFileList = getMatchingFiles(extractConfig, fileList); + const tryConfig = (managerConfig: ManagerConfig): void => { + const matchingFileList = getMatchingFiles(managerConfig, fileList); if (matchingFileList.length) { - extractList.push({ ...extractConfig, fileList: matchingFileList }); + extractList.push({ ...managerConfig, fileList: matchingFileList }); } }; diff --git a/lib/workers/repository/extract/manager-files.spec.ts b/lib/workers/repository/extract/manager-files.spec.ts index 66105a6b84f6cf8d006aaa3ea83ab202bf929ff0..e448bb9c3b411edf90768c3d4cb5950238193049 100644 --- a/lib/workers/repository/extract/manager-files.spec.ts +++ b/lib/workers/repository/extract/manager-files.spec.ts @@ -21,20 +21,24 @@ describe('workers/repository/extract/manager-files', () => { }); it('returns empty of manager is disabled', async () => { - const managerConfig = { manager: 'travis', enabled: false }; + const managerConfig = { manager: 'travis', enabled: false, fileList: [] }; const res = await getManagerPackageFiles(managerConfig); expect(res).toHaveLength(0); }); it('returns empty of manager is not enabled', async () => { config.enabledManagers = ['npm']; - const managerConfig = { manager: 'docker', enabled: true }; + const managerConfig = { manager: 'docker', enabled: true, fileList: [] }; const res = await getManagerPackageFiles(managerConfig); expect(res).toHaveLength(0); }); it('skips files if null content returned', async () => { - const managerConfig = { manager: 'npm', enabled: true }; + const managerConfig = { + manager: 'npm', + fileList: [], + enabled: true, + }; fileMatch.getMatchingFiles.mockReturnValue(['package.json']); const res = await getManagerPackageFiles(managerConfig); expect(res).toHaveLength(0); diff --git a/lib/workers/repository/extract/manager-files.ts b/lib/workers/repository/extract/manager-files.ts index 53025a39f85de9e1e55f672b0a95162217b4fb49..2b6549ba7b96b0bae3f3e8ce8da39589d1d572bf 100644 --- a/lib/workers/repository/extract/manager-files.ts +++ b/lib/workers/repository/extract/manager-files.ts @@ -1,5 +1,5 @@ import is from '@sindresorhus/is'; -import type { RenovateConfig } from '../../../config/types'; +import type { WorkerExtractConfig } from '../../../config/types'; import { logger } from '../../../logger'; import { extractAllPackageFiles, @@ -10,7 +10,7 @@ import type { PackageFile } from '../../../modules/manager/types'; import { readLocalFile } from '../../../util/fs'; export async function getManagerPackageFiles( - config: RenovateConfig + config: WorkerExtractConfig ): Promise<PackageFile[]> { const { enabled, manager, fileList } = config; logger.trace(`getPackageFiles(${manager})`); diff --git a/lib/workers/repository/onboarding/pr/pr-list.spec.ts b/lib/workers/repository/onboarding/pr/pr-list.spec.ts index 2300c3cfae78c5fb58db058f19c63865804ef93d..915990175f5b19cf76fcc43394149c6754c4e359 100644 --- a/lib/workers/repository/onboarding/pr/pr-list.spec.ts +++ b/lib/workers/repository/onboarding/pr/pr-list.spec.ts @@ -29,8 +29,10 @@ describe('workers/repository/onboarding/pr/pr-list', () => { prTitle: 'Lock file maintenance', schedule: ['before 5am'], branchName: 'renovate/lock-file-maintenance', + manager: 'some-manager', upgrades: [ { + manager: 'some-manager', updateType: 'lockFileMaintenance', } as never, ], @@ -62,8 +64,10 @@ describe('workers/repository/onboarding/pr/pr-list', () => { prTitle: 'Pin dependencies', baseBranch: 'some-other', branchName: 'renovate/pin-dependencies', + manager: 'some-manager', upgrades: [ { + manager: 'some-manager', updateType: 'pin', sourceUrl: 'https://a', depName: 'a', @@ -71,6 +75,7 @@ describe('workers/repository/onboarding/pr/pr-list', () => { newValue: '1.1.0', }, { + manager: 'some-manager', updateType: 'pin', depName: 'b', newValue: '1.5.3', @@ -80,8 +85,10 @@ describe('workers/repository/onboarding/pr/pr-list', () => { { prTitle: 'Update a to v2', branchName: 'renovate/a-2.x', + manager: 'some-manager', upgrades: [ { + manager: 'some-manager', sourceUrl: 'https://a', depName: 'a', currentValue: '^1.0.0', diff --git a/lib/workers/repository/process/extract-update.spec.ts b/lib/workers/repository/process/extract-update.spec.ts index a76f3cf003de6c48914c692d564df5447fe4ae15..8483f13d5ad2ffee19597b4d9d5f6efcd597b496 100644 --- a/lib/workers/repository/process/extract-update.spec.ts +++ b/lib/workers/repository/process/extract-update.spec.ts @@ -17,7 +17,9 @@ const branchify = mocked(_branchify); const repositoryCache = mocked(_repositoryCache); branchify.branchifyUpgrades.mockResolvedValueOnce({ - branches: [{ branchName: 'some-branch', upgrades: [] }], + branches: [ + { manager: 'some-manager', branchName: 'some-branch', upgrades: [] }, + ], branchList: ['branchName'], }); @@ -37,6 +39,7 @@ describe('workers/repository/process/extract-update', () => { branches: [ { branchName: 'some-branch', + manager: 'some-manager', upgrades: [], }, ], diff --git a/lib/workers/repository/update/branch/artifacts.spec.ts b/lib/workers/repository/update/branch/artifacts.spec.ts index 17d4103e500d1d5429d21e340555419e0c73db5d..efbff23b668b6c675ad94cff46dae1cf0677f5d5 100644 --- a/lib/workers/repository/update/branch/artifacts.spec.ts +++ b/lib/workers/repository/update/branch/artifacts.spec.ts @@ -12,6 +12,7 @@ describe('workers/repository/update/branch/artifacts', () => { jest.resetAllMocks(); config = { ...getConfig(), + manager: 'some-manager', branchName: 'renovate/pin', upgrades: [], artifactErrors: [{ lockFile: 'some' }], 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 1ff65b234d126bd361501a10128857e656a87160..00a12a45ceb598e7012fb9236a69fdea423cc427 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 @@ -12,6 +12,7 @@ describe('workers/repository/update/branch/execute-post-upgrade-commands', () => it('handles an artifact which is a directory', async () => { const commands: BranchUpgradeConfig[] = [ { + manager: 'some-manager', branchName: 'main', postUpgradeTasks: { executionMode: 'update', @@ -20,6 +21,7 @@ describe('workers/repository/update/branch/execute-post-upgrade-commands', () => }, ]; const config: BranchConfig = { + manager: 'some-manager', updatedPackageFiles: [], updatedArtifacts: [ { type: 'addition', path: 'some-existing-dir', contents: '' }, diff --git a/lib/workers/repository/update/branch/execute-post-upgrade-commands.ts b/lib/workers/repository/update/branch/execute-post-upgrade-commands.ts index 10a3584049d801b8221101b19a60604f7f7e1382..f79916b6a7b157fed7f1062cdecd8f351e94894e 100644 --- a/lib/workers/repository/update/branch/execute-post-upgrade-commands.ts +++ b/lib/workers/repository/update/branch/execute-post-upgrade-commands.ts @@ -169,6 +169,7 @@ export default async function executePostUpgradeCommands( const branchUpgradeCommands: BranchUpgradeConfig[] = [ { + manager: config.manager, depName: config.upgrades.map(({ depName }) => depName).join(' '), branchName: config.branchName, postUpgradeTasks: diff --git a/lib/workers/repository/update/branch/reuse.spec.ts b/lib/workers/repository/update/branch/reuse.spec.ts index ceda5f86b94681a4381576b3bd7b2f947f2115fc..63d540061c16740b6b696d8f5b91912de1568a27 100644 --- a/lib/workers/repository/update/branch/reuse.spec.ts +++ b/lib/workers/repository/update/branch/reuse.spec.ts @@ -18,6 +18,7 @@ describe('workers/repository/update/branch/reuse', () => { beforeEach(() => { config = { + manager: 'some-manager', branchName: 'renovate/some-branch', rebaseLabel: 'rebase', rebaseWhen: 'behind-base-branch', @@ -50,16 +51,19 @@ describe('workers/repository/update/branch/reuse', () => { it('returns false if does not need rebasing but has upgrades that need lockfile maintenance along with upgrades that do not', async () => { config.upgrades = [ { + manager: 'some-manager', packageFile: 'package.json', rangeStrategy: 'replace', branchName: 'current', }, { + manager: 'some-manager', packageFile: 'package.json', rangeStrategy: 'update-lockfile', branchName: 'current', }, { + manager: 'some-manager', packageFile: 'package.json', rangeStrategy: 'in-range-only', branchName: 'current', @@ -75,11 +79,13 @@ describe('workers/repository/update/branch/reuse', () => { it('returns true if does not need rebasing and lockfile update is on different packages', async () => { config.upgrades = [ { + manager: 'some-manager', packageFile: 'package.json', rangeStrategy: 'replace', branchName: 'current', }, { + manager: 'some-manager', packageFile: 'subpackage/package.json', rangeStrategy: 'update-lockfile', branchName: 'current', diff --git a/lib/workers/repository/update/pr/body/changelogs.spec.ts b/lib/workers/repository/update/pr/body/changelogs.spec.ts index cec36e1f7d26d3373c2802027a2f4a6ed5b71493..bfefb10bc4d4c1e65ea11308d05f28058152cb0d 100644 --- a/lib/workers/repository/update/pr/body/changelogs.spec.ts +++ b/lib/workers/repository/update/pr/body/changelogs.spec.ts @@ -12,6 +12,7 @@ describe('workers/repository/update/pr/body/changelogs', () => { it('returns empty string when there is no release notes', () => { const res = getChangelogs({ + manager: 'some-manager', branchName: 'some-branch', upgrades: [], hasReleaseNotes: false, @@ -33,26 +34,31 @@ describe('workers/repository/update/pr/body/changelogs', () => { const res = getChangelogs({ branchName: 'some-branch', + manager: 'some-manager', upgrades: [ { + manager: 'some-manager', depName: 'dep-1', repoName: 'some/repo', branchName: 'some-branch', hasReleaseNotes: true, }, { + manager: 'some-manager', depName: 'dep-2', repoName: 'some/repo', branchName: 'some-branch', hasReleaseNotes: true, }, { + manager: 'some-manager', depName: 'dep-3', repoName: 'some/repo', branchName: 'some-branch', hasReleaseNotes: true, }, { + manager: 'some-manager', depName: 'dep-4', repoName: 'other/repo', branchName: 'some-branch', diff --git a/lib/workers/repository/update/pr/body/config-description.spec.ts b/lib/workers/repository/update/pr/body/config-description.spec.ts index 2d77a24a0a7af892927ed2503959ded187cb7967..0a9b491835d692a99657b066a24ee8fc87018032 100644 --- a/lib/workers/repository/update/pr/body/config-description.spec.ts +++ b/lib/workers/repository/update/pr/body/config-description.spec.ts @@ -10,6 +10,7 @@ const checks = mocked(_checks); describe('workers/repository/update/pr/body/config-description', () => { describe('getPrConfigDescription', () => { const config: BranchConfig = { + manager: 'some-manager', branchName: 'some-branch', upgrades: [], }; diff --git a/lib/workers/repository/update/pr/body/footer.spec.ts b/lib/workers/repository/update/pr/body/footer.spec.ts index e9464491e1a73e8fa73c753a112621b2db6f0dc8..51c1ec24e2e6e899d2987cf2f649a812533be46f 100644 --- a/lib/workers/repository/update/pr/body/footer.spec.ts +++ b/lib/workers/repository/update/pr/body/footer.spec.ts @@ -11,13 +11,24 @@ describe('workers/repository/update/pr/body/footer', () => { }); it('renders empty footer', () => { - expect(getPrFooter({ branchName: 'branch', upgrades: [] })).toBe(''); + expect( + getPrFooter({ + manager: 'some-manager', + branchName: 'branch', + upgrades: [], + }) + ).toBe(''); }); it('renders prFooter', () => { template.compile.mockImplementation((x) => x); expect( - getPrFooter({ branchName: 'branch', upgrades: [], prFooter: 'FOOTER' }) + getPrFooter({ + manager: 'some-manager', + branchName: 'branch', + upgrades: [], + prFooter: 'FOOTER', + }) ).toMatchInlineSnapshot(` " --- diff --git a/lib/workers/repository/update/pr/body/header.spec.ts b/lib/workers/repository/update/pr/body/header.spec.ts index dbdcc2f5690c39ac4bbe53d313389ef2f3ff4c6d..85f43a824ab23b9f1b3a36b6e1eee9a03fcc899c 100644 --- a/lib/workers/repository/update/pr/body/header.spec.ts +++ b/lib/workers/repository/update/pr/body/header.spec.ts @@ -11,13 +11,24 @@ describe('workers/repository/update/pr/body/header', () => { }); it('renders empty header', () => { - expect(getPrHeader({ branchName: 'branch', upgrades: [] })).toBe(''); + expect( + getPrHeader({ + manager: 'some-manager', + branchName: 'branch', + upgrades: [], + }) + ).toBe(''); }); it('renders prHeader', () => { template.compile.mockImplementation((x) => x); expect( - getPrHeader({ branchName: 'branch', upgrades: [], prHeader: 'HEADER' }) + getPrHeader({ + manager: 'some-manager', + branchName: 'branch', + upgrades: [], + prHeader: 'HEADER', + }) ).toMatchInlineSnapshot(` "HEADER diff --git a/lib/workers/repository/update/pr/body/index.spec.ts b/lib/workers/repository/update/pr/body/index.spec.ts index d5ffd31bcfd9b5605ef550e096e4662291d316a7..cfca7adc46a4c665a6eccc44bb4b25dc3ace3be2 100644 --- a/lib/workers/repository/update/pr/body/index.spec.ts +++ b/lib/workers/repository/update/pr/body/index.spec.ts @@ -49,12 +49,17 @@ describe('workers/repository/update/pr/body/index', () => { }); it('handles empty template', async () => { - const res = await getPrBody({ branchName: 'some-branch', upgrades: [] }); + const res = await getPrBody({ + manager: 'some-manager', + branchName: 'some-branch', + upgrades: [], + }); expect(res).toBeEmptyString(); }); it('massages upgrades', async () => { const upgrade = { + manager: 'some-manager', branchName: 'some-branch', dependencyUrl: 'https://github.com/foo/bar', sourceUrl: 'https://github.com/foo/bar.git', @@ -64,7 +69,11 @@ describe('workers/repository/update/pr/body/index', () => { homepage: 'https://example.com', }; - await getPrBody({ branchName: 'some-branch', upgrades: [upgrade] }); + await getPrBody({ + manager: 'some-manager', + branchName: 'some-branch', + upgrades: [upgrade], + }); expect(upgrade).toMatchObject({ branchName: 'some-branch', @@ -83,11 +92,16 @@ describe('workers/repository/update/pr/body/index', () => { it('uses dependencyUrl as primary link', async () => { const upgrade = { + manager: 'some-manager', branchName: 'some-branch', dependencyUrl: 'https://github.com/foo/bar', }; - await getPrBody({ branchName: 'some-branch', upgrades: [upgrade] }); + await getPrBody({ + manager: 'some-manager', + branchName: 'some-branch', + upgrades: [upgrade], + }); expect(upgrade).toMatchObject({ branchName: 'some-branch', @@ -101,6 +115,7 @@ describe('workers/repository/update/pr/body/index', () => { platform.massageMarkdown.mockImplementation((x) => x); template.compile.mockImplementation((x) => x); const res = await getPrBody({ + manager: 'some-manager', branchName: 'some-branch', upgrades: [], prBodyTemplate: 'PR BODY', @@ -113,6 +128,7 @@ describe('workers/repository/update/pr/body/index', () => { template.compile.mockImplementation((x) => x); const res = await getPrBody( { + manager: 'some-manager', branchName: 'some-branch', upgrades: [], prBodyTemplate: ['aaa', '**Rebasing**: FOO', 'bbb'].join('\n'), diff --git a/lib/workers/repository/update/pr/body/notes.spec.ts b/lib/workers/repository/update/pr/body/notes.spec.ts index 0d74852cc40e0fa5833930986c55bd9ce4bde405..47a9f672a547de4501fd76d6bed1d0ea347e19c5 100644 --- a/lib/workers/repository/update/pr/body/notes.spec.ts +++ b/lib/workers/repository/update/pr/body/notes.spec.ts @@ -13,8 +13,15 @@ describe('workers/repository/update/pr/body/notes', () => { it('renders notes', () => { template.compile.mockImplementation((x) => x); const res = getPrNotes({ + manager: 'some-manager', branchName: 'branch', - upgrades: [{ branchName: 'branch', prBodyNotes: ['NOTE'] }], + upgrades: [ + { + manager: 'some-manager', + branchName: 'branch', + prBodyNotes: ['NOTE'], + }, + ], }); expect(res).toContain('NOTE'); }); @@ -24,16 +31,26 @@ describe('workers/repository/update/pr/body/notes', () => { throw new Error('unknown'); }); const res = getPrNotes({ + manager: 'some-manager', branchName: 'branch', - upgrades: [{ branchName: 'branch', prBodyNotes: ['NOTE'] }], + upgrades: [ + { + manager: 'some-manager', + branchName: 'branch', + prBodyNotes: ['NOTE'], + }, + ], }); expect(res).not.toContain('NOTE'); }); it('handles extra notes', () => { const res = getPrExtraNotes({ + manager: 'some-manager', branchName: 'branch', - upgrades: [{ branchName: 'branch', gitRef: true }], + upgrades: [ + { manager: 'some-manager', branchName: 'branch', gitRef: true }, + ], updateType: 'lockFileMaintenance', isPin: true, }); 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 8e6089a98796177d5b31032ec85587c9c9244819..f2ee613cfb5499f48761517ee43412c5d2ceb76e 100644 --- a/lib/workers/repository/update/pr/body/updates-table.spec.ts +++ b/lib/workers/repository/update/pr/body/updates-table.spec.ts @@ -4,6 +4,7 @@ import { getPrUpdatesTable } from './updates-table'; describe('workers/repository/update/pr/body/updates-table', () => { it('checks a case where prBodyColumns are undefined', () => { const configObj: BranchConfig = { + manager: 'some-manager', branchName: 'some-branch', upgrades: [], prBodyColumns: undefined, @@ -14,6 +15,7 @@ describe('workers/repository/update/pr/body/updates-table', () => { it('checks results for getPrUpdatesTable', () => { const upgrade0: BranchUpgradeConfig = { + manager: 'some-manager', branchName: 'some-branch', prBodyDefinitions: { Package: '{{{depNameLinked}}}', @@ -30,6 +32,7 @@ describe('workers/repository/update/pr/body/updates-table', () => { }; const upgrade1: BranchUpgradeConfig = { + manager: 'some-manager', branchName: 'some-branch', prBodyDefinitions: { Package: '{{{depNameLinked}}}', @@ -56,6 +59,7 @@ describe('workers/repository/update/pr/body/updates-table', () => { }; const upgrade2: BranchUpgradeConfig = { + manager: 'some-manager', branchName: 'some-branch', prBodyDefinitions: { Package: '{{{depNameLinked}}}', @@ -83,6 +87,7 @@ describe('workers/repository/update/pr/body/updates-table', () => { }; const upgrade3: BranchUpgradeConfig = undefined; const configObj: BranchConfig = { + manager: 'some-manager', branchName: 'some-branch', upgrades: [upgrade0, upgrade1, upgrade2, upgrade3], prBodyColumns: ['Package', 'Type', 'Update', 'Change', 'Pending'], diff --git a/lib/workers/repository/update/pr/changelog/github.spec.ts b/lib/workers/repository/update/pr/changelog/github.spec.ts index 77074ea4b63cfa76a2b4c7f31d45fcd64ded89e5..0b36cb106f70ea7ad654082a1372bfd595f6e6df 100644 --- a/lib/workers/repository/update/pr/changelog/github.spec.ts +++ b/lib/workers/repository/update/pr/changelog/github.spec.ts @@ -9,6 +9,7 @@ import { ChangeLogError, getChangeLogJSON } from '.'; jest.mock('../../../../../modules/datasource/npm'); const upgrade: BranchUpgradeConfig = { + manager: 'some-manager', branchName: undefined, depName: 'renovate', endpoint: 'https://api.github.com/', @@ -307,6 +308,7 @@ describe('workers/repository/update/pr/changelog/github', () => { ]); const upgradeData: BranchUpgradeConfig = { + manager: 'some-manager', branchName: undefined, depName: 'correctPrefix/target', endpoint: 'https://api.github.com/', diff --git a/lib/workers/repository/update/pr/changelog/gitlab.spec.ts b/lib/workers/repository/update/pr/changelog/gitlab.spec.ts index 556fe39a853c68efd3d7dffd8d67da180d67878f..f8b7e89cde9837d24906f60fcba512032abe17fb 100644 --- a/lib/workers/repository/update/pr/changelog/gitlab.spec.ts +++ b/lib/workers/repository/update/pr/changelog/gitlab.spec.ts @@ -8,6 +8,7 @@ import { getChangeLogJSON } from '.'; jest.mock('../../../../../modules/datasource/npm'); const upgrade: BranchUpgradeConfig = { + manager: 'some-manager', branchName: undefined, endpoint: 'https://gitlab.com/api/v4/ ', depName: 'renovate', diff --git a/lib/workers/repository/update/pr/index.spec.ts b/lib/workers/repository/update/pr/index.spec.ts index eb0d70dcc90219c536352d5b266ad04466f55635..345301637b4f3fc28504b4fed1fcf9f019646d3a 100644 --- a/lib/workers/repository/update/pr/index.spec.ts +++ b/lib/workers/repository/update/pr/index.spec.ts @@ -57,6 +57,7 @@ describe('workers/repository/update/pr/index', () => { }; const config: BranchConfig = { + manager: 'some-manager', branchName: sourceBranch, upgrades: [], prTitle, diff --git a/lib/workers/repository/updates/__snapshots__/generate.spec.ts.snap b/lib/workers/repository/updates/__snapshots__/generate.spec.ts.snap index 51ebb4b08078373295ceba76c308946d3c781ebb..eb890680e9d6bd0e9276d6a08eda3b3e54feb0fd 100644 --- a/lib/workers/repository/updates/__snapshots__/generate.spec.ts.snap +++ b/lib/workers/repository/updates/__snapshots__/generate.spec.ts.snap @@ -20,6 +20,7 @@ Object { "c", "b", ], + "manager": "some-manager", "newValue": "0.6.0", "prBodyColumns": Array [], "prTitle": "some-title", @@ -38,6 +39,7 @@ Object { "a", "c", ], + "manager": "some-manager", "newValue": "0.6.0", "prTitle": "some-title", "prettyDepType": "dependency", @@ -55,6 +57,7 @@ Object { "a", "b", ], + "manager": "some-manager", "newValue": "1.0.0", "prTitle": "some-other-title", "prettyDepType": "dependency", @@ -69,6 +72,7 @@ Object { "labels": Array [ "a", ], + "manager": "some-manager", "newValue": "0.5.7", "prTitle": "some-title", "prettyDepType": "dependency", @@ -95,6 +99,7 @@ Object { "hasTypes": true, "isRange": false, "labels": Array [], + "manager": "some-manager", "newValue": "0.6.0", "prBodyColumns": Array [], "prTitle": "some-title", @@ -113,6 +118,7 @@ Object { "displayPending": "", "displayTo": "0.6.0", "isRange": false, + "manager": "some-manager", "newValue": "0.6.0", "prTitle": "some-title", "prettyDepType": "dependency", @@ -128,6 +134,7 @@ Object { "displayPending": "", "displayTo": "1.0.0", "isRange": false, + "manager": "some-manager", "newValue": "1.0.0", "prTitle": "some-other-title", "prettyDepType": "dependency", @@ -144,6 +151,7 @@ Object { "displayPending": "", "displayTo": "0.5.8", "isRange": false, + "manager": "some-manager", "newValue": "0.5.8", "newVersion": "0.5.8", "prTitle": "some-title", @@ -167,6 +175,7 @@ Object { "displayTo": "", "isLockFileMaintenance": true, "labels": Array [], + "manager": "some-manager", "prBodyColumns": Array [], "prTitle": "some-title", "prettyDepType": "dependency", @@ -180,6 +189,7 @@ Object { "displayPending": "", "displayTo": "", "isLockFileMaintenance": true, + "manager": "some-manager", "prTitle": "some-title", "prettyDepType": "dependency", }, @@ -205,6 +215,7 @@ Object { "isRange": false, "labels": Array [], "lockedVersion": "1.0.0", + "manager": "some-manager", "newValue": "^1.0.0", "newVersion": "1.0.1", "prBodyColumns": Array [], @@ -224,6 +235,7 @@ Object { "isLockfileUpdate": true, "isRange": false, "lockedVersion": "1.0.0", + "manager": "some-manager", "newValue": "^1.0.0", "newVersion": "1.0.1", "prTitle": "some-title", diff --git a/lib/workers/repository/updates/generate.spec.ts b/lib/workers/repository/updates/generate.spec.ts index 5e3417ac5f2dbe5cbfd2f5bc0c5109c35e46c77c..25ded125464fbf6aa4b92d7695446901abab7a88 100644 --- a/lib/workers/repository/updates/generate.spec.ts +++ b/lib/workers/repository/updates/generate.spec.ts @@ -14,6 +14,7 @@ describe('workers/repository/updates/generate', () => { it('does not group single upgrade', () => { const branch = [ { + manager: 'some-manager', depName: 'some-dep', groupName: 'some-group', branchName: 'some-branch', @@ -34,6 +35,7 @@ describe('workers/repository/updates/generate', () => { it('handles lockFileMaintenance', () => { const branch = [ { + manager: 'some-manager', branchName: 'some-branch', prTitle: 'some-title', isLockFileMaintenance: true, @@ -57,6 +59,7 @@ describe('workers/repository/updates/generate', () => { it('handles lockFileUpdate', () => { const branch = [ { + manager: 'some-manager', branchName: 'some-branch', prTitle: 'some-title', isLockfileUpdate: true, @@ -96,6 +99,7 @@ describe('workers/repository/updates/generate', () => { it('does not group same upgrades', () => { const branch = [ { + manager: 'some-manager', depName: 'some-dep', groupName: 'some-group', branchName: 'some-branch', @@ -106,6 +110,7 @@ describe('workers/repository/updates/generate', () => { }, }, { + manager: 'some-manager', depName: 'some-dep', groupName: 'some-group', branchName: 'some-branch', @@ -124,6 +129,7 @@ describe('workers/repository/updates/generate', () => { it('groups multiple upgrades same version', () => { const branch = [ { + manager: 'some-manager', depName: 'some-dep', groupName: 'some-group', branchName: 'some-branch', @@ -143,6 +149,7 @@ describe('workers/repository/updates/generate', () => { }, }, { + manager: 'some-manager', depName: 'some-other-dep', groupName: 'some-group', branchName: 'some-branch', @@ -163,6 +170,7 @@ describe('workers/repository/updates/generate', () => { }, }, { + manager: 'some-manager', depName: 'another-dep', groupName: 'some-group', branchName: 'some-branch', @@ -193,6 +201,7 @@ describe('workers/repository/updates/generate', () => { it('groups major updates with different versions but same newValue, no recreateClosed', () => { const branch = [ { + manager: 'some-manager', depName: 'some-dep', groupName: 'some-group', branchName: 'some-branch', @@ -206,6 +215,7 @@ describe('workers/repository/updates/generate', () => { newMajor: 5, }, { + manager: 'some-manager', depName: 'some-other-dep', groupName: 'some-group', branchName: 'some-branch', @@ -227,6 +237,7 @@ describe('workers/repository/updates/generate', () => { it('groups multiple upgrades different version', () => { const branch = [ { + manager: 'some-manager', depName: 'depB', groupName: 'some-group', branchName: 'some-branch', @@ -242,6 +253,7 @@ describe('workers/repository/updates/generate', () => { releaseTimestamp: '2017-02-07T20:01:41+00:00', }, { + manager: 'some-manager', depName: 'depA', groupName: 'some-group', branchName: 'some-branch', @@ -268,6 +280,7 @@ describe('workers/repository/updates/generate', () => { it('groups multiple upgrades different version but same value', () => { const branch = [ { + manager: 'some-manager', depName: 'depB', groupName: 'some-group', branchName: 'some-branch', @@ -283,6 +296,7 @@ describe('workers/repository/updates/generate', () => { releaseTimestamp: '2017-02-07T20:01:41+00:00', }, { + manager: 'some-manager', depName: 'depA', groupName: 'some-group', branchName: 'some-branch', @@ -309,6 +323,7 @@ describe('workers/repository/updates/generate', () => { it('groups multiple upgrades different value but same version', () => { const branch = [ { + manager: 'some-manager', depName: 'depB', groupName: 'some-group', branchName: 'some-branch', @@ -324,6 +339,7 @@ describe('workers/repository/updates/generate', () => { releaseTimestamp: '2017-02-07T20:01:41+00:00', }, { + manager: 'some-manager', depName: 'depA', groupName: 'some-group', branchName: 'some-branch', @@ -350,6 +366,7 @@ describe('workers/repository/updates/generate', () => { it('groups multiple digest updates', () => { const branch = [ { + manager: 'some-manager', depName: 'foo/bar', groupName: 'foo docker images', branchName: 'some-branch', @@ -365,6 +382,7 @@ describe('workers/repository/updates/generate', () => { }, }, { + manager: 'some-manager', depName: 'foo/baz', groupName: 'foo docker images', branchName: 'some-branch', @@ -404,6 +422,7 @@ describe('workers/repository/updates/generate', () => { it('fixes different messages', () => { const branch = [ { + manager: 'some-manager', depName: 'depA', groupName: 'some-group', branchName: 'some-branch', @@ -419,6 +438,7 @@ describe('workers/repository/updates/generate', () => { releaseTimestamp: '2017-02-07T20:01:41+00:00', }, { + manager: 'some-manager', depName: 'depA', groupName: 'some-group', branchName: 'some-branch', @@ -443,6 +463,7 @@ describe('workers/repository/updates/generate', () => { const branch = [ partial<BranchUpgradeConfig>({ ...defaultConfig, + manager: 'some-manager', depName: 'some-dep', semanticCommits: 'enabled', semanticCommitType: 'chore', @@ -466,6 +487,7 @@ describe('workers/repository/updates/generate', () => { const branch = [ partial<BranchUpgradeConfig>({ ...defaultConfig, + manager: 'some-manager', depName: 'some-dep', packageFile: 'package.json', baseDir: '', @@ -490,6 +512,7 @@ describe('workers/repository/updates/generate', () => { partial<BranchUpgradeConfig>({ ...defaultConfig, commitBodyTable: false, + manager: 'some-manager', depName: 'some-dep', packageFile: 'foo/bar/package.json', parentDir: 'bar', @@ -515,6 +538,7 @@ describe('workers/repository/updates/generate', () => { const branch = [ partial<BranchUpgradeConfig>({ ...defaultConfig, + manager: 'some-manager', depName: 'some-dep', packageFile: 'foo/bar/package.json', packageFileDir: 'foo/bar', @@ -540,6 +564,7 @@ describe('workers/repository/updates/generate', () => { const branch = [ partial<BranchUpgradeConfig>({ ...defaultConfig, + manager: 'some-manager', depName: 'some-dep', commitBody: '[skip-ci]', newValue: '1.2.0', @@ -556,6 +581,7 @@ describe('workers/repository/updates/generate', () => { const branch = [ partial<BranchUpgradeConfig>({ ...defaultConfig, + manager: 'some-manager', depName: 'some-dep', prTitle: 'Upgrade {{depName}}', toLowerCase: true, @@ -568,6 +594,7 @@ describe('workers/repository/updates/generate', () => { it('handles @types specially', () => { const branch: BranchUpgradeConfig[] = [ { + manager: 'some-manager', commitBodyTable: true, datasource: NpmDatasource.id, depName: '@types/some-dep', @@ -583,6 +610,7 @@ describe('workers/repository/updates/generate', () => { { commitBodyTable: true, datasource: NpmDatasource.id, + manager: 'some-manager', depName: 'some-dep', groupName: null, branchName: 'some-branch', @@ -593,6 +621,7 @@ describe('workers/repository/updates/generate', () => { { commitBodyTable: true, datasource: NpmDatasource.id, + manager: 'some-manager', depName: 'some-dep', groupName: null, branchName: 'some-branch', @@ -607,11 +636,13 @@ describe('workers/repository/updates/generate', () => { expect(generateBranchConfig(branch)).toMatchSnapshot({ upgrades: [ { + manager: 'some-manager', depName: 'some-dep', branchName: 'some-branch', newValue: '0.6.0', }, { + manager: 'some-manager', depName: 'some-dep', branchName: 'some-branch', newValue: '1.0.0', @@ -628,6 +659,7 @@ describe('workers/repository/updates/generate', () => { it('handles @types specially (reversed)', () => { const branch: BranchUpgradeConfig[] = [ { + manager: 'some-manager', depName: 'some-dep', groupName: null, branchName: 'some-branch', @@ -639,6 +671,7 @@ describe('workers/repository/updates/generate', () => { { commitBodyTable: true, datasource: NpmDatasource.id, + manager: 'some-manager', depName: 'some-dep', groupName: null, branchName: 'some-branch', @@ -648,6 +681,7 @@ describe('workers/repository/updates/generate', () => { group: {}, }, { + manager: 'some-manager', depName: '@types/some-dep', groupName: null, branchName: 'some-branch', @@ -660,12 +694,14 @@ describe('workers/repository/updates/generate', () => { expect(generateBranchConfig(branch)).toMatchSnapshot({ upgrades: [ { + manager: 'some-manager', depName: 'some-dep', branchName: 'some-branch', newValue: '0.6.0', labels: ['a', 'c'], }, { + manager: 'some-manager', depName: 'some-dep', branchName: 'some-branch', newValue: '1.0.0', @@ -684,6 +720,7 @@ describe('workers/repository/updates/generate', () => { it('handles upgrades', () => { const branch: BranchUpgradeConfig[] = [ { + manager: 'some-manager', depName: 'some-dep', branchName: 'some-branch', prTitle: 'some-title', @@ -693,6 +730,7 @@ describe('workers/repository/updates/generate', () => { }, { ...defaultConfig, + manager: 'some-manager', depName: 'some-dep', branchName: 'some-branch', prTitle: 'some-title', @@ -704,6 +742,7 @@ describe('workers/repository/updates/generate', () => { }, { ...defaultConfig, + manager: 'some-manager', depName: 'some-dep', branchName: 'some-branch', prTitle: 'some-title', @@ -715,6 +754,7 @@ describe('workers/repository/updates/generate', () => { }, { ...defaultConfig, + manager: 'some-manager', depName: 'some-dep', branchName: 'some-branch', prTitle: 'some-title', @@ -733,10 +773,12 @@ describe('workers/repository/updates/generate', () => { it('combines prBodyColumns', () => { const branch: BranchUpgradeConfig[] = [ { + manager: 'some-manager', branchName: 'some-branch', prBodyColumns: ['column-a', 'column-b'], }, { + manager: 'some-manager', branchName: 'some-branch', prBodyColumns: ['column-c', 'column-b', 'column-a'], }, @@ -748,6 +790,7 @@ describe('workers/repository/updates/generate', () => { it('sorts upgrades, without position first', () => { const branch: BranchUpgradeConfig[] = [ { + manager: 'some-manager', depName: 'some-dep1', branchName: 'some-branch', prTitle: 'some-title', @@ -755,6 +798,7 @@ describe('workers/repository/updates/generate', () => { fileReplacePosition: 1, }, { + manager: 'some-manager', depName: 'some-dep2', branchName: 'some-branch', prTitle: 'some-title', @@ -762,6 +806,7 @@ describe('workers/repository/updates/generate', () => { fileReplacePosition: undefined, }, { + manager: 'some-manager', depName: 'some-dep3', branchName: 'some-branch', prTitle: 'some-title', @@ -769,6 +814,7 @@ describe('workers/repository/updates/generate', () => { fileReplacePosition: 4, }, { + manager: 'some-manager', depName: 'some-dep4', branchName: 'some-branch', prTitle: 'some-title', @@ -785,6 +831,7 @@ describe('workers/repository/updates/generate', () => { it('passes through pendingChecks', () => { const branch = [ { + manager: 'some-manager', depName: 'some-dep', groupName: 'some-group', branchName: 'some-branch', @@ -792,6 +839,7 @@ describe('workers/repository/updates/generate', () => { pendingChecks: true, }, { + manager: 'some-manager', depName: 'some-dep', groupName: 'some-group', branchName: 'some-branch', @@ -807,6 +855,7 @@ describe('workers/repository/updates/generate', () => { it('filters pendingChecks', () => { const branch = [ { + manager: 'some-manager', depName: 'some-dep', groupName: 'some-group', branchName: 'some-branch', @@ -814,6 +863,7 @@ describe('workers/repository/updates/generate', () => { pendingChecks: true, }, { + manager: 'some-manager', depName: 'some-dep', groupName: 'some-group', branchName: 'some-branch', @@ -828,12 +878,14 @@ describe('workers/repository/updates/generate', () => { it('displays pending versions', () => { const branch = [ { + manager: 'some-manager', depName: 'some-dep', groupName: 'some-group', branchName: 'some-branch', prTitle: 'No pending version', }, { + manager: 'some-manager', depName: 'some-dep', groupName: 'some-group', branchName: 'some-branch', @@ -841,6 +893,7 @@ describe('workers/repository/updates/generate', () => { pendingVersions: ['1.1.0'], }, { + manager: 'some-manager', depName: 'some-dep', groupName: 'some-group', branchName: 'some-branch', diff --git a/lib/workers/types.ts b/lib/workers/types.ts index 787c1b6222ac4703548fa0e52d2bd94193e27066..f7df16edb0dace43d607dc8fc0c9d58672c3487d 100644 --- a/lib/workers/types.ts +++ b/lib/workers/types.ts @@ -45,7 +45,7 @@ export interface BranchUpgradeConfig groupName?: string; groupSlug?: string; language?: string; - manager?: string; + manager: string; packageFile?: string; lockFile?: string; lockFiles?: string[];