2014-02-07 10:10:01 +00:00
|
|
|
package notify
|
|
|
|
|
|
|
|
import (
|
2014-06-12 23:41:04 +00:00
|
|
|
"github.com/drone/drone/shared/model"
|
2014-02-07 10:10:01 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
type Sender interface {
|
2014-07-13 02:01:34 +00:00
|
|
|
Send(context *model.Request) error
|
2014-02-07 10:10:01 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Notification stores the configuration details
|
|
|
|
// for notifying a user, or group of users,
|
|
|
|
// when their Build has completed.
|
|
|
|
type Notification struct {
|
|
|
|
Email *Email `yaml:"email,omitempty"`
|
|
|
|
Webhook *Webhook `yaml:"webhook,omitempty"`
|
|
|
|
Hipchat *Hipchat `yaml:"hipchat,omitempty"`
|
2014-03-06 18:45:21 +00:00
|
|
|
Irc *IRC `yaml:"irc,omitempty"`
|
2014-03-26 10:43:40 +00:00
|
|
|
Slack *Slack `yaml:"slack,omitempty"`
|
2014-02-07 10:10:01 +00:00
|
|
|
}
|
|
|
|
|
2014-07-13 02:01:34 +00:00
|
|
|
func (n *Notification) Send(context *model.Request) error {
|
2014-02-07 10:10:01 +00:00
|
|
|
// send email notifications
|
|
|
|
if n.Webhook != nil {
|
|
|
|
n.Webhook.Send(context)
|
|
|
|
}
|
|
|
|
|
|
|
|
// send email notifications
|
|
|
|
if n.Hipchat != nil {
|
|
|
|
n.Hipchat.Send(context)
|
|
|
|
}
|
|
|
|
|
2014-03-06 18:45:21 +00:00
|
|
|
// send irc notifications
|
|
|
|
if n.Irc != nil {
|
|
|
|
n.Irc.Send(context)
|
|
|
|
}
|
2014-02-22 00:10:04 +00:00
|
|
|
|
2014-03-26 10:43:40 +00:00
|
|
|
// send slack notifications
|
|
|
|
if n.Slack != nil {
|
|
|
|
n.Slack.Send(context)
|
|
|
|
}
|
|
|
|
|
2014-02-07 10:10:01 +00:00
|
|
|
return nil
|
|
|
|
}
|