diff --git a/lib/workers/repository/finalise/repository-statistics.ts b/lib/workers/repository/finalise/repository-statistics.ts index f69225f5dbc3c2..6ba4840dff3a56 100644 --- a/lib/workers/repository/finalise/repository-statistics.ts +++ b/lib/workers/repository/finalise/repository-statistics.ts @@ -46,6 +46,8 @@ function branchCacheToMetadata({ baseBranchSha, branchName, isModified, + isConflicted, + isBehindBase, pristine: isPristine, sha: branchSha, }: BranchCache): BranchMetadata { @@ -57,6 +59,8 @@ function branchCacheToMetadata({ branchSha, isModified, isPristine, + isConflicted, + isBehindBase, }; } diff --git a/lib/workers/repository/index.ts b/lib/workers/repository/index.ts index 5352b8123ed482..82079e1178a503 100644 --- a/lib/workers/repository/index.ts +++ b/lib/workers/repository/index.ts @@ -14,6 +14,7 @@ import * as queue from '../../util/http/queue'; import * as throttle from '../../util/http/throttle'; import * as schemaUtil from '../../util/schema'; import { addSplit, getSplits, splitInit } from '../../util/split'; +import type { BranchConfig } from '../types'; import { setBranchCache } from './cache'; import { ensureDependencyDashboard } from './dependency-dashboard'; import handleError from './error'; @@ -73,6 +74,15 @@ export async function renovateRepository( setMeta({ repository: config.repository }); addSplit('update'); if (performExtract) { + if (!config.repoIsOnboarded) { + branches.push({ + branchName: config.onboardingBranch!, + baseBranch: config.defaultBranch!, + automerge: false, + upgrades: [], + manager: '' as never, // onboarding branch won't have this field + } satisfies BranchConfig); + } await setBranchCache(branches); // update branch cache if performed extraction } if (res === 'automerged') { diff --git a/lib/workers/repository/onboarding/branch/index.ts b/lib/workers/repository/onboarding/branch/index.ts index 2add4def7375e7..d05ab98ca6f1d9 100644 --- a/lib/workers/repository/onboarding/branch/index.ts +++ b/lib/workers/repository/onboarding/branch/index.ts @@ -9,8 +9,10 @@ import { import { logger } from '../../../../logger'; import { Pr, platform } from '../../../../modules/platform'; import { checkoutBranch, setGitAuthor } from '../../../../util/git'; +import { setBranchNewCommit } from '../../../../util/git/set-branch-commit'; import { extractAllDependencies } from '../../extract'; import { mergeRenovateConfig } from '../../init/merge'; +import { syncBranchState } from '../../process/write'; import { OnboardingState } from '../common'; import { getOnboardingPr, isOnboarded } from './check'; import { getOnboardingConfig } from './config'; @@ -28,6 +30,7 @@ export async function checkOnboardingBranch( logger.debug('Repo is onboarded'); return { ...config, repoIsOnboarded }; } + await syncBranchState(config.onboardingBranch!, config.baseBranch!); if (config.isFork && config.forkProcessing !== 'enabled') { throw new Error(REPOSITORY_FORKED); } @@ -47,6 +50,7 @@ export async function checkOnboardingBranch( { branch: config.onboardingBranch, commit, onboarding: true }, 'Branch updated' ); + setBranchNewCommit(config.onboardingBranch!, config.baseBranch!, commit); } // istanbul ignore if if (platform.refreshPr) { @@ -78,6 +82,7 @@ export async function checkOnboardingBranch( { branch: onboardingBranch, commit, onboarding: true }, 'Branch created' ); + setBranchNewCommit(config.onboardingBranch!, config.baseBranch!, commit); } } if (!GlobalConfig.get('dryRun')) { diff --git a/lib/workers/types.ts b/lib/workers/types.ts index 7b53bcddb2747c..65b4c2c6e1753b 100644 --- a/lib/workers/types.ts +++ b/lib/workers/types.ts @@ -136,6 +136,8 @@ export interface BranchMetadata { automerge: boolean; isModified?: boolean; isPristine?: boolean; + isConflicted?: boolean; + isBehindBase?: boolean; } export interface BaseBranchMetadata {