{-# LANGUAGE OverloadedStrings #-}
module GitLab.API.Repositories where
import Control.Monad.IO.Unlift
import qualified Data.ByteString.Lazy as BSL
import qualified Data.Text as T
import GitLab.Types
import GitLab.WebRequests.GitLabWebCalls
repositories :: (MonadIO m)
=> Project
-> GitLab m [Repository]
repositories project = repositories' (project_id project)
repositories' :: (MonadIO m)
=> Int
-> GitLab m [Repository]
repositories' projectId =
gitlab addr
where
addr =
"/projects/"
<> T.pack (show projectId)
<> "/repository"
<> "/tree"
getFileArchive :: (MonadIO m)
=> Project
-> ArchiveFormat
-> FilePath
-> GitLab m ()
getFileArchive project = getFileArchive' (project_id project)
getFileArchive' :: (MonadIO m)
=> Int
-> ArchiveFormat
-> FilePath
-> GitLab m ()
getFileArchive' projectId format path = do
archiveData <- gitlabReqByteString addr
liftIO $ BSL.writeFile path archiveData
where
addr =
"/projects/"
<> T.pack (show projectId)
<> "/repository"
<> "/archive"
<> T.pack (show format)