func (registry *Registry) PutManifest(repository, reference string, signedManifest *manifest.SignedManifest) error { url := registry.url("/v2/%s/manifests/%s", repository, reference) log.Printf("registry.manifest.put url=%s repository=%s reference=%s", url, repository, reference) body, err := signedManifest.MarshalJSON() if err != nil { return err } buffer := bytes.NewBuffer(body) req, err := http.NewRequest("PUT", url, buffer) if err != nil { return err } req.Header.Set("Content-Type", manifest.ManifestMediaType) resp, err := registry.Client.Do(req) if resp != nil { defer resp.Body.Close() } return err }