feat: add support for specifying the max number for retries to fetch missing history (#2052)

Co-authored-by: GitHub Action <action@github.com>
This commit is contained in:
Tonye Jack
2024-04-18 12:45:07 -06:00
committed by GitHub
parent 5bd333239b
commit 07c64e5618
8 changed files with 36 additions and 6 deletions

View File

@@ -15,6 +15,7 @@ exports[`getInputs should correctly parse boolean inputs 1`] = `
"failOnInitialDiffError": "false",
"failOnSubmoduleDiffError": "false",
"fetchAdditionalSubmoduleHistory": "false",
"fetchMissingHistoryMaxRetries": 10,
"files": "",
"filesFromSourceFile": "",
"filesFromSourceFileSeparator": "",
@@ -308,6 +309,7 @@ exports[`getInputs should return default values when no inputs are provided 1`]
"failOnInitialDiffError": false,
"failOnSubmoduleDiffError": false,
"fetchAdditionalSubmoduleHistory": false,
"fetchMissingHistoryMaxRetries": 10,
"files": "",
"filesFromSourceFile": "",
"filesFromSourceFileSeparator": "",

View File

@@ -636,7 +636,8 @@ describe('utils test', () => {
failOnSubmoduleDiffError: false,
negationPatternsFirst: false,
useRestApi: false,
excludeSubmodules: false
excludeSubmodules: false,
fetchMissingHistoryMaxRetries: 10
}
const coreWarningSpy = jest.spyOn(core, 'warning')

View File

@@ -528,7 +528,11 @@ export const getSHAForPullRequestEvent = async ({
'Merge base is not in the local history, fetching remote target branch...'
)
for (let i = 1; i <= 10; i++) {
for (
let i = 1;
i <= (inputs.fetchMissingHistoryMaxRetries || 10);
i++
) {
await gitFetch({
cwd: workingDirectory,
args: [

View File

@@ -21,5 +21,6 @@ export const DEFAULT_VALUES_OF_UNSUPPORTED_API_INPUTS: Partial<Inputs> = {
skipInitialFetch: false,
fetchAdditionalSubmoduleHistory: false,
dirNamesDeletedFilesIncludeOnlyDeletedDirs: false,
excludeSubmodules: false
excludeSubmodules: false,
fetchMissingHistoryMaxRetries: 10
}

View File

@@ -55,6 +55,7 @@ export type Inputs = {
negationPatternsFirst: boolean
useRestApi: boolean
excludeSubmodules: boolean
fetchMissingHistoryMaxRetries?: number
}
export const getInputs = (): Inputs => {
@@ -245,6 +246,11 @@ export const getInputs = (): Inputs => {
required: false
})
const fetchMissingHistoryMaxRetries = core.getInput(
'fetch_missing_history_max_retries',
{required: false}
)
const inputs: Inputs = {
files,
filesSeparator,
@@ -311,5 +317,12 @@ export const getInputs = (): Inputs => {
inputs.dirNamesMaxDepth = parseInt(dirNamesMaxDepth, 10)
}
if (fetchMissingHistoryMaxRetries) {
inputs.fetchMissingHistoryMaxRetries = parseInt(
fetchMissingHistoryMaxRetries,
10
)
}
return inputs
}