From 0fa4cad6e17f0143f222b85b41eb650b2644f050 Mon Sep 17 00:00:00 2001 From: Dirk Avery Date: Thu, 18 Dec 2025 16:35:17 -0500 Subject: [PATCH 01/13] Use new copyplop --- .copyplop.yaml | 2 -- .golangci.yml | 79 +++++++++++++++++++++-------------------------- .markdownlint.yml | 2 +- 3 files changed, 36 insertions(+), 47 deletions(-) diff --git a/.copyplop.yaml b/.copyplop.yaml index f566195a84..69063be12c 100644 --- a/.copyplop.yaml +++ b/.copyplop.yaml @@ -25,8 +25,6 @@ files: - "contributing/**" - "**/README.md" - "META.d/**" - - ".golangci.yml" - - ".markdownlint.yml" - ".semgrep/**" extensions: - ".go" diff --git a/.golangci.yml b/.golangci.yml index bc2c23be42..3e0a9cfac9 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -1,18 +1,13 @@ # Copyright IBM Corp. 2021, 2025 -# SPDX-License-Identifier: MPL-2.0 - -issues: - max-per-linter: 0 - max-same-issues: 0 +# "SPDX-License-Identifier: MPL-2.0" +version: "2" linters: - disable-all: true + default: none enable: - asciicheck - errcheck - gocritic - - gofmt - - gosimple - govet - ineffassign - makezero @@ -22,47 +17,43 @@ linters: - nilerr - nolintlint - staticcheck - - stylecheck - - typecheck - unconvert - unparam - unused - whitespace + settings: + errcheck: + exclude-functions: + - (*github.com/hashicorp/terraform-plugin-framework/tfsdk.State).SetAttribute + gocritic: + enabled-tags: + - diagnostic + disabled-tags: + - style + - performance + - experimental + - opinionated + mnd: + checks: + - argument + - assign + - case + - operation + - return + ignored-functions: + - os.Exit + - stringvalidator.LengthAtMost + - stringvalidator.LengthBetween + nolintlint: + allow-unused: false + allow-no-explanation: + - mnd + unparam: + check-exported: true -linters-settings: - errcheck: - # TODO: `ignore` is deprecated, but `exclude-functions` does not appear to work - ignore: fmt:.*,github.com/hashicorp/terraform-plugin-framework/tfsdk:SetAttribute,fprintf - # exclude-functions: - # - (*github.com/hashicorp/terraform-plugin-framework/tfsdk.State).SetAttribute - gocritic: - enabled-tags: - - diagnostic - disabled-tags: - - style - - performance - - experimental - - opinionated - mnd: - checks: - - argument - - assign - - case - # - condition - - operation - - return - ignored-functions: - - os.Exit - - stringvalidator.LengthAtMost - - stringvalidator.LengthBetween - nolintlint: - allow-unused: false - allow-no-explanation: - - mnd - stylecheck: - checks: ["all", "-ST1003"] - unparam: - check-exported: true +issues: + max-issues-per-linter: 0 + max-same-issues: 0 run: timeout: 10m diff --git a/.markdownlint.yml b/.markdownlint.yml index 7bec55dd8f..5fa1f09e98 100644 --- a/.markdownlint.yml +++ b/.markdownlint.yml @@ -1,5 +1,5 @@ # Copyright IBM Corp. 2021, 2025 -# SPDX-License-Identifier: MPL-2.0 +# "SPDX-License-Identifier: MPL-2.0" # Configuration for markdownlint # https://github.com/DavidAnson/markdownlint#configuration From 035c56f6f83ba7547377da962c0e3ef8d9e7062b Mon Sep 17 00:00:00 2001 From: Dirk Avery Date: Thu, 18 Dec 2025 16:37:20 -0500 Subject: [PATCH 02/13] Update copyplop --- tools/go.mod | 2 +- tools/go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/go.mod b/tools/go.mod index 5429b74484..5f64b0f108 100644 --- a/tools/go.mod +++ b/tools/go.mod @@ -3,7 +3,7 @@ module github.com/hashicorp/terraform-provider-awscc/tools go 1.24.11 require ( - github.com/YakDriver/copyplop v0.4.0 + github.com/YakDriver/copyplop v0.5.0 github.com/client9/misspell v0.3.4 github.com/golangci/golangci-lint v1.64.8 github.com/hashicorp/terraform-plugin-docs v0.24.0 diff --git a/tools/go.sum b/tools/go.sum index d9b8912820..8626e35120 100644 --- a/tools/go.sum +++ b/tools/go.sum @@ -72,8 +72,8 @@ github.com/OpenPeeDeeP/depguard/v2 v2.2.1 h1:vckeWVESWp6Qog7UZSARNqfu/cZqvki8zsu github.com/OpenPeeDeeP/depguard/v2 v2.2.1/go.mod h1:q4DKzC4UcVaAvcfd41CZh0PWpGgzrVxUYBlgKNGquUo= github.com/ProtonMail/go-crypto v1.1.6 h1:ZcV+Ropw6Qn0AX9brlQLAUXfqLBc7Bl+f/DmNxpLfdw= github.com/ProtonMail/go-crypto v1.1.6/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE= -github.com/YakDriver/copyplop v0.4.0 h1:vAG4QdYdusw3apjR3zbF4WMUEPbhg+mfEo37VW0gk4I= -github.com/YakDriver/copyplop v0.4.0/go.mod h1:AVy2Cx2/QquETJ4KlEhfbUpxBO8KDXMqp1lgRvZgshk= +github.com/YakDriver/copyplop v0.5.0 h1:zMyD3u5Byq2p1ZglpYr8K+gnKBRDM7YK95N3y1xdRP0= +github.com/YakDriver/copyplop v0.5.0/go.mod h1:AVy2Cx2/QquETJ4KlEhfbUpxBO8KDXMqp1lgRvZgshk= github.com/alecthomas/assert/v2 v2.11.0 h1:2Q9r3ki8+JYXvGsDyBXwH3LcJ+WK5D0gc5E8vS6K3D0= github.com/alecthomas/assert/v2 v2.11.0/go.mod h1:Bze95FyfUr7x34QZrjL+XP+0qgp/zg8yS+TtBj1WA3k= github.com/alecthomas/go-check-sumtype v0.3.1 h1:u9aUvbGINJxLVXiFvHUlPEaD7VDULsrxJb4Aq31NLkU= From 9ae178382201094794336b1a66f7db07dc2aa1be Mon Sep 17 00:00:00 2001 From: Dirk Avery Date: Thu, 18 Dec 2025 16:41:31 -0500 Subject: [PATCH 03/13] Fix ymls --- .copyplop.yaml | 3 --- .semgrep/no-fmt-printf.yml | 2 +- .semgrep/time-equality.yml | 2 +- README.md | 3 +++ contributing/CONTRIBUTING.md | 3 +++ contributing/DEVELOPMENT.md | 3 +++ contributing/FAQ.md | 3 +++ contributing/add-examples-to-documentation.md | 3 +++ contributing/docs/README.md | 3 +++ contributing/docs/generating.md | 3 +++ contributing/docs/resource-behavior.md | 3 +++ contributing/issue-reporting-and-lifecycle.md | 3 +++ contributing/pullrequest-submission-and-lifecycle.md | 3 +++ internal/provider/generators/allschemas/README.md | 3 +++ internal/provider/generators/resource/README.md | 3 +++ internal/provider/generators/schema/README.md | 3 +++ internal/service/cloudformation/meta-schemas/README.md | 3 +++ 17 files changed, 44 insertions(+), 5 deletions(-) diff --git a/.copyplop.yaml b/.copyplop.yaml index 69063be12c..7fffe34578 100644 --- a/.copyplop.yaml +++ b/.copyplop.yaml @@ -22,10 +22,7 @@ files: - "**/import_examples_gen.json" - "docs/**" - ".github/**" - - "contributing/**" - - "**/README.md" - "META.d/**" - - ".semgrep/**" extensions: - ".go" - ".yml" diff --git a/.semgrep/no-fmt-printf.yml b/.semgrep/no-fmt-printf.yml index 1023a68eba..8e1aedc870 100644 --- a/.semgrep/no-fmt-printf.yml +++ b/.semgrep/no-fmt-printf.yml @@ -1,5 +1,5 @@ # Copyright IBM Corp. 2021, 2025 -# SPDX-License-Identifier: MPL-2.0 +# "SPDX-License-Identifier: MPL-2.0" rules: - id: no-fmt-printf diff --git a/.semgrep/time-equality.yml b/.semgrep/time-equality.yml index 36dc1026b5..ee51cc361c 100644 --- a/.semgrep/time-equality.yml +++ b/.semgrep/time-equality.yml @@ -1,5 +1,5 @@ # Copyright IBM Corp. 2021, 2025 -# SPDX-License-Identifier: MPL-2.0 +# "SPDX-License-Identifier: MPL-2.0" rules: - id: time-equality diff --git a/README.md b/README.md index e813d513c6..77edc4d8d5 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,6 @@ + + + Terraform logo diff --git a/contributing/CONTRIBUTING.md b/contributing/CONTRIBUTING.md index 60bae9d8fc..7589f541b1 100644 --- a/contributing/CONTRIBUTING.md +++ b/contributing/CONTRIBUTING.md @@ -1,3 +1,6 @@ + + + # Contributing to Terraform - AWS Cloud Control Provider **First:** if you're unsure or afraid of _anything_, ask for help! You can diff --git a/contributing/DEVELOPMENT.md b/contributing/DEVELOPMENT.md index 2bbf38fa7d..aad49866e0 100644 --- a/contributing/DEVELOPMENT.md +++ b/contributing/DEVELOPMENT.md @@ -1,3 +1,6 @@ + + + # Development Environment Setup ## Requirements diff --git a/contributing/FAQ.md b/contributing/FAQ.md index 435142ec71..5cecc5ce40 100644 --- a/contributing/FAQ.md +++ b/contributing/FAQ.md @@ -1,3 +1,6 @@ + + + # Frequently Asked Questions diff --git a/contributing/add-examples-to-documentation.md b/contributing/add-examples-to-documentation.md index fcb45ba8f7..85128f6a75 100644 --- a/contributing/add-examples-to-documentation.md +++ b/contributing/add-examples-to-documentation.md @@ -1,3 +1,6 @@ + + + # Adding Examples to Generated Documentation The Terraform AWS Cloud Control provider is 100% generated from the AWS CloudFormation Schema *including* the documentation. This means that at the resource/attribute level any changes must be made in the CloudFormation Schema and cannot be modified within the provider itself. However examples can be added to the generated documentation in order to provide working examples or best practices when using the provider. diff --git a/contributing/docs/README.md b/contributing/docs/README.md index d5322a7b50..bf5ea393bb 100644 --- a/contributing/docs/README.md +++ b/contributing/docs/README.md @@ -1,3 +1,6 @@ + + + # Terraform AWS Cloud Control Provider Codebase Documentation This directory contains some documentation about the Terraform AWS Cloud Control Provider codebase, aimed at readers who are interested in making code contributions. diff --git a/contributing/docs/generating.md b/contributing/docs/generating.md index 4aba45e982..765e237e0e 100644 --- a/contributing/docs/generating.md +++ b/contributing/docs/generating.md @@ -1,3 +1,6 @@ + + + # Generating The Terraform AWS Cloud Control Provider This document describes the process of generating the Terraform AWS Cloud Control Provider. diff --git a/contributing/docs/resource-behavior.md b/contributing/docs/resource-behavior.md index 1997d1af24..56437cc130 100644 --- a/contributing/docs/resource-behavior.md +++ b/contributing/docs/resource-behavior.md @@ -1,3 +1,6 @@ + + + # Terraform AWS Cloud Control Provider Resource Behavior This document describes the behavior of resources implemented by the provider. In particular it describes in detail how [AWS CloudFormation resource types](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-model.html) are defined as [Terraform resources](https://developer.hashicorp.com/terraform/language/resources). diff --git a/contributing/issue-reporting-and-lifecycle.md b/contributing/issue-reporting-and-lifecycle.md index 67d96560e6..2c4b0b5da2 100644 --- a/contributing/issue-reporting-and-lifecycle.md +++ b/contributing/issue-reporting-and-lifecycle.md @@ -1,3 +1,6 @@ + + + # Issue Reporting and Lifecycle diff --git a/contributing/pullrequest-submission-and-lifecycle.md b/contributing/pullrequest-submission-and-lifecycle.md index 1232c16290..0b0433b80c 100644 --- a/contributing/pullrequest-submission-and-lifecycle.md +++ b/contributing/pullrequest-submission-and-lifecycle.md @@ -1,3 +1,6 @@ + + + # Pull Request Submission and Lifecycle - [Pull Request Lifecycle](#pull-request-lifecycle) diff --git a/internal/provider/generators/allschemas/README.md b/internal/provider/generators/allschemas/README.md index c7c87cabf5..3d7e1a8cdc 100644 --- a/internal/provider/generators/allschemas/README.md +++ b/internal/provider/generators/allschemas/README.md @@ -1,3 +1,6 @@ + + + # All AWS Cloud Control API Schemas Generate (to stdout) a sample configuration file for use with the [Schema Downloader](../schema/README.md) that lists all available AWS Cloud Control API schemas. diff --git a/internal/provider/generators/resource/README.md b/internal/provider/generators/resource/README.md index eb4d49f209..489ff66121 100644 --- a/internal/provider/generators/resource/README.md +++ b/internal/provider/generators/resource/README.md @@ -1,3 +1,6 @@ + + + # Terraform Resource Schema Generator Generate a Terraform resource schema from a CloudFormation resource schema. diff --git a/internal/provider/generators/schema/README.md b/internal/provider/generators/schema/README.md index 2b6fe3824e..1649c5bb14 100644 --- a/internal/provider/generators/schema/README.md +++ b/internal/provider/generators/schema/README.md @@ -1,3 +1,6 @@ + + + # AWS CloudFormation Resource Schema Downloader Download and verify AWS CloudFormation resource schemas. diff --git a/internal/service/cloudformation/meta-schemas/README.md b/internal/service/cloudformation/meta-schemas/README.md index 38d48b7473..53afdbd5bb 100644 --- a/internal/service/cloudformation/meta-schemas/README.md +++ b/internal/service/cloudformation/meta-schemas/README.md @@ -1,3 +1,6 @@ + + + # AWS CloudFormation Resource Provider Definition Schema This directory contains the JSON Schema documents which define the [AWS CloudFormation resource _meta-schema_](https://github.com/aws-cloudformation/cloudformation-resource-schema). From d8a420f5bffffccc38ef9ad7ce2d554a5a1dec3b Mon Sep 17 00:00:00 2001 From: Dirk Avery Date: Thu, 18 Dec 2025 16:45:16 -0500 Subject: [PATCH 04/13] Update golangci-lint to v2 --- tools/go.mod | 179 ++++++++++++---------- tools/go.sum | 404 ++++++++++++++++++++++++++------------------------ tools/main.go | 2 +- 3 files changed, 312 insertions(+), 273 deletions(-) diff --git a/tools/go.mod b/tools/go.mod index 5f64b0f108..279126193a 100644 --- a/tools/go.mod +++ b/tools/go.mod @@ -5,7 +5,7 @@ go 1.24.11 require ( github.com/YakDriver/copyplop v0.5.0 github.com/client9/misspell v0.3.4 - github.com/golangci/golangci-lint v1.64.8 + github.com/golangci/golangci-lint/v2 v2.7.2 github.com/hashicorp/terraform-plugin-docs v0.24.0 github.com/pavius/impi v0.0.3 ) @@ -13,59 +13,73 @@ require ( require ( 4d63.com/gocheckcompilerdirectives v1.3.0 // indirect 4d63.com/gochecknoglobals v0.2.2 // indirect - github.com/4meepo/tagalign v1.4.2 // indirect - github.com/Abirdcfly/dupword v0.1.3 // indirect - github.com/Antonboom/errname v1.0.0 // indirect - github.com/Antonboom/nilnil v1.0.1 // indirect - github.com/Antonboom/testifylint v1.5.2 // indirect - github.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c // indirect - github.com/Crocmagnon/fatcontext v0.7.1 // indirect - github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 // indirect - github.com/GaijinEntertainment/go-exhaustruct/v3 v3.3.1 // indirect + codeberg.org/chavacava/garif v0.2.0 // indirect + dev.gaijin.team/go/exhaustruct/v4 v4.0.0 // indirect + dev.gaijin.team/go/golib v0.6.0 // indirect + github.com/4meepo/tagalign v1.4.3 // indirect + github.com/Abirdcfly/dupword v0.1.7 // indirect + github.com/AdminBenni/iota-mixing v1.0.0 // indirect + github.com/AlwxSin/noinlineerr v1.0.5 // indirect + github.com/Antonboom/errname v1.1.1 // indirect + github.com/Antonboom/nilnil v1.1.1 // indirect + github.com/Antonboom/testifylint v1.6.4 // indirect + github.com/BurntSushi/toml v1.5.0 // indirect + github.com/Djarvur/go-err113 v0.1.1 // indirect github.com/Kunde21/markdownfmt/v3 v3.1.0 // indirect github.com/Masterminds/goutils v1.1.1 // indirect - github.com/Masterminds/semver/v3 v3.3.0 // indirect + github.com/Masterminds/semver/v3 v3.4.0 // indirect github.com/Masterminds/sprig/v3 v3.2.3 // indirect + github.com/MirrexOne/unqueryvet v1.3.0 // indirect github.com/OpenPeeDeeP/depguard/v2 v2.2.1 // indirect github.com/ProtonMail/go-crypto v1.1.6 // indirect + github.com/alecthomas/chroma/v2 v2.20.0 // indirect github.com/alecthomas/go-check-sumtype v0.3.1 // indirect - github.com/alexkohler/nakedret/v2 v2.0.5 // indirect + github.com/alexkohler/nakedret/v2 v2.0.6 // indirect github.com/alexkohler/prealloc v1.0.0 // indirect + github.com/alfatraining/structtag v1.0.0 // indirect github.com/alingse/asasalint v0.0.11 // indirect - github.com/alingse/nilnesserr v0.1.2 // indirect + github.com/alingse/nilnesserr v0.2.0 // indirect github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect github.com/armon/go-radix v1.0.0 // indirect - github.com/ashanbrown/forbidigo v1.6.0 // indirect - github.com/ashanbrown/makezero v1.2.0 // indirect + github.com/ashanbrown/forbidigo/v2 v2.3.0 // indirect + github.com/ashanbrown/makezero/v2 v2.1.0 // indirect + github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/bgentry/speakeasy v0.1.0 // indirect github.com/bkielbasa/cyclop v1.2.3 // indirect github.com/blizzy78/varnamelen v0.8.0 // indirect github.com/bmatcuk/doublestar/v4 v4.9.1 // indirect - github.com/bombsimon/wsl/v4 v4.5.0 // indirect - github.com/breml/bidichk v0.3.2 // indirect - github.com/breml/errchkjson v0.4.0 // indirect - github.com/butuzov/ireturn v0.3.1 // indirect + github.com/bombsimon/wsl/v4 v4.7.0 // indirect + github.com/bombsimon/wsl/v5 v5.3.0 // indirect + github.com/breml/bidichk v0.3.3 // indirect + github.com/breml/errchkjson v0.4.1 // indirect + github.com/butuzov/ireturn v0.4.0 // indirect github.com/butuzov/mirror v1.3.0 // indirect - github.com/catenacyber/perfsprint v0.8.2 // indirect - github.com/ccojocar/zxcvbn-go v1.0.2 // indirect + github.com/catenacyber/perfsprint v0.10.1 // indirect + github.com/ccojocar/zxcvbn-go v1.0.4 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect - github.com/charithe/durationcheck v0.0.10 // indirect - github.com/chavacava/garif v0.1.0 // indirect - github.com/ckaznocha/intrange v0.3.0 // indirect + github.com/charithe/durationcheck v0.0.11 // indirect + github.com/charmbracelet/colorprofile v0.2.3-0.20250311203215-f60798e515dc // indirect + github.com/charmbracelet/lipgloss v1.1.0 // indirect + github.com/charmbracelet/x/ansi v0.8.0 // indirect + github.com/charmbracelet/x/cellbuf v0.0.13-0.20250311204145-2c3ea96c31dd // indirect + github.com/charmbracelet/x/term v0.2.1 // indirect + github.com/ckaznocha/intrange v0.3.1 // indirect github.com/cloudflare/circl v1.6.1 // indirect github.com/curioswitch/go-reassign v0.3.0 // indirect - github.com/daixiang0/gci v0.13.5 // indirect + github.com/daixiang0/gci v0.13.7 // indirect + github.com/dave/dst v0.27.3 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/denis-tingaikin/go-header v0.5.0 // indirect + github.com/dlclark/regexp2 v1.11.5 // indirect github.com/ettle/strcase v0.2.0 // indirect github.com/fatih/color v1.18.0 // indirect github.com/fatih/structtag v1.2.0 // indirect - github.com/firefart/nonamedreturns v1.0.5 // indirect + github.com/firefart/nonamedreturns v1.0.6 // indirect github.com/fsnotify/fsnotify v1.9.0 // indirect github.com/fzipp/gocyclo v0.6.0 // indirect - github.com/ghostiam/protogetter v0.3.9 // indirect - github.com/go-critic/go-critic v0.12.0 // indirect + github.com/ghostiam/protogetter v0.3.17 // indirect + github.com/go-critic/go-critic v0.14.2 // indirect github.com/go-toolsmith/astcast v1.1.0 // indirect github.com/go-toolsmith/astcopy v1.1.0 // indirect github.com/go-toolsmith/astequal v1.2.0 // indirect @@ -76,22 +90,26 @@ require ( github.com/go-viper/mapstructure/v2 v2.4.0 // indirect github.com/go-xmlfmt/xmlfmt v1.1.3 // indirect github.com/gobwas/glob v0.2.3 // indirect - github.com/gofrs/flock v0.12.1 // indirect + github.com/godoc-lint/godoc-lint v0.10.2 // indirect + github.com/gofrs/flock v0.13.0 // indirect github.com/golang/protobuf v1.5.3 // indirect + github.com/golangci/asciicheck v0.5.0 // indirect github.com/golangci/dupl v0.0.0-20250308024227-f665c8d69b32 // indirect - github.com/golangci/go-printf-func-name v0.1.0 // indirect + github.com/golangci/go-printf-func-name v0.1.1 // indirect github.com/golangci/gofmt v0.0.0-20250106114630-d62b90e6713d // indirect - github.com/golangci/misspell v0.6.0 // indirect - github.com/golangci/plugin-module-register v0.1.1 // indirect + github.com/golangci/golines v0.0.0-20250217134842-442fd0091d95 // indirect + github.com/golangci/misspell v0.7.0 // indirect + github.com/golangci/plugin-module-register v0.1.2 // indirect github.com/golangci/revgrep v0.8.0 // indirect - github.com/golangci/unconvert v0.0.0-20240309020433-c5143eacb3ed // indirect + github.com/golangci/swaggoswag v0.0.0-20250504205917-77f2aca3143e // indirect + github.com/golangci/unconvert v0.0.0-20250410112200-a129a6e6413e // indirect github.com/google/go-cmp v0.7.0 // indirect github.com/google/uuid v1.6.0 // indirect - github.com/gordonklaus/ineffassign v0.1.0 // indirect + github.com/gordonklaus/ineffassign v0.2.0 // indirect github.com/gostaticanalysis/analysisutil v0.7.1 // indirect github.com/gostaticanalysis/comment v1.5.0 // indirect github.com/gostaticanalysis/forcetypeassert v0.2.0 // indirect - github.com/gostaticanalysis/nilerr v0.1.1 // indirect + github.com/gostaticanalysis/nilerr v0.1.2 // indirect github.com/hashicorp/cli v1.1.7 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-checkpoint v0.5.0 // indirect @@ -100,7 +118,7 @@ require ( github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/go-retryablehttp v0.7.7 // indirect github.com/hashicorp/go-uuid v1.0.3 // indirect - github.com/hashicorp/go-version v1.7.0 // indirect + github.com/hashicorp/go-version v1.8.0 // indirect github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect github.com/hashicorp/hc-install v0.9.2 // indirect github.com/hashicorp/terraform-exec v0.24.0 // indirect @@ -109,72 +127,74 @@ require ( github.com/huandu/xstrings v1.3.3 // indirect github.com/imdario/mergo v0.3.15 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect - github.com/jgautheron/goconst v1.7.1 // indirect + github.com/jgautheron/goconst v1.8.2 // indirect github.com/jingyugao/rowserrcheck v1.1.1 // indirect - github.com/jjti/go-spancheck v0.6.4 // indirect + github.com/jjti/go-spancheck v0.6.5 // indirect github.com/julz/importas v0.2.0 // indirect - github.com/karamaru-alpha/copyloopvar v1.2.1 // indirect + github.com/karamaru-alpha/copyloopvar v1.2.2 // indirect github.com/kisielk/errcheck v1.9.0 // indirect github.com/kisielk/gotool v1.0.0 // indirect github.com/kkHAIKE/contextcheck v1.1.6 // indirect - github.com/kulti/thelper v0.6.3 // indirect - github.com/kunwardeep/paralleltest v1.0.10 // indirect + github.com/kulti/thelper v0.7.1 // indirect + github.com/kunwardeep/paralleltest v1.0.15 // indirect github.com/lasiar/canonicalheader v1.1.2 // indirect - github.com/ldez/exptostd v0.4.2 // indirect - github.com/ldez/gomoddirectives v0.6.1 // indirect - github.com/ldez/grignotin v0.9.0 // indirect - github.com/ldez/tagliatelle v0.7.1 // indirect - github.com/ldez/usetesting v0.4.2 // indirect + github.com/ldez/exptostd v0.4.5 // indirect + github.com/ldez/gomoddirectives v0.7.1 // indirect + github.com/ldez/grignotin v0.10.1 // indirect + github.com/ldez/tagliatelle v0.7.2 // indirect + github.com/ldez/usetesting v0.5.0 // indirect github.com/leonklingele/grouper v1.1.2 // indirect - github.com/macabu/inamedparam v0.1.3 // indirect - github.com/maratori/testableexamples v1.0.0 // indirect - github.com/maratori/testpackage v1.1.1 // indirect + github.com/lucasb-eyer/go-colorful v1.2.0 // indirect + github.com/macabu/inamedparam v0.2.0 // indirect + github.com/manuelarte/embeddedstructfieldcheck v0.4.0 // indirect + github.com/manuelarte/funcorder v0.5.0 // indirect + github.com/maratori/testableexamples v1.0.1 // indirect + github.com/maratori/testpackage v1.1.2 // indirect github.com/matoous/godox v1.1.0 // indirect github.com/mattn/go-colorable v0.1.14 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/mattn/go-runewidth v0.0.16 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect - github.com/mgechev/revive v1.7.0 // indirect + github.com/mgechev/revive v1.13.0 // indirect github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db // indirect github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect github.com/moricho/tparallel v0.3.2 // indirect + github.com/muesli/termenv v0.16.0 // indirect github.com/nakabonne/nestif v0.3.1 // indirect github.com/nishanths/exhaustive v0.12.0 // indirect github.com/nishanths/predeclared v0.2.2 // indirect - github.com/nunnatsa/ginkgolinter v0.19.1 // indirect - github.com/olekukonko/tablewriter v0.0.5 // indirect + github.com/nunnatsa/ginkgolinter v0.21.2 // indirect github.com/pelletier/go-toml/v2 v2.2.4 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/polyfloyd/go-errorlint v1.7.1 // indirect + github.com/polyfloyd/go-errorlint v1.8.0 // indirect github.com/posener/complete v1.2.3 // indirect github.com/prometheus/client_golang v1.12.1 // indirect github.com/prometheus/client_model v0.2.0 // indirect github.com/prometheus/common v0.32.1 // indirect github.com/prometheus/procfs v0.7.3 // indirect - github.com/quasilyte/go-ruleguard v0.4.3-0.20240823090925-0fe6f58b47b1 // indirect - github.com/quasilyte/go-ruleguard/dsl v0.3.22 // indirect + github.com/quasilyte/go-ruleguard v0.4.5 // indirect + github.com/quasilyte/go-ruleguard/dsl v0.3.23 // indirect github.com/quasilyte/gogrep v0.5.0 // indirect github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727 // indirect github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 // indirect github.com/raeperd/recvcheck v0.2.0 // indirect github.com/rivo/uniseg v0.4.7 // indirect github.com/rogpeppe/go-internal v1.14.1 // indirect - github.com/ryancurrah/gomodguard v1.3.5 // indirect + github.com/ryancurrah/gomodguard v1.4.1 // indirect github.com/ryanrolds/sqlclosecheck v0.5.1 // indirect github.com/sagikazarmark/locafero v0.12.0 // indirect github.com/sanposhiho/wastedassign/v2 v2.1.0 // indirect - github.com/santhosh-tekuri/jsonschema/v6 v6.0.1 // indirect + github.com/santhosh-tekuri/jsonschema/v6 v6.0.2 // indirect github.com/sashamelentyev/interfacebloat v1.1.0 // indirect - github.com/sashamelentyev/usestdlibvars v1.28.0 // indirect + github.com/sashamelentyev/usestdlibvars v1.29.0 // indirect github.com/schollz/progressbar/v3 v3.18.0 // indirect - github.com/securego/gosec/v2 v2.22.2 // indirect + github.com/securego/gosec/v2 v2.22.11-0.20251204091113-daccba6b93d7 // indirect github.com/shopspring/decimal v1.3.1 // indirect github.com/sirupsen/logrus v1.9.3 // indirect github.com/sivchari/containedctx v1.0.3 // indirect - github.com/sivchari/tenv v1.12.1 // indirect - github.com/sonatard/noctx v0.1.0 // indirect + github.com/sonatard/noctx v0.4.0 // indirect github.com/sourcegraph/go-diff v0.7.0 // indirect github.com/spf13/afero v1.15.0 // indirect github.com/spf13/cast v1.10.0 // indirect @@ -182,21 +202,21 @@ require ( github.com/spf13/pflag v1.0.10 // indirect github.com/spf13/viper v1.21.0 // indirect github.com/ssgreg/nlreturn/v2 v2.2.1 // indirect - github.com/stbenjam/no-sprintf-host-port v0.2.0 // indirect + github.com/stbenjam/no-sprintf-host-port v0.3.1 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/stretchr/testify v1.11.1 // indirect github.com/subosito/gotenv v1.6.0 // indirect - github.com/tdakkota/asciicheck v0.4.1 // indirect - github.com/tetafro/godot v1.5.0 // indirect - github.com/timakin/bodyclose v0.0.0-20241017074812-ed6a65f985e3 // indirect - github.com/timonwong/loggercheck v0.10.1 // indirect - github.com/tomarrell/wrapcheck/v2 v2.10.0 // indirect + github.com/tetafro/godot v1.5.4 // indirect + github.com/timakin/bodyclose v0.0.0-20241222091800-1db5c5ca4d67 // indirect + github.com/timonwong/loggercheck v0.11.0 // indirect + github.com/tomarrell/wrapcheck/v2 v2.12.0 // indirect github.com/tommy-muehle/go-mnd/v2 v2.5.1 // indirect github.com/ultraware/funlen v0.2.0 // indirect github.com/ultraware/whitespace v0.2.0 // indirect github.com/uudashr/gocognit v1.2.0 // indirect - github.com/uudashr/iface v1.3.1 // indirect - github.com/xen0n/gosmopolitan v1.2.2 // indirect + github.com/uudashr/iface v1.4.1 // indirect + github.com/xen0n/gosmopolitan v1.3.0 // indirect + github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect github.com/yagipy/maintidx v1.0.0 // indirect github.com/yeya24/promlinter v0.3.0 // indirect github.com/ykadowak/zerologlint v0.1.5 // indirect @@ -204,29 +224,28 @@ require ( github.com/yuin/goldmark-meta v1.1.0 // indirect github.com/zclconf/go-cty v1.17.0 // indirect gitlab.com/bosi/decorder v0.4.2 // indirect - go-simpler.org/musttag v0.13.0 // indirect - go-simpler.org/sloglint v0.9.0 // indirect + go-simpler.org/musttag v0.14.0 // indirect + go-simpler.org/sloglint v0.11.1 // indirect go.abhg.dev/goldmark/frontmatter v0.2.0 // indirect - go.uber.org/atomic v1.7.0 // indirect + go.augendre.info/arangolint v0.3.1 // indirect + go.augendre.info/fatcontext v0.9.0 // indirect go.uber.org/automaxprocs v1.6.0 // indirect - go.uber.org/multierr v1.6.0 // indirect - go.uber.org/zap v1.24.0 // indirect + go.uber.org/multierr v1.10.0 // indirect + go.uber.org/zap v1.27.0 // indirect go.yaml.in/yaml/v3 v3.0.4 // indirect golang.org/x/crypto v0.45.0 // indirect golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 // indirect - golang.org/x/exp/typeparams v0.0.0-20250210185358-939b2ce775ac // indirect + golang.org/x/exp/typeparams v0.0.0-20251023183803-a4bb9ffd2546 // indirect golang.org/x/mod v0.30.0 // indirect golang.org/x/sync v0.19.0 // indirect golang.org/x/sys v0.39.0 // indirect golang.org/x/term v0.38.0 // indirect golang.org/x/text v0.32.0 // indirect golang.org/x/tools v0.39.0 // indirect - golang.org/x/tools/go/expect v0.1.1-deprecated // indirect - golang.org/x/tools/go/packages/packagestest v0.1.1-deprecated // indirect - google.golang.org/protobuf v1.36.5 // indirect + google.golang.org/protobuf v1.36.8 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect honnef.co/go/tools v0.6.1 // indirect - mvdan.cc/gofumpt v0.7.0 // indirect - mvdan.cc/unparam v0.0.0-20240528143540-8a5130ca722f // indirect + mvdan.cc/gofumpt v0.9.2 // indirect + mvdan.cc/unparam v0.0.0-20251027182757-5beb8c8f8f15 // indirect ) diff --git a/tools/go.sum b/tools/go.sum index 8626e35120..2445a49a19 100644 --- a/tools/go.sum +++ b/tools/go.sum @@ -34,40 +34,48 @@ cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0Zeo cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= +codeberg.org/chavacava/garif v0.2.0 h1:F0tVjhYbuOCnvNcU3YSpO6b3Waw6Bimy4K0mM8y6MfY= +codeberg.org/chavacava/garif v0.2.0/go.mod h1:P2BPbVbT4QcvLZrORc2T29szK3xEOlnl0GiPTJmEqBQ= dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= +dev.gaijin.team/go/exhaustruct/v4 v4.0.0 h1:873r7aNneqoBB3IaFIzhvt2RFYTuHgmMjoKfwODoI1Y= +dev.gaijin.team/go/exhaustruct/v4 v4.0.0/go.mod h1:aZ/k2o4Y05aMJtiux15x8iXaumE88YdiB0Ai4fXOzPI= +dev.gaijin.team/go/golib v0.6.0 h1:v6nnznFTs4bppib/NyU1PQxobwDHwCXXl15P7DV5Zgo= +dev.gaijin.team/go/golib v0.6.0/go.mod h1:uY1mShx8Z/aNHWDyAkZTkX+uCi5PdX7KsG1eDQa2AVE= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/4meepo/tagalign v1.4.2 h1:0hcLHPGMjDyM1gHG58cS73aQF8J4TdVR96TZViorO9E= -github.com/4meepo/tagalign v1.4.2/go.mod h1:+p4aMyFM+ra7nb41CnFG6aSDXqRxU/w1VQqScKqDARI= -github.com/Abirdcfly/dupword v0.1.3 h1:9Pa1NuAsZvpFPi9Pqkd93I7LIYRURj+A//dFd5tgBeE= -github.com/Abirdcfly/dupword v0.1.3/go.mod h1:8VbB2t7e10KRNdwTVoxdBaxla6avbhGzb8sCTygUMhw= -github.com/Antonboom/errname v1.0.0 h1:oJOOWR07vS1kRusl6YRSlat7HFnb3mSfMl6sDMRoTBA= -github.com/Antonboom/errname v1.0.0/go.mod h1:gMOBFzK/vrTiXN9Oh+HFs+e6Ndl0eTFbtsRTSRdXyGI= -github.com/Antonboom/nilnil v1.0.1 h1:C3Tkm0KUxgfO4Duk3PM+ztPncTFlOf0b2qadmS0s4xs= -github.com/Antonboom/nilnil v1.0.1/go.mod h1:CH7pW2JsRNFgEh8B2UaPZTEPhCMuFowP/e8Udp9Nnb0= -github.com/Antonboom/testifylint v1.5.2 h1:4s3Xhuv5AvdIgbd8wOOEeo0uZG7PbDKQyKY5lGoQazk= -github.com/Antonboom/testifylint v1.5.2/go.mod h1:vxy8VJ0bc6NavlYqjZfmp6EfqXMtBgQ4+mhCojwC1P8= +github.com/4meepo/tagalign v1.4.3 h1:Bnu7jGWwbfpAie2vyl63Zup5KuRv21olsPIha53BJr8= +github.com/4meepo/tagalign v1.4.3/go.mod h1:00WwRjiuSbrRJnSVeGWPLp2epS5Q/l4UEy0apLLS37c= +github.com/Abirdcfly/dupword v0.1.7 h1:2j8sInznrje4I0CMisSL6ipEBkeJUJAmK1/lfoNGWrQ= +github.com/Abirdcfly/dupword v0.1.7/go.mod h1:K0DkBeOebJ4VyOICFdppB23Q0YMOgVafM0zYW0n9lF4= +github.com/AdminBenni/iota-mixing v1.0.0 h1:Os6lpjG2dp/AE5fYBPAA1zfa2qMdCAWwPMCgpwKq7wo= +github.com/AdminBenni/iota-mixing v1.0.0/go.mod h1:i4+tpAaB+qMVIV9OK3m4/DAynOd5bQFaOu+2AhtBCNY= +github.com/AlwxSin/noinlineerr v1.0.5 h1:RUjt63wk1AYWTXtVXbSqemlbVTb23JOSRiNsshj7TbY= +github.com/AlwxSin/noinlineerr v1.0.5/go.mod h1:+QgkkoYrMH7RHvcdxdlI7vYYEdgeoFOVjU9sUhw/rQc= +github.com/Antonboom/errname v1.1.1 h1:bllB7mlIbTVzO9jmSWVWLjxTEbGBVQ1Ff/ClQgtPw9Q= +github.com/Antonboom/errname v1.1.1/go.mod h1:gjhe24xoxXp0ScLtHzjiXp0Exi1RFLKJb0bVBtWKCWQ= +github.com/Antonboom/nilnil v1.1.1 h1:9Mdr6BYd8WHCDngQnNVV0b554xyisFioEKi30sksufQ= +github.com/Antonboom/nilnil v1.1.1/go.mod h1:yCyAmSw3doopbOWhJlVci+HuyNRuHJKIv6V2oYQa8II= +github.com/Antonboom/testifylint v1.6.4 h1:gs9fUEy+egzxkEbq9P4cpcMB6/G0DYdMeiFS87UiqmQ= +github.com/Antonboom/testifylint v1.6.4/go.mod h1:YO33FROXX2OoUfwjz8g+gUxQXio5i9qpVy7nXGbxDD4= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c h1:pxW6RcqyfI9/kWtOwnv/G+AzdKuy2ZrqINhenH4HyNs= -github.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= +github.com/BurntSushi/toml v1.5.0 h1:W5quZX/G/csjUnuI8SUYlsHs9M38FC7znL0lIO+DvMg= +github.com/BurntSushi/toml v1.5.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/Crocmagnon/fatcontext v0.7.1 h1:SC/VIbRRZQeQWj/TcQBS6JmrXcfA+BU4OGSVUt54PjM= -github.com/Crocmagnon/fatcontext v0.7.1/go.mod h1:1wMvv3NXEBJucFGfwOJBxSVWcoIO6emV215SMkW9MFU= -github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 h1:sHglBQTwgx+rWPdisA5ynNEsoARbiCBOyGcJM4/OzsM= -github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24/go.mod h1:4UJr5HIiMZrwgkSPdsjy2uOQExX/WEILpIrO9UPGuXs= -github.com/GaijinEntertainment/go-exhaustruct/v3 v3.3.1 h1:Sz1JIXEcSfhz7fUi7xHnhpIE0thVASYjvosApmHuD2k= -github.com/GaijinEntertainment/go-exhaustruct/v3 v3.3.1/go.mod h1:n/LSCXNuIYqVfBlVXyHfMQkZDdp1/mmxfSjADd3z1Zg= +github.com/Djarvur/go-err113 v0.1.1 h1:eHfopDqXRwAi+YmCUas75ZE0+hoBHJ2GQNLYRSxao4g= +github.com/Djarvur/go-err113 v0.1.1/go.mod h1:IaWJdYFLg76t2ihfflPZnM1LIQszWOsFDh2hhhAVF6k= github.com/Kunde21/markdownfmt/v3 v3.1.0 h1:KiZu9LKs+wFFBQKhrZJrFZwtLnCCWJahL+S+E/3VnM0= github.com/Kunde21/markdownfmt/v3 v3.1.0/go.mod h1:tPXN1RTyOzJwhfHoon9wUr4HGYmWgVxSQN6VBJDkrVc= github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI= github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= -github.com/Masterminds/semver/v3 v3.3.0 h1:B8LGeaivUe71a5qox1ICM/JLl0NqZSW5CHyL+hmvYS0= -github.com/Masterminds/semver/v3 v3.3.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM= +github.com/Masterminds/semver/v3 v3.4.0 h1:Zog+i5UMtVoCU8oKka5P7i9q9HgrJeGzI9SA1Xbatp0= +github.com/Masterminds/semver/v3 v3.4.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM= github.com/Masterminds/sprig/v3 v3.2.3 h1:eL2fZNezLomi0uOLqjQoN6BfsDD+fyLtgbJMAj9n6YA= github.com/Masterminds/sprig/v3 v3.2.3/go.mod h1:rXcFaZ2zZbLRJv/xSysmlgIM1u11eBaRMhvYXJNkGuM= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= +github.com/MirrexOne/unqueryvet v1.3.0 h1:5slWSomgqpYU4zFuZ3NNOfOUxVPlXFDBPAVasZOGlAY= +github.com/MirrexOne/unqueryvet v1.3.0/go.mod h1:IWwCwMQlSWjAIteW0t+28Q5vouyktfujzYznSIWiuOg= github.com/OpenPeeDeeP/depguard/v2 v2.2.1 h1:vckeWVESWp6Qog7UZSARNqfu/cZqvki8zsuj3piCMx4= github.com/OpenPeeDeeP/depguard/v2 v2.2.1/go.mod h1:q4DKzC4UcVaAvcfd41CZh0PWpGgzrVxUYBlgKNGquUo= github.com/ProtonMail/go-crypto v1.1.6 h1:ZcV+Ropw6Qn0AX9brlQLAUXfqLBc7Bl+f/DmNxpLfdw= @@ -76,33 +84,37 @@ github.com/YakDriver/copyplop v0.5.0 h1:zMyD3u5Byq2p1ZglpYr8K+gnKBRDM7YK95N3y1xd github.com/YakDriver/copyplop v0.5.0/go.mod h1:AVy2Cx2/QquETJ4KlEhfbUpxBO8KDXMqp1lgRvZgshk= github.com/alecthomas/assert/v2 v2.11.0 h1:2Q9r3ki8+JYXvGsDyBXwH3LcJ+WK5D0gc5E8vS6K3D0= github.com/alecthomas/assert/v2 v2.11.0/go.mod h1:Bze95FyfUr7x34QZrjL+XP+0qgp/zg8yS+TtBj1WA3k= +github.com/alecthomas/chroma/v2 v2.20.0 h1:sfIHpxPyR07/Oylvmcai3X/exDlE8+FA820NTz+9sGw= +github.com/alecthomas/chroma/v2 v2.20.0/go.mod h1:e7tViK0xh/Nf4BYHl00ycY6rV7b8iXBksI9E359yNmA= github.com/alecthomas/go-check-sumtype v0.3.1 h1:u9aUvbGINJxLVXiFvHUlPEaD7VDULsrxJb4Aq31NLkU= github.com/alecthomas/go-check-sumtype v0.3.1/go.mod h1:A8TSiN3UPRw3laIgWEUOHHLPa6/r9MtoigdlP5h3K/E= -github.com/alecthomas/repr v0.4.0 h1:GhI2A8MACjfegCPVq9f1FLvIBS+DrQ2KQBFZP1iFzXc= -github.com/alecthomas/repr v0.4.0/go.mod h1:Fr0507jx4eOXV7AlPV6AVZLYrLIuIeSOWtW57eE/O/4= +github.com/alecthomas/repr v0.5.1 h1:E3G4t2QbHTSNpPKBgMTln5KLkZHLOcU7r37J4pXBuIg= +github.com/alecthomas/repr v0.5.1/go.mod h1:Fr0507jx4eOXV7AlPV6AVZLYrLIuIeSOWtW57eE/O/4= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= -github.com/alexkohler/nakedret/v2 v2.0.5 h1:fP5qLgtwbx9EJE8dGEERT02YwS8En4r9nnZ71RK+EVU= -github.com/alexkohler/nakedret/v2 v2.0.5/go.mod h1:bF5i0zF2Wo2o4X4USt9ntUWve6JbFv02Ff4vlkmS/VU= +github.com/alexkohler/nakedret/v2 v2.0.6 h1:ME3Qef1/KIKr3kWX3nti3hhgNxw6aqN5pZmQiFSsuzQ= +github.com/alexkohler/nakedret/v2 v2.0.6/go.mod h1:l3RKju/IzOMQHmsEvXwkqMDzHHvurNQfAgE1eVmT40Q= github.com/alexkohler/prealloc v1.0.0 h1:Hbq0/3fJPQhNkN0dR95AVrr6R7tou91y0uHG5pOcUuw= github.com/alexkohler/prealloc v1.0.0/go.mod h1:VetnK3dIgFBBKmg0YnD9F9x6Icjd+9cvfHR56wJVlKE= +github.com/alfatraining/structtag v1.0.0 h1:2qmcUqNcCoyVJ0up879K614L9PazjBSFruTB0GOFjCc= +github.com/alfatraining/structtag v1.0.0/go.mod h1:p3Xi5SwzTi+Ryj64DqjLWz7XurHxbGsq6y3ubePJPus= github.com/alingse/asasalint v0.0.11 h1:SFwnQXJ49Kx/1GghOFz1XGqHYKp21Kq1nHad/0WQRnw= github.com/alingse/asasalint v0.0.11/go.mod h1:nCaoMhw7a9kSJObvQyVzNTPBDbNpdocqrSP7t/cW5+I= -github.com/alingse/nilnesserr v0.1.2 h1:Yf8Iwm3z2hUUrP4muWfW83DF4nE3r1xZ26fGWUKCZlo= -github.com/alingse/nilnesserr v0.1.2/go.mod h1:1xJPrXonEtX7wyTq8Dytns5P2hNzoWymVUIaKm4HNFg= +github.com/alingse/nilnesserr v0.2.0 h1:raLem5KG7EFVb4UIDAXgrv3N2JIaffeKNtcEXkEWd/w= +github.com/alingse/nilnesserr v0.2.0/go.mod h1:1xJPrXonEtX7wyTq8Dytns5P2hNzoWymVUIaKm4HNFg= github.com/apparentlymart/go-textseg/v15 v15.0.0 h1:uYvfpb3DyLSCGWnctWKGj857c6ew1u1fNQOlOtuGxQY= github.com/apparentlymart/go-textseg/v15 v15.0.0/go.mod h1:K8XmNZdhEBkdlyDdvbmmsvpAG721bKi0joRfFdHIWJ4= github.com/armon/go-radix v1.0.0 h1:F4z6KzEeeQIMeLFa97iZU6vupzoecKdU5TX24SNppXI= github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= -github.com/ashanbrown/forbidigo v1.6.0 h1:D3aewfM37Yb3pxHujIPSpTf6oQk9sc9WZi8gerOIVIY= -github.com/ashanbrown/forbidigo v1.6.0/go.mod h1:Y8j9jy9ZYAEHXdu723cUlraTqbzjKF1MUyfOKL+AjcU= -github.com/ashanbrown/makezero v1.2.0 h1:/2Lp1bypdmK9wDIq7uWBlDF1iMUpIIS4A+pF6C9IEUU= -github.com/ashanbrown/makezero v1.2.0/go.mod h1:dxlPhHbDMC6N6xICzFBSK+4njQDdK8euNO0qjQMtGY4= -github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= -github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= +github.com/ashanbrown/forbidigo/v2 v2.3.0 h1:OZZDOchCgsX5gvToVtEBoV2UWbFfI6RKQTir2UZzSxo= +github.com/ashanbrown/forbidigo/v2 v2.3.0/go.mod h1:5p6VmsG5/1xx3E785W9fouMxIOkvY2rRV9nMdWadd6c= +github.com/ashanbrown/makezero/v2 v2.1.0 h1:snuKYMbqosNokUKm+R6/+vOPs8yVAi46La7Ck6QYSaE= +github.com/ashanbrown/makezero/v2 v2.1.0/go.mod h1:aEGT/9q3S8DHeE57C88z2a6xydvgx8J5hgXIGWgo0MY= +github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k= +github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= @@ -115,36 +127,46 @@ github.com/blizzy78/varnamelen v0.8.0 h1:oqSblyuQvFsW1hbBHh1zfwrKe3kcSj0rnXkKzsQ github.com/blizzy78/varnamelen v0.8.0/go.mod h1:V9TzQZ4fLJ1DSrjVDfl89H7aMnTvKkApdHeyESmyR7k= github.com/bmatcuk/doublestar/v4 v4.9.1 h1:X8jg9rRZmJd4yRy7ZeNDRnM+T3ZfHv15JiBJ/avrEXE= github.com/bmatcuk/doublestar/v4 v4.9.1/go.mod h1:xBQ8jztBU6kakFMg+8WGxn0c6z1fTSPVIjEY1Wr7jzc= -github.com/bombsimon/wsl/v4 v4.5.0 h1:iZRsEvDdyhd2La0FVi5k6tYehpOR/R7qIUjmKk7N74A= -github.com/bombsimon/wsl/v4 v4.5.0/go.mod h1:NOQ3aLF4nD7N5YPXMruR6ZXDOAqLoM0GEpLwTdvmOSc= -github.com/breml/bidichk v0.3.2 h1:xV4flJ9V5xWTqxL+/PMFF6dtJPvZLPsyixAoPe8BGJs= -github.com/breml/bidichk v0.3.2/go.mod h1:VzFLBxuYtT23z5+iVkamXO386OB+/sVwZOpIj6zXGos= -github.com/breml/errchkjson v0.4.0 h1:gftf6uWZMtIa/Is3XJgibewBm2ksAQSY/kABDNFTAdk= -github.com/breml/errchkjson v0.4.0/go.mod h1:AuBOSTHyLSaaAFlWsRSuRBIroCh3eh7ZHh5YeelDIk8= -github.com/butuzov/ireturn v0.3.1 h1:mFgbEI6m+9W8oP/oDdfA34dLisRFCj2G6o/yiI1yZrY= -github.com/butuzov/ireturn v0.3.1/go.mod h1:ZfRp+E7eJLC0NQmk1Nrm1LOrn/gQlOykv+cVPdiXH5M= +github.com/bombsimon/wsl/v4 v4.7.0 h1:1Ilm9JBPRczjyUs6hvOPKvd7VL1Q++PL8M0SXBDf+jQ= +github.com/bombsimon/wsl/v4 v4.7.0/go.mod h1:uV/+6BkffuzSAVYD+yGyld1AChO7/EuLrCF/8xTiapg= +github.com/bombsimon/wsl/v5 v5.3.0 h1:nZWREJFL6U3vgW/B1lfDOigl+tEF6qgs6dGGbFeR0UM= +github.com/bombsimon/wsl/v5 v5.3.0/go.mod h1:Gp8lD04z27wm3FANIUPZycXp+8huVsn0oxc+n4qfV9I= +github.com/breml/bidichk v0.3.3 h1:WSM67ztRusf1sMoqH6/c4OBCUlRVTKq+CbSeo0R17sE= +github.com/breml/bidichk v0.3.3/go.mod h1:ISbsut8OnjB367j5NseXEGGgO/th206dVa427kR8YTE= +github.com/breml/errchkjson v0.4.1 h1:keFSS8D7A2T0haP9kzZTi7o26r7kE3vymjZNeNDRDwg= +github.com/breml/errchkjson v0.4.1/go.mod h1:a23OvR6Qvcl7DG/Z4o0el6BRAjKnaReoPQFciAl9U3s= +github.com/butuzov/ireturn v0.4.0 h1:+s76bF/PfeKEdbG8b54aCocxXmi0wvYdOVsWxVO7n8E= +github.com/butuzov/ireturn v0.4.0/go.mod h1:ghI0FrCmap8pDWZwfPisFD1vEc56VKH4NpQUxDHta70= github.com/butuzov/mirror v1.3.0 h1:HdWCXzmwlQHdVhwvsfBb2Au0r3HyINry3bDWLYXiKoc= github.com/butuzov/mirror v1.3.0/go.mod h1:AEij0Z8YMALaq4yQj9CPPVYOyJQyiexpQEQgihajRfI= -github.com/catenacyber/perfsprint v0.8.2 h1:+o9zVmCSVa7M4MvabsWvESEhpsMkhfE7k0sHNGL95yw= -github.com/catenacyber/perfsprint v0.8.2/go.mod h1:q//VWC2fWbcdSLEY1R3l8n0zQCDPdE4IjZwyY1HMunM= -github.com/ccojocar/zxcvbn-go v1.0.2 h1:na/czXU8RrhXO4EZme6eQJLR4PzcGsahsBOAwU6I3Vg= -github.com/ccojocar/zxcvbn-go v1.0.2/go.mod h1:g1qkXtUSvHP8lhHp5GrSmTz6uWALGRMQdw6Qnz/hi60= +github.com/catenacyber/perfsprint v0.10.1 h1:u7Riei30bk46XsG8nknMhKLXG9BcXz3+3tl/WpKm0PQ= +github.com/catenacyber/perfsprint v0.10.1/go.mod h1:DJTGsi/Zufpuus6XPGJyKOTMELe347o6akPvWG9Zcsc= +github.com/ccojocar/zxcvbn-go v1.0.4 h1:FWnCIRMXPj43ukfX000kvBZvV6raSxakYr1nzyNrUcc= +github.com/ccojocar/zxcvbn-go v1.0.4/go.mod h1:3GxGX+rHmueTUMvm5ium7irpyjmm7ikxYFOSJB21Das= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/charithe/durationcheck v0.0.10 h1:wgw73BiocdBDQPik+zcEoBG/ob8uyBHf2iyoHGPf5w4= -github.com/charithe/durationcheck v0.0.10/go.mod h1:bCWXb7gYRysD1CU3C+u4ceO49LoGOY1C1L6uouGNreQ= -github.com/chavacava/garif v0.1.0 h1:2JHa3hbYf5D9dsgseMKAmc/MZ109otzgNFk5s87H9Pc= -github.com/chavacava/garif v0.1.0/go.mod h1:XMyYCkEL58DF0oyW4qDjjnPWONs2HBqYKI+UIPD+Gww= +github.com/charithe/durationcheck v0.0.11 h1:g1/EX1eIiKS57NTWsYtHDZ/APfeXKhye1DidBcABctk= +github.com/charithe/durationcheck v0.0.11/go.mod h1:x5iZaixRNl8ctbM+3B2RrPG5t856TxRyVQEnbIEM2X4= +github.com/charmbracelet/colorprofile v0.2.3-0.20250311203215-f60798e515dc h1:4pZI35227imm7yK2bGPcfpFEmuY1gc2YSTShr4iJBfs= +github.com/charmbracelet/colorprofile v0.2.3-0.20250311203215-f60798e515dc/go.mod h1:X4/0JoqgTIPSFcRA/P6INZzIuyqdFY5rm8tb41s9okk= +github.com/charmbracelet/lipgloss v1.1.0 h1:vYXsiLHVkK7fp74RkV7b2kq9+zDLoEU4MZoFqR/noCY= +github.com/charmbracelet/lipgloss v1.1.0/go.mod h1:/6Q8FR2o+kj8rz4Dq0zQc3vYf7X+B0binUUBwA0aL30= +github.com/charmbracelet/x/ansi v0.8.0 h1:9GTq3xq9caJW8ZrBTe0LIe2fvfLR/bYXKTx2llXn7xE= +github.com/charmbracelet/x/ansi v0.8.0/go.mod h1:wdYl/ONOLHLIVmQaxbIYEC/cRKOQyjTkowiI4blgS9Q= +github.com/charmbracelet/x/cellbuf v0.0.13-0.20250311204145-2c3ea96c31dd h1:vy0GVL4jeHEwG5YOXDmi86oYw2yuYUGqz6a8sLwg0X8= +github.com/charmbracelet/x/cellbuf v0.0.13-0.20250311204145-2c3ea96c31dd/go.mod h1:xe0nKWGd3eJgtqZRaN9RjMtK7xUYchjzPr7q6kcvCCs= +github.com/charmbracelet/x/term v0.2.1 h1:AQeHeLZ1OqSXhrAWpYUtZyX1T3zVxfpZuEQMIQaGIAQ= +github.com/charmbracelet/x/term v0.2.1/go.mod h1:oQ4enTYFV7QN4m0i9mzHrViD7TQKvNEEkHUMCmsxdUg= github.com/chengxilo/virtualterm v1.0.4 h1:Z6IpERbRVlfB8WkOmtbHiDbBANU7cimRIof7mk9/PwM= github.com/chengxilo/virtualterm v1.0.4/go.mod h1:DyxxBZz/x1iqJjFxTFcr6/x+jSpqN0iwWCOK1q10rlY= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/ckaznocha/intrange v0.3.0 h1:VqnxtK32pxgkhJgYQEeOArVidIPg+ahLP7WBOXZd5ZY= -github.com/ckaznocha/intrange v0.3.0/go.mod h1:+I/o2d2A1FBHgGELbGxzIcyd3/9l9DuwjM8FsbSS3Lo= +github.com/ckaznocha/intrange v0.3.1 h1:j1onQyXvHUsPWujDH6WIjhyH26gkRt/txNlV7LspvJs= +github.com/ckaznocha/intrange v0.3.1/go.mod h1:QVepyz1AkUoFQkpEqksSYpNpUo3c5W7nWh/s6SHIJJk= github.com/client9/misspell v0.3.4 h1:ta993UF76GwbvJcIo3Y68y/M3WxlpEHPWIGDkJYwzJI= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cloudflare/circl v1.6.1 h1:zqIqSPIndyBh1bjLVVDHMPpVKqp8Su/V+6MeDzzQBQ0= @@ -155,15 +177,19 @@ github.com/curioswitch/go-reassign v0.3.0 h1:dh3kpQHuADL3cobV/sSGETA8DOv457dwl+f github.com/curioswitch/go-reassign v0.3.0/go.mod h1:nApPCCTtqLJN/s8HfItCcKV0jIPwluBOvZP+dsJGA88= github.com/cyphar/filepath-securejoin v0.4.1 h1:JyxxyPEaktOD+GAnqIqTf9A8tHyAG22rowi7HkoSU1s= github.com/cyphar/filepath-securejoin v0.4.1/go.mod h1:Sdj7gXlvMcPZsbhwhQ33GguGLDGQL7h7bg04C/+u9jI= -github.com/daixiang0/gci v0.13.5 h1:kThgmH1yBmZSBCh1EJVxQ7JsHpm5Oms0AMed/0LaH4c= -github.com/daixiang0/gci v0.13.5/go.mod h1:12etP2OniiIdP4q+kjUGrC/rUagga7ODbqsom5Eo5Yk= +github.com/daixiang0/gci v0.13.7 h1:+0bG5eK9vlI08J+J/NWGbWPTNiXPG4WhNLJOkSxWITQ= +github.com/daixiang0/gci v0.13.7/go.mod h1:812WVN6JLFY9S6Tv76twqmNqevN0pa3SX3nih0brVzQ= +github.com/dave/dst v0.27.3 h1:P1HPoMza3cMEquVf9kKy8yXsFirry4zEnWOdYPOoIzY= +github.com/dave/dst v0.27.3/go.mod h1:jHh6EOibnHgcUW3WjKHisiooEkYwqpHLBSX1iOBhEyc= +github.com/dave/jennifer v1.7.1 h1:B4jJJDHelWcDhlRQxWeo0Npa/pYKBLrirAQoTN45txo= +github.com/dave/jennifer v1.7.1/go.mod h1:nXbxhEmQfOZhWml3D1cDK5M1FLnMSozpbFN/m3RmGZc= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/denis-tingaikin/go-header v0.5.0 h1:SRdnP5ZKvcO9KKRP1KJrhFR3RrlGuD+42t4429eC9k8= github.com/denis-tingaikin/go-header v0.5.0/go.mod h1:mMenU5bWrok6Wl2UsZjy+1okegmwQ3UgWl4V1D8gjlY= -github.com/dlclark/regexp2 v1.11.0 h1:G/nrcoOa7ZXlpoa/91N3X7mM3r8eIlMBBJZvsz/mxKI= -github.com/dlclark/regexp2 v1.11.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= +github.com/dlclark/regexp2 v1.11.5 h1:Q/sSnsKerHeCkc/jSTNq1oCm7KiVgUMZRDUoRu0JQZQ= +github.com/dlclark/regexp2 v1.11.5/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -176,18 +202,18 @@ github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= github.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4= github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94= -github.com/firefart/nonamedreturns v1.0.5 h1:tM+Me2ZaXs8tfdDw3X6DOX++wMCOqzYUho6tUTYIdRA= -github.com/firefart/nonamedreturns v1.0.5/go.mod h1:gHJjDqhGM4WyPt639SOZs+G89Ko7QKH5R5BhnO6xJhw= +github.com/firefart/nonamedreturns v1.0.6 h1:vmiBcKV/3EqKY3ZiPxCINmpS431OcE1S47AQUwhrg8E= +github.com/firefart/nonamedreturns v1.0.6/go.mod h1:R8NisJnSIpvPWheCq0mNRXJok6D8h7fagJTF8EMEwCo= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k= github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/fzipp/gocyclo v0.6.0 h1:lsblElZG7d3ALtGMx9fmxeTKZaLLpU8mET09yN4BBLo= github.com/fzipp/gocyclo v0.6.0/go.mod h1:rXPyn8fnlpa0R2csP/31uerbiVBugk5whMdlyaLkLoA= -github.com/ghostiam/protogetter v0.3.9 h1:j+zlLLWzqLay22Cz/aYwTHKQ88GE2DQ6GkWSYFOI4lQ= -github.com/ghostiam/protogetter v0.3.9/go.mod h1:WZ0nw9pfzsgxuRsPOFQomgDVSWtDLJRfQJEhsGbmQMA= -github.com/go-critic/go-critic v0.12.0 h1:iLosHZuye812wnkEz1Xu3aBwn5ocCPfc9yqmFG9pa6w= -github.com/go-critic/go-critic v0.12.0/go.mod h1:DpE0P6OVc6JzVYzmM5gq5jMU31zLr4am5mB/VfFK64w= +github.com/ghostiam/protogetter v0.3.17 h1:sjGPErP9o7i2Ym+z3LsQzBdLCNaqbYy2iJQPxGXg04Q= +github.com/ghostiam/protogetter v0.3.17/go.mod h1:AivIX1eKA/TcUmzZdzbl+Tb8tjIe8FcyG6JFyemQAH4= +github.com/go-critic/go-critic v0.14.2 h1:PMvP5f+LdR8p6B29npvChUXbD1vrNlKDf60NJtgMBOo= +github.com/go-critic/go-critic v0.14.2/go.mod h1:xwntfW6SYAd7h1OqDzmN6hBX/JxsEKl5up/Y2bsxgVQ= github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI= github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic= github.com/go-git/go-billy/v5 v5.6.2 h1:6Q86EsPXMa7c3YZ3aLAQsMA0VlWmy43r6FHqa/UNbRM= @@ -203,8 +229,8 @@ github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vb 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-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= +github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-quicktest/qt v1.101.0 h1:O1K29Txy5P2OK0dGo59b7b0LR6wKfIhttaAhHUyn7eI= github.com/go-quicktest/qt v1.101.0/go.mod h1:14Bz/f7NwaXPtdYEgzsx46kqSxVwTbzVZsDC26tQJow= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= @@ -235,8 +261,10 @@ github.com/go-xmlfmt/xmlfmt v1.1.3 h1:t8Ey3Uy7jDSEisW2K3somuMKIpzktkWptA0iFCnRUW github.com/go-xmlfmt/xmlfmt v1.1.3/go.mod h1:aUCEOzzezBEjDBbFBoSiya/gduyIiWYRP6CnSFIV8AM= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= -github.com/gofrs/flock v0.12.1 h1:MTLVXXHf8ekldpJk3AKicLij9MdwOWkZ+a/jHHZby9E= -github.com/gofrs/flock v0.12.1/go.mod h1:9zxTsyu5xtJ9DK+1tFZyibEV7y3uwDxPPfbxeeHCoD0= +github.com/godoc-lint/godoc-lint v0.10.2 h1:dksNgK+zebnVlj4Fx83CRnCmPO0qRat/9xfFsir1nfg= +github.com/godoc-lint/godoc-lint v0.10.2/go.mod h1:KleLcHu/CGSvkjUH2RvZyoK1MBC7pDQg4NxMYLcBBsw= +github.com/gofrs/flock v0.13.0 h1:95JolYOvGMqeH31+FC7D2+uULf6mG61mEZ/A8dRYMzw= +github.com/gofrs/flock v0.13.0/go.mod h1:jxeyy9R1auM5S6JYDBhDt+E2TCo7DkratH4Pgi8P+Z0= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -269,22 +297,28 @@ github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaS github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= 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/golangci/asciicheck v0.5.0 h1:jczN/BorERZwK8oiFBOGvlGPknhvq0bjnysTj4nUfo0= +github.com/golangci/asciicheck v0.5.0/go.mod h1:5RMNAInbNFw2krqN6ibBxN/zfRFa9S6tA1nPdM0l8qQ= github.com/golangci/dupl v0.0.0-20250308024227-f665c8d69b32 h1:WUvBfQL6EW/40l6OmeSBYQJNSif4O11+bmWEz+C7FYw= github.com/golangci/dupl v0.0.0-20250308024227-f665c8d69b32/go.mod h1:NUw9Zr2Sy7+HxzdjIULge71wI6yEg1lWQr7Evcu8K0E= -github.com/golangci/go-printf-func-name v0.1.0 h1:dVokQP+NMTO7jwO4bwsRwLWeudOVUPPyAKJuzv8pEJU= -github.com/golangci/go-printf-func-name v0.1.0/go.mod h1:wqhWFH5mUdJQhweRnldEywnR5021wTdZSNgwYceV14s= +github.com/golangci/go-printf-func-name v0.1.1 h1:hIYTFJqAGp1iwoIfsNTpoq1xZAarogrvjO9AfiW3B4U= +github.com/golangci/go-printf-func-name v0.1.1/go.mod h1:Es64MpWEZbh0UBtTAICOZiB+miW53w/K9Or/4QogJss= github.com/golangci/gofmt v0.0.0-20250106114630-d62b90e6713d h1:viFft9sS/dxoYY0aiOTsLKO2aZQAPT4nlQCsimGcSGE= github.com/golangci/gofmt v0.0.0-20250106114630-d62b90e6713d/go.mod h1:ivJ9QDg0XucIkmwhzCDsqcnxxlDStoTl89jDMIoNxKY= -github.com/golangci/golangci-lint v1.64.8 h1:y5TdeVidMtBGG32zgSC7ZXTFNHrsJkDnpO4ItB3Am+I= -github.com/golangci/golangci-lint v1.64.8/go.mod h1:5cEsUQBSr6zi8XI8OjmcY2Xmliqc4iYL7YoPrL+zLJ4= -github.com/golangci/misspell v0.6.0 h1:JCle2HUTNWirNlDIAUO44hUsKhOFqGPoC4LZxlaSXDs= -github.com/golangci/misspell v0.6.0/go.mod h1:keMNyY6R9isGaSAu+4Q8NMBwMPkh15Gtc8UCVoDtAWo= -github.com/golangci/plugin-module-register v0.1.1 h1:TCmesur25LnyJkpsVrupv1Cdzo+2f7zX0H6Jkw1Ol6c= -github.com/golangci/plugin-module-register v0.1.1/go.mod h1:TTpqoB6KkwOJMV8u7+NyXMrkwwESJLOkfl9TxR1DGFc= +github.com/golangci/golangci-lint/v2 v2.7.2 h1:AhBC+YeEueec4AGlIbvPym5C70Thx0JykIqXbdIXWx0= +github.com/golangci/golangci-lint/v2 v2.7.2/go.mod h1:pDijleoBu7e8sejMqyZ3L5n6geqe+cVvOAz2QImqqVc= +github.com/golangci/golines v0.0.0-20250217134842-442fd0091d95 h1:AkK+w9FZBXlU/xUmBtSJN1+tAI4FIvy5WtnUnY8e4p8= +github.com/golangci/golines v0.0.0-20250217134842-442fd0091d95/go.mod h1:k9mmcyWKSTMcPPvQUCfRWWQ9VHJ1U9Dc0R7kaXAgtnQ= +github.com/golangci/misspell v0.7.0 h1:4GOHr/T1lTW0hhR4tgaaV1WS/lJ+ncvYCoFKmqJsj0c= +github.com/golangci/misspell v0.7.0/go.mod h1:WZyyI2P3hxPY2UVHs3cS8YcllAeyfquQcKfdeE9AFVg= +github.com/golangci/plugin-module-register v0.1.2 h1:e5WM6PO6NIAEcij3B053CohVp3HIYbzSuP53UAYgOpg= +github.com/golangci/plugin-module-register v0.1.2/go.mod h1:1+QGTsKBvAIvPvoY/os+G5eoqxWn70HYDm2uvUyGuVw= github.com/golangci/revgrep v0.8.0 h1:EZBctwbVd0aMeRnNUsFogoyayvKHyxlV3CdUA46FX2s= github.com/golangci/revgrep v0.8.0/go.mod h1:U4R/s9dlXZsg8uJmaR1GrloUr14D7qDl8gi2iPXJH8k= -github.com/golangci/unconvert v0.0.0-20240309020433-c5143eacb3ed h1:IURFTjxeTfNFP0hTEi1YKjB/ub8zkpaOqFFMApi2EAs= -github.com/golangci/unconvert v0.0.0-20240309020433-c5143eacb3ed/go.mod h1:XLXN8bNw4CGRPaqgl3bv/lhz7bsGPh4/xSaMTbo2vkQ= +github.com/golangci/swaggoswag v0.0.0-20250504205917-77f2aca3143e h1:ai0EfmVYE2bRA5htgAG9r7s3tHsfjIhN98WshBTJ9jM= +github.com/golangci/swaggoswag v0.0.0-20250504205917-77f2aca3143e/go.mod h1:Vrn4B5oR9qRwM+f54koyeH3yzphlecwERs0el27Fr/s= +github.com/golangci/unconvert v0.0.0-20250410112200-a129a6e6413e h1:gD6P7NEo7Eqtt0ssnqSJNNndxe69DOQ24A5h7+i3KpM= +github.com/golangci/unconvert v0.0.0-20250410112200-a129a6e6413e/go.mod h1:h+wZwLjUTJnm/P2rwlbJdRPZXOzaT36/FwnPnY2inzc= 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/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= @@ -297,7 +331,6 @@ github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= @@ -311,26 +344,25 @@ github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad h1:a6HEuzUHeKH6hwfN/ZoQgRgVIWFJljSWa/zetS2WTvg= -github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= +github.com/google/pprof v0.0.0-20250820193118-f64d9cf942d6 h1:EEHtgt9IwisQ2AZ4pIsMjahcegHh6rmhqxzIRQIyepY= +github.com/google/pprof v0.0.0-20250820193118-f64d9cf942d6/go.mod h1:I6V7YzU0XDpsHqbsyrghnFZLO1gwK6NPTNvmetQIk9U= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/gordonklaus/ineffassign v0.1.0 h1:y2Gd/9I7MdY1oEIt+n+rowjBNDcLQq3RsH5hwJd0f9s= -github.com/gordonklaus/ineffassign v0.1.0/go.mod h1:Qcp2HIAYhR7mNUVSIxZww3Guk4it82ghYcEXIAk+QT0= +github.com/gordonklaus/ineffassign v0.2.0 h1:Uths4KnmwxNJNzq87fwQQDDnbNb7De00VOk9Nu0TySs= +github.com/gordonklaus/ineffassign v0.2.0/go.mod h1:TIpymnagPSexySzs7F9FnO1XFTy8IT3a59vmZp5Y9Lw= github.com/gostaticanalysis/analysisutil v0.7.1 h1:ZMCjoue3DtDWQ5WyU16YbjbQEQ3VuzwxALrpYd+HeKk= github.com/gostaticanalysis/analysisutil v0.7.1/go.mod h1:v21E3hY37WKMGSnbsw2S/ojApNWb6C1//mXO48CXbVc= -github.com/gostaticanalysis/comment v1.4.1/go.mod h1:ih6ZxzTHLdadaiSnF5WY3dxUoXfXAlTaRzuaNDlSado= github.com/gostaticanalysis/comment v1.4.2/go.mod h1:KLUTGDv6HOCotCH8h2erHKmpci2ZoR8VPu34YA2uzdM= github.com/gostaticanalysis/comment v1.5.0 h1:X82FLl+TswsUMpMh17srGRuKaaXprTaytmEpgnKIDu8= github.com/gostaticanalysis/comment v1.5.0/go.mod h1:V6eb3gpCv9GNVqb6amXzEUX3jXLVK/AdA+IrAMSqvEc= github.com/gostaticanalysis/forcetypeassert v0.2.0 h1:uSnWrrUEYDr86OCxWa4/Tp2jeYDlogZiZHzGkWFefTk= github.com/gostaticanalysis/forcetypeassert v0.2.0/go.mod h1:M5iPavzE9pPqWyeiVXSFghQjljW1+l/Uke3PXHS6ILY= -github.com/gostaticanalysis/nilerr v0.1.1 h1:ThE+hJP0fEp4zWLkWHWcRyI2Od0p7DlgYG3Uqrmrcpk= -github.com/gostaticanalysis/nilerr v0.1.1/go.mod h1:wZYb6YI5YAxxq0i1+VJbY0s2YONW0HU0GPE3+5PWN4A= +github.com/gostaticanalysis/nilerr v0.1.2 h1:S6nk8a9N8g062nsx63kUkF6AzbHGw7zzyHMcpu52xQU= +github.com/gostaticanalysis/nilerr v0.1.2/go.mod h1:A19UHhoY3y8ahoL7YKz6sdjDtduwTSI4CsymaC2htPA= github.com/gostaticanalysis/testutil v0.3.1-0.20210208050101-bfb5c8eec0e4/go.mod h1:D+FIZ+7OahH3ePw/izIEeH5I06eKs1IKI4Xr64/Am3M= github.com/gostaticanalysis/testutil v0.5.0 h1:Dq4wT1DdTwTGCQQv3rl3IvD5Ld0E6HiY+3Zh0sUGqw8= github.com/gostaticanalysis/testutil v0.5.0/go.mod h1:OLQSbuM6zw2EvCcXTz1lVq5unyoNft372msDY0nY5Hs= @@ -357,8 +389,8 @@ github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/b github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-version v1.2.1/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= -github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= -github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/go-version v1.8.0 h1:KAkNb1HAiZd1ukkxDFGmokVZe1Xy9HG6NUp+bPle2i4= +github.com/hashicorp/go-version v1.8.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= @@ -383,12 +415,12 @@ github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2 github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= -github.com/jgautheron/goconst v1.7.1 h1:VpdAG7Ca7yvvJk5n8dMwQhfEZJh95kl/Hl9S1OI5Jkk= -github.com/jgautheron/goconst v1.7.1/go.mod h1:aAosetZ5zaeC/2EfMeRswtxUFBpe2Hr7HzkgX4fanO4= +github.com/jgautheron/goconst v1.8.2 h1:y0XF7X8CikZ93fSNT6WBTb/NElBu9IjaY7CCYQrCMX4= +github.com/jgautheron/goconst v1.8.2/go.mod h1:A0oxgBCHy55NQn6sYpO7UdnA9p+h7cPtoOZUmvNIako= github.com/jingyugao/rowserrcheck v1.1.1 h1:zibz55j/MJtLsjP1OF4bSdgXxwL1b+Vn7Tjzq7gFzUs= github.com/jingyugao/rowserrcheck v1.1.1/go.mod h1:4yvlZSDb3IyDTUZJUmpZfm2Hwok+Dtp+nu2qOq+er9c= -github.com/jjti/go-spancheck v0.6.4 h1:Tl7gQpYf4/TMU7AT84MN83/6PutY21Nb9fuQjFTpRRc= -github.com/jjti/go-spancheck v0.6.4/go.mod h1:yAEYdKJ2lRkDA8g7X+oKUHXOWVAXSBJRv04OhF+QUjk= +github.com/jjti/go-spancheck v0.6.5 h1:lmi7pKxa37oKYIMScialXUK6hP3iY5F1gu+mLBPgYB8= +github.com/jjti/go-spancheck v0.6.5/go.mod h1:aEogkeatBrbYsyW6y5TgDfihCulDYciL1B7rG2vSsrU= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= @@ -400,8 +432,8 @@ github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7V github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/julz/importas v0.2.0 h1:y+MJN/UdL63QbFJHws9BVC5RpA2iq0kpjrFajTGivjQ= github.com/julz/importas v0.2.0/go.mod h1:pThlt589EnCYtMnmhmRYY/qn9lCf/frPOK+WMx3xiJY= -github.com/karamaru-alpha/copyloopvar v1.2.1 h1:wmZaZYIjnJ0b5UoKDjUHrikcV0zuPyyxI4SVplLd2CI= -github.com/karamaru-alpha/copyloopvar v1.2.1/go.mod h1:nFmMlFNlClC2BPvNaHMdkirmTJxVCY0lhxBtlfOypMM= +github.com/karamaru-alpha/copyloopvar v1.2.2 h1:yfNQvP9YaGQR7VaWLYcfZUlRP2eo2vhExWKxD/fP6q0= +github.com/karamaru-alpha/copyloopvar v1.2.2/go.mod h1:oY4rGZqZ879JkJMtX3RRkcXRkmUvH0x35ykgaKgsgJY= github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4= github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= github.com/kisielk/errcheck v1.9.0 h1:9xt1zI9EBfcYBvdU1nVrzMzzUPUtPKs9bVSIM3TAb3M= @@ -420,30 +452,36 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/kulti/thelper v0.6.3 h1:ElhKf+AlItIu+xGnI990no4cE2+XaSu1ULymV2Yulxs= -github.com/kulti/thelper v0.6.3/go.mod h1:DsqKShOvP40epevkFrvIwkCMNYxMeTNjdWL4dqWHZ6I= -github.com/kunwardeep/paralleltest v1.0.10 h1:wrodoaKYzS2mdNVnc4/w31YaXFtsc21PCTdvWJ/lDDs= -github.com/kunwardeep/paralleltest v1.0.10/go.mod h1:2C7s65hONVqY7Q5Efj5aLzRCNLjw2h4eMc9EcypGjcY= +github.com/kulti/thelper v0.7.1 h1:fI8QITAoFVLx+y+vSyuLBP+rcVIB8jKooNSCT2EiI98= +github.com/kulti/thelper v0.7.1/go.mod h1:NsMjfQEy6sd+9Kfw8kCP61W1I0nerGSYSFnGaxQkcbs= +github.com/kunwardeep/paralleltest v1.0.15 h1:ZMk4Qt306tHIgKISHWFJAO1IDQJLc6uDyJMLyncOb6w= +github.com/kunwardeep/paralleltest v1.0.15/go.mod h1:di4moFqtfz3ToSKxhNjhOZL+696QtJGCFe132CbBLGk= github.com/lasiar/canonicalheader v1.1.2 h1:vZ5uqwvDbyJCnMhmFYimgMZnJMjwljN5VGY0VKbMXb4= github.com/lasiar/canonicalheader v1.1.2/go.mod h1:qJCeLFS0G/QlLQ506T+Fk/fWMa2VmBUiEI2cuMK4djI= -github.com/ldez/exptostd v0.4.2 h1:l5pOzHBz8mFOlbcifTxzfyYbgEmoUqjxLFHZkjlbHXs= -github.com/ldez/exptostd v0.4.2/go.mod h1:iZBRYaUmcW5jwCR3KROEZ1KivQQp6PHXbDPk9hqJKCQ= -github.com/ldez/gomoddirectives v0.6.1 h1:Z+PxGAY+217f/bSGjNZr/b2KTXcyYLgiWI6geMBN2Qc= -github.com/ldez/gomoddirectives v0.6.1/go.mod h1:cVBiu3AHR9V31em9u2kwfMKD43ayN5/XDgr+cdaFaKs= -github.com/ldez/grignotin v0.9.0 h1:MgOEmjZIVNn6p5wPaGp/0OKWyvq42KnzAt/DAb8O4Ow= -github.com/ldez/grignotin v0.9.0/go.mod h1:uaVTr0SoZ1KBii33c47O1M8Jp3OP3YDwhZCmzT9GHEk= -github.com/ldez/tagliatelle v0.7.1 h1:bTgKjjc2sQcsgPiT902+aadvMjCeMHrY7ly2XKFORIk= -github.com/ldez/tagliatelle v0.7.1/go.mod h1:3zjxUpsNB2aEZScWiZTHrAXOl1x25t3cRmzfK1mlo2I= -github.com/ldez/usetesting v0.4.2 h1:J2WwbrFGk3wx4cZwSMiCQQ00kjGR0+tuuyW0Lqm4lwA= -github.com/ldez/usetesting v0.4.2/go.mod h1:eEs46T3PpQ+9RgN9VjpY6qWdiw2/QmfiDeWmdZdrjIQ= +github.com/ldez/exptostd v0.4.5 h1:kv2ZGUVI6VwRfp/+bcQ6Nbx0ghFWcGIKInkG/oFn1aQ= +github.com/ldez/exptostd v0.4.5/go.mod h1:QRjHRMXJrCTIm9WxVNH6VW7oN7KrGSht69bIRwvdFsM= +github.com/ldez/gomoddirectives v0.7.1 h1:FaULkvUIG36hj6chpwa+FdCNGZBsD7/fO+p7CCsM6pE= +github.com/ldez/gomoddirectives v0.7.1/go.mod h1:auDNtakWJR1rC+YX7ar+HmveqXATBAyEK1KYpsIRW/8= +github.com/ldez/grignotin v0.10.1 h1:keYi9rYsgbvqAZGI1liek5c+jv9UUjbvdj3Tbn5fn4o= +github.com/ldez/grignotin v0.10.1/go.mod h1:UlDbXFCARrXbWGNGP3S5vsysNXAPhnSuBufpTEbwOas= +github.com/ldez/tagliatelle v0.7.2 h1:KuOlL70/fu9paxuxbeqlicJnCspCRjH0x8FW+NfgYUk= +github.com/ldez/tagliatelle v0.7.2/go.mod h1:PtGgm163ZplJfZMZ2sf5nhUT170rSuPgBimoyYtdaSI= +github.com/ldez/usetesting v0.5.0 h1:3/QtzZObBKLy1F4F8jLuKJiKBjjVFi1IavpoWbmqLwc= +github.com/ldez/usetesting v0.5.0/go.mod h1:Spnb4Qppf8JTuRgblLrEWb7IE6rDmUpGvxY3iRrzvDQ= github.com/leonklingele/grouper v1.1.2 h1:o1ARBDLOmmasUaNDesWqWCIFH3u7hoFlM84YrjT3mIY= github.com/leonklingele/grouper v1.1.2/go.mod h1:6D0M/HVkhs2yRKRFZUoGjeDy7EZTfFBE9gl4kjmIGkA= -github.com/macabu/inamedparam v0.1.3 h1:2tk/phHkMlEL/1GNe/Yf6kkR/hkcUdAEY3L0hjYV1Mk= -github.com/macabu/inamedparam v0.1.3/go.mod h1:93FLICAIk/quk7eaPPQvbzihUdn/QkGDwIZEoLtpH6I= -github.com/maratori/testableexamples v1.0.0 h1:dU5alXRrD8WKSjOUnmJZuzdxWOEQ57+7s93SLMxb2vI= -github.com/maratori/testableexamples v1.0.0/go.mod h1:4rhjL1n20TUTT4vdh3RDqSizKLyXp7K2u6HgraZCGzE= -github.com/maratori/testpackage v1.1.1 h1:S58XVV5AD7HADMmD0fNnziNHqKvSdDuEKdPD1rNTU04= -github.com/maratori/testpackage v1.1.1/go.mod h1:s4gRK/ym6AMrqpOa/kEbQTV4Q4jb7WeLZzVhVVVOQMc= +github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= +github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= +github.com/macabu/inamedparam v0.2.0 h1:VyPYpOc10nkhI2qeNUdh3Zket4fcZjEWe35poddBCpE= +github.com/macabu/inamedparam v0.2.0/go.mod h1:+Pee9/YfGe5LJ62pYXqB89lJ+0k5bsR8Wgz/C0Zlq3U= +github.com/manuelarte/embeddedstructfieldcheck v0.4.0 h1:3mAIyaGRtjK6EO9E73JlXLtiy7ha80b2ZVGyacxgfww= +github.com/manuelarte/embeddedstructfieldcheck v0.4.0/go.mod h1:z8dFSyXqp+fC6NLDSljRJeNQJJDWnY7RoWFzV3PC6UM= +github.com/manuelarte/funcorder v0.5.0 h1:llMuHXXbg7tD0i/LNw8vGnkDTHFpTnWqKPI85Rknc+8= +github.com/manuelarte/funcorder v0.5.0/go.mod h1:Yt3CiUQthSBMBxjShjdXMexmzpP8YGvGLjrxJNkO2hA= +github.com/maratori/testableexamples v1.0.1 h1:HfOQXs+XgfeRBJ+Wz0XfH+FHnoY9TVqL6Fcevpzy4q8= +github.com/maratori/testableexamples v1.0.1/go.mod h1:XE2F/nQs7B9N08JgyRmdGjYVGqxWwClLPCGSQhXQSrQ= +github.com/maratori/testpackage v1.1.2 h1:ffDSh+AgqluCLMXhM19f/cpvQAKygKAJXFl9aUjmbqs= +github.com/maratori/testpackage v1.1.2/go.mod h1:8F24GdVDFW5Ew43Et02jamrVMNXLUNaOynhDssITGfc= github.com/matoous/godox v1.1.0 h1:W5mqwbyWrwZv6OQ5Z1a/DHGMOvXYCBP3+Ht7KMoJhq4= github.com/matoous/godox v1.1.0/go.mod h1:jgE/3fUXiTurkdHOLT5WEkThTSuE7yxHv5iWPa80afs= github.com/matryer/is v1.4.0 h1:sosSmIWwkYITGrxZ25ULNDeKiMNzFSr4V/eqBQP0PeE= @@ -452,13 +490,12 @@ github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHP github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc= github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/mgechev/revive v1.7.0 h1:JyeQ4yO5K8aZhIKf5rec56u0376h8AlKNQEmjfkjKlY= -github.com/mgechev/revive v1.7.0/go.mod h1:qZnwcNhoguE58dfi96IJeSTPeZQejNeoMQLUZGi4SW4= +github.com/mgechev/revive v1.13.0 h1:yFbEVliCVKRXY8UgwEO7EOYNopvjb1BFbmYqm9hZjBM= +github.com/mgechev/revive v1.13.0/go.mod h1:efJfeBVCX2JUumNQ7dtOLDja+QKj9mYGgEZA7rt5u+0= github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db h1:62I3jR2EmQ4l5rM/4FEfDWcRD+abF5XlKShorW5LRoQ= github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db/go.mod h1:l0dey0ia/Uv7NcFFVbCLtqEBQbrT4OCwCSKTEv6enCw= github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= @@ -476,6 +513,8 @@ github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3Rllmb github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/moricho/tparallel v0.3.2 h1:odr8aZVFA3NZrNybggMkYO3rgPRcqjeQUlBBFVxKHTI= github.com/moricho/tparallel v0.3.2/go.mod h1:OQ+K3b4Ln3l2TZveGCywybl68glfLEwFGqvnjok8b+U= +github.com/muesli/termenv v0.16.0 h1:S5AlUN9dENB57rsbnkPyfdGuWIlkmzJjbFf0Tf5FWUc= +github.com/muesli/termenv v0.16.0/go.mod h1:ZRfOIKPFDYQoDFF4Olj7/QJbW60Ol/kL1pU3VfY/Cnk= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/nakabonne/nestif v0.3.1 h1:wm28nZjhQY5HyYPx+weN3Q65k6ilSBxDb8v5S81B81U= @@ -484,14 +523,12 @@ github.com/nishanths/exhaustive v0.12.0 h1:vIY9sALmw6T/yxiASewa4TQcFsVYZQQRUQJhK github.com/nishanths/exhaustive v0.12.0/go.mod h1:mEZ95wPIZW+x8kC4TgC+9YCUgiST7ecevsVDTgc2obs= github.com/nishanths/predeclared v0.2.2 h1:V2EPdZPliZymNAn79T8RkNApBjMmVKh5XRpLm/w98Vk= github.com/nishanths/predeclared v0.2.2/go.mod h1:RROzoN6TnGQupbC+lqggsOlcgysk3LMK/HI84Mp280c= -github.com/nunnatsa/ginkgolinter v0.19.1 h1:mjwbOlDQxZi9Cal+KfbEJTCz327OLNfwNvoZ70NJ+c4= -github.com/nunnatsa/ginkgolinter v0.19.1/go.mod h1:jkQ3naZDmxaZMXPWaS9rblH+i+GWXQCaS/JFIWcOH2s= -github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= -github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= -github.com/onsi/ginkgo/v2 v2.22.2 h1:/3X8Panh8/WwhU/3Ssa6rCKqPLuAkVY2I0RoyDLySlU= -github.com/onsi/ginkgo/v2 v2.22.2/go.mod h1:oeMosUL+8LtarXBHu/c0bx2D/K9zyQ6uX3cTyztHwsk= -github.com/onsi/gomega v1.36.2 h1:koNYke6TVk6ZmnyHrCXba/T/MoLBXFjeC1PtvYgw0A8= -github.com/onsi/gomega v1.36.2/go.mod h1:DdwyADRjrc825LhMEkD76cHR5+pUnjhUN8GlHlRPHzY= +github.com/nunnatsa/ginkgolinter v0.21.2 h1:khzWfm2/Br8ZemX8QM1pl72LwM+rMeW6VUbQ4rzh0Po= +github.com/nunnatsa/ginkgolinter v0.21.2/go.mod h1:GItSI5fw7mCGLPmkvGYrr1kEetZe7B593jcyOpyabsY= +github.com/onsi/ginkgo/v2 v2.27.2 h1:LzwLj0b89qtIy6SSASkzlNvX6WktqurSHwkk2ipF/Ns= +github.com/onsi/ginkgo/v2 v2.27.2/go.mod h1:ArE1D/XhNXBXCBkKOLkbsb2c81dQHCRcF5zwn/ykDRo= +github.com/onsi/gomega v1.38.2 h1:eZCjf2xjZAqe+LeWvKb5weQ+NcPwX84kqJ0cZNxok2A= +github.com/onsi/gomega v1.38.2/go.mod h1:W2MJcYxRGV63b418Ai34Ud0hEdTVXq9NW9+Sx6uXf3k= github.com/otiai10/copy v1.2.0/go.mod h1:rrF5dJ5F0t/EWSYODDu4j9/vEeYHMkc8jt0zJChqQWw= github.com/otiai10/copy v1.14.0 h1:dCI/t1iTdYGtkvCuBG2BgR6KZa83PTclw4U5n2wAllU= github.com/otiai10/copy v1.14.0/go.mod h1:ECfuL02W+/FkTWZWgQqXPWZgW9oeKCSQ5qVfSc4qc4w= @@ -507,12 +544,11 @@ github.com/pjbgf/sha1cd v0.3.2 h1:a9wb0bp1oC2TGwStyn0Umc/IGKQnEgF0vVaZ8QF8eo4= github.com/pjbgf/sha1cd v0.3.2/go.mod h1:zQWigSxVmsHEZow5qaLtPYxpcKMMQpa09ixqBxuCS6A= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/polyfloyd/go-errorlint v1.7.1 h1:RyLVXIbosq1gBdk/pChWA8zWYLsq9UEw7a1L5TVMCnA= -github.com/polyfloyd/go-errorlint v1.7.1/go.mod h1:aXjNb1x2TNhoLsk26iv1yl7a+zTnXPhwEMtEXukiLR8= +github.com/polyfloyd/go-errorlint v1.8.0 h1:DL4RestQqRLr8U4LygLw8g2DX6RN1eBJOpa2mzsrl1Q= +github.com/polyfloyd/go-errorlint v1.8.0/go.mod h1:G2W0Q5roxbLCt0ZQbdoxQxXktTjwNyDbEaj3n7jvl4s= github.com/posener/complete v1.2.3 h1:NP0eAhjcjImqslEwo/1hq7gpajME0fTLTezBKDqfXqo= github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s= github.com/prashantv/gostub v1.1.0 h1:BTyx3RfQjRHnUWaGF9oQos79AlQ5k8WNktv7VGvVH4g= @@ -539,10 +575,10 @@ github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4O github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU= github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/quasilyte/go-ruleguard v0.4.3-0.20240823090925-0fe6f58b47b1 h1:+Wl/0aFp0hpuHM3H//KMft64WQ1yX9LdJY64Qm/gFCo= -github.com/quasilyte/go-ruleguard v0.4.3-0.20240823090925-0fe6f58b47b1/go.mod h1:GJLgqsLeo4qgavUoL8JeGFNS7qcisx3awV/w9eWTmNI= -github.com/quasilyte/go-ruleguard/dsl v0.3.22 h1:wd8zkOhSNr+I+8Qeciml08ivDt1pSXe60+5DqOpCjPE= -github.com/quasilyte/go-ruleguard/dsl v0.3.22/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= +github.com/quasilyte/go-ruleguard v0.4.5 h1:AGY0tiOT5hJX9BTdx/xBdoCubQUAE2grkqY2lSwvZcA= +github.com/quasilyte/go-ruleguard v0.4.5/go.mod h1:Vl05zJ538vcEEwu16V/Hdu7IYZWyKSwIy4c88Ro1kRE= +github.com/quasilyte/go-ruleguard/dsl v0.3.23 h1:lxjt5B6ZCiBeeNO8/oQsegE6fLeCzuMRoVWSkXC4uvY= +github.com/quasilyte/go-ruleguard/dsl v0.3.23/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= github.com/quasilyte/gogrep v0.5.0 h1:eTKODPXbI8ffJMN+W2aE0+oL0z/nh8/5eNdiO34SOAo= github.com/quasilyte/gogrep v0.5.0/go.mod h1:Cm9lpz9NZjEoL1tgZ2OgeUKPIxL1meE7eo60Z6Sk+Ng= github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727 h1:TCg2WBOl980XxGFEZSS6KlBGIV0diGdySzxATTWoqaU= @@ -558,24 +594,24 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/ryancurrah/gomodguard v1.3.5 h1:cShyguSwUEeC0jS7ylOiG/idnd1TpJ1LfHGpV3oJmPU= -github.com/ryancurrah/gomodguard v1.3.5/go.mod h1:MXlEPQRxgfPQa62O8wzK3Ozbkv9Rkqr+wKjSxTdsNJE= +github.com/ryancurrah/gomodguard v1.4.1 h1:eWC8eUMNZ/wM/PWuZBv7JxxqT5fiIKSIyTvjb7Elr+g= +github.com/ryancurrah/gomodguard v1.4.1/go.mod h1:qnMJwV1hX9m+YJseXEBhd2s90+1Xn6x9dLz11ualI1I= github.com/ryanrolds/sqlclosecheck v0.5.1 h1:dibWW826u0P8jNLsLN+En7+RqWWTYrjCB9fJfSfdyCU= github.com/ryanrolds/sqlclosecheck v0.5.1/go.mod h1:2g3dUjoS6AL4huFdv6wn55WpLIDjY7ZgUR4J8HOO/XQ= github.com/sagikazarmark/locafero v0.12.0 h1:/NQhBAkUb4+fH1jivKHWusDYFjMOOKU88eegjfxfHb4= github.com/sagikazarmark/locafero v0.12.0/go.mod h1:sZh36u/YSZ918v0Io+U9ogLYQJ9tLLBmM4eneO6WwsI= github.com/sanposhiho/wastedassign/v2 v2.1.0 h1:crurBF7fJKIORrV85u9UUpePDYGWnwvv3+A96WvwXT0= github.com/sanposhiho/wastedassign/v2 v2.1.0/go.mod h1:+oSmSC+9bQ+VUAxA66nBb0Z7N8CK7mscKTDYC6aIek4= -github.com/santhosh-tekuri/jsonschema/v6 v6.0.1 h1:PKK9DyHxif4LZo+uQSgXNqs0jj5+xZwwfKHgph2lxBw= -github.com/santhosh-tekuri/jsonschema/v6 v6.0.1/go.mod h1:JXeL+ps8p7/KNMjDQk3TCwPpBy0wYklyWTfbkIzdIFU= +github.com/santhosh-tekuri/jsonschema/v6 v6.0.2 h1:KRzFb2m7YtdldCEkzs6KqmJw4nqEVZGK7IN2kJkjTuQ= +github.com/santhosh-tekuri/jsonschema/v6 v6.0.2/go.mod h1:JXeL+ps8p7/KNMjDQk3TCwPpBy0wYklyWTfbkIzdIFU= github.com/sashamelentyev/interfacebloat v1.1.0 h1:xdRdJp0irL086OyW1H/RTZTr1h/tMEOsumirXcOJqAw= github.com/sashamelentyev/interfacebloat v1.1.0/go.mod h1:+Y9yU5YdTkrNvoX0xHc84dxiN1iBi9+G8zZIhPVoNjQ= -github.com/sashamelentyev/usestdlibvars v1.28.0 h1:jZnudE2zKCtYlGzLVreNp5pmCdOxXUzwsMDBkR21cyQ= -github.com/sashamelentyev/usestdlibvars v1.28.0/go.mod h1:9nl0jgOfHKWNFS43Ojw0i7aRoS4j6EBye3YBhmAIRF8= +github.com/sashamelentyev/usestdlibvars v1.29.0 h1:8J0MoRrw4/NAXtjQqTHrbW9NN+3iMf7Knkq057v4XOQ= +github.com/sashamelentyev/usestdlibvars v1.29.0/go.mod h1:8PpnjHMk5VdeWlVb4wCdrB8PNbLqZ3wBZTZWkrpZZL8= github.com/schollz/progressbar/v3 v3.18.0 h1:uXdoHABRFmNIjUfte/Ex7WtuyVslrw2wVPQmCN62HpA= github.com/schollz/progressbar/v3 v3.18.0/go.mod h1:IsO3lpbaGuzh8zIMzgY3+J8l4C8GjO0Y9S69eFvNsec= -github.com/securego/gosec/v2 v2.22.2 h1:IXbuI7cJninj0nRpZSLCUlotsj8jGusohfONMrHoF6g= -github.com/securego/gosec/v2 v2.22.2/go.mod h1:UEBGA+dSKb+VqM6TdehR7lnQtIIMorYJ4/9CW1KVQBE= +github.com/securego/gosec/v2 v2.22.11-0.20251204091113-daccba6b93d7 h1:rZg6IGn0ySYZwCX8LHwZoYm03JhG/cVAJJ3O+u3Vclo= +github.com/securego/gosec/v2 v2.22.11-0.20251204091113-daccba6b93d7/go.mod h1:9sr22NZO5Kfh7unW/xZxkGYTmj2484/fCiE54gw7UTY= github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 h1:n661drycOFuPLCN3Uc8sB6B/s6Z4t2xvBgU1htSHuq8= github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4= github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= @@ -590,12 +626,10 @@ github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/sivchari/containedctx v1.0.3 h1:x+etemjbsh2fB5ewm5FeLNi5bUjK0V8n0RB+Wwfd0XE= github.com/sivchari/containedctx v1.0.3/go.mod h1:c1RDvCbnJLtH4lLcYD/GqwiBSSf4F5Qk0xld2rBqzJ4= -github.com/sivchari/tenv v1.12.1 h1:+E0QzjktdnExv/wwsnnyk4oqZBUfuh89YMQT1cyuvSY= -github.com/sivchari/tenv v1.12.1/go.mod h1:1LjSOUCc25snIr5n3DtGGrENhX3LuWefcplwVGC24mw= github.com/skeema/knownhosts v1.3.1 h1:X2osQ+RAjK76shCbvhHHHVl3ZlgDm8apHEHFqRjnBY8= github.com/skeema/knownhosts v1.3.1/go.mod h1:r7KTdC8l4uxWRyK2TpQZ/1o5HaSzh06ePQNxPwTcfiY= -github.com/sonatard/noctx v0.1.0 h1:JjqOc2WN16ISWAjAk8M5ej0RfExEXtkEyExl2hLW+OM= -github.com/sonatard/noctx v0.1.0/go.mod h1:0RvBxqY8D4j9cTTTWE8ylt2vqj2EPI8fHmrxHdsaZ2c= +github.com/sonatard/noctx v0.4.0 h1:7MC/5Gg4SQ4lhLYR6mvOP6mQVSxCrdyiExo7atBs27o= +github.com/sonatard/noctx v0.4.0/go.mod h1:64XdbzFb18XL4LporKXp8poqZtPKbCrqQ402CV+kJas= github.com/sourcegraph/go-diff v0.7.0 h1:9uLlrd5T46OXs5qpp8L/MTltk0zikUGi0sNNyCpA8G0= github.com/sourcegraph/go-diff v0.7.0/go.mod h1:iBszgVvyxdc8SFZ7gm69go2KDdt3ag071iBaWPF6cjs= github.com/spf13/afero v1.15.0 h1:b/YBCLWAJdFWJTN9cLhiXXcD7mzKn9Dm86dNnfyQw1I= @@ -613,12 +647,10 @@ github.com/spf13/viper v1.21.0 h1:x5S+0EU27Lbphp4UKm1C+1oQO+rKx36vfCoaVebLFSU= github.com/spf13/viper v1.21.0/go.mod h1:P0lhsswPGWD/1lZJ9ny3fYnVqxiegrlNrEmgLjbTCAY= github.com/ssgreg/nlreturn/v2 v2.2.1 h1:X4XDI7jstt3ySqGU86YGAURbxw3oTDPK9sPEi6YEwQ0= github.com/ssgreg/nlreturn/v2 v2.2.1/go.mod h1:E/iiPB78hV7Szg2YfRgyIrk1AD6JVMTRkkxBiELzh2I= -github.com/stbenjam/no-sprintf-host-port v0.2.0 h1:i8pxvGrt1+4G0czLr/WnmyH7zbZ8Bg8etvARQ1rpyl4= -github.com/stbenjam/no-sprintf-host-port v0.2.0/go.mod h1:eL0bQ9PasS0hsyTyfTjjG+E80QIyPnBVQbYZyv20Jfk= +github.com/stbenjam/no-sprintf-host-port v0.3.1 h1:AyX7+dxI4IdLBPtDbsGAyqiTSLpCP9hWRrXQDU4Cm/g= +github.com/stbenjam/no-sprintf-host-port v0.3.1/go.mod h1:ODbZesTCHMVKthBHskvUUexdcNHAQRXk9NpSsL8p/HQ= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= @@ -626,27 +658,22 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= -github.com/tdakkota/asciicheck v0.4.1 h1:bm0tbcmi0jezRA2b5kg4ozmMuGAFotKI3RZfrhfovg8= -github.com/tdakkota/asciicheck v0.4.1/go.mod h1:0k7M3rCfRXb0Z6bwgvkEIMleKH3kXNz9UqJ9Xuqopr8= github.com/tenntenn/modver v1.0.1 h1:2klLppGhDgzJrScMpkj9Ujy3rXPUspSjAcev9tSEBgA= github.com/tenntenn/modver v1.0.1/go.mod h1:bePIyQPb7UeioSRkw3Q0XeMhYZSMx9B8ePqg6SAMGH0= github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3 h1:f+jULpRQGxTSkNYKJ51yaw6ChIqO+Je8UqsTKN/cDag= github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3/go.mod h1:ON8b8w4BN/kE1EOhwT0o+d62W65a6aPw1nouo9LMgyY= -github.com/tetafro/godot v1.5.0 h1:aNwfVI4I3+gdxjMgYPus9eHmoBeJIbnajOyqZYStzuw= -github.com/tetafro/godot v1.5.0/go.mod h1:2oVxTBSftRTh4+MVfUaUXR6bn2GDXCaMcOG4Dk3rfio= -github.com/timakin/bodyclose v0.0.0-20241017074812-ed6a65f985e3 h1:y4mJRFlM6fUyPhoXuFg/Yu02fg/nIPFMOY8tOqppoFg= -github.com/timakin/bodyclose v0.0.0-20241017074812-ed6a65f985e3/go.mod h1:mkjARE7Yr8qU23YcGMSALbIxTQ9r9QBVahQOBRfU460= -github.com/timonwong/loggercheck v0.10.1 h1:uVZYClxQFpw55eh+PIoqM7uAOHMrhVcDoWDery9R8Lg= -github.com/timonwong/loggercheck v0.10.1/go.mod h1:HEAWU8djynujaAVX7QI65Myb8qgfcZ1uKbdpg3ZzKl8= -github.com/tomarrell/wrapcheck/v2 v2.10.0 h1:SzRCryzy4IrAH7bVGG4cK40tNUhmVmMDuJujy4XwYDg= -github.com/tomarrell/wrapcheck/v2 v2.10.0/go.mod h1:g9vNIyhb5/9TQgumxQyOEqDHsmGYcGsVMOx/xGkqdMo= +github.com/tetafro/godot v1.5.4 h1:u1ww+gqpRLiIA16yF2PV1CV1n/X3zhyezbNXC3E14Sg= +github.com/tetafro/godot v1.5.4/go.mod h1:eOkMrVQurDui411nBY2FA05EYH01r14LuWY/NrVDVcU= +github.com/timakin/bodyclose v0.0.0-20241222091800-1db5c5ca4d67 h1:9LPGD+jzxMlnk5r6+hJnar67cgpDIz/iyD+rfl5r2Vk= +github.com/timakin/bodyclose v0.0.0-20241222091800-1db5c5ca4d67/go.mod h1:mkjARE7Yr8qU23YcGMSALbIxTQ9r9QBVahQOBRfU460= +github.com/timonwong/loggercheck v0.11.0 h1:jdaMpYBl+Uq9mWPXv1r8jc5fC3gyXx4/WGwTnnNKn4M= +github.com/timonwong/loggercheck v0.11.0/go.mod h1:HEAWU8djynujaAVX7QI65Myb8qgfcZ1uKbdpg3ZzKl8= +github.com/tomarrell/wrapcheck/v2 v2.12.0 h1:H/qQ1aNWz/eeIhxKAFvkfIA+N7YDvq6TWVFL27Of9is= +github.com/tomarrell/wrapcheck/v2 v2.12.0/go.mod h1:AQhQuZd0p7b6rfW+vUwHm5OMCGgp63moQ9Qr/0BpIWo= github.com/tommy-muehle/go-mnd/v2 v2.5.1 h1:NowYhSdyE/1zwK9QCLeRb6USWdoif80Ie+v+yU8u1Zw= github.com/tommy-muehle/go-mnd/v2 v2.5.1/go.mod h1:WsUAkMJMYww6l/ufffCD3m+P7LEvr8TnZn9lwVDlgzw= github.com/ultraware/funlen v0.2.0 h1:gCHmCn+d2/1SemTdYMiKLAHFYxTYz7z9VIDRaTGyLkI= @@ -655,12 +682,14 @@ github.com/ultraware/whitespace v0.2.0 h1:TYowo2m9Nfj1baEQBjuHzvMRbp19i+RCcRYrSW github.com/ultraware/whitespace v0.2.0/go.mod h1:XcP1RLD81eV4BW8UhQlpaR+SDc2givTvyI8a586WjW8= github.com/uudashr/gocognit v1.2.0 h1:3BU9aMr1xbhPlvJLSydKwdLN3tEUUrzPSSM8S4hDYRA= github.com/uudashr/gocognit v1.2.0/go.mod h1:k/DdKPI6XBZO1q7HgoV2juESI2/Ofj9AcHPZhBBdrTU= -github.com/uudashr/iface v1.3.1 h1:bA51vmVx1UIhiIsQFSNq6GZ6VPTk3WNMZgRiCe9R29U= -github.com/uudashr/iface v1.3.1/go.mod h1:4QvspiRd3JLPAEXBQ9AiZpLbJlrWWgRChOKDJEuQTdg= +github.com/uudashr/iface v1.4.1 h1:J16Xl1wyNX9ofhpHmQ9h9gk5rnv2A6lX/2+APLTo0zU= +github.com/uudashr/iface v1.4.1/go.mod h1:pbeBPlbuU2qkNDn0mmfrxP2X+wjPMIQAy+r1MBXSXtg= github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw= -github.com/xen0n/gosmopolitan v1.2.2 h1:/p2KTnMzwRexIW8GlKawsTWOxn7UHA+jCMF/V8HHtvU= -github.com/xen0n/gosmopolitan v1.2.2/go.mod h1:7XX7Mj61uLYrj0qmeN0zi7XDon9JRAEhYQqAPLVNTeg= +github.com/xen0n/gosmopolitan v1.3.0 h1:zAZI1zefvo7gcpbCOrPSHJZJYA9ZgLfJqtKzZ5pHqQM= +github.com/xen0n/gosmopolitan v1.3.0/go.mod h1:rckfr5T6o4lBtM1ga7mLGKZmLxswUoH1zxHgNXOsEt4= +github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no= +github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM= github.com/yagipy/maintidx v1.0.0 h1:h5NvIsCz+nRDapQ0exNv4aJ0yXSI0420omVANTv3GJM= github.com/yagipy/maintidx v1.0.0/go.mod h1:0qNf/I/CCZXSMhsRsrEPDZ+DkekpKLXAJfsTACwgXLk= github.com/yeya24/promlinter v0.3.0 h1:JVDbMp08lVCP7Y6NP3qHroGAO6z2yGKQtS5JsjqtoFs= @@ -684,27 +713,29 @@ gitlab.com/bosi/decorder v0.4.2 h1:qbQaV3zgwnBZ4zPMhGLW4KZe7A7NwxEhJx39R3shffo= gitlab.com/bosi/decorder v0.4.2/go.mod h1:muuhHoaJkA9QLcYHq4Mj8FJUwDZ+EirSHRiaTcTf6T8= go-simpler.org/assert v0.9.0 h1:PfpmcSvL7yAnWyChSjOz6Sp6m9j5lyK8Ok9pEL31YkQ= go-simpler.org/assert v0.9.0/go.mod h1:74Eqh5eI6vCK6Y5l3PI8ZYFXG4Sa+tkr70OIPJAUr28= -go-simpler.org/musttag v0.13.0 h1:Q/YAW0AHvaoaIbsPj3bvEI5/QFP7w696IMUpnKXQfCE= -go-simpler.org/musttag v0.13.0/go.mod h1:FTzIGeK6OkKlUDVpj0iQUXZLUO1Js9+mvykDQy9C5yM= -go-simpler.org/sloglint v0.9.0 h1:/40NQtjRx9txvsB/RN022KsUJU+zaaSb/9q9BSefSrE= -go-simpler.org/sloglint v0.9.0/go.mod h1:G/OrAF6uxj48sHahCzrbarVMptL2kjWTaUeC8+fOGww= +go-simpler.org/musttag v0.14.0 h1:XGySZATqQYSEV3/YTy+iX+aofbZZllJaqwFWs+RTtSo= +go-simpler.org/musttag v0.14.0/go.mod h1:uP8EymctQjJ4Z1kUnjX0u2l60WfUdQxCwSNKzE1JEOE= +go-simpler.org/sloglint v0.11.1 h1:xRbPepLT/MHPTCA6TS/wNfZrDzkGvCCqUv4Bdwc3H7s= +go-simpler.org/sloglint v0.11.1/go.mod h1:2PowwiCOK8mjiF+0KGifVOT8ZsCNiFzvfyJeJOIt8MQ= go.abhg.dev/goldmark/frontmatter v0.2.0 h1:P8kPG0YkL12+aYk2yU3xHv4tcXzeVnN+gU0tJ5JnxRw= go.abhg.dev/goldmark/frontmatter v0.2.0/go.mod h1:XqrEkZuM57djk7zrlRUB02x8I5J0px76YjkOzhB4YlU= +go.augendre.info/arangolint v0.3.1 h1:n2E6p8f+zfXSFLa2e2WqFPp4bfvcuRdd50y6cT65pSo= +go.augendre.info/arangolint v0.3.1/go.mod h1:6ZKzEzIZuBQwoSvlKT+qpUfIbBfFCE5gbAoTg0/117g= +go.augendre.info/fatcontext v0.9.0 h1:Gt5jGD4Zcj8CDMVzjOJITlSb9cEch54hjRRlN3qDojE= +go.augendre.info/fatcontext v0.9.0/go.mod h1:L94brOAT1OOUNue6ph/2HnwxoNlds9aXDF2FcUntbNw= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= -go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/automaxprocs v1.6.0 h1:O3y2/QNTOdbF+e/dpXNNW7Rx2hZ4sTIPyybbxyNqTUs= go.uber.org/automaxprocs v1.6.0/go.mod h1:ifeIMSnPZuznNm6jmdzmU3/bfk01Fe2fotchwEFJ8r8= -go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI= -go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= -go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4= -go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= -go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= -go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= +go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= +go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= +go.uber.org/multierr v1.10.0 h1:S0h4aNzvfcFsC3dRF1jLoaov7oRaKqRGC/pUEJ2yvPQ= +go.uber.org/multierr v1.10.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= +go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= +go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -733,8 +764,8 @@ golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 h1:e66Fs6Z+fZTbFBAxKfP3PALWB golang.org/x/exp v0.0.0-20240909161429-701f63a606c0/go.mod h1:2TbTHSBQa924w8M6Xs1QcRcFwyucIwBGpK1p2f1YFFY= golang.org/x/exp/typeparams v0.0.0-20220428152302-39d4317da171/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= golang.org/x/exp/typeparams v0.0.0-20230203172020-98cc5a0785f9/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= -golang.org/x/exp/typeparams v0.0.0-20250210185358-939b2ce775ac h1:TSSpLIG4v+p0rPv1pNOQtl1I8knsO4S9trOxNMOLVP4= -golang.org/x/exp/typeparams v0.0.0-20250210185358-939b2ce775ac/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= +golang.org/x/exp/typeparams v0.0.0-20251023183803-a4bb9ffd2546 h1:HDjDiATsGqvuqvkDvgJjD1IgPrVekcSXVVE21JwvzGE= +golang.org/x/exp/typeparams v0.0.0-20251023183803-a4bb9ffd2546/go.mod h1:4Mzdyp/6jzw9auFDJ3OMF5qksa7UvPnzKqTVGcb04ms= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -759,9 +790,7 @@ golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.13.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/mod v0.30.0 h1:fDEXFVZ/fmCKProc/yAXXUijritrDzahmwwefnjoPFk= @@ -802,7 +831,6 @@ golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= golang.org/x/net v0.16.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= @@ -888,7 +916,6 @@ golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9sn golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= @@ -903,7 +930,6 @@ golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.32.0 h1:ZD01bjUt1FQ9WJ0ClOL5vxgxOI/sVCNgX1YtKwcY0mU= @@ -943,7 +969,6 @@ golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapK golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200324003944-a576cf524670/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= golang.org/x/tools v0.0.0-20200329025819-fd4102a86c65/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -953,18 +978,13 @@ golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20200724022722-7017fd6b1305/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200820010801-b793a1359eac/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20201023174141-c8cfbd0f21e6/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.1-0.20210205202024-ef80cdb6ec6d/go.mod h1:9bzcO0MWcOuT0tm1iBGzDVPshzfwoVvREIui8C+MHqU= golang.org/x/tools v0.1.1-0.20210302220138-2ac05c832e1a/go.mod h1:9bzcO0MWcOuT0tm1iBGzDVPshzfwoVvREIui8C+MHqU= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.3.0/go.mod h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/tools v0.14.0/go.mod h1:uYBEerGOWcJyEORxN+Ek8+TT266gXkNlHdJBwexUsBg= golang.org/x/tools v0.39.0 h1:ik4ho21kwuQln40uelmciQPp9SipgNDdrafrYA4TmQQ= @@ -1052,8 +1072,8 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= 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.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM= -google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc= +google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -1082,10 +1102,10 @@ honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9 honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.6.1 h1:R094WgE8K4JirYjBaOpz/AvTyUu/3wbmAoskKN/pxTI= honnef.co/go/tools v0.6.1/go.mod h1:3puzxxljPCe8RGJX7BIy1plGbxEOZni5mR2aXe3/uk4= -mvdan.cc/gofumpt v0.7.0 h1:bg91ttqXmi9y2xawvkuMXyvAA/1ZGJqYAEGjXuP0JXU= -mvdan.cc/gofumpt v0.7.0/go.mod h1:txVFJy/Sc/mvaycET54pV8SW8gWxTlUuGHVEcncmNUo= -mvdan.cc/unparam v0.0.0-20240528143540-8a5130ca722f h1:lMpcwN6GxNbWtbpI1+xzFLSW8XzX0u72NttUGVFjO3U= -mvdan.cc/unparam v0.0.0-20240528143540-8a5130ca722f/go.mod h1:RSLa7mKKCNeTTMHBw5Hsy2rfJmd6O2ivt9Dw9ZqCQpQ= +mvdan.cc/gofumpt v0.9.2 h1:zsEMWL8SVKGHNztrx6uZrXdp7AX8r421Vvp23sz7ik4= +mvdan.cc/gofumpt v0.9.2/go.mod h1:iB7Hn+ai8lPvofHd9ZFGVg2GOr8sBUw1QUWjNbmIL/s= +mvdan.cc/unparam v0.0.0-20251027182757-5beb8c8f8f15 h1:ssMzja7PDPJV8FStj7hq9IKiuiKhgz9ErWw+m68e7DI= +mvdan.cc/unparam v0.0.0-20251027182757-5beb8c8f8f15/go.mod h1:4M5MMXl2kW6fivUT6yRGpLLPNfuGtU2Z0cPvFquGDYU= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= diff --git a/tools/main.go b/tools/main.go index 53e7a7777c..1d27007190 100644 --- a/tools/main.go +++ b/tools/main.go @@ -9,7 +9,7 @@ package main import ( _ "github.com/YakDriver/copyplop" _ "github.com/client9/misspell/cmd/misspell" - _ "github.com/golangci/golangci-lint/cmd/golangci-lint" + _ "github.com/golangci/golangci-lint/v2/cmd/golangci-lint" _ "github.com/hashicorp/terraform-plugin-docs/cmd/tfplugindocs" _ "github.com/pavius/impi/cmd/impi" ) From 2fd5c8875d7ff47bba327912f5a220f850ca2905 Mon Sep 17 00:00:00 2001 From: Dirk Avery Date: Thu, 18 Dec 2025 16:47:34 -0500 Subject: [PATCH 05/13] Update golangci-lint path --- GNUmakefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GNUmakefile b/GNUmakefile index ef7ad065e5..89d08893a3 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -176,7 +176,7 @@ importlint: ## Run importlint @impi --local . --scheme stdThirdPartyLocal --ignore-generated=true ./... tools: prereq-go ## Install tools - cd tools && $(GO_VER) install github.com/golangci/golangci-lint/cmd/golangci-lint + cd tools && $(GO_VER) install github.com/golangci/golangci-lint/v2/cmd/golangci-lint cd tools && $(GO_VER) install github.com/pavius/impi/cmd/impi cd tools && $(GO_VER) install github.com/hashicorp/terraform-plugin-docs/cmd/tfplugindocs cd tools && $(GO_VER) install golang.org/x/tools/cmd/goimports@latest From 4e25021cf7b47ee0be38ac31a2a884b8124852b6 Mon Sep 17 00:00:00 2001 From: Dirk Avery Date: Thu, 18 Dec 2025 16:49:51 -0500 Subject: [PATCH 06/13] All the places --- .github/workflows/linters.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/linters.yml b/.github/workflows/linters.yml index 502b9e3ff8..f0789520c1 100644 --- a/.github/workflows/linters.yml +++ b/.github/workflows/linters.yml @@ -61,7 +61,7 @@ jobs: with: path: ~/go/pkg/mod key: ${{ runner.os }}-go-pkg-mod-${{ hashFiles('go.sum') }} - - run: cd tools && go install github.com/golangci/golangci-lint/cmd/golangci-lint + - run: cd tools && go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint # Needed to access private repositories. Unfortunately, this cannot be restricted to specific repositories - run: git config --global url."https://${{ secrets.PRIVATE_GOMOD_TOKEN }}:x-oauth-basic@github.com/hashicorp".insteadOf "https://github.com/hashicorp" - run: golangci-lint run ./internal/... From 9aedc814e574b5049cedcd707e6f326ff45f3685 Mon Sep 17 00:00:00 2001 From: Dirk Avery Date: Thu, 18 Dec 2025 17:46:22 -0500 Subject: [PATCH 07/13] fix errchecks --- internal/envvar/envvar_test.go | 4 +++- .../provider/generators/common/generator.go | 6 +++++- internal/provider/generators/schema/main.go | 10 +++++++--- .../generators/shared/codegen/emitter.go | 8 ++++---- internal/update/changelog.go | 6 +++++- internal/update/hcl_parser.go | 6 +++++- internal/update/hcl_parser_test.go | 8 ++++++-- internal/update/makes.go | 18 ++++++++++++++---- internal/update/makes_test.go | 8 ++++++-- 9 files changed, 55 insertions(+), 19 deletions(-) diff --git a/internal/envvar/envvar_test.go b/internal/envvar/envvar_test.go index d400953a57..74094165a8 100644 --- a/internal/envvar/envvar_test.go +++ b/internal/envvar/envvar_test.go @@ -14,7 +14,9 @@ func TestGetWithDefault(t *testing.T) { t.Run("missing", func(t *testing.T) { //nolint:paralleltest want := "default" - os.Unsetenv(envVar) + if err := os.Unsetenv(envVar); err != nil { + t.Fatalf("Failed to unset env var: %v", err) + } got := GetWithDefault(envVar, want) diff --git a/internal/provider/generators/common/generator.go b/internal/provider/generators/common/generator.go index 28d3a47c39..10639ad580 100644 --- a/internal/provider/generators/common/generator.go +++ b/internal/provider/generators/common/generator.go @@ -106,7 +106,11 @@ func (d *fileDestination) Write() error { return fmt.Errorf("opening file (%s): %w", d.filename, err) } - defer f.Close() + defer func() { + if cerr := f.Close(); cerr != nil && err == nil { + err = fmt.Errorf("closing file (%s): %w", d.filename, cerr) + } + }() _, err = f.WriteString(d.buffer.String()) diff --git a/internal/provider/generators/schema/main.go b/internal/provider/generators/schema/main.go index e3c31cd6ec..e32b55a6e2 100644 --- a/internal/provider/generators/schema/main.go +++ b/internal/provider/generators/schema/main.go @@ -117,7 +117,9 @@ func run(destinationPackage, generatedCodeRootDirectoryName, resourcesFilename, return 1 } - defer os.RemoveAll(tempDirectory) + defer func() { + _ = os.RemoveAll(tempDirectory) + }() downloader := &Downloader{ client: client, @@ -175,7 +177,9 @@ func copyFile(dst, src string) error { if err != nil { return err } - defer rf.Close() + defer func() { + _ = rf.Close() + }() rstat, err := rf.Stat() if err != nil { return err @@ -189,7 +193,7 @@ func copyFile(dst, src string) error { return err } if _, err := io.Copy(wf, rf); err != nil { - wf.Close() + _ = wf.Close() return err } return wf.Close() diff --git a/internal/provider/generators/shared/codegen/emitter.go b/internal/provider/generators/shared/codegen/emitter.go index f63e18b609..06bd636417 100644 --- a/internal/provider/generators/shared/codegen/emitter.go +++ b/internal/provider/generators/shared/codegen/emitter.go @@ -1061,8 +1061,8 @@ func (e Emitter) emitSchema(tfType string, attributeNameMap map[string]string, p } // printf emits a formatted string to the underlying writer. -func (e Emitter) printf(format string, a ...interface{}) (int, error) { - return fprintf(e.Writer, format, a...) +func (e Emitter) printf(format string, a ...interface{}) { + fprintf(e.Writer, format, a...) } // warnf emits a formatted warning message to the UI. @@ -1071,8 +1071,8 @@ func (e Emitter) warnf(format string, a ...interface{}) { } // fprintf writes a formatted string to a Writer. -func fprintf(w io.Writer, format string, a ...interface{}) (int, error) { - return io.WriteString(w, fmt.Sprintf(format, a...)) +func fprintf(w io.Writer, format string, a ...interface{}) { + _, _ = io.WriteString(w, fmt.Sprintf(format, a...)) } type aggregate int diff --git a/internal/update/changelog.go b/internal/update/changelog.go index 10c3c8eeb4..d82674ae8d 100644 --- a/internal/update/changelog.go +++ b/internal/update/changelog.go @@ -149,7 +149,11 @@ func makeChangelog(changes *[]string, filePaths *UpdateFilePaths) (*[]string, er if err != nil { return &newChanges, fmt.Errorf("failed to open CHANGELOG.md for writing: %w", err) } - defer file.Close() + defer func() { + if cerr := file.Close(); cerr != nil && err == nil { + err = fmt.Errorf("failed to close CHANGELOG.md: %w", cerr) + } + }() _, err = file.WriteString(newContent) if err != nil { diff --git a/internal/update/hcl_parser.go b/internal/update/hcl_parser.go index be14e70127..36d021c398 100644 --- a/internal/update/hcl_parser.go +++ b/internal/update/hcl_parser.go @@ -165,7 +165,11 @@ func writeSchemasToHCLFile(schema interface{}, filePath string) error { if err != nil { return fmt.Errorf("failed to create file %s: %w", filePath, err) } - defer file.Close() + defer func() { + if cerr := file.Close(); cerr != nil && err == nil { + err = fmt.Errorf("failed to close file %s: %w", filePath, cerr) + } + }() // Write the HCL content to the file if _, err := file.Write(hclFile.Bytes()); err != nil { diff --git a/internal/update/hcl_parser_test.go b/internal/update/hcl_parser_test.go index 8d8cd82243..017d2ae15b 100644 --- a/internal/update/hcl_parser_test.go +++ b/internal/update/hcl_parser_test.go @@ -478,7 +478,9 @@ func TestTrimAllSchemas_RemovesDefaultEntries(t *testing.T) { if err != nil { t.Fatalf("failed to create temp file: %v", err) } - defer os.Remove(tempFile.Name()) + defer func() { + _ = os.Remove(tempFile.Name()) + }() input := `resource "foo" { @@ -496,7 +498,9 @@ func TestTrimAllSchemas_RemovesDefaultEntries(t *testing.T) { if _, err := tempFile.WriteString(input); err != nil { t.Fatalf("failed to write to temp file: %v", err) } - tempFile.Close() + if err := tempFile.Close(); err != nil { + t.Fatalf("failed to close temp file: %v", err) + } filePaths := &UpdateFilePaths{AllSchemasHCL: tempFile.Name()} err = trimAllSchemas(filePaths) diff --git a/internal/update/makes.go b/internal/update/makes.go index d975d403d5..640752a0cc 100644 --- a/internal/update/makes.go +++ b/internal/update/makes.go @@ -49,7 +49,9 @@ func makeBuild(ctx context.Context, config *GitHubConfig, currentSchemas *allsch if err != nil { return fmt.Errorf("failed to open error log file: %w", err) } - defer file.Close() + defer func() { + _ = file.Close() + }() hasErrors := true @@ -67,7 +69,9 @@ func makeBuild(ctx context.Context, config *GitHubConfig, currentSchemas *allsch if err != nil { return fmt.Errorf("failed to clear makes_errors.txt: %w", err) } - file.Close() + if err := file.Close(); err != nil { + return fmt.Errorf("failed to close error log file: %w", err) + } // Execute make command with error filtering command := fmt.Sprintf("make %s 2>&1 | grep \"error\" > %s", buildType, filePaths.RunMakesErrors) @@ -445,7 +449,11 @@ func addSchemaToCheckout(resource string, filePaths *UpdateFilePaths) error { log.Println("Error opening file:", err) return fmt.Errorf("failed to open checkout file for writing: %w", err) } - defer file.Close() + defer func() { + if cerr := file.Close(); cerr != nil && err == nil { + err = fmt.Errorf("failed to close checkout file: %w", cerr) + } + }() writeContent := fmt.Sprintf("\n%s/%s.json", filePaths.CloudFormationSchemasDir, resource) log.Println("Writing to file:", writeContent) @@ -470,7 +478,9 @@ func checkoutSchemas(suppressionData string) error { if createErr != nil { return fmt.Errorf("failed to create suppression data file: %w", createErr) } - f.Close() + if err := f.Close(); err != nil { + return fmt.Errorf("failed to close suppression data file: %w", err) + } return nil } else { return fmt.Errorf("failed to stat suppression data file: %w", err) diff --git a/internal/update/makes_test.go b/internal/update/makes_test.go index aa45429552..b89cb578ad 100644 --- a/internal/update/makes_test.go +++ b/internal/update/makes_test.go @@ -778,13 +778,17 @@ func TestParseCheckoutList(t *testing.T) { if err != nil { t.Fatalf("Failed to create temp file: %v", err) } - defer os.Remove(tmpFile.Name()) + defer func() { + _ = os.Remove(tmpFile.Name()) + }() content := "internal/service/cloudformation/schemas/AWS_CustomerProfiles_Domain.json\n" if _, err := tmpFile.WriteString(content); err != nil { t.Fatalf("Failed to write to temp file: %v", err) } - tmpFile.Close() + if err := tmpFile.Close(); err != nil { + t.Fatalf("Failed to close temp file: %v", err) + } filePaths := &UpdateFilePaths{SuppressionCheckout: tmpFile.Name()} result := parseCheckoutList(filePaths) From fe3e6cd81db5ce44b33b5fcd6a98adafa9101783 Mon Sep 17 00:00:00 2001 From: Dirk Avery Date: Thu, 18 Dec 2025 17:48:15 -0500 Subject: [PATCH 08/13] Modernize --- internal/defaults/object.go | 6 +- internal/defaults/object_test.go | 6 +- internal/generic/plural_data_source.go | 2 +- internal/generic/resource.go | 14 +-- internal/generic/singular_data_source.go | 2 +- internal/generic/translate.go | 30 +++--- internal/generic/translate_test.go | 100 +++++++++--------- .../provider/generators/common/generator.go | 8 +- internal/provider/generators/schema/main.go | 2 +- .../generators/shared/codegen/emitter.go | 16 +-- internal/service/cloudcontrol/delete.go | 2 +- internal/service/cloudcontrol/find.go | 4 +- internal/service/cloudcontrol/list.go | 2 +- internal/slices/slices.go | 9 +- internal/strings/prose_join.go | 2 +- internal/update/changelog.go | 9 +- internal/update/github.go | 4 +- internal/update/hcl_parser.go | 2 +- internal/update/main.go | 6 +- internal/update/makes.go | 8 +- 20 files changed, 116 insertions(+), 118 deletions(-) diff --git a/internal/defaults/object.go b/internal/defaults/object.go index 92e33bd6a0..eccf83b81e 100644 --- a/internal/defaults/object.go +++ b/internal/defaults/object.go @@ -15,7 +15,7 @@ import ( ) // StaticPartialObject return an AttributePlanModifier that sets the specified value if the planned value is Null. -func StaticPartialObject(defaultVal map[string]interface{}) planmodifier.Object { +func StaticPartialObject(defaultVal map[string]any) planmodifier.Object { return objectDefaultValueAttributePlanModifier{ defaultVal: defaultVal, } @@ -63,7 +63,7 @@ func (m objectDefaultValueAttributePlanModifier) PlanModifyObject(ctx context.Co response.PlanValue = request.PlanValue } -func copyAttributeValues(ctx context.Context, dst map[string]attr.Value, src map[string]interface{}) diag.Diagnostics { +func copyAttributeValues(ctx context.Context, dst map[string]attr.Value, src map[string]any) diag.Diagnostics { var diags diag.Diagnostics for k, v := range src { @@ -73,7 +73,7 @@ func copyAttributeValues(ctx context.Context, dst map[string]attr.Value, src map dst[k] = types.BoolValue(v) case string: dst[k] = types.StringValue(v) - case map[string]interface{}: + case map[string]any: if old, ok := old.(types.Object); ok { attributeTypes := old.AttributeTypes(ctx) attributes := map[string]attr.Value{} diff --git a/internal/defaults/object_test.go b/internal/defaults/object_test.go index 1450fa5070..2d22575a01 100644 --- a/internal/defaults/object_test.go +++ b/internal/defaults/object_test.go @@ -21,7 +21,7 @@ func TestStaticPartialObject_simple(t *testing.T) { "name": types.StringType, "wicked": types.BoolType, } - defaultVal := map[string]interface{}{ + defaultVal := map[string]any{ "name": "defaultName", } @@ -82,8 +82,8 @@ func TestStaticPartialObject_complex(t *testing.T) { "config": types.ObjectType{AttrTypes: innerAttributeTypes}, "id": types.StringType, } - defaultVal := map[string]interface{}{ - "config": map[string]interface{}{ + defaultVal := map[string]any{ + "config": map[string]any{ "name": "defaultName", }, } diff --git a/internal/generic/plural_data_source.go b/internal/generic/plural_data_source.go index ee3b631461..059bd50d0a 100644 --- a/internal/generic/plural_data_source.go +++ b/internal/generic/plural_data_source.go @@ -84,7 +84,7 @@ func (pd *genericPluralDataSource) Read(ctx context.Context, _ datasource.ReadRe Raw: val, } - tflog.Debug(ctx, "Response.State.Raw", map[string]interface{}{ + tflog.Debug(ctx, "Response.State.Raw", map[string]any{ "value": hclog.Fmt("%v", response.State.Raw), }) diff --git a/internal/generic/resource.go b/internal/generic/resource.go index 18fc8e5a72..814645eaec 100644 --- a/internal/generic/resource.go +++ b/internal/generic/resource.go @@ -396,7 +396,7 @@ func (r *genericResource) Create(ctx context.Context, request resource.CreateReq conn := r.provider.CloudControlAPIClient(ctx) - tflog.Debug(ctx, "Request.Plan.Raw", map[string]interface{}{ + tflog.Debug(ctx, "Request.Plan.Raw", map[string]any{ "value": hclog.Fmt("%v", request.Plan.Raw), }) @@ -409,7 +409,7 @@ func (r *genericResource) Create(ctx context.Context, request resource.CreateReq return } - tflog.Debug(ctx, "CloudControl DesiredState", map[string]interface{}{ + tflog.Debug(ctx, "CloudControl DesiredState", map[string]any{ "value": desiredState, }) @@ -485,7 +485,7 @@ func (r *genericResource) Create(ctx context.Context, request resource.CreateReq return } - tflog.Debug(ctx, "Response.State.Raw", map[string]interface{}{ + tflog.Debug(ctx, "Response.State.Raw", map[string]any{ "value": hclog.Fmt("%v", response.State.Raw), }) @@ -500,7 +500,7 @@ func (r *genericResource) Read(ctx context.Context, request resource.ReadRequest traceEntry(ctx, "Resource.Read") - tflog.Debug(ctx, "Request.State.Raw", map[string]interface{}{ + tflog.Debug(ctx, "Request.State.Raw", map[string]any{ "value": hclog.Fmt("%v", request.State.Raw), }) @@ -578,7 +578,7 @@ func (r *genericResource) Read(ctx context.Context, request resource.ReadRequest return } - tflog.Debug(ctx, "Response.State.Raw", map[string]interface{}{ + tflog.Debug(ctx, "Response.State.Raw", map[string]any{ "value": hclog.Fmt("%v", response.State.Raw), }) @@ -661,7 +661,7 @@ func (r *genericResource) Update(ctx context.Context, request resource.UpdateReq return } - tflog.Debug(ctx, "Cloud Control API PatchDocument", map[string]interface{}{ + tflog.Debug(ctx, "Cloud Control API PatchDocument", map[string]any{ "value": patchDocument, }) @@ -787,7 +787,7 @@ func (r *genericResource) ImportState(ctx context.Context, request resource.Impo traceEntry(ctx, "Resource.ImportState") if request.ID != "" { - tflog.Debug(ctx, "Request.ID", map[string]interface{}{ + tflog.Debug(ctx, "Request.ID", map[string]any{ "value": hclog.Fmt("%v", request.ID), }) diff --git a/internal/generic/singular_data_source.go b/internal/generic/singular_data_source.go index de3884cd31..4518ae6342 100644 --- a/internal/generic/singular_data_source.go +++ b/internal/generic/singular_data_source.go @@ -120,7 +120,7 @@ func (sd *genericSingularDataSource) Read(ctx context.Context, request datasourc return } - tflog.Debug(ctx, "Response.State.Raw", map[string]interface{}{ + tflog.Debug(ctx, "Response.State.Raw", map[string]any{ "value": hclog.Fmt("%v", response.State.Raw), }) diff --git a/internal/generic/translate.go b/internal/generic/translate.go index 982c6eb382..5b9e4f46e0 100644 --- a/internal/generic/translate.go +++ b/internal/generic/translate.go @@ -21,7 +21,7 @@ type toCloudControl struct { } // AsRaw returns the raw map[string]interface{} representing Cloud Control DesiredState from a Terraform Value. -func (t toCloudControl) AsRaw(ctx context.Context, schema typeAtTerraformPather, val tftypes.Value) (map[string]interface{}, error) { +func (t toCloudControl) AsRaw(ctx context.Context, schema typeAtTerraformPather, val tftypes.Value) (map[string]any, error) { v, err := t.rawFromValue(ctx, schema, nil, val) if err != nil { @@ -29,10 +29,10 @@ func (t toCloudControl) AsRaw(ctx context.Context, schema typeAtTerraformPather, } if v == nil { - return make(map[string]interface{}), nil + return make(map[string]any), nil } - if v, ok := v.(map[string]interface{}); ok { + if v, ok := v.(map[string]any); ok { return v, nil } @@ -58,7 +58,7 @@ func (t toCloudControl) AsString(ctx context.Context, schema typeAtTerraformPath // rawFromValue returns the raw value (suitable for JSON marshaling) of the specified Terraform value. // Terraform attribute names are mapped to Cloud Control property names. -func (t toCloudControl) rawFromValue(ctx context.Context, schema typeAtTerraformPather, path *tftypes.AttributePath, val tftypes.Value) (interface{}, error) { +func (t toCloudControl) rawFromValue(ctx context.Context, schema typeAtTerraformPather, path *tftypes.AttributePath, val tftypes.Value) (any, error) { if val.IsNull() || !val.IsKnown() { return nil, nil } @@ -95,7 +95,7 @@ func (t toCloudControl) rawFromValue(ctx context.Context, schema typeAtTerraform return nil, err } if t := new(jsontypes.NormalizedType); t.Equal(attributeType) { - var v interface{} + var v any diags := jsontypes.NewNormalizedValue(s).Unmarshal(&v) if diags.HasError() { return nil, ccdiag.DiagnosticsError(diags) @@ -112,7 +112,7 @@ func (t toCloudControl) rawFromValue(ctx context.Context, schema typeAtTerraform if err := val.As(&vals); err != nil { return nil, err } - vs := make([]interface{}, 0) + vs := make([]any, 0) for idx, val := range vals { if typ.Is(tftypes.Set{}) { // No need to worry about a specific value here. @@ -140,7 +140,7 @@ func (t toCloudControl) rawFromValue(ctx context.Context, schema typeAtTerraform if err := val.As(&vals); err != nil { return nil, err } - vs := make(map[string]interface{}) + vs := make(map[string]any) for name, val := range vals { if typ.Is(tftypes.Object{}) { path = path.WithAttributeName(name) @@ -180,26 +180,26 @@ type toTerraform struct { } // FromRaw returns the Terraform Value for the specified Cloud Control Properties (raw map[string]interface{}). -func (t toTerraform) FromRaw(ctx context.Context, schema typeAtTerraformPather, resourceModel map[string]interface{}) (tftypes.Value, error) { +func (t toTerraform) FromRaw(ctx context.Context, schema typeAtTerraformPather, resourceModel map[string]any) (tftypes.Value, error) { return t.valueFromRaw(ctx, schema, nil, resourceModel) } // FromString returns the Terraform Value for the specified Cloud Control Properties (string). func (t toTerraform) FromString(ctx context.Context, schema typeAtTerraformPather, resourceModel string) (tftypes.Value, error) { - var v interface{} + var v any if err := json.Unmarshal([]byte(resourceModel), &v); err != nil { return tftypes.Value{}, err } - if v, ok := v.(map[string]interface{}); ok { + if v, ok := v.(map[string]any); ok { return t.FromRaw(ctx, schema, v) } return tftypes.Value{}, fmt.Errorf("unexpected raw type: %T", v) } -func (t toTerraform) valueFromRaw(ctx context.Context, schema typeAtTerraformPather, path *tftypes.AttributePath, v interface{}) (tftypes.Value, error) { +func (t toTerraform) valueFromRaw(ctx context.Context, schema typeAtTerraformPather, path *tftypes.AttributePath, v any) (tftypes.Value, error) { attrType, err := schema.TypeAtTerraformPath(ctx, path) if err != nil { @@ -224,7 +224,7 @@ func (t toTerraform) valueFromRaw(ctx context.Context, schema typeAtTerraformPat // // Complex types. // - case []interface{}: + case []any: if len(v) == 0 { return tftypes.NewValue(typ, nil), nil } @@ -256,7 +256,7 @@ func (t toTerraform) valueFromRaw(ctx context.Context, schema typeAtTerraformPat } return tftypes.NewValue(typ, vals), nil - case map[string]interface{}: + case map[string]any: if typ.Is(tftypes.String) { // Value is JSON string. val, err := json.Marshal(v) @@ -274,7 +274,7 @@ func (t toTerraform) valueFromRaw(ctx context.Context, schema typeAtTerraformPat if isObject { attributeName, ok := t.cfToTfNameMap[key] if !ok { - tflog.Info(ctx, "attribute name mapping not found", map[string]interface{}{ + tflog.Info(ctx, "attribute name mapping not found", map[string]any{ "key": key, }) continue @@ -286,7 +286,7 @@ func (t toTerraform) valueFromRaw(ctx context.Context, schema typeAtTerraformPat val, err := t.valueFromRaw(ctx, schema, path, v) if err != nil { if isObject { - tflog.Info(ctx, "not found in Terraform schema", map[string]interface{}{ + tflog.Info(ctx, "not found in Terraform schema", map[string]any{ "key": key, "path": path, "error": err.Error(), diff --git a/internal/generic/translate_test.go b/internal/generic/translate_test.go index 3b6ebd7da7..cc2b9a5220 100644 --- a/internal/generic/translate_test.go +++ b/internal/generic/translate_test.go @@ -19,13 +19,13 @@ func TestTranslateToCloudControl(t *testing.T) { Plan tfsdk.Plan TfToCfNameMap map[string]string ExpectedError bool - ExpectedState map[string]interface{} + ExpectedState map[string]any }{ { TestName: "simple Plan", Plan: makeSimpleTestPlan(), TfToCfNameMap: simpleTfToCfNameMap, - ExpectedState: map[string]interface{}{ + ExpectedState: map[string]any{ "Name": "testing", }, }, @@ -33,7 +33,7 @@ func TestTranslateToCloudControl(t *testing.T) { TestName: "simple Plan with Optional", Plan: makeSimpleTestPlanWithOptionalPopulated(), TfToCfNameMap: simpleTfToCfNameMap, - ExpectedState: map[string]interface{}{ + ExpectedState: map[string]any{ "Name": "testing", "Number": float64(42), }, @@ -42,26 +42,26 @@ func TestTranslateToCloudControl(t *testing.T) { TestName: "complex Plan", Plan: makeComplexTestPlan(), TfToCfNameMap: complexTfToCfNameMap, - ExpectedState: map[string]interface{}{ + ExpectedState: map[string]any{ "Name": "hello, world", "MachineType": "e2-medium", - "Ports": []interface{}{float64(80), float64(443)}, - "Tags": []interface{}{"red", "blue", "green"}, - "Disks": []interface{}{ - map[string]interface{}{ + "Ports": []any{float64(80), float64(443)}, + "Tags": []any{"red", "blue", "green"}, + "Disks": []any{ + map[string]any{ "Id": "disk0", "DeleteWithInstance": true, }, - map[string]interface{}{ + map[string]any{ "Id": "disk1", "DeleteWithInstance": false, }, }, - "BootDisk": map[string]interface{}{ + "BootDisk": map[string]any{ "Id": "bootdisk", "DeleteWithInstance": true, }, - "ScratchDisk": map[string]interface{}{ + "ScratchDisk": map[string]any{ "Interface": "SCSI", }, }, @@ -70,23 +70,23 @@ func TestTranslateToCloudControl(t *testing.T) { TestName: "maps Plan", Plan: makeMapsTestPlan(), TfToCfNameMap: mapsTfToCfNameMap, - ExpectedState: map[string]interface{}{ + ExpectedState: map[string]any{ "Name": "testing", - "SimpleMap": map[string]interface{}{ + "SimpleMap": map[string]any{ "one": "eno", "two": "owt", }, - "ComplexMap": map[string]interface{}{ - "x": map[string]interface{}{ + "ComplexMap": map[string]any{ + "x": map[string]any{ "Id": float64(1), - "Flags": []interface{}{true, false}, + "Flags": []any{true, false}, }, - "y": map[string]interface{}{ + "y": map[string]any{ "Id": float64(-1), - "Flags": []interface{}{false, true, true}, + "Flags": []any{false, true, true}, }, }, - "JsonString": map[string]interface{}{ + "JsonString": map[string]any{ "Key1": float64(42), }, }, @@ -120,7 +120,7 @@ func TestTranslateToTerraform(t *testing.T) { TestName string Schema schema.Schema CfToTfNameMap map[string]string - ResourceModel map[string]interface{} + ResourceModel map[string]any ExpectedError bool ExpectedValue tftypes.Value }{ @@ -128,7 +128,7 @@ func TestTranslateToTerraform(t *testing.T) { TestName: "simple State", Schema: testSimpleSchema, CfToTfNameMap: simpleCfToTfNameMap, - ResourceModel: map[string]interface{}{ + ResourceModel: map[string]any{ "Arn": "arn:aws:test:::test", "Name": "testing", "Number": float64(42), @@ -151,9 +151,9 @@ func TestTranslateToTerraform(t *testing.T) { TestName: "simple State with JSON string", Schema: testSimpleSchema, CfToTfNameMap: simpleCfToTfNameMap, - ResourceModel: map[string]interface{}{ + ResourceModel: map[string]any{ "Arn": "arn:aws:test:::test", - "Name": map[string]interface{}{ + "Name": map[string]any{ "Value": "testing", }, "Number": float64(42), @@ -176,7 +176,7 @@ func TestTranslateToTerraform(t *testing.T) { TestName: "simple State with extra field", Schema: testSimpleSchema, CfToTfNameMap: simpleCfToTfNameMap, - ResourceModel: map[string]interface{}{ + ResourceModel: map[string]any{ "Arn": "arn:aws:test:::test", "Height": float64(1.75), "Name": "testing", @@ -200,11 +200,11 @@ func TestTranslateToTerraform(t *testing.T) { TestName: "simple State with List", Schema: testSimpleSchemaWithList, CfToTfNameMap: simpleCfToTfNameMap, - ResourceModel: map[string]interface{}{ + ResourceModel: map[string]any{ "Arn": "arn:aws:test:::test", "Name": "testing", "Number": float64(42), - "Ports": []interface{}{float64(8080), float64(8443)}, + "Ports": []any{float64(8080), float64(8443)}, }, ExpectedValue: tftypes.NewValue(tftypes.Object{ AttributeTypes: map[string]tftypes.Type{ @@ -229,11 +229,11 @@ func TestTranslateToTerraform(t *testing.T) { TestName: "simple State with empty List", Schema: testSimpleSchemaWithList, CfToTfNameMap: simpleCfToTfNameMap, - ResourceModel: map[string]interface{}{ + ResourceModel: map[string]any{ "Arn": "arn:aws:test:::test", "Name": "testing", "Number": float64(42), - "Ports": []interface{}{}, + "Ports": []any{}, }, ExpectedValue: tftypes.NewValue(tftypes.Object{ AttributeTypes: map[string]tftypes.Type{ @@ -255,7 +255,7 @@ func TestTranslateToTerraform(t *testing.T) { TestName: "simple State with missing List", Schema: testSimpleSchemaWithList, CfToTfNameMap: simpleCfToTfNameMap, - ResourceModel: map[string]interface{}{ + ResourceModel: map[string]any{ "Arn": "arn:aws:test:::test", "Name": "testing", "Number": float64(42), @@ -280,36 +280,36 @@ func TestTranslateToTerraform(t *testing.T) { TestName: "complex State", Schema: testComplexSchema, CfToTfNameMap: complexCfToTfNameMap, - ResourceModel: map[string]interface{}{ + ResourceModel: map[string]any{ "Name": "hello, world", "MachineType": "e2-medium", - "Ports": []interface{}{float64(80), float64(443)}, - "Tags": []interface{}{"red", "blue", "green"}, - "Disks": []interface{}{ - map[string]interface{}{ + "Ports": []any{float64(80), float64(443)}, + "Tags": []any{"red", "blue", "green"}, + "Disks": []any{ + map[string]any{ "Id": "disk0", "DeleteWithInstance": true, }, - map[string]interface{}{ + map[string]any{ "Id": "disk1", "DeleteWithInstance": false, }, }, - "BootDisk": map[string]interface{}{ + "BootDisk": map[string]any{ "Id": "bootdisk", "DeleteWithInstance": true, }, - "ScratchDisk": map[string]interface{}{ + "ScratchDisk": map[string]any{ "Interface": "SCSI", }, - "VideoPorts": []interface{}{ - map[string]interface{}{ + "VideoPorts": []any{ + map[string]any{ "Id": float64(1), - "Flags": []interface{}{true, false}, + "Flags": []any{true, false}, }, - map[string]interface{}{ + map[string]any{ "Id": float64(-1), - "Flags": []interface{}{false, true, true}, + "Flags": []any{false, true, true}, }, }, }, @@ -402,23 +402,23 @@ func TestTranslateToTerraform(t *testing.T) { TestName: "maps State", Schema: testMapsSchema, CfToTfNameMap: mapsCfToTfNameMap, - ResourceModel: map[string]interface{}{ + ResourceModel: map[string]any{ "Name": "testing", - "SimpleMap": map[string]interface{}{ + "SimpleMap": map[string]any{ "one": "eno", "two": "owt", }, - "ComplexMap": map[string]interface{}{ - "x": map[string]interface{}{ + "ComplexMap": map[string]any{ + "x": map[string]any{ "Id": float64(1), - "Flags": []interface{}{true, false}, + "Flags": []any{true, false}, }, - "y": map[string]interface{}{ + "y": map[string]any{ "Id": float64(-1), - "Flags": []interface{}{false, true, true}, + "Flags": []any{false, true, true}, }, }, - "JsonString": map[string]interface{}{ + "JsonString": map[string]any{ "Key1": float64(42), }, }, diff --git a/internal/provider/generators/common/generator.go b/internal/provider/generators/common/generator.go index 10639ad580..a2a734d7fd 100644 --- a/internal/provider/generators/common/generator.go +++ b/internal/provider/generators/common/generator.go @@ -36,19 +36,19 @@ func (g *Generator) UI() cli.Ui { return g.ui } -func (g *Generator) Infof(format string, a ...interface{}) { +func (g *Generator) Infof(format string, a ...any) { g.ui.Info(fmt.Sprintf(format, a...)) } -func (g *Generator) Warnf(format string, a ...interface{}) { +func (g *Generator) Warnf(format string, a ...any) { g.ui.Warn(fmt.Sprintf(format, a...)) } -func (g *Generator) Errorf(format string, a ...interface{}) { +func (g *Generator) Errorf(format string, a ...any) { g.ui.Error(fmt.Sprintf(format, a...)) } -func (g *Generator) Fatalf(format string, a ...interface{}) { +func (g *Generator) Fatalf(format string, a ...any) { g.Errorf(format, a...) os.Exit(1) } diff --git a/internal/provider/generators/schema/main.go b/internal/provider/generators/schema/main.go index e32b55a6e2..834c4a7259 100644 --- a/internal/provider/generators/schema/main.go +++ b/internal/provider/generators/schema/main.go @@ -407,7 +407,7 @@ func (d *Downloader) ResourceSchema(schema ResourceSchema, timer int) (string, s return resourceSchemaFilename, *resource.TypeName, nil } -func (d *Downloader) infof(format string, a ...interface{}) { +func (d *Downloader) infof(format string, a ...any) { d.ui.Info(fmt.Sprintf(format, a...)) } diff --git a/internal/provider/generators/shared/codegen/emitter.go b/internal/provider/generators/shared/codegen/emitter.go index 06bd636417..bfbd28b7b8 100644 --- a/internal/provider/generators/shared/codegen/emitter.go +++ b/internal/provider/generators/shared/codegen/emitter.go @@ -1061,17 +1061,17 @@ func (e Emitter) emitSchema(tfType string, attributeNameMap map[string]string, p } // printf emits a formatted string to the underlying writer. -func (e Emitter) printf(format string, a ...interface{}) { +func (e Emitter) printf(format string, a ...any) { fprintf(e.Writer, format, a...) } // warnf emits a formatted warning message to the UI. -func (e Emitter) warnf(format string, a ...interface{}) { +func (e Emitter) warnf(format string, a ...any) { e.Ui.Warn(fmt.Sprintf(format, a...)) } // fprintf writes a formatted string to a Writer. -func fprintf(w io.Writer, format string, a ...interface{}) { +func fprintf(w io.Writer, format string, a ...any) { _, _ = io.WriteString(w, fmt.Sprintf(format, a...)) } @@ -1213,7 +1213,7 @@ func attributeDefaultValue(path []string, property *cfschema.Property) (Features // Set. // switch v := property.Default.(type) { - case []interface{}: + case []any: switch itemType := property.Items.Type.String(); itemType { case cfschema.PropertyTypeString: features.UsesInternalDefaultsPackage = true @@ -1248,7 +1248,7 @@ func attributeDefaultValue(path []string, property *cfschema.Property) (Features // List. // switch v := property.Default.(type) { - case []interface{}: + case []any: switch itemType := property.Items.Type.String(); itemType { case cfschema.PropertyTypeString: features.UsesInternalDefaultsPackage = true @@ -1282,7 +1282,7 @@ func attributeDefaultValue(path []string, property *cfschema.Property) (Features case cfschema.PropertyTypeObject: switch v := property.Default.(type) { - case map[string]interface{}: + case map[string]any: if _, ok := v["properties"]; ok { // For example: // @@ -1531,7 +1531,7 @@ func stringValidators(path []string, property *cfschema.Property) (Features, []s return features, validators, nil } -func writeObjectGoLiteral(w io.Writer, obj map[string]interface{}) { +func writeObjectGoLiteral(w io.Writer, obj map[string]any) { if obj == nil { fprintf(w, "nil") return @@ -1549,7 +1549,7 @@ func writeObjectGoLiteral(w io.Writer, obj map[string]interface{}) { fprintf(w, "%t", v) case string: fprintf(w, "%q", v) - case map[string]interface{}: + case map[string]any: writeObjectGoLiteral(w, v) default: fprintf(w, "nil") diff --git a/internal/service/cloudcontrol/delete.go b/internal/service/cloudcontrol/delete.go index 35a92f8004..359f9c0548 100644 --- a/internal/service/cloudcontrol/delete.go +++ b/internal/service/cloudcontrol/delete.go @@ -15,7 +15,7 @@ import ( ) func DeleteResource(ctx context.Context, conn *cloudcontrol.Client, roleARN, typeName, id string, maxWaitTime time.Duration) error { - tflog.Debug(ctx, "DeleteResource", map[string]interface{}{ + tflog.Debug(ctx, "DeleteResource", map[string]any{ "cfTypeName": typeName, "id": id, }) diff --git a/internal/service/cloudcontrol/find.go b/internal/service/cloudcontrol/find.go index 2c508ba7d9..10d8ef1a8a 100644 --- a/internal/service/cloudcontrol/find.go +++ b/internal/service/cloudcontrol/find.go @@ -16,7 +16,7 @@ import ( ) func FindResourceByTypeNameAndID(ctx context.Context, conn *cloudcontrol.Client, roleARN, typeName, id string) (*types.ResourceDescription, error) { - tflog.Debug(ctx, "FindResourceByTypeNameAndID", map[string]interface{}{ + tflog.Debug(ctx, "FindResourceByTypeNameAndID", map[string]any{ "cfTypeName": typeName, "id": id, }) @@ -49,7 +49,7 @@ func FindResourceByTypeNameAndID(ctx context.Context, conn *cloudcontrol.Client, return nil, &tfresource.NotFoundError{Message: "Empty result"} } - tflog.Debug(ctx, "ResourceDescription.ResourceModel", map[string]interface{}{ + tflog.Debug(ctx, "ResourceDescription.ResourceModel", map[string]any{ "value": aws.ToString(output.ResourceDescription.Properties), }) diff --git a/internal/service/cloudcontrol/list.go b/internal/service/cloudcontrol/list.go index 85e3d3bb4e..aaacf83081 100644 --- a/internal/service/cloudcontrol/list.go +++ b/internal/service/cloudcontrol/list.go @@ -16,7 +16,7 @@ import ( ) func ListResourcesByTypeName(ctx context.Context, conn *cloudcontrol.Client, roleARN, typeName string) ([]types.ResourceDescription, error) { - tflog.Debug(ctx, "ListResourcesByTypeName", map[string]interface{}{ + tflog.Debug(ctx, "ListResourcesByTypeName", map[string]any{ "cfTypeName": typeName, }) diff --git a/internal/slices/slices.go b/internal/slices/slices.go index f427a784bc..cefd536bf8 100644 --- a/internal/slices/slices.go +++ b/internal/slices/slices.go @@ -3,16 +3,15 @@ package slices +import "slices" + // AppendUnique appends unique (not already in the slice) values to a slice. func AppendUnique[S ~[]E, E comparable](s S, vs ...E) S { for _, v := range vs { var exists bool - for _, e := range s { - if e == v { - exists = true - break - } + if slices.Contains(s, v) { + exists = true } if !exists { diff --git a/internal/strings/prose_join.go b/internal/strings/prose_join.go index d0a1c2b1ae..e74b6343f9 100644 --- a/internal/strings/prose_join.go +++ b/internal/strings/prose_join.go @@ -36,7 +36,7 @@ func ProseJoin(elems []string) string { } size := (len(elems)-2)*lenComma + lenCommaAnd //nolint:mnd - for i := 0; i < len(elems); i++ { + for i := range elems { size += len(elems[i]) } var b strings.Builder diff --git a/internal/update/changelog.go b/internal/update/changelog.go index d82674ae8d..730d8f4caf 100644 --- a/internal/update/changelog.go +++ b/internal/update/changelog.go @@ -6,6 +6,7 @@ import ( "fmt" "log" "os" + "slices" "sort" "strconv" "strings" @@ -172,9 +173,7 @@ func writeChangelog(originalContent string, changes []string) string { return originalContent } - sort.Slice(changes, func(i, j int) bool { - return changes[i] < changes[j] - }) + slices.Sort(changes) // Parse and increment version newVersion, err := parseAndIncrementChangelogVersion(originalContent) @@ -208,9 +207,9 @@ func writeChangelog(originalContent string, changes []string) string { // parseAndIncrementChangelogVersion finds the latest version in changelog content and increments the minor version func parseAndIncrementChangelogVersion(changelogContent string) (string, error) { - lines := strings.Split(changelogContent, "\n") + lines := strings.SplitSeq(changelogContent, "\n") - for _, line := range lines { + for line := range lines { // Look for version headers like "## 1.47.0 (June 26, 2025)" if strings.HasPrefix(strings.TrimSpace(line), "## ") && strings.Contains(line, ".") { log.Printf("Found version line: %s\n", line) diff --git a/internal/update/github.go b/internal/update/github.go index 9b02665d15..039130f930 100644 --- a/internal/update/github.go +++ b/internal/update/github.go @@ -291,8 +291,8 @@ func createFormattedPullRequest(ctx context.Context, config *GitHubConfig, testR currentData := config.CurrentDate // If repository is a GitHub URL, parse it to extract owner and repo name - if strings.HasPrefix(config.Repository, GitHubURLPrefix) { - parts := strings.Split(strings.TrimPrefix(config.Repository, GitHubURLPrefix), "/") + if after, ok := strings.CutPrefix(config.Repository, GitHubURLPrefix); ok { + parts := strings.Split(after, "/") if len(parts) >= 2 { repoOwner = parts[0] repoName = strings.TrimSuffix(parts[1], ".git") // Remove .git suffix if present diff --git a/internal/update/hcl_parser.go b/internal/update/hcl_parser.go index 36d021c398..3dffcc9e44 100644 --- a/internal/update/hcl_parser.go +++ b/internal/update/hcl_parser.go @@ -152,7 +152,7 @@ func diffSchemas(newSchemas *allschemas.AvailableSchemas, lastSchemas *allschema // - filePath: Target file path for writing the HCL content // // Returns an error if file creation or writing fails. -func writeSchemasToHCLFile(schema interface{}, filePath string) error { +func writeSchemasToHCLFile(schema any, filePath string) error { // Create new HCL file structure hclFile := hclwrite.NewEmptyFile() body := hclFile.Body() diff --git a/internal/update/main.go b/internal/update/main.go index 454d609104..d8d3e67d39 100644 --- a/internal/update/main.go +++ b/internal/update/main.go @@ -446,7 +446,7 @@ func validateResources(ctx context.Context, currAllSchemas *allschemas.AllSchema } log.Printf("Created GitHub issue for resource %s: %s", currAllSchemas.Resources[i].CloudFormationTypeName, link) } else { - tflog.Info(ctx, "Skipping GitHub issue creation (no client)", map[string]interface{}{ + tflog.Info(ctx, "Skipping GitHub issue creation (no client)", map[string]any{ "resource": currAllSchemas.Resources[i].CloudFormationTypeName, }) } @@ -462,8 +462,8 @@ func parseCheckoutList(filePaths *UpdateFilePaths) map[string]bool { log.Printf("Failed to read suppression checkout file: %v", err) return result } - lines := strings.Split(string(data), "\n") - for _, line := range lines { + lines := strings.SplitSeq(string(data), "\n") + for line := range lines { line = strings.TrimSpace(line) if line != "" { resource := convertJSONResourceToCloudFormationTypeName(line) diff --git a/internal/update/makes.go b/internal/update/makes.go index 640752a0cc..a2fc1cd27c 100644 --- a/internal/update/makes.go +++ b/internal/update/makes.go @@ -262,8 +262,8 @@ func handleAWS_UnderscoreError(ctx context.Context, errorLine string, config *Gi /* Example error: "error loading CloudFormation Resource Provider Schema for aws_nimblestudio_studio: describing CloudFormation type: operation error CloudFormation: DescribeType, exceeded maximum number of attempts, 3, https response error StatusCode: 400, ..." */ - words := strings.Split(errorLine, " ") - for _, word := range words { + words := strings.SplitSeq(errorLine, " ") + for word := range words { if strings.HasPrefix(word, "aws_") { // Look for a matching file in internal/service/cloudformation/schemas schemasDir := filePaths.CloudFormationSchemasDir @@ -493,8 +493,8 @@ func checkoutSchemas(suppressionData string) error { } // Split the contents by spaces to get individual file paths - lines := strings.Split(string(contents), "\n") - for _, line := range lines { + lines := strings.SplitSeq(string(contents), "\n") + for line := range lines { path := strings.TrimSpace(line) if path != "" { err := execGit("checkout", path) From 887bad810dec44aeda52a1b4fce70c3a049e6c9c Mon Sep 17 00:00:00 2001 From: Dirk Avery Date: Thu, 18 Dec 2025 17:51:48 -0500 Subject: [PATCH 09/13] Fix import --- internal/update/changelog.go | 1 - 1 file changed, 1 deletion(-) diff --git a/internal/update/changelog.go b/internal/update/changelog.go index 730d8f4caf..813880264d 100644 --- a/internal/update/changelog.go +++ b/internal/update/changelog.go @@ -7,7 +7,6 @@ import ( "log" "os" "slices" - "sort" "strconv" "strings" "time" From d15a3550cb9e5749e614fb87139792045ab38913 Mon Sep 17 00:00:00 2001 From: Dirk Avery Date: Thu, 18 Dec 2025 18:00:21 -0500 Subject: [PATCH 10/13] Add couple more headers --- .copyplop.yaml | 5 ++--- infrastructure/README.md | 3 +++ infrastructure/repository/README.md | 3 +++ 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/.copyplop.yaml b/.copyplop.yaml index 7fffe34578..f60b9cdb63 100644 --- a/.copyplop.yaml +++ b/.copyplop.yaml @@ -16,13 +16,12 @@ license: # see breakdown of file types below files: exclude_paths: - - "**/when_string_test.go" # standard library generated files - "CHANGELOG.md" - - "infrastructure/**" - - "**/import_examples_gen.json" - "docs/**" - ".github/**" - "META.d/**" + - "examples/**" + - "**/generators/allschemas" extensions: - ".go" - ".yml" diff --git a/infrastructure/README.md b/infrastructure/README.md index 979c9d66cf..b5478663aa 100644 --- a/infrastructure/README.md +++ b/infrastructure/README.md @@ -1,3 +1,6 @@ + + + # infrastructure Terraform configurations for managing Terraform AWS Cloud Control Provider infrastructure components. diff --git a/infrastructure/repository/README.md b/infrastructure/repository/README.md index 8bcc74d076..5c8ee31351 100644 --- a/infrastructure/repository/README.md +++ b/infrastructure/repository/README.md @@ -1,3 +1,6 @@ + + + # repository Public Terraform configuration for managing the `terraform-provider-awscc` code repository, to enable community contributions. Currently only utilized for managing AWS Partition, AWS Service, and workflow labels. From 70cd3b48a5c022de7e9b16bbb2b6d4dcd800396f Mon Sep 17 00:00:00 2001 From: Dirk Avery Date: Thu, 18 Dec 2025 18:08:18 -0500 Subject: [PATCH 11/13] Fix HCLs --- .copyplop.yaml | 1 + .copywrite.hcl | 3 +++ .release/ci.hcl | 2 +- .release/release-metadata.hcl | 2 +- .release/security-scan.hcl | 2 +- .release/terraform-provider-awscc-artifacts.hcl | 2 +- internal/identity/names/services.hcl | 2 +- internal/provider/all_schemas.hcl | 2 +- internal/update/update_filepaths.hcl | 2 +- 9 files changed, 11 insertions(+), 7 deletions(-) diff --git a/.copyplop.yaml b/.copyplop.yaml index f60b9cdb63..c994422ecb 100644 --- a/.copyplop.yaml +++ b/.copyplop.yaml @@ -27,6 +27,7 @@ files: - ".yml" - ".yaml" - ".md" + - ".hcl" comment_styles: go: "//" diff --git a/.copywrite.hcl b/.copywrite.hcl index 3fb62de36b..0bbeb42807 100644 --- a/.copywrite.hcl +++ b/.copywrite.hcl @@ -1,3 +1,6 @@ +# Copyright IBM Corp. 2021, 2025 +# SPDX-License-Identifier: MPL-2.0 + schema_version = 1 project { diff --git a/.release/ci.hcl b/.release/ci.hcl index 7d07dc8aab..eb14de9908 100644 --- a/.release/ci.hcl +++ b/.release/ci.hcl @@ -1,4 +1,4 @@ -# Copyright (c) HashiCorp, Inc. +# Copyright IBM Corp. 2021, 2025 # SPDX-License-Identifier: MPL-2.0 // Reference: https://github.com/hashicorp/crt-core-helloworld/blob/main/.release/ci.hcl (private repository) diff --git a/.release/release-metadata.hcl b/.release/release-metadata.hcl index 0763117158..d33be6d77c 100644 --- a/.release/release-metadata.hcl +++ b/.release/release-metadata.hcl @@ -1,4 +1,4 @@ -# Copyright (c) HashiCorp, Inc. +# Copyright IBM Corp. 2021, 2025 # SPDX-License-Identifier: MPL-2.0 url_source_repository = "https://github.com/hashicorp/terraform-provider-awscc" diff --git a/.release/security-scan.hcl b/.release/security-scan.hcl index 8367ab9c28..ed676fcce8 100644 --- a/.release/security-scan.hcl +++ b/.release/security-scan.hcl @@ -1,4 +1,4 @@ -# Copyright (c) HashiCorp, Inc. +# Copyright IBM Corp. 2021, 2025 # SPDX-License-Identifier: MPL-2.0 # Reference: https://github.com/hashicorp/security-scanner/blob/main/CONFIG.md#binary (private repository) diff --git a/.release/terraform-provider-awscc-artifacts.hcl b/.release/terraform-provider-awscc-artifacts.hcl index cd9115aebc..f8c9ee3494 100644 --- a/.release/terraform-provider-awscc-artifacts.hcl +++ b/.release/terraform-provider-awscc-artifacts.hcl @@ -1,4 +1,4 @@ -# Copyright (c) HashiCorp, Inc. +# Copyright IBM Corp. 2021, 2025 # SPDX-License-Identifier: MPL-2.0 schema = 1 diff --git a/internal/identity/names/services.hcl b/internal/identity/names/services.hcl index 06c91467c1..463e3d4715 100644 --- a/internal/identity/names/services.hcl +++ b/internal/identity/names/services.hcl @@ -1,4 +1,4 @@ -# Copyright (c) HashiCorp, Inc. +# Copyright IBM Corp. 2021, 2025 # SPDX-License-Identifier: MPL-2.0 # This file defines services that exist in AWS. diff --git a/internal/provider/all_schemas.hcl b/internal/provider/all_schemas.hcl index fffa7c2cb6..d558c21447 100644 --- a/internal/provider/all_schemas.hcl +++ b/internal/provider/all_schemas.hcl @@ -1,4 +1,4 @@ -# Copyright (c) HashiCorp, Inc. +# Copyright IBM Corp. 2021, 2025 # SPDX-License-Identifier: MPL-2.0 defaults { diff --git a/internal/update/update_filepaths.hcl b/internal/update/update_filepaths.hcl index 30f807ad10..c873040a49 100644 --- a/internal/update/update_filepaths.hcl +++ b/internal/update/update_filepaths.hcl @@ -1,4 +1,4 @@ -# Copyright (c) HashiCorp, Inc. +# Copyright IBM Corp. 2021, 2025 # SPDX-License-Identifier: MPL-2.0 run_makes_resource_log = "internal/provider/logs.txt" From 04c9462db988f359f2015ca87ff86532e64721a2 Mon Sep 17 00:00:00 2001 From: Dirk Avery Date: Thu, 18 Dec 2025 18:10:54 -0500 Subject: [PATCH 12/13] Update .github --- .copyplop.yaml | 1 - .github/CODE_OF_CONDUCT.md | 3 +++ .github/ISSUE_TEMPLATE/Bug_Report.md | 2 ++ .github/ISSUE_TEMPLATE/Feature_Request.md | 2 ++ .github/ISSUE_TEMPLATE/config.yml | 3 +++ .github/PULL_REQUEST_TEMPLATE.md | 3 +++ .github/actions/community_check/README.md | 3 +++ .github/actions/community_check/action.yml | 4 ++-- .github/actions/team_working_board/README.md | 3 +++ .github/actions/team_working_board/action.yml | 4 ++-- .github/dependabot.yml | 3 +++ .github/labeler-issue-needs-triage.yml | 4 ++-- .github/labeler-issue-triage.yml | 4 ++-- .github/labeler-pr-needs-triage.yml | 4 ++-- .github/workflows/build.yml | 3 +++ .github/workflows/crt-post-promote-production.yml | 3 +++ .github/workflows/documentation-linters.yml | 3 +++ .github/workflows/feed-approval.yml | 3 +++ .github/workflows/feed-comments.yml | 3 +++ .github/workflows/label-notifications.yml | 3 +++ .github/workflows/labelers.yml | 3 +++ .github/workflows/linters.yml | 3 +++ .github/workflows/projects.yml | 3 +++ .github/workflows/provider-release.yml | 3 +++ .github/workflows/pull_request_feed.yml | 3 +++ .github/workflows/registry-check.yml | 3 +++ .github/workflows/regressions.yml | 3 +++ .github/workflows/release-tag.yml | 3 +++ .github/workflows/tfplugindocs-check.yml | 3 +++ .github/workflows/update-changelog.yml | 3 +++ .github/workflows/update.yml | 3 +++ LICENSE | 2 +- 32 files changed, 84 insertions(+), 12 deletions(-) diff --git a/.copyplop.yaml b/.copyplop.yaml index c994422ecb..066353b20b 100644 --- a/.copyplop.yaml +++ b/.copyplop.yaml @@ -18,7 +18,6 @@ files: exclude_paths: - "CHANGELOG.md" - "docs/**" - - ".github/**" - "META.d/**" - "examples/**" - "**/generators/allschemas" diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md index 49a6ea6b2f..b5faf75097 100644 --- a/.github/CODE_OF_CONDUCT.md +++ b/.github/CODE_OF_CONDUCT.md @@ -1,3 +1,6 @@ + + + # Code of Conduct HashiCorp Community Guidelines apply to you when interacting with the community here on GitHub and contributing code. diff --git a/.github/ISSUE_TEMPLATE/Bug_Report.md b/.github/ISSUE_TEMPLATE/Bug_Report.md index c4650dddb4..ade1d581f9 100644 --- a/.github/ISSUE_TEMPLATE/Bug_Report.md +++ b/.github/ISSUE_TEMPLATE/Bug_Report.md @@ -3,6 +3,8 @@ name: 🐛 Bug Report about: If something isn't working as expected 🤔. labels: ["bug"] --- + + + diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 8e6e90c581..7bdf23dfa4 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,3 +1,6 @@ +# Copyright IBM Corp. 2021, 2025 +# "SPDX-License-Identifier: MPL-2.0" + blank_issues_enabled: false contact_links: - name: Terraform AWS Cloud Control Provider Questions diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index e58dbaf95d..2425d61efc 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,3 +1,6 @@ + + + diff --git a/.github/actions/community_check/README.md b/.github/actions/community_check/README.md index b14cea8b70..c781fbe1c0 100644 --- a/.github/actions/community_check/README.md +++ b/.github/actions/community_check/README.md @@ -1,3 +1,6 @@ + + + # Community Check Check a username to see if it's in one of our community lists. We use this to help automate tasks within the repository. diff --git a/.github/actions/community_check/action.yml b/.github/actions/community_check/action.yml index 1e99669802..460bdb68f4 100644 --- a/.github/actions/community_check/action.yml +++ b/.github/actions/community_check/action.yml @@ -1,5 +1,5 @@ -# Copyright (c) HashiCorp, Inc. -# SPDX-License-Identifier: MPL-2.0 +# Copyright IBM Corp. 2021, 2025 +# "SPDX-License-Identifier: MPL-2.0" name: Community Check description: Check a username against our lists of groups within the community diff --git a/.github/actions/team_working_board/README.md b/.github/actions/team_working_board/README.md index 4b59360c87..4c04f19925 100644 --- a/.github/actions/team_working_board/README.md +++ b/.github/actions/team_working_board/README.md @@ -1,3 +1,6 @@ + + + # Team Working Board Used to automate the AWS Provider Team's working board. diff --git a/.github/actions/team_working_board/action.yml b/.github/actions/team_working_board/action.yml index 88e033b97e..b6134ef012 100644 --- a/.github/actions/team_working_board/action.yml +++ b/.github/actions/team_working_board/action.yml @@ -1,5 +1,5 @@ -# Copyright (c) HashiCorp, Inc. -# SPDX-License-Identifier: MPL-2.0 +# Copyright IBM Corp. 2021, 2025 +# "SPDX-License-Identifier: MPL-2.0" name: Team Working Board description: Manages an item within the AWS Provider Team's working board diff --git a/.github/dependabot.yml b/.github/dependabot.yml index ab79417ba6..dee987064e 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,3 +1,6 @@ +# Copyright IBM Corp. 2021, 2025 +# "SPDX-License-Identifier: MPL-2.0" + # See GitHub's docs for more information on this file: # https://docs.github.com/en/free-pro-team@latest/github/administering-a-repository/configuration-options-for-dependency-updates version: 2 diff --git a/.github/labeler-issue-needs-triage.yml b/.github/labeler-issue-needs-triage.yml index 6b522a39b3..edffc80002 100644 --- a/.github/labeler-issue-needs-triage.yml +++ b/.github/labeler-issue-needs-triage.yml @@ -1,5 +1,5 @@ -# Copyright (c) HashiCorp, Inc. -# SPDX-License-Identifier: MPL-2.0 +# Copyright IBM Corp. 2021, 2025 +# "SPDX-License-Identifier: MPL-2.0" needs-triage: - '.*' diff --git a/.github/labeler-issue-triage.yml b/.github/labeler-issue-triage.yml index 2e29a26a06..51babc1c55 100644 --- a/.github/labeler-issue-triage.yml +++ b/.github/labeler-issue-triage.yml @@ -1,5 +1,5 @@ -# Copyright (c) HashiCorp, Inc. -# SPDX-License-Identifier: MPL-2.0 +# Copyright IBM Corp. 2021, 2025 +# "SPDX-License-Identifier: MPL-2.0" bug: # General: diff --git a/.github/labeler-pr-needs-triage.yml b/.github/labeler-pr-needs-triage.yml index fa791bd83e..cd242899da 100644 --- a/.github/labeler-pr-needs-triage.yml +++ b/.github/labeler-pr-needs-triage.yml @@ -1,5 +1,5 @@ -# Copyright (c) HashiCorp, Inc. -# SPDX-License-Identifier: MPL-2.0 +# Copyright IBM Corp. 2021, 2025 +# "SPDX-License-Identifier: MPL-2.0" needs-triage: - any: diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f38616203f..bf74c660f5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,3 +1,6 @@ +# Copyright IBM Corp. 2021, 2025 +# "SPDX-License-Identifier: MPL-2.0" + # This workflow builds the product for all supported platforms and uploads the resulting # binaries as Actions artifacts. The workflow also uploads a build metadata file # (metadata.json) -- and a Terraform Registry manifest file (terraform-registry-manifest.json). diff --git a/.github/workflows/crt-post-promote-production.yml b/.github/workflows/crt-post-promote-production.yml index e492603e81..e7ede2ee7e 100644 --- a/.github/workflows/crt-post-promote-production.yml +++ b/.github/workflows/crt-post-promote-production.yml @@ -1,3 +1,6 @@ +# Copyright IBM Corp. 2021, 2025 +# "SPDX-License-Identifier: MPL-2.0" + name: crt-post-promote-production on: diff --git a/.github/workflows/documentation-linters.yml b/.github/workflows/documentation-linters.yml index c8c90188ad..b0c71d4a2d 100644 --- a/.github/workflows/documentation-linters.yml +++ b/.github/workflows/documentation-linters.yml @@ -1,3 +1,6 @@ +# Copyright IBM Corp. 2021, 2025 +# "SPDX-License-Identifier: MPL-2.0" + name: Documentation Linters on: diff --git a/.github/workflows/feed-approval.yml b/.github/workflows/feed-approval.yml index efc6bd00a1..ea69307b99 100644 --- a/.github/workflows/feed-approval.yml +++ b/.github/workflows/feed-approval.yml @@ -1,3 +1,6 @@ +# Copyright IBM Corp. 2021, 2025 +# "SPDX-License-Identifier: MPL-2.0" + name: Approval Automations permissions: diff --git a/.github/workflows/feed-comments.yml b/.github/workflows/feed-comments.yml index 82a9069dc7..2167fbc804 100644 --- a/.github/workflows/feed-comments.yml +++ b/.github/workflows/feed-comments.yml @@ -1,3 +1,6 @@ +# Copyright IBM Corp. 2021, 2025 +# "SPDX-License-Identifier: MPL-2.0" + name: Comment Automations permissions: diff --git a/.github/workflows/label-notifications.yml b/.github/workflows/label-notifications.yml index 2e2fbf84fe..dfd0a675a5 100644 --- a/.github/workflows/label-notifications.yml +++ b/.github/workflows/label-notifications.yml @@ -1,3 +1,6 @@ +# Copyright IBM Corp. 2021, 2025 +# "SPDX-License-Identifier: MPL-2.0" + name: Handle Label Notifications permissions: {} diff --git a/.github/workflows/labelers.yml b/.github/workflows/labelers.yml index ea92009182..011179d757 100644 --- a/.github/workflows/labelers.yml +++ b/.github/workflows/labelers.yml @@ -1,3 +1,6 @@ +# Copyright IBM Corp. 2021, 2025 +# "SPDX-License-Identifier: MPL-2.0" + name: Label Automations permissions: diff --git a/.github/workflows/linters.yml b/.github/workflows/linters.yml index f0789520c1..382c1233b2 100644 --- a/.github/workflows/linters.yml +++ b/.github/workflows/linters.yml @@ -1,3 +1,6 @@ +# Copyright IBM Corp. 2021, 2025 +# "SPDX-License-Identifier: MPL-2.0" + name: Linters on: diff --git a/.github/workflows/projects.yml b/.github/workflows/projects.yml index 62d1cb8644..6f82dc40fd 100644 --- a/.github/workflows/projects.yml +++ b/.github/workflows/projects.yml @@ -1,3 +1,6 @@ +# Copyright IBM Corp. 2021, 2025 +# "SPDX-License-Identifier: MPL-2.0" + name: Provider Team Working Board permissions: {} diff --git a/.github/workflows/provider-release.yml b/.github/workflows/provider-release.yml index d592ffbaf6..bd194f26b0 100644 --- a/.github/workflows/provider-release.yml +++ b/.github/workflows/provider-release.yml @@ -1,3 +1,6 @@ +# Copyright IBM Corp. 2021, 2025 +# "SPDX-License-Identifier: MPL-2.0" + # provider-release is a convenient way to request a promotion of artifacts to # the staging or production release channel via Common Release Tooling (CRT). # diff --git a/.github/workflows/pull_request_feed.yml b/.github/workflows/pull_request_feed.yml index fd03c560f6..10c633b744 100644 --- a/.github/workflows/pull_request_feed.yml +++ b/.github/workflows/pull_request_feed.yml @@ -1,3 +1,6 @@ +# Copyright IBM Corp. 2021, 2025 +# "SPDX-License-Identifier: MPL-2.0" + name: Pull Request Feed on: diff --git a/.github/workflows/registry-check.yml b/.github/workflows/registry-check.yml index bab66841ee..7e4791b447 100644 --- a/.github/workflows/registry-check.yml +++ b/.github/workflows/registry-check.yml @@ -1,3 +1,6 @@ +# Copyright IBM Corp. 2021, 2025 +# "SPDX-License-Identifier: MPL-2.0" + name: Registry Initialization Check on: diff --git a/.github/workflows/regressions.yml b/.github/workflows/regressions.yml index 76f33127b0..3d9daeae03 100644 --- a/.github/workflows/regressions.yml +++ b/.github/workflows/regressions.yml @@ -1,3 +1,6 @@ +# Copyright IBM Corp. 2021, 2025 +# "SPDX-License-Identifier: MPL-2.0" + name: Handle Label Notifications permissions: {} diff --git a/.github/workflows/release-tag.yml b/.github/workflows/release-tag.yml index 4b954c16f6..830b83d9a1 100644 --- a/.github/workflows/release-tag.yml +++ b/.github/workflows/release-tag.yml @@ -1,3 +1,6 @@ +# Copyright IBM Corp. 2021, 2025 +# "SPDX-License-Identifier: MPL-2.0" + name: "Feed: Release Tag" on: push: diff --git a/.github/workflows/tfplugindocs-check.yml b/.github/workflows/tfplugindocs-check.yml index d73726fa7c..f38a26fa70 100644 --- a/.github/workflows/tfplugindocs-check.yml +++ b/.github/workflows/tfplugindocs-check.yml @@ -1,3 +1,6 @@ +# Copyright IBM Corp. 2021, 2025 +# "SPDX-License-Identifier: MPL-2.0" + name: Check if tfplugindocs result matches /docs on: diff --git a/.github/workflows/update-changelog.yml b/.github/workflows/update-changelog.yml index 5fb35e39a9..27a4fc405f 100644 --- a/.github/workflows/update-changelog.yml +++ b/.github/workflows/update-changelog.yml @@ -1,3 +1,6 @@ +# Copyright IBM Corp. 2021, 2025 +# "SPDX-License-Identifier: MPL-2.0" + name: Update Changelog on: diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml index 32eb6f070b..11a013c493 100644 --- a/.github/workflows/update.yml +++ b/.github/workflows/update.yml @@ -1,3 +1,6 @@ +# Copyright IBM Corp. 2021, 2025 +# "SPDX-License-Identifier: MPL-2.0" + name: Update Schema on: workflow_dispatch: diff --git a/LICENSE b/LICENSE index 15eba9d8c1..fd0feb2f72 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2021 HashiCorp, Inc. +Copyright (c) 2026 IBM Corp. Mozilla Public License Version 2.0 ================================== From a4d1a4f2f3223f8e9eaf5b7e7020b56169e99f16 Mon Sep 17 00:00:00 2001 From: Dirk Avery Date: Thu, 18 Dec 2025 18:15:42 -0500 Subject: [PATCH 13/13] Fix misc --- .copyplop.yaml | 3 ++- .teamcity/components/build_config.kt | 2 +- .teamcity/pom.xml | 2 +- .teamcity/scripts/acceptance_tests.sh | 2 +- .teamcity/scripts/configure_goenv.sh | 2 +- .teamcity/settings.kts | 2 +- META.d/_summary.yaml | 4 ++-- infrastructure/repository/labels-partition.tf | 2 +- infrastructure/repository/labels-service.tf | 2 +- infrastructure/repository/labels-workflow.tf | 2 +- infrastructure/repository/main.tf | 2 +- internal/aws/logs/testdata/LogGroup/providerMeta/main.tf | 3 +++ .../LogGroup/providerMetaWithModule/demo-module/main.tf | 3 +++ .../aws/logs/testdata/LogGroup/providerMetaWithModule/main.tf | 3 +++ test/main.tf | 2 +- 15 files changed, 23 insertions(+), 13 deletions(-) diff --git a/.copyplop.yaml b/.copyplop.yaml index 066353b20b..9c1b673b9f 100644 --- a/.copyplop.yaml +++ b/.copyplop.yaml @@ -18,7 +18,6 @@ files: exclude_paths: - "CHANGELOG.md" - "docs/**" - - "META.d/**" - "examples/**" - "**/generators/allschemas" extensions: @@ -27,6 +26,8 @@ files: - ".yaml" - ".md" - ".hcl" + - ".sh" + - ".tf" comment_styles: go: "//" diff --git a/.teamcity/components/build_config.kt b/.teamcity/components/build_config.kt index 98c6abfc84..fb8f95102d 100644 --- a/.teamcity/components/build_config.kt +++ b/.teamcity/components/build_config.kt @@ -1,5 +1,5 @@ /* - * Copyright (c) HashiCorp, Inc. + * Copyright IBM Corp. 2021, 2025 * SPDX-License-Identifier: MPL-2.0 */ diff --git a/.teamcity/pom.xml b/.teamcity/pom.xml index 21a262e8b7..a56419bc95 100644 --- a/.teamcity/pom.xml +++ b/.teamcity/pom.xml @@ -1,6 +1,6 @@ diff --git a/.teamcity/scripts/acceptance_tests.sh b/.teamcity/scripts/acceptance_tests.sh index 291e94336b..68ce952edd 100644 --- a/.teamcity/scripts/acceptance_tests.sh +++ b/.teamcity/scripts/acceptance_tests.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright (c) HashiCorp, Inc. +# Copyright IBM Corp. 2021, 2025 # SPDX-License-Identifier: MPL-2.0 diff --git a/.teamcity/scripts/configure_goenv.sh b/.teamcity/scripts/configure_goenv.sh index cb41dd1e38..a616a4e05a 100644 --- a/.teamcity/scripts/configure_goenv.sh +++ b/.teamcity/scripts/configure_goenv.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# Copyright (c) HashiCorp, Inc. +# Copyright IBM Corp. 2021, 2025 # SPDX-License-Identifier: MPL-2.0 diff --git a/.teamcity/settings.kts b/.teamcity/settings.kts index e9aaade57a..264d4fba86 100644 --- a/.teamcity/settings.kts +++ b/.teamcity/settings.kts @@ -1,5 +1,5 @@ /* - * Copyright (c) HashiCorp, Inc. + * Copyright IBM Corp. 2021, 2025 * SPDX-License-Identifier: MPL-2.0 */ diff --git a/META.d/_summary.yaml b/META.d/_summary.yaml index 97206da367..e4350e9da6 100644 --- a/META.d/_summary.yaml +++ b/META.d/_summary.yaml @@ -1,5 +1,5 @@ -# Copyright (c) HashiCorp, Inc. -# SPDX-License-Identifier: MPL-2.0 +# Copyright IBM Corp. 2021, 2025 +# "SPDX-License-Identifier: MPL-2.0" --- schema: 1.1 diff --git a/infrastructure/repository/labels-partition.tf b/infrastructure/repository/labels-partition.tf index 500cab4962..126cba1428 100644 --- a/infrastructure/repository/labels-partition.tf +++ b/infrastructure/repository/labels-partition.tf @@ -1,4 +1,4 @@ -# Copyright (c) HashiCorp, Inc. +# Copyright IBM Corp. 2021, 2025 # SPDX-License-Identifier: MPL-2.0 locals { diff --git a/infrastructure/repository/labels-service.tf b/infrastructure/repository/labels-service.tf index 31818c9751..a81fb50e25 100644 --- a/infrastructure/repository/labels-service.tf +++ b/infrastructure/repository/labels-service.tf @@ -1,4 +1,4 @@ -# Copyright (c) HashiCorp, Inc. +# Copyright IBM Corp. 2021, 2025 # SPDX-License-Identifier: MPL-2.0 # diff --git a/infrastructure/repository/labels-workflow.tf b/infrastructure/repository/labels-workflow.tf index 62aa21b9b3..2d103d3117 100644 --- a/infrastructure/repository/labels-workflow.tf +++ b/infrastructure/repository/labels-workflow.tf @@ -1,4 +1,4 @@ -# Copyright (c) HashiCorp, Inc. +# Copyright IBM Corp. 2021, 2025 # SPDX-License-Identifier: MPL-2.0 locals { diff --git a/infrastructure/repository/main.tf b/infrastructure/repository/main.tf index be9c5ab857..3f2d7afcc2 100644 --- a/infrastructure/repository/main.tf +++ b/infrastructure/repository/main.tf @@ -1,4 +1,4 @@ -# Copyright (c) HashiCorp, Inc. +# Copyright IBM Corp. 2021, 2025 # SPDX-License-Identifier: MPL-2.0 terraform { diff --git a/internal/aws/logs/testdata/LogGroup/providerMeta/main.tf b/internal/aws/logs/testdata/LogGroup/providerMeta/main.tf index ad1f82a592..3ff2c80680 100644 --- a/internal/aws/logs/testdata/LogGroup/providerMeta/main.tf +++ b/internal/aws/logs/testdata/LogGroup/providerMeta/main.tf @@ -1,3 +1,6 @@ +# Copyright IBM Corp. 2021, 2025 +# SPDX-License-Identifier: MPL-2.0 + terraform { provider_meta "awscc" { user_agent = [ diff --git a/internal/aws/logs/testdata/LogGroup/providerMetaWithModule/demo-module/main.tf b/internal/aws/logs/testdata/LogGroup/providerMetaWithModule/demo-module/main.tf index ecf9d76231..d21850d644 100644 --- a/internal/aws/logs/testdata/LogGroup/providerMetaWithModule/demo-module/main.tf +++ b/internal/aws/logs/testdata/LogGroup/providerMetaWithModule/demo-module/main.tf @@ -1,3 +1,6 @@ +# Copyright IBM Corp. 2021, 2025 +# SPDX-License-Identifier: MPL-2.0 + terraform { # custom provider_meta which should appear appended to user agent provider_meta "awscc" { diff --git a/internal/aws/logs/testdata/LogGroup/providerMetaWithModule/main.tf b/internal/aws/logs/testdata/LogGroup/providerMetaWithModule/main.tf index 9f238328f1..5f523f1a03 100644 --- a/internal/aws/logs/testdata/LogGroup/providerMetaWithModule/main.tf +++ b/internal/aws/logs/testdata/LogGroup/providerMetaWithModule/main.tf @@ -1,3 +1,6 @@ +# Copyright IBM Corp. 2021, 2025 +# SPDX-License-Identifier: MPL-2.0 + module "demo-module" { source = "./demo-module" rName = var.rName diff --git a/test/main.tf b/test/main.tf index bd29a33067..d3c93ffbe4 100644 --- a/test/main.tf +++ b/test/main.tf @@ -1,4 +1,4 @@ -# Copyright (c) HashiCorp, Inc. +# Copyright IBM Corp. 2021, 2025 # SPDX-License-Identifier: MPL-2.0 terraform {