func()

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
}