packages feed

github-rest 1.2.0 → 1.2.1

raw patch · 5 files changed

+24/−26 lines, 5 filesdep ~aesondep ~bytestringdep ~cryptonPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: aeson, bytestring, crypton, http-client, http-client-tls, http-types, jose-jwt, mtl, scientific, text, time, transformers, unliftio, unliftio-core

API changes (from Hackage documentation)

- GitHub.REST: [$sel:apiVersion:GitHubSettings] :: GitHubSettings -> ByteString
- GitHub.REST: [$sel:token:GitHubSettings] :: GitHubSettings -> Maybe Token
- GitHub.REST: [$sel:userAgent:GitHubSettings] :: GitHubSettings -> ByteString
- GitHub.REST.Monad: [$sel:apiVersion:GitHubSettings] :: GitHubSettings -> ByteString
- GitHub.REST.Monad: [$sel:token:GitHubSettings] :: GitHubSettings -> Maybe Token
- GitHub.REST.Monad: [$sel:userAgent:GitHubSettings] :: GitHubSettings -> ByteString
+ GitHub.REST: [apiVersion] :: GitHubSettings -> ByteString
+ GitHub.REST: [token] :: GitHubSettings -> Maybe Token
+ GitHub.REST: [userAgent] :: GitHubSettings -> ByteString
+ GitHub.REST.Monad: [apiVersion] :: GitHubSettings -> ByteString
+ GitHub.REST.Monad: [token] :: GitHubSettings -> Maybe Token
+ GitHub.REST.Monad: [userAgent] :: GitHubSettings -> ByteString
- GitHub.REST: [:=] :: (Show v, ToJSON v) => Text -> v -> KeyValue
+ GitHub.REST: [:=] :: forall v. (Show v, ToJSON v) => Text -> v -> KeyValue
- GitHub.REST: class (Monad m) => MonadGitHubREST m
+ GitHub.REST: class Monad m => MonadGitHubREST (m :: Type -> Type)
- GitHub.REST: data GitHubT m a
+ GitHub.REST: data GitHubT (m :: Type -> Type) a
- GitHub.REST: data () => StdMethod
+ GitHub.REST: data StdMethod
- GitHub.REST.KeyValue: [:=] :: (Show v, ToJSON v) => Text -> v -> KeyValue
+ GitHub.REST.KeyValue: [:=] :: forall v. (Show v, ToJSON v) => Text -> v -> KeyValue
- GitHub.REST.Monad: class (Monad m) => MonadGitHubREST m
+ GitHub.REST.Monad: class Monad m => MonadGitHubREST (m :: Type -> Type)
- GitHub.REST.Monad: data GitHubT m a
+ GitHub.REST.Monad: data GitHubT (m :: Type -> Type) a
- GitHub.REST.Monad.Class: class (Monad m) => MonadGitHubREST m
+ GitHub.REST.Monad.Class: class Monad m => MonadGitHubREST (m :: Type -> Type)

Files

CHANGELOG.md view
@@ -1,3 +1,7 @@+# v1.2.1++* Make integration test more robust+ # v1.2.0  * Switch from `jwt` to `jose-jwt` + `crypton`
github-rest.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack  name:           github-rest-version:        1.2.0+version:        1.2.1 synopsis:       Query the GitHub REST API programmatically description:    Query the GitHub REST API programmatically, which can provide a more                 flexible and clear interface than if all of the endpoints and their types@@ -21,8 +21,6 @@ extra-source-files:     README.md     CHANGELOG.md-    test/goldens/gists-gist_id-sha-404.golden-    test/goldens/gists-gist_id-sha-422.golden     test/goldens/gists-gist_id-sha.golden  source-repository head
test/Query.hs view
@@ -1,4 +1,3 @@-{-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE ScopedTypeVariables #-} @@ -6,11 +5,11 @@  import Data.Aeson (Value) import Data.ByteString.Lazy (ByteString)-import qualified Data.ByteString.Lazy.Char8 as Char8 import qualified Data.Text.Lazy.Encoding as Text import Network.HTTP.Types (status404) import Test.Tasty (TestName, TestTree) import Test.Tasty.Golden (goldenVsString)+import Test.Tasty.HUnit (testCase, (@?=))  import GitHub.REST @@ -19,29 +18,28 @@   [ goldens "Query Gist #1" "gists-gist_id-sha.golden" $ do       gist <- queryGitHub $ getGist 1 "8afc134bf14f8f56ed2e7234128490d9946e8c16"       return $ Text.encodeUtf8 $ gist .: "files" .: "gistfile1.txt" .: "content"-  , goldens "Query non-existent Gist commit" "gists-gist_id-sha-422.golden" $ do-      showResult . githubTry . queryGitHub $-        getGist 1 "d00770679ba293a327156b9e7031c47c6d269157"-  , goldens "Query non-existent Gist" "gists-gist_id-sha-404.golden" $ do-      showResult . githubTry' status404 . queryGitHub $-        getGist 0 "d00770679ba293a327156b9e7031c47c6d269157"+  , testCase "Query non-existent Gist commit" $ do+      (Left e :: Either Value Value) <-+        runGitHubT ghSettings . githubTry . queryGitHub $+          getGist 1 "d00770679ba293a327156b9e7031c47c6d269157"+      e .: "message" @?= ("No commit found for SHA: d00770679ba293a327156b9e7031c47c6d269157" :: String)+  , testCase "Query non-existent Gist" $ do+      (Left e :: Either Value Value) <-+        runGitHubT ghSettings . githubTry' status404 . queryGitHub $+          getGist 0 "d00770679ba293a327156b9e7031c47c6d269157"+      e .: "message" @?= ("Not Found" :: String)   ]  goldens :: TestName -> String -> GitHubT IO ByteString -> TestTree-goldens name fp action = goldenVsString name ("test/goldens/" ++ fp) $ runGitHubT state action-  where-    state =-      GitHubSettings-        { token = Nothing-        , userAgent = "github-rest"-        , apiVersion = ""-        }+goldens name fp action = goldenVsString name ("test/goldens/" ++ fp) $ runGitHubT ghSettings action -showResult :: (Monad m) => m (Either Value Value) -> m ByteString-showResult m =-  m >>= \case-    Right v -> error $ "Got back invalid result: " ++ show v-    Left e -> return $ Char8.pack $ show e+ghSettings :: GitHubSettings+ghSettings =+  GitHubSettings+    { token = Nothing+    , userAgent = "github-rest"+    , apiVersion = ""+    }  getGist :: Int -> String -> GHEndpoint getGist gistId gistSha =
− test/goldens/gists-gist_id-sha-404.golden
@@ -1,1 +0,0 @@-Object (fromList [("documentation_url",String "https://docs.github.com/rest/gists/gists#get-a-gist-revision"),("message",String "Not Found")])
− test/goldens/gists-gist_id-sha-422.golden
@@ -1,1 +0,0 @@-Object (fromList [("documentation_url",String "https://docs.github.com/rest/gists/gists#get-a-gist-revision"),("message",String "No commit found for SHA: d00770679ba293a327156b9e7031c47c6d269157")])