File tree 3 files changed +27
-3
lines changed
3 files changed +27
-3
lines changed Original file line number Diff line number Diff line change @@ -185,6 +185,11 @@ async fn handle_comment(
185
185
let pr_number = comment. pr_number ;
186
186
let commands = ctx. parser . parse_commands ( & comment. text ) ;
187
187
188
+ // Bail if no commands
189
+ if commands. is_empty ( ) {
190
+ return Ok ( ( ) ) ;
191
+ }
192
+
188
193
tracing:: debug!( "Commands: {commands:?}" ) ;
189
194
tracing:: trace!( "Text: {}" , comment. text) ;
190
195
@@ -324,4 +329,14 @@ mod tests {
324
329
} )
325
330
. await ;
326
331
}
332
+
333
+ #[ sqlx:: test]
334
+ async fn do_not_load_pr_on_unrelated_comment ( pool : sqlx:: PgPool ) {
335
+ run_test ( pool, |mut tester| async {
336
+ tester. default_repo ( ) . lock ( ) . pull_request_error = true ;
337
+ tester. post_comment ( "no command" ) . await ?;
338
+ Ok ( tester)
339
+ } )
340
+ . await ;
341
+ }
327
342
}
Original file line number Diff line number Diff line change @@ -30,11 +30,17 @@ pub async fn mock_pull_requests(
30
30
let repo_name = repo. lock ( ) . name . clone ( ) ;
31
31
let prs = repo. lock ( ) . pull_requests . clone ( ) ;
32
32
for & pr_number in prs. keys ( ) {
33
+ let repo_clone = repo. clone ( ) ;
33
34
Mock :: given ( method ( "GET" ) )
34
35
. and ( path ( format ! ( "/repos/{repo_name}/pulls/{pr_number}" ) ) )
35
- . respond_with (
36
- ResponseTemplate :: new ( 200 ) . set_body_json ( GitHubPullRequest :: new ( pr_number) ) ,
37
- )
36
+ . respond_with ( move |_: & Request | {
37
+ let pull_request_error = repo_clone. lock ( ) . pull_request_error . clone ( ) ;
38
+ if pull_request_error {
39
+ ResponseTemplate :: new ( 500 )
40
+ } else {
41
+ ResponseTemplate :: new ( 200 ) . set_body_json ( GitHubPullRequest :: new ( pr_number) )
42
+ }
43
+ } )
38
44
. mount ( mock_server)
39
45
. await ;
40
46
Original file line number Diff line number Diff line change @@ -58,6 +58,8 @@ pub struct Repo {
58
58
pub cancelled_workflows : Vec < u64 > ,
59
59
pub workflow_cancel_error : bool ,
60
60
pub pull_requests : HashMap < u64 , PullRequest > ,
61
+ // Cause pull request fetch to fail.
62
+ pub pull_request_error : bool ,
61
63
}
62
64
63
65
impl Repo {
@@ -73,6 +75,7 @@ impl Repo {
73
75
cancelled_workflows : vec ! [ ] ,
74
76
workflow_cancel_error : false ,
75
77
pull_requests,
78
+ pull_request_error : false ,
76
79
}
77
80
}
78
81
You can’t perform that action at this time.
0 commit comments