From 8355ee2061a8f4f6f8e0450dfe4c6aa91b29ab90 Mon Sep 17 00:00:00 2001 From: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Date: Fri, 15 Aug 2025 06:11:41 -0500 Subject: [PATCH] fix: more permissive owner/repo detection (#1948) --- packages/opencode/src/cli/cmd/github.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/opencode/src/cli/cmd/github.ts b/packages/opencode/src/cli/cmd/github.ts index a6f8917a..7fcfc4ca 100644 --- a/packages/opencode/src/cli/cmd/github.ts +++ b/packages/opencode/src/cli/cmd/github.ts @@ -188,13 +188,17 @@ export const GithubInstallCommand = cmd({ const info = await $`git remote get-url origin`.quiet().nothrow().text() // match https or git pattern // ie. https://github.com/sst/opencode.git + // ie. https://github.com/sst/opencode // ie. git@github.com:sst/opencode.git - const parsed = info.match(/git@github\.com:(.*)\.git/) ?? info.match(/github\.com\/(.*)\.git/) + // ie. git@github.com:sst/opencode + // ie. ssh://git@github.com/sst/opencode.git + // ie. ssh://git@github.com/sst/opencode + const parsed = info.match(/^(?:(?:https?|ssh):\/\/)?(?:git@)?github\.com[:/]([^/]+)\/([^/.]+?)(?:\.git)?$/) if (!parsed) { prompts.log.error(`Could not find git repository. Please run this command from a git repository.`) throw new UI.CancelledError() } - const [owner, repo] = parsed[1].split("/") + const [, owner, repo] = parsed return { owner, repo, root: app.path.root } }