github.com/adevinta/maiao@v0.0.0-20240318133227-b6f9656b5e07/pkg/credentials/env.go (about) 1 package credentials 2 3 import ( 4 "errors" 5 "fmt" 6 "os" 7 ) 8 9 // EnvToken resolves github authentication using the GITHUB_TOKEN environment variable if present 10 type EnvToken struct { 11 UsernameKey string 12 PasswordKey string 13 DefaultUserName string 14 } 15 16 func (e *EnvToken) CredentialForHost(host string) (*Credentials, error) { 17 if e.PasswordKey == "" { 18 return nil, errors.New("no environment variable to ") 19 } 20 username := "x-token" 21 if e.DefaultUserName != "" { 22 username = e.DefaultUserName 23 } 24 if e.UsernameKey != "" { 25 v, ok := os.LookupEnv(e.UsernameKey) 26 if ok { 27 username = v 28 } 29 } 30 val, ok := os.LookupEnv(e.PasswordKey) 31 if ok && val != "" { 32 return &Credentials{ 33 Username: username, 34 Password: val, 35 }, nil 36 } 37 return nil, fmt.Errorf("no token found in environment variable %s", e.PasswordKey) 38 }