@@ -2,9 +2,10 @@ use crate::app::AppState;
2
2
use crate :: controllers:: frontend_prelude:: * ;
3
3
use crate :: models:: { ApiToken , User } ;
4
4
use crate :: schema:: api_tokens;
5
- use crate :: util:: read_fill;
6
5
use crate :: util:: token:: SecureToken ;
7
6
use anyhow:: { anyhow, Context } ;
7
+ use axum:: body:: Bytes ;
8
+ use axum:: extract:: State ;
8
9
use base64;
9
10
use http:: HeaderMap ;
10
11
use once_cell:: sync:: Lazy ;
@@ -232,29 +233,22 @@ pub enum GitHubSecretAlertFeedbackLabel {
232
233
}
233
234
234
235
/// Handles the `POST /api/github/secret-scanning/verify` route.
235
- pub async fn verify ( mut req : ConduitRequest ) -> AppResult < Json < Vec < GitHubSecretAlertFeedback > > > {
236
+ pub async fn verify (
237
+ state : State < AppState > ,
238
+ headers : HeaderMap ,
239
+ body : Bytes ,
240
+ ) -> AppResult < Json < Vec < GitHubSecretAlertFeedback > > > {
236
241
conduit_compat ( move || {
237
- let max_size = 8192 ;
238
- let length = req. content_length ( ) ;
239
-
240
- if length > max_size {
241
- return Err ( bad_request ( & format ! ( "max content length is: {max_size}" ) ) ) ;
242
- }
243
-
244
- let mut json = vec ! [ 0 ; length as usize ] ;
245
- read_fill ( req. body_mut ( ) , & mut json) ?;
246
-
247
- let state = req. app ( ) ;
248
- verify_github_signature ( req. headers ( ) , state, & json)
242
+ verify_github_signature ( & headers, & state, & body)
249
243
. map_err ( |e| bad_request ( & format ! ( "failed to verify request signature: {e:?}" ) ) ) ?;
250
244
251
- let alerts: Vec < GitHubSecretAlert > = json:: from_slice ( & json )
245
+ let alerts: Vec < GitHubSecretAlert > = json:: from_slice ( & body )
252
246
. map_err ( |e| bad_request ( & format ! ( "invalid secret alert request: {e:?}" ) ) ) ?;
253
247
254
248
let feedback = alerts
255
249
. into_iter ( )
256
250
. map ( |alert| {
257
- let label = alert_revoke_token ( state, & alert) ?;
251
+ let label = alert_revoke_token ( & state, & alert) ?;
258
252
Ok ( GitHubSecretAlertFeedback {
259
253
token_raw : alert. token ,
260
254
token_type : alert. r#type ,
0 commit comments