mirror of
https://github.com/taigrr/wtf
synced 2025-01-18 04:03:14 -08:00
Add myName setting to PagerDuty (#799)
If defined, this name will be highlighted in the PagerDuty widget when that person is on-call. Signed-off-by: Chris Cummer <chriscummer@me.com>
This commit is contained in:
parent
a7facc85fa
commit
e1d4e60216
@ -12,22 +12,26 @@ const (
|
|||||||
defaultTitle = "PagerDuty"
|
defaultTitle = "PagerDuty"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Settings defines the configuration properties for this module
|
||||||
type Settings struct {
|
type Settings struct {
|
||||||
common *cfg.Common
|
common *cfg.Common
|
||||||
|
|
||||||
apiKey string `help:"Your PagerDuty API key."`
|
apiKey string `help:"Your PagerDuty API key."`
|
||||||
escalationFilter []interface{} `help:"An array of schedule names you want to filter on."`
|
escalationFilter []interface{} `help:"An array of schedule names you want to filter on."`
|
||||||
|
myName string `help:"The name to highlight when on-call in PagerDuty."`
|
||||||
scheduleIDs []interface{} `help:"An array of schedule IDs you want to restrict the query to."`
|
scheduleIDs []interface{} `help:"An array of schedule IDs you want to restrict the query to."`
|
||||||
showIncidents bool `help:"Whether or not to list incidents." optional:"true"`
|
showIncidents bool `help:"Whether or not to list incidents." optional:"true"`
|
||||||
showSchedules bool `help:"Whether or not to show schedules." optional:"true"`
|
showSchedules bool `help:"Whether or not to show schedules." optional:"true"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// NewSettingsFromYAML creates a new settings instance from a YAML config block
|
||||||
func NewSettingsFromYAML(name string, ymlConfig *config.Config, globalConfig *config.Config) *Settings {
|
func NewSettingsFromYAML(name string, ymlConfig *config.Config, globalConfig *config.Config) *Settings {
|
||||||
settings := Settings{
|
settings := Settings{
|
||||||
common: cfg.NewCommonSettingsFromModule(name, defaultTitle, defaultFocusable, ymlConfig, globalConfig),
|
common: cfg.NewCommonSettingsFromModule(name, defaultTitle, defaultFocusable, ymlConfig, globalConfig),
|
||||||
|
|
||||||
apiKey: ymlConfig.UString("apiKey", ymlConfig.UString("apikey", os.Getenv("WTF_PAGERDUTY_API_KEY"))),
|
apiKey: ymlConfig.UString("apiKey", ymlConfig.UString("apikey", os.Getenv("WTF_PAGERDUTY_API_KEY"))),
|
||||||
escalationFilter: ymlConfig.UList("escalationFilter"),
|
escalationFilter: ymlConfig.UList("escalationFilter"),
|
||||||
|
myName: ymlConfig.UString("myName"),
|
||||||
scheduleIDs: ymlConfig.UList("scheduleIDs", []interface{}{}),
|
scheduleIDs: ymlConfig.UList("scheduleIDs", []interface{}{}),
|
||||||
showIncidents: ymlConfig.UBool("showIncidents", true),
|
showIncidents: ymlConfig.UBool("showIncidents", true),
|
||||||
showSchedules: ymlConfig.UBool("showSchedules", true),
|
showSchedules: ymlConfig.UBool("showSchedules", true),
|
||||||
|
@ -118,7 +118,7 @@ func (widget *Widget) contentFrom(onCalls []pagerduty.OnCall, incidents []pagerd
|
|||||||
" [%s]%d - %s\n",
|
" [%s]%d - %s\n",
|
||||||
widget.settings.common.Colors.Text,
|
widget.settings.common.Colors.Text,
|
||||||
item.EscalationLevel,
|
item.EscalationLevel,
|
||||||
item.User.Summary,
|
widget.userSummary(item),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -126,3 +126,13 @@ func (widget *Widget) contentFrom(onCalls []pagerduty.OnCall, incidents []pagerd
|
|||||||
|
|
||||||
return str
|
return str
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (widget *Widget) userSummary(item pagerduty.OnCall) string {
|
||||||
|
summary := item.User.Summary
|
||||||
|
|
||||||
|
if summary == widget.settings.myName {
|
||||||
|
summary = fmt.Sprintf("[::b]%s", summary)
|
||||||
|
}
|
||||||
|
|
||||||
|
return summary
|
||||||
|
}
|
||||||
|
@ -10,6 +10,7 @@ const (
|
|||||||
defaultTitle = "Todo"
|
defaultTitle = "Todo"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Settings defines the configuration properties for this module
|
||||||
type Settings struct {
|
type Settings struct {
|
||||||
common *cfg.Common
|
common *cfg.Common
|
||||||
|
|
||||||
@ -18,6 +19,7 @@ type Settings struct {
|
|||||||
unchecked string
|
unchecked string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// NewSettingsFromYAML creates a new settings instance from a YAML config block
|
||||||
func NewSettingsFromYAML(name string, ymlConfig *config.Config, globalConfig *config.Config) *Settings {
|
func NewSettingsFromYAML(name string, ymlConfig *config.Config, globalConfig *config.Config) *Settings {
|
||||||
common := cfg.NewCommonSettingsFromModule(name, defaultTitle, defaultFocusable, ymlConfig, globalConfig)
|
common := cfg.NewCommonSettingsFromModule(name, defaultTitle, defaultFocusable, ymlConfig, globalConfig)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user