@@ -19,7 +19,10 @@ use crate::{
1919} ; 
2020
2121use  super :: { 
22-     serde_structs:: { FullReview ,  PullRequestInfo ,  ReviewComment ,  ReviewDiffComment ,  ThreadComment } , 
22+     serde_structs:: { 
23+         FullReview ,  PullRequestInfo ,  ReviewComment ,  ReviewDiffComment ,  ThreadComment , 
24+         REVIEW_DISMISSAL , 
25+     } , 
2326    GithubApiClient ,  RestApiClient , 
2427} ; 
2528
@@ -206,9 +209,14 @@ impl GithubApiClient {
206209            } ) ?, 
207210        ) ; 
208211        let  repo = format ! ( 
209-             "repos/{}/comments" , 
212+             "repos/{}{} /comments" , 
210213            // if we got here, then we know it is on a CI runner as self.repo should be known 
211-             self . repo. as_ref( ) . expect( "Repo name unknown." ) 
214+             self . repo. as_ref( ) . expect( "Repo name unknown." ) , 
215+             if  self . event_name == "pull_request"  { 
216+                 "/issues" 
217+             }  else { 
218+                 "" 
219+             } , 
212220        ) ; 
213221        let  base_comment_url = self . api_url . join ( & repo) . unwrap ( ) ; 
214222        while  let  Some ( ref  endpoint)  = comments_url { 
@@ -454,51 +462,40 @@ impl GithubApiClient {
454462                                && !( [ "PENDING" ,  "DISMISSED" ] . contains ( & review. state . as_str ( ) ) ) 
455463                            { 
456464                                // dismiss outdated review 
457-                                 match  url. join ( "reviews/" ) ?. join ( review. id . to_string ( ) . as_str ( ) )  { 
458-                                     Ok ( dismiss_url)  => { 
459-                                         if  let  Ok ( req)  = Self :: make_api_request ( 
460-                                             & self . client , 
461-                                             dismiss_url, 
462-                                             Method :: PUT , 
463-                                             Some ( 
464-                                                 serde_json:: json!( 
465-                                                     { 
466-                                                         "message" :  "outdated suggestion" , 
467-                                                         "event" :  "DISMISS" 
468-                                                     } 
469-                                                 ) 
470-                                                 . to_string ( ) , 
471-                                             ) , 
472-                                             None , 
473-                                         )  { 
474-                                             match  Self :: send_api_request ( 
475-                                                 self . client . clone ( ) , 
476-                                                 req, 
477-                                                 self . rate_limit_headers . clone ( ) , 
478-                                                 0 , 
479-                                             ) 
480-                                             . await 
481-                                             { 
482-                                                 Ok ( result)  => { 
483-                                                     if  !result. status ( ) . is_success ( )  { 
484-                                                         Self :: log_response ( 
485-                                                             result, 
486-                                                             "Failed to dismiss outdated review" , 
487-                                                         ) 
488-                                                         . await ; 
489-                                                     } 
490-                                                 } 
491-                                                 Err ( e)  => { 
492-                                                     log:: error!( 
493-                                                         "Failed to dismiss outdated review: {e:}" 
494-                                                     ) ; 
465+                                 if  let  Ok ( dismiss_url)  =
466+                                     url. join ( format ! ( "reviews/{}/dismissals" ,  review. id) . as_str ( ) ) 
467+                                 { 
468+                                     if  let  Ok ( req)  = Self :: make_api_request ( 
469+                                         & self . client , 
470+                                         dismiss_url, 
471+                                         Method :: PUT , 
472+                                         Some ( REVIEW_DISMISSAL . to_string ( ) ) , 
473+                                         None , 
474+                                     )  { 
475+                                         match  Self :: send_api_request ( 
476+                                             self . client . clone ( ) , 
477+                                             req, 
478+                                             self . rate_limit_headers . clone ( ) , 
479+                                             0 , 
480+                                         ) 
481+                                         . await 
482+                                         { 
483+                                             Ok ( result)  => { 
484+                                                 if  !result. status ( ) . is_success ( )  { 
485+                                                     Self :: log_response ( 
486+                                                         result, 
487+                                                         "Failed to dismiss outdated review" , 
488+                                                     ) 
489+                                                     . await ; 
495490                                                } 
496491                                            } 
492+                                             Err ( e)  => { 
493+                                                 log:: error!( 
494+                                                     "Failed to dismiss outdated review: {e:}" 
495+                                                 ) ; 
496+                                             } 
497497                                        } 
498498                                    } 
499-                                     Err ( e)  => { 
500-                                         log:: error!( "Failed to parse URL for dismissing outdated review: {e:?}" ) ; 
501-                                     } 
502499                                } 
503500                            } 
504501                        } 
0 commit comments