code: func NewUploadRequest() *UploadRequest {
  	return &UploadRequest{
  		Capabilities: capability.NewList(),
  		Wants:        []plumbing.Hash{},
  		Shallows:     []plumbing.Hash{},
  		Depth:        DepthCommits(0),
  	}
  }
docs: // NewUploadRequest returns a pointer to a new UploadRequest value, ready to be
  // used. It has no capabilities, wants or shallows and an infinite depth. Please
  // note that to encode an upload-request it has to have at least one wanted hash.