Skip to content

CI: enable linter "noctx" #3528

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 3 commits into from
Mar 24, 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
1 change: 0 additions & 1 deletion .golangci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -285,7 +285,6 @@ linters:
- ireturn # Accept Interfaces, Return Concrete Types
- mnd # An analyzer to detect magic numbers.
- nilnil # Checks that there is no simultaneous return of `nil` error and an invalid value.
- noctx # Finds sending http request without context.Context
- unparam # Reports unused function parameters

#
Expand Down
30 changes: 25 additions & 5 deletions pkg/acquisition/modules/http/http_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -254,7 +254,12 @@ basic_auth:

time.Sleep(1 * time.Second)

res, err := http.Get(fmt.Sprintf("%s/test", testHTTPServerAddr))
ctx := t.Context()

req, err := http.NewRequestWithContext(ctx, http.MethodGet, testHTTPServerAddr + "/test", http.NoBody)
require.NoError(t, err)

res, err := http.DefaultClient.Do(req)
require.NoError(t, err)
assert.Equal(t, http.StatusMethodNotAllowed, res.StatusCode)

Expand All @@ -265,6 +270,8 @@ basic_auth:
}

func TestStreamingAcquisitionUnknownPath(t *testing.T) {
ctx := t.Context()

h := &HTTPSource{}
_, _, tomb := SetupAndRunHTTPSource(t, h, []byte(`
source: http
Expand All @@ -277,7 +284,10 @@ basic_auth:

time.Sleep(1 * time.Second)

res, err := http.Get(fmt.Sprintf("%s/unknown", testHTTPServerAddr))
req, err := http.NewRequestWithContext(ctx, http.MethodGet, testHTTPServerAddr + "/unknown", http.NoBody)
require.NoError(t, err)

res, err := http.DefaultClient.Do(req)
require.NoError(t, err)
assert.Equal(t, http.StatusNotFound, res.StatusCode)

Expand All @@ -303,11 +313,15 @@ basic_auth:

client := &http.Client{}

resp, err := http.Post(fmt.Sprintf("%s/test", testHTTPServerAddr), "application/json", strings.NewReader("test"))
req, err := http.NewRequestWithContext(ctx, http.MethodPost, testHTTPServerAddr + "/test", strings.NewReader("test"))
require.NoError(t, err)
req.Header.Set("Content-Type", "application/json")

resp, err := http.DefaultClient.Do(req)
require.NoError(t, err)
assert.Equal(t, http.StatusUnauthorized, resp.StatusCode)

req, err := http.NewRequestWithContext(ctx, http.MethodPost, fmt.Sprintf("%s/test", testHTTPServerAddr), strings.NewReader("test"))
req, err = http.NewRequestWithContext(ctx, http.MethodPost, testHTTPServerAddr + "/test", strings.NewReader("test"))
require.NoError(t, err)
req.SetBasicAuth("test", "WrongPassword")

Expand Down Expand Up @@ -553,6 +567,8 @@ timeout: 1s`), 0)
}

func TestStreamingAcquisitionTLSHTTPRequest(t *testing.T) {
ctx := t.Context()

h := &HTTPSource{}
_, _, tomb := SetupAndRunHTTPSource(t, h, []byte(`
source: http
Expand All @@ -566,7 +582,11 @@ tls:

time.Sleep(1 * time.Second)

resp, err := http.Post(fmt.Sprintf("%s/test", testHTTPServerAddr), "application/json", strings.NewReader("test"))
req, err := http.NewRequestWithContext(ctx, http.MethodPost, testHTTPServerAddr + "/test", strings.NewReader("test"))
require.NoError(t, err)
req.Header.Set("Content-Type", "application/json")

resp, err := http.DefaultClient.Do(req)
require.NoError(t, err)

assert.Equal(t, http.StatusBadRequest, resp.StatusCode)
Expand Down
10 changes: 5 additions & 5 deletions pkg/apiclient/alerts_service.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ type AlertsDeleteOpts struct {
func (s *AlertsService) Add(ctx context.Context, alerts models.AddAlertsRequest) (*models.AddAlertsResponse, *Response, error) {
u := fmt.Sprintf("%s/alerts", s.client.URLPrefix)

req, err := s.client.NewRequestWithContext(ctx, http.MethodPost, u, &alerts)
req, err := s.client.PrepareRequest(ctx, http.MethodPost, u, &alerts)
if err != nil {
return nil, nil, err
}
Expand Down Expand Up @@ -78,7 +78,7 @@ func (s *AlertsService) List(ctx context.Context, opts AlertsListOpts) (*models.
URI = fmt.Sprintf("%s?%s", URI, params.Encode())
}

req, err := s.client.NewRequestWithContext(ctx, http.MethodGet, URI, nil)
req, err := s.client.PrepareRequest(ctx, http.MethodGet, URI, nil)
if err != nil {
return nil, nil, fmt.Errorf("building request: %w", err)
}
Expand All @@ -102,7 +102,7 @@ func (s *AlertsService) Delete(ctx context.Context, opts AlertsDeleteOpts) (*mod

u := fmt.Sprintf("%s/alerts?%s", s.client.URLPrefix, params.Encode())

req, err := s.client.NewRequestWithContext(ctx, http.MethodDelete, u, nil)
req, err := s.client.PrepareRequest(ctx, http.MethodDelete, u, nil)
if err != nil {
return nil, nil, err
}
Expand All @@ -120,7 +120,7 @@ func (s *AlertsService) Delete(ctx context.Context, opts AlertsDeleteOpts) (*mod
func (s *AlertsService) DeleteOne(ctx context.Context, alertID string) (*models.DeleteAlertsResponse, *Response, error) {
u := fmt.Sprintf("%s/alerts/%s", s.client.URLPrefix, alertID)

req, err := s.client.NewRequestWithContext(ctx, http.MethodDelete, u, nil)
req, err := s.client.PrepareRequest(ctx, http.MethodDelete, u, nil)
if err != nil {
return nil, nil, err
}
Expand All @@ -138,7 +138,7 @@ func (s *AlertsService) DeleteOne(ctx context.Context, alertID string) (*models.
func (s *AlertsService) GetByID(ctx context.Context, alertID int) (*models.Alert, *Response, error) {
u := fmt.Sprintf("%s/alerts/%d", s.client.URLPrefix, alertID)

req, err := s.client.NewRequestWithContext(ctx, http.MethodGet, u, nil)
req, err := s.client.PrepareRequest(ctx, http.MethodGet, u, nil)
if err != nil {
return nil, nil, err
}
Expand Down
8 changes: 4 additions & 4 deletions pkg/apiclient/allowlists_service.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@

u += "?" + params.Encode()

req, err := s.client.NewRequestWithContext(ctx, http.MethodGet, u, nil)
req, err := s.client.PrepareRequest(ctx, http.MethodGet, u, nil)
if err != nil {
return nil, nil, err
}
Expand Down Expand Up @@ -58,7 +58,7 @@

log.Debugf("GET %s", u)

req, err := s.client.NewRequestWithContext(ctx, http.MethodGet, u, nil)
req, err := s.client.PrepareRequest(ctx, http.MethodGet, u, nil)
if err != nil {
return nil, nil, err
}
Expand All @@ -76,7 +76,7 @@
func (s *AllowlistsService) CheckIfAllowlisted(ctx context.Context, value string) (bool, *Response, error) {
u := s.client.URLPrefix + "/allowlists/check/" + value

req, err := s.client.NewRequestWithContext(ctx, http.MethodHead, u, nil)
req, err := s.client.PrepareRequest(ctx, http.MethodHead, u, nil)

Check warning on line 79 in pkg/apiclient/allowlists_service.go

View check run for this annotation

Codecov / codecov/patch

pkg/apiclient/allowlists_service.go#L79

Added line #L79 was not covered by tests
if err != nil {
return false, nil, err
}
Expand All @@ -94,7 +94,7 @@
func (s *AllowlistsService) CheckIfAllowlistedWithReason(ctx context.Context, value string) (*models.CheckAllowlistResponse, *Response, error) {
u := s.client.URLPrefix + "/allowlists/check/" + value

req, err := s.client.NewRequestWithContext(ctx, http.MethodGet, u, nil)
req, err := s.client.PrepareRequest(ctx, http.MethodGet, u, nil)
if err != nil {
return nil, nil, err
}
Expand Down
8 changes: 4 additions & 4 deletions pkg/apiclient/auth_service.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ type enrollRequest struct {
func (s *AuthService) UnregisterWatcher(ctx context.Context) (*Response, error) {
u := fmt.Sprintf("%s/watchers", s.client.URLPrefix)

req, err := s.client.NewRequestWithContext(ctx, http.MethodDelete, u, nil)
req, err := s.client.PrepareRequest(ctx, http.MethodDelete, u, nil)
if err != nil {
return nil, err
}
Expand All @@ -37,7 +37,7 @@ func (s *AuthService) UnregisterWatcher(ctx context.Context) (*Response, error)
func (s *AuthService) RegisterWatcher(ctx context.Context, registration models.WatcherRegistrationRequest) (*Response, error) {
u := fmt.Sprintf("%s/watchers", s.client.URLPrefix)

req, err := s.client.NewRequestWithContext(ctx, http.MethodPost, u, &registration)
req, err := s.client.PrepareRequest(ctx, http.MethodPost, u, &registration)
if err != nil {
return nil, err
}
Expand All @@ -55,7 +55,7 @@ func (s *AuthService) AuthenticateWatcher(ctx context.Context, auth models.Watch

u := fmt.Sprintf("%s/watchers/login", s.client.URLPrefix)

req, err := s.client.NewRequestWithContext(ctx, http.MethodPost, u, &auth)
req, err := s.client.PrepareRequest(ctx, http.MethodPost, u, &auth)
if err != nil {
return authResp, nil, err
}
Expand All @@ -71,7 +71,7 @@ func (s *AuthService) AuthenticateWatcher(ctx context.Context, auth models.Watch
func (s *AuthService) EnrollWatcher(ctx context.Context, enrollKey string, name string, tags []string, overwrite bool) (*Response, error) {
u := fmt.Sprintf("%s/watchers/enroll", s.client.URLPrefix)

req, err := s.client.NewRequestWithContext(ctx, http.MethodPost, u, &enrollRequest{EnrollKey: enrollKey, Name: name, Tags: tags, Overwrite: overwrite})
req, err := s.client.PrepareRequest(ctx, http.MethodPost, u, &enrollRequest{EnrollKey: enrollKey, Name: name, Tags: tags, Overwrite: overwrite})
if err != nil {
return nil, err
}
Expand Down
2 changes: 1 addition & 1 deletion pkg/apiclient/client_http.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import (
log "github.com/sirupsen/logrus"
)

func (c *ApiClient) NewRequestWithContext(ctx context.Context, method, url string, body interface{}) (*http.Request, error) {
func (c *ApiClient) PrepareRequest(ctx context.Context, method, url string, body interface{}) (*http.Request, error) {
if !strings.HasSuffix(c.BaseURL.Path, "/") {
return nil, fmt.Errorf("BaseURL must have a trailing slash, but %q does not", c.BaseURL)
}
Expand Down
14 changes: 7 additions & 7 deletions pkg/apiclient/decisions_service.go
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@

u := fmt.Sprintf("%s/decisions?%s", s.client.URLPrefix, params.Encode())

req, err := s.client.NewRequestWithContext(ctx, http.MethodGet, u, nil)
req, err := s.client.PrepareRequest(ctx, http.MethodGet, u, nil)
if err != nil {
return nil, nil, err
}
Expand All @@ -97,7 +97,7 @@
}

func (s *DecisionsService) FetchV2Decisions(ctx context.Context, url string) (*models.DecisionsStreamResponse, *Response, error) {
req, err := s.client.NewRequestWithContext(ctx, http.MethodGet, url, nil)
req, err := s.client.PrepareRequest(ctx, http.MethodGet, url, nil)
if err != nil {
return nil, nil, err
}
Expand Down Expand Up @@ -138,7 +138,7 @@
scenarioDeleted := "deleted"
durationDeleted := "1h"

req, err := s.client.NewRequestWithContext(ctx, http.MethodGet, url, nil)
req, err := s.client.PrepareRequest(ctx, http.MethodGet, url, nil)
if err != nil {
return nil, nil, err
}
Expand Down Expand Up @@ -271,7 +271,7 @@
return nil, nil, err
}

req, err := s.client.NewRequestWithContext(ctx, http.MethodGet, u, nil)
req, err := s.client.PrepareRequest(ctx, http.MethodGet, u, nil)
if err != nil {
return nil, nil, err
}
Expand All @@ -289,7 +289,7 @@
func (s *DecisionsService) StopStream(ctx context.Context) (*Response, error) {
u := fmt.Sprintf("%s/decisions", s.client.URLPrefix)

req, err := s.client.NewRequestWithContext(ctx, http.MethodDelete, u, nil)
req, err := s.client.PrepareRequest(ctx, http.MethodDelete, u, nil)
if err != nil {
return nil, err
}
Expand All @@ -310,7 +310,7 @@

u := fmt.Sprintf("%s/decisions?%s", s.client.URLPrefix, params.Encode())

req, err := s.client.NewRequestWithContext(ctx, http.MethodDelete, u, nil)
req, err := s.client.PrepareRequest(ctx, http.MethodDelete, u, nil)
if err != nil {
return nil, nil, err
}
Expand All @@ -328,7 +328,7 @@
func (s *DecisionsService) DeleteOne(ctx context.Context, decisionID string) (*models.DeleteDecisionResponse, *Response, error) {
u := fmt.Sprintf("%s/decisions/%s", s.client.URLPrefix, decisionID)

req, err := s.client.NewRequestWithContext(ctx, http.MethodDelete, u, nil)
req, err := s.client.PrepareRequest(ctx, http.MethodDelete, u, nil)

Check warning on line 331 in pkg/apiclient/decisions_service.go

View check run for this annotation

Codecov / codecov/patch

pkg/apiclient/decisions_service.go#L331

Added line #L331 was not covered by tests
if err != nil {
return nil, nil, err
}
Expand Down
2 changes: 1 addition & 1 deletion pkg/apiclient/decisions_sync_service.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@
func (d *DecisionDeleteService) Add(ctx context.Context, deletedDecisions *models.DecisionsDeleteRequest) (interface{}, *Response, error) {
u := fmt.Sprintf("%s/decisions/delete", d.client.URLPrefix)

req, err := d.client.NewRequestWithContext(ctx, http.MethodPost, u, &deletedDecisions)
req, err := d.client.PrepareRequest(ctx, http.MethodPost, u, &deletedDecisions)
if err != nil {

Check warning on line 20 in pkg/apiclient/decisions_sync_service.go

View check run for this annotation

Codecov / codecov/patch

pkg/apiclient/decisions_sync_service.go#L19-L20

Added lines #L19 - L20 were not covered by tests
return nil, nil, fmt.Errorf("while building request: %w", err)
}

Expand Down
2 changes: 1 addition & 1 deletion pkg/apiclient/heartbeat.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ type HeartBeatService service
func (h *HeartBeatService) Ping(ctx context.Context) (bool, *Response, error) {
u := fmt.Sprintf("%s/heartbeat", h.client.URLPrefix)

req, err := h.client.NewRequestWithContext(ctx, http.MethodGet, u, nil)
req, err := h.client.PrepareRequest(ctx, http.MethodGet, u, nil)
if err != nil {
return false, nil, err
}
Expand Down
2 changes: 1 addition & 1 deletion pkg/apiclient/metrics.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ type MetricsService service
func (s *MetricsService) Add(ctx context.Context, metrics *models.Metrics) (interface{}, *Response, error) {
u := fmt.Sprintf("%s/metrics/", s.client.URLPrefix)

req, err := s.client.NewRequestWithContext(ctx, http.MethodPost, u, &metrics)
req, err := s.client.PrepareRequest(ctx, http.MethodPost, u, &metrics)
if err != nil {
return nil, nil, err
}
Expand Down
2 changes: 1 addition & 1 deletion pkg/apiclient/signal.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ type SignalService service
func (s *SignalService) Add(ctx context.Context, signals *models.AddSignalsRequest) (interface{}, *Response, error) {
u := fmt.Sprintf("%s/signals", s.client.URLPrefix)

req, err := s.client.NewRequestWithContext(ctx, http.MethodPost, u, &signals)
req, err := s.client.PrepareRequest(ctx, http.MethodPost, u, &signals)
if err != nil {
return nil, nil, fmt.Errorf("while building request: %w", err)
}
Expand Down
2 changes: 1 addition & 1 deletion pkg/apiclient/usagemetrics.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ type UsageMetricsService service
func (s *UsageMetricsService) Add(ctx context.Context, metrics *models.AllMetrics) (interface{}, *Response, error) {
u := fmt.Sprintf("%s/usage-metrics", s.client.URLPrefix)

req, err := s.client.NewRequestWithContext(ctx, http.MethodPost, u, &metrics)
req, err := s.client.PrepareRequest(ctx, http.MethodPost, u, &metrics)
if err != nil {
return nil, nil, err
}
Expand Down
8 changes: 7 additions & 1 deletion pkg/apiserver/apic.go
Original file line number Diff line number Diff line change
Expand Up @@ -754,7 +754,13 @@
description = *link.Description
}

resp, err := defaultClient.GetClient().Get(*link.URL)
req, err := http.NewRequestWithContext(ctx, http.MethodGet, *link.URL, http.NoBody)
if err != nil {
log.Errorf("while pulling allowlist: %s", err)
continue

Check warning on line 760 in pkg/apiserver/apic.go

View check run for this annotation

Codecov / codecov/patch

pkg/apiserver/apic.go#L759-L760

Added lines #L759 - L760 were not covered by tests
}

resp, err := defaultClient.GetClient().Do(req)
if err != nil {
log.Errorf("while pulling allowlist: %s", err)
continue
Expand Down
Loading
Loading