You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by as...@apache.org on 2021/11/25 07:57:08 UTC
[camel-k] 03/06: fix(lint): net/http.Get must not be called (noctx)
This is an automated email from the ASF dual-hosted git repository.
astefanutti pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-k.git
commit 0139d21f9d3c4abf3569bc4ec3400a5430b0a00e
Author: Luca Burgazzoli <lb...@gmail.com>
AuthorDate: Wed Nov 24 14:39:07 2021 +0100
fix(lint): net/http.Get must not be called (noctx)
---
.golangci.yml | 1 -
pkg/cmd/util_content.go | 19 +++++++++++--------
pkg/cmd/util_content_test.go | 20 ++++++++++++++++++++
3 files changed, 31 insertions(+), 9 deletions(-)
diff --git a/.golangci.yml b/.golangci.yml
index 490d6da..c9af8be 100644
--- a/.golangci.yml
+++ b/.golangci.yml
@@ -54,7 +54,6 @@ linters:
- nlreturn
- nilnil
- exhaustive
- - noctx
- nakedret
- contextcheck
- maligned
diff --git a/pkg/cmd/util_content.go b/pkg/cmd/util_content.go
index 289621e..0ec57a4 100644
--- a/pkg/cmd/util_content.go
+++ b/pkg/cmd/util_content.go
@@ -18,8 +18,9 @@ limitations under the License.
package cmd
import (
+ "context"
"fmt"
- "io/ioutil"
+ "io"
"net/http"
"net/url"
"os"
@@ -101,7 +102,14 @@ func loadTextContent(source string, base64Compression bool) (string, string, boo
}
func loadContentHTTP(u fmt.Stringer) ([]byte, error) {
- resp, err := http.Get(u.String())
+ req, err := http.NewRequestWithContext(context.Background(), http.MethodGet, u.String(), nil)
+ if err != nil {
+ return nil, err
+ }
+
+ c := &http.Client{}
+
+ resp, err := c.Do(req)
if err != nil {
return []byte{}, err
}
@@ -113,12 +121,7 @@ func loadContentHTTP(u fmt.Stringer) ([]byte, error) {
return []byte{}, fmt.Errorf("the provided URL %s is not reachable, error code is %d", u.String(), resp.StatusCode)
}
- content, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- return []byte{}, err
- }
-
- return content, nil
+ return io.ReadAll(resp.Body)
}
func loadContentGitHub(u *url.URL) ([]byte, error) {
diff --git a/pkg/cmd/util_content_test.go b/pkg/cmd/util_content_test.go
index ae34b1d..5684ac8 100644
--- a/pkg/cmd/util_content_test.go
+++ b/pkg/cmd/util_content_test.go
@@ -18,7 +18,11 @@ limitations under the License.
package cmd
import (
+ "fmt"
"io/ioutil"
+ "net/http"
+ "net/http/httptest"
+ "net/url"
"os"
"testing"
@@ -97,3 +101,19 @@ func TestIsBinary(t *testing.T) {
assert.True(t, isBinary("application/zip"))
assert.False(t, isBinary("text/plain"))
}
+
+func TestContentHttp(t *testing.T) {
+ expected := "the content"
+ svr := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
+ _, _ = fmt.Fprintf(w, expected)
+ }))
+ defer svr.Close()
+
+ u, err := url.Parse(svr.URL)
+ assert.Nil(t, err)
+
+ data, err := loadContentHTTP(u)
+ assert.Nil(t, err)
+ assert.NotEmpty(t, data)
+ assert.Equal(t, expected, string(data))
+}