1- use  crate :: db:: issue_data:: IssueData ; 
21use  crate :: { 
32    config:: AutolabelConfig , 
43    github:: { IssuesAction ,  IssuesEvent ,  Label } , 
@@ -7,16 +6,6 @@ use crate::{
76use  anyhow:: Context  as  _; 
87use  tracing as  log; 
98
10- /// Key for the state in the database 
11- const  AUTOLABEL_KEY :  & str  = "autolabel" ; 
12- 
13- /// State stored in the database 
14- #[ derive( Debug ,  Default ,  PartialEq ,  Clone ,  serde:: Deserialize ,  serde:: Serialize ) ]  
15- struct  AutolabelState  { 
16-     /// If true, then `autolabel.new_pr` labels have already been applied to this PR. 
17- new_pr_labels_applied :  bool , 
18- } 
19- 
209pub ( super )  struct  AutolabelInput  { 
2110    add :  Vec < Label > , 
2211    remove :  Vec < Label > , 
@@ -44,12 +33,6 @@ pub(super) async fn parse_input(
4433            | IssuesAction :: ReadyForReview 
4534            | IssuesAction :: ConvertedToDraft 
4635    )  { 
47-         let  mut  db = ctx. db . get ( ) . await ; 
48-         let  mut  state:  IssueData < ' _ ,  AutolabelState >  =
49-             IssueData :: load ( & mut  db,  & event. issue ,  AUTOLABEL_KEY ) 
50-                 . await 
51-                 . map_err ( |e| e. to_string ( ) ) ?; 
52- 
5336        let  files = event
5437            . issue 
5538            . diff ( & ctx. github ) 
@@ -102,24 +85,21 @@ pub(super) async fn parse_input(
10285
10386                // Treat the following situations as a "new PR": 
10487                // 1) New PRs opened as non-draft 
105-                 // 2) PRs opened as draft that are marked as "ready for review" for the first time . 
88+                 // 2) PRs opened as draft that are marked as "ready for review". 
10689                let  is_new_non_draft_pr =
10790                    event. action  == IssuesAction :: Opened  && !event. issue . draft ; 
108-                 let  is_first_time_ready_for_review = event. action  == IssuesAction :: ReadyForReview 
109-                     && !state. data . new_pr_labels_applied ; 
110-                 if  cfg. new_pr  && ( is_new_non_draft_pr || is_first_time_ready_for_review)  { 
91+                 let  is_ready_for_review = event. action  == IssuesAction :: ReadyForReview ; 
92+                 if  cfg. new_pr  && ( is_new_non_draft_pr || is_ready_for_review)  { 
11193                    autolabels. push ( Label  { 
11294                        name :  label. to_owned ( ) , 
11395                    } ) ; 
114-                     state. data . new_pr_labels_applied  = true ; 
11596                } 
11697
11798                // If a PR is converted to draft remove all the "new PR" labels 
11899                if  cfg. new_pr  && event. action  == IssuesAction :: ConvertedToDraft  { 
119100                    to_remove. push ( Label  { 
120101                        name :  label. to_owned ( ) , 
121102                    } ) ; 
122-                     state. data . new_pr_labels_applied  = false ; 
123103                } 
124104            }  else  { 
125105                if  cfg. new_issue  && event. action  == IssuesAction :: Opened  { 
@@ -130,8 +110,6 @@ pub(super) async fn parse_input(
130110            } 
131111        } 
132112
133-         state. save ( ) . await . map_err ( |e| e. to_string ( ) ) ?; 
134- 
135113        if  !autolabels. is_empty ( )  || !to_remove. is_empty ( )  { 
136114            return  Ok ( Some ( AutolabelInput  { 
137115                add :  autolabels, 
0 commit comments