github.com/wtfutil/wtf@v0.43.0/modules/travisci/settings.go (about) 1 package travisci 2 3 import ( 4 "os" 5 6 "github.com/olebedev/config" 7 "github.com/wtfutil/wtf/cfg" 8 ) 9 10 const ( 11 defaultFocusable = true 12 defaultTitle = "TravisCI" 13 ) 14 15 type Settings struct { 16 *cfg.Common 17 18 apiKey string 19 baseURL string `help:"Your TravisCI Enterprise API URL." optional:"true"` 20 compact bool 21 limit string 22 pro bool 23 sort_by string 24 } 25 26 func NewSettingsFromYAML(name string, ymlConfig *config.Config, globalConfig *config.Config) *Settings { 27 settings := Settings{ 28 Common: cfg.NewCommonSettingsFromModule(name, defaultTitle, defaultFocusable, ymlConfig, globalConfig), 29 30 apiKey: ymlConfig.UString("apiKey", ymlConfig.UString("apikey", os.Getenv("WTF_TRAVIS_API_TOKEN"))), 31 baseURL: ymlConfig.UString("baseURL", ymlConfig.UString("baseURL", os.Getenv("WTF_TRAVIS_BASE_URL"))), 32 pro: ymlConfig.UBool("pro", false), 33 compact: ymlConfig.UBool("compact", false), 34 limit: ymlConfig.UString("limit", "10"), 35 sort_by: ymlConfig.UString("sort_by", "id:desc"), 36 } 37 38 cfg.ModuleSecret(name, globalConfig, &settings.apiKey). 39 Service(settings.baseURL).Load() 40 41 return &settings 42 }