Skip to content

Commit b4f393e

Browse files
committed
Relint
* updated linter config * fixed linting issues * NOTE: type conversion issues reported by gosec (G115) are neither resolved nor ignored in middleware/denco/router.go (bitwise operations are tricky to follow). * NOTE: temporarily disabled go113 linter (recommends to wrap errors): there are just too many fixes to be addressed in this round. Signed-off-by: Frederic BIDON <fredbi@yahoo.com>
1 parent 0f4efce commit b4f393e

31 files changed

+149
-122
lines changed

.golangci.yml

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,25 @@
11
linters-settings:
2-
govet:
3-
check-shadowing: true
4-
golint:
5-
min-confidence: 0
62
gocyclo:
73
min-complexity: 45
8-
maligned:
9-
suggest-new: true
104
dupl:
115
threshold: 200
126
goconst:
137
min-len: 2
148
min-occurrences: 3
159

10+
issues:
11+
# exclude from linting reports various type conversion code smells in the denco router.
12+
exclude-rules:
13+
- path: middleware/denco
14+
linter: gosec
15+
text: G115
16+
1617
linters:
1718
enable-all: true
1819
disable:
20+
- err113 # disabled temporarily: there are just too many issues to address
1921
- nilerr # nilerr crashes on this repo
20-
- maligned
22+
- recvcheck
2123
- unparam
2224
- lll
2325
- gochecknoinits
@@ -30,17 +32,13 @@ linters:
3032
- wrapcheck
3133
- testpackage
3234
- nlreturn
33-
- gomnd
34-
- exhaustivestruct
35-
- goerr113
3635
- errorlint
3736
- nestif
3837
- godot
3938
- gofumpt
4039
- paralleltest
4140
- tparallel
4241
- thelper
43-
- ifshort
4442
- exhaustruct
4543
- varnamelen
4644
- gci
@@ -53,10 +51,15 @@ linters:
5351
- forcetypeassert
5452
- cyclop
5553
# deprecated linters
56-
- deadcode
57-
- interfacer
58-
- scopelint
59-
- varcheck
60-
- structcheck
61-
- golint
62-
- nosnakecase
54+
#- deadcode
55+
#- interfacer
56+
#- scopelint
57+
#- varcheck
58+
#- structcheck
59+
#- golint
60+
#- nosnakecase
61+
#- maligned
62+
#- goerr113
63+
#- ifshort
64+
#- gomnd
65+
#- exhaustivestruct

client/auth_info_test.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,11 +53,11 @@ func TestAPIKeyAuth_Query(t *testing.T) {
5353
func TestAPIKeyAuth_Header(t *testing.T) {
5454
r := newRequest(http.MethodGet, "/", nil)
5555

56-
writer := APIKeyAuth("x-api-token", "header", "the-shared-key")
56+
writer := APIKeyAuth("X-Api-Token", "header", "the-shared-key")
5757
err := writer.AuthenticateRequest(r, nil)
5858
require.NoError(t, err)
5959

60-
assert.Equal(t, "the-shared-key", r.header.Get("x-api-token"))
60+
assert.Equal(t, "the-shared-key", r.header.Get("X-Api-Token"))
6161
}
6262

6363
func TestBearerTokenAuth(t *testing.T) {
@@ -73,10 +73,10 @@ func TestBearerTokenAuth(t *testing.T) {
7373
func TestCompose(t *testing.T) {
7474
r := newRequest(http.MethodGet, "/", nil)
7575

76-
writer := Compose(APIKeyAuth("x-api-key", "header", "the-api-key"), APIKeyAuth("x-secret-key", "header", "the-secret-key"))
76+
writer := Compose(APIKeyAuth("X-Api-Key", "header", "the-api-key"), APIKeyAuth("X-Secret-Key", "header", "the-secret-key"))
7777
err := writer.AuthenticateRequest(r, nil)
7878
require.NoError(t, err)
7979

80-
assert.Equal(t, "the-api-key", r.header.Get("x-api-key"))
81-
assert.Equal(t, "the-secret-key", r.header.Get("x-secret-key"))
80+
assert.Equal(t, "the-api-key", r.header.Get("X-Api-Key"))
81+
assert.Equal(t, "the-secret-key", r.header.Get("X-Secret-Key"))
8282
}

client/opentracing.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@ func (t *tracingTransport) Submit(op *runtime.ClientOperation) (interface{}, err
5050
op.Reader = runtime.ClientResponseReaderFunc(func(response runtime.ClientResponse, consumer runtime.Consumer) (interface{}, error) {
5151
if span != nil {
5252
code := response.Code()
53-
ext.HTTPStatusCode.Set(span, uint16(code))
54-
if code >= 400 {
53+
ext.HTTPStatusCode.Set(span, uint16(code)) //nolint:gosec // safe to convert regular HTTP codes, no adverse impact other than a garbled trace when converting a code larger than 65535
54+
if code >= http.StatusBadRequest {
5555
ext.Error.Set(span, true)
5656
}
5757
}

client/request.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,8 @@ func (r *request) buildHTTP(mediaType, basePath string, producers map[string]run
169169
fileContentType = p.ContentType()
170170
} else {
171171
// Need to read the data so that we can detect the content type
172-
buf := make([]byte, 512)
172+
const contentTypeBufferSize = 512
173+
buf := make([]byte, contentTypeBufferSize)
173174
size, err := fi.Read(buf)
174175
if err != nil && err != io.EOF {
175176
logClose(err, pw)

client/request_test.go

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ func TestBuildRequest_BuildHTTP_NoPayload(t *testing.T) {
142142
req, err := r.BuildHTTP(runtime.JSONMime, "", testProducers, nil)
143143
require.NoError(t, err)
144144
require.NotNil(t, req)
145-
assert.Equal(t, "200", req.Header.Get("x-rate-limit"))
145+
assert.Equal(t, "200", req.Header.Get(strings.ToLower("X-Rate-Limit")))
146146
assert.Equal(t, "world", req.URL.Query().Get("hello"))
147147
assert.Equal(t, "/flats/1234/", req.URL.Path)
148148
}
@@ -162,7 +162,7 @@ func TestBuildRequest_BuildHTTP_Payload(t *testing.T) {
162162
req, err := r.BuildHTTP(runtime.JSONMime, "", testProducers, nil)
163163
require.NoError(t, err)
164164
require.NotNil(t, req)
165-
assert.Equal(t, "200", req.Header.Get("x-rate-limit"))
165+
assert.Equal(t, "200", req.Header.Get(strings.ToLower("X-Rate-Limit")))
166166
assert.Equal(t, "world", req.URL.Query().Get("hello"))
167167
assert.Equal(t, "/flats/1234/", req.URL.Path)
168168
expectedBody, err := json.Marshal(bd)
@@ -197,7 +197,7 @@ func TestBuildRequest_BuildHTTP_SetsInAuth(t *testing.T) {
197197
require.NoError(t, err)
198198
require.NotNil(t, req)
199199

200-
assert.Equal(t, "200", req.Header.Get("x-rate-limit"))
200+
assert.Equal(t, "200", req.Header.Get("X-Rate-Limit"))
201201
assert.Equal(t, "world", req.URL.Query().Get("hello"))
202202
assert.Equal(t, "/flats/1234/", req.URL.Path)
203203
expectedBody, err := json.Marshal(bd)
@@ -227,7 +227,7 @@ func TestBuildRequest_BuildHTTP_XMLPayload(t *testing.T) {
227227
require.NoError(t, err)
228228
require.NotNil(t, req)
229229

230-
assert.Equal(t, "200", req.Header.Get("x-rate-limit"))
230+
assert.Equal(t, "200", req.Header.Get("X-Rate-Limit"))
231231
assert.Equal(t, "world", req.URL.Query().Get("hello"))
232232
assert.Equal(t, "/flats/1234/", req.URL.Path)
233233
expectedBody, err := xml.Marshal(bd)
@@ -254,7 +254,7 @@ func TestBuildRequest_BuildHTTP_TextPayload(t *testing.T) {
254254
require.NoError(t, err)
255255
require.NotNil(t, req)
256256

257-
assert.Equal(t, "200", req.Header.Get("x-rate-limit"))
257+
assert.Equal(t, "200", req.Header.Get("X-Rate-Limit"))
258258
assert.Equal(t, "world", req.URL.Query().Get("hello"))
259259
assert.Equal(t, "/flats/1234/", req.URL.Path)
260260
expectedBody := []byte(bd)
@@ -278,7 +278,7 @@ func TestBuildRequest_BuildHTTP_Form(t *testing.T) {
278278
require.NoError(t, err)
279279
require.NotNil(t, req)
280280

281-
assert.Equal(t, "200", req.Header.Get("x-rate-limit"))
281+
assert.Equal(t, "200", req.Header.Get("X-Rate-Limit"))
282282
assert.Equal(t, "world", req.URL.Query().Get("hello"))
283283
assert.Equal(t, "/flats/1234/", req.URL.Path)
284284
expected := []byte("something=some+value")
@@ -301,7 +301,7 @@ func TestBuildRequest_BuildHTTP_Form_URLEncoded(t *testing.T) {
301301
require.NoError(t, err)
302302
require.NotNil(t, req)
303303

304-
assert.Equal(t, "200", req.Header.Get("x-rate-limit"))
304+
assert.Equal(t, "200", req.Header.Get("X-Rate-Limit"))
305305
assert.Equal(t, runtime.URLencodedFormMime, req.Header.Get(runtime.HeaderContentType))
306306
assert.Equal(t, "world", req.URL.Query().Get("hello"))
307307
assert.Equal(t, "/flats/1234/", req.URL.Path)
@@ -325,7 +325,7 @@ func TestBuildRequest_BuildHTTP_Form_Content_Length(t *testing.T) {
325325
require.NoError(t, err)
326326
require.NotNil(t, req)
327327

328-
assert.Equal(t, "200", req.Header.Get("x-rate-limit"))
328+
assert.Equal(t, "200", req.Header.Get("X-Rate-Limit"))
329329
assert.Equal(t, "world", req.URL.Query().Get("hello"))
330330
assert.Equal(t, "/flats/1234/", req.URL.Path)
331331
assert.Condition(t, func() bool { return req.ContentLength > 0 },
@@ -350,7 +350,7 @@ func TestBuildRequest_BuildHTTP_FormMultipart(t *testing.T) {
350350
require.NoError(t, err)
351351
require.NotNil(t, req)
352352

353-
assert.Equal(t, "200", req.Header.Get("x-rate-limit"))
353+
assert.Equal(t, "200", req.Header.Get("X-Rate-Limit"))
354354
assert.Equal(t, "world", req.URL.Query().Get("hello"))
355355
assert.Equal(t, "/flats/1234/", req.URL.Path)
356356
expected1 := []byte("Content-Disposition: form-data; name=\"something\"")
@@ -383,7 +383,7 @@ func TestBuildRequest_BuildHTTP_FormMultiples(t *testing.T) {
383383
require.NoError(t, err)
384384
require.NotNil(t, req)
385385

386-
assert.Equal(t, "200", req.Header.Get("x-rate-limit"))
386+
assert.Equal(t, "200", req.Header.Get("X-Rate-Limit"))
387387
assert.Equal(t, "world", req.URL.Query().Get("hello"))
388388
assert.Equal(t, "/flats/1234/", req.URL.Path)
389389
expected1 := []byte("Content-Disposition: form-data; name=\"something\"")
@@ -410,7 +410,7 @@ func TestBuildRequest_BuildHTTP_Files(t *testing.T) {
410410
require.NoError(t, err)
411411
cont2, err := os.ReadFile("./request.go")
412412
require.NoError(t, err)
413-
emptyFile, err := os.CreateTemp("", "empty")
413+
emptyFile, err := os.CreateTemp("", "empty") //nolint:usetesting
414414
require.NoError(t, err)
415415

416416
reqWrtr := runtime.ClientRequestWriterFunc(func(req runtime.ClientRequest, _ strfmt.Registry) error {
@@ -429,7 +429,7 @@ func TestBuildRequest_BuildHTTP_Files(t *testing.T) {
429429
require.NoError(t, err)
430430
require.NotNil(t, req)
431431

432-
assert.Equal(t, "200", req.Header.Get("x-rate-limit"))
432+
assert.Equal(t, "200", req.Header.Get("X-Rate-Limit"))
433433
assert.Equal(t, "world", req.URL.Query().Get("hello"))
434434
assert.Equal(t, "/flats/1234/", req.URL.Path)
435435

@@ -482,7 +482,7 @@ func TestBuildRequest_BuildHTTP_Files_URLEncoded(t *testing.T) {
482482
require.NoError(t, err)
483483
require.NotNil(t, req)
484484

485-
assert.Equal(t, "200", req.Header.Get("x-rate-limit"))
485+
assert.Equal(t, "200", req.Header.Get("X-Rate-Limit"))
486486
assert.Equal(t, "world", req.URL.Query().Get("hello"))
487487
assert.Equal(t, "/flats/1234/", req.URL.Path)
488488
mediaType, params, err := mime.ParseMediaType(req.Header.Get(runtime.HeaderContentType))
@@ -581,7 +581,7 @@ func TestBuildRequest_BuildHTTP_BasePath(t *testing.T) {
581581
req, err := r.BuildHTTP(runtime.JSONMime, "/basepath", testProducers, nil)
582582
require.NoError(t, err)
583583
require.NotNil(t, req)
584-
assert.Equal(t, "200", req.Header.Get("x-rate-limit"))
584+
assert.Equal(t, "200", req.Header.Get("X-Rate-Limit"))
585585
assert.Equal(t, "world", req.URL.Query().Get("hello"))
586586
assert.Equal(t, "/basepath/flats/1234/", req.URL.Path)
587587
}
@@ -600,7 +600,7 @@ func TestBuildRequest_BuildHTTP_EscapedPath(t *testing.T) {
600600
require.NoError(t, err)
601601
require.NotNil(t, req)
602602

603-
assert.Equal(t, "200", req.Header.Get("x-rate-limit"))
603+
assert.Equal(t, "200", req.Header.Get("X-Rate-Limit"))
604604
assert.Equal(t, "world", req.URL.Query().Get("hello"))
605605
assert.Equal(t, "/basepath/flats/1234/?*&^%/", req.URL.Path)
606606
assert.Equal(t, "/basepath/flats/1234%2F%3F%2A&%5E%25/", req.URL.RawPath)
@@ -693,7 +693,7 @@ func TestGetBodyCallsBeforeRoundTrip(t *testing.T) {
693693
server := httptest.NewServer(http.HandlerFunc(func(rw http.ResponseWriter, _ *http.Request) {
694694
rw.WriteHeader(http.StatusCreated)
695695
_, err := rw.Write([]byte("test result"))
696-
require.NoError(t, err)
696+
assert.NoError(t, err)
697697
}))
698698
defer server.Close()
699699
hu, err := url.Parse(server.URL)

client/runtime_test.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ func TestRuntime_Concurrent(t *testing.T) {
6969
rw.Header().Add(runtime.HeaderContentType, runtime.JSONMime)
7070
rw.WriteHeader(http.StatusOK)
7171
jsongen := json.NewEncoder(rw)
72-
require.NoError(t, jsongen.Encode(result))
72+
assert.NoError(t, jsongen.Encode(result))
7373
}))
7474
defer server.Close()
7575

@@ -145,7 +145,7 @@ func TestRuntime_Canary(t *testing.T) {
145145
rw.Header().Add(runtime.HeaderContentType, runtime.JSONMime)
146146
rw.WriteHeader(http.StatusOK)
147147
jsongen := json.NewEncoder(rw)
148-
require.NoError(t, jsongen.Encode(result))
148+
assert.NoError(t, jsongen.Encode(result))
149149
}))
150150
defer server.Close()
151151

@@ -196,7 +196,7 @@ func TestRuntime_XMLCanary(t *testing.T) {
196196
rw.Header().Add(runtime.HeaderContentType, runtime.XMLMime)
197197
rw.WriteHeader(http.StatusOK)
198198
xmlgen := xml.NewEncoder(rw)
199-
require.NoError(t, xmlgen.Encode(result))
199+
assert.NoError(t, xmlgen.Encode(result))
200200
}))
201201
defer server.Close()
202202

@@ -344,7 +344,7 @@ func TestRuntime_CustomTransport(t *testing.T) {
344344
var resp http.Response
345345
resp.StatusCode = http.StatusOK
346346
resp.Header = make(http.Header)
347-
resp.Header.Set("content-type", "application/json")
347+
resp.Header.Set("Content-Type", "application/json")
348348
buf := bytes.NewBuffer(nil)
349349
enc := json.NewEncoder(buf)
350350
require.NoError(t, enc.Encode(result))
@@ -395,7 +395,7 @@ func TestRuntime_CustomCookieJar(t *testing.T) {
395395
rw.Header().Add(runtime.HeaderContentType, runtime.JSONMime)
396396
rw.WriteHeader(http.StatusOK)
397397
jsongen := json.NewEncoder(rw)
398-
require.NoError(t, jsongen.Encode([]task{}))
398+
assert.NoError(t, jsongen.Encode([]task{}))
399399
} else {
400400
rw.WriteHeader(http.StatusUnauthorized)
401401
}
@@ -453,7 +453,7 @@ func TestRuntime_AuthCanary(t *testing.T) {
453453
rw.Header().Add(runtime.HeaderContentType, runtime.JSONMime)
454454
rw.WriteHeader(http.StatusOK)
455455
jsongen := json.NewEncoder(rw)
456-
require.NoError(t, jsongen.Encode(result))
456+
assert.NoError(t, jsongen.Encode(result))
457457
}))
458458
defer server.Close()
459459

client/runtime_tls_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ func testTLSServer(t testing.TB, fixtures *tlsFixtures, expectedResult []task) (
185185
rw.Header().Add(runtime.HeaderContentType, runtime.JSONMime)
186186
rw.WriteHeader(http.StatusOK)
187187
jsongen := json.NewEncoder(rw)
188-
require.NoError(t, jsongen.Encode(expectedResult))
188+
assert.NoError(t, jsongen.Encode(expectedResult))
189189
}))
190190

191191
// create server tls config

client_request_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,13 @@ import (
2323

2424
func TestRequestWriterFunc(t *testing.T) {
2525
hand := ClientRequestWriterFunc(func(r ClientRequest, _ strfmt.Registry) error {
26-
_ = r.SetHeaderParam("blah", "blahblah")
26+
_ = r.SetHeaderParam("Blah", "blahblah")
2727
_ = r.SetBodyParam(struct{ Name string }{"Adriana"})
2828
return nil
2929
})
3030

3131
tr := new(TestClientRequest)
3232
_ = hand.WriteToRequest(tr, nil)
33-
assert.Equal(t, "blahblah", tr.Headers.Get("blah"))
33+
assert.Equal(t, "blahblah", tr.Headers.Get("Blah"))
3434
assert.Equal(t, "Adriana", tr.Body.(struct{ Name string }).Name)
3535
}

client_response.go

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -74,27 +74,31 @@ func (o *APIError) String() string {
7474
return o.Error()
7575
}
7676

77-
// IsSuccess returns true when this elapse o k response returns a 2xx status code
77+
// IsSuccess returns true when this API response returns a 2xx status code
7878
func (o *APIError) IsSuccess() bool {
79-
return o.Code/100 == 2
79+
const statusOK = 2
80+
return o.Code/100 == statusOK
8081
}
8182

82-
// IsRedirect returns true when this elapse o k response returns a 3xx status code
83+
// IsRedirect returns true when this API response returns a 3xx status code
8384
func (o *APIError) IsRedirect() bool {
84-
return o.Code/100 == 3
85+
const statusRedirect = 3
86+
return o.Code/100 == statusRedirect
8587
}
8688

87-
// IsClientError returns true when this elapse o k response returns a 4xx status code
89+
// IsClientError returns true when this API response returns a 4xx status code
8890
func (o *APIError) IsClientError() bool {
89-
return o.Code/100 == 4
91+
const statusClientError = 4
92+
return o.Code/100 == statusClientError
9093
}
9194

92-
// IsServerError returns true when this elapse o k response returns a 5xx status code
95+
// IsServerError returns true when this API response returns a 5xx status code
9396
func (o *APIError) IsServerError() bool {
94-
return o.Code/100 == 5
97+
const statusServerError = 5
98+
return o.Code/100 == statusServerError
9599
}
96100

97-
// IsCode returns true when this elapse o k response returns a 4xx status code
101+
// IsCode returns true when this API response returns a given status code
98102
func (o *APIError) IsCode(code int) bool {
99103
return o.Code == code
100104
}

0 commit comments

Comments
 (0)