about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--fun/clbot/clbot.go15
1 files changed, 13 insertions, 2 deletions
diff --git a/fun/clbot/clbot.go b/fun/clbot/clbot.go
index a97d28e0f73d..317d99e22f05 100644
--- a/fun/clbot/clbot.go
+++ b/fun/clbot/clbot.go
@@ -249,8 +249,19 @@ func main() {
 				if e.Change.Project != *notifyRepo || !notifyBranches[e.Change.Branch] {
 					continue
 				}
-				user := username(e.PatchSet)
-				parsedMsg = nopingAll(user, fmt.Sprintf("CL/%d applied by %s - %s - %s", e.Change.Number, user, e.Change.Subject, patchSetURL(e.Change, e.PatchSet)))
+				owner := username(e.PatchSet)
+				submitter := e.Submitter.Username
+				url := patchSetURL(e.Change, e.PatchSet)
+
+				if submitter != owner && submitter == "clbot" {
+					// Ping CL author on IRC for autosubmitted messages, as this
+					// is not necessarily an action they would otherwise notice.
+					// We avoid pinging only for actions triggered by the same
+					// user.
+					parsedMsg = fmt.Sprintf("CL/%d by %s autosubmitted - %s - %s", e.Change.Number, owner, e.Change.Subject, url)
+				} else {
+					parsedMsg = nopingAll(owner, fmt.Sprintf("CL/%d applied by %s - %s - %s", e.Change.Number, owner, e.Change.Subject, url))
+				}
 			}
 			if parsedMsg != "" {
 				sendMsgChan <- parsedMsg