Skip to content

Commit a99b7c0

Browse files
authored
chore: Fix Go linting (#20274)
#### Summary This should fix the lint errors seen on #20243 and on other PRs
1 parent f52e507 commit a99b7c0

10 files changed

Lines changed: 102 additions & 53 deletions

File tree

cli/.golangci.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ run:
55
linters-settings:
66
errcheck:
77
check-blank: false
8-
ignore: fmt:.*,[rR]ead|[wW]rite|[cC]lose,io:Copy
98
gocritic:
109
disabled-checks:
1110
- commentFormatting
@@ -96,6 +95,8 @@ linters:
9695
- unused
9796

9897
issues:
98+
max-issues-per-linter: 0
99+
max-same-issues: 0
99100
exclude-dirs:
100101
- bin
101102
- docs

cli/cmd/addon_download_test.go

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -50,14 +50,17 @@ func TestAddonDownload(t *testing.T) {
5050
"checksum": payloadChecksum,
5151
"location": "http://" + r.Host + "/assets/cloudquery/addon_visualization/test/v1.2.3/cloudquery_visualization_test_v1.2.3.zip",
5252
})
53-
w.Write(b)
53+
_, err := w.Write(b)
54+
require.NoError(t, err)
5455
case "/assets/cloudquery/addon_visualization/test/v1.2.3/cloudquery_visualization_test_v1.2.3.zip":
5556
w.Header().Set("Content-Type", "application/octet-stream")
5657
w.WriteHeader(http.StatusOK)
57-
w.Write(payload)
58+
_, err := w.Write(payload)
59+
require.NoError(t, err)
5860
case "/teams":
5961
w.WriteHeader(http.StatusOK)
60-
w.Write([]byte(`{"items":[{"name":"test_team","displayName":"Test Team"}]}`))
62+
_, err := w.Write([]byte(`{"items":[{"name":"test_team","displayName":"Test Team"}]}`))
63+
require.NoError(t, err)
6164
}
6265
}))
6366
defer ts.Close()
@@ -115,14 +118,17 @@ func TestAddonDownloadStdout(t *testing.T) {
115118
"checksum": payloadChecksum,
116119
"location": "http://" + r.Host + "/assets/cloudquery/addon_visualization/test/v1.2.3/cloudquery_visualization_test_v1.2.3.zip",
117120
})
118-
w.Write(b)
121+
_, err := w.Write(b)
122+
require.NoError(t, err)
119123
case "/assets/cloudquery/addon_visualization/test/v1.2.3/cloudquery_visualization_test_v1.2.3.zip":
120124
w.Header().Set("Content-Type", "application/octet-stream")
121125
w.WriteHeader(http.StatusOK)
122-
w.Write(payload)
126+
_, err := w.Write(payload)
127+
require.NoError(t, err)
123128
case "/teams":
124129
w.WriteHeader(http.StatusOK)
125-
w.Write([]byte(`{"items":[{"name":"test_team","displayName":"Test Team"}]}`))
130+
_, err := w.Write([]byte(`{"items":[{"name":"test_team","displayName":"Test Team"}]}`))
131+
require.NoError(t, err)
126132
}
127133
}))
128134
defer ts.Close()

cli/cmd/addon_publish_test.go

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010
"testing"
1111

1212
"github.com/google/go-cmp/cmp"
13+
"github.com/stretchr/testify/require"
1314
)
1415

1516
func TestAddonPublish(t *testing.T) {
@@ -28,15 +29,18 @@ func TestAddonPublish(t *testing.T) {
2829
case "/addons/cloudquery/visualization/test/versions/v1.2.3":
2930
checkAuthHeader(t, r)
3031
w.WriteHeader(http.StatusCreated)
31-
w.Write([]byte(`{"name": "v1.2.3"}`))
32+
_, err := w.Write([]byte(`{"name": "v1.2.3"}`))
33+
require.NoError(t, err)
3234
checkCreateAddonVersionRequest(t, r)
3335
case "/addons/cloudquery/visualization/test/versions/v1.2.3/assets":
3436
checkAuthHeader(t, r)
3537
w.WriteHeader(http.StatusCreated)
36-
w.Write([]byte(fmt.Sprintf(`{"url": "%s"}`, "http://"+r.Host+"/upload-zip")))
38+
_, err := w.Write([]byte(fmt.Sprintf(`{"url": "%s"}`, "http://"+r.Host+"/upload-zip")))
39+
require.NoError(t, err)
3740
case "/upload-zip":
3841
w.WriteHeader(http.StatusOK)
39-
w.Write([]byte(`{}`))
42+
_, err := w.Write([]byte(`{}`))
43+
require.NoError(t, err)
4044
}
4145
}))
4246
defer ts.Close()
@@ -70,15 +74,18 @@ func TestAddonPublishEmbedded(t *testing.T) {
7074
case "/addons/cloudquery/visualization/test/versions/v1.2.3":
7175
checkAuthHeader(t, r)
7276
w.WriteHeader(http.StatusCreated)
73-
w.Write([]byte(`{"name": "v1.2.3"}`))
77+
_, err := w.Write([]byte(`{"name": "v1.2.3"}`))
78+
require.NoError(t, err)
7479
checkCreateAddonVersionRequest(t, r)
7580
case "/addons/cloudquery/visualization/test/versions/v1.2.3/assets":
7681
checkAuthHeader(t, r)
7782
w.WriteHeader(http.StatusCreated)
78-
w.Write([]byte(fmt.Sprintf(`{"url": "%s"}`, "http://"+r.Host+"/upload-zip")))
83+
_, err := w.Write([]byte(fmt.Sprintf(`{"url": "%s"}`, "http://"+r.Host+"/upload-zip")))
84+
require.NoError(t, err)
7985
case "/upload-zip":
8086
w.WriteHeader(http.StatusOK)
81-
w.Write([]byte(`{}`))
87+
_, err := w.Write([]byte(`{}`))
88+
require.NoError(t, err)
8289
}
8390
}))
8491
defer ts.Close()
@@ -123,14 +130,17 @@ func TestAddonPublishFinalize(t *testing.T) {
123130
checkCreateAddonVersionRequest(t, r)
124131
w.WriteHeader(http.StatusCreated)
125132
}
126-
w.Write([]byte(`{"name": "v1.2.3"}`))
133+
_, err := w.Write([]byte(`{"name": "v1.2.3"}`))
134+
require.NoError(t, err)
127135
case "/addons/cloudquery/visualization/test/versions/v1.2.3/assets":
128136
checkAuthHeader(t, r)
129137
w.WriteHeader(http.StatusCreated)
130-
w.Write([]byte(fmt.Sprintf(`{"url": "%s"}`, "http://"+r.Host+"/upload-zip")))
138+
_, err := w.Write([]byte(fmt.Sprintf(`{"url": "%s"}`, "http://"+r.Host+"/upload-zip")))
139+
require.NoError(t, err)
131140
case "/upload-zip":
132141
w.WriteHeader(http.StatusOK)
133-
w.Write([]byte(`{}`))
142+
_, err := w.Write([]byte(`{}`))
143+
require.NoError(t, err)
134144
gotUploads++
135145
}
136146
}))
@@ -156,7 +166,8 @@ func TestAddonPublish_Unauthorized(t *testing.T) {
156166
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
157167
w.Header().Set("Content-Type", "application/json")
158168
w.WriteHeader(http.StatusUnauthorized)
159-
w.Write([]byte(`{"message": "unauthorized"}`))
169+
_, err := w.Write([]byte(`{"message": "unauthorized"}`))
170+
require.NoError(t, err)
160171
}))
161172
defer ts.Close()
162173

cli/cmd/init_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ func Test_configForSourcePlugin(t *testing.T) {
238238
tempDir := t.TempDir()
239239
specPath := path.Join(tempDir, "spec.yaml")
240240
spec := configForSourcePlugin(tc.source, tc.version)
241-
os.WriteFile(specPath, []byte(spec), 0644)
241+
require.NoError(t, os.WriteFile(specPath, []byte(spec), 0644))
242242

243243
specReader, err := specs.NewRelaxedSpecReader([]string{specPath})
244244
require.NoError(t, err)
@@ -304,7 +304,7 @@ func Test_configForDestinationPlugin(t *testing.T) {
304304
tempDir := t.TempDir()
305305
specPath := path.Join(tempDir, "spec.yaml")
306306
spec := configForDestinationPlugin(tc.destination, tc.version)
307-
os.WriteFile(specPath, []byte(spec), 0644)
307+
require.NoError(t, os.WriteFile(specPath, []byte(spec), 0644))
308308

309309
specReader, err := specs.NewRelaxedSpecReader([]string{specPath})
310310
require.NoError(t, err)

cli/cmd/plugin_publish_test.go

Lines changed: 47 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import (
1515
"github.com/cloudquery/cloudquery/cli/v6/internal/hub"
1616
"github.com/google/go-cmp/cmp"
1717
"github.com/google/uuid"
18+
"github.com/stretchr/testify/require"
1819
)
1920

2021
func TestPluginPublish(t *testing.T) {
@@ -62,32 +63,39 @@ func TestPluginPublish(t *testing.T) {
6263
case "/plugins/cloudquery/source/test/versions/v1.2.3":
6364
checkAuthHeader(t, r)
6465
w.WriteHeader(http.StatusCreated)
65-
w.Write([]byte(`{"name": "v1.2.3"}`))
66+
_, err := w.Write([]byte(`{"name": "v1.2.3"}`))
67+
require.NoError(t, err)
6668
checkCreatePluginVersionRequest(t, r)
6769
case "/plugins/cloudquery/source/test/versions/v1.2.3/tables":
6870
checkAuthHeader(t, r)
6971
w.WriteHeader(http.StatusCreated)
70-
w.Write([]byte(`{}`))
72+
_, err := w.Write([]byte(`{}`))
73+
require.NoError(t, err)
7174
checkCreateTablesRequest(t, r)
7275
case "/plugins/cloudquery/source/test/versions/v1.2.3/docs":
7376
checkAuthHeader(t, r)
7477
w.WriteHeader(http.StatusCreated)
75-
w.Write([]byte(`{}`))
78+
_, err := w.Write([]byte(`{}`))
79+
require.NoError(t, err)
7680
checkCreateDocsRequest(t, r, tc.distDir)
7781
case "/plugins/cloudquery/source/test/versions/v1.2.3/assets/linux_amd64":
7882
checkAuthHeader(t, r)
7983
w.WriteHeader(http.StatusCreated)
80-
w.Write([]byte(fmt.Sprintf(`{"url": "%s"}`, "http://"+r.Host+"/upload-linux")))
84+
_, err := w.Write([]byte(fmt.Sprintf(`{"url": "%s"}`, "http://"+r.Host+"/upload-linux")))
85+
require.NoError(t, err)
8186
case "/plugins/cloudquery/source/test/versions/v1.2.3/assets/darwin_amd64":
8287
checkAuthHeader(t, r)
8388
w.WriteHeader(http.StatusCreated)
84-
w.Write([]byte(fmt.Sprintf(`{"url": "%s"}`, "http://"+r.Host+"/upload-darwin")))
89+
_, err := w.Write([]byte(fmt.Sprintf(`{"url": "%s"}`, "http://"+r.Host+"/upload-darwin")))
90+
require.NoError(t, err)
8591
case "/upload-linux":
8692
w.WriteHeader(http.StatusOK)
87-
w.Write([]byte(`{}`))
93+
_, err := w.Write([]byte(`{}`))
94+
require.NoError(t, err)
8895
case "/upload-darwin":
8996
w.WriteHeader(http.StatusOK)
90-
w.Write([]byte(`{}`))
97+
_, err := w.Write([]byte(`{}`))
98+
require.NoError(t, err)
9199
}
92100
}))
93101
defer ts.Close()
@@ -139,32 +147,39 @@ func TestPluginPublishFinalize(t *testing.T) {
139147
checkCreatePluginVersionRequest(t, r)
140148
w.WriteHeader(http.StatusCreated)
141149
}
142-
w.Write([]byte(`{"name": "v1.2.3"}`))
150+
_, err := w.Write([]byte(`{"name": "v1.2.3"}`))
151+
require.NoError(t, err)
143152
case "/plugins/cloudquery/source/test/versions/v1.2.3/tables":
144153
checkAuthHeader(t, r)
145154
w.WriteHeader(http.StatusCreated)
146-
w.Write([]byte(`{}`))
155+
_, err := w.Write([]byte(`{}`))
156+
require.NoError(t, err)
147157
checkCreateTablesRequest(t, r)
148158
case "/plugins/cloudquery/source/test/versions/v1.2.3/docs":
149159
checkAuthHeader(t, r)
150160
w.WriteHeader(http.StatusCreated)
151-
w.Write([]byte(`{}`))
161+
_, err := w.Write([]byte(`{}`))
162+
require.NoError(t, err)
152163
checkCreateDocsRequest(t, r, "testdata/dist-v1-with-team-package-json")
153164
case "/plugins/cloudquery/source/test/versions/v1.2.3/assets/linux_amd64":
154165
checkAuthHeader(t, r)
155166
w.WriteHeader(http.StatusCreated)
156-
w.Write([]byte(fmt.Sprintf(`{"url": "%s"}`, "http://"+r.Host+"/upload-linux")))
167+
_, err := w.Write([]byte(fmt.Sprintf(`{"url": "%s"}`, "http://"+r.Host+"/upload-linux")))
168+
require.NoError(t, err)
157169
case "/plugins/cloudquery/source/test/versions/v1.2.3/assets/darwin_amd64":
158170
checkAuthHeader(t, r)
159171
w.WriteHeader(http.StatusCreated)
160-
w.Write([]byte(fmt.Sprintf(`{"url": "%s"}`, "http://"+r.Host+"/upload-darwin")))
172+
_, err := w.Write([]byte(fmt.Sprintf(`{"url": "%s"}`, "http://"+r.Host+"/upload-darwin")))
173+
require.NoError(t, err)
161174
case "/upload-linux":
162175
w.WriteHeader(http.StatusOK)
163-
w.Write([]byte(`{}`))
176+
_, err := w.Write([]byte(`{}`))
177+
require.NoError(t, err)
164178
gotUploads++
165179
case "/upload-darwin":
166180
w.WriteHeader(http.StatusOK)
167-
w.Write([]byte(`{}`))
181+
_, err := w.Write([]byte(`{}`))
182+
require.NoError(t, err)
168183
gotUploads++
169184
}
170185
}))
@@ -213,35 +228,43 @@ func TestPluginPublishWithUI(t *testing.T) {
213228
case "/plugins/cloudquery/source/test/versions/v1.2.3":
214229
checkAuthHeader(t, r)
215230
w.WriteHeader(http.StatusCreated)
216-
w.Write([]byte(`{"name": "v1.2.3"}`))
231+
_, err := w.Write([]byte(`{"name": "v1.2.3"}`))
232+
require.NoError(t, err)
217233
checkCreatePluginVersionRequest(t, r)
218234
case "/plugins/cloudquery/source/test/versions/v1.2.3/tables":
219235
checkAuthHeader(t, r)
220236
w.WriteHeader(http.StatusCreated)
221-
w.Write([]byte(`{}`))
237+
_, err := w.Write([]byte(`{}`))
238+
require.NoError(t, err)
222239
checkCreateTablesRequest(t, r)
223240
case "/plugins/cloudquery/source/test/versions/v1.2.3/docs":
224241
checkAuthHeader(t, r)
225242
w.WriteHeader(http.StatusCreated)
226-
w.Write([]byte(`{}`))
243+
_, err := w.Write([]byte(`{}`))
244+
require.NoError(t, err)
227245
checkCreateDocsRequest(t, r, distDir)
228246
case "/plugins/cloudquery/source/test/versions/v1.2.3/assets/linux_amd64":
229247
checkAuthHeader(t, r)
230248
w.WriteHeader(http.StatusCreated)
231-
w.Write([]byte(fmt.Sprintf(`{"url": "%s"}`, "http://"+r.Host+"/upload-linux")))
249+
_, err := w.Write([]byte(fmt.Sprintf(`{"url": "%s"}`, "http://"+r.Host+"/upload-linux")))
250+
require.NoError(t, err)
232251
case "/plugins/cloudquery/source/test/versions/v1.2.3/assets/darwin_amd64":
233252
checkAuthHeader(t, r)
234253
w.WriteHeader(http.StatusCreated)
235-
w.Write([]byte(fmt.Sprintf(`{"url": "%s"}`, "http://"+r.Host+"/upload-darwin")))
254+
_, err := w.Write([]byte(fmt.Sprintf(`{"url": "%s"}`, "http://"+r.Host+"/upload-darwin")))
255+
require.NoError(t, err)
236256
case "/upload-linux":
237257
w.WriteHeader(http.StatusOK)
238-
w.Write([]byte(`{}`))
258+
_, err := w.Write([]byte(`{}`))
259+
require.NoError(t, err)
239260
case "/upload-darwin":
240261
w.WriteHeader(http.StatusOK)
241-
w.Write([]byte(`{}`))
262+
_, err := w.Write([]byte(`{}`))
263+
require.NoError(t, err)
242264
case "/upload-uiasset":
243265
w.WriteHeader(http.StatusOK)
244-
w.Write([]byte(`{}`))
266+
_, err := w.Write([]byte(`{}`))
267+
require.NoError(t, err)
245268
case "/plugins/cloudquery/source/test/versions/v1.2.3/uiassets":
246269
checkAuthHeader(t, r)
247270
switch r.Method {
@@ -307,7 +330,8 @@ func TestPluginPublish_Unauthorized(t *testing.T) {
307330
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
308331
w.Header().Set("Content-Type", "application/json")
309332
w.WriteHeader(http.StatusUnauthorized)
310-
w.Write([]byte(`{"message": "unauthorized"}`))
333+
_, err := w.Write([]byte(`{"message": "unauthorized"}`))
334+
require.NoError(t, err)
311335
}))
312336
defer ts.Close()
313337

cli/cmd/switch_test.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,13 @@ func TestSwitch(t *testing.T) {
2626
// write json response
2727
w.Header().Set("Content-Type", "application/json")
2828
w.WriteHeader(http.StatusOK)
29-
w.Write([]byte(`{"items": [{"name": "my-team"}]}`))
29+
_, err := w.Write([]byte(`{"items": [{"name": "my-team"}]}`))
30+
require.NoError(t, err)
3031
case r.URL.Path == "/teams/my-team":
3132
w.Header().Set("Content-Type", "application/json")
3233
w.WriteHeader(http.StatusOK)
33-
w.Write([]byte(`{"name": "my-team", "internal": false}`))
34+
_, err := w.Write([]byte(`{"name": "my-team", "internal": false}`))
35+
require.NoError(t, err)
3436
default:
3537
t.Fatalf("unexpected request: %s %s", r.Method, r.URL.Path)
3638
}

cli/internal/publish/plugins.go

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -347,11 +347,13 @@ func PublishNativeBinaries(ctx context.Context, c *cloudquery_api.ClientWithResp
347347
return nil
348348
}
349349

350-
func getResponseAsString(body io.ReadCloser) string {
350+
func getResponseAsString(body io.ReadCloser) (string, error) {
351351
defer body.Close()
352352
buf := new(bytes.Buffer)
353-
buf.ReadFrom(body)
354-
return buf.String()
353+
if _, err := buf.ReadFrom(body); err != nil {
354+
return "", err
355+
}
356+
return buf.String(), nil
355357
}
356358

357359
func loadDockerImage(ctx context.Context, cli *client.Client, imagePath string) error {
@@ -368,7 +370,10 @@ func loadDockerImage(ctx context.Context, cli *client.Client, imagePath string)
368370
return errors.New("failed to load image: response body is nil")
369371
}
370372

371-
respString := getResponseAsString(resp.Body)
373+
respString, err := getResponseAsString(resp.Body)
374+
if err != nil {
375+
return fmt.Errorf("failed to get response as string: %w", err)
376+
}
372377
loadResponse := LoadResponse{}
373378
if err := json.Unmarshal([]byte(respString), &loadResponse); err != nil {
374379
return fmt.Errorf("failed to parse docker load response: %v", err)

plugins/.golangci.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ run:
77
linters-settings:
88
errcheck:
99
check-blank: false
10-
ignore: fmt:.*,[rR]ead|[wW]rite|[cC]lose,io:Copy
1110
gocritic:
1211
disabled-checks:
1312
- commentFormatting
@@ -104,6 +103,8 @@ linters:
104103
- unused
105104

106105
issues:
106+
max-issues-per-linter: 0
107+
max-same-issues: 0
107108
exclude-rules:
108109
# Exclude some linters from running on tests files.
109110
- path: _test\.go

0 commit comments

Comments
 (0)