refactor: simplify GitHub repository URI parsing

- Removed dependency on `parse-github-url` and implemented a regex-based approach for parsing GitHub repository URIs in the `parseGitHubRepoFromUri` function.
- Enhanced error handling for invalid URIs while maintaining the function's output structure.
This commit is contained in:
Huakun Shen 2025-03-24 08:08:01 -04:00
parent 8a1d3cbf2e
commit b910b4801b
No known key found for this signature in database
2 changed files with 7 additions and 10 deletions

View File

@ -13,7 +13,6 @@
},
"devDependencies": {
"@types/bun": "latest",
"@types/parse-github-url": "^1.0.3",
"verify-package-export": "^0.0.3"
},
"peerDependencies": {
@ -22,7 +21,6 @@
"dependencies": {
"@huakunshen/jsr-client": "^0.1.5",
"@kksh/api": "workspace:*",
"@octokit/rest": "^21.1.0",
"parse-github-url": "^1.0.3"
"@octokit/rest": "^21.1.0"
}
}

View File

@ -2,7 +2,6 @@
* TODO: move this module to another folder
*/
import { Octokit } from "@octokit/rest"
import gh from "parse-github-url"
/**
* Check if a user is a public member of a GitHub organization
@ -44,14 +43,14 @@ export function parseGitHubRepoFromUri(uri: string): {
owner: string
repo: string
} {
const ghUrl = gh(uri)
if (!ghUrl) {
// check regex
const regex = /https?:\/\/github\.com\/([^\/]+)\/([^\/]+)/
const match = uri.match(regex)
if (!match) {
throw new Error("Invalid GitHub repository URI")
}
if (!ghUrl.owner || !ghUrl.name) {
throw new Error("Invalid GitHub repository URI")
}
return { owner: ghUrl.owner, repo: ghUrl.name }
const [, owner, repo] = match
return { owner, repo }
}
/**