gitlab-haskell: A Haskell library for the GitLab web API

[ bsd3, git, library ] [ Propose Tags ]

This Haskell library queries and updates the database of a GitLab instance using the GitLab web API: https://docs.gitlab.com/ee/api/

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:

myTodos <- runGitLab
     (defaultGitLabServer
         { url = "https://gitlab.example.com"
         , token="my_token"} )
     todos

Which uses the todos function:

todos :: MonadIO m => GitLab m [Todo]

Unsurprisingly, this library is maintained on GitLab: https://gitlab.com/robstewart57/gitlab-haskell


[Skip to Readme]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1.0.0, 0.1.0.1, 0.1.0.2, 0.1.1, 0.1.2, 0.1.3, 0.1.4, 0.1.5, 0.1.6, 0.1.7, 0.1.8, 0.2, 0.2.1, 0.2.2, 0.2.3, 0.2.4, 0.2.5, 0.3.0, 0.3.0.1, 0.3.0.2, 0.3.1, 0.3.1.1, 0.3.2.0, 1.0.0.0, 1.0.0.1, 1.0.0.3, 1.0.0.4, 1.0.0.5
Dependencies aeson (>=1.4.4.0), base (>=4.7 && <5), bytestring, connection, http-conduit, http-types, text, time, transformers, unliftio, unliftio-core [details]
License BSD-3-Clause
Copyright 2019 Rob Stewart, Heriot-Watt University
Author Rob Stewart
Maintainer robstewart57@gmail.com
Category Git
Home page https://gitlab.com/robstewart57/gitlab-haskell
Bug tracker https://gitlab.com/robstewart57/gitlab-haskell/issues
Source repo head: git clone https://gitlab.com/robstewart57/gitlab-haskell
Uploaded by RobStewart at 2019-12-14T16:44:56Z
Distributions Stackage:1.0.0.5
Downloads 7073 total (86 in the last 30 days)
Rating 2.25 (votes: 2) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2019-12-14 [all 1 reports]

Readme for gitlab-haskell-0.1.5

[back to package description]

A Haskell library for the GitLab web API

This library interacts with a GitLab server's API. It supports queries about and updates to:

  • Branches
  • Commits
  • Groups
  • Issues
  • Jobs
  • Members
  • Merge requests
  • Pipelines
  • Projects
  • Repositories
  • Repository files
  • Users

The library parses JSON results into Haskell data types in the GitLab.Types module.

Example

Run all GitLab actions with runGitLab:

runGitLab ::
  (MonadUnliftIO m, MonadIO m)
   => GitLabServerConfig
   -> GitLab m a
   -> m a

For example:

myTodos <- runGitLab
             (defaultGitLabServer
               { url = "https://gitlab.example.com"
               , token="my_token"} )
             todos

Which uses the todos function:

todos :: MonadIO m => GitLab m [Todo] 

This returns all GitLab TODO items, as Haskell values of type Todo for the user identified with the access tokenmy_token.

The gitlab-tools command line tool for bulk GitLab transactions uses this library link.