Просмотр исходного кода

fix: more permissive owner/repo detection (#1948)

Aiden Cline 6 месяцев назад
Родитель
Сommit
8355ee2061
1 измененных файлов с 6 добавлено и 2 удалено
  1. 6 2
      packages/opencode/src/cli/cmd/github.ts

+ 6 - 2
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. [email protected]:sst/opencode.git
-        const parsed = info.match(/git@github\.com:(.*)\.git/) ?? info.match(/github\.com\/(.*)\.git/)
+        // ie. [email protected]:sst/opencode
+        // ie. ssh://[email protected]/sst/opencode.git
+        // ie. ssh://[email protected]/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 }
       }