diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/git-command-manager.ts | 9 | ||||
| -rw-r--r-- | src/git-source-provider.ts | 7 | ||||
| -rw-r--r-- | src/git-source-settings.ts | 5 | ||||
| -rw-r--r-- | src/input-helper.ts | 5 |
4 files changed, 21 insertions, 5 deletions
diff --git a/src/git-command-manager.ts b/src/git-command-manager.ts index e684dba..6ab807b 100644 --- a/src/git-command-manager.ts +++ b/src/git-command-manager.ts @@ -33,6 +33,7 @@ export interface IGitCommandManager { options: { filter?: string fetchDepth?: number + fetchTags?: boolean } ): Promise<void> getDefaultBranch(repositoryUrl: string): Promise<string> @@ -240,10 +241,10 @@ class GitCommandManager { async fetch( refSpec: string[], - options: {filter?: string; fetchDepth?: number} + options: {filter?: string; fetchDepth?: number; fetchTags?: boolean} ): Promise<void> { const args = ['-c', 'protocol.version=2', 'fetch'] - if (!refSpec.some(x => x === refHelper.tagsRefSpec)) { + if (!refSpec.some(x => x === refHelper.tagsRefSpec) && !options.fetchTags) { args.push('--no-tags') } @@ -333,8 +334,8 @@ class GitCommandManager { } async log1(format?: string): Promise<string> { - var args = format ? ['log', '-1', format] : ['log', '-1'] - var silent = format ? false : true + const args = format ? ['log', '-1', format] : ['log', '-1'] + const silent = format ? false : true const output = await this.execGit(args, false, silent) return output.stdout } diff --git a/src/git-source-provider.ts b/src/git-source-provider.ts index 8f9d63f..042563e 100644 --- a/src/git-source-provider.ts +++ b/src/git-source-provider.ts @@ -153,7 +153,11 @@ export async function getSource(settings: IGitSourceSettings): Promise<void> { // Fetch core.startGroup('Fetching the repository') - const fetchOptions: {filter?: string; fetchDepth?: number} = {} + const fetchOptions: { + filter?: string + fetchDepth?: number + fetchTags?: boolean + } = {} if (settings.sparseCheckout) fetchOptions.filter = 'blob:none' if (settings.fetchDepth <= 0) { // Fetch all branches and tags @@ -171,6 +175,7 @@ export async function getSource(settings: IGitSourceSettings): Promise<void> { } } else { fetchOptions.fetchDepth = settings.fetchDepth + fetchOptions.fetchTags = settings.fetchTags const refSpec = refHelper.getRefSpec(settings.ref, settings.commit) await git.fetch(refSpec, fetchOptions) } diff --git a/src/git-source-settings.ts b/src/git-source-settings.ts index 3272e63..9875d8d 100644 --- a/src/git-source-settings.ts +++ b/src/git-source-settings.ts @@ -45,6 +45,11 @@ export interface IGitSourceSettings { fetchDepth: number /** + * Fetch tags, even if fetchDepth > 0 (default: false) + */ + fetchTags: boolean + + /** * Indicates whether to fetch LFS objects */ lfs: boolean diff --git a/src/input-helper.ts b/src/input-helper.ts index 410e480..631fbdb 100644 --- a/src/input-helper.ts +++ b/src/input-helper.ts @@ -100,6 +100,11 @@ export async function getInputs(): Promise<IGitSourceSettings> { } core.debug(`fetch depth = ${result.fetchDepth}`) + // Fetch tags + result.fetchTags = + (core.getInput('fetch-tags') || 'false').toUpperCase() === 'TRUE' + core.debug(`fetch tags = ${result.fetchTags}`) + // LFS result.lfs = (core.getInput('lfs') || 'false').toUpperCase() === 'TRUE' core.debug(`lfs = ${result.lfs}`) |
