func checkTag()

in container_images/registry-image-forked/commands/check.go [295:326]


func checkTag(tag name.Tag, source resource.Source, version *resource.Version, opts ...remote.Option) (resource.CheckResponse, error) {
	digest, found, err := headOrGet(tag, opts...)
	if err != nil {
		return resource.CheckResponse{}, fmt.Errorf("get remote image: %w", err)
	}

	response := resource.CheckResponse{}
	if version != nil && found && version.Digest != digest.String() {
		digestRef := tag.Repository.Digest(version.Digest)

		_, found, err := headOrGet(digestRef, opts...)
		if err != nil {
			return resource.CheckResponse{}, fmt.Errorf("get remote image: %w", err)
		}

		if found {
			response = append(response, resource.Version{
				Tag:    tag.TagStr(),
				Digest: version.Digest,
			})
		}
	}

	if found {
		response = append(response, resource.Version{
			Tag:    tag.TagStr(),
			Digest: digest.String(),
		})
	}

	return response, nil
}