Skip to content

Commit ea164ee

Browse files
committed
✨ Added client module to ease the creation of ClientAPI
1 parent c8699cb commit ea164ee

File tree

6 files changed

+118
-25
lines changed

6 files changed

+118
-25
lines changed

changes/20250318181814.feature

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
:sparkles: Added client module to ease the creation of ClientAPI

changes/20250318183651.bugfix

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
:arrow_up: Update dependencies

utils/client/client.go

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package client
2+
3+
import (
4+
_http "net/http"
5+
"net/url"
6+
7+
"github.com/go-logr/logr"
8+
9+
_client "github.com/ARM-software/embedded-development-services-client/client"
10+
"github.com/ARM-software/golang-utils/utils/commonerrors"
11+
"github.com/ARM-software/golang-utils/utils/http"
12+
)
13+
14+
// NewClient returns a new API client based on request configuration
15+
func NewClient(cfg *http.RequestConfiguration, logger logr.Logger, underlyingHTTPClient *_http.Client) (c *_client.APIClient, err error) {
16+
if logger.IsZero() {
17+
err = commonerrors.ErrNoLogger
18+
return
19+
}
20+
if cfg == nil {
21+
err = commonerrors.UndefinedVariable("configuration")
22+
return
23+
}
24+
err = cfg.Validate()
25+
if err != nil {
26+
err = commonerrors.WrapError(commonerrors.ErrInvalid, err, "invalid client configuration")
27+
return
28+
}
29+
30+
httpClientCfg := http.DefaultRobustHTTPClientConfiguration()
31+
httpClient := http.NewConfigurableRetryableOauthClientWithLoggerAndCustomClient(httpClientCfg, underlyingHTTPClient, logger, cfg.Authorisation.AccessToken)
32+
clientCfg := newClientConfiguration(cfg)
33+
clientCfg.HTTPClient = httpClient.StandardClient()
34+
c = _client.NewAPIClient(clientCfg)
35+
return
36+
}
37+
38+
func newClientConfiguration(cfg *http.RequestConfiguration) (clientCfg *_client.Configuration) {
39+
clientCfg = _client.NewConfiguration()
40+
if cfg.Target.Host != "" {
41+
basePathURL, err := url.Parse(cfg.Target.Host)
42+
if err == nil {
43+
clientCfg.Host = basePathURL.Host
44+
clientCfg.Scheme = basePathURL.Scheme
45+
}
46+
}
47+
clientCfg.UserAgent = cfg.UserAgent
48+
49+
return
50+
}

utils/client/client_test.go

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package client
2+
3+
import (
4+
"testing"
5+
6+
"github.com/go-faker/faker/v4"
7+
"github.com/go-logr/logr"
8+
"github.com/stretchr/testify/assert"
9+
10+
"github.com/ARM-software/golang-utils/utils/commonerrors"
11+
"github.com/ARM-software/golang-utils/utils/commonerrors/errortest"
12+
"github.com/ARM-software/golang-utils/utils/http"
13+
"github.com/ARM-software/golang-utils/utils/logs/logrimp"
14+
)
15+
16+
func TestNewClient(t *testing.T) {
17+
cfg := http.DefaultHTTPRequestWithAuthorisationConfigurationEnforced(faker.Sentence())
18+
c, err := NewClient(cfg, logr.Discard(), nil)
19+
errortest.RequireError(t, err, commonerrors.ErrNoLogger)
20+
assert.Empty(t, c)
21+
c, err = NewClient(cfg, logrimp.NewStdOutLogr(), nil)
22+
errortest.RequireError(t, err, commonerrors.ErrInvalid)
23+
assert.Empty(t, c)
24+
c, err = NewClient(nil, logrimp.NewStdOutLogr(), nil)
25+
errortest.RequireError(t, err, commonerrors.ErrUndefined)
26+
assert.Empty(t, c)
27+
}

utils/go.mod

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,37 +4,41 @@ go 1.24
44

55
require (
66
github.com/ARM-software/embedded-development-services-client/client v1.43.0
7-
github.com/ARM-software/golang-utils/utils v1.84.0
7+
github.com/ARM-software/golang-utils/utils v1.87.0
88
github.com/go-faker/faker/v4 v4.6.0
99
github.com/go-logr/logr v1.4.2
1010
github.com/stretchr/testify v1.10.0
1111
go.uber.org/atomic v1.11.0
1212
go.uber.org/goleak v1.3.0
1313
go.uber.org/mock v0.5.0
14-
golang.org/x/sync v0.11.0
14+
golang.org/x/sync v0.12.0
1515
)
1616

1717
require (
1818
github.com/OneOfOne/xxhash v1.2.8 // indirect
19+
github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496 // indirect
1920
github.com/avast/retry-go/v4 v4.6.1 // indirect
2021
github.com/bmatcuk/doublestar/v3 v3.0.0 // indirect
2122
github.com/bombsimon/logrusr/v4 v4.1.0 // indirect
2223
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
23-
github.com/deckarep/golang-set/v2 v2.7.0 // indirect
24+
github.com/deckarep/golang-set/v2 v2.8.0 // indirect
2425
github.com/djherbis/times v1.6.0 // indirect
2526
github.com/dolmen-go/contextio v1.0.0 // indirect
2627
github.com/ebitengine/purego v0.8.2 // indirect
2728
github.com/evanphx/hclogr v0.2.0 // indirect
2829
github.com/fatih/color v1.18.0 // indirect
2930
github.com/fsnotify/fsnotify v1.8.0 // indirect
31+
github.com/go-http-utils/headers v0.0.0-20181008091004-fed159eddc2a // indirect
3032
github.com/go-logr/stdr v1.2.2 // indirect
3133
github.com/go-logr/zapr v1.3.0 // indirect
3234
github.com/go-ole/go-ole v1.3.0 // indirect
3335
github.com/go-ozzo/ozzo-validation/v4 v4.3.0 // indirect
3436
github.com/gogs/chardet v0.0.0-20211120154057-b7413eaefb8f // indirect
3537
github.com/google/cabbie v1.0.5 // indirect
3638
github.com/google/glazier v0.0.0-20250102133340-c90d5bf10f5f // indirect
39+
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
3740
github.com/hashicorp/go-hclog v1.6.3 // indirect
41+
github.com/hashicorp/go-retryablehttp v0.7.7 // indirect
3842
github.com/hashicorp/hcl v1.0.0 // indirect
3943
github.com/iamacarpet/go-win64api v0.0.0-20240507095429-873e84e85847 // indirect
4044
github.com/joho/godotenv v1.5.1 // indirect
@@ -55,11 +59,11 @@ require (
5559
github.com/sagikazarmark/slog-shim v0.1.0 // indirect
5660
github.com/sasha-s/go-deadlock v0.3.5 // indirect
5761
github.com/scjalliance/comshim v0.0.0-20240712181150-e070933cb68e // indirect
58-
github.com/shirou/gopsutil/v4 v4.25.1 // indirect
62+
github.com/shirou/gopsutil/v4 v4.25.2 // indirect
5963
github.com/sirupsen/logrus v1.9.3 // indirect
6064
github.com/sourcegraph/conc v0.3.0 // indirect
6165
github.com/spaolacci/murmur3 v1.1.0 // indirect
62-
github.com/spf13/afero v1.12.0 // indirect
66+
github.com/spf13/afero v1.14.0 // indirect
6367
github.com/spf13/cast v1.7.1 // indirect
6468
github.com/spf13/pflag v1.0.6 // indirect
6569
github.com/spf13/viper v1.19.0 // indirect
@@ -70,10 +74,11 @@ require (
7074
github.com/zailic/slogr v0.0.2-alpha // indirect
7175
go.uber.org/multierr v1.11.0 // indirect
7276
go.uber.org/zap v1.27.0 // indirect
73-
golang.org/x/crypto v0.33.0 // indirect
77+
golang.org/x/crypto v0.36.0 // indirect
7478
golang.org/x/exp v0.0.0-20241217172543-b2144cdd0a67 // indirect
75-
golang.org/x/sys v0.30.0 // indirect
76-
golang.org/x/text v0.22.0 // indirect
79+
golang.org/x/oauth2 v0.28.0 // indirect
80+
golang.org/x/sys v0.31.0 // indirect
81+
golang.org/x/text v0.23.0 // indirect
7782
gopkg.in/ini.v1 v1.67.0 // indirect
7883
gopkg.in/toast.v1 v1.0.0-20180812000517-0a84660828b2 // indirect
7984
gopkg.in/yaml.v3 v3.0.1 // indirect

utils/go.sum

Lines changed: 26 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
bitbucket.org/creachadair/stringset v0.0.9/go.mod h1:t+4WcQ4+PXTa8aQdNKe40ZP6iwesoMFWAxPGd3UGjyY=
22
github.com/ARM-software/embedded-development-services-client/client v1.43.0 h1:7+9IWMogVgeDFUBYYOJxRKH7pgC8arjGFyoayJDhtWw=
33
github.com/ARM-software/embedded-development-services-client/client v1.43.0/go.mod h1:jY6nM6Cg1JQrTZHjAkfNdYxnVYU/2Orj11BnnAQs4PU=
4-
github.com/ARM-software/golang-utils/utils v1.84.0 h1:QFC8aZx+/VoqYWy5h9zU9noLb9cbU/uNs/pXrXzWS9Y=
5-
github.com/ARM-software/golang-utils/utils v1.84.0/go.mod h1:8MAHhzpyHhazPMTeuIMaNsSgZI6z+PNHPxoq0qhPxw0=
4+
github.com/ARM-software/golang-utils/utils v1.87.0 h1:1UuiwXOL1Dw6jbF0oQlSR0ULhUajFCudCrUaRLUdmz4=
5+
github.com/ARM-software/golang-utils/utils v1.87.0/go.mod h1:skCi9TZXgezYOkTi9YymsAFTbBDOXfl5vK7AAoBdiPQ=
66
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
77
github.com/OneOfOne/xxhash v1.2.8 h1:31czK/TI9sNkxIKfaUfGlU47BAxQ0ztGgd9vPyqimf8=
88
github.com/OneOfOne/xxhash v1.2.8/go.mod h1:eZbhyaAYD41SGSSsnmcpxVoRiQ/MPUTjUdIIOT9Um7Q=
@@ -22,8 +22,8 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs
2222
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
2323
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
2424
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
25-
github.com/deckarep/golang-set/v2 v2.7.0 h1:gIloKvD7yH2oip4VLhsv3JyLLFnC0Y2mlusgcvJYW5k=
26-
github.com/deckarep/golang-set/v2 v2.7.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4=
25+
github.com/deckarep/golang-set/v2 v2.8.0 h1:swm0rlPCmdWn9mESxKOjWk8hXSqoxOp+ZlfuyaAdFlQ=
26+
github.com/deckarep/golang-set/v2 v2.8.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4=
2727
github.com/djherbis/times v1.6.0 h1:w2ctJ92J8fBvWPxugmXIv7Nz7Q3iDMKNx9v5ocVH20c=
2828
github.com/djherbis/times v1.6.0/go.mod h1:gOHeRAz2h+VJNZ5Gmc/o7iD9k4wW7NMVqieYCY99oc0=
2929
github.com/dolmen-go/contextio v1.0.0 h1:bNfCo4gsRIhMeo6Z1ImXzkxZG81B6I5t2fUFJjphdAU=
@@ -43,6 +43,8 @@ github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/
4343
github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0=
4444
github.com/go-faker/faker/v4 v4.6.0 h1:6aOPzNptRiDwD14HuAnEtlTa+D1IfFuEHO8+vEFwjTs=
4545
github.com/go-faker/faker/v4 v4.6.0/go.mod h1:ZmrHuVtTTm2Em9e0Du6CJ9CADaLEzGXW62z1YqFH0m0=
46+
github.com/go-http-utils/headers v0.0.0-20181008091004-fed159eddc2a h1:v6zMvHuY9yue4+QkG/HQ/W67wvtQmWJ4SDo9aK/GIno=
47+
github.com/go-http-utils/headers v0.0.0-20181008091004-fed159eddc2a/go.mod h1:I79BieaU4fxrw4LMXby6q5OS9XnoR9UIKLOzDFjUmuw=
4648
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
4749
github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
4850
github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
@@ -84,16 +86,21 @@ github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw
8486
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
8587
github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
8688
github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
87-
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
8889
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
90+
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
91+
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
8992
github.com/google/logger v1.1.0/go.mod h1:w7O8nrRr0xufejBlQMI83MXqRusvREoJdaAxV+CoAB4=
9093
github.com/google/logger v1.1.1/go.mod h1:BkeJZ+1FhQ+/d087r4dzojEg1u2ZX+ZqG1jTUrLM+zQ=
9194
github.com/google/subcommands v1.2.0/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk=
9295
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
9396
github.com/google/winops v0.0.0-20210803215038-c8511b84de2b/go.mod h1:ShbX8v8clPm/3chw9zHVwtW3QhrFpL8mXOwNxClt4pg=
9497
github.com/groob/plist v0.0.0-20210519001750-9f754062e6d6/go.mod h1:itkABA+w2cw7x5nYUS/pLRef6ludkZKOigbROmCTaFw=
98+
github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ=
99+
github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48=
95100
github.com/hashicorp/go-hclog v1.6.3 h1:Qr2kF+eVWjTiYmU7Y31tYlP1h0q/X3Nl3tPGdaB11/k=
96101
github.com/hashicorp/go-hclog v1.6.3/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M=
102+
github.com/hashicorp/go-retryablehttp v0.7.7 h1:C8hUCYzor8PIfXHa4UrZkU4VvK8o9ISHxT2Q8+VepXU=
103+
github.com/hashicorp/go-retryablehttp v0.7.7/go.mod h1:pkQpWZeYWskR+D1tR2O5OcBFOxfA7DoAO6xtkuQnHTk=
97104
github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
98105
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
99106
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
@@ -161,16 +168,16 @@ github.com/sasha-s/go-deadlock v0.3.5/go.mod h1:bugP6EGbdGYObIlx7pUZtWqlvo8k9H6v
161168
github.com/scjalliance/comshim v0.0.0-20190308082608-cf06d2532c4e/go.mod h1:9Tc1SKnfACJb9N7cw2eyuI6xzy845G7uZONBsi5uPEA=
162169
github.com/scjalliance/comshim v0.0.0-20240712181150-e070933cb68e h1:DHQTQhd+UU97hLiIaH5oDf61NqH6iBoHBgZoeWc1olc=
163170
github.com/scjalliance/comshim v0.0.0-20240712181150-e070933cb68e/go.mod h1:RS825256UevDX5P1oImjU4qUY3fwF6HDLHUD+Zbbd/A=
164-
github.com/shirou/gopsutil/v4 v4.25.1 h1:QSWkTc+fu9LTAWfkZwZ6j8MSUk4A2LV7rbH0ZqmLjXs=
165-
github.com/shirou/gopsutil/v4 v4.25.1/go.mod h1:RoUCUpndaJFtT+2zsZzzmhvbfGoDCJ7nFXKJf8GqJbI=
171+
github.com/shirou/gopsutil/v4 v4.25.2 h1:NMscG3l2CqtWFS86kj3vP7soOczqrQYIEhO/pMvvQkk=
172+
github.com/shirou/gopsutil/v4 v4.25.2/go.mod h1:34gBYJzyqCDT11b6bMHP0XCvWeU3J61XRT7a2EmCRTA=
166173
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
167174
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
168175
github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo=
169176
github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0=
170177
github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI=
171178
github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
172-
github.com/spf13/afero v1.12.0 h1:UcOPyRBYczmFn6yvphxkn9ZEOY65cpwGKb5mL36mrqs=
173-
github.com/spf13/afero v1.12.0/go.mod h1:ZTlWwG4/ahT8W7T0WQ5uYmjI9duaLQGy3Q2OAl4sk/4=
179+
github.com/spf13/afero v1.14.0 h1:9tH6MapGnn/j0eb0yIXiLjERO8RB6xIVZRDCX7PtqWA=
180+
github.com/spf13/afero v1.14.0/go.mod h1:acJQ8t0ohCGuMN3O+Pv0V0hgMxNYDlvdk+VTfyZmbYo=
174181
github.com/spf13/cast v1.7.1 h1:cuNEagBQEHWN1FnbGEjCXL2szYEXqfJPbP2HNUaca9Y=
175182
github.com/spf13/cast v1.7.1/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo=
176183
github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o=
@@ -205,18 +212,20 @@ go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8=
205212
go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E=
206213
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
207214
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
208-
golang.org/x/crypto v0.33.0 h1:IOBPskki6Lysi0lo9qQvbxiQ+FvsCC/YWOecCHAixus=
209-
golang.org/x/crypto v0.33.0/go.mod h1:bVdXmD7IV/4GdElGPozy6U7lWdRXA4qyRVGJV57uQ5M=
215+
golang.org/x/crypto v0.36.0 h1:AnAEvhDddvBdpY+uR+MyHmuZzzNqXSe/GvuDeob5L34=
216+
golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc=
210217
golang.org/x/exp v0.0.0-20241217172543-b2144cdd0a67 h1:1UoZQm6f0P/ZO0w1Ri+f+ifG/gXhegadRdwBIXEFWDo=
211218
golang.org/x/exp v0.0.0-20241217172543-b2144cdd0a67/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c=
212219
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
213220
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
214221
golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
215222
golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
216223
golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
224+
golang.org/x/oauth2 v0.28.0 h1:CrgCKl8PPAVtLnU3c+EDw6x11699EWlsDeWNWKdIOkc=
225+
golang.org/x/oauth2 v0.28.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8=
217226
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
218-
golang.org/x/sync v0.11.0 h1:GGz8+XQP4FvTTrjZPzNKTMFtSXH80RAzG+5ghFPgK9w=
219-
golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
227+
golang.org/x/sync v0.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw=
228+
golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
220229
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
221230
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
222231
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -244,14 +253,14 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc
244253
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
245254
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
246255
golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
247-
golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc=
248-
golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
256+
golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik=
257+
golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
249258
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
250259
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
251260
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
252261
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
253-
golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM=
254-
golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY=
262+
golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY=
263+
golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4=
255264
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
256265
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
257266
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=

0 commit comments

Comments
 (0)