From 6710b2dffb85d679c03ee6babcec15461f558c55 Mon Sep 17 00:00:00 2001 From: Zero King Date: Sat, 5 Jan 2019 17:29:37 +0000 Subject: [PATCH] Retry fetching Travis CI logs --- ci/logger/remoteLog.go | 2 +- pr/webhook/server.go | 3 +++ pr/webhook/travis.go | 6 +++--- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/ci/logger/remoteLog.go b/ci/logger/remoteLog.go index 5dd6ddf..05d6b5f 100644 --- a/ci/logger/remoteLog.go +++ b/ci/logger/remoteLog.go @@ -9,7 +9,7 @@ import ( "net/url" "os" - "github.com/hashicorp/go-retryablehttp" + retryablehttp "github.com/hashicorp/go-retryablehttp" ) var pasteURL = &url.URL{ diff --git a/pr/webhook/server.go b/pr/webhook/server.go index 39fa666..65941e3 100644 --- a/pr/webhook/server.go +++ b/pr/webhook/server.go @@ -18,6 +18,7 @@ import ( "sync" "time" + retryablehttp "github.com/hashicorp/go-retryablehttp" "github.com/macports/mpbot-github/pr/db" "github.com/macports/mpbot-github/pr/githubapi" ) @@ -27,6 +28,7 @@ type Receiver struct { hookSecret []byte production bool testing bool + httpClient *retryablehttp.Client githubClient githubapi.Client dbHelper db.DBHelper wg sync.WaitGroup @@ -41,6 +43,7 @@ func NewReceiver(listenAddr string, hookSecret []byte, botSecret string, product server: &http.Server{Addr: listenAddr}, hookSecret: hookSecret, production: production, + httpClient: retryablehttp.NewClient(), githubClient: githubapi.NewClient(botSecret), dbHelper: dbHelper, } diff --git a/pr/webhook/travis.go b/pr/webhook/travis.go index 0d10198..bc1d744 100644 --- a/pr/webhook/travis.go +++ b/pr/webhook/travis.go @@ -6,11 +6,11 @@ import ( "io/ioutil" "log" "mime/multipart" - "net/http" "regexp" "strconv" "strings" + retryablehttp "github.com/hashicorp/go-retryablehttp" "github.com/macports/mpbot-github/ci/logger/constants" ) @@ -77,7 +77,7 @@ func (receiver *Receiver) handleTravisWebhook(payload TravisWebhookPayload) { log.Println("Processing " + strconv.Itoa(len(payload.Matrix)) + " job(s)") for _, job := range payload.Matrix { - req, err := http.NewRequest( + req, err := retryablehttp.NewRequest( "GET", "https://api.travis-ci.org/job/"+strconv.Itoa(job.ID)+"/log", nil, @@ -91,7 +91,7 @@ func (receiver *Receiver) handleTravisWebhook(payload TravisWebhookPayload) { log.Println("Fetching logs for job #" + strconv.Itoa(job.ID)) - resp, err := http.DefaultClient.Do(req) + resp, err := receiver.httpClient.Do(req) if err != nil { continue }