- commit
- 812fb51
- parent
- 34e6566
- author
- Eric Bower
- date
- 2025-08-22 10:15:41 -0400 EDT
fix: linter
+12,
-0
1@@ -0,0 +1,12 @@
2+version: "2"
3+
4+linters:
5+ enable:
6+ - godot
7+
8+formatters:
9+ enable:
10+ - goimports
11+
12+run:
13+ timeout: 10m
M
Makefile
+1,
-1
1@@ -9,7 +9,7 @@ fmt:
2 .PHONY: fmt
3
4 lint:
5- golangci-lint run -E goimports -E godot --timeout 10m
6+ golangci-lint run
7 .PHONY: lint
8
9 test:
M
cli.go
+15,
-15
1@@ -77,13 +77,13 @@ func prSummary(be *Backend, pr GitPatchRequest, sesh ssh.Session, prID int64) er
2 wish.Printf(sesh, "Repo: %s\n\n", be.CreateRepoNs(repoUser.Name, repo.Name))
3
4 writer := NewTabWriter(sesh)
5- fmt.Fprintln(writer, "ID\tName\tStatus\tDate")
6- fmt.Fprintf(
7+ _, _ = fmt.Fprintln(writer, "ID\tName\tStatus\tDate")
8+ _, _ = fmt.Fprintf(
9 writer,
10 "%d\t%s\t[%s]\t%s\n",
11 request.ID, request.Name, request.Status, request.CreatedAt.Format(be.Cfg.TimeFormat),
12 )
13- writer.Flush()
14+ _ = writer.Flush()
15
16 patchsets, err := pr.GetPatchsetsByPrID(prID)
17 if err != nil {
18@@ -93,7 +93,7 @@ func prSummary(be *Backend, pr GitPatchRequest, sesh ssh.Session, prID int64) er
19 wish.Printf(sesh, "\nPatchsets\n====\n")
20
21 writerSet := NewTabWriter(sesh)
22- fmt.Fprintln(writerSet, "ID\tType\tUser\tDate")
23+ _, _ = fmt.Fprintln(writerSet, "ID\tType\tUser\tDate")
24 for _, patchset := range patchsets {
25 user, err := pr.GetUserByID(patchset.UserID)
26 if err != nil {
27@@ -105,7 +105,7 @@ func prSummary(be *Backend, pr GitPatchRequest, sesh ssh.Session, prID int64) er
28 isReview = "[review]"
29 }
30
31- fmt.Fprintf(
32+ _, _ = fmt.Fprintf(
33 writerSet,
34 "%s\t%s\t%s\t%s\n",
35 getFormattedPatchsetID(patchset.ID),
36@@ -114,7 +114,7 @@ func prSummary(be *Backend, pr GitPatchRequest, sesh ssh.Session, prID int64) er
37 patchset.CreatedAt.Format(be.Cfg.TimeFormat),
38 )
39 }
40- writerSet.Flush()
41+ _ = writerSet.Flush()
42
43 latest, err := getPatchsetFromOpt(patchsets, "")
44 if err != nil {
45@@ -130,10 +130,10 @@ func prSummary(be *Backend, pr GitPatchRequest, sesh ssh.Session, prID int64) er
46
47 opatches := patches
48 w := NewTabWriter(sesh)
49- fmt.Fprintln(w, "Idx\tTitle\tCommit\tAuthor\tDate")
50+ _, _ = fmt.Fprintln(w, "Idx\tTitle\tCommit\tAuthor\tDate")
51 for idx, patch := range opatches {
52 timestamp := patch.AuthorDate.Format(be.Cfg.TimeFormat)
53- fmt.Fprintf(
54+ _, _ = fmt.Fprintf(
55 w,
56 "%d\t%s\t%s\t%s <%s>\t%s\n",
57 idx,
58@@ -144,7 +144,7 @@ func prSummary(be *Backend, pr GitPatchRequest, sesh ssh.Session, prID int64) er
59 timestamp,
60 )
61 }
62- w.Flush()
63+ _ = w.Flush()
64 return nil
65 }
66
67@@ -263,7 +263,7 @@ To get started, submit a new patch request:
68 }
69
70 writer := NewTabWriter(sesh)
71- fmt.Fprintln(writer, "RepoID\tPrID\tPatchsetID\tEvent\tCreated\tData")
72+ _, _ = fmt.Fprintln(writer, "RepoID\tPrID\tPatchsetID\tEvent\tCreated\tData")
73 for _, eventLog := range eventLogs {
74 repo, err := pr.GetRepoByID(eventLog.RepoID.Int64)
75 if err != nil {
76@@ -275,7 +275,7 @@ To get started, submit a new patch request:
77 be.Logger.Error("repo user not found", "repo", repo, "err", err)
78 continue
79 }
80- fmt.Fprintf(
81+ _, _ = fmt.Fprintf(
82 writer,
83 "%s\t%d\t%s\t%s\t%s\t%s\n",
84 be.CreateRepoNs(repoUser.Name, repo.Name),
85@@ -286,7 +286,7 @@ To get started, submit a new patch request:
86 eventLog.Data,
87 )
88 }
89- writer.Flush()
90+ _ = writer.Flush()
91 return nil
92 },
93 },
94@@ -464,7 +464,7 @@ To get started, submit a new patch request:
95 onlyMine := cCtx.Bool("mine")
96
97 writer := NewTabWriter(sesh)
98- fmt.Fprintln(writer, "ID\tRepoID\tName\tStatus\tPatchsets\tUser\tDate")
99+ _, _ = fmt.Fprintln(writer, "ID\tRepoID\tName\tStatus\tPatchsets\tUser\tDate")
100 for _, req := range prs {
101 if onlyAccepted && req.Status != StatusAccepted {
102 continue
103@@ -506,7 +506,7 @@ To get started, submit a new patch request:
104 continue
105 }
106
107- fmt.Fprintf(
108+ _, _ = fmt.Fprintf(
109 writer,
110 "%d\t%s\t%s\t[%s]\t%d\t%s\t%s\n",
111 req.ID,
112@@ -518,7 +518,7 @@ To get started, submit a new patch request:
113 req.CreatedAt.Format(be.Cfg.TimeFormat),
114 )
115 }
116- writer.Flush()
117+ _ = writer.Flush()
118 return nil
119 },
120 },
+7,
-3
1@@ -29,7 +29,7 @@ func main() {
2 dataDir := util.CreateTmpDir()
3 defer func() {
4 if *cleanupFlag {
5- os.RemoveAll(dataDir)
6+ _ = os.RemoveAll(dataDir)
7 }
8 }()
9
10@@ -39,11 +39,15 @@ func main() {
11 cfg := git.NewGitCfg(logger)
12
13 s := git.GitSshServer(cfg)
14- go s.ListenAndServe()
15+ go func() {
16+ _ = s.ListenAndServe()
17+ }()
18 time.Sleep(time.Millisecond * 100)
19 w := git.GitWebServer(cfg)
20 addr := fmt.Sprintf("%s:%s", cfg.Host, cfg.WebPort)
21- go http.ListenAndServe(addr, w)
22+ go func() {
23+ _ = http.ListenAndServe(addr, w)
24+ }()
25
26 // Hack to wait for startup
27 time.Sleep(time.Millisecond * 100)
+10,
-6
1@@ -21,11 +21,13 @@ func testSingleTenantE2E(t *testing.T) {
2 t.Log("single tenant end-to-end tests")
3 dataDir := util.CreateTmpDir()
4 defer func() {
5- os.RemoveAll(dataDir)
6+ _ = os.RemoveAll(dataDir)
7 }()
8 suite := setupTest(dataDir, cfgSingleTenantTmpl)
9 s := GitSshServer(suite.cfg)
10- go s.ListenAndServe()
11+ go func() {
12+ _ = s.ListenAndServe()
13+ }()
14 // Hack to wait for startup
15 time.Sleep(time.Millisecond * 100)
16
17@@ -44,18 +46,20 @@ func testSingleTenantE2E(t *testing.T) {
18 bail(err)
19 snaps.MatchSnapshot(t, actual)
20
21- s.Shutdown(context.Background())
22+ _ = s.Shutdown(context.Background())
23 }
24
25 func testMultiTenantE2E(t *testing.T) {
26 t.Log("multi tenant end-to-end tests")
27 dataDir := util.CreateTmpDir()
28 defer func() {
29- os.RemoveAll(dataDir)
30+ _ = os.RemoveAll(dataDir)
31 }()
32 suite := setupTest(dataDir, cfgMultiTenantTmpl)
33 s := GitSshServer(suite.cfg)
34- go s.ListenAndServe()
35+ go func() {
36+ _ = s.ListenAndServe()
37+ }()
38
39 time.Sleep(time.Millisecond * 100)
40
41@@ -121,7 +125,7 @@ func testMultiTenantE2E(t *testing.T) {
42 bail(err)
43 snaps.MatchSnapshot(t, actual)
44
45- s.Shutdown(context.Background())
46+ _ = s.Shutdown(context.Background())
47 }
48
49 type TestSuite struct {
+1,
-1
1@@ -208,7 +208,7 @@ func SqliteOpen(dsn string, logger *slog.Logger) (*sqlx.DB, error) {
2
3 err = sqliteUpgrade(db)
4 if err != nil {
5- db.Close()
6+ _ = db.Close()
7 return nil, err
8 }
9
+9,
-5
1@@ -26,8 +26,8 @@ func CreateCfgFile(dataDir, cfgTmpl string, adminKey UserSSH) string {
2 if err != nil {
3 panic(err)
4 }
5- _, _ = cfgFi.WriteString(fmt.Sprintf(cfgTmpl, dataDir, adminKey.Public()))
6- cfgFi.Close()
7+ _, _ = fmt.Fprintf(cfgFi, cfgTmpl, dataDir, adminKey.Public())
8+ _ = cfgFi.Close()
9 return cfgPath
10 }
11
12@@ -71,13 +71,17 @@ func (s UserSSH) Cmd(patch []byte, cmd string) (string, error) {
13 if err != nil {
14 return "", err
15 }
16- defer client.Close()
17+ defer func() {
18+ _ = client.Close()
19+ }()
20
21 session, err := client.NewSession()
22 if err != nil {
23 return "", err
24 }
25- defer session.Close()
26+ defer func() {
27+ _ = session.Close()
28+ }()
29
30 stdinPipe, err := session.StdinPipe()
31 if err != nil {
32@@ -100,7 +104,7 @@ func (s UserSSH) Cmd(patch []byte, cmd string) (string, error) {
33 }
34 }
35
36- stdinPipe.Close()
37+ _ = stdinPipe.Close()
38
39 if err := session.Wait(); err != nil {
40 return "", err
M
web.go
+25,
-19
1@@ -584,26 +584,32 @@ func createPrDetail(page string) http.HandlerFunc {
2
3 var pr *PatchRequest
4 var ps *Patchset
5- if page == "pr" {
6- pr, err = web.Pr.GetPatchRequestByID(int64(prID))
7- if err != nil {
8- web.Pr.Backend.Logger.Error("cannot get prs", "err", err)
9- w.WriteHeader(http.StatusInternalServerError)
10- return
11- }
12- } else if page == "ps" || page == "rd" {
13- ps, err = web.Pr.GetPatchsetByID(int64(prID))
14- if err != nil {
15- web.Pr.Backend.Logger.Error("cannot get patchset", "err", err)
16- w.WriteHeader(http.StatusInternalServerError)
17- return
18+ switch page {
19+ case "pr":
20+ {
21+ pr, err = web.Pr.GetPatchRequestByID(int64(prID))
22+ if err != nil {
23+ web.Pr.Backend.Logger.Error("cannot get prs", "err", err)
24+ w.WriteHeader(http.StatusInternalServerError)
25+ return
26+ }
27 }
28+ case "ps":
29+ case "rd":
30+ {
31+ ps, err = web.Pr.GetPatchsetByID(int64(prID))
32+ if err != nil {
33+ web.Pr.Backend.Logger.Error("cannot get patchset", "err", err)
34+ w.WriteHeader(http.StatusInternalServerError)
35+ return
36+ }
37
38- pr, err = web.Pr.GetPatchRequestByID(int64(ps.PatchRequestID))
39- if err != nil {
40- web.Pr.Backend.Logger.Error("cannot get pr", "err", err)
41- w.WriteHeader(http.StatusInternalServerError)
42- return
43+ pr, err = web.Pr.GetPatchRequestByID(int64(ps.PatchRequestID))
44+ if err != nil {
45+ web.Pr.Backend.Logger.Error("cannot get pr", "err", err)
46+ w.WriteHeader(http.StatusInternalServerError)
47+ return
48+ }
49 }
50 }
51
52@@ -685,7 +691,7 @@ func createPrDetail(page string) http.HandlerFunc {
53 if psID != data.ID {
54 continue
55 }
56- if !data.Patchset.Review {
57+ if !data.Review {
58 continue
59 }
60