Sfoglia il codice sorgente

Skip deleted comments when parsing commands

kellda 4 anni fa
parent
commit
b850be1f31
1 ha cambiato i file con 8 aggiunte e 3 eliminazioni
  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);