From 9de738362a1edbe25b45dc13d44d816a57d0b2d0 Mon Sep 17 00:00:00 2001 From: Steven Whitehead Date: Mon, 23 Sep 2019 21:50:06 -0400 Subject: [PATCH] support enterprise Travis endpoints --- modules/travisci/client.go | 12 +++++++++--- modules/travisci/settings.go | 2 ++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/modules/travisci/client.go b/modules/travisci/client.go index 10d5adb7..a7ad3eb3 100644 --- a/modules/travisci/client.go +++ b/modules/travisci/client.go @@ -17,6 +17,9 @@ func BuildsFor(settings *Settings) (*Builds, error) { builds := &Builds{} travisAPIURL.Host = "api." + TRAVIS_HOSTS[settings.pro] + if settings.baseURL != "" { + travisAPIURL.Host = settings.baseURL + } resp, err := travisBuildRequest(settings) if err != nil { @@ -39,6 +42,9 @@ var ( func travisBuildRequest(settings *Settings) (*http.Response, error) { var path string = "builds" + if settings.baseURL != "" { + travisAPIURL.Path = "/api/" + } params := url.Values{} params.Add("limit", settings.limit) params.Add("sort_by", settings.sort_by) @@ -46,15 +52,15 @@ func travisBuildRequest(settings *Settings) (*http.Response, error) { requestUrl := travisAPIURL.ResolveReference(&url.URL{Path: path, RawQuery: params.Encode()}) req, err := http.NewRequest("GET", requestUrl.String(), nil) + if err != nil { + return nil, err + } req.Header.Add("Accept", "application/json") req.Header.Add("Content-Type", "application/json") req.Header.Add("Travis-API-Version", "3") bearer := fmt.Sprintf("token %s", settings.apiKey) req.Header.Add("Authorization", bearer) - if err != nil { - return nil, err - } httpClient := &http.Client{} resp, err := httpClient.Do(req) diff --git a/modules/travisci/settings.go b/modules/travisci/settings.go index 29e5bea5..3de7a3a3 100644 --- a/modules/travisci/settings.go +++ b/modules/travisci/settings.go @@ -16,6 +16,7 @@ type Settings struct { common *cfg.Common apiKey string + baseURL string `help:"Your TravisCI Enterprise API URL." optional:"true"` compact bool limit string pro bool @@ -27,6 +28,7 @@ func NewSettingsFromYAML(name string, ymlConfig *config.Config, globalConfig *co common: cfg.NewCommonSettingsFromModule(name, defaultTitle, defaultFocusable, ymlConfig, globalConfig), apiKey: ymlConfig.UString("apiKey", ymlConfig.UString("apikey", os.Getenv("WTF_TRAVIS_API_TOKEN"))), + baseURL: ymlConfig.UString("baseURL", ymlConfig.UString("baseURL", os.Getenv("WTF_TRAVIS_BASE_URL"))), pro: ymlConfig.UBool("pro", false), compact: ymlConfig.UBool("compact", false), limit: ymlConfig.UString("limit", "10"),