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

View File

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