@@ -27,7 +27,6 @@ import qualified Data.ByteString.Lazy as LBS
2727import Data.Functor (($>))
2828import Data.Maybe (fromMaybe)
2929import Data.Semigroup ((<>))
30−import Data.Tagged
3130import Data.Text (Text)
3231import qualified Data.Text as T
3332import Data.Text.Encoding (encodeUtf8)
@@ -38,7 +37,8 @@ import GitHub.Data.Apps (App)
3837import GitHub.Data.Definitions (Error (HTTPError))
3938import GitHub.Data.Id (Id, untagId)
4039import GitHub.Data.Installations (Installation)
41−import GitHub.Request (StatusMap, parseResponseJSON)
40+import GitHub.Data.Request (StatusMap)
41+import GitHub.Request (parseResponse)
4242import Network.HTTP.Client as HTTP
4343import qualified Network.HTTP.Client.Internal as HTTP
4444import qualified Network.HTTP.Types as HTTP
@@ -48,7 +48,7 @@ import Web.JWT (JWTClaimsSet (exp, iat, iss), Signer (RSAPrivateKey), encodeSign
4848
4949-- | JWT expiration time. Maximum accepted by GitHub is 10 minutes
5050jwtExpTime :: NominalDiffTime
51−jwtExpTime = 300
51+jwtExpTime = 600
5252
5353-- | Installation access token expiration time. It is fixed by GitHub and is equal to 1 hour
5454instKeyExpTime :: NominalDiffTime
@@ -113,13 +113,12 @@ createAccessTokenR InstallationAuth{..} = do
113113 { iat = Just $ toJsonTime currentTime
114114 , exp = Just $ toJsonTime expiryTime
115115 }
116− jwt = encodeSigned (RSAPrivateKey iaAppPrivateKey) mempty claims
116+ jwt = encodeSigned (RSAPrivateKey iaAppPrivateKey) claims
117117
118118 req <- HTTP.parseRequest . T.unpack $ url
119119 pure req
120120 { HTTP.requestHeaders =
121121 [ ("Authorization", "Bearer " <> encodeUtf8 jwt)
122− , ("Accept", "application/vnd.github.machine-man-preview+json")
123122 , ("User-Agent", "github-app/Haskell")
124123 ]
125124 , HTTP.checkResponse = successOrMissing Nothing
@@ -148,7 +147,7 @@ obtainAccessToken mgr ia@InstallationAuth{..} = readMVar iaToken >>= \case
148147 renew :: IO (Either Error Auth)
149148 renew = bracketOnError (takeMVar iaToken) (putMVar iaToken) $ \_ -> do
150149 req <- createAccessTokenR ia
151− result <- runExceptT $ httpLbs' req >>= parseResponseJSON
150+ result <- runExceptT $ httpLbs' req >>= parseResponse
152151 case result of
153152 Right newToken -> putMVar iaToken (Just newToken) $> Right (itToken newToken)
154153 Left err -> putMVar iaToken Nothing $> Left err