From ec68a581ec8315f1e8a44a80dcd5e28b846de024 Mon Sep 17 00:00:00 2001 From: KeisukeYamashita <19yamashita15@gmail.com> Date: Fri, 18 Feb 2022 21:51:16 +0900 Subject: [PATCH] Support custom env var GitHub Token name Signed-off-by: KeisukeYamashita <19yamashita15@gmail.com> --- notifier/github/client.go | 7 ++++--- notifier/github/client_test.go | 18 +++++++++++++++++- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/notifier/github/client.go b/notifier/github/client.go index 1c62bca..ef1f288 100644 --- a/notifier/github/client.go +++ b/notifier/github/client.go @@ -69,10 +69,11 @@ type service struct { // NewClient returns Client initialized with Config func NewClient(cfg Config) (*Client, error) { token := cfg.Token - token = strings.TrimPrefix(token, "$") - if token == EnvToken { - token = os.Getenv(EnvToken) + + if strings.HasPrefix(token, "$") { + token = os.Getenv(strings.TrimPrefix(token, "$")) } + if token == "" { return &Client{}, errors.New("github token is missing") } diff --git a/notifier/github/client_test.go b/notifier/github/client_test.go index e84a117..b9c711b 100644 --- a/notifier/github/client_test.go +++ b/notifier/github/client_test.go @@ -2,6 +2,7 @@ package github import ( "os" + "strings" "testing" ) @@ -41,12 +42,24 @@ func TestNewClient(t *testing.T) { envToken: "", expect: "github token is missing", }, + { + // specify via env but not to be set env (part 3) + config: Config{Token: "$TFNOTIFY_GITHUB_TOKEN"}, + envToken: "", + expect: "github token is missing", + }, { // specify via env (part 2) config: Config{Token: "$GITHUB_TOKEN"}, envToken: "abcdefg", expect: "", }, + { + // specify via env (part 3) + config: Config{Token: "$TFNOTIFY_GITHUB_TOKEN"}, + envToken: "abcdefg", + expect: "", + }, { // no specification (part 1) config: Config{}, @@ -61,7 +74,10 @@ func TestNewClient(t *testing.T) { }, } for _, testCase := range testCases { - os.Setenv(EnvToken, testCase.envToken) + if strings.HasPrefix(testCase.config.Token, "$") { + key := strings.TrimPrefix(testCase.config.Token, "$") + os.Setenv(key, testCase.envToken) + } _, err := NewClient(testCase.config) if err == nil { continue