packages feed

pagure 0.2.0 → 0.2.1

raw patch · 4 files changed

+32/−13 lines, 4 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Fedora.Pagure: getRepos :: Text -> Object -> [Text]
+ Fedora.Pagure: pagureGroupRepos :: String -> Bool -> String -> IO [Text]

Files

CHANGELOG.md view
@@ -2,6 +2,10 @@  `pagure-hs` uses [PVP Versioning](https://pvp.haskell.org). +## 0.2.1 (2024-05-06)+- add pagureGroupRepos+- export getRepos helper+ ## 0.2.0 (2024-05-06) - queryPagureCountPaged replaces queryPagurePaged - warnings now go to stderr
README.md view
@@ -8,7 +8,7 @@ Pagure REST client library.  [Pagure](https://pagure.io/pagure) is an opensource git forge-(ie somewhat like gitlab).+(ie somewhat like Gitlab).  A primary instance is https://pagure.io, but pagure is also used to host all current Fedora packages
pagure.cabal view
@@ -1,8 +1,8 @@ cabal-version:       1.22 name:                pagure-version:             0.2.0+version:             0.2.1 synopsis:            Pagure REST client library-description:         A library for querying Pagure gitforges via REST.+description:         A library for querying a Pagure gitforge via REST homepage:            https://github.com/juhp/pagure-hs bug-reports:         https://github.com/juhp/pagure-hs/issues license:             GPL-2
src/Fedora/Pagure.hs view
@@ -1,8 +1,8 @@ {-# LANGUAGE CPP, OverloadedStrings #-}  {- |-Copyright: (c) 2020 Jens Petersen-SPDX-License-Identifier: GPL-2.0-only+Copyright: (c) 2020-2024 Jens Petersen+SPDX-License-Identifier: GPL-2.0-or-later Maintainer: Jens Petersen <petersen@redhat.com>  Pagure REST client library@@ -23,6 +23,7 @@   , pagureUserRepos   , pagureListGroups   , pagureGroupInfo+  , pagureGroupRepos   , pagureProjectGitURLs   , queryPagure   , queryPagureSingle@@ -35,6 +36,7 @@   , QueryItem   , lookupKey   , lookupKey'+  , getRepos   ) where  import Control.Monad@@ -266,8 +268,6 @@     nextPage p =       queryPagure server path (params ++ makeKey "per_page" "100" ++ makeKey paging (show p)) --- FIXME treat these as special cases/filters of userinfo- -- | list user's repos pagureUserRepos :: String -- ^ server                 -> String -- ^ user@@ -286,16 +286,31 @@   pages <- queryPagurePaged server path [] ("forks_pagination", "forkpage")   return $ concatMap (getRepos "forks") pages -getRepos :: Text -> Object -> [Text]+-- | list group's repos+pagureGroupRepos :: String -- ^ server+                 -> Bool -- ^ count+                 -> String -- ^ group+                 -> IO [Text]+pagureGroupRepos server count group = do+  let path = "group" +/+ group+      params = makeKey "projects" "1"+  pages <- queryPagureCountPaged server count path params ("pagination", "page")+  return $ concatMap (getRepos "projects") pages++-- | helper to extract fullnames of repos+getRepos :: Text   -- ^ field (eg "repos")+         -> Object -- ^ results page+         -> [Text] getRepos field obj =   map (lookupKey' "fullname") $ lookupKey' field obj +-- | Get count (with queryPagureCount) or full results (queryPagurePaged) queryPagureCountPaged :: String -- ^ server-           -> Bool   -- ^ count-           -> String -- ^ api path-           -> Query  -- ^ parameters-           -> (String,String) -- ^ pagination and paging names-           -> IO [Object]+                      -> Bool   -- ^ count+                      -> String -- ^ api path+                      -> Query  -- ^ parameters+                      -> (String,String) -- ^ pagination and paging names+                      -> IO [Object] queryPagureCountPaged server count path params (pagination,paging) =   if count     then do