3
0
Fork 0
mirror of https://code.forgejo.org/actions/checkout.git synced 2025-07-29 17:38:00 +00:00

Add string[] option to submodules

Allows checking out only specific submodules instead of all
This commit is contained in:
Marcus Tillmanns 2024-08-27 09:55:59 +02:00 committed by Marcus Tillmanns
parent 9a9194f871
commit b6625bb44a
10 changed files with 128 additions and 22 deletions

View file

@ -54,7 +54,11 @@ 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>
submoduleUpdate(
fetchDepth: number,
recursive: boolean,
submoduleDirectories: string[] | null
): Promise<void>
submoduleStatus(): Promise<boolean>
tagExists(pattern: string): Promise<boolean>
tryClean(): Promise<boolean>
@ -409,18 +413,38 @@ class GitCommandManager {
await this.execGit(args)
}
async submoduleUpdate(fetchDepth: number, recursive: boolean): Promise<void> {
const args = ['-c', 'protocol.version=2']
args.push('submodule', 'update', '--init', '--force')
if (fetchDepth > 0) {
args.push(`--depth=${fetchDepth}`)
}
async submoduleUpdate(
fetchDepth: number,
recursive: boolean,
submoduleDirectories: string[] | null
): Promise<void> {
if (submoduleDirectories) {
for (const submodule of submoduleDirectories) {
const args = ['-c', 'protocol.version=2']
args.push('submodule', 'update', '--init', '--force', submodule)
if (fetchDepth > 0) {
args.push(`--depth=${fetchDepth}`)
}
if (recursive) {
args.push('--recursive')
}
if (recursive) {
args.push('--recursive')
}
await this.execGit(args)
await this.execGit(args)
}
} else {
const args = ['-c', 'protocol.version=2']
args.push('submodule', 'update', '--init', '--force')
if (fetchDepth > 0) {
args.push(`--depth=${fetchDepth}`)
}
if (recursive) {
args.push('--recursive')
}
await this.execGit(args)
}
}
async submoduleStatus(): Promise<boolean> {