瀏覽代碼

Skip deleted comments when parsing commands

kellda 4 年之前
父節點
當前提交
b850be1f31
共有 1 個文件被更改,包括 8 次插入3 次删除
  1. 8 3
      src/handlers.rs

+ 8 - 3
src/handlers.rs

@@ -1,5 +1,5 @@
 use crate::config::{self, Config, ConfigurationError};
-use crate::github::{Event, GithubClient, IssuesAction, IssuesEvent};
+use crate::github::{Event, GithubClient, IssueCommentAction, IssuesAction, IssuesEvent};
 use octocrab::Octocrab;
 use parser::command::{Command, Input};
 use std::fmt;
@@ -114,12 +114,17 @@ macro_rules! command_handlers {
             body: &str,
             errors: &mut Vec<HandlerError>,
         ) {
-            if let Event::Issue(e) = event {
-                if !matches!(e.action, IssuesAction::Opened | IssuesAction::Edited) {
+            match event {
+                Event::Issue(e) => if !matches!(e.action, IssuesAction::Opened | IssuesAction::Edited) {
                     // no change in issue's body for these events, so skip
                     log::debug!("skipping event, issue was {:?}", e.action);
                     return;
                 }
+                Event::IssueComment(e) => if e.action == IssueCommentAction::Deleted {
+                    // don't execute commands again when comment is deleted
+                    log::debug!("skipping event, comment was {:?}", e.action);
+                    return;
+                }
             }
 
             let input = Input::new(&body, &ctx.username);