From b4af382672acc634de9dc9c8679150e700cb9f7b Mon Sep 17 00:00:00 2001 From: Tonye Jack Date: Wed, 17 Apr 2024 08:00:54 -0600 Subject: [PATCH] feat: add option to exclude submodules when detecting changes --- src/changedFiles.ts | 12 ++++++------ src/commitSha.ts | 16 ++++++++-------- src/main.ts | 18 +++++++++--------- src/utils.ts | 6 +++--- 4 files changed, 26 insertions(+), 26 deletions(-) diff --git a/src/changedFiles.ts b/src/changedFiles.ts index 12f07deb625..0635d9575ea 100644 --- a/src/changedFiles.ts +++ b/src/changedFiles.ts @@ -121,13 +121,13 @@ export const processChangedFiles = async ({ export const getRenamedFiles = async ({ inputs, workingDirectory, - hasSubmodule, + diffSubmodule, diffResult, submodulePaths }: { inputs: Inputs workingDirectory: string - hasSubmodule: boolean + diffSubmodule: boolean diffResult: DiffResult submodulePaths: string[] }): Promise<{paths: string; count: string}> => { @@ -139,7 +139,7 @@ export const getRenamedFiles = async ({ oldNewSeparator: inputs.oldNewSeparator }) - if (hasSubmodule) { + if (diffSubmodule) { for (const submodulePath of submodulePaths) { const submoduleShaResult = await gitSubmoduleDiffSHA({ cwd: workingDirectory, @@ -217,7 +217,7 @@ export type ChangedFiles = { export const getAllDiffFiles = async ({ workingDirectory, - hasSubmodule, + diffSubmodule, diffResult, submodulePaths, outputRenamedFilesAsDeletedAndAdded, @@ -226,7 +226,7 @@ export const getAllDiffFiles = async ({ failOnSubmoduleDiffError }: { workingDirectory: string - hasSubmodule: boolean + diffSubmodule: boolean diffResult: DiffResult submodulePaths: string[] outputRenamedFilesAsDeletedAndAdded: boolean @@ -243,7 +243,7 @@ export const getAllDiffFiles = async ({ failOnInitialDiffError }) - if (hasSubmodule) { + if (diffSubmodule) { for (const submodulePath of submodulePaths) { const submoduleShaResult = await gitSubmoduleDiffSHA({ cwd: workingDirectory, diff --git a/src/commitSha.ts b/src/commitSha.ts index e3e23c2ca2b..fd9dd98bba7 100644 --- a/src/commitSha.ts +++ b/src/commitSha.ts @@ -91,7 +91,7 @@ interface SHAForNonPullRequestEvent { env: Env workingDirectory: string isShallow: boolean - hasSubmodule: boolean + diffSubmodule: boolean gitFetchExtraArgs: string[] isTag: boolean remoteName: string @@ -102,7 +102,7 @@ export const getSHAForNonPullRequestEvent = async ({ env, workingDirectory, isShallow, - hasSubmodule, + diffSubmodule, gitFetchExtraArgs, isTag, remoteName @@ -152,7 +152,7 @@ export const getSHAForNonPullRequestEvent = async ({ }) } - if (hasSubmodule) { + if (diffSubmodule) { await gitFetchSubmodules({ cwd: workingDirectory, args: [ @@ -164,7 +164,7 @@ export const getSHAForNonPullRequestEvent = async ({ }) } } else { - if (hasSubmodule && inputs.fetchAdditionalSubmoduleHistory) { + if (diffSubmodule && inputs.fetchAdditionalSubmoduleHistory) { await gitFetchSubmodules({ cwd: workingDirectory, args: [ @@ -323,7 +323,7 @@ interface SHAForPullRequestEvent { inputs: Inputs workingDirectory: string isShallow: boolean - hasSubmodule: boolean + diffSubmodule: boolean gitFetchExtraArgs: string[] remoteName: string } @@ -332,7 +332,7 @@ export const getSHAForPullRequestEvent = async ({ inputs, workingDirectory, isShallow, - hasSubmodule, + diffSubmodule, gitFetchExtraArgs, remoteName }: SHAForPullRequestEvent): Promise => { @@ -390,7 +390,7 @@ export const getSHAForPullRequestEvent = async ({ ] }) - if (hasSubmodule) { + if (diffSubmodule) { await gitFetchSubmodules({ cwd: workingDirectory, args: [ @@ -403,7 +403,7 @@ export const getSHAForPullRequestEvent = async ({ } } } else { - if (hasSubmodule && inputs.fetchAdditionalSubmoduleHistory) { + if (diffSubmodule && inputs.fetchAdditionalSubmoduleHistory) { await gitFetchSubmodules({ cwd: workingDirectory, args: [ diff --git a/src/main.ts b/src/main.ts index 9e00353bdd4..d2f4148e750 100644 --- a/src/main.ts +++ b/src/main.ts @@ -64,16 +64,16 @@ const getChangedFilesFromLocalGitHistory = async ({ } const isShallow = await isRepoShallow({cwd: workingDirectory}) - let hasSubmodule = false + let diffSubmodule = false let gitFetchExtraArgs = ['--no-tags', '--prune'] if (inputs.excludeSubmodules) { core.info('Excluding submodules from the diff') } else { - hasSubmodule = await submoduleExists({cwd: workingDirectory}) + diffSubmodule = await submoduleExists({cwd: workingDirectory}) } - if (hasSubmodule) { + if (diffSubmodule) { gitFetchExtraArgs.push('--recurse-submodules') } @@ -83,7 +83,7 @@ const getChangedFilesFromLocalGitHistory = async ({ inputs.outputRenamedFilesAsDeletedAndAdded let submodulePaths: string[] = [] - if (hasSubmodule) { + if (diffSubmodule) { submodulePaths = await getSubmodulePath({cwd: workingDirectory}) } @@ -100,7 +100,7 @@ const getChangedFilesFromLocalGitHistory = async ({ env, workingDirectory, isShallow, - hasSubmodule, + diffSubmodule, gitFetchExtraArgs, isTag, remoteName @@ -115,7 +115,7 @@ const getChangedFilesFromLocalGitHistory = async ({ inputs, workingDirectory, isShallow, - hasSubmodule, + diffSubmodule, gitFetchExtraArgs, remoteName }) @@ -133,7 +133,7 @@ const getChangedFilesFromLocalGitHistory = async ({ const allDiffFiles = await getAllDiffFiles({ workingDirectory, - hasSubmodule, + diffSubmodule, diffResult, submodulePaths, outputRenamedFilesAsDeletedAndAdded, @@ -159,7 +159,7 @@ const getChangedFilesFromLocalGitHistory = async ({ deletedFiles: allDiffFiles[ChangeTypeEnum.Deleted], recoverPatterns, diffResult, - hasSubmodule, + diffSubmodule, submodulePaths }) } @@ -177,7 +177,7 @@ const getChangedFilesFromLocalGitHistory = async ({ const allOldNewRenamedFiles = await getRenamedFiles({ inputs, workingDirectory, - hasSubmodule, + diffSubmodule, diffResult, submodulePaths }) diff --git a/src/utils.ts b/src/utils.ts index a73efaf17e3..0349954af10 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -1413,7 +1413,7 @@ export const recoverDeletedFiles = async ({ deletedFiles, recoverPatterns, diffResult, - hasSubmodule, + diffSubmodule, submodulePaths }: { inputs: Inputs @@ -1421,7 +1421,7 @@ export const recoverDeletedFiles = async ({ deletedFiles: string[] recoverPatterns: string[] diffResult: DiffResult - hasSubmodule: boolean + diffSubmodule: boolean submodulePaths: string[] }): Promise => { let recoverableDeletedFiles = deletedFiles @@ -1451,7 +1451,7 @@ export const recoverDeletedFiles = async ({ const submodulePath = submodulePaths.find(p => deletedFile.startsWith(p)) - if (hasSubmodule && submodulePath) { + if (diffSubmodule && submodulePath) { const submoduleShaResult = await gitSubmoduleDiffSHA({ cwd: workingDirectory, parentSha1: diffResult.previousSha,