Skip to content

Commit dab6e6c

Browse files
committed
fix: update user-agent
1 parent 911ae60 commit dab6e6c

File tree

3 files changed

+38
-17
lines changed

3 files changed

+38
-17
lines changed

stackoverflow/client/client.go

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,19 @@ import (
1111
)
1212

1313
type Client struct {
14-
BaseURL string
15-
TeamName string
16-
AccessToken string
17-
HTTPClient *http.Client
18-
DefaultTags []string
14+
BaseURL string
15+
TeamName string
16+
AccessToken string
17+
UserAgentHeader string
18+
HTTPClient *http.Client
19+
DefaultTags []string
1920
}
2021

21-
func NewClient(baseURL *string, accessToken *string) *Client {
22+
func NewClient(baseURL *string, accessToken *string, userAgentHeader *string) *Client {
2223
c := Client{
23-
BaseURL: *baseURL,
24-
AccessToken: *accessToken,
24+
BaseURL: *baseURL,
25+
AccessToken: *accessToken,
26+
UserAgentHeader: *userAgentHeader,
2527
HTTPClient: &http.Client{
2628
Timeout: time.Minute,
2729
},
@@ -36,6 +38,7 @@ func (c *Client) doRequest(req *http.Request, successCode int) ([]byte, error) {
3638
req.Header.Set("Authorization", authzHeader)
3739
req.Header.Set("Accept", "application/json")
3840
req.Header.Set("Content-Type", "application/json")
41+
req.Header.Set("User-Agent", c.UserAgentHeader)
3942

4043
res, err := c.HTTPClient.Do(req)
4144
if err != nil {

stackoverflow/provider.go

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,23 @@ package stackoverflow
22

33
import (
44
"context"
5+
"log"
56

67
so "terraform-provider-stackoverflow/stackoverflow/client"
78

89
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
910
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
11+
12+
version "terraform-provider-stackoverflow/version"
1013
)
1114

15+
// TerraformProviderProductUserAgent is included in the User-Agent header for
16+
// any API requests made by the provider.
17+
const TerraformProviderProductUserAgent = "terraform-provider-stackoverflow"
18+
1219
// Provider -
1320
func Provider() *schema.Provider {
14-
return &schema.Provider{
21+
provider := &schema.Provider{
1522
Schema: map[string]*schema.Schema{
1623
"access_token": {
1724
Type: schema.TypeString,
@@ -39,16 +46,21 @@ func Provider() *schema.Provider {
3946
"stackoverflow_question": dataQuestion(),
4047
"stackoverflow_tag": dataTag(),
4148
},
42-
ConfigureContextFunc: providerConfigure,
4349
}
44-
}
4550

46-
func providerConfigure(ctx context.Context, d *schema.ResourceData) (interface{}, diag.Diagnostics) {
47-
accessToken := d.Get("access_token").(string)
48-
baseURL := d.Get("base_url").(string)
51+
provider.ConfigureContextFunc = func(ctx context.Context, d *schema.ResourceData) (interface{}, diag.Diagnostics) {
52+
accessToken := d.Get("access_token").(string)
53+
baseURL := d.Get("base_url").(string)
54+
userAgentHeader := provider.UserAgent(TerraformProviderProductUserAgent, version.ProviderVersion)
55+
56+
var diags diag.Diagnostics
4957

50-
var diags diag.Diagnostics
51-
client := so.NewClient(&baseURL, &accessToken)
58+
client := so.NewClient(&baseURL, &accessToken, &userAgentHeader)
59+
60+
log.Printf("User-Agent: %s", client.UserAgentHeader)
61+
62+
return client, diags
63+
}
5264

53-
return client, diags
65+
return provider
5466
}

version/version.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
// Package version contains a variable used to construct the User-Agent for API
2+
// requests.
3+
package version
4+
5+
// ProviderVersion is set during the release process to the release version of the binary.
6+
var ProviderVersion = "dev"

0 commit comments

Comments
 (0)