Skip to content

Commit

Permalink
Merge branch 'main' into rr-logrus-doc
Browse files Browse the repository at this point in the history
  • Loading branch information
matt0x6F authored Sep 28, 2024
2 parents 7ea828f + 3856c6f commit 326de5b
Show file tree
Hide file tree
Showing 8 changed files with 18 additions and 12 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/goreleaser.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
uses: goreleaser/goreleaser-action@v6
with:
version: latest
args: release --rm-dist
args: release --clean
env:
DATE: ${{ steps.date.outputs.date }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2 changes: 1 addition & 1 deletion cmd/proxy/actions/app_proxy.go
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ func addProxyRoutes(
return err
}

lister := module.NewVCSLister(c.GoBinary, c.GoBinaryEnvVars, fs)
lister := module.NewVCSLister(c.GoBinary, c.GoBinaryEnvVars, fs, c.TimeoutDuration())
checker := storage.WithChecker(s)
withSingleFlight, err := getSingleFlight(l, c, s, checker)
if err != nil {
Expand Down
6 changes: 1 addition & 5 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ require (
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.11.1
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.7.0
github.com/Azure/azure-storage-blob-go v0.10.0
github.com/Azure/go-autorest/autorest/adal v0.9.23
github.com/BurntSushi/toml v1.0.0
github.com/DataDog/opencensus-go-exporter-datadog v0.0.0-20180917103902-e6c7f767dc57
github.com/aws/aws-sdk-go-v2 v1.26.1
Expand Down Expand Up @@ -60,10 +59,7 @@ require (
cloud.google.com/go/monitoring v1.18.0 // indirect
cloud.google.com/go/trace v1.10.5 // indirect
github.com/Azure/azure-sdk-for-go/sdk/internal v1.8.0 // indirect
github.com/Azure/go-autorest v14.2.0+incompatible // indirect
github.com/Azure/go-autorest/autorest/date v0.3.0 // indirect
github.com/Azure/go-autorest/logger v0.2.1 // indirect
github.com/Azure/go-autorest/tracing v0.6.0 // indirect
github.com/Azure/go-autorest/autorest/adal v0.9.23 // indirect
github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 // indirect
github.com/DataDog/datadog-go v0.0.0-20180822151419-281ae9f2d895 // indirect
github.com/agext/levenshtein v1.2.1 // indirect
Expand Down
1 change: 0 additions & 1 deletion go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,6 @@ github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSY
github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0=
github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0=
github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM=
github.com/Azure/go-autorest/autorest/mocks v0.4.1 h1:K0laFcLE6VLTOwNgSxaGbUcLPuGXlNkbVvq4cW4nIHk=
github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k=
github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc=
github.com/Azure/go-autorest/logger v0.2.1 h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+ZtXWSmf4Tg=
Expand Down
2 changes: 1 addition & 1 deletion pkg/download/list.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ func ListHandler(dp Protocol, lggr log.Entry, df *mode.DownloadFile) http.Handle

versions, err := dp.List(r.Context(), mod)
if err != nil {
severityLevel := errors.Expect(err, errors.KindNotFound)
severityLevel := errors.Expect(err, errors.KindNotFound, errors.KindGatewayTimeout)
err = errors.E(op, err, severityLevel)
lggr.SystemErr(err)
w.WriteHeader(errors.Kind(err))
Expand Down
2 changes: 1 addition & 1 deletion pkg/download/protocol_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ func getDP(t *testing.T) Protocol {
return New(&Opts{
Storage: s,
Stasher: st,
Lister: module.NewVCSLister(goBin, conf.GoBinaryEnvVars, fs),
Lister: module.NewVCSLister(goBin, conf.GoBinaryEnvVars, fs, conf.TimeoutDuration()),
NetworkMode: Strict,
})
}
Expand Down
1 change: 1 addition & 0 deletions pkg/errors/errors.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ const (
KindRateLimit = http.StatusTooManyRequests
KindNotImplemented = http.StatusNotImplemented
KindRedirect = http.StatusMovedPermanently
KindGatewayTimeout = http.StatusGatewayTimeout
)

// Error is an Athens system error.
Expand Down
14 changes: 12 additions & 2 deletions pkg/module/go_vcs_lister.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,15 +28,17 @@ type vcsLister struct {
env []string
fs afero.Fs
sfg *singleflight.Group
timeout time.Duration
}

// NewVCSLister creates an UpstreamLister which uses VCS to fetch a list of available versions.
func NewVCSLister(goBinPath string, env []string, fs afero.Fs) UpstreamLister {
func NewVCSLister(goBinPath string, env []string, fs afero.Fs, timeout time.Duration) UpstreamLister {
return &vcsLister{
goBinPath: goBinPath,
env: env,
fs: fs,
sfg: &singleflight.Group{},
timeout: timeout,
}
}

Expand All @@ -56,7 +58,11 @@ func (l *vcsLister) List(ctx context.Context, module string) (*storage.RevInfo,
}
defer func() { _ = l.fs.RemoveAll(tmpDir) }()

cmd := exec.Command(
timeoutCtx, cancel := context.WithTimeout(ctx, l.timeout)
defer cancel()

cmd := exec.CommandContext(
timeoutCtx,
l.goBinPath,
"list", "-m", "-versions", "-json",
config.FmtModVer(module, "latest"),
Expand All @@ -77,6 +83,10 @@ func (l *vcsLister) List(ctx context.Context, module string) (*storage.RevInfo,
err = cmd.Run()
if err != nil {
err = fmt.Errorf("%w: %s", err, stderr)
if errors.IsErr(timeoutCtx.Err(), context.DeadlineExceeded) {
return nil, errors.E(op, err, errors.KindGatewayTimeout)
}

// as of now, we can't recognize between a true NotFound
// and an unexpected error, so we choose the more
// hopeful path of NotFound. This way the Go command
Expand Down

0 comments on commit 326de5b

Please sign in to comment.