Skip to content

Commit 5d7ddad

Browse files
committed
build: Expand golangci linters
Signed-off-by: Paulo Gomes <[email protected]>
1 parent beb7e56 commit 5d7ddad

File tree

7 files changed

+93
-102
lines changed

7 files changed

+93
-102
lines changed

.golangci.yaml

Lines changed: 18 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -1,74 +1,21 @@
1+
run:
2+
concurrency: 3
3+
timeout: 4m
4+
15
linters:
2-
disable-all: true
3-
enable:
4-
- asasalint
5-
- asciicheck
6-
- bidichk
7-
- bodyclose
8-
- containedctx
9-
- contextcheck
10-
- decorder
11-
- dogsled
12-
- dupl
13-
- dupword
14-
- durationcheck
15-
- errcheck
16-
- errchkjson
17-
- errname
18-
- errorlint
6+
enable-all: true
7+
disable:
8+
- depguard
9+
- err113
1910
- execinquery
20-
- exhaustive
11+
- exhaustruct
2112
- exportloopref
22-
- forcetypeassert
23-
- ginkgolinter
24-
- gocheckcompilerdirectives
25-
- gochecknoinits
26-
- gochecksumtype
27-
- goconst
28-
- gofmt
29-
- goheader
30-
- goimports
31-
- gomodguard
32-
- goprintffuncname
33-
- gosec
34-
- gosimple
35-
- gosmopolitan
36-
- govet
37-
- grouper
38-
- importas
39-
- ineffassign
40-
- loggercheck
41-
- makezero
42-
- mirror
43-
- misspell
44-
- nakedret
45-
- nestif
46-
- nilerr
47-
- nilnil
48-
- noctx
49-
- nolintlint
50-
- nosprintfhostport
51-
- prealloc
52-
- predeclared
53-
- promlinter
54-
- reassign
55-
- revive
56-
- rowserrcheck
57-
- sloglint
58-
- spancheck
59-
- sqlclosecheck
60-
- stylecheck
61-
- tagalign
62-
- tagliatelle
63-
- tenv
64-
- testableexamples
65-
- testifylint
66-
- thelper
67-
- typecheck
68-
- unconvert
69-
- unparam
70-
- unused
71-
- usestdlibvars
72-
- wastedassign
73-
- whitespace
74-
- zerologlint
13+
- funlen
14+
- gomnd
15+
- ireturn
16+
- mnd
17+
- varnamelen
18+
- wrapcheck
19+
- wsl
20+
21+
linters-settings:

fixtures.go

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,13 @@ import (
1313
"github.com/go-git/go-git-fixtures/v5/internal/tgz"
1414
)
1515

16+
//nolint:gochecknoglobals
1617
var Filesystem = embedfs.New(&data)
1718

1819
//go:embed data
1920
var data embed.FS
2021

22+
//nolint:gochecknoglobals
2123
var fixtures = Fixtures{{
2224
Tags: []string{"packfile", "ofs-delta", ".git", "root-reference"},
2325
URL: "https://github.com/git-fixtures/root-references.git",
@@ -144,12 +146,14 @@ var fixtures = Fixtures{{
144146
Tags: []string{"worktree", "dirty"},
145147
WorktreeHash: "7203669c66103305e56b9dcdf940a7fbeb515f28",
146148
}, {
147-
Tags: []string{"packfile", "standalone"}, // standalone packfile that does not have any dependencies nor is part of any other fixture repo
149+
// standalone packfile that does not have any dependencies nor is part of any other fixture repo.
150+
Tags: []string{"packfile", "standalone"},
148151
PackfileHash: "3638209d310e10ea8d90c362d568be65dd5e03a6",
149152
}, {
150-
Tags: []string{"thinpack"}, // adds commit on top of spinnaker fixture 06ce06d0fc49646c4de733c45b7788aabad98a6f via a thin pack
153+
// adds commit on top of spinnaker fixture 06ce06d0fc49646c4de733c45b7788aabad98a6f via a thin pack.
154+
Tags: []string{"thinpack"},
151155
PackfileHash: "ee4fef0ef8be5053ebae4ce75acf062ddf3031fb",
152-
Head: "ee372bb08322c1e6e7c6c4f953cc6bf72784e7fb", // the thin pack adds this commit
156+
Head: "ee372bb08322c1e6e7c6c4f953cc6bf72784e7fb", // the thin pack adds this commit.
153157
}, {
154158
Tags: []string{"merge-base"},
155159
DotGitHash: "26baa505b9f6fb2024b9999c140b75514718c988",
@@ -264,6 +268,7 @@ func (f *Fixture) DotGit(opts ...Option) billy.Filesystem {
264268

265269
if f.DotGitHash == "" && f.WorktreeHash != "" {
266270
fs, _ := f.Worktree(opts...).Chroot(".git")
271+
267272
return fs
268273
}
269274

@@ -288,7 +293,7 @@ func (f *Fixture) DotGit(opts ...Option) billy.Filesystem {
288293
// EnsureIsBare overrides the config file with one where bare is true.
289294
func EnsureIsBare(fs billy.Filesystem) error {
290295
if _, err := fs.Stat("config"); err != nil {
291-
fmt.Printf("not .git folder: %s\n", err)
296+
return fmt.Errorf("not .git folder: %w", err)
292297
}
293298

294299
cfg, err := fs.OpenFile("config", os.O_TRUNC|os.O_WRONLY, 0)
@@ -308,6 +313,7 @@ func EnsureIsBare(fs billy.Filesystem) error {
308313
)
309314

310315
_, err = io.Copy(cfg, content)
316+
311317
return err
312318
}
313319

@@ -352,6 +358,7 @@ func (g Fixtures) One() *Fixture {
352358
if len(g) == 0 {
353359
return nil
354360
}
361+
355362
return g[0]
356363
}
357364

fixtures_test.go

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,32 @@
1-
package fixtures
1+
package fixtures_test
22

33
import (
44
"testing"
55

6+
fixtures "github.com/go-git/go-git-fixtures/v5"
67
"github.com/stretchr/testify/assert"
78
"github.com/stretchr/testify/require"
89
)
910

1011
func TestDotGit(t *testing.T) {
1112
t.Parallel()
1213

13-
fs := Basic().One().DotGit(WithTargetDir(t.TempDir))
14+
fs := fixtures.Basic().One().DotGit(fixtures.WithTargetDir(t.TempDir))
1415
files, err := fs.ReadDir("/")
1516
require.NoError(t, err)
1617
assert.Greater(t, len(files), 1)
1718

18-
fs = Basic().One().DotGit(WithMemFS())
19+
fs = fixtures.Basic().One().DotGit(fixtures.WithMemFS())
1920
files, err = fs.ReadDir("/")
2021
require.NoError(t, err)
2122
assert.Greater(t, len(files), 1)
2223
}
2324

25+
//nolint:cyclop
2426
func TestEmbeddedFiles(t *testing.T) {
2527
t.Parallel()
2628

27-
for i, f := range fixtures {
29+
for i, f := range fixtures.All() {
2830
if f.PackfileHash != "" {
2931
if f.Packfile() == nil {
3032
assert.Fail(t, "failed to get pack file", i)
@@ -36,21 +38,21 @@ func TestEmbeddedFiles(t *testing.T) {
3638
}
3739

3840
if f.WorktreeHash != "" {
39-
if f.Worktree(WithMemFS()) == nil {
41+
if f.Worktree(fixtures.WithMemFS()) == nil {
4042
assert.Fail(t, "[mem] failed to get worktree", i)
4143
}
4244

43-
if f.Worktree(WithTargetDir(t.TempDir)) == nil {
45+
if f.Worktree(fixtures.WithTargetDir(t.TempDir)) == nil {
4446
assert.Fail(t, "[tempdir] failed to get worktree", i)
4547
}
4648
}
4749

4850
if f.DotGitHash != "" {
49-
if f.DotGit(WithMemFS()) == nil {
51+
if f.DotGit(fixtures.WithMemFS()) == nil {
5052
assert.Fail(t, "[mem] failed to get dotgit", i)
5153
}
5254

53-
if f.DotGit(WithTargetDir(t.TempDir)) == nil {
55+
if f.DotGit(fixtures.WithTargetDir(t.TempDir)) == nil {
5456
assert.Fail(t, "[tempdir] failed to get dotgit", i)
5557
}
5658
}
@@ -60,7 +62,7 @@ func TestEmbeddedFiles(t *testing.T) {
6062
func TestRevFiles(t *testing.T) {
6163
t.Parallel()
6264

63-
f := ByTag("packfile-sha256").One()
65+
f := fixtures.ByTag("packfile-sha256").One()
6466

6567
assert.NotNil(t, f)
6668
assert.NotNil(t, f.Rev(), "failed to get rev file")

internal/embedfs/embed.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ type Embed struct {
2020
underlying *embed.FS
2121
}
2222

23-
func New(efs *embed.FS) billy.Filesystem {
23+
func New(efs *embed.FS) *Embed {
2424
fs := &Embed{
2525
underlying: efs,
2626
}
@@ -41,6 +41,7 @@ func (fs *Embed) Stat(filename string) (os.FileInfo, error) {
4141
if err != nil {
4242
return nil, err
4343
}
44+
4445
return f.Stat()
4546
}
4647

@@ -74,6 +75,7 @@ func (fs *Embed) OpenFile(filename string, flag int, _ os.FileMode) (billy.File,
7475

7576
// Only load the bytes to memory if the files is needed.
7677
lazyFunc := func() *bytes.Reader { return bytes.NewReader(data) }
78+
7779
return toFile(lazyFunc, fi), nil
7880
}
7981

@@ -84,9 +86,11 @@ func (fs *Embed) Join(elem ...string) string {
8486
for i, el := range elem {
8587
if el != "" {
8688
clean := filepath.Clean(strings.Join(elem[i:], "/"))
89+
8790
return filepath.ToSlash(clean)
8891
}
8992
}
93+
9094
return ""
9195
}
9296

internal/embedfs/embed_test.go

Lines changed: 30 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package embedfs
1+
package embedfs_test
22

33
import (
44
"embed"
@@ -8,6 +8,7 @@ import (
88
"testing"
99

1010
"github.com/go-git/go-billy/v5"
11+
"github.com/go-git/go-git-fixtures/v5/internal/embedfs"
1112
"github.com/stretchr/testify/assert"
1213
"github.com/stretchr/testify/require"
1314
)
@@ -18,6 +19,7 @@ var singleFile embed.FS
1819
//go:embed testdata
1920
var testdataDir embed.FS
2021

22+
//nolint:gochecknoglobals
2123
var empty embed.FS
2224

2325
func TestOpen(t *testing.T) {
@@ -43,8 +45,11 @@ func TestOpen(t *testing.T) {
4345
}
4446

4547
for _, tc := range tests {
48+
tc := tc
4649
t.Run(tc.name, func(t *testing.T) {
47-
fs := New(&testdataDir)
50+
t.Parallel()
51+
52+
fs := embedfs.New(&testdataDir)
4853

4954
var got []byte
5055
f, err := fs.Open(tc.name)
@@ -114,8 +119,11 @@ func TestOpenFileFlags(t *testing.T) {
114119
}
115120

116121
for _, tc := range tests {
122+
tc := tc
117123
t.Run(tc.name, func(t *testing.T) {
118-
fs := New(&testdataDir)
124+
t.Parallel()
125+
126+
fs := embedfs.New(&testdataDir)
119127

120128
_, err := fs.OpenFile(tc.file, tc.flag, 0o700)
121129
if tc.wantErr != "" {
@@ -156,8 +164,11 @@ func TestStat(t *testing.T) {
156164
}
157165

158166
for _, tc := range tests {
167+
tc := tc
159168
t.Run(tc.name, func(t *testing.T) {
160-
fs := New(&testdataDir)
169+
t.Parallel()
170+
171+
fs := embedfs.New(&testdataDir)
161172

162173
fi, err := fs.Stat(tc.name)
163174
if tc.wantErr {
@@ -212,8 +223,11 @@ func TestReadDir(t *testing.T) {
212223
}
213224

214225
for _, tc := range tests {
226+
tc := tc
215227
t.Run(tc.name, func(t *testing.T) {
216-
fs := New(tc.fs)
228+
t.Parallel()
229+
230+
fs := embedfs.New(tc.fs)
217231

218232
fis, err := fs.ReadDir(tc.path)
219233
if tc.wantErr {
@@ -241,7 +255,7 @@ func TestReadDir(t *testing.T) {
241255
func TestUnsupported(t *testing.T) {
242256
t.Parallel()
243257

244-
fs := New(&testdataDir)
258+
fs := embedfs.New(&testdataDir)
245259

246260
_, err := fs.Create("test")
247261
require.ErrorIs(t, err, billy.ErrReadOnly)
@@ -259,7 +273,7 @@ func TestUnsupported(t *testing.T) {
259273
func TestFileUnsupported(t *testing.T) {
260274
t.Parallel()
261275

262-
fs := New(&testdataDir)
276+
fs := embedfs.New(&testdataDir)
263277

264278
f, err := fs.Open("testdata/empty.txt")
265279
require.NoError(t, err)
@@ -272,8 +286,9 @@ func TestFileUnsupported(t *testing.T) {
272286
require.ErrorIs(t, err, billy.ErrReadOnly)
273287
}
274288

289+
//nolint:paralleltest
275290
func TestFileSeek(t *testing.T) {
276-
fs := New(&testdataDir)
291+
fs := embedfs.New(&testdataDir)
277292

278293
f, err := fs.Open("testdata/empty2.txt")
279294
require.NoError(t, err)
@@ -295,6 +310,7 @@ func TestFileSeek(t *testing.T) {
295310
}
296311

297312
for i, tc := range tests {
313+
tc := tc
298314
t.Run(fmt.Sprintf("#%d", i), func(t *testing.T) {
299315
_, err = f.Seek(tc.seekOff, tc.seekWhence)
300316
require.NoError(t, err)
@@ -309,6 +325,8 @@ func TestFileSeek(t *testing.T) {
309325
}
310326

311327
func TestJoin(t *testing.T) {
328+
t.Parallel()
329+
312330
tests := []struct {
313331
name string
314332
path []string
@@ -337,8 +355,11 @@ func TestJoin(t *testing.T) {
337355
}
338356

339357
for _, tc := range tests {
358+
tc := tc
340359
t.Run(tc.name, func(t *testing.T) {
341-
fs := New(&empty)
360+
t.Parallel()
361+
362+
fs := embedfs.New(&empty)
342363

343364
got := fs.Join(tc.path...)
344365
assert.Equal(t, tc.want, got)

0 commit comments

Comments
 (0)