Selaa lähdekoodia

Only add waiting on author label if the reviewer requested changes

mibac138 3 vuotta sitten
vanhempi
commit
5490a59bea
2 muutettua tiedostoa jossa 17 lisäystä ja 1 poistoa
  1. 12 0
      src/github.rs
  2. 5 1
      src/handlers/review_submitted.rs

+ 12 - 0
src/github.rs

@@ -292,6 +292,18 @@ pub struct Comment {
     pub user: User,
     #[serde(alias = "submitted_at")] // for pull request reviews
     pub updated_at: chrono::DateTime<Utc>,
+    #[serde(rename = "state")]
+    pub pr_review_state: PullRequestReviewState,
+}
+
+#[derive(Debug, serde::Deserialize, Eq, PartialEq)]
+#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
+pub enum PullRequestReviewState {
+    Approved,
+    ChangesRequested,
+    Commented,
+    Dismissed,
+    Pending,
 }
 
 fn opt_string<'de, D>(deserializer: D) -> Result<String, D::Error>

+ 5 - 1
src/handlers/review_submitted.rs

@@ -1,4 +1,4 @@
-use crate::github::{Issue, IssueCommentAction, IssueCommentEvent, Label};
+use crate::github::{Issue, IssueCommentAction, IssueCommentEvent, Label, PullRequestReviewState};
 use crate::{config::ReviewSubmittedConfig, github::Event, handlers::Context};
 
 pub(crate) async fn handle(
@@ -19,6 +19,10 @@ pub(crate) async fn handle(
         },
     ) = event
     {
+        if event.comment.pr_review_state != PullRequestReviewState::ChangesRequested {
+            return Ok(());
+        }
+
         if event.issue.assignees.contains(&event.comment.user) {
             let labels = event
                 .issue