aboutsummaryrefslogtreecommitdiffstats
path: root/plumbing/transport/http
diff options
context:
space:
mode:
authorMáximo Cuadros <mcuadros@gmail.com>2017-04-11 23:16:48 +0200
committerMáximo Cuadros <mcuadros@gmail.com>2017-04-11 23:16:48 +0200
commit7a428a915ce2b7bb0f4fc6dcee77932ebacfabbf (patch)
treea116c49d89ae0450c9999a85896d1a10ba7d8a0b /plumbing/transport/http
parent116fed7ea746255805f5664d9b6fd7cdb1b52663 (diff)
parent9b45f468c61a0756dd19d09b64c2b1a88cc99ec5 (diff)
downloadgo-git-7a428a915ce2b7bb0f4fc6dcee77932ebacfabbf.tar.gz
merge, Repository.Log
Diffstat (limited to 'plumbing/transport/http')
-rw-r--r--plumbing/transport/http/common.go4
-rw-r--r--plumbing/transport/http/common_test.go6
-rw-r--r--plumbing/transport/http/upload_pack.go7
-rw-r--r--plumbing/transport/http/upload_pack_test.go2
4 files changed, 12 insertions, 7 deletions
diff --git a/plumbing/transport/http/common.go b/plumbing/transport/http/common.go
index baad12e..930e8eb 100644
--- a/plumbing/transport/http/common.go
+++ b/plumbing/transport/http/common.go
@@ -132,7 +132,9 @@ func NewErr(r *http.Response) error {
switch r.StatusCode {
case http.StatusUnauthorized:
- return transport.ErrAuthorizationRequired
+ return transport.ErrAuthenticationRequired
+ case http.StatusForbidden:
+ return transport.ErrAuthorizationFailed
case http.StatusNotFound:
return transport.ErrRepositoryNotFound
}
diff --git a/plumbing/transport/http/common_test.go b/plumbing/transport/http/common_test.go
index 1fd0dd5..d1f36d3 100644
--- a/plumbing/transport/http/common_test.go
+++ b/plumbing/transport/http/common_test.go
@@ -51,7 +51,11 @@ func (s *ClientSuite) TestNewErrOK(c *C) {
}
func (s *ClientSuite) TestNewErrUnauthorized(c *C) {
- s.testNewHTTPError(c, http.StatusUnauthorized, "authorization required")
+ s.testNewHTTPError(c, http.StatusUnauthorized, "authentication required")
+}
+
+func (s *ClientSuite) TestNewErrForbidden(c *C) {
+ s.testNewHTTPError(c, http.StatusForbidden, "authorization failed")
}
func (s *ClientSuite) TestNewErrNotFound(c *C) {
diff --git a/plumbing/transport/http/upload_pack.go b/plumbing/transport/http/upload_pack.go
index fd1787c..8f73789 100644
--- a/plumbing/transport/http/upload_pack.go
+++ b/plumbing/transport/http/upload_pack.go
@@ -59,10 +59,9 @@ func (s *upSession) AdvertisedReferences() (*packp.AdvRefs, error) {
return nil, err
}
- defer res.Body.Close()
-
- if res.StatusCode == http.StatusUnauthorized {
- return nil, transport.ErrAuthorizationRequired
+ if err := NewErr(res); err != nil {
+ _ = res.Body.Close()
+ return nil, err
}
ar := packp.NewAdvRefs()
diff --git a/plumbing/transport/http/upload_pack_test.go b/plumbing/transport/http/upload_pack_test.go
index a793efb..57d5f46 100644
--- a/plumbing/transport/http/upload_pack_test.go
+++ b/plumbing/transport/http/upload_pack_test.go
@@ -38,7 +38,7 @@ func (s *UploadPackSuite) TestAdvertisedReferencesNotExists(c *C) {
r, err := s.Client.NewUploadPackSession(s.NonExistentEndpoint, s.EmptyAuth)
c.Assert(err, IsNil)
info, err := r.AdvertisedReferences()
- c.Assert(err, Equals, transport.ErrAuthorizationRequired)
+ c.Assert(err, Equals, transport.ErrAuthenticationRequired)
c.Assert(info, IsNil)
}