Skip to content

Commit 8ddf075

Browse files
committed
Fix golangci-lint errors (errcheck, staticcheck, unused)
1 parent e35394b commit 8ddf075

6 files changed

Lines changed: 81 additions & 76 deletions

File tree

internal/database/database_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -693,7 +693,7 @@ func TestMigrationFromOldSchema(t *testing.T) {
693693
t.Errorf("GetPackageByEcosystemName failed after migration: %v", err)
694694
}
695695
if pkg == nil {
696-
t.Error("GetPackageByEcosystemName returned nil after migration")
696+
t.Fatal("GetPackageByEcosystemName returned nil after migration")
697697
}
698698
if pkg.Name != "test-package" {
699699
t.Errorf("expected package name test-package, got %s", pkg.Name)

internal/diff/diff.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import (
99
"sort"
1010
"strings"
1111

12-
"github.com/git-pkgs/proxy/internal/archive"
12+
"github.com/git-pkgs/archives"
1313
)
1414

1515
// FileDiff represents the diff for a single file.
@@ -34,7 +34,7 @@ type CompareResult struct {
3434
}
3535

3636
// Compare generates a diff between two archive readers.
37-
func Compare(oldReader, newReader archive.Reader) (*CompareResult, error) {
37+
func Compare(oldReader, newReader archives.Reader) (*CompareResult, error) {
3838
// Get file listings
3939
oldFiles, err := oldReader.List()
4040
if err != nil {
@@ -47,8 +47,8 @@ func Compare(oldReader, newReader archive.Reader) (*CompareResult, error) {
4747
}
4848

4949
// Create maps for quick lookup
50-
oldMap := make(map[string]archive.FileInfo)
51-
newMap := make(map[string]archive.FileInfo)
50+
oldMap := make(map[string]archives.FileInfo)
51+
newMap := make(map[string]archives.FileInfo)
5252

5353
for _, f := range oldFiles {
5454
if !f.IsDir {
@@ -151,12 +151,12 @@ func Compare(oldReader, newReader archive.Reader) (*CompareResult, error) {
151151
}
152152

153153
// readFileContent reads a file's content from an archive reader.
154-
func readFileContent(reader archive.Reader, path string) ([]byte, error) {
154+
func readFileContent(reader archives.Reader, path string) ([]byte, error) {
155155
rc, err := reader.Extract(path)
156156
if err != nil {
157157
return nil, err
158158
}
159-
defer rc.Close()
159+
defer func() { _ = rc.Close() }()
160160

161161
return io.ReadAll(rc)
162162
}
@@ -286,7 +286,7 @@ func generateSimpleDiff(path string, oldContent, newContent []byte) (string, int
286286
// generateAddedDiff generates a diff for a newly added file.
287287
func generateAddedDiff(path string, content []byte) string {
288288
var buf strings.Builder
289-
buf.WriteString(fmt.Sprintf("--- /dev/null\n"))
289+
buf.WriteString("--- /dev/null\n")
290290
buf.WriteString(fmt.Sprintf("+++ b/%s\n", path))
291291

292292
lines := bytes.Split(content, []byte("\n"))

internal/diff/diff_test.go

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77
"strings"
88
"testing"
99

10-
"github.com/git-pkgs/proxy/internal/archive"
10+
"github.com/git-pkgs/archives"
1111
)
1212

1313
func createTestArchiveWithFiles(files map[string]string) []byte {
@@ -21,12 +21,12 @@ func createTestArchiveWithFiles(files map[string]string) []byte {
2121
Size: int64(len(content)),
2222
Mode: 0644,
2323
}
24-
tw.WriteHeader(header)
25-
tw.Write([]byte(content))
24+
_ = tw.WriteHeader(header)
25+
_, _ = tw.Write([]byte(content))
2626
}
2727

28-
tw.Close()
29-
gw.Close()
28+
_ = tw.Close()
29+
_ = gw.Close()
3030
return buf.Bytes()
3131
}
3232

@@ -44,17 +44,17 @@ func TestCompare(t *testing.T) {
4444
"added.txt": "this is new",
4545
}
4646

47-
oldArchive, err := archive.Open("old.tar.gz", bytes.NewReader(createTestArchiveWithFiles(oldFiles)))
47+
oldArchive, err := archives.Open("old.tar.gz", bytes.NewReader(createTestArchiveWithFiles(oldFiles)))
4848
if err != nil {
4949
t.Fatalf("failed to open old archive: %v", err)
5050
}
51-
defer oldArchive.Close()
51+
defer func() { _ = oldArchive.Close() }()
5252

53-
newArchive, err := archive.Open("new.tar.gz", bytes.NewReader(createTestArchiveWithFiles(newFiles)))
53+
newArchive, err := archives.Open("new.tar.gz", bytes.NewReader(createTestArchiveWithFiles(newFiles)))
5454
if err != nil {
5555
t.Fatalf("failed to open new archive: %v", err)
5656
}
57-
defer newArchive.Close()
57+
defer func() { _ = newArchive.Close() }()
5858

5959
// Compare
6060
result, err := Compare(oldArchive, newArchive)
@@ -200,11 +200,11 @@ func TestCompareIdentical(t *testing.T) {
200200
"main.go": "package main\n",
201201
}
202202

203-
archive1, _ := archive.Open("test1.tar.gz", bytes.NewReader(createTestArchiveWithFiles(files)))
204-
defer archive1.Close()
203+
archive1, _ := archives.Open("test1.tar.gz", bytes.NewReader(createTestArchiveWithFiles(files)))
204+
defer func() { _ = archive1.Close() }()
205205

206-
archive2, _ := archive.Open("test2.tar.gz", bytes.NewReader(createTestArchiveWithFiles(files)))
207-
defer archive2.Close()
206+
archive2, _ := archives.Open("test2.tar.gz", bytes.NewReader(createTestArchiveWithFiles(files)))
207+
defer func() { _ = archive2.Close() }()
208208

209209
result, err := Compare(archive1, archive2)
210210
if err != nil {
@@ -229,11 +229,11 @@ func TestCompareBinaryFiles(t *testing.T) {
229229
"image.png": string([]byte{0x89, 0x50, 0x4E, 0x47, 0x01}), // Different binary
230230
}
231231

232-
oldArchive, _ := archive.Open("old.tar.gz", bytes.NewReader(createTestArchiveWithFiles(oldFiles)))
233-
defer oldArchive.Close()
232+
oldArchive, _ := archives.Open("old.tar.gz", bytes.NewReader(createTestArchiveWithFiles(oldFiles)))
233+
defer func() { _ = oldArchive.Close() }()
234234

235-
newArchive, _ := archive.Open("new.tar.gz", bytes.NewReader(createTestArchiveWithFiles(newFiles)))
236-
defer newArchive.Close()
235+
newArchive, _ := archives.Open("new.tar.gz", bytes.NewReader(createTestArchiveWithFiles(newFiles)))
236+
defer func() { _ = newArchive.Close() }()
237237

238238
result, err := Compare(oldArchive, newArchive)
239239
if err != nil {

internal/server/browse.go

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import (
88
"path"
99
"strings"
1010

11-
"github.com/git-pkgs/proxy/internal/archive"
11+
"github.com/git-pkgs/archives"
1212
"github.com/git-pkgs/proxy/internal/database"
1313
"github.com/git-pkgs/proxy/internal/diff"
1414
"github.com/go-chi/chi/v5"
@@ -25,13 +25,13 @@ func getStripPrefix(ecosystem string) string {
2525
}
2626
}
2727

28-
// BrowseListResponse contains the file listing for a directory in an archive.
28+
// BrowseListResponse contains the file listing for a directory in an archives.
2929
type BrowseListResponse struct {
3030
Path string `json:"path"`
3131
Files []BrowseFileInfo `json:"files"`
3232
}
3333

34-
// BrowseFileInfo contains metadata about a file in an archive.
34+
// BrowseFileInfo contains metadata about a file in an archives.
3535
type BrowseFileInfo struct {
3636
Path string `json:"path"`
3737
Name string `json:"name"`
@@ -82,17 +82,17 @@ func (s *Server) handleBrowseList(w http.ResponseWriter, r *http.Request) {
8282
http.Error(w, "failed to read artifact", http.StatusInternalServerError)
8383
return
8484
}
85-
defer artifactReader.Close()
85+
defer func() { _ = artifactReader.Close() }()
8686

8787
// Open archive with appropriate prefix stripping
8888
stripPrefix := getStripPrefix(ecosystem)
89-
archiveReader, err := archive.OpenWithPrefix(cachedArtifact.Filename, artifactReader, stripPrefix)
89+
archiveReader, err := archives.OpenWithPrefix(cachedArtifact.Filename, artifactReader, stripPrefix)
9090
if err != nil {
9191
s.logger.Error("failed to open archive", "error", err, "filename", cachedArtifact.Filename)
9292
http.Error(w, "failed to open archive", http.StatusInternalServerError)
9393
return
9494
}
95-
defer archiveReader.Close()
95+
defer func() { _ = archiveReader.Close() }()
9696

9797
// List files in the directory
9898
files, err := archiveReader.ListDir(dirPath)
@@ -119,7 +119,7 @@ func (s *Server) handleBrowseList(w http.ResponseWriter, r *http.Request) {
119119
}
120120

121121
w.Header().Set("Content-Type", "application/json")
122-
json.NewEncoder(w).Encode(response)
122+
_ = json.NewEncoder(w).Encode(response)
123123
}
124124

125125
// handleBrowseFile returns the contents of a specific file within an archived package version.
@@ -170,17 +170,17 @@ func (s *Server) handleBrowseFile(w http.ResponseWriter, r *http.Request) {
170170
http.Error(w, "failed to read artifact", http.StatusInternalServerError)
171171
return
172172
}
173-
defer artifactReader.Close()
173+
defer func() { _ = artifactReader.Close() }()
174174

175175
// Open archive with appropriate prefix stripping
176176
stripPrefix := getStripPrefix(ecosystem)
177-
archiveReader, err := archive.OpenWithPrefix(cachedArtifact.Filename, artifactReader, stripPrefix)
177+
archiveReader, err := archives.OpenWithPrefix(cachedArtifact.Filename, artifactReader, stripPrefix)
178178
if err != nil {
179179
s.logger.Error("failed to open archive", "error", err, "filename", cachedArtifact.Filename)
180180
http.Error(w, "failed to open archive", http.StatusInternalServerError)
181181
return
182182
}
183-
defer archiveReader.Close()
183+
defer func() { _ = archiveReader.Close() }()
184184

185185
// Extract the file
186186
fileReader, err := archiveReader.Extract(filePath)
@@ -193,7 +193,7 @@ func (s *Server) handleBrowseFile(w http.ResponseWriter, r *http.Request) {
193193
http.Error(w, "failed to extract file", http.StatusInternalServerError)
194194
return
195195
}
196-
defer fileReader.Close()
196+
defer func() { _ = fileReader.Close() }()
197197

198198
// Set content type based on file extension
199199
contentType := detectContentType(filePath)
@@ -204,7 +204,7 @@ func (s *Server) handleBrowseFile(w http.ResponseWriter, r *http.Request) {
204204
w.Header().Set("Content-Disposition", fmt.Sprintf("inline; filename=%q", filename))
205205

206206
// Stream the file
207-
io.Copy(w, fileReader)
207+
_, _ = io.Copy(w, fileReader)
208208
}
209209

210210
// detectContentType returns an appropriate content type based on file extension.
@@ -387,33 +387,33 @@ func (s *Server) handleCompareDiff(w http.ResponseWriter, r *http.Request) {
387387
http.Error(w, "failed to read from version", http.StatusInternalServerError)
388388
return
389389
}
390-
defer fromReader.Close()
390+
defer func() { _ = fromReader.Close() }()
391391

392392
toReader, err := s.storage.Open(r.Context(), toArtifact.StoragePath.String)
393393
if err != nil {
394394
s.logger.Error("failed to open to artifact", "error", err)
395395
http.Error(w, "failed to read to version", http.StatusInternalServerError)
396396
return
397397
}
398-
defer toReader.Close()
398+
defer func() { _ = toReader.Close() }()
399399

400400
stripPrefix := getStripPrefix(ecosystem)
401401

402-
fromArchive, err := archive.OpenWithPrefix(fromArtifact.Filename, fromReader, stripPrefix)
402+
fromArchive, err := archives.OpenWithPrefix(fromArtifact.Filename, fromReader, stripPrefix)
403403
if err != nil {
404404
s.logger.Error("failed to open from archive", "error", err)
405405
http.Error(w, "failed to open from archive", http.StatusInternalServerError)
406406
return
407407
}
408-
defer fromArchive.Close()
408+
defer func() { _ = fromArchive.Close() }()
409409

410-
toArchive, err := archive.OpenWithPrefix(toArtifact.Filename, toReader, stripPrefix)
410+
toArchive, err := archives.OpenWithPrefix(toArtifact.Filename, toReader, stripPrefix)
411411
if err != nil {
412412
s.logger.Error("failed to open to archive", "error", err)
413413
http.Error(w, "failed to open to archive", http.StatusInternalServerError)
414414
return
415415
}
416-
defer toArchive.Close()
416+
defer func() { _ = toArchive.Close() }()
417417

418418
// Generate diff
419419
result, err := diff.Compare(fromArchive, toArchive)
@@ -424,7 +424,7 @@ func (s *Server) handleCompareDiff(w http.ResponseWriter, r *http.Request) {
424424
}
425425

426426
w.Header().Set("Content-Type", "application/json")
427-
json.NewEncoder(w).Encode(result)
427+
_ = json.NewEncoder(w).Encode(result)
428428
}
429429

430430
// ComparePageData contains data for the version comparison page.

internal/server/browse_test.go

Lines changed: 36 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -251,8 +251,12 @@ func createTestArchive(t *testing.T) []byte {
251251
}
252252
}
253253

254-
tw.Close()
255-
gw.Close()
254+
if err := tw.Close(); err != nil {
255+
t.Fatalf("failed to close tar writer: %v", err)
256+
}
257+
if err := gw.Close(); err != nil {
258+
t.Fatalf("failed to close gzip writer: %v", err)
259+
}
256260

257261
return buf.Bytes()
258262
}
@@ -405,47 +409,63 @@ func TestHandleCompareDiff(t *testing.T) {
405409
})
406410

407411
artifactsDir := filepath.Join(ts.tempDir, "artifacts")
408-
os.MkdirAll(artifactsDir, 0755)
412+
if err := os.MkdirAll(artifactsDir, 0755); err != nil {
413+
t.Fatalf("failed to create artifacts dir: %v", err)
414+
}
409415

410416
// Write archives
411-
os.WriteFile(filepath.Join(artifactsDir, "v1.tar.gz"), archive1Data, 0644)
412-
os.WriteFile(filepath.Join(artifactsDir, "v2.tar.gz"), archive2Data, 0644)
417+
if err := os.WriteFile(filepath.Join(artifactsDir, "v1.tar.gz"), archive1Data, 0644); err != nil {
418+
t.Fatalf("failed to write v1 archive: %v", err)
419+
}
420+
if err := os.WriteFile(filepath.Join(artifactsDir, "v2.tar.gz"), archive2Data, 0644); err != nil {
421+
t.Fatalf("failed to write v2 archive: %v", err)
422+
}
413423

414424
// Setup package and versions
415425
pkg := &database.Package{
416426
PURL: "pkg:npm/test-compare",
417427
Ecosystem: "npm",
418428
Name: "test-compare",
419429
}
420-
ts.db.UpsertPackage(pkg)
430+
if err := ts.db.UpsertPackage(pkg); err != nil {
431+
t.Fatalf("failed to upsert package: %v", err)
432+
}
421433

422434
ver1 := &database.Version{
423435
PURL: "pkg:npm/test-compare@1.0.0",
424436
PackagePURL: pkg.PURL,
425437
}
426-
ts.db.UpsertVersion(ver1)
438+
if err := ts.db.UpsertVersion(ver1); err != nil {
439+
t.Fatalf("failed to upsert version: %v", err)
440+
}
427441

428442
ver2 := &database.Version{
429443
PURL: "pkg:npm/test-compare@2.0.0",
430444
PackagePURL: pkg.PURL,
431445
}
432-
ts.db.UpsertVersion(ver2)
446+
if err := ts.db.UpsertVersion(ver2); err != nil {
447+
t.Fatalf("failed to upsert version: %v", err)
448+
}
433449

434450
artifact1 := &database.Artifact{
435451
VersionPURL: ver1.PURL,
436452
Filename: "test-compare-1.0.0.tgz",
437453
UpstreamURL: "https://registry.npmjs.org/test-compare/-/test-compare-1.0.0.tgz",
438454
StoragePath: sql.NullString{String: "v1.tar.gz", Valid: true},
439455
}
440-
ts.db.UpsertArtifact(artifact1)
456+
if err := ts.db.UpsertArtifact(artifact1); err != nil {
457+
t.Fatalf("failed to upsert artifact: %v", err)
458+
}
441459

442460
artifact2 := &database.Artifact{
443461
VersionPURL: ver2.PURL,
444462
Filename: "test-compare-2.0.0.tgz",
445463
UpstreamURL: "https://registry.npmjs.org/test-compare/-/test-compare-2.0.0.tgz",
446464
StoragePath: sql.NullString{String: "v2.tar.gz", Valid: true},
447465
}
448-
ts.db.UpsertArtifact(artifact2)
466+
if err := ts.db.UpsertArtifact(artifact2); err != nil {
467+
t.Fatalf("failed to upsert artifact: %v", err)
468+
}
449469

450470
// Test the compare endpoint
451471
req := httptest.NewRequest("GET", "/api/compare/npm/test-compare/1.0.0/2.0.0", nil)
@@ -504,8 +524,12 @@ func createArchiveWithContent(t *testing.T, files map[string]string) []byte {
504524
}
505525
}
506526

507-
tw.Close()
508-
gw.Close()
527+
if err := tw.Close(); err != nil {
528+
t.Fatalf("failed to close tar writer: %v", err)
529+
}
530+
if err := gw.Close(); err != nil {
531+
t.Fatalf("failed to close gzip writer: %v", err)
532+
}
509533

510534
return buf.Bytes()
511535
}

0 commit comments

Comments
 (0)