Skip to content

Commit

Permalink
cmd/go: remove mercurial from bitbucket vcs options
Browse files Browse the repository at this point in the history
Mercurial was deprecated as of July 1, 2020 as per https://bitbucket.org/blog/sunsetting-mercurial-support-in-bitbucket

Fixes #50810.

Change-Id: I0d40f84aaa393905cae7c4bed8919b15de9a5f6d
Reviewed-on: https://go-review.googlesource.com/c/go/+/371720
Trust: Russ Cox <rsc@golang.org>
Reviewed-by: Bryan Mills <bcmills@google.com>
Trust: Bryan Mills <bcmills@google.com>
  • Loading branch information
aethanol authored and Bryan Mills committed Jan 26, 2022
1 parent 827babf commit 5b1b80b
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 52 deletions.
54 changes: 2 additions & 52 deletions src/cmd/go/internal/vcs/vcs.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ package vcs

import (
"bytes"
"encoding/json"
"errors"
"fmt"
exec "internal/execabs"
Expand Down Expand Up @@ -1437,8 +1436,9 @@ var vcsPaths = []*vcsPath{
{
pathPrefix: "bitbucket.org",
regexp: lazyregexp.New(`^(?P<root>bitbucket\.org/(?P<bitname>[A-Za-z0-9_.\-]+/[A-Za-z0-9_.\-]+))(/[A-Za-z0-9_.\-]+)*$`),
vcs: "git",
repo: "https://{root}",
check: bitbucketVCS,
check: noVCSSuffix,
},

// IBM DevOps Services (JazzHub)
Expand Down Expand Up @@ -1510,56 +1510,6 @@ func noVCSSuffix(match map[string]string) error {
return nil
}

// bitbucketVCS determines the version control system for a
// Bitbucket repository, by using the Bitbucket API.
func bitbucketVCS(match map[string]string) error {
if err := noVCSSuffix(match); err != nil {
return err
}

var resp struct {
SCM string `json:"scm"`
}
url := &urlpkg.URL{
Scheme: "https",
Host: "api.bitbucket.org",
Path: expand(match, "/2.0/repositories/{bitname}"),
RawQuery: "fields=scm",
}
data, err := web.GetBytes(url)
if err != nil {
if httpErr, ok := err.(*web.HTTPError); ok && httpErr.StatusCode == 403 {
// this may be a private repository. If so, attempt to determine which
// VCS it uses. See issue 5375.
root := match["root"]
for _, vcs := range []string{"git", "hg"} {
if vcsByCmd(vcs).Ping("https", root) == nil {
resp.SCM = vcs
break
}
}
}

if resp.SCM == "" {
return err
}
} else {
if err := json.Unmarshal(data, &resp); err != nil {
return fmt.Errorf("decoding %s: %v", url, err)
}
}

if vcsByCmd(resp.SCM) != nil {
match["vcs"] = resp.SCM
if resp.SCM == "git" {
match["repo"] += ".git"
}
return nil
}

return fmt.Errorf("unable to detect version control system for bitbucket.org/ path")
}

// launchpadVCS solves the ambiguity for "lp.net/project/foo". In this case,
// "foo" could be a series name registered in Launchpad with its own branch,
// and it could also be the name of a directory within the main project
Expand Down
7 changes: 7 additions & 0 deletions src/cmd/go/internal/vcs/vcs_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,13 @@ func TestRepoRootForImportPath(t *testing.T) {
"chiselapp.com/user/kyle/fossilgg",
nil,
},
{
"bitbucket.org/workspace/pkgname",
&RepoRoot{
VCS: vcsGit,
Repo: "https://bitbucket.org/workspace/pkgname",
},
},
}

for _, test := range tests {
Expand Down

0 comments on commit 5b1b80b

Please sign in to comment.