From 221f17cd2293fa0d6e450b16fd2be13ac0f0ec09 Mon Sep 17 00:00:00 2001 From: Ricardo Maraschini Date: Wed, 6 Nov 2024 11:00:22 +0100 Subject: [PATCH 1/4] feat: return error if ec version is a pre-release if the version present in the embedded cluster config is a pre-release, the linter should return an error. --- pkg/ec/lint.go | 81 +++++++++++++++++++++++++++++++-------------- pkg/ec/lint_test.go | 44 +++++++++++++++++++++++- 2 files changed, 100 insertions(+), 25 deletions(-) diff --git a/pkg/ec/lint.go b/pkg/ec/lint.go index ca3a783..33770ef 100644 --- a/pkg/ec/lint.go +++ b/pkg/ec/lint.go @@ -1,6 +1,7 @@ package ec import ( + "encoding/json" "fmt" "net/http" "os" @@ -11,11 +12,16 @@ import ( "gopkg.in/yaml.v2" ) -var ecVersions map[string]bool +var ecVersions map[string]EmbeddedClusterVersion var rwMutex sync.RWMutex +var githubAPIURL = "http://api.github.com" + +type EmbeddedClusterVersion struct { + PreRelease bool `json:"prerelease"` +} func init() { - ecVersions = make(map[string]bool) + ecVersions = make(map[string]EmbeddedClusterVersion) } func LintEmbeddedClusterVersion(specFiles domain.SpecFiles) ([]domain.LintExpression, error) { @@ -48,7 +54,7 @@ func LintEmbeddedClusterVersion(specFiles domain.SpecFiles) ([]domain.LintExpres lintExpressions = append(lintExpressions, ecVersionlintExpression) } else { // version is defined, check if it is valid. - exists, err := checkIfECVersionExists(version) + ecVersion, exists, err := checkIfECVersionExists(version) if err != nil { return nil, errors.Wrap(err, "failed to check if ec version exists") } @@ -60,6 +66,14 @@ func LintEmbeddedClusterVersion(specFiles domain.SpecFiles) ([]domain.LintExpres Message: "Embedded Cluster version not found", } lintExpressions = append(lintExpressions, ecVersionlintExpression) + } else if ecVersion.PreRelease { + ecVersionlintExpression := domain.LintExpression{ + Rule: "non-existent-ec-version", + Type: "error", + Path: spec.Path, + Message: "Embedded Cluster version is a pre-release", + } + lintExpressions = append(lintExpressions, ecVersionlintExpression) } } } @@ -68,33 +82,52 @@ func LintEmbeddedClusterVersion(specFiles domain.SpecFiles) ([]domain.LintExpres return lintExpressions, nil } -func checkIfECVersionExists(version string) (bool, error) { - url := "http://api.github.com/repos/replicatedhq/embedded-cluster/releases/tags/%s" +func checkIfECVersionExists(version string) (*EmbeddedClusterVersion, bool, error) { + url := githubAPIURL + "/repos/replicatedhq/embedded-cluster/releases/tags/%s" token := os.Getenv("GITHUB_API_TOKEN") var bearer = "Bearer " + token rwMutex.RLock() - verIsCached := ecVersions[version] + ecVersion, found := ecVersions[version] rwMutex.RUnlock() - if !verIsCached { - req, err := http.NewRequest("GET", fmt.Sprintf(url, version), nil) - if err != nil { - return false, errors.Wrap(err, "failed to create new request") - } - req.Header.Set("Authorization", bearer) - client := &http.Client{} - resp, _ := client.Do(req) - if resp.StatusCode == 404 { - return false, nil - } else if resp.StatusCode == 200 { - rwMutex.Lock() - ecVersions[version] = true - rwMutex.Unlock() - } else { - return false, errors.New(fmt.Sprintf("received non 200 status code (%d) from GitHub API request", resp.StatusCode)) - } + if found { + return &ecVersion, true, nil + } + + req, err := http.NewRequest("GET", fmt.Sprintf(url, version), nil) + if err != nil { + return nil, false, errors.Wrap(err, "failed to create new request") } + req.Header.Set("Authorization", bearer) + + client := &http.Client{} + resp, err := client.Do(req) + if err != nil { + return nil, false, errors.Wrap(err, "failed to make http request") + } + defer resp.Body.Close() + + if resp.StatusCode == http.StatusNotFound { + return nil, false, nil + } + + if resp.StatusCode != http.StatusOK { + return nil, false, errors.New(fmt.Sprintf("received non 200 status code (%d) from GitHub API request", resp.StatusCode)) + } + + var newVersion EmbeddedClusterVersion + if err := json.NewDecoder(resp.Body).Decode(&newVersion); err != nil { + return nil, false, errors.Wrap(err, "failed to decode embedded cluster version json") + } + + if newVersion.PreRelease { + return &newVersion, true, nil + } + + rwMutex.Lock() + ecVersions[version] = newVersion + rwMutex.Unlock() - return true, nil + return &newVersion, true, nil } diff --git a/pkg/ec/lint_test.go b/pkg/ec/lint_test.go index 07dbf5b..89227df 100644 --- a/pkg/ec/lint_test.go +++ b/pkg/ec/lint_test.go @@ -1,6 +1,8 @@ package ec import ( + "net/http" + "net/http/httptest" "testing" "github.com/replicatedhq/kots-lint/pkg/domain" @@ -14,6 +16,7 @@ func Test_LintEmbeddedClusterVersion(t *testing.T) { name string specFiles domain.SpecFiles expect []domain.LintExpression + apiResult []byte }{ { name: "valid version", @@ -26,7 +29,8 @@ spec: version: "v1.2.2+k8s-1.29"`, }, }, - expect: []domain.LintExpression{}, + expect: []domain.LintExpression{}, + apiResult: []byte(`{}`), }, { name: "invalid version", @@ -47,10 +51,48 @@ spec: }, }, }, + { + name: "pre-release version", + specFiles: domain.SpecFiles{ + { + Path: "", + Content: `apiVersion: embeddedcluster.replicated.com/v1beta1 +kind: Config +spec: + version: "pre-release-version"`, + }, + }, + expect: []domain.LintExpression{ + { + Rule: "non-existent-ec-version", + Type: "error", + Message: "Embedded Cluster version is a pre-release", + }, + }, + apiResult: []byte(`{"prerelease": true}`), + }, } for _, test := range tests { t.Run(test.name, func(t *testing.T) { + oldURL := githubAPIURL + defer func() { githubAPIURL = oldURL }() + + server := httptest.NewServer( + http.HandlerFunc( + func(w http.ResponseWriter, r *http.Request) { + if test.apiResult == nil { + w.WriteHeader(http.StatusNotFound) + return + } + w.Header().Set("Content-Type", "application/json") + w.Write(test.apiResult) + }, + ), + ) + defer server.Close() + + githubAPIURL = server.URL actual, err := LintEmbeddedClusterVersion(test.specFiles) require.NoError(t, err) assert.ElementsMatch(t, actual, test.expect) From 4b9fea0bd2dbdc40486a82761bd03cb6bed399e3 Mon Sep 17 00:00:00 2001 From: Ricardo Maraschini Date: Wed, 6 Nov 2024 15:29:33 +0100 Subject: [PATCH 2/4] chore: remove scopeagent dependency as per conversaions with @salah. --- go.mod | 7 ------- go.sum | 18 ------------------ pkg/version/version_test.go | 9 --------- 3 files changed, 34 deletions(-) diff --git a/go.mod b/go.mod index 04175a2..249c64c 100644 --- a/go.mod +++ b/go.mod @@ -16,7 +16,6 @@ require ( github.com/sirupsen/logrus v1.9.3 github.com/stretchr/testify v1.9.0 github.com/tommy351/gin-cors v0.0.0-20150617141853-dc91dec6313a - go.undefinedlabs.com/scopeagent v0.1.15 gopkg.in/stretchr/testify.v1 v1.2.2 gopkg.in/yaml.v2 v2.4.0 helm.sh/helm/v3 v3.15.3 @@ -56,7 +55,6 @@ require ( github.com/apparentlymart/go-cidr v1.1.0 // indirect github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect github.com/aws/aws-sdk-go v1.54.20 // indirect - github.com/beevik/ntp v0.2.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect github.com/blang/semver v3.5.1+incompatible // indirect @@ -205,7 +203,6 @@ require ( github.com/opencontainers/image-spec v1.1.0 // indirect github.com/opencontainers/runtime-spec v1.2.0 // indirect github.com/opencontainers/selinux v1.11.0 // indirect - github.com/opentracing/opentracing-go v1.2.0 // indirect github.com/ostreedev/ostree-go v0.0.0-20210805093236-719684c64e4f // indirect github.com/pelletier/go-toml/v2 v2.2.2 // indirect github.com/peterbourgon/diskv v2.0.1+incompatible // indirect @@ -253,10 +250,8 @@ require ( github.com/tklauser/numcpus v0.6.1 // indirect github.com/ugorji/go/codec v1.1.7 // indirect github.com/ulikunitz/xz v0.5.12 // indirect - github.com/undefinedlabs/go-mpatch v0.0.0-20200326085307-1a86426f42a6 // indirect github.com/vbatts/tar-split v0.11.5 // indirect github.com/vbauerster/mpb/v8 v8.7.3 // indirect - github.com/vmihailenco/msgpack v4.0.4+incompatible // indirect github.com/vmware-tanzu/velero v1.14.0 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect @@ -289,7 +284,6 @@ require ( golang.org/x/time v0.5.0 // indirect golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect google.golang.org/api v0.175.0 // indirect - google.golang.org/appengine v1.6.8 // indirect google.golang.org/genproto v0.0.0-20240311173647-c811ad7063a7 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20240701130421-f6361c86f094 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240701130421-f6361c86f094 // indirect @@ -300,7 +294,6 @@ require ( gopkg.in/go-jose/go-jose.v2 v2.6.3 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect - gopkg.in/tomb.v2 v2.0.0-20161208151619-d5d1b5820637 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect k8s.io/apiextensions-apiserver v0.30.2 // indirect k8s.io/apiserver v0.30.3 // indirect diff --git a/go.sum b/go.sum index 303b88b..516cab3 100644 --- a/go.sum +++ b/go.sum @@ -271,8 +271,6 @@ github.com/aws/aws-sdk-go v1.38.45/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2z github.com/aws/aws-sdk-go v1.44.122/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= github.com/aws/aws-sdk-go v1.54.20 h1:FZ2UcXya7bUkvkpf7TaPmiL7EubK0go1nlXGLRwEsoo= github.com/aws/aws-sdk-go v1.54.20/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= -github.com/beevik/ntp v0.2.0 h1:sGsd+kAXzT0bfVfzJfce04g+dSRfrs+tbQW8lweuYgw= -github.com/beevik/ntp v0.2.0/go.mod h1:hIHWr+l3+/clUnF44zdK+CWW7fO8dR5cIylAQ76NRpg= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= @@ -467,7 +465,6 @@ github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm github.com/gin-gonic/gin v1.7.1/go.mod h1:jD2toBW3GZUr5UMcdrwQA10I7RuaFOl/SGeDjXkfUtY= github.com/gin-gonic/gin v1.7.7 h1:3DoBmSbJbZAWqXJC3SLjAPfutPJJRN1U5pALB7EeTTs= github.com/gin-gonic/gin v1.7.7/go.mod h1:axIBovoeJpVj8S3BwE0uPMTeReE4+AfFtqpqaZ1qq1U= -github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= @@ -583,7 +580,6 @@ github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRx github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= -github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-jwt/jwt/v4 v4.4.3/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= @@ -1020,9 +1016,6 @@ github.com/opencontainers/runtime-spec v1.2.0 h1:z97+pHb3uELt/yiAWD691HNHQIF07bE github.com/opencontainers/runtime-spec v1.2.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/selinux v1.11.0 h1:+5Zbo97w3Lbmb3PeqQtpmTkMwsW5nRI3YaLpt7tQ7oU= github.com/opencontainers/selinux v1.11.0/go.mod h1:E5dMC3VPuVvVHDYmi78qvhJp8+M586T4DlDRYpFkyec= -github.com/opentracing/basictracer-go v1.0.0 h1:YyUAhaEfjoWXclZVJ9sGoNct7j4TVk7lZWlQw5UXuoo= -github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74= -github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= github.com/ostreedev/ostree-go v0.0.0-20210805093236-719684c64e4f h1:/UDgs8FGMqwnHagNDPGOlts35QkhAZ8by3DR7nMih7M= @@ -1241,15 +1234,11 @@ github.com/ulikunitz/xz v0.5.9/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oW github.com/ulikunitz/xz v0.5.10/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/ulikunitz/xz v0.5.12 h1:37Nm15o69RwBkXM0J6A5OlE67RZTfzUxTj8fB3dfcsc= github.com/ulikunitz/xz v0.5.12/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= -github.com/undefinedlabs/go-mpatch v0.0.0-20200326085307-1a86426f42a6 h1:VO1oVFjnL0fwOlwLpDqY1xhY/cfr0Ycz4aLwWM76D6k= -github.com/undefinedlabs/go-mpatch v0.0.0-20200326085307-1a86426f42a6/go.mod h1:TyJZDQ/5AgyN7FSLiBJ8RO9u2c6wbtRvK827b6AVqY4= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/vbatts/tar-split v0.11.5 h1:3bHCTIheBm1qFTcgh9oPu+nNBtX+XJIupG/vacinCts= github.com/vbatts/tar-split v0.11.5/go.mod h1:yZbwRsSeGjusneWgA781EKej9HF8vme8okylkAeNKLk= github.com/vbauerster/mpb/v8 v8.7.3 h1:n/mKPBav4FFWp5fH4U0lPpXfiOmCEgl5Yx/NM3tKJA0= github.com/vbauerster/mpb/v8 v8.7.3/go.mod h1:9nFlNpDGVoTmQ4QvNjSLtwLmAFjwmq0XaAF26toHGNM= -github.com/vmihailenco/msgpack v4.0.4+incompatible h1:dSLoQfGFAo3F6OoNhwUmLwVgaUXK79GlxNBwueZn0xI= -github.com/vmihailenco/msgpack v4.0.4+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk= github.com/vmware-tanzu/velero v1.14.0 h1:ZYy9TLtokdHInIdWTfwHYIZhRr+xLd0nGzHyQrXMCIM= github.com/vmware-tanzu/velero v1.14.0/go.mod h1:yeGs7/xq35yOGDPCV0ryxoybQBsTLXmrxwzXBXtiwp8= github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= @@ -1352,8 +1341,6 @@ go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= -go.undefinedlabs.com/scopeagent v0.1.15 h1:H3n8Vb2ndEoMnt8EKeq4uqnV58EMsNQsTRvg314KXfg= -go.undefinedlabs.com/scopeagent v0.1.15/go.mod h1:ebAQoyMi0CPxEnrI09lQ19vnpu01KMlLv7M++V9bYdo= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -1658,7 +1645,6 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= @@ -1811,8 +1797,6 @@ google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= -google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= @@ -2009,8 +1993,6 @@ gopkg.in/stretchr/testify.v1 v1.2.2 h1:yhQC6Uy5CqibAIlk1wlusa/MJ3iAN49/BsR/dCCKz gopkg.in/stretchr/testify.v1 v1.2.2/go.mod h1:QI5V/q6UbPmuhtm10CaFZxED9NreB8PnFYN9JcR6TxU= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/tomb.v2 v2.0.0-20161208151619-d5d1b5820637 h1:yiW+nvdHb9LVqSHQBXfZCieqV4fzYhNBql77zY0ykqs= -gopkg.in/tomb.v2 v2.0.0-20161208151619-d5d1b5820637/go.mod h1:BHsqpu/nsuzkT5BpiH1EMZPLyqSMM8JbIavyFACoFNk= gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.0.0/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/pkg/version/version_test.go b/pkg/version/version_test.go index b6ed313..e36f029 100644 --- a/pkg/version/version_test.go +++ b/pkg/version/version_test.go @@ -5,7 +5,6 @@ import ( "time" "github.com/stretchr/testify/require" - "go.undefinedlabs.com/scopeagent" ) func TestVersion(t *testing.T) { @@ -24,8 +23,6 @@ func TestVersion(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - scopetest := scopeagent.StartTest(t) - defer scopetest.End() req := require.New(t) version = tt.want @@ -66,8 +63,6 @@ func TestGitSHA(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - scopetest := scopeagent.StartTest(t) - defer scopetest.End() req := require.New(t) gitSHA = tt.sha @@ -102,8 +97,6 @@ func TestBuildTime(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - scopetest := scopeagent.StartTest(t) - defer scopetest.End() req := require.New(t) buildTime = tt.timestring @@ -134,8 +127,6 @@ func TestGetBuild(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - scopetest := scopeagent.StartTest(t) - defer scopetest.End() req := require.New(t) version = tt.version From 03a92aeca713ccbca46eca4695effd77454d6bd0 Mon Sep 17 00:00:00 2001 From: Ricardo Maraschini Date: Wed, 6 Nov 2024 16:14:46 +0100 Subject: [PATCH 3/4] chore: add some comments --- pkg/ec/lint.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkg/ec/lint.go b/pkg/ec/lint.go index 33770ef..c7cd7a9 100644 --- a/pkg/ec/lint.go +++ b/pkg/ec/lint.go @@ -92,6 +92,7 @@ func checkIfECVersionExists(version string) (*EmbeddedClusterVersion, bool, erro rwMutex.RUnlock() if found { + // if it is cached then it is not a pre-release. return &ecVersion, true, nil } @@ -122,6 +123,7 @@ func checkIfECVersionExists(version string) (*EmbeddedClusterVersion, bool, erro } if newVersion.PreRelease { + // we do not cache pre-release versions. return &newVersion, true, nil } From d9806e73fb916395546cd2aec8a0af9b5eea1f89 Mon Sep 17 00:00:00 2001 From: Ricardo Maraschini Date: Wed, 6 Nov 2024 16:23:17 +0100 Subject: [PATCH 4/4] chore: remove wrong comment --- pkg/ec/lint.go | 1 - 1 file changed, 1 deletion(-) diff --git a/pkg/ec/lint.go b/pkg/ec/lint.go index c7cd7a9..9104871 100644 --- a/pkg/ec/lint.go +++ b/pkg/ec/lint.go @@ -92,7 +92,6 @@ func checkIfECVersionExists(version string) (*EmbeddedClusterVersion, bool, erro rwMutex.RUnlock() if found { - // if it is cached then it is not a pre-release. return &ecVersion, true, nil }