packages feed

gitlab-haskell 0.1.0.1 → 0.1.0.2

raw patch · 5 files changed

+44/−13 lines, 5 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- GitLab.Types: [stats] :: Commit -> Maybe Stats
- GitLab.Types: data Stats
- GitLab.Types: instance Data.Aeson.Types.FromJSON.FromJSON GitLab.Types.Stats
- GitLab.Types: instance GHC.Generics.Generic GitLab.Types.Stats
- GitLab.Types: instance GHC.Show.Show GitLab.Types.Stats
+ GitLab.API.Projects: userProjects' :: (MonadUnliftIO m, MonadIO m) => Text -> GitLab m (Maybe [Project])
+ GitLab.Types: ProjectStats :: Int -> Int -> Int -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> ProjectStats
+ GitLab.Types: [commit_count] :: ProjectStats -> Int
+ GitLab.Types: [commit_stats] :: Commit -> Maybe CommitStats
+ GitLab.Types: [job_artifacts_size] :: ProjectStats -> Maybe Int
+ GitLab.Types: [lfs_objects_size] :: ProjectStats -> Maybe Int
+ GitLab.Types: [packages_size] :: ProjectStats -> Maybe Int
+ GitLab.Types: [project_stats] :: Project -> Maybe ProjectStats
+ GitLab.Types: [repository_size] :: ProjectStats -> Int
+ GitLab.Types: [storage_size] :: ProjectStats -> Int
+ GitLab.Types: [wiki_size] :: ProjectStats -> Maybe Int
+ GitLab.Types: data CommitStats
+ GitLab.Types: data ProjectStats
+ GitLab.Types: instance Data.Aeson.Types.FromJSON.FromJSON GitLab.Types.CommitStats
+ GitLab.Types: instance Data.Aeson.Types.FromJSON.FromJSON GitLab.Types.ProjectStats
+ GitLab.Types: instance GHC.Classes.Eq GitLab.Types.ProjectStats
+ GitLab.Types: instance GHC.Generics.Generic GitLab.Types.CommitStats
+ GitLab.Types: instance GHC.Generics.Generic GitLab.Types.ProjectStats
+ GitLab.Types: instance GHC.Show.Show GitLab.Types.CommitStats
+ GitLab.Types: instance GHC.Show.Show GitLab.Types.ProjectStats
- GitLab.API.Projects: userProjects :: (MonadUnliftIO m, MonadIO m) => Text -> GitLab m (Maybe [Project])
+ GitLab.API.Projects: userProjects :: (MonadUnliftIO m, MonadIO m) => User -> GitLab m (Maybe [Project])
- GitLab.Types: Commit :: Text -> Text -> Text -> Text -> Text -> Text -> Text -> Text -> Text -> Text -> Text -> Maybe [Text] -> Maybe Pipeline -> Maybe Stats -> Maybe Text -> Commit
+ GitLab.Types: Commit :: Text -> Text -> Text -> Text -> Text -> Text -> Text -> Text -> Text -> Text -> Text -> Maybe [Text] -> Maybe Pipeline -> Maybe CommitStats -> Maybe Text -> Commit
- GitLab.Types: Project :: Int -> Maybe Text -> Text -> Text -> Text -> Text -> Text -> Maybe Text -> [Text] -> Text -> Text -> Text -> Maybe Text -> Maybe Text -> Int -> Int -> Text -> Namespace -> Maybe Links -> Maybe Bool -> Maybe Text -> Maybe Owner -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Int -> Maybe Project -> Maybe String -> Maybe Int -> Maybe Bool -> Maybe Text -> Maybe [Object] -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Text -> Maybe Permissions -> Project
+ GitLab.Types: Project :: Int -> Maybe Text -> Text -> Text -> Text -> Text -> Text -> Maybe Text -> [Text] -> Text -> Text -> Text -> Maybe Text -> Maybe Text -> Int -> Int -> Text -> Namespace -> Maybe Links -> Maybe Bool -> Maybe Text -> Maybe Owner -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Int -> Maybe Project -> Maybe String -> Maybe Int -> Maybe Bool -> Maybe Text -> Maybe [Object] -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Text -> Maybe Permissions -> Maybe ProjectStats -> Project
- GitLab.Types: Stats :: Int -> Int -> Int -> Stats
+ GitLab.Types: Stats :: Int -> Int -> Int -> CommitStats
- GitLab.Types: [additions] :: Stats -> Int
+ GitLab.Types: [additions] :: CommitStats -> Int
- GitLab.Types: [deletions] :: Stats -> Int
+ GitLab.Types: [deletions] :: CommitStats -> Int
- GitLab.Types: [total] :: Stats -> Int
+ GitLab.Types: [total] :: CommitStats -> Int

Files

gitlab-haskell.cabal view
@@ -1,7 +1,7 @@ cabal-version: 2.4 name:           gitlab-haskell category:       Git-version:        0.1.0.1+version:        0.1.0.2 synopsis:       A Haskell library for the GitLab web API description:   This Haskell library queries and updates the database of a GitLab instance using the GitLab web API: <https://docs.gitlab.com/ee/api/>
src/GitLab/API/Commits.hs view
@@ -28,7 +28,7 @@   => Int -- ^ project ID   -> GitLab m [Commit] projectCommits' projectId =-  gitlab (commitsAddr projectId)+  gitlabWithAttrs (commitsAddr projectId) "&with_stats=true"   where     commitsAddr :: Int -> Text     commitsAddr projId =
src/GitLab/API/Projects.hs view
@@ -31,7 +31,7 @@ -- | gets all projects. allProjects :: (MonadIO m) => GitLab m [Project] allProjects =-  gitlab "/projects"+  gitlabWithAttrs "/projects" "&statistics=true"  -- | gets all forks of a project. Supports use of namespaces. --@@ -54,7 +54,7 @@   -> GitLab m (Maybe Project) searchProjectId projectId = do   let urlPath = T.pack ("/projects/" <> show projectId)-  gitlabOne urlPath+  gitlabWithAttrsOne urlPath  "&statistics=true"  -- | gets all projects with the given project name. --@@ -74,10 +74,15 @@ projectsWithNameAndUser ::      (MonadUnliftIO m, MonadIO m) => Text -> Text -> GitLab m (Maybe Project) projectsWithNameAndUser username projectName =-  gitlabOne+  -- gitlabOne+  -- ("/projects/" <>+  --  T.decodeUtf8+  --     (urlEncode False (T.encodeUtf8 (username <> "/" <> projectName))))+  gitlabWithAttrsOne   ("/projects/" <>    T.decodeUtf8       (urlEncode False (T.encodeUtf8 (username <> "/" <> projectName))))+  "&statistics=true"  -- | returns 'True' if a project has multiple committers, according to -- the email addresses of the commits.@@ -102,15 +107,19 @@ -- | gets all projects for a user's username. -- -- > userProjects "harry"-userProjects ::+userProjects' ::      (MonadUnliftIO m, MonadIO m) => Text -> GitLab m (Maybe [Project])-userProjects username = do+userProjects' username = do   userMaybe <- searchUser username   case userMaybe of     Nothing -> return Nothing     Just usr -> Just <$> gitlab (urlPath (user_id usr))   where     urlPath userId = "/users/" <> T.pack (show userId) <> "/projects"++userProjects ::+     (MonadUnliftIO m, MonadIO m) => User -> GitLab m (Maybe [Project])+userProjects theUser = userProjects' (user_username theUser)  -- | gets the 'GitLab.Types.Project' against which the given 'Issue' -- was created.
src/GitLab/Types.hs view
@@ -21,13 +21,14 @@   , Owner(..)   , Permissions(..)   , Project(..)+  , ProjectStats(..)   , User(..)   , Milestone(..)   , TimeStats(..)   , Issue(..)   , Pipeline(..)   , Commit(..)-  , Stats(..)+  , CommitStats(..)   , Repository(..)   , Job(..)   , Artifact(..)@@ -172,8 +173,20 @@   , printing_merge_request_link_enabled :: Maybe Bool   , merge_method:: Maybe Text   , permissions :: Maybe Permissions+  , project_stats :: Maybe ProjectStats   } deriving (Generic, Show, Eq) +data ProjectStats =+  ProjectStats+  { commit_count :: Int+  , storage_size :: Int+  , repository_size :: Int+  , wiki_size :: Maybe Int+  , lfs_objects_size :: Maybe Int+  , job_artifacts_size :: Maybe Int+  , packages_size :: Maybe Int+  } deriving (Generic, Show, Eq)+ -- | registered users. data User =   User@@ -263,12 +276,12 @@   , message :: Text   , parent_ids :: Maybe [Text]   , last_pipeline :: Maybe Pipeline-  , stats :: Maybe Stats+  , commit_stats :: Maybe CommitStats   , commit_status :: Maybe Text   } deriving (Generic, Show)  -- | commit stats.-data Stats =+data CommitStats =   Stats   { additions :: Int   , deletions :: Int@@ -496,6 +509,8 @@ bodyNoPrefix "merge_request_time_stats" = "time_stats" bodyNoPrefix "merge_request_squash" = "squash" bodyNoPrefix "merge_request_approvals_before_merge" = "approvals_before_merge"+bodyNoPrefix "project_stats" = "statistics"+bodyNoPrefix "commit_stats" = "stats"   @@ -527,7 +542,7 @@               (defaultOptions                { fieldLabelModifier = bodyNoPrefix }) -instance FromJSON Stats where+instance FromJSON CommitStats where   parseJSON = genericParseJSON               (defaultOptions                { fieldLabelModifier = bodyNoPrefix })@@ -563,6 +578,11 @@                { fieldLabelModifier = bodyNoPrefix })  instance FromJSON Project where+  parseJSON = genericParseJSON+              (defaultOptions+               { fieldLabelModifier = bodyNoPrefix })++instance FromJSON ProjectStats where   parseJSON = genericParseJSON               (defaultOptions                { fieldLabelModifier = bodyNoPrefix })
src/GitLab/WebRequests/GitLabWebCalls.hs view
@@ -64,7 +64,9 @@ parseBSOne :: FromJSON a => BSL.ByteString -> Maybe a parseBSOne bs =   case eitherDecode bs of-    Left s -> error (show s)+    Left _err -> Nothing+      -- useful when debugging+      -- error (show _err)     Right xs -> Just xs  parseBSMany :: FromJSON a => BSL.ByteString -> [a]@@ -102,7 +104,7 @@       else go (i+1) accum'  gitlabReqOne :: (MonadIO m, FromJSON a) => Text -> Text -> GitLab m (Maybe a)-gitlabReqOne urlPath attrs =+gitlabReqOne urlPath attrs = do   go   where     go = do