From 0a47657451014ad097ad04f26d27d2e63cacfe4e Mon Sep 17 00:00:00 2001 From: Philip <42116482+PhilipAbed@users.noreply.github.com> Date: Fri, 25 Aug 2023 11:22:14 +0300 Subject: [PATCH] feat: Enhance lookup logs with repository problems (#23896) Co-authored-by: Michael Kriese <michael.kriese@visualon.de> --- lib/util/cache/repository/index.spec.ts | 19 +++++++++++++++++- lib/workers/repository/common.ts | 17 ++++++++++++++++ .../repository/dependency-dashboard.ts | 20 +++---------------- lib/workers/repository/index.ts | 14 ++++++++++++- 4 files changed, 51 insertions(+), 19 deletions(-) create mode 100644 lib/workers/repository/common.ts diff --git a/lib/util/cache/repository/index.spec.ts b/lib/util/cache/repository/index.spec.ts index e5c28fba13..87d27fa7df 100644 --- a/lib/util/cache/repository/index.spec.ts +++ b/lib/util/cache/repository/index.spec.ts @@ -1,5 +1,6 @@ -import { mocked } from '../../../../test/util'; +import { logger, mocked } from '../../../../test/util'; import { GlobalConfig } from '../../../config/global'; +import { printRepositoryProblems } from '../../../workers/repository'; import * as _fs from '../../fs'; import { initRepoCache } from './init'; import type { RepoCacheConfig } from './types'; @@ -55,4 +56,20 @@ describe('util/cache/repository/index', () => { expect(getCache()).toBeEmpty(); expect(isCacheModified()).toBeUndefined(); }); + + it('prints repository problems', () => { + logger.getProblems.mockReturnValueOnce([ + { + repository: 'some/repo', + level: 30, + msg: 'Problem 1', + artifactErrors: false, + }, + { repository: 'some/repo', level: 30, msg: 'Problem 2' }, + ]); + + printRepositoryProblems(config); + + expect(logger.logger.debug).toHaveBeenCalled(); + }); }); diff --git a/lib/workers/repository/common.ts b/lib/workers/repository/common.ts new file mode 100644 index 0000000000..1ffb80b134 --- /dev/null +++ b/lib/workers/repository/common.ts @@ -0,0 +1,17 @@ +import { nameFromLevel } from 'bunyan'; +import type { RenovateConfig } from '../../config/types'; +import { getProblems } from '../../logger'; + +export function extractRepoProblems(config: RenovateConfig): Set<string> { + return new Set( + getProblems() + .filter( + (problem) => + problem.repository === config.repository && !problem.artifactErrors + ) + .map( + (problem) => + `${nameFromLevel[problem.level].toUpperCase()}: ${problem.msg}` + ) + ); +} diff --git a/lib/workers/repository/dependency-dashboard.ts b/lib/workers/repository/dependency-dashboard.ts index 04cab4eeab..ce41873227 100644 --- a/lib/workers/repository/dependency-dashboard.ts +++ b/lib/workers/repository/dependency-dashboard.ts @@ -1,14 +1,14 @@ import is from '@sindresorhus/is'; -import { nameFromLevel } from 'bunyan'; import { GlobalConfig } from '../../config/global'; import type { RenovateConfig } from '../../config/types'; -import { getProblems, logger } from '../../logger'; +import { logger } from '../../logger'; import type { PackageFile } from '../../modules/manager/types'; import { platform } from '../../modules/platform'; import { GitHubMaxPrBodyLen } from '../../modules/platform/github'; import { regEx } from '../../util/regex'; import * as template from '../../util/template'; import type { BranchConfig, SelectAllConfig } from '../types'; +import { extractRepoProblems } from './common'; import { getDepWarningsDashboard } from './errors-warnings'; import { PackageFiles } from './package-files'; import type { Vulnerability } from './process/types'; @@ -157,22 +157,8 @@ function getListItem(branch: BranchConfig, type: string): string { function appendRepoProblems(config: RenovateConfig, issueBody: string): string { let newIssueBody = issueBody; - const repoProblems = new Set( - getProblems() - .filter( - (problem) => - problem.repository === config.repository && !problem.artifactErrors - ) - .map( - (problem) => - `${nameFromLevel[problem.level].toUpperCase()}: ${problem.msg}` - ) - ); + const repoProblems = extractRepoProblems(config); if (repoProblems.size) { - logger.debug( - { repoProblems: Array.from(repoProblems) }, - 'repository problems' - ); newIssueBody += '## Repository problems\n\n'; const repoProblemsHeader = config.customizeDashboard?.['repoProblemsHeader'] ?? diff --git a/lib/workers/repository/index.ts b/lib/workers/repository/index.ts index 43dacba198..309d79ec84 100644 --- a/lib/workers/repository/index.ts +++ b/lib/workers/repository/index.ts @@ -19,6 +19,7 @@ import * as queue from '../../util/http/queue'; import * as throttle from '../../util/http/throttle'; import { addSplit, getSplits, splitInit } from '../../util/split'; import { setBranchCache } from './cache'; +import { extractRepoProblems } from './common'; import { ensureDependencyDashboard } from './dependency-dashboard'; import handleError from './error'; import { finalizeRepo } from './finalize'; @@ -63,6 +64,7 @@ export async function renovateRepository( if (config.semanticCommits === 'auto') { config.semanticCommits = await detectSemanticCommits(); } + if ( GlobalConfig.get('dryRun') !== 'lookup' && GlobalConfig.get('dryRun') !== 'extract' @@ -71,7 +73,6 @@ export async function renovateRepository( ensureOnboardingPr(config, packageFiles, branches) ); addSplit('onboarding'); - const res = await instrument('update', () => updateRepo(config, branches) ); @@ -94,6 +95,7 @@ export async function renovateRepository( // TODO #22198 repoResult = processResult(config, res!); } + printRepositoryProblems(config); } catch (err) /* istanbul ignore next */ { setMeta({ repository: config.repository }); const errorRes = await handleError(config, err); @@ -138,3 +140,13 @@ function emptyExtract(config: RenovateConfig): ExtractResult { packageFiles: {}, }; } + +export function printRepositoryProblems(config: RenovateConfig): void { + const repoProblems = extractRepoProblems(config); + if (repoProblems.size) { + logger.debug( + { repoProblems: Array.from(repoProblems) }, + 'repository problems' + ); + } +} -- GitLab