84c9110a24
Bumps [github.com/hashicorp/terraform-plugin-sdk/v2](https://github.com/hashicorp/terraform-plugin-sdk) from 2.24.1 to 2.26.0. - [Release notes](https://github.com/hashicorp/terraform-plugin-sdk/releases) - [Changelog](https://github.com/hashicorp/terraform-plugin-sdk/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/terraform-plugin-sdk/compare/v2.24.1...v2.26.0) --- updated-dependencies: - dependency-name: github.com/hashicorp/terraform-plugin-sdk/v2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
38 lines
820 B
Go
38 lines
820 B
Go
package httpclient
|
|
|
|
import (
|
|
"fmt"
|
|
"net/http"
|
|
|
|
"github.com/hashicorp/go-cleanhttp"
|
|
"github.com/hashicorp/hc-install/version"
|
|
)
|
|
|
|
// NewHTTPClient provides a pre-configured http.Client
|
|
// e.g. with relevant User-Agent header
|
|
func NewHTTPClient() *http.Client {
|
|
client := cleanhttp.DefaultClient()
|
|
|
|
userAgent := fmt.Sprintf("hc-install/%s", version.Version())
|
|
|
|
cli := cleanhttp.DefaultPooledClient()
|
|
cli.Transport = &userAgentRoundTripper{
|
|
userAgent: userAgent,
|
|
inner: cli.Transport,
|
|
}
|
|
|
|
return client
|
|
}
|
|
|
|
type userAgentRoundTripper struct {
|
|
inner http.RoundTripper
|
|
userAgent string
|
|
}
|
|
|
|
func (rt *userAgentRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) {
|
|
if _, ok := req.Header["User-Agent"]; !ok {
|
|
req.Header.Set("User-Agent", rt.userAgent)
|
|
}
|
|
return rt.inner.RoundTrip(req)
|
|
}
|