Skip to content

Commit aa7f420

Browse files
committed
fix(blocked): bubble up errors when checking version constraints
As reported in #39, if a version constraint is invalid gomodguard ignores it. This changes ensures errors with semver contraints are bubbled up as lint errors. Added test coverage for this.
1 parent 94ec80a commit aa7f420

21 files changed

+498
-135
lines changed

.golangci.yml

Lines changed: 29 additions & 108 deletions
Original file line numberDiff line numberDiff line change
@@ -1,111 +1,32 @@
11
# See https://golangci-lint.run/usage/configuration/
2-
3-
linters-settings:
4-
revive:
5-
# see https://github.com/mgechev/revive#available-rules for details.
6-
ignore-generated-header: true
7-
severity: warning
8-
rules:
9-
- name: atomic
10-
- name: blank-imports
11-
- name: bool-literal-in-expr
12-
- name: call-to-gc
13-
- name: confusing-naming
14-
- name: confusing-results
15-
- name: constant-logical-expr
16-
- name: context-as-argument
17-
- name: context-keys-type
18-
- name: deep-exit
19-
- name: defer
20-
- name: dot-imports
21-
- name: duplicated-imports
22-
- name: early-return
23-
- name: empty-block
24-
- name: empty-lines
25-
- name: error-naming
26-
- name: error-return
27-
- name: error-strings
28-
- name: errorf
29-
- name: exported
30-
- name: get-return
31-
- name: identical-branches
32-
- name: if-return
33-
- name: import-shadowing
34-
- name: increment-decrement
35-
- name: indent-error-flow
36-
- name: modifies-parameter
37-
- name: modifies-value-receiver
38-
- name: package-comments
39-
- name: range
40-
- name: range-val-address
41-
- name: range-val-in-closure
42-
- name: receiver-naming
43-
- name: redefines-builtin-id
44-
- name: string-of-int
45-
- name: struct-tag
46-
- name: superfluous-else
47-
- name: time-naming
48-
- name: unconditional-recursion
49-
- name: unexported-naming
50-
- name: unexported-return
51-
- name: unnecessary-stmt
52-
- name: unreachable-code
53-
- name: unused-parameter
54-
- name: var-declaration
55-
- name: var-naming
56-
- name: waitgroup-by-value
57-
582
linters:
59-
disable-all: true
60-
enable:
61-
- asciicheck
62-
- bodyclose
63-
- dogsled
64-
- dupl
65-
- durationcheck
66-
- errcheck
67-
- errorlint
68-
- exhaustive
69-
- exportloopref
70-
- forcetypeassert
71-
- funlen
72-
- gochecknoinits
73-
- gocognit
74-
- goconst
75-
- gocritic
76-
- gocyclo
77-
- godot
78-
- godox
79-
- goimports
80-
- gomoddirectives
81-
- gomodguard
82-
- goprintffuncname
83-
- gosec
84-
- gosimple
85-
- govet
86-
- importas
87-
- ineffassign
3+
enable-all: true
4+
disable:
885
- lll
89-
- makezero
90-
- misspell
91-
- nakedret
92-
- nestif
93-
- nilerr
94-
- noctx
95-
- nolintlint
96-
- prealloc
97-
- predeclared
98-
- revive
99-
- rowserrcheck
100-
- sqlclosecheck
101-
- staticcheck
102-
- stylecheck
103-
- testpackage
104-
- thelper
105-
- tparallel
106-
- typecheck
107-
- unconvert
108-
- unparam
109-
- unused
110-
- whitespace
111-
- wsl
6+
- golint
7+
- deadcode
8+
- maligned
9+
- scopelint
10+
- nosnakecase
11+
- exhaustivestruct
12+
- ifshort
13+
- varcheck
14+
- structcheck
15+
- interfacer
16+
- gomodguard
17+
- gochecknoglobals
18+
- paralleltest
19+
- varnamelen
20+
- exhaustruct
21+
- gomnd
22+
- depguard
23+
- forbidigo
24+
- funlen
25+
- nlreturn
26+
- gofumpt
27+
- nonamedreturns
28+
- cyclop
29+
- goerr113
30+
- perfsprint
31+
- tagliatelle
32+
- wrapcheck

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ lint:
66

77
.PHONY: build
88
build:
9-
go build -o gomodguard cmd/gomodguard/main.go
9+
go build -o "$$(go env GOPATH)/bin/gomodguard" cmd/gomodguard/main.go
1010

1111
.PHONY: run
1212
run: build
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
blocked:
2+
modules:
3+
- gotest.tools/v3:
4+
recommendations:
5+
- github.com/stretchr/testify/assert
6+
reason: "We have standardized on `github.com/stretchr/testify/assert`."
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package example2
2+
3+
import (
4+
"testing"
5+
6+
"gotest.tools/v3/assert"
7+
)
8+
9+
func TestBlockedImport(t *testing.T) { //nolint
10+
assert.Equal(t, 1, 1)
11+
}

_example/emptyAllowList/go.mod

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
module github.com/ryancurrah/example/example2
2+
3+
go 1.21
4+
5+
require gotest.tools/v3 v3.5.1
6+
7+
require github.com/google/go-cmp v0.5.9 // indirect

_example/emptyAllowList/go.sum

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
2+
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
3+
gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU=
4+
gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU=
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
allowed:
2+
modules:
3+
- github.com/pborman/uuid
4+
domains:
5+
- golang.org
6+
blocked:
7+
modules:
8+
- github.com/uudashr/go-module: {}
9+
versions:
10+
- github.com/mitchellh/go-homedir:
11+
version: "<= 1.1.0"
12+
reason: "testing if blocked version constraint works."
13+
- cloud.google.com/go/compute:
14+
version: "!= 1.7.0"
15+
- sigs.k8s.io/kustomize/kyaml:
16+
version: "< 0.13.6"
17+
- sigs.k8s.io/kustomize/kyaml:
18+
version: "> 0.13.9"
19+
- sigs.k8s.io/structured-merge-diff/v4:
20+
version: "!= 4.2.1"
21+
- sigs.k8s.io/structured-merge-diff/v4:
22+
version: "!= 4.2.3"
23+
- sigs.k8s.io/yaml:
24+
version: "!= 1.3.0"
25+
- github.com/gin-gonic/gin:
26+
version: "== 1.9.1"
27+
domains: []
28+
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package example2
2+
3+
import (
4+
"errors"
5+
"testing"
6+
7+
"github.com/gin-gonic/gin"
8+
"gotest.tools/v3/assert"
9+
)
10+
11+
func TestBlockedImport(t *testing.T) { //nolint
12+
assert.Equal(t, errors.New("test"), gin.ErrorTypeBind)
13+
}

_example/invalidConstraint/go.mod

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
module github.com/ryancurrah/example/example3
2+
3+
go 1.21
4+
5+
require (
6+
github.com/gin-gonic/gin v1.9.1
7+
gotest.tools/v3 v3.5.1
8+
)
9+
10+
require (
11+
github.com/bytedance/sonic v1.9.1 // indirect
12+
github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 // indirect
13+
github.com/gabriel-vasile/mimetype v1.4.2 // indirect
14+
github.com/gin-contrib/sse v0.1.0 // indirect
15+
github.com/go-playground/locales v0.14.1 // indirect
16+
github.com/go-playground/universal-translator v0.18.1 // indirect
17+
github.com/go-playground/validator/v10 v10.14.0 // indirect
18+
github.com/goccy/go-json v0.10.2 // indirect
19+
github.com/google/go-cmp v0.5.9 // indirect
20+
github.com/json-iterator/go v1.1.12 // indirect
21+
github.com/klauspost/cpuid/v2 v2.2.4 // indirect
22+
github.com/leodido/go-urn v1.2.4 // indirect
23+
github.com/mattn/go-isatty v0.0.19 // indirect
24+
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
25+
github.com/modern-go/reflect2 v1.0.2 // indirect
26+
github.com/pelletier/go-toml/v2 v2.0.8 // indirect
27+
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
28+
github.com/ugorji/go/codec v1.2.11 // indirect
29+
golang.org/x/arch v0.3.0 // indirect
30+
golang.org/x/crypto v0.9.0 // indirect
31+
golang.org/x/net v0.10.0 // indirect
32+
golang.org/x/sys v0.8.0 // indirect
33+
golang.org/x/text v0.9.0 // indirect
34+
google.golang.org/protobuf v1.30.0 // indirect
35+
gopkg.in/yaml.v3 v3.0.1 // indirect
36+
)

_example/invalidConstraint/go.sum

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM=
2+
github.com/bytedance/sonic v1.9.1 h1:6iJ6NqdoxCDr6mbY8h18oSO+cShGSMRGCEo7F2h0x8s=
3+
github.com/bytedance/sonic v1.9.1/go.mod h1:i736AoUSYt75HyZLoJW9ERYxcy6eaN6h4BZXU064P/U=
4+
github.com/chenzhuoyu/base64x v0.0.0-20211019084208-fb5309c8db06/go.mod h1:DH46F32mSOjUmXrMHnKwZdA8wcEefY7UVqBKYGjpdQY=
5+
github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 h1:qSGYFH7+jGhDF8vLC+iwCD4WpbV1EBDSzWkJODFLams=
6+
github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311/go.mod h1:b583jCggY9gE99b6G5LEC39OIiVsWj+R97kbl5odCEk=
7+
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
8+
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
9+
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
10+
github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU=
11+
github.com/gabriel-vasile/mimetype v1.4.2/go.mod h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA=
12+
github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE=
13+
github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI=
14+
github.com/gin-gonic/gin v1.9.1 h1:4idEAncQnU5cB7BeOkPtxjfCSye0AAm1R0RVIqJ+Jmg=
15+
github.com/gin-gonic/gin v1.9.1/go.mod h1:hPrL7YrpYKXt5YId3A/Tnip5kqbEAP+KLuI3SUcPTeU=
16+
github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s=
17+
github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4=
18+
github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA=
19+
github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY=
20+
github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY=
21+
github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY=
22+
github.com/go-playground/validator/v10 v10.14.0 h1:vgvQWe3XCz3gIeFDm/HnTIbj6UGmg/+t63MyGU2n5js=
23+
github.com/go-playground/validator/v10 v10.14.0/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU=
24+
github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU=
25+
github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
26+
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
27+
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
28+
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
29+
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
30+
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
31+
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
32+
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
33+
github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
34+
github.com/klauspost/cpuid/v2 v2.2.4 h1:acbojRNwl3o09bUq+yDCtZFc1aiwaAAxtcn8YkZXnvk=
35+
github.com/klauspost/cpuid/v2 v2.2.4/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY=
36+
github.com/leodido/go-urn v1.2.4 h1:XlAE/cm/ms7TE/VMVoduSpNBoyc2dOxHs5MZSwAN63Q=
37+
github.com/leodido/go-urn v1.2.4/go.mod h1:7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNaVckg+4=
38+
github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA=
39+
github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
40+
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
41+
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
42+
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
43+
github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
44+
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
45+
github.com/pelletier/go-toml/v2 v2.0.8 h1:0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZR9tGQ=
46+
github.com/pelletier/go-toml/v2 v2.0.8/go.mod h1:vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4=
47+
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
48+
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
49+
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
50+
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
51+
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
52+
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
53+
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
54+
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
55+
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
56+
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
57+
github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
58+
github.com/stretchr/testify v1.8.3 h1:RP3t2pwF7cMEbC1dqtB6poj3niw/9gnV4Cjg5oW5gtY=
59+
github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
60+
github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI=
61+
github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08=
62+
github.com/ugorji/go/codec v1.2.11 h1:BMaWp1Bb6fHwEtbplGBGJ498wD+LKlNSl25MjdZY4dU=
63+
github.com/ugorji/go/codec v1.2.11/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg=
64+
golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8=
65+
golang.org/x/arch v0.3.0 h1:02VY4/ZcO/gBOH6PUaoiptASxtXU10jazRCP865E97k=
66+
golang.org/x/arch v0.3.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8=
67+
golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g=
68+
golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0=
69+
golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M=
70+
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
71+
golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
72+
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
73+
golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU=
74+
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
75+
golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE=
76+
golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
77+
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
78+
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
79+
google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng=
80+
google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
81+
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
82+
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
83+
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
84+
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
85+
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
86+
gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU=
87+
gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU=
88+
rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=

blocked.go

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import (
44
"fmt"
55
"strings"
66

7-
"github.com/Masterminds/semver"
7+
"github.com/Masterminds/semver/v3"
88
)
99

1010
// Blocked is a list of modules that are
@@ -15,32 +15,30 @@ type Blocked struct {
1515
LocalReplaceDirectives bool `yaml:"local_replace_directives"`
1616
}
1717

18-
// BlockedVersion has a version constraint a reason why the the module version is blocked.
18+
// BlockedVersion has a version constraint a reason why the module version is blocked.
1919
type BlockedVersion struct {
2020
Version string `yaml:"version"`
2121
Reason string `yaml:"reason"`
2222
}
2323

2424
// IsLintedModuleVersionBlocked returns true if a version constraint is specified and the
2525
// linted module version matches the constraint.
26-
func (r *BlockedVersion) IsLintedModuleVersionBlocked(lintedModuleVersion string) bool {
26+
func (r *BlockedVersion) IsLintedModuleVersionBlocked(lintedModuleVersion string) (bool, error) {
2727
if r.Version == "" {
28-
return false
28+
return false, nil
2929
}
3030

3131
constraint, err := semver.NewConstraint(r.Version)
3232
if err != nil {
33-
return false
33+
return true, err
3434
}
3535

3636
version, err := semver.NewVersion(lintedModuleVersion)
3737
if err != nil {
38-
return false
38+
return true, err
3939
}
4040

41-
meet := constraint.Check(version)
42-
43-
return meet
41+
return constraint.Check(version), nil
4442
}
4543

4644
// Message returns the reason why the module version is blocked.

0 commit comments

Comments
 (0)