@@ -161,6 +161,7 @@ module Network.HTTP.Req
161161 -- *** Headers
162162 header,
163163 attachHeader,
164+ headerRedacted,
164165
165166 -- *** Cookies
166167 -- $cookies
@@ -255,6 +256,7 @@ import qualified Data.List.NonEmpty as NE
255256import Data.Maybe (fromMaybe)
256257import Data.Proxy
257258import Data.Semigroup (Endo (..))
259+import qualified Data.Set as S
258260import Data.Text (Text)
259261import qualified Data.Text as T
260262import qualified Data.Text.Encoding as T
@@ -1561,6 +1563,14 @@ attachHeader :: ByteString -> ByteString -> L.Request -> L.Request
15611563attachHeader name value x =
15621564 x {L.requestHeaders = (CI.mk name, value) : L.requestHeaders x}
15631565
1566+-- | Same as 'header', but with redacted values on print.
1567+--
1568+-- @since 3.13.0
1569+headerRedacted :: ByteString -> ByteString -> Option scheme
1570+headerRedacted name value = withRequest $ \x ->
1571+ let y = attachHeader name value x
1572+ in y {L.redactHeaders = CI.mk name `S.insert` L.redactHeaders y}
1573+
15641574----------------------------------------------------------------------------
15651575-- Request—Optional parameters—Cookies
15661576