From fa259dcff0703eb196a9e481f554778d1e872cce Mon Sep 17 00:00:00 2001 From: Thomas Cardonne Date: Fri, 11 Aug 2023 09:02:14 +0200 Subject: [PATCH] simplify ReadTreeResponseFactory options and small fixes Signed-off-by: Thomas Cardonne --- .changeset/heavy-suns-hope.md | 2 +- packages/backend-common/api-report.md | 5 +++-- .../backend-common/src/reading/GerritUrlReader.test.ts | 8 ++------ packages/backend-common/src/reading/GerritUrlReader.ts | 2 +- .../src/reading/tree/ReadTreeResponseFactory.ts | 6 ++++-- packages/backend-common/src/reading/types.ts | 10 +++++++--- packages/integration/src/gerrit/core.ts | 1 - 7 files changed, 18 insertions(+), 16 deletions(-) diff --git a/.changeset/heavy-suns-hope.md b/.changeset/heavy-suns-hope.md index 9918a797ec..334aa55dd3 100644 --- a/.changeset/heavy-suns-hope.md +++ b/.changeset/heavy-suns-hope.md @@ -5,5 +5,5 @@ To improve performance, `GerritUrlReader.readTree()` now uses Gitiles to fetch an archive instead of cloning the repository. If `gitilesBaseUrl` is not configured, `readTree` still uses Git to clone the repository. -Added `tarStripFirstDirectory` to `ReadTreeResponseFactoryOptions`, allowing to disable stripping first directory +Added `stripFirstDirectory` option to `ReadTreeResponseFactory.fromTarArchive()`, allowing to disable stripping first directory for `tar` archives. diff --git a/packages/backend-common/api-report.md b/packages/backend-common/api-report.md index 034d800aee..f8e535c8a7 100644 --- a/packages/backend-common/api-report.md +++ b/packages/backend-common/api-report.md @@ -610,7 +610,9 @@ export interface ReadTreeResponseFactory { ): Promise; // (undocumented) fromTarArchive( - options: ReadTreeResponseFactoryOptions, + options: ReadTreeResponseFactoryOptions & { + stripFirstDirectory?: boolean; + }, ): Promise; // (undocumented) fromZipArchive( @@ -629,7 +631,6 @@ export type ReadTreeResponseFactoryOptions = { size: number; }, ) => boolean; - tarStripFirstDirectory?: boolean; }; export { ReadTreeResponseFile }; diff --git a/packages/backend-common/src/reading/GerritUrlReader.test.ts b/packages/backend-common/src/reading/GerritUrlReader.test.ts index f8cd3bfcab..9de9aac33d 100644 --- a/packages/backend-common/src/reading/GerritUrlReader.test.ts +++ b/packages/backend-common/src/reading/GerritUrlReader.test.ts @@ -257,9 +257,7 @@ describe('GerritUrlReader', () => { worker.use( rest.get( - new RegExp( - 'https://gerrit.com/gitiles/app/web/\\+archive/refs/heads/master.tar.gz', - ), + 'https://gerrit.com/gitiles/app/web/\\+archive/refs/heads/master.tar.gz', (_, res, ctx) => res( ctx.status(200), @@ -272,9 +270,7 @@ describe('GerritUrlReader', () => { ), ), rest.get( - new RegExp( - 'https://gerrit.com/gitiles/app/web/\\+archive/refs/heads/master/docs.tar.gz', - ), + 'https://gerrit.com/gitiles/app/web/\\+archive/refs/heads/master/docs.tar.gz', (_, res, ctx) => res( ctx.status(200), diff --git a/packages/backend-common/src/reading/GerritUrlReader.ts b/packages/backend-common/src/reading/GerritUrlReader.ts index f16edb1bb2..f4a5fdb9f5 100644 --- a/packages/backend-common/src/reading/GerritUrlReader.ts +++ b/packages/backend-common/src/reading/GerritUrlReader.ts @@ -283,7 +283,7 @@ export class GerritUrlReader implements UrlReader { stream: archiveResponse.body as unknown as Readable, etag: revision, filter: options?.filter, - tarStripFirstDirectory: false, + stripFirstDirectory: false, }); } } diff --git a/packages/backend-common/src/reading/tree/ReadTreeResponseFactory.ts b/packages/backend-common/src/reading/tree/ReadTreeResponseFactory.ts index 9e1fb98707..90c58c0efa 100644 --- a/packages/backend-common/src/reading/tree/ReadTreeResponseFactory.ts +++ b/packages/backend-common/src/reading/tree/ReadTreeResponseFactory.ts @@ -37,7 +37,9 @@ export class DefaultReadTreeResponseFactory implements ReadTreeResponseFactory { constructor(private readonly workDir: string) {} async fromTarArchive( - options: ReadTreeResponseFactoryOptions, + options: ReadTreeResponseFactoryOptions & { + stripFirstDirectory?: boolean; + }, ): Promise { return new TarArchiveResponse( options.stream, @@ -45,7 +47,7 @@ export class DefaultReadTreeResponseFactory implements ReadTreeResponseFactory { this.workDir, options.etag, options.filter, - options.tarStripFirstDirectory ?? true, + options.stripFirstDirectory ?? true, ); } diff --git a/packages/backend-common/src/reading/types.ts b/packages/backend-common/src/reading/types.ts index fe39961e0e..90a3c6287e 100644 --- a/packages/backend-common/src/reading/types.ts +++ b/packages/backend-common/src/reading/types.ts @@ -83,8 +83,6 @@ export type ReadTreeResponseFactoryOptions = { etag: string; // Filter passed on from the ReadTreeOptions filter?: (path: string, info?: { size: number }) => boolean; - // First directory of a tar archive is stripped when set to true - tarStripFirstDirectory?: boolean; }; /** @@ -118,7 +116,13 @@ export type FromReadableArrayOptions = Array<{ */ export interface ReadTreeResponseFactory { fromTarArchive( - options: ReadTreeResponseFactoryOptions, + options: ReadTreeResponseFactoryOptions & { + /** + * Strip the first parent directory of a tar archive. + * Defaults to true. + */ + stripFirstDirectory?: boolean; + }, ): Promise; fromZipArchive( options: ReadTreeResponseFactoryOptions, diff --git a/packages/integration/src/gerrit/core.ts b/packages/integration/src/gerrit/core.ts index 9312e55a7c..107d5a4469 100644 --- a/packages/integration/src/gerrit/core.ts +++ b/packages/integration/src/gerrit/core.ts @@ -152,7 +152,6 @@ export function getAuthenticationPrefix( * be used. * * @param config - A Gerrit provider config. - * @public */ export function getGitilesAuthenticationUrl( config: GerritIntegrationConfig,