Skip to content

Relint #338

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Mar 12, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 22 additions & 18 deletions .golangci.yml
Original file line number Diff line number Diff line change
@@ -1,23 +1,26 @@
linters-settings:
govet:
check-shadowing: true
golint:
min-confidence: 0
gocyclo:
min-complexity: 45
maligned:
suggest-new: true
dupl:
threshold: 200
goconst:
min-len: 2
min-occurrences: 3

issues:
# exclude from linting reports various type conversion code smells in the denco router.
exclude-rules:
- path: middleware/denco
linters:
- gosec
text: G115

linters:
enable-all: true
disable:
- err113 # disabled temporarily: there are just too many issues to address
- nilerr # nilerr crashes on this repo
- maligned
- recvcheck
- unparam
- lll
- gochecknoinits
Expand All @@ -30,17 +33,13 @@ linters:
- wrapcheck
- testpackage
- nlreturn
- gomnd
- exhaustivestruct
- goerr113
- errorlint
- nestif
- godot
- gofumpt
- paralleltest
- tparallel
- thelper
- ifshort
- exhaustruct
- varnamelen
- gci
Expand All @@ -53,10 +52,15 @@ linters:
- forcetypeassert
- cyclop
# deprecated linters
- deadcode
- interfacer
- scopelint
- varcheck
- structcheck
- golint
- nosnakecase
#- deadcode
#- interfacer
#- scopelint
#- varcheck
#- structcheck
#- golint
#- nosnakecase
#- maligned
#- goerr113
#- ifshort
#- gomnd
#- exhaustivestruct
10 changes: 5 additions & 5 deletions client/auth_info_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,11 +53,11 @@ func TestAPIKeyAuth_Query(t *testing.T) {
func TestAPIKeyAuth_Header(t *testing.T) {
r := newRequest(http.MethodGet, "/", nil)

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

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

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

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

assert.Equal(t, "the-api-key", r.header.Get("x-api-key"))
assert.Equal(t, "the-secret-key", r.header.Get("x-secret-key"))
assert.Equal(t, "the-api-key", r.header.Get("X-Api-Key"))
assert.Equal(t, "the-secret-key", r.header.Get("X-Secret-Key"))
}
4 changes: 2 additions & 2 deletions client/opentracing.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,8 @@ func (t *tracingTransport) Submit(op *runtime.ClientOperation) (interface{}, err
op.Reader = runtime.ClientResponseReaderFunc(func(response runtime.ClientResponse, consumer runtime.Consumer) (interface{}, error) {
if span != nil {
code := response.Code()
ext.HTTPStatusCode.Set(span, uint16(code))
if code >= 400 {
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
if code >= http.StatusBadRequest {
ext.Error.Set(span, true)
}
}
Expand Down
3 changes: 2 additions & 1 deletion client/request.go
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,8 @@ func (r *request) buildHTTP(mediaType, basePath string, producers map[string]run
fileContentType = p.ContentType()
} else {
// Need to read the data so that we can detect the content type
buf := make([]byte, 512)
const contentTypeBufferSize = 512
buf := make([]byte, contentTypeBufferSize)
size, err := fi.Read(buf)
if err != nil && err != io.EOF {
logClose(err, pw)
Expand Down
32 changes: 16 additions & 16 deletions client/request_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ func TestBuildRequest_BuildHTTP_NoPayload(t *testing.T) {
req, err := r.BuildHTTP(runtime.JSONMime, "", testProducers, nil)
require.NoError(t, err)
require.NotNil(t, req)
assert.Equal(t, "200", req.Header.Get("x-rate-limit"))
assert.Equal(t, "200", req.Header.Get(strings.ToLower("X-Rate-Limit")))
assert.Equal(t, "world", req.URL.Query().Get("hello"))
assert.Equal(t, "/flats/1234/", req.URL.Path)
}
Expand All @@ -162,7 +162,7 @@ func TestBuildRequest_BuildHTTP_Payload(t *testing.T) {
req, err := r.BuildHTTP(runtime.JSONMime, "", testProducers, nil)
require.NoError(t, err)
require.NotNil(t, req)
assert.Equal(t, "200", req.Header.Get("x-rate-limit"))
assert.Equal(t, "200", req.Header.Get(strings.ToLower("X-Rate-Limit")))
assert.Equal(t, "world", req.URL.Query().Get("hello"))
assert.Equal(t, "/flats/1234/", req.URL.Path)
expectedBody, err := json.Marshal(bd)
Expand Down Expand Up @@ -197,7 +197,7 @@ func TestBuildRequest_BuildHTTP_SetsInAuth(t *testing.T) {
require.NoError(t, err)
require.NotNil(t, req)

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

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

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

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

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

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

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

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

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

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

Expand Down Expand Up @@ -482,7 +482,7 @@ func TestBuildRequest_BuildHTTP_Files_URLEncoded(t *testing.T) {
require.NoError(t, err)
require.NotNil(t, req)

assert.Equal(t, "200", req.Header.Get("x-rate-limit"))
assert.Equal(t, "200", req.Header.Get("X-Rate-Limit"))
assert.Equal(t, "world", req.URL.Query().Get("hello"))
assert.Equal(t, "/flats/1234/", req.URL.Path)
mediaType, params, err := mime.ParseMediaType(req.Header.Get(runtime.HeaderContentType))
Expand Down Expand Up @@ -581,7 +581,7 @@ func TestBuildRequest_BuildHTTP_BasePath(t *testing.T) {
req, err := r.BuildHTTP(runtime.JSONMime, "/basepath", testProducers, nil)
require.NoError(t, err)
require.NotNil(t, req)
assert.Equal(t, "200", req.Header.Get("x-rate-limit"))
assert.Equal(t, "200", req.Header.Get("X-Rate-Limit"))
assert.Equal(t, "world", req.URL.Query().Get("hello"))
assert.Equal(t, "/basepath/flats/1234/", req.URL.Path)
}
Expand All @@ -600,7 +600,7 @@ func TestBuildRequest_BuildHTTP_EscapedPath(t *testing.T) {
require.NoError(t, err)
require.NotNil(t, req)

assert.Equal(t, "200", req.Header.Get("x-rate-limit"))
assert.Equal(t, "200", req.Header.Get("X-Rate-Limit"))
assert.Equal(t, "world", req.URL.Query().Get("hello"))
assert.Equal(t, "/basepath/flats/1234/?*&^%/", req.URL.Path)
assert.Equal(t, "/basepath/flats/1234%2F%3F%2A&%5E%25/", req.URL.RawPath)
Expand Down Expand Up @@ -693,7 +693,7 @@ func TestGetBodyCallsBeforeRoundTrip(t *testing.T) {
server := httptest.NewServer(http.HandlerFunc(func(rw http.ResponseWriter, _ *http.Request) {
rw.WriteHeader(http.StatusCreated)
_, err := rw.Write([]byte("test result"))
require.NoError(t, err)
assert.NoError(t, err)
}))
defer server.Close()
hu, err := url.Parse(server.URL)
Expand Down
12 changes: 6 additions & 6 deletions client/runtime_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ func TestRuntime_Concurrent(t *testing.T) {
rw.Header().Add(runtime.HeaderContentType, runtime.JSONMime)
rw.WriteHeader(http.StatusOK)
jsongen := json.NewEncoder(rw)
require.NoError(t, jsongen.Encode(result))
assert.NoError(t, jsongen.Encode(result))
}))
defer server.Close()

Expand Down Expand Up @@ -145,7 +145,7 @@ func TestRuntime_Canary(t *testing.T) {
rw.Header().Add(runtime.HeaderContentType, runtime.JSONMime)
rw.WriteHeader(http.StatusOK)
jsongen := json.NewEncoder(rw)
require.NoError(t, jsongen.Encode(result))
assert.NoError(t, jsongen.Encode(result))
}))
defer server.Close()

Expand Down Expand Up @@ -196,7 +196,7 @@ func TestRuntime_XMLCanary(t *testing.T) {
rw.Header().Add(runtime.HeaderContentType, runtime.XMLMime)
rw.WriteHeader(http.StatusOK)
xmlgen := xml.NewEncoder(rw)
require.NoError(t, xmlgen.Encode(result))
assert.NoError(t, xmlgen.Encode(result))
}))
defer server.Close()

Expand Down Expand Up @@ -344,7 +344,7 @@ func TestRuntime_CustomTransport(t *testing.T) {
var resp http.Response
resp.StatusCode = http.StatusOK
resp.Header = make(http.Header)
resp.Header.Set("content-type", "application/json")
resp.Header.Set("Content-Type", "application/json")
buf := bytes.NewBuffer(nil)
enc := json.NewEncoder(buf)
require.NoError(t, enc.Encode(result))
Expand Down Expand Up @@ -395,7 +395,7 @@ func TestRuntime_CustomCookieJar(t *testing.T) {
rw.Header().Add(runtime.HeaderContentType, runtime.JSONMime)
rw.WriteHeader(http.StatusOK)
jsongen := json.NewEncoder(rw)
require.NoError(t, jsongen.Encode([]task{}))
assert.NoError(t, jsongen.Encode([]task{}))
} else {
rw.WriteHeader(http.StatusUnauthorized)
}
Expand Down Expand Up @@ -453,7 +453,7 @@ func TestRuntime_AuthCanary(t *testing.T) {
rw.Header().Add(runtime.HeaderContentType, runtime.JSONMime)
rw.WriteHeader(http.StatusOK)
jsongen := json.NewEncoder(rw)
require.NoError(t, jsongen.Encode(result))
assert.NoError(t, jsongen.Encode(result))
}))
defer server.Close()

Expand Down
2 changes: 1 addition & 1 deletion client/runtime_tls_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ func testTLSServer(t testing.TB, fixtures *tlsFixtures, expectedResult []task) (
rw.Header().Add(runtime.HeaderContentType, runtime.JSONMime)
rw.WriteHeader(http.StatusOK)
jsongen := json.NewEncoder(rw)
require.NoError(t, jsongen.Encode(expectedResult))
assert.NoError(t, jsongen.Encode(expectedResult))
}))

// create server tls config
Expand Down
4 changes: 2 additions & 2 deletions client_request_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,13 @@ import (

func TestRequestWriterFunc(t *testing.T) {
hand := ClientRequestWriterFunc(func(r ClientRequest, _ strfmt.Registry) error {
_ = r.SetHeaderParam("blah", "blahblah")
_ = r.SetHeaderParam("Blah", "blahblah")
_ = r.SetBodyParam(struct{ Name string }{"Adriana"})
return nil
})

tr := new(TestClientRequest)
_ = hand.WriteToRequest(tr, nil)
assert.Equal(t, "blahblah", tr.Headers.Get("blah"))
assert.Equal(t, "blahblah", tr.Headers.Get("Blah"))
assert.Equal(t, "Adriana", tr.Body.(struct{ Name string }).Name)
}
22 changes: 13 additions & 9 deletions client_response.go
Original file line number Diff line number Diff line change
Expand Up @@ -74,27 +74,31 @@ func (o *APIError) String() string {
return o.Error()
}

// IsSuccess returns true when this elapse o k response returns a 2xx status code
// IsSuccess returns true when this API response returns a 2xx status code
func (o *APIError) IsSuccess() bool {
return o.Code/100 == 2
const statusOK = 2
return o.Code/100 == statusOK
}

// IsRedirect returns true when this elapse o k response returns a 3xx status code
// IsRedirect returns true when this API response returns a 3xx status code
func (o *APIError) IsRedirect() bool {
return o.Code/100 == 3
const statusRedirect = 3
return o.Code/100 == statusRedirect
}

// IsClientError returns true when this elapse o k response returns a 4xx status code
// IsClientError returns true when this API response returns a 4xx status code
func (o *APIError) IsClientError() bool {
return o.Code/100 == 4
const statusClientError = 4
return o.Code/100 == statusClientError
}

// IsServerError returns true when this elapse o k response returns a 5xx status code
// IsServerError returns true when this API response returns a 5xx status code
func (o *APIError) IsServerError() bool {
return o.Code/100 == 5
const statusServerError = 5
return o.Code/100 == statusServerError
}

// IsCode returns true when this elapse o k response returns a 4xx status code
// IsCode returns true when this API response returns a given status code
func (o *APIError) IsCode(code int) bool {
return o.Code == code
}
Expand Down
Loading
Loading