in ccadb2OneCRL/main.go [651:681]
func (u *Updater) BlastEmails(intersection *onecrl.Set) {
bugIDs := make(map[int]bool, 0)
builder := strings.Builder{}
builder.WriteString("Changes are still in review. The following bugs appear to require resolution.\n")
for e := range intersection.Iter() {
entry := e.(*onecrl.Record)
id, err := u.bugzilla.IDFromShowBug(entry.Details.Bug)
if err != nil {
log.WithError(err).
WithField("url", entry.Details.Bug).
Error("failed to retrieve bugzilla ID number from URL")
continue
}
if bugIDs[id] {
continue
}
builder.WriteByte('\t')
builder.WriteString(entry.Details.Bug)
bugIDs[id] = true
}
for id := range bugIDs {
_, err := u.bugzilla.UpdateBug(&bugs.Update{
Id: id,
Ids: []int{id},
Comment: &bugs.Comment{Body: builder.String()},
})
if err != nil {
log.WithError(err).WithField("ID", id).Warn("failed to ping blocking bug")
}
}
}