diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml index a3d87518..6279b5fa 100644 --- a/.github/workflows/golangci-lint.yml +++ b/.github/workflows/golangci-lint.yml @@ -17,14 +17,14 @@ jobs: steps: - uses: actions/setup-go@v4 with: - go-version: '1.17' + go-version: '1.22' cache: false - uses: actions/checkout@v3 - name: golangci-lint uses: golangci/golangci-lint-action@v3 with: # Optional: version of golangci-lint to use in form of v1.2 or v1.2.3 or `latest` to use the latest version - version: v1.52 + version: v1.57.1 # Optional: working directory, useful for monorepos # working-directory: somedir diff --git a/.golangci.yml b/.golangci.yml index 85ef7f63..b35aa4fd 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -1,12 +1,6 @@ run: timeout: 10m tests: false - skip-dirs: - - third_party/* - - pkg/azure/wstrust - skip-files: - - "zz_generated.*\\.go$" - - ".*_mock\\.go" issues: max-same-issues: 0 @@ -14,6 +8,12 @@ issues: exclude-rules: - linters: [golint] text: "should not use dot imports|don't use an underscore in package name" + exclude-dirs: + - third_party/* + - pkg/azure/wstrust + exclude-files: + - "zz_generated.*\\.go$" + - ".*_mock\\.go" linters-settings: gomoddirectives: @@ -51,3 +51,4 @@ linters: - nosnakecase # deprecated by the owner - interfacebloat - forcetypeassert # maybe enable in the future + - depguard # maybe enable in the future diff --git a/Makefile b/Makefile index fd8b76fb..150f1dfd 100644 --- a/Makefile +++ b/Makefile @@ -98,12 +98,16 @@ fmt: test: go test ./... +.PHONY: tidy +tidy: + go mod tidy + .PHONY: vet vet: go vet ./... .PHONY: ci -ci: fmt vet test build # Target for CI +ci: tidy fmt vet test build # Target for CI ##@ Utility diff --git a/go.mod b/go.mod index 80901f09..cdef4c3c 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,8 @@ module github.com/fidelity/kconnect -go 1.21 +go 1.22.0 + +toolchain go1.22.2 require ( github.com/AlecAivazis/survey/v2 v2.3.7 @@ -43,9 +45,9 @@ require ( golang.org/x/mod v0.17.0 gopkg.in/ini.v1 v1.67.0 gopkg.in/yaml.v2 v2.4.0 - k8s.io/apimachinery v0.29.0 + k8s.io/apimachinery v0.30.0 k8s.io/cli-runtime v0.29.0 - k8s.io/client-go v0.29.0 + k8s.io/client-go v0.30.0 sigs.k8s.io/yaml v1.4.0 ) @@ -72,7 +74,7 @@ require ( github.com/go-stack/stack v1.8.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang-jwt/jwt/v4 v4.5.0 // indirect - github.com/golang/protobuf v1.5.3 // indirect + github.com/golang/protobuf v1.5.4 // indirect github.com/google/go-cmp v0.6.0 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect @@ -108,7 +110,7 @@ require ( google.golang.org/protobuf v1.33.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/klog/v2 v2.110.1 // indirect + k8s.io/klog/v2 v2.120.1 // indirect k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect diff --git a/go.sum b/go.sum index 1d847159..e1826471 100644 --- a/go.sum +++ b/go.sum @@ -112,7 +112,6 @@ github.com/go-jose/go-jose/v3 v3.0.3/go.mod h1:5b+7YgP7ZICgJDBdfjZaIt+H/9L9T/YQr github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE= @@ -152,16 +151,14 @@ github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+Licev github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I= github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= @@ -568,8 +565,8 @@ golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.17.0 h1:FvmRgNOcs3kOa+T20R1uhfP9F6HgG2mfxDv1vrx1Htc= -golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps= +golang.org/x/tools v0.18.0 h1:k8NLag8AGHnn+PHbl7g43CtqZAwG60vZkLqgyZgIHgQ= +golang.org/x/tools v0.18.0/go.mod h1:GL7B4CwcLLeo59yx/9UWWuNOW1n3VZ4f5axWfML7Lcg= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -597,8 +594,6 @@ google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvx google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= @@ -627,18 +622,18 @@ honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -k8s.io/api v0.29.0 h1:NiCdQMY1QOp1H8lfRyeEf8eOwV6+0xA6XEE44ohDX2A= -k8s.io/api v0.29.0/go.mod h1:sdVmXoz2Bo/cb77Pxi71IPTSErEW32xa4aXwKH7gfBA= -k8s.io/apimachinery v0.29.0 h1:+ACVktwyicPz0oc6MTMLwa2Pw3ouLAfAon1wPLtG48o= -k8s.io/apimachinery v0.29.0/go.mod h1:eVBxQ/cwiJxH58eK/jd/vAk4mrxmVlnpBH5J2GbMeis= +k8s.io/api v0.30.0 h1:siWhRq7cNjy2iHssOB9SCGNCl2spiF1dO3dABqZ8niA= +k8s.io/api v0.30.0/go.mod h1:OPlaYhoHs8EQ1ql0R/TsUgaRPhpKNxIMrKQfWUp8QSE= +k8s.io/apimachinery v0.30.0 h1:qxVPsyDM5XS96NIh9Oj6LavoVFYff/Pon9cZeDIkHHA= +k8s.io/apimachinery v0.30.0/go.mod h1:iexa2somDaxdnj7bha06bhb43Zpa6eWH8N8dbqVjTUc= k8s.io/cli-runtime v0.29.0 h1:q2kC3cex4rOBLfPOnMSzV2BIrrQlx97gxHJs21KxKS4= k8s.io/cli-runtime v0.29.0/go.mod h1:VKudXp3X7wR45L+nER85YUzOQIru28HQpXr0mTdeCrk= -k8s.io/client-go v0.29.0 h1:KmlDtFcrdUzOYrBhXHgKw5ycWzc3ryPX5mQe0SkG3y8= -k8s.io/client-go v0.29.0/go.mod h1:yLkXH4HKMAywcrD82KMSmfYg2DlE8mepPR4JGSo5n38= -k8s.io/klog/v2 v2.110.1 h1:U/Af64HJf7FcwMcXyKm2RPM22WZzyR7OSpYj5tg3cL0= -k8s.io/klog/v2 v2.110.1/go.mod h1:YGtd1984u+GgbuZ7e08/yBuAfKLSO0+uR1Fhi6ExXjo= -k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 h1:aVUu9fTY98ivBPKR9Y5w/AuzbMm96cd3YHRTU83I780= -k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00/go.mod h1:AsvuZPBlUDVuCdzJ87iajxtXuR9oktsTctW/R9wwouA= +k8s.io/client-go v0.30.0 h1:sB1AGGlhY/o7KCyCEQ0bPWzYDL0pwOZO4vAtTSh/gJQ= +k8s.io/client-go v0.30.0/go.mod h1:g7li5O5256qe6TYdAMyX/otJqMhIiGgTapdLchhmOaY= +k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= +k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag= +k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98= k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI= k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= diff --git a/pkg/flags/unmarshal.go b/pkg/flags/unmarshal.go index 5eb4631c..9060ed21 100644 --- a/pkg/flags/unmarshal.go +++ b/pkg/flags/unmarshal.go @@ -92,7 +92,7 @@ func (b *flagBinder) Unmarshal(flagset *pflag.FlagSet, out interface{}) error { // Loop through the struct fields and see if there // is a matching flag - for i := 0; i < val.NumField(); i++ { + for i := range val.NumField() { field := t.Field(i) fieldV := val.Field(i) diff --git a/pkg/history/filter.go b/pkg/history/filter.go index e7e8421b..9a6b9317 100644 --- a/pkg/history/filter.go +++ b/pkg/history/filter.go @@ -66,9 +66,8 @@ func FilterHistoryWithFuncs(list *historyv1alpha.HistoryEntryList, filterSpec *F entries := []historyv1alpha.HistoryEntry{} for _, entry := range list.Items { - entryToFilter := entry - if FilterEntry(&entryToFilter, filterSpec, filterFucs) { - entries = append(entries, entryToFilter) + if FilterEntry(&entry, filterSpec, filterFucs) { + entries = append(entries, entry) } } list.Items = entries diff --git a/pkg/history/store.go b/pkg/history/store.go index 41b959d9..9fd309f5 100644 --- a/pkg/history/store.go +++ b/pkg/history/store.go @@ -243,9 +243,8 @@ func (s *storeImpl) filterHistory(filter func(entry *historyv1alpha.HistoryEntry filteredEntries := []*historyv1alpha.HistoryEntry{} for _, entry := range historyList.Items { - filterEntry := entry - if filter(&filterEntry) { - filteredEntries = append(filteredEntries, &filterEntry) + if filter(&entry) { + filteredEntries = append(filteredEntries, &entry) } } diff --git a/pkg/plugins/identity/azure/aad/aad.go b/pkg/plugins/identity/azure/aad/aad.go index b88c9259..9c7ef497 100644 --- a/pkg/plugins/identity/azure/aad/aad.go +++ b/pkg/plugins/identity/azure/aad/aad.go @@ -84,7 +84,7 @@ type aadConfig struct { TenantID string `json:"tenant-id" validate:"required"` ClientID string `json:"client-id" validate:"required"` - AADHost identity.AADHost `json:"aad-host" validate:"required"` + AADHost identity.AADHost `json:"aad-host" validate:"required"` } func (p *aadIdentityProvider) Name() string { diff --git a/pkg/plugins/identity/saml/sp/aws/provider.go b/pkg/plugins/identity/saml/sp/aws/provider.go index 7151e8e2..499cd625 100644 --- a/pkg/plugins/identity/saml/sp/aws/provider.go +++ b/pkg/plugins/identity/saml/sp/aws/provider.go @@ -58,7 +58,7 @@ type awsProviderConfig struct { sp.ProviderConfig Partition string `json:"partition" validate:"required"` - Region string `json:"region" validate:"required"` + Region string `json:"region" validate:"required"` } func NewServiceProvider(itemSelector provider.SelectItemFunc) sp.ServiceProvider { diff --git a/pkg/provider/common/common.go b/pkg/provider/common/common.go index abac72ea..e5d16ad8 100644 --- a/pkg/provider/common/common.go +++ b/pkg/provider/common/common.go @@ -36,8 +36,8 @@ type ClusterProviderConfig struct { // IdentityProviderConfig represents the base configuration for an // identity provider. type IdentityProviderConfig struct { - Username string `json:"username" validate:"required"` - Password string `json:"password" validate:"required"` + Username string `json:"username" validate:"required"` + Password string `json:"password" validate:"required"` IdpProtocol string `json:"idp-protocol" validate:"required"` } diff --git a/pkg/provider/registry/registry.go b/pkg/provider/registry/registry.go index b25be558..ed749b6f 100644 --- a/pkg/provider/registry/registry.go +++ b/pkg/provider/registry/registry.go @@ -129,8 +129,7 @@ func ListDiscoveryPluginRegistrations() []*DiscoveryPluginRegistration { plugins := []*DiscoveryPluginRegistration{} for _, registration := range discoveryPlugins { - pluginRegistration := registration - plugins = append(plugins, pluginRegistration) + plugins = append(plugins, registration) } return plugins @@ -142,8 +141,7 @@ func ListIdentityPluginRegistrations() []*IdentityPluginRegistration { plugins := []*IdentityPluginRegistration{} for _, registration := range identityPlugins { - pluginRegistration := registration - plugins = append(plugins, pluginRegistration) + plugins = append(plugins, registration) } return plugins