From 59ea152087c22ef657b5321ede9235a652e5ee3f Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Tue, 2 Jun 2020 17:45:24 +0200 Subject: [PATCH] fix: force commit if requested or conflicted (#6411) --- lib/platform/common.ts | 1 + lib/platform/git/storage.ts | 3 ++- lib/workers/branch/__snapshots__/commit.spec.ts.snap | 1 + lib/workers/branch/commit.ts | 1 + lib/workers/branch/index.ts | 3 ++- lib/workers/common.ts | 2 ++ 6 files changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/platform/common.ts b/lib/platform/common.ts index 79049df5fe..1238279907 100644 --- a/lib/platform/common.ts +++ b/lib/platform/common.ts @@ -27,6 +27,7 @@ export type CommitFilesConfig = { branchName: string; files: File[]; message: string; + force?: boolean; }; export interface GotApiOptions { diff --git a/lib/platform/git/storage.ts b/lib/platform/git/storage.ts index ffde548203..ff14d4c2cf 100644 --- a/lib/platform/git/storage.ts +++ b/lib/platform/git/storage.ts @@ -480,6 +480,7 @@ export class Storage { branchName, files, message, + force = false, }: CommitFilesConfig): Promise<string | null> { logger.debug(`Committing files to branch ${branchName}`); if (!this._privateKeySet) { @@ -534,7 +535,7 @@ export class Storage { } const commitRes = await this._git.commit(message); const commit = commitRes?.commit || 'unknown'; - if (!(await this.hasDiff(`origin/${branchName}`))) { + if (!force && !(await this.hasDiff(`origin/${branchName}`))) { logger.debug( { branchName, fileNames }, 'No file changes detected. Skipping commit' diff --git a/lib/workers/branch/__snapshots__/commit.spec.ts.snap b/lib/workers/branch/__snapshots__/commit.spec.ts.snap index 7f4762af4e..d67db0c47a 100644 --- a/lib/workers/branch/__snapshots__/commit.spec.ts.snap +++ b/lib/workers/branch/__snapshots__/commit.spec.ts.snap @@ -11,6 +11,7 @@ Array [ "name": "package.json", }, ], + "force": false, "message": "some commit message", }, ], diff --git a/lib/workers/branch/commit.ts b/lib/workers/branch/commit.ts index 13f06692a7..68bf07eb21 100644 --- a/lib/workers/branch/commit.ts +++ b/lib/workers/branch/commit.ts @@ -37,5 +37,6 @@ export async function commitFilesToBranch( branchName: config.branchName, files: updatedFiles, message: config.commitMessage, + force: !!config.forceCommit, }); } diff --git a/lib/workers/branch/index.ts b/lib/workers/branch/index.ts index b31ca149a2..08ce465488 100644 --- a/lib/workers/branch/index.ts +++ b/lib/workers/branch/index.ts @@ -441,7 +441,8 @@ export async function processBranch( logger.debug('PR has no releaseTimestamp'); } } - + config.forceCommit = + !!masterIssueCheck || config.rebaseRequested || branchPr?.isConflicted; const commitHash = await commitFilesToBranch(config); if (!commitHash && !branchExists) { return 'no-work'; diff --git a/lib/workers/common.ts b/lib/workers/common.ts index b38db03d9c..4e16fc67a6 100644 --- a/lib/workers/common.ts +++ b/lib/workers/common.ts @@ -99,6 +99,8 @@ export interface BranchConfig hasTypes?: boolean; masterIssueChecks?: Record<string, string>; releaseTimestamp?: string; + forceCommit?: boolean; + rebaseRequested?: boolean; res?: ProcessBranchResult; upgrades: BranchUpgradeConfig[]; -- GitLab