cabal-version: 2.4 name: gitlab-haskell category: Git version: 0.2.3 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: . It also features an API for writing Gitlab file hook applications . Run all GitLab actions with `runGitLab`: . > runGitLab :: (MonadUnliftIO m, MonadIO m) > => GitLabServerConfig -- ^ the GitLab server details > -> GitLab m a -- ^ the GitLab action > -> m a . For example: . > myProjects <- runGitLab > (defaultGitLabServer > { url = "https://gitlab.example.com" > , token="my_token"} ) > (searchUser "joe" >>= userProjects . fromJust) . Which uses the functions: . > searchUser :: Text -> GitLab m (Maybe User) > userProjects :: User -> GitLab m (Maybe [Project]) . This library can also be used to develop rule based GitLab file hooks that react in real time to GitLab events with: . > receive :: [Rule] -> GitLab () . > class (FromJSON a) => SystemHook a where > match :: String -> (a -> GitLab ()) -> Rule > matchIf :: String -> (a -> GitLab Bool) -> (a -> GitLab ()) -> Rule . For more details about the file hooks support: . Unsurprisingly, this library is maintained on GitLab: homepage: https://gitlab.com/robstewart57/gitlab-haskell bug-reports: https://gitlab.com/robstewart57/gitlab-haskell/issues author: Rob Stewart maintainer: robstewart57@gmail.com copyright: 2020 Rob Stewart, Heriot-Watt University license: BSD-3-Clause license-file: LICENSE data-files: data/system-hooks/*.json build-type: Simple extra-source-files: README.md source-repository head type: git location: https://gitlab.com/robstewart57/gitlab-haskell library exposed-modules: GitLab , GitLab.Types , GitLab.API.Groups , GitLab.API.Members , GitLab.API.Commits , GitLab.API.Projects , GitLab.API.Users , GitLab.API.Issues , GitLab.API.Pipelines , GitLab.API.Branches , GitLab.API.Jobs , GitLab.API.Repositories , GitLab.API.MergeRequests , GitLab.API.RepositoryFiles , GitLab.API.Todos , GitLab.API.Version , GitLab.SystemHooks.Types , GitLab.SystemHooks.GitLabSystemHooks , GitLab.SystemHooks.Rules other-modules: GitLab.WebRequests.GitLabWebCalls hs-source-dirs: src build-depends: base >=4.7 && <5 , http-conduit , connection , aeson >= 1.4.4.0 , bytestring , text , http-types , transformers , unliftio , unliftio-core , time default-language: Haskell2010 ghc-options: -Wall -- the following two for the stan static analysis tool -- -fwrite-ide-info -- -hiedir=.hie test-suite test-gitlab-haskell type: exitcode-stdio-1.0 main-is: Tests.hs other-modules: SystemHookTests hs-source-dirs: tests/ default-language: Haskell2010 build-depends: base >= 4.8.0.0 && < 6 , tasty , tasty-hunit , gitlab-haskell , bytestring , aeson