summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitlab-ci.yml7
-rw-r--r--client/client_test.go3
-rw-r--r--client/httpclient_test.go6
-rw-r--r--go.mod2
-rw-r--r--go.sum1
-rw-r--r--internal/config/config.go12
-rw-r--r--internal/config/config_test.go5
-rw-r--r--internal/gitlabnet/client.go5
8 files changed, 23 insertions, 18 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 5f8dca5..5ef8a84 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -52,13 +52,6 @@ default:
script:
- make verify test
-go:1.14:
- extends: .test
- image: golang:1.14
- after_script:
- - make coverage
- coverage: '/\d+.\d+%/'
-
go:1.15:
extends: .test
image: golang:1.15
diff --git a/client/client_test.go b/client/client_test.go
index bf45181..f2ecd6c 100644
--- a/client/client_test.go
+++ b/client/client_test.go
@@ -59,7 +59,8 @@ func TestClients(t *testing.T) {
secret := "sssh, it's a secret"
- httpClient := NewHTTPClient(url, tc.relativeURLRoot, tc.caFile, "", false, 1)
+ httpClient, err := NewHTTPClientWithOpts(url, tc.relativeURLRoot, tc.caFile, "", false, 1, nil)
+ require.NoError(t, err)
client, err := NewGitlabNetClient("", "", secret, httpClient)
require.NoError(t, err)
diff --git a/client/httpclient_test.go b/client/httpclient_test.go
index 5c1ebe3..f3643a0 100644
--- a/client/httpclient_test.go
+++ b/client/httpclient_test.go
@@ -17,7 +17,8 @@ import (
func TestReadTimeout(t *testing.T) {
expectedSeconds := uint64(300)
- client := NewHTTPClient("http://localhost:3000", "", "", "", false, expectedSeconds)
+ client, err := NewHTTPClientWithOpts("http://localhost:3000", "", "", "", false, expectedSeconds, nil)
+ require.NoError(t, err)
require.NotNil(t, client)
require.Equal(t, time.Duration(expectedSeconds)*time.Second, client.Client.Timeout)
@@ -122,7 +123,8 @@ func TestRequestWithUserAgent(t *testing.T) {
func setup(t *testing.T, username, password string, requests []testserver.TestRequestHandler) *GitlabNetClient {
url := testserver.StartHttpServer(t, requests)
- httpClient := NewHTTPClient(url, "", "", "", false, 1)
+ httpClient, err := NewHTTPClientWithOpts(url, "", "", "", false, 1, nil)
+ require.NoError(t, err)
client, err := NewGitlabNetClient(username, password, "", httpClient)
require.NoError(t, err)
diff --git a/go.mod b/go.mod
index 7c135f8..dcf9551 100644
--- a/go.mod
+++ b/go.mod
@@ -1,6 +1,6 @@
module gitlab.com/gitlab-org/gitlab-shell
-go 1.13
+go 1.15
require (
github.com/grpc-ecosystem/go-grpc-middleware v1.3.0
diff --git a/go.sum b/go.sum
index 33da550..301854c 100644
--- a/go.sum
+++ b/go.sum
@@ -219,7 +219,6 @@ github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfU
github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
-github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e h1:1r7pUrabqp18hOBcwBwiTsbnFeTZHV9eER/QT5JVZxY=
github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE=
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
diff --git a/internal/config/config.go b/internal/config/config.go
index 5aa99de..f69a6c8 100644
--- a/internal/config/config.go
+++ b/internal/config/config.go
@@ -58,6 +58,7 @@ type Config struct {
Server ServerConfig `yaml:"sshd"`
httpClient *client.HttpClient
+ httpClientErr error
httpClientOnce sync.Once
}
@@ -95,16 +96,21 @@ func (c *Config) ApplyGlobalState() {
}
}
-func (c *Config) HttpClient() *client.HttpClient {
+func (c *Config) HttpClient() (*client.HttpClient, error) {
c.httpClientOnce.Do(func() {
- client := client.NewHTTPClient(
+ client, err := client.NewHTTPClientWithOpts(
c.GitlabUrl,
c.GitlabRelativeURLRoot,
c.HttpSettings.CaFile,
c.HttpSettings.CaPath,
c.HttpSettings.SelfSignedCert,
c.HttpSettings.ReadTimeoutSeconds,
+ nil,
)
+ if err != nil {
+ c.httpClientErr = err
+ return
+ }
tr := client.Transport
client.Transport = promhttp.InstrumentRoundTripperDuration(metrics.HttpRequestDuration, tr)
@@ -112,7 +118,7 @@ func (c *Config) HttpClient() *client.HttpClient {
c.httpClient = client
})
- return c.httpClient
+ return c.httpClient, c.httpClientErr
}
// NewFromDirExternal returns a new config from a given root dir. It also applies defaults appropriate for
diff --git a/internal/config/config_test.go b/internal/config/config_test.go
index 5fa8e66..699a261 100644
--- a/internal/config/config_test.go
+++ b/internal/config/config_test.go
@@ -29,9 +29,10 @@ func TestHttpClient(t *testing.T) {
url := testserver.StartHttpServer(t, []testserver.TestRequestHandler{})
config := &Config{GitlabUrl: url}
- client := config.HttpClient()
+ client, err := config.HttpClient()
+ require.NoError(t, err)
- _, err := client.Get("http://host.com/path")
+ _, err = client.Get("http://host.com/path")
require.NoError(t, err)
ms, err := prometheus.DefaultGatherer.Gather()
diff --git a/internal/gitlabnet/client.go b/internal/gitlabnet/client.go
index c0b72c4..39c3320 100644
--- a/internal/gitlabnet/client.go
+++ b/internal/gitlabnet/client.go
@@ -15,7 +15,10 @@ var (
)
func GetClient(config *config.Config) (*client.GitlabNetClient, error) {
- httpClient := config.HttpClient()
+ httpClient, err := config.HttpClient()
+ if err != nil {
+ return nil, err
+ }
if httpClient == nil {
return nil, fmt.Errorf("Unsupported protocol")