code: func NewModifyingTransport(base http.RoundTripper, modifier func(*http.Request) error) http.RoundTripper {
  	return &modifyingTransport{
  		base:     base,
  		modifier: modifier,
  	}
  }
docs: // NewModifyingTransport returns a transport that can modify headers of
  // http.Request's that pass through it (e.g. by appending authentication
  // information).
  //
  // Go docs explicitly prohibit this kind of behavior, but everyone cheat and
  // implement it anyway. E.g. https://github.com/golang/oauth2.
  //
  // Works only with Go >=1.5 transports (that use Request.Cancel instead of
  // deprecated Transport.CancelRequest). For same reason doesn't implement
  // CancelRequest itself.
  //
  // TODO(vadimsh): Move it elsewhere. It has no direct relation to auth.