packageclient// import "github.com/docker/docker/client"import("context""net/url""github.com/docker/distribution/reference""github.com/pkg/errors")// ImageTag tags an image in the docker hostfunc(cli*Client)ImageTag(ctxcontext.Context,source,targetstring)error{if_,err:=reference.ParseAnyReference(source);err!=nil{returnerrors.Wrapf(err,"Error parsing reference: %q is not a valid repository/tag",source)}ref,err:=reference.ParseNormalizedNamed(target)iferr!=nil{returnerrors.Wrapf(err,"Error parsing reference: %q is not a valid repository/tag",target)}if_,isCanonical:=ref.(reference.Canonical);isCanonical{returnerrors.New("refusing to create a tag with a digest reference")}ref=reference.TagNameOnly(ref)query:=url.Values{}query.Set("repo",reference.FamiliarName(ref))iftagged,ok:=ref.(reference.Tagged);ok{query.Set("tag",tagged.Tag())}resp,err:=cli.post(ctx,"/images/"+source+"/tag",query,nil,nil)ensureReaderClosed(resp)returnerr}