Documentation ¶
Index ¶
- func BlamelistRepoWhiteset(notifications notifypb.Notifications) stringset.Set
- func BuildbucketPubSubHandler(ctx *router.Context, d *tq.Dispatcher) error
- func InitDispatcher(d *tq.Dispatcher)
- func Notify(c context.Context, d *tq.Dispatcher, recipients []EmailNotify, ...) error
- func SendEmail(c context.Context, task proto.Message) error
- type Build
- type Checkout
- type CheckoutFunc
- type EmailNotify
- type EmailTemplateInput
- type HistoryFunc
- type Logs
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BlamelistRepoWhiteset ¶
func BlamelistRepoWhiteset(notifications notifypb.Notifications) stringset.Set
BlamelistRepoWhiteset computes the aggregate repository whitelist for all blamelist notification configurations in a given set of notifications.
func BuildbucketPubSubHandler ¶
func BuildbucketPubSubHandler(ctx *router.Context, d *tq.Dispatcher) error
BuildbucketPubSubHandler is the main entrypoint for a new update from buildbucket's pubsub.
This handler delegates the actual processing of the build to handleBuild. Its primary purpose is to unwrap context boilerplate and deal with progress-stopping errors.
func InitDispatcher ¶
func InitDispatcher(d *tq.Dispatcher)
InitDispatcher registers the send email task with the given dispatcher.
func Notify ¶
func Notify(c context.Context, d *tq.Dispatcher, recipients []EmailNotify, templateParams *EmailTemplateInput) error
Notify discovers, consolidates and filters recipients from a Builder's notifications, and 'email_notify' properties, then dispatches notifications if necessary. Does not dispatch a notification for same email, template and build more than once. Ignores current transaction in c, if any.
Types ¶
type Build ¶
type Build struct { buildbucketpb.Build EmailNotify []EmailNotify }
Build is buildbucketpb.Build along with the parsed 'email_notify' values.
type Checkout ¶
Checkout represents a Git checkout of multiple repositories. It is a mapping of repository URLs to Git revisions.
func NewCheckout ¶
func NewCheckout(commits notifypb.GitilesCommits) Checkout
NewCheckout creates a new Checkout populated with the repositories and revision found in the GitilesCommits object.
func (Checkout) Filter ¶
Filter filters out repositories from the Checkout which are not in the whitelist and returns a new Checkout.
func (Checkout) ToGitilesCommits ¶
func (c Checkout) ToGitilesCommits() notifypb.GitilesCommits
ToGitilesCommits converts the Checkout into a set of GitilesCommits which may be stored as part of a config.Builder.
type CheckoutFunc ¶
CheckoutFunc is a function that given a Build, produces a source checkout related to that build.
type EmailNotify ¶
EmailNotify contains information for delivery and personalization of notification emails.
func ComputeRecipients ¶
func ComputeRecipients(notifications notifypb.Notifications, inputBlame []*gitpb.Commit, outputBlame Logs) []EmailNotify
ComputeRecipients computes the set of recipients given a set of notifications, and potentially "input" and "output" blamelists.
An "input" blamelist is computed from the input commit to a build, while an "output" blamelist is derived from output commits.
type EmailTemplateInput ¶
type EmailTemplateInput struct { *buildbucketpb.Build OldStatus buildbucketpb.Status }
type HistoryFunc ¶
type HistoryFunc func(c context.Context, host, project, oldRevision, newRevision string) ([]*gitpb.Commit, error)
HistoryFunc is a function that gets a list of commits from Gitiles for a specific repository, between oldRevision and newRevision, inclusive.
If oldRevision is not reachable from newRevision, returns an empty slice and nil error.
type Logs ¶
Logs represents a set of Git diffs between two Checkouts.
It is a mapping of repository URLs to a list of Git commits, representing the Git log for that repository.
func ComputeLogs ¶
func ComputeLogs(c context.Context, oldCheckout, newCheckout Checkout, history HistoryFunc) (Logs, error)
ComputeLogs produces a set of Git diffs between oldCheckout and newCheckout, using the repositories in the newCheckout. historyFunc is used to grab the Git history.
func (Logs) Blamelist ¶
func (l Logs) Blamelist(template string) []EmailNotify
Blamelist computes a set of email notifications from the Logs.