]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: use Bitbucket v2 REST API when determining VCS
authorMark Adams <mark@markadams.me>
Fri, 3 Feb 2017 14:46:25 +0000 (08:46 -0600)
committerRuss Cox <rsc@golang.org>
Fri, 10 Feb 2017 20:05:57 +0000 (20:05 +0000)
The existing implementation uses v1.0 of Bitbucket's REST API. The newer
version 2.0 of Bitbucket's REST API provides the same information but
with support for partial responses allowing the client to request only
the response fields that are relevant to their usage of the API
resulting in a much smaller payload size.

The partial response functionality in the Bitbucket API is documented here:
https://developer.atlassian.com/bitbucket/api/2/reference/meta/partial-response

The v2.0 of the Bitbucket repositories API is documented here:
https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Busername%7D/%7Brepo_slug%7D#get

Fixes #18919

Change-Id: I319947d5c51adc241cfe3a2228a667cc43fb1f56
Reviewed-on: https://go-review.googlesource.com/36219
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>
src/cmd/go/internal/get/vcs.go

index 187f635557be4cf5d91c1b06c2db42cc6afd440e..7439cc8649aea667e0d91990973b46c3e1d2b501 100644 (file)
@@ -948,7 +948,7 @@ func bitbucketVCS(match map[string]string) error {
        var resp struct {
                SCM string `json:"scm"`
        }
-       url := expand(match, "https://api.bitbucket.org/1.0/repositories/{bitname}")
+       url := expand(match, "https://api.bitbucket.org/2.0/repositories/{bitname}?fields=scm")
        data, err := web.Get(url)
        if err != nil {
                if httpErr, ok := err.(*web.HTTPError); ok && httpErr.StatusCode == 403 {