@@ -19,7 +19,10 @@ use crate::{
19
19
};
20
20
21
21
use super::{
22
- serde_structs::{FullReview, PullRequestInfo, ReviewComment, ReviewDiffComment, ThreadComment},
22
+ serde_structs::{
23
+ FullReview, PullRequestInfo, ReviewComment, ReviewDiffComment, ThreadComment,
24
+ REVIEW_DISMISSAL,
25
+ },
23
26
GithubApiClient, RestApiClient,
24
27
};
25
28
@@ -206,9 +209,14 @@ impl GithubApiClient {
206
209
})?,
207
210
);
208
211
let repo = format!(
209
- "repos/{}/comments",
212
+ "repos/{}{} /comments",
210
213
// 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
+ },
212
220
);
213
221
let base_comment_url = self.api_url.join(&repo).unwrap();
214
222
while let Some(ref endpoint) = comments_url {
@@ -454,51 +462,40 @@ impl GithubApiClient {
454
462
&& !(["PENDING", "DISMISSED"].contains(&review.state.as_str()))
455
463
{
456
464
// 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;
495
490
}
496
491
}
492
+ Err(e) => {
493
+ log::error!(
494
+ "Failed to dismiss outdated review: {e:}"
495
+ );
496
+ }
497
497
}
498
498
}
499
- Err(e) => {
500
- log::error!("Failed to parse URL for dismissing outdated review: {e:?}");
501
- }
502
499
}
503
500
}
504
501
}
0 commit comments