code: func (t *Transport) RoundTrip(req *http.Request) (*http.Response, error) {
  	if t.Source == nil {
  		return nil, errors.New("oauth2: Transport's Source is nil")
  	}
  	token, err := t.Source.Token()
  	if err != nil {
  		return nil, err
  	}
  
  	req2 := cloneRequest(req) // per RoundTripper contract
  	token.SetAuthHeader(req2)
  	t.setModReq(req, req2)
  	res, err := t.base().RoundTrip(req2)
  	if err != nil {
  		t.setModReq(req, nil)
  		return nil, err
  	}
  	res.Body = &onEOFReader{
  		rc: res.Body,
  		fn: func() { t.setModReq(req, nil) },
  	}
  	return res, nil
  }
docs: // RoundTrip authorizes and authenticates the request with an
  // access token. If no token exists or token is expired,
  // tries to refresh/fetch a new token.