mirror of
https://code.forgejo.org/actions/checkout.git
synced 2025-07-17 07:02:42 +00:00
Merge 2449f8bb0b
into 09d2acae67
This commit is contained in:
commit
d6c6237036
8 changed files with 57 additions and 5 deletions
|
@ -113,6 +113,9 @@ Please refer to the [release page](https://github.com/actions/checkout/releases/
|
|||
# Default: 1
|
||||
fetch-depth: ''
|
||||
|
||||
# Date like `2days` or `1970-01-01`. Fetch a history after the specified time.
|
||||
shallow-since: ''
|
||||
|
||||
# Whether to fetch tags, even if fetch-depth > 0.
|
||||
# Default: false
|
||||
fetch-tags: ''
|
||||
|
|
|
@ -808,6 +808,7 @@ async function setup(testName: string): Promise<void> {
|
|||
sparseCheckout: [],
|
||||
sparseCheckoutConeMode: true,
|
||||
fetchDepth: 1,
|
||||
shallowSince: '',
|
||||
fetchTags: false,
|
||||
showProgress: true,
|
||||
lfs: false,
|
||||
|
|
|
@ -74,6 +74,8 @@ inputs:
|
|||
fetch-depth:
|
||||
description: 'Number of commits to fetch. 0 indicates all history for all branches and tags.'
|
||||
default: 1
|
||||
shallow-since:
|
||||
description: 'Date like `2days` or `1970-01-01`. Fetch a history after the specified time.'
|
||||
fetch-tags:
|
||||
description: 'Whether to fetch tags, even if fetch-depth > 0.'
|
||||
default: false
|
||||
|
|
|
@ -72,6 +72,8 @@ We want to take this opportunity to make behavioral changes, from v1. This docum
|
|||
fetch-depth:
|
||||
description: 'Number of commits to fetch. 0 indicates all history for all tags and branches.'
|
||||
default: 1
|
||||
shallow-since:
|
||||
description: 'Date like `2days` or `1970-01-01`. Fetch a history after the specified time.'
|
||||
lfs:
|
||||
description: 'Whether to download Git-LFS files'
|
||||
default: false
|
||||
|
@ -155,7 +157,7 @@ Fetch only the SHA being built and set depth=1. This significantly reduces the f
|
|||
|
||||
If a SHA isn't available (e.g. multi repo), then fetch only the specified ref with depth=1.
|
||||
|
||||
The input `fetch-depth` can be used to control the depth.
|
||||
The input `fetch-depth` and `shallow-since` can be used to control the depth.
|
||||
|
||||
Note:
|
||||
- Fetching a single commit is supported by Git wire protocol version 2. The git client uses protocol version 0 by default. The desired protocol version can be overridden in the git config or on the fetch command line invocation (`-c protocol.version=2`). We will override on the fetch command line, for transparency.
|
||||
|
|
14
dist/index.js
vendored
14
dist/index.js
vendored
|
@ -663,6 +663,9 @@ class GitCommandManager {
|
|||
if (options.filter) {
|
||||
args.push(`--filter=${options.filter}`);
|
||||
}
|
||||
if (options.shallowSince) {
|
||||
args.push(`--shallow-since=${options.shallowSince}`);
|
||||
}
|
||||
if (options.fetchDepth && options.fetchDepth > 0) {
|
||||
args.push(`--depth=${options.fetchDepth}`);
|
||||
}
|
||||
|
@ -793,13 +796,16 @@ class GitCommandManager {
|
|||
yield this.execGit(args);
|
||||
});
|
||||
}
|
||||
submoduleUpdate(fetchDepth, recursive) {
|
||||
submoduleUpdate(fetchDepth, recursive, shallowSince) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const args = ['-c', 'protocol.version=2'];
|
||||
args.push('submodule', 'update', '--init', '--force');
|
||||
if (fetchDepth > 0) {
|
||||
args.push(`--depth=${fetchDepth}`);
|
||||
}
|
||||
if (shallowSince) {
|
||||
args.push(`--shallow-since=${shallowSince}`);
|
||||
}
|
||||
if (recursive) {
|
||||
args.push('--recursive');
|
||||
}
|
||||
|
@ -1787,6 +1793,12 @@ function getInputs() {
|
|||
result.fetchDepth = 0;
|
||||
}
|
||||
core.debug(`fetch depth = ${result.fetchDepth}`);
|
||||
// Shallow since
|
||||
if (core.getInput('fetch-depth') && core.getInput('shallow-since')) {
|
||||
throw new Error('`fetch-depth` and `shallow-since` cannot be used at the same time');
|
||||
}
|
||||
result.shallowSince = core.getInput('shallow-since');
|
||||
core.debug(`shallow since = ${result.shallowSince}`);
|
||||
// Fetch tags
|
||||
result.fetchTags =
|
||||
(core.getInput('fetch-tags') || 'false').toUpperCase() === 'TRUE';
|
||||
|
|
|
@ -36,6 +36,7 @@ export interface IGitCommandManager {
|
|||
options: {
|
||||
filter?: string
|
||||
fetchDepth?: number
|
||||
shallowSince?: string
|
||||
fetchTags?: boolean
|
||||
showProgress?: boolean
|
||||
}
|
||||
|
@ -54,8 +55,12 @@ export interface IGitCommandManager {
|
|||
shaExists(sha: string): Promise<boolean>
|
||||
submoduleForeach(command: string, recursive: boolean): Promise<string>
|
||||
submoduleSync(recursive: boolean): Promise<void>
|
||||
submoduleUpdate(fetchDepth: number, recursive: boolean): Promise<void>
|
||||
submoduleStatus(): Promise<boolean>
|
||||
submoduleUpdate(
|
||||
fetchDepth: number,
|
||||
recursive: boolean,
|
||||
shallowSince?: string
|
||||
): Promise<void>
|
||||
tagExists(pattern: string): Promise<boolean>
|
||||
tryClean(): Promise<boolean>
|
||||
tryConfigUnset(configKey: string, globalConfig?: boolean): Promise<boolean>
|
||||
|
@ -256,6 +261,7 @@ class GitCommandManager {
|
|||
options: {
|
||||
filter?: string
|
||||
fetchDepth?: number
|
||||
shallowSince?: string
|
||||
fetchTags?: boolean
|
||||
showProgress?: boolean
|
||||
}
|
||||
|
@ -274,6 +280,10 @@ class GitCommandManager {
|
|||
args.push(`--filter=${options.filter}`)
|
||||
}
|
||||
|
||||
if (options.shallowSince) {
|
||||
args.push(`--shallow-since=${options.shallowSince}`)
|
||||
}
|
||||
|
||||
if (options.fetchDepth && options.fetchDepth > 0) {
|
||||
args.push(`--depth=${options.fetchDepth}`)
|
||||
} else if (
|
||||
|
@ -409,13 +419,21 @@ class GitCommandManager {
|
|||
await this.execGit(args)
|
||||
}
|
||||
|
||||
async submoduleUpdate(fetchDepth: number, recursive: boolean): Promise<void> {
|
||||
async submoduleUpdate(
|
||||
fetchDepth: number,
|
||||
recursive: boolean,
|
||||
shallowSince?: string
|
||||
): Promise<void> {
|
||||
const args = ['-c', 'protocol.version=2']
|
||||
args.push('submodule', 'update', '--init', '--force')
|
||||
if (fetchDepth > 0) {
|
||||
args.push(`--depth=${fetchDepth}`)
|
||||
}
|
||||
|
||||
if (shallowSince) {
|
||||
args.push(`--shallow-since=${shallowSince}`)
|
||||
}
|
||||
|
||||
if (recursive) {
|
||||
args.push('--recursive')
|
||||
}
|
||||
|
|
|
@ -50,7 +50,12 @@ export interface IGitSourceSettings {
|
|||
fetchDepth: number
|
||||
|
||||
/**
|
||||
* Fetch tags, even if fetchDepth > 0 (default: false)
|
||||
* Deepen or shorten the history of a shallow repository to include all reachable commits after
|
||||
*/
|
||||
shallowSince: string
|
||||
|
||||
/**
|
||||
* Fetch tags, even if fetchDepth > 0 (default: false)
|
||||
*/
|
||||
fetchTags: boolean
|
||||
|
||||
|
|
|
@ -108,6 +108,15 @@ export async function getInputs(): Promise<IGitSourceSettings> {
|
|||
}
|
||||
core.debug(`fetch depth = ${result.fetchDepth}`)
|
||||
|
||||
// Shallow since
|
||||
if (core.getInput('fetch-depth') && core.getInput('shallow-since')) {
|
||||
throw new Error(
|
||||
'`fetch-depth` and `shallow-since` cannot be used at the same time'
|
||||
)
|
||||
}
|
||||
result.shallowSince = core.getInput('shallow-since')
|
||||
core.debug(`shallow since = ${result.shallowSince}`)
|
||||
|
||||
// Fetch tags
|
||||
result.fetchTags =
|
||||
(core.getInput('fetch-tags') || 'false').toUpperCase() === 'TRUE'
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue