浏览代码

Use sensitive flag on header value

Mark Rousskov 4 年之前
父节点
当前提交
c01a6a9f50
共有 1 个文件被更改,包括 6 次插入8 次删除
  1. 6 8
      src/github.rs

+ 6 - 8
src/github.rs

@@ -3,6 +3,7 @@ use anyhow::Context;
 use chrono::{DateTime, FixedOffset, Utc};
 use futures::stream::{FuturesUnordered, StreamExt};
 use futures::{future::BoxFuture, FutureExt};
+use hyper::header::HeaderValue;
 use once_cell::sync::OnceCell;
 use reqwest::header::{AUTHORIZATION, USER_AGENT};
 use reqwest::{Client, Request, RequestBuilder, Response, StatusCode};
@@ -20,17 +21,12 @@ pub struct User {
 impl GithubClient {
     async fn _send_req(&self, req: RequestBuilder) -> anyhow::Result<(Response, String)> {
         const MAX_ATTEMPTS: usize = 2;
+        log::debug!("_send_req with {:?}", req);
         let req_dbg = format!("{:?}", req);
-        let mut req = req
+        let req = req
             .build()
             .with_context(|| format!("building reqwest {}", req_dbg))?;
 
-        let auth = req.headers_mut().remove(AUTHORIZATION);
-        log::debug!("_send_req with {:?}", auth);
-        if let Some(auth) = auth {
-            req.headers_mut().insert(AUTHORIZATION, auth);
-        }
-
         let mut resp = self.client.execute(req.try_clone().unwrap()).await?;
         if let Some(sleep) = Self::needs_retry(&resp).await {
             resp = self.retry(req, sleep, MAX_ATTEMPTS).await?;
@@ -833,8 +829,10 @@ trait RequestSend: Sized {
 
 impl RequestSend for RequestBuilder {
     fn configure(self, g: &GithubClient) -> RequestBuilder {
+        let mut auth = HeaderValue::from_maybe_shared(format!("token {}", g.token)).unwrap();
+        auth.set_sensitive(true);
         self.header(USER_AGENT, "rust-lang-triagebot")
-            .header(AUTHORIZATION, format!("token {}", g.token))
+            .header(AUTHORIZATION, &auth)
     }
 }