Skip to content

Commit 9da79fd

Browse files
committed
feat: Switch to Rate Limited GH Client
* Leveraged existing patterns/code used for the normal terraform-provider-github package which was first implimented in [this PR](integrations/terraform-provider-github#145)
1 parent d04e894 commit 9da79fd

File tree

3 files changed

+981
-119
lines changed

3 files changed

+981
-119
lines changed

githubfile/provider.go

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,12 @@
1515
package githubfile
1616

1717
import (
18-
"context"
1918
"encoding/base64"
2019
"fmt"
21-
"strings"
22-
2320
"github.com/google/go-github/v54/github"
2421
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
25-
"golang.org/x/oauth2"
22+
tpg "github.com/integrations/terraform-provider-github/v5/github"
23+
"strings"
2624
)
2725

2826
const (
@@ -50,20 +48,23 @@ type providerConfiguration struct {
5048
func Provider() *schema.Provider {
5149
return &schema.Provider{
5250
ConfigureFunc: func(d *schema.ResourceData) (interface{}, error) {
53-
ts := oauth2.StaticTokenSource(
54-
&oauth2.Token{
55-
AccessToken: d.Get(githubTokenKey).(string),
56-
},
57-
)
58-
tc := oauth2.NewClient(context.Background(), ts)
51+
c := tpg.Config{
52+
Token: d.Get(githubTokenKey).(string),
53+
}
54+
55+
gc, err := c.NewRESTClient(c.AuthenticatedHTTPClient())
56+
if err != nil {
57+
return nil, fmt.Errorf("failed to create GitHub Client: %v", err)
58+
}
59+
5960
// Support reading a base64-encoded GPG secret key.
6061
sk := d.Get(gpgSecretKeyKey).(string)
6162
if v, err := base64.StdEncoding.DecodeString(sk); err == nil {
6263
sk = string(v)
6364
}
6465
return &providerConfiguration{
6566
commitMessagePrefix: d.Get(commitMessagePrefixKey).(string),
66-
githubClient: github.NewClient(tc),
67+
githubClient: gc,
6768
githubEmail: d.Get(githubEmailKey).(string),
6869
githubUsername: d.Get(githubUsernameKey).(string),
6970
gpgSecretKey: sk,

go.mod

Lines changed: 61 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -5,76 +5,97 @@ go 1.18
55
require (
66
github.com/form3tech-oss/go-github-utils v0.0.0-20220202160928-550ce279ed0c
77
github.com/google/go-github/v54 v54.0.0
8-
github.com/hashicorp/terraform-plugin-sdk v1.7.0
9-
golang.org/x/oauth2 v0.11.0
8+
github.com/hashicorp/terraform-plugin-sdk v1.17.2
9+
github.com/integrations/terraform-provider-github/v5 v5.34.0
1010
)
1111

1212
require (
13-
cloud.google.com/go v0.45.1 // indirect
13+
cloud.google.com/go v0.110.2 // indirect
14+
cloud.google.com/go/compute v1.20.1 // indirect
15+
cloud.google.com/go/compute/metadata v0.2.3 // indirect
16+
cloud.google.com/go/iam v0.13.0 // indirect
17+
cloud.google.com/go/storage v1.29.0 // indirect
18+
github.com/Masterminds/goutils v1.1.1 // indirect
19+
github.com/Masterminds/semver v1.5.0 // indirect
20+
github.com/Masterminds/sprig v2.22.0+incompatible // indirect
1421
github.com/ProtonMail/go-crypto v0.0.0-20230217124315-7d5c6f04bbb8 // indirect
1522
github.com/agext/levenshtein v1.2.2 // indirect
16-
github.com/apparentlymart/go-cidr v1.0.1 // indirect
17-
github.com/apparentlymart/go-textseg v1.0.0 // indirect
23+
github.com/apparentlymart/go-cidr v1.1.0 // indirect
24+
github.com/apparentlymart/go-textseg/v12 v12.0.0 // indirect
25+
github.com/apparentlymart/go-textseg/v13 v13.0.0 // indirect
1826
github.com/armon/go-radix v1.0.0 // indirect
19-
github.com/aws/aws-sdk-go v1.25.3 // indirect
27+
github.com/aws/aws-sdk-go v1.44.122 // indirect
2028
github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect
2129
github.com/bgentry/speakeasy v0.1.0 // indirect
2230
github.com/cloudflare/circl v1.3.3 // indirect
2331
github.com/davecgh/go-spew v1.1.1 // indirect
24-
github.com/fatih/color v1.7.0 // indirect
32+
github.com/fatih/color v1.13.0 // indirect
33+
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
2534
github.com/golang/protobuf v1.5.3 // indirect
2635
github.com/google/go-cmp v0.5.9 // indirect
27-
github.com/google/go-github/v42 v42.0.0 // indirect
2836
github.com/google/go-querystring v1.1.0 // indirect
29-
github.com/google/uuid v1.1.1 // indirect
30-
github.com/googleapis/gax-go/v2 v2.0.5 // indirect
37+
github.com/google/s2a-go v0.1.4 // indirect
38+
github.com/google/uuid v1.3.0 // indirect
39+
github.com/googleapis/enterprise-certificate-proxy v0.2.3 // indirect
40+
github.com/googleapis/gax-go/v2 v2.11.0 // indirect
3141
github.com/hashicorp/errwrap v1.0.0 // indirect
32-
github.com/hashicorp/go-cleanhttp v0.5.1 // indirect
33-
github.com/hashicorp/go-getter v1.4.0 // indirect
34-
github.com/hashicorp/go-hclog v0.9.2 // indirect
35-
github.com/hashicorp/go-multierror v1.0.0 // indirect
36-
github.com/hashicorp/go-plugin v1.0.1 // indirect
42+
github.com/hashicorp/go-checkpoint v0.5.0 // indirect
43+
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
44+
github.com/hashicorp/go-getter v1.7.0 // indirect
45+
github.com/hashicorp/go-hclog v1.2.0 // indirect
46+
github.com/hashicorp/go-multierror v1.1.1 // indirect
47+
github.com/hashicorp/go-plugin v1.3.0 // indirect
3748
github.com/hashicorp/go-safetemp v1.0.0 // indirect
3849
github.com/hashicorp/go-uuid v1.0.1 // indirect
39-
github.com/hashicorp/go-version v1.2.0 // indirect
40-
github.com/hashicorp/golang-lru v0.5.3 // indirect
41-
github.com/hashicorp/hcl v0.0.0-20170504190234-a4b07c25de5f // indirect
42-
github.com/hashicorp/hcl/v2 v2.0.0 // indirect
50+
github.com/hashicorp/go-version v1.6.0 // indirect
51+
github.com/hashicorp/hcl v1.0.0 // indirect
52+
github.com/hashicorp/hcl/v2 v2.8.2 // indirect
4353
github.com/hashicorp/logutils v1.0.0 // indirect
44-
github.com/hashicorp/terraform-config-inspect v0.0.0-20191115094559-17f92b0546e8 // indirect
45-
github.com/hashicorp/terraform-json v0.4.0 // indirect
46-
github.com/hashicorp/terraform-plugin-test v1.2.0 // indirect
47-
github.com/hashicorp/terraform-svchost v0.0.0-20191011084731-65d371908596 // indirect
54+
github.com/hashicorp/terraform-config-inspect v0.0.0-20191212124732-c6ae6269b9d7 // indirect
55+
github.com/hashicorp/terraform-exec v0.13.3 // indirect
56+
github.com/hashicorp/terraform-json v0.10.0 // indirect
57+
github.com/hashicorp/terraform-plugin-test/v2 v2.2.1 // indirect
58+
github.com/hashicorp/terraform-svchost v0.0.0-20200729002733-f050f53b9734 // indirect
4859
github.com/hashicorp/yamux v0.0.0-20181012175058-2f1d1f20f75d // indirect
49-
github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af // indirect
50-
github.com/mattn/go-colorable v0.1.1 // indirect
51-
github.com/mattn/go-isatty v0.0.5 // indirect
52-
github.com/mitchellh/cli v1.0.0 // indirect
60+
github.com/huandu/xstrings v1.3.2 // indirect
61+
github.com/imdario/mergo v0.3.12 // indirect
62+
github.com/jmespath/go-jmespath v0.4.0 // indirect
63+
github.com/klauspost/compress v1.15.11 // indirect
64+
github.com/mattn/go-colorable v0.1.13 // indirect
65+
github.com/mattn/go-isatty v0.0.16 // indirect
66+
github.com/mitchellh/cli v1.1.2 // indirect
5367
github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db // indirect
5468
github.com/mitchellh/copystructure v1.0.0 // indirect
5569
github.com/mitchellh/go-homedir v1.1.0 // indirect
56-
github.com/mitchellh/go-testing-interface v1.0.0 // indirect
70+
github.com/mitchellh/go-testing-interface v1.14.1 // indirect
5771
github.com/mitchellh/go-wordwrap v1.0.0 // indirect
58-
github.com/mitchellh/mapstructure v1.1.2 // indirect
72+
github.com/mitchellh/mapstructure v1.5.0 // indirect
5973
github.com/mitchellh/reflectwalk v1.0.1 // indirect
6074
github.com/oklog/run v1.0.0 // indirect
61-
github.com/posener/complete v1.2.1 // indirect
62-
github.com/spf13/afero v1.2.2 // indirect
63-
github.com/ulikunitz/xz v0.5.5 // indirect
64-
github.com/vmihailenco/msgpack v4.0.1+incompatible // indirect
65-
github.com/zclconf/go-cty v1.2.1 // indirect
66-
github.com/zclconf/go-cty-yaml v1.0.1 // indirect
67-
go.opencensus.io v0.22.0 // indirect
75+
github.com/posener/complete v1.2.3 // indirect
76+
github.com/shurcooL/githubv4 v0.0.0-20221126192849-0b5c4c7994eb // indirect
77+
github.com/shurcooL/graphql v0.0.0-20220606043923-3cf50f8a0a29 // indirect
78+
github.com/spf13/afero v1.4.1 // indirect
79+
github.com/ulikunitz/xz v0.5.10 // indirect
80+
github.com/vmihailenco/msgpack/v4 v4.3.12 // indirect
81+
github.com/vmihailenco/tagparser v0.1.1 // indirect
82+
github.com/zclconf/go-cty v1.8.2 // indirect
83+
github.com/zclconf/go-cty-yaml v1.0.2 // indirect
84+
go.opencensus.io v0.24.0 // indirect
6885
golang.org/x/crypto v0.12.0 // indirect
6986
golang.org/x/net v0.14.0 // indirect
87+
golang.org/x/oauth2 v0.11.0 // indirect
7088
golang.org/x/sys v0.11.0 // indirect
7189
golang.org/x/text v0.12.0 // indirect
72-
google.golang.org/api v0.9.0 // indirect
90+
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
91+
google.golang.org/api v0.126.0 // indirect
7392
google.golang.org/appengine v1.6.7 // indirect
74-
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55 // indirect
75-
google.golang.org/grpc v1.23.0 // indirect
93+
google.golang.org/genproto v0.0.0-20230530153820-e85fd2cbaebc // indirect
94+
google.golang.org/genproto/googleapis/api v0.0.0-20230530153820-e85fd2cbaebc // indirect
95+
google.golang.org/genproto/googleapis/rpc v0.0.0-20230530153820-e85fd2cbaebc // indirect
96+
google.golang.org/grpc v1.55.0 // indirect
7697
google.golang.org/protobuf v1.31.0 // indirect
77-
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 // indirect
98+
gopkg.in/square/go-jose.v2 v2.6.0 // indirect
7899
)
79100

80101
// TODO: Remove this, this is a temporary measure, pointing to branch which has required updates

0 commit comments

Comments
 (0)