Set actions client timeout to 5 minutes, add logging to client (#3103)
This commit is contained in:
parent
fb11d3bfd0
commit
b202be712e
|
|
@ -7,9 +7,9 @@ import (
|
|||
"crypto/tls"
|
||||
"crypto/x509"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"log"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"strconv"
|
||||
|
|
@ -57,6 +57,28 @@ type ActionsService interface {
|
|||
SetUserAgent(info UserAgentInfo)
|
||||
}
|
||||
|
||||
type clientLogger struct {
|
||||
logr.Logger
|
||||
}
|
||||
|
||||
func (l *clientLogger) Info(msg string, keysAndValues ...interface{}) {
|
||||
l.Logger.Info(msg, keysAndValues...)
|
||||
}
|
||||
|
||||
func (l *clientLogger) Debug(msg string, keysAndValues ...interface{}) {
|
||||
// discard debug log
|
||||
}
|
||||
|
||||
func (l *clientLogger) Error(msg string, keysAndValues ...interface{}) {
|
||||
l.Logger.Error(errors.New(msg), "Retryable client error", keysAndValues...)
|
||||
}
|
||||
|
||||
func (l *clientLogger) Warn(msg string, keysAndValues ...interface{}) {
|
||||
l.Logger.Info(msg, keysAndValues...)
|
||||
}
|
||||
|
||||
var _ retryablehttp.LeveledLogger = &clientLogger{}
|
||||
|
||||
type Client struct {
|
||||
*http.Client
|
||||
|
||||
|
|
@ -168,11 +190,13 @@ func NewClient(githubConfigURL string, creds *ActionsAuth, options ...ClientOpti
|
|||
}
|
||||
|
||||
retryClient := retryablehttp.NewClient()
|
||||
retryClient.Logger = log.New(io.Discard, "", log.LstdFlags)
|
||||
retryClient.Logger = &clientLogger{Logger: ac.logger}
|
||||
|
||||
retryClient.RetryMax = ac.retryMax
|
||||
retryClient.RetryWaitMax = ac.retryWaitMax
|
||||
|
||||
retryClient.HTTPClient.Timeout = 5 * time.Minute // timeout must be > 1m to accomodate long polling
|
||||
|
||||
transport, ok := retryClient.HTTPClient.Transport.(*http.Transport)
|
||||
if !ok {
|
||||
// this should always be true, because retryablehttp.NewClient() uses
|
||||
|
|
|
|||
Loading…
Reference in New Issue