From 6e5ffd74e1adabc6aae46441ec69ef9b663e4d30 Mon Sep 17 00:00:00 2001 From: fab Date: Mon, 16 Mar 2026 18:58:16 +0100 Subject: [PATCH 1/2] fix(ui): strip trailing .git in useRepositoryUrl composable --- app/composables/useRepositoryUrl.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/composables/useRepositoryUrl.ts b/app/composables/useRepositoryUrl.ts index 6e3b4ee718..b916929600 100644 --- a/app/composables/useRepositoryUrl.ts +++ b/app/composables/useRepositoryUrl.ts @@ -19,8 +19,8 @@ export function useRepositoryUrl( let url = normalizeGitUrl(repo.url) // append `repository.directory` for monorepo packages - if (repo.directory) { - url = joinURL(`${url}/tree/HEAD`, repo.directory) + if (repo.directory && url) { + url = joinURL(url.replace(/\.git$/, ''), `/tree/HEAD`, repo.directory) } return url From ea1e3c1be7695cb35fe966885bc73fd1eafd6b51 Mon Sep 17 00:00:00 2001 From: fab Date: Mon, 16 Mar 2026 19:00:29 +0100 Subject: [PATCH 2/2] test(nuxt): add useRepositoryUrl valid url test --- .../composables/use-repository-url.spec.ts | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 test/nuxt/composables/use-repository-url.spec.ts diff --git a/test/nuxt/composables/use-repository-url.spec.ts b/test/nuxt/composables/use-repository-url.spec.ts new file mode 100644 index 0000000000..9a828d8ebe --- /dev/null +++ b/test/nuxt/composables/use-repository-url.spec.ts @@ -0,0 +1,36 @@ +import { describe, expect, it } from 'vitest' + +const fakeRequestedVersion = ( + data: Partial, +): SlimPackument['requestedVersion'] => { + return { + _id: 'any', + _npmVersion: 'idk', + dist: { + shasum: '', + signatures: [], + tarball: '', + }, + name: 'any', + version: '0.0.1', + ...data, + } +} + +describe('useRepositoryUrl', () => { + it('should have valid github repository url', () => { + const test = fakeRequestedVersion({ + repository: { + type: 'git', + url: 'git+https://github.com/nuxt/nuxt.git', + directory: 'packages/nuxt', + }, + }) + + const result = useRepositoryUrl(test) + + expect(result.repositoryUrl.value).toEqual( + 'https://github.com/nuxt/nuxt/tree/HEAD/packages/nuxt', + ) + }) +})