From 8efde6386516ff3370558100ccc31995011432b7 Mon Sep 17 00:00:00 2001 From: Felix Wiedmann Date: Mon, 17 Jun 2019 22:30:17 +0200 Subject: [PATCH] fix(internal/releaser): add helper method to lookup for provider accesToken in environment variabels --- internal/releaser/github/github.go | 10 ++++++++-- internal/releaser/util/util.go | 15 +++++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/internal/releaser/github/github.go b/internal/releaser/github/github.go index 66a7043..a8de1b6 100644 --- a/internal/releaser/github/github.go +++ b/internal/releaser/github/github.go @@ -29,16 +29,22 @@ type Client struct { // New initialize a new GitHubRelease func New(c *config.GitHubProvider) (*Client, error) { + var err error + + if c.AccessToken, err = util.GetAccessToken(GITHUB); err != nil { + return &Client{}, err + } ctx := context.Background() httpClient := util.CreateBearerHTTPClient(ctx, c.AccessToken) var client *github.Client - var err error baseURL := "https://github.com" if c.CustomURL == "" { client = github.NewClient(httpClient) } else { - client, err = github.NewEnterpriseClient(c.CustomURL, c.CustomURL+"/api/v3/", httpClient) + if client, err = github.NewEnterpriseClient(c.CustomURL, c.CustomURL+"/api/v3/", httpClient); err != nil { + return &Client{}, err + } baseURL = c.CustomURL } return &Client{ diff --git a/internal/releaser/util/util.go b/internal/releaser/util/util.go index 6479ace..50d42fb 100644 --- a/internal/releaser/util/util.go +++ b/internal/releaser/util/util.go @@ -2,7 +2,10 @@ package util import ( "context" + "fmt" "net/http" + "os" + "strings" "golang.org/x/oauth2" ) @@ -17,3 +20,15 @@ func CreateBearerHTTPClient(ctx context.Context, token string) *http.Client { return client } + +// GetAccessToken lookup for the providers accesstoken +func GetAccessToken(providerName string) (string, error) { + var token string + var exists bool + envName := fmt.Sprintf("%s_ACCESS_TOKEN", strings.ToUpper(providerName)) + + if token, exists = os.LookupEnv(envName); !exists { + return "", fmt.Errorf("Could not find %s in the enviroment variables. Please check if it is set", envName) + } + return token, nil +}