From 4daae9b2d005b7b835e1b1ec37ef0d4604371b25 Mon Sep 17 00:00:00 2001 From: Sourya Vatsyayan Date: Mon, 4 Aug 2025 09:21:25 +0530 Subject: [PATCH 1/2] chore: add support for all VCS providers Signed-off-by: Sourya Vatsyayan --- command/repo/view/view.go | 9 ++++++--- utils/remote_resolver.go | 8 ++++++-- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/command/repo/view/view.go b/command/repo/view/view.go index 2fff4427..b912da56 100644 --- a/command/repo/view/view.go +++ b/command/repo/view/view.go @@ -15,9 +15,12 @@ import ( ) var VCSMap = map[string]string{ - "GITHUB": "gh", - "GITLAB": "gl", - "BITBUCKET": "bb", + "GITHUB": "gh", + "GITHUB_ENTERPRISE": "ghe", + "GITLAB": "gl", + "BITBUCKET": "bb", + "BITBUCKET_DATACENTER": "bbdc", + "ADS": "ads", } type RepoViewOptions struct { diff --git a/utils/remote_resolver.go b/utils/remote_resolver.go index a43933c7..5d138282 100644 --- a/utils/remote_resolver.go +++ b/utils/remote_resolver.go @@ -79,12 +79,16 @@ func RepoArgumentResolver(arg string) ([]string, error) { switch argComponents[0] { case "gh", "github.com": argComponents[0] = "GITHUB" - + case "ghe": + argComponents[0] = "GITHUB_ENTERPRISE" case "gl", "gitlab.com": argComponents[0] = "GITLAB" - case "bb", "bitbucket.com": argComponents[0] = "BITBUCKET" + case "bbdc": + argComponents[0] = "BITBUCKET_DATACENTER" + case "ads": + argComponents[0] = "ADS" default: return argComponents, fmt.Errorf("VCSProvider `%s` not supported", argComponents[0]) } From d349d9a9ecb5597fee0757c275cd77f353165a0d Mon Sep 17 00:00:00 2001 From: Sourya Vatsyayan Date: Mon, 4 Aug 2025 12:59:47 +0530 Subject: [PATCH 2/2] add tests Signed-off-by: Sourya Vatsyayan --- utils/remote_resolver_test.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/utils/remote_resolver_test.go b/utils/remote_resolver_test.go index 23b67b04..294d1d82 100644 --- a/utils/remote_resolver_test.go +++ b/utils/remote_resolver_test.go @@ -26,6 +26,12 @@ func TestResolveRemote(t *testing.T) { want: &RemoteData{Owner: "deepsourcelabs", RepoName: "cli", VCSProvider: "GITHUB"}, wantErr: false, }, + { + name: "valid github enterprise remote URL (short form)", + repoArg: "ghe/deepsourcelabs/cli", + want: &RemoteData{Owner: "deepsourcelabs", RepoName: "cli", VCSProvider: "GITHUB_ENTERPRISE"}, + wantErr: false, + }, { name: "valid gitlab remote URL", repoArg: "gitlab.com/deepsourcelabs/cli", @@ -50,6 +56,18 @@ func TestResolveRemote(t *testing.T) { want: &RemoteData{Owner: "deepsourcelabs", RepoName: "cli", VCSProvider: "BITBUCKET"}, wantErr: false, }, + { + name: "valid bitbucket datacenter remote URL (short form)", + repoArg: "bbdc/deepsourcelabs/cli", + want: &RemoteData{Owner: "deepsourcelabs", RepoName: "cli", VCSProvider: "BITBUCKET_DATACENTER"}, + wantErr: false, + }, + { + name: "valid Azure Devops remote URL (short form)", + repoArg: "ads/deepsourcelabs/cli", + want: &RemoteData{Owner: "deepsourcelabs", RepoName: "cli", VCSProvider: "ADS"}, + wantErr: false, + }, { name: "invalid VCS provider", repoArg: "example.com/deepsourcelabs/cli",