in build-index/tagserver/server.go [162:191]
func (s *Server) putTagHandler(w http.ResponseWriter, r *http.Request) error {
tag, err := httputil.ParseParam(r, "tag")
if err != nil {
return err
}
d, err := httputil.ParseDigest(r, "digest")
if err != nil {
return err
}
replicate, err := strconv.ParseBool(httputil.GetQueryArg(r, "replicate", "false"))
if err != nil {
return handler.Errorf("parse query arg `replicate`: %s", err)
}
deps, err := s.depResolver.Resolve(tag, d)
if err != nil {
return fmt.Errorf("resolve dependencies: %s", err)
}
if err := s.putTag(tag, d, deps); err != nil {
return err
}
if replicate {
if err := s.replicateTag(tag, d, deps); err != nil {
return err
}
}
w.WriteHeader(http.StatusOK)
return nil
}