Follow redirections when sending PUT request in PushRepository

Upstream-commit: 6e936c8fd32357e839cb9337e621b1e152b9fd8b
Component: engine
This commit is contained in:
shin-
2013-05-06 10:54:53 -07:00
parent c480172ba7
commit 2a3e53459d
+14
View File
@@ -466,6 +466,20 @@ func (graph *Graph) PushRepository(stdout io.Writer, remote string, localRepo Re
return err
}
res.Body.Close()
for res.StatusCode >= 300 && res.StatusCode < 400 {
Debugf("Redirected to %s\n", res.Header.Get("Location"))
req, err = http.NewRequest("PUT", res.Header.Get("Location"), nil)
if err != nil {
return err
}
req.SetBasicAuth(authConfig.Username, authConfig.Password)
res, err = client.Do(req)
if err != nil {
return err
}
res.Body.Close()
}
if res.StatusCode != 200 && res.StatusCode != 201 {
return fmt.Errorf("Error: Status %d trying to push repository %s", res.StatusCode, remote)
}