diff --git a/.changeset/few-plums-enjoy.md b/.changeset/few-plums-enjoy.md new file mode 100644 index 0000000000..4b0e232b3b --- /dev/null +++ b/.changeset/few-plums-enjoy.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-common': patch +--- + +Updated Git to allow for bare clone diff --git a/packages/backend-common/api-report.md b/packages/backend-common/api-report.md index 061931832d..897aefddb3 100644 --- a/packages/backend-common/api-report.md +++ b/packages/backend-common/api-report.md @@ -235,7 +235,13 @@ export class Git { url: string; }): Promise; // (undocumented) - clone(options: { url: string; dir: string; ref?: string }): Promise; + clone(options: { + url: string; + dir: string; + ref?: string; + depth?: number; + noCheckout?: boolean; + }): Promise; // (undocumented) commit(options: { dir: string; diff --git a/packages/backend-common/src/scm/git.ts b/packages/backend-common/src/scm/git.ts index 372ecb0260..dc9f0ae069 100644 --- a/packages/backend-common/src/scm/git.ts +++ b/packages/backend-common/src/scm/git.ts @@ -76,12 +76,15 @@ export class Git { return git.commit({ fs, dir, message, author, committer }); } + // https://isomorphic-git.org/docs/en/clone async clone(options: { url: string; dir: string; ref?: string; + depth?: number; + noCheckout?: boolean; }): Promise { - const { url, dir, ref } = options; + const { url, dir, ref, depth, noCheckout } = options; this.config.logger?.info(`Cloning repo {dir=${dir},url=${url}}`); return git.clone({ fs, @@ -90,7 +93,8 @@ export class Git { dir, ref, singleBranch: true, - depth: 1, + depth: depth ?? 1, + noCheckout: noCheckout ?? false, onProgress: this.onProgressHandler(), headers: { 'user-agent': 'git/@isomorphic-git',