1
0
mirror of https://github.com/woodpecker-ci/woodpecker.git synced 2024-12-18 08:26:45 +02:00
woodpecker/pkg/plugin/notify/email.go

47 lines
1.3 KiB
Go
Raw Normal View History

2014-02-07 13:10:01 +03:00
package notify
import "github.com/drone/drone/pkg/mail"
2014-02-07 13:10:01 +03:00
type Email struct {
Recipients []string `yaml:"recipients,omitempty"`
Success string `yaml:"on_success"`
Failure string `yaml:"on_failure"`
}
// Send will send an email, either success or failure,
// based on the Commit Status.
func (e *Email) Send(context *Context) error {
switch {
case context.Commit.Status == "Success" && e.Success != "never":
return e.sendSuccess(context)
case context.Commit.Status == "Failure" && e.Failure != "never":
return e.sendFailure(context)
}
return nil
}
// sendFailure sends email notifications to the list of
// recipients indicating the build failed.
func (e *Email) sendFailure(context *Context) error {
// loop through and email recipients
for _, email := range e.Recipients {
2014-04-18 02:52:16 +03:00
if err := mail.SendFailure(context.Repo.Name, context.Commit.Hash, email, context); err != nil {
2014-02-07 13:10:01 +03:00
return err
}
}
2014-02-07 13:10:01 +03:00
return nil
}
// sendSuccess sends email notifications to the list of
// recipients indicating the build was a success.
func (e *Email) sendSuccess(context *Context) error {
// loop through and email recipients
for _, email := range e.Recipients {
2014-04-18 02:52:16 +03:00
if err := mail.SendSuccess(context.Repo.Name, context.Commit.Hash, email, context); err != nil {
2014-02-07 13:10:01 +03:00
return err
}
}
2014-02-07 13:10:01 +03:00
return nil
}