Skip to content

Commit 4b9c7a5

Browse files
authored
Merge branch 'main' into feat/add-aws-profile
2 parents d3087cf + 8aca02f commit 4b9c7a5

12 files changed

+155
-179
lines changed

.github/workflows/ci.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ jobs:
9494
if: github.event_name != 'pull_request'
9595

9696
- name: Download Syft
97-
uses: anchore/sbom-action/download-syft@ab9d16d4b419c9d1a02df5213fa0ebe965ca5a57 # v0.17.1
97+
uses: anchore/sbom-action/download-syft@61119d458adab75f756bc0b9e4bde25725f86a7a # v0.17.2
9898
if: github.ref_type == 'tag'
9999

100100
- name: Install Cosign

.github/workflows/codeql-analysis.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ jobs:
5757

5858
# Initializes the CodeQL tools for scanning.
5959
- name: Initialize CodeQL
60-
uses: github/codeql-action/init@883d8588e56d1753a8a58c1c86e88976f0c23449 # v3.26.3
60+
uses: github/codeql-action/init@2c779ab0d087cd7fe7b826087247c2c81f27bfa6 # v3.26.5
6161
with:
6262
languages: ${{ matrix.language }}
6363
build-mode: ${{ matrix.build-mode }}
@@ -69,6 +69,6 @@ jobs:
6969
# queries: security-extended,security-and-quality
7070

7171
- name: Perform CodeQL Analysis
72-
uses: github/codeql-action/analyze@883d8588e56d1753a8a58c1c86e88976f0c23449 # v3.26.3
72+
uses: github/codeql-action/analyze@2c779ab0d087cd7fe7b826087247c2c81f27bfa6 # v3.26.5
7373
with:
7474
category: "/language:${{matrix.language}}"

.github/workflows/lint.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ jobs:
3232
- name: Lint Go
3333
uses: golangci/golangci-lint-action@aaa42aa0628b4ae2578232a66b541047968fac86 # v6.1.0
3434
with:
35-
version: v1.60.2 # renovate: datasource=github-tags depName=golangci/golangci-lint
35+
version: v1.60.3 # renovate: datasource=github-tags depName=golangci/golangci-lint
3636

3737
actionlint:
3838
name: Actionlint

.github/workflows/scorecards.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,6 @@ jobs:
5656

5757
# Upload the results to GitHub's code scanning dashboard.
5858
- name: "Upload to code-scanning"
59-
uses: github/codeql-action/upload-sarif@883d8588e56d1753a8a58c1c86e88976f0c23449 # v3.26.3
59+
uses: github/codeql-action/upload-sarif@2c779ab0d087cd7fe7b826087247c2c81f27bfa6 # v3.26.5
6060
with:
6161
sarif_file: results.sarif

.goreleaser.yml

-3
Original file line numberDiff line numberDiff line change
@@ -115,9 +115,6 @@ announce:
115115
milestones:
116116
- close: true
117117

118-
snapshot:
119-
name_template: "edge"
120-
121118
snapcrafts:
122119
- summary: NGINX Plus Integration with Cloud Autoscaling
123120
description: |

.pre-commit-config.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ repos:
3030
- id: detect-private-key
3131

3232
- repo: https://github.com/golangci/golangci-lint
33-
rev: v1.60.2
33+
rev: v1.60.3
3434
hooks:
3535
- id: golangci-lint-full
3636

LICENSES

+13-14
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,9 @@
1-
github.com/Azure/azure-sdk-for-go,https://github.com/Azure/azure-sdk-for-go/blob/v68.0.0/LICENSE.txt,MIT
2-
github.com/Azure/go-autorest/autorest,https://github.com/Azure/go-autorest/blob/autorest/v0.11.28/autorest/LICENSE,Apache-2.0
3-
github.com/Azure/go-autorest/autorest/adal,https://github.com/Azure/go-autorest/blob/autorest/adal/v0.9.22/autorest/adal/LICENSE,Apache-2.0
4-
github.com/Azure/go-autorest/autorest/azure/auth,https://github.com/Azure/go-autorest/blob/autorest/azure/auth/v0.5.13/autorest/azure/auth/LICENSE,Apache-2.0
5-
github.com/Azure/go-autorest/autorest/azure/cli,https://github.com/Azure/go-autorest/blob/autorest/azure/cli/v0.4.6/autorest/azure/cli/LICENSE,Apache-2.0
6-
github.com/Azure/go-autorest/autorest/date,https://github.com/Azure/go-autorest/blob/autorest/date/v0.3.0/autorest/date/LICENSE,Apache-2.0
7-
github.com/Azure/go-autorest/autorest/to,https://github.com/Azure/go-autorest/blob/autorest/to/v0.4.0/autorest/to/LICENSE,Apache-2.0
8-
github.com/Azure/go-autorest/autorest/validation,https://github.com/Azure/go-autorest/blob/autorest/validation/v0.3.1/autorest/validation/LICENSE,Apache-2.0
9-
github.com/Azure/go-autorest/logger,https://github.com/Azure/go-autorest/blob/logger/v0.2.1/logger/LICENSE,Apache-2.0
10-
github.com/Azure/go-autorest/tracing,https://github.com/Azure/go-autorest/blob/tracing/v0.6.0/tracing/LICENSE,Apache-2.0
1+
github.com/Azure/azure-sdk-for-go/sdk/azcore,https://github.com/Azure/azure-sdk-for-go/blob/sdk/azcore/v1.13.0/sdk/azcore/LICENSE.txt,MIT
2+
github.com/Azure/azure-sdk-for-go/sdk/azidentity,https://github.com/Azure/azure-sdk-for-go/blob/sdk/azidentity/v1.7.0/sdk/azidentity/LICENSE.txt,MIT
3+
github.com/Azure/azure-sdk-for-go/sdk/internal,https://github.com/Azure/azure-sdk-for-go/blob/sdk/internal/v1.10.0/sdk/internal/LICENSE.txt,MIT
4+
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v6,https://github.com/Azure/azure-sdk-for-go/blob/sdk/resourcemanager/compute/armcompute/v6.0.0/sdk/resourcemanager/compute/armcompute/LICENSE.txt,MIT
5+
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v6,https://github.com/Azure/azure-sdk-for-go/blob/sdk/resourcemanager/network/armnetwork/v6.0.0/sdk/resourcemanager/network/armnetwork/LICENSE.txt,MIT
6+
github.com/AzureAD/microsoft-authentication-library-for-go/apps,https://github.com/AzureAD/microsoft-authentication-library-for-go/blob/v1.2.2/LICENSE,MIT
117
github.com/aws/aws-sdk-go-v2,https://github.com/aws/aws-sdk-go-v2/blob/v1.30.4/LICENSE.txt,Apache-2.0
128
github.com/aws/aws-sdk-go-v2/config,https://github.com/aws/aws-sdk-go-v2/blob/config/v1.27.28/config/LICENSE.txt,Apache-2.0
139
github.com/aws/aws-sdk-go-v2/credentials,https://github.com/aws/aws-sdk-go-v2/blob/credentials/v1.17.28/credentials/LICENSE.txt,Apache-2.0
@@ -25,11 +21,14 @@ github.com/aws/aws-sdk-go-v2/service/ssooidc,https://github.com/aws/aws-sdk-go-v
2521
github.com/aws/aws-sdk-go-v2/service/sts,https://github.com/aws/aws-sdk-go-v2/blob/service/sts/v1.30.4/service/sts/LICENSE.txt,Apache-2.0
2622
github.com/aws/smithy-go,https://github.com/aws/smithy-go/blob/v1.20.4/LICENSE,Apache-2.0
2723
github.com/aws/smithy-go/internal/sync/singleflight,https://github.com/aws/smithy-go/blob/v1.20.4/internal/sync/singleflight/LICENSE,BSD-3-Clause
28-
github.com/dimchansky/utfbom,https://github.com/dimchansky/utfbom/blob/v1.1.1/LICENSE,Apache-2.0
29-
github.com/golang-jwt/jwt/v4,https://github.com/golang-jwt/jwt/blob/v4.5.0/LICENSE,MIT
24+
github.com/golang-jwt/jwt/v5,https://github.com/golang-jwt/jwt/blob/v5.2.1/LICENSE,MIT
25+
github.com/google/uuid,https://github.com/google/uuid/blob/v1.6.0/LICENSE,BSD-3-Clause
3026
github.com/jmespath/go-jmespath,https://github.com/jmespath/go-jmespath/blob/v0.4.0/LICENSE,Apache-2.0
31-
github.com/mitchellh/go-homedir,https://github.com/mitchellh/go-homedir/blob/v1.1.0/LICENSE,MIT
27+
github.com/kylelemons/godebug,https://github.com/kylelemons/godebug/blob/v1.1.0/LICENSE,Apache-2.0
3228
github.com/nginxinc/nginx-asg-sync/cmd/sync,https://github.com/nginxinc/nginx-asg-sync/blob/HEAD/LICENSE,BSD-2-Clause
3329
github.com/nginxinc/nginx-plus-go-client/client,https://github.com/nginxinc/nginx-plus-go-client/blob/v1.3.0/LICENSE,Apache-2.0
34-
golang.org/x/crypto/pkcs12,https://cs.opensource.google/go/x/crypto/+/v0.17.0:LICENSE,BSD-3-Clause
30+
github.com/pkg/browser,https://github.com/pkg/browser/blob/5ac0b6a4141c/LICENSE,BSD-2-Clause
31+
golang.org/x/crypto/pkcs12,https://cs.opensource.google/go/x/crypto/+/v0.25.0:LICENSE,BSD-3-Clause
32+
golang.org/x/net,https://cs.opensource.google/go/x/net/+/v0.27.0:LICENSE,BSD-3-Clause
33+
golang.org/x/text,https://cs.opensource.google/go/x/text/+/v0.16.0:LICENSE,BSD-3-Clause
3534
gopkg.in/yaml.v3,https://github.com/go-yaml/yaml/blob/v3.0.1/LICENSE,MIT

Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
.DEFAULT_GOAL := build-goreleaser
22
# renovate: datasource=docker depName=golangci/golangci-lint
3-
GOLANGCI_LINT_VERSION = v1.60.2
3+
GOLANGCI_LINT_VERSION = v1.60.3
44
# renovate: datasource=docker depName=goreleaser/goreleaser
55
GORELEASER_VERSION = v2.2.0
66
# renovate: datasource=go depName=google/go-licenses

cmd/sync/azure.go

+50-33
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,17 @@ import (
55
"errors"
66
"fmt"
77

8-
"github.com/Azure/azure-sdk-for-go/profiles/latest/compute/mgmt/compute"
9-
"github.com/Azure/azure-sdk-for-go/profiles/latest/network/mgmt/network"
10-
"github.com/Azure/go-autorest/autorest/azure/auth"
8+
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
9+
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v6"
10+
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v6"
1111
yaml "gopkg.in/yaml.v3"
1212
)
1313

1414
// AzureClient allows you to get the list of IP addresses of VirtualMachines of a VirtualMachine Scale Set. It implements the CloudProvider interface.
1515
type AzureClient struct {
1616
config *azureConfig
17-
vMSSClient compute.VirtualMachineScaleSetsClient
18-
iFaceClient network.InterfacesClient
17+
vMSSClient *armcompute.VirtualMachineScaleSetsClient
18+
iFaceClient *armnetwork.InterfacesClient
1919
}
2020

2121
// NewAzureClient creates an AzureClient.
@@ -52,60 +52,70 @@ func parseAzureConfig(data []byte) (*azureConfig, error) {
5252
return cfg, nil
5353
}
5454

55+
func (client *AzureClient) listScaleSetsNetworkInterfaces(ctx context.Context, resourceGroupName, vmssName string) ([]*armnetwork.Interface, error) {
56+
var result []*armnetwork.Interface
57+
pager := client.iFaceClient.NewListVirtualMachineScaleSetNetworkInterfacesPager(resourceGroupName, vmssName, nil)
58+
for pager.More() {
59+
resp, err := pager.NextPage(ctx)
60+
if err != nil {
61+
return nil, fmt.Errorf("listing network interfaces: %w", err)
62+
}
63+
result = append(result, resp.Value...)
64+
}
65+
return result, nil
66+
}
67+
5568
// GetPrivateIPsForScalingGroup returns the list of IP addresses of instances of the Virtual Machine Scale Set.
5669
func (client *AzureClient) GetPrivateIPsForScalingGroup(name string) ([]string, error) {
5770
var ips []string
5871

5972
ctx := context.TODO()
6073

61-
for iFaces, err := client.iFaceClient.ListVirtualMachineScaleSetNetworkInterfaces(ctx, client.config.ResourceGroupName, name); iFaces.NotDone() || err != nil; err = iFaces.NextWithContext(ctx) {
62-
if err != nil {
63-
return nil, fmt.Errorf("couldn't get the list of network interfaces: %w", err)
64-
}
74+
iFaces, err := client.listScaleSetsNetworkInterfaces(ctx, client.config.ResourceGroupName, name)
75+
if err != nil {
76+
return nil, err
77+
}
6578

66-
for _, iFace := range iFaces.Values() {
67-
if iFace.VirtualMachine != nil && iFace.VirtualMachine.ID != nil && iFace.IPConfigurations != nil {
68-
for _, n := range *iFace.IPConfigurations {
69-
ip := getPrimaryIPFromInterfaceIPConfiguration(n)
70-
if ip != "" {
71-
ips = append(ips, *n.InterfaceIPConfigurationPropertiesFormat.PrivateIPAddress)
72-
break
73-
}
79+
for _, iFace := range iFaces {
80+
if iFace.Properties.VirtualMachine != nil && iFace.Properties.VirtualMachine.ID != nil && iFace.Properties.IPConfigurations != nil {
81+
for _, n := range iFace.Properties.IPConfigurations {
82+
ip := getPrimaryIPFromInterfaceIPConfiguration(n)
83+
if ip != "" {
84+
ips = append(ips, *n.Properties.PrivateIPAddress)
85+
break
7486
}
7587
}
7688
}
7789
}
90+
7891
return ips, nil
7992
}
8093

81-
func getPrimaryIPFromInterfaceIPConfiguration(ipConfig network.InterfaceIPConfiguration) string {
82-
if ipConfig == (network.InterfaceIPConfiguration{}) {
94+
func getPrimaryIPFromInterfaceIPConfiguration(ipConfig *armnetwork.InterfaceIPConfiguration) string {
95+
if ipConfig.Properties == nil {
8396
return ""
8497
}
8598

86-
if ipConfig.Primary == nil {
99+
if ipConfig.Properties.Primary == nil {
87100
return ""
88101
}
89102

90-
if !*ipConfig.Primary {
103+
if !*ipConfig.Properties.Primary {
91104
return ""
92105
}
93106

94-
if ipConfig.InterfaceIPConfigurationPropertiesFormat == nil {
107+
if ipConfig.Properties.PrivateIPAddress == nil {
95108
return ""
96109
}
97110

98-
if ipConfig.InterfaceIPConfigurationPropertiesFormat.PrivateIPAddress == nil {
99-
return ""
100-
}
101-
102-
return *ipConfig.InterfaceIPConfigurationPropertiesFormat.PrivateIPAddress
111+
return *ipConfig.Properties.PrivateIPAddress
103112
}
104113

105114
// CheckIfScalingGroupExists checks if the Virtual Machine Scale Set exists.
106115
func (client *AzureClient) CheckIfScalingGroupExists(name string) (bool, error) {
107116
ctx := context.TODO()
108-
vmss, err := client.vMSSClient.Get(ctx, client.config.ResourceGroupName, name, "userData")
117+
expandType := armcompute.ExpandTypesForGetVMScaleSetsUserData
118+
vmss, err := client.vMSSClient.Get(ctx, client.config.ResourceGroupName, name, &armcompute.VirtualMachineScaleSetsClientGetOptions{Expand: &expandType})
109119
if err != nil {
110120
return false, fmt.Errorf("couldn't check if a Virtual Machine Scale Set exists: %w", err)
111121
}
@@ -114,16 +124,23 @@ func (client *AzureClient) CheckIfScalingGroupExists(name string) (bool, error)
114124
}
115125

116126
func (client *AzureClient) configure() error {
117-
authorizer, err := auth.NewAuthorizerFromEnvironment()
127+
cred, err := azidentity.NewDefaultAzureCredential(nil)
118128
if err != nil {
119129
return fmt.Errorf("couldn't create authorizer: %w", err)
120130
}
121131

122-
client.vMSSClient = compute.NewVirtualMachineScaleSetsClient(client.config.SubscriptionID)
123-
client.vMSSClient.Authorizer = authorizer
132+
computeClientFactory, err := armcompute.NewClientFactory(client.config.SubscriptionID, cred, nil)
133+
if err != nil {
134+
return fmt.Errorf("couldn't create client factory: %w", err)
135+
}
136+
client.vMSSClient = computeClientFactory.NewVirtualMachineScaleSetsClient()
137+
138+
iclient, err := armnetwork.NewInterfacesClient(client.config.SubscriptionID, cred, nil)
139+
if err != nil {
140+
return fmt.Errorf("couldn't create interfaces client: %w", err)
141+
}
142+
client.iFaceClient = iclient
124143

125-
client.iFaceClient = network.NewInterfacesClient(client.config.SubscriptionID)
126-
client.iFaceClient.Authorizer = authorizer
127144
return nil
128145
}
129146

cmd/sync/azure_test.go

+11-11
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package main
33
import (
44
"testing"
55

6-
"github.com/Azure/azure-sdk-for-go/profiles/latest/network/mgmt/network"
6+
network "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v6"
77
)
88

99
type testInputAzure struct {
@@ -105,8 +105,8 @@ func TestGetPrimaryIPFromInterfaceIPConfiguration(t *testing.T) {
105105
t.Parallel()
106106
primary := true
107107
address := "127.0.0.1"
108-
ipConfig := network.InterfaceIPConfiguration{
109-
InterfaceIPConfigurationPropertiesFormat: &network.InterfaceIPConfigurationPropertiesFormat{
108+
ipConfig := &network.InterfaceIPConfiguration{
109+
Properties: &network.InterfaceIPConfigurationPropertiesFormat{
110110
Primary: &primary,
111111
PrivateIPAddress: &address,
112112
},
@@ -122,30 +122,30 @@ func TestGetPrimaryIPFromInterfaceIPConfigurationFail(t *testing.T) {
122122
primaryFalse := false
123123
primaryTrue := true
124124
tests := []struct {
125-
ipConfig network.InterfaceIPConfiguration
125+
ipConfig *network.InterfaceIPConfiguration
126126
msg string
127127
}{
128128
{
129-
ipConfig: network.InterfaceIPConfiguration{},
129+
ipConfig: &network.InterfaceIPConfiguration{},
130130
msg: "empty primary",
131131
},
132132
{
133-
ipConfig: network.InterfaceIPConfiguration{
134-
InterfaceIPConfigurationPropertiesFormat: &network.InterfaceIPConfigurationPropertiesFormat{
133+
ipConfig: &network.InterfaceIPConfiguration{
134+
Properties: &network.InterfaceIPConfigurationPropertiesFormat{
135135
Primary: &primaryFalse,
136136
},
137137
},
138138
msg: "not primary interface",
139139
},
140140
{
141-
ipConfig: network.InterfaceIPConfiguration{
142-
InterfaceIPConfigurationPropertiesFormat: nil,
141+
ipConfig: &network.InterfaceIPConfiguration{
142+
Properties: nil,
143143
},
144144
msg: "no interface properties",
145145
},
146146
{
147-
ipConfig: network.InterfaceIPConfiguration{
148-
InterfaceIPConfigurationPropertiesFormat: &network.InterfaceIPConfigurationPropertiesFormat{
147+
ipConfig: &network.InterfaceIPConfiguration{
148+
Properties: &network.InterfaceIPConfigurationPropertiesFormat{
149149
Primary: &primaryTrue,
150150
PrivateIPAddress: nil,
151151
},

go.mod

+19-20
Original file line numberDiff line numberDiff line change
@@ -4,40 +4,39 @@ module github.com/nginxinc/nginx-asg-sync
44
go 1.22.5
55

66
require (
7-
github.com/Azure/azure-sdk-for-go v68.0.0+incompatible
8-
github.com/Azure/go-autorest/autorest/azure/auth v0.5.13
7+
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.7.0
8+
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v6 v6.1.0
9+
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v6 v6.0.0
910
github.com/aws/aws-sdk-go-v2 v1.30.4
10-
github.com/aws/aws-sdk-go-v2/config v1.27.28
11+
github.com/aws/aws-sdk-go-v2/config v1.27.30
1112
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.12
12-
github.com/aws/aws-sdk-go-v2/service/autoscaling v1.43.4
13-
github.com/aws/aws-sdk-go-v2/service/ec2 v1.175.1
13+
github.com/aws/aws-sdk-go-v2/service/autoscaling v1.43.5
14+
github.com/aws/aws-sdk-go-v2/service/ec2 v1.176.0
1415
github.com/nginxinc/nginx-plus-go-client v1.3.0
1516
gopkg.in/yaml.v3 v3.0.1
1617
)
1718

1819
require (
19-
github.com/Azure/go-autorest v14.2.0+incompatible // indirect
20-
github.com/Azure/go-autorest/autorest v0.11.28 // indirect
21-
github.com/Azure/go-autorest/autorest/adal v0.9.22 // indirect
22-
github.com/Azure/go-autorest/autorest/azure/cli v0.4.6 // indirect
23-
github.com/Azure/go-autorest/autorest/date v0.3.0 // indirect
24-
github.com/Azure/go-autorest/autorest/to v0.4.0 // indirect
25-
github.com/Azure/go-autorest/autorest/validation v0.3.1 // indirect
26-
github.com/Azure/go-autorest/logger v0.2.1 // indirect
27-
github.com/Azure/go-autorest/tracing v0.6.0 // indirect
28-
github.com/aws/aws-sdk-go-v2/credentials v1.17.28 // indirect
20+
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.13.0 // indirect
21+
github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 // indirect
22+
github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 // indirect
23+
github.com/aws/aws-sdk-go-v2/credentials v1.17.29 // indirect
2924
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.16 // indirect
3025
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.16 // indirect
3126
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect
3227
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4 // indirect
3328
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.18 // indirect
3429
github.com/aws/aws-sdk-go-v2/service/sso v1.22.5 // indirect
3530
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.5 // indirect
36-
github.com/aws/aws-sdk-go-v2/service/sts v1.30.4 // indirect
31+
github.com/aws/aws-sdk-go-v2/service/sts v1.30.5 // indirect
3732
github.com/aws/smithy-go v1.20.4 // indirect
38-
github.com/dimchansky/utfbom v1.1.1 // indirect
39-
github.com/golang-jwt/jwt/v4 v4.5.0 // indirect
33+
github.com/golang-jwt/jwt/v5 v5.2.1 // indirect
34+
github.com/google/uuid v1.6.0 // indirect
4035
github.com/jmespath/go-jmespath v0.4.0 // indirect
41-
github.com/mitchellh/go-homedir v1.1.0 // indirect
42-
golang.org/x/crypto v0.17.0 // indirect
36+
github.com/kylelemons/godebug v1.1.0 // indirect
37+
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect
38+
golang.org/x/crypto v0.25.0 // indirect
39+
golang.org/x/net v0.27.0 // indirect
40+
golang.org/x/sys v0.22.0 // indirect
41+
golang.org/x/text v0.16.0 // indirect
4342
)

0 commit comments

Comments
 (0)