From a1f5ca33f3fe08394224733a1679d2af183c3742 Mon Sep 17 00:00:00 2001 From: Kushagra Singh Gaur Date: Thu, 4 Jun 2026 17:33:25 +0530 Subject: [PATCH 1/2] fix(init): normalize custom base URL --- src/commands/init.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/commands/init.ts b/src/commands/init.ts index 9c5fc46..efbec11 100644 --- a/src/commands/init.ts +++ b/src/commands/init.ts @@ -8,6 +8,10 @@ import { installPrepareCommitMsgHook } from '../git/hook.js'; const CUSTOM_KEY = '__custom__'; +export function normalizeBaseUrl(value: string): string { + return value.replace(/\/+$/, ''); +} + export function buildApiKeyPrompt(existingKey: string, apiKeyEnv: string) { return { message: `Enter your API key (will be stored in config), or leave blank to use ${pc.cyan(`$${apiKeyEnv}`)} env var:`, @@ -78,7 +82,7 @@ export async function initCommand(options: { installHook?: boolean } = {}): Prom outro('Setup cancelled.'); return; } - baseUrl = urlResult; + baseUrl = normalizeBaseUrl(urlResult); apiKeyEnv = 'CUSTOM_API_KEY'; needsApiKey = true; } else { From d3ae4d957ab49cdfe9a65389bebbc2d0815d09aa Mon Sep 17 00:00:00 2001 From: Kushagra Singh Gaur Date: Thu, 4 Jun 2026 17:34:10 +0530 Subject: [PATCH 2/2] test(init): cover custom base URL normalization --- tests/init-base-url.test.mjs | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 tests/init-base-url.test.mjs diff --git a/tests/init-base-url.test.mjs b/tests/init-base-url.test.mjs new file mode 100644 index 0000000..76c550b --- /dev/null +++ b/tests/init-base-url.test.mjs @@ -0,0 +1,13 @@ +import assert from 'node:assert/strict'; +import test from 'node:test'; + +import { normalizeBaseUrl } from '../dist/commands/init.js'; + +test('trims trailing slashes from custom base URLs', () => { + assert.equal(normalizeBaseUrl('https://api.example.com/v1/'), 'https://api.example.com/v1'); + assert.equal(normalizeBaseUrl('https://api.example.com/v1///'), 'https://api.example.com/v1'); +}); + +test('preserves custom base URLs without trailing slashes', () => { + assert.equal(normalizeBaseUrl('https://api.example.com/v1'), 'https://api.example.com/v1'); +});