diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8f78ae3..3467674 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,10 +14,10 @@ jobs: - "1.22" steps: - name: Check out source code - uses: actions/checkout@v4 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - name: Set up Go - uses: actions/setup-go@v5 + uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b # v5 with: go-version: ${{ matrix.version }} diff --git a/.github/workflows/generate.yml b/.github/workflows/generate.yml index 59fb804..1552de8 100644 --- a/.github/workflows/generate.yml +++ b/.github/workflows/generate.yml @@ -14,10 +14,10 @@ jobs: - "1.22" steps: - name: Check out source code - uses: actions/checkout@v4 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - name: Set up Go - uses: actions/setup-go@v5 + uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b # v5 with: go-version: ${{ matrix.version }} diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 978c734..33d68cf 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -14,10 +14,10 @@ jobs: - "1.22" steps: - name: Check out source code - uses: actions/checkout@v4 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - name: Set up Go - uses: actions/setup-go@v5 + uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b # v5 with: go-version: ${{ matrix.version }} diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml index 2c2c3b5..b71effb 100644 --- a/.github/workflows/release-drafter.yml +++ b/.github/workflows/release-drafter.yml @@ -16,7 +16,7 @@ jobs: pull-requests: write runs-on: ubuntu-latest steps: - - uses: release-drafter/release-drafter@v5 + - uses: release-drafter/release-drafter@b1476f6e6eb133afa41ed8589daba6dc69b4d3f5 # v6 with: name: next tag: next diff --git a/.github/workflows/tidy.yml b/.github/workflows/tidy.yml index 7f68cdb..fff71a2 100644 --- a/.github/workflows/tidy.yml +++ b/.github/workflows/tidy.yml @@ -14,10 +14,10 @@ jobs: - "1.22" steps: - name: Check out source code - uses: actions/checkout@v4 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - name: Set up Go - uses: actions/setup-go@v5 + uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b # v5 with: go-version: ${{ matrix.version }} diff --git a/bindparam.go b/bindparam.go index 2daf378..df069c9 100644 --- a/bindparam.go +++ b/bindparam.go @@ -83,12 +83,12 @@ func BindStyledParameterWithOptions(style string, paramName string, value string // since prior to this refactoring, they always query unescaped. value, err = url.QueryUnescape(value) if err != nil { - return fmt.Errorf("error unescaping query parameter '%s': %v", paramName, err) + return fmt.Errorf("error unescaping query parameter '%s': %w", paramName, err) } case ParamLocationPath: value, err = url.PathUnescape(value) if err != nil { - return fmt.Errorf("error unescaping path parameter '%s': %v", paramName, err) + return fmt.Errorf("error unescaping path parameter '%s': %w", paramName, err) } default: // Headers and cookies aren't escaped. @@ -97,7 +97,7 @@ func BindStyledParameterWithOptions(style string, paramName string, value string // If the destination implements encoding.TextUnmarshaler we use it for binding if tu, ok := dest.(encoding.TextUnmarshaler); ok { if err := tu.UnmarshalText([]byte(value)); err != nil { - return fmt.Errorf("error unmarshaling '%s' text as %T: %s", value, dest, err) + return fmt.Errorf("error unmarshaling '%s' text as %T: %w", value, dest, err) } return nil @@ -124,7 +124,7 @@ func BindStyledParameterWithOptions(style string, paramName string, value string // Chop up the parameter into parts based on its style parts, err := splitStyledParameter(style, opts.Explode, false, paramName, value) if err != nil { - return fmt.Errorf("error splitting input '%s' into parts: %s", value, err) + return fmt.Errorf("error splitting input '%s' into parts: %w", value, err) } return bindSplitPartsToDestinationArray(parts, dest) @@ -287,7 +287,7 @@ func bindSplitPartsToDestinationStruct(paramName string, parts []string, explode jsonParam := "{" + strings.Join(fields, ",") + "}" err := json.Unmarshal([]byte(jsonParam), dest) if err != nil { - return fmt.Errorf("error binding parameter %s fields: %s", paramName, err) + return fmt.Errorf("error binding parameter %s fields: %w", paramName, err) } return nil } diff --git a/bindstring.go b/bindstring.go index c88fdc2..764036d 100644 --- a/bindstring.go +++ b/bindstring.go @@ -100,7 +100,7 @@ func BindStringToObject(src string, dst interface{}) error { case reflect.Array: if tu, ok := dst.(encoding.TextUnmarshaler); ok { if err := tu.UnmarshalText([]byte(src)); err != nil { - return fmt.Errorf("error unmarshaling '%s' text as %T: %s", src, dst, err) + return fmt.Errorf("error unmarshaling '%s' text as %T: %w", src, dst, err) } return nil @@ -122,7 +122,7 @@ func BindStringToObject(src string, dst interface{}) error { if err != nil { parsedTime, err = time.Parse(types.DateFormat, src) if err != nil { - return fmt.Errorf("error parsing '%s' as RFC3339 or 2006-01-02 time: %s", src, err) + return fmt.Errorf("error parsing '%s' as RFC3339 or 2006-01-02 time: %w", src, err) } } // So, assigning this gets a little fun. We have a value to the @@ -145,7 +145,7 @@ func BindStringToObject(src string, dst interface{}) error { } parsedTime, err := time.Parse(types.DateFormat, src) if err != nil { - return fmt.Errorf("error parsing '%s' as date: %s", src, err) + return fmt.Errorf("error parsing '%s' as date: %w", src, err) } parsedDate := types.Date{Time: parsedTime} diff --git a/deepobject.go b/deepobject.go index 7ec2f02..588465c 100644 --- a/deepobject.go +++ b/deepobject.go @@ -258,7 +258,7 @@ func assignPathValues(dst interface{}, pathValues fieldOrValue) error { // TODO: why is this marked as an ineffassign? tm, err = time.Parse(types.DateFormat, pathValues.value) //nolint:ineffassign,staticcheck if err != nil { - return fmt.Errorf("error parsing '%s' as RFC3339 or 2006-01-02 time: %s", pathValues.value, err) + return fmt.Errorf("error parsing '%s' as RFC3339 or 2006-01-02 time: %w", pathValues.value, err) } return fmt.Errorf("invalid date format: %w", err) } diff --git a/go.mod b/go.mod index 8bcdd58..df6f808 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/google/uuid v1.5.0 github.com/kataras/iris/v12 v12.2.6-0.20230908161203-24ba4e8933b9 github.com/labstack/echo/v4 v4.11.4 - github.com/stretchr/testify v1.8.4 + github.com/stretchr/testify v1.10.0 ) require ( diff --git a/go.sum b/go.sum index fa19a22..a77dcfe 100644 --- a/go.sum +++ b/go.sum @@ -146,8 +146,9 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tdewolff/minify/v2 v2.12.9 h1:dvn5MtmuQ/DFMwqf5j8QhEVpPX6fi3WGImhv8RUB4zA= github.com/tdewolff/minify/v2 v2.12.9/go.mod h1:qOqdlDfL+7v0/fyymB+OP497nIxJYSvX4MQWA8OoiXU= github.com/tdewolff/parse/v2 v2.6.8 h1:mhNZXYCx//xG7Yq2e/kVLNZw4YfYmeHbhx+Zc0OvFMA= diff --git a/styleparam.go b/styleparam.go index 3d2946f..8491c85 100644 --- a/styleparam.go +++ b/styleparam.go @@ -80,7 +80,7 @@ func StyleParamWithLocation(style string, explode bool, paramName string, paramL if !convertableToTime && !convertableToDate { b, err := tu.MarshalText() if err != nil { - return "", fmt.Errorf("error marshaling '%s' as text: %s", value, err) + return "", fmt.Errorf("error marshaling '%s' as text: %w", value, err) } return stylePrimitive(style, explode, paramName, paramLocation, string(b)) @@ -166,7 +166,7 @@ func styleSlice(style string, explode bool, paramName string, paramLocation Para part = escapeParameterString(part, paramLocation) parts[i] = part if err != nil { - return "", fmt.Errorf("error formatting '%s': %s", paramName, err) + return "", fmt.Errorf("error formatting '%s': %w", paramName, err) } } return prefix + strings.Join(parts, separator), nil @@ -274,7 +274,7 @@ func styleStruct(style string, explode bool, paramName string, paramLocation Par } str, err := primitiveToString(f.Interface()) if err != nil { - return "", fmt.Errorf("error formatting '%s': %s", paramName, err) + return "", fmt.Errorf("error formatting '%s': %w", paramName, err) } fieldDict[fieldName] = str } @@ -295,7 +295,7 @@ func styleMap(style string, explode bool, paramName string, paramLocation ParamL for _, fieldName := range v.MapKeys() { str, err := primitiveToString(v.MapIndex(fieldName).Interface()) if err != nil { - return "", fmt.Errorf("error formatting '%s': %s", paramName, err) + return "", fmt.Errorf("error formatting '%s': %w", paramName, err) } fieldDict[fieldName.String()] = str }