|
@@ -1,5 +1,5 @@
|
|
use crate::config::{self, Config, ConfigurationError};
|
|
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 octocrab::Octocrab;
|
|
use parser::command::{Command, Input};
|
|
use parser::command::{Command, Input};
|
|
use std::fmt;
|
|
use std::fmt;
|
|
@@ -114,12 +114,17 @@ macro_rules! command_handlers {
|
|
body: &str,
|
|
body: &str,
|
|
errors: &mut Vec<HandlerError>,
|
|
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
|
|
// no change in issue's body for these events, so skip
|
|
log::debug!("skipping event, issue was {:?}", e.action);
|
|
log::debug!("skipping event, issue was {:?}", e.action);
|
|
return;
|
|
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);
|
|
let input = Input::new(&body, &ctx.username);
|