GitHunt
HA

The github API for Haskell

GitHub

Hackage version
github on Stackage Nightly
Stackage LTS version
Haskell-CI

The GitHub API v3 for Haskell.

Some functions are missing; these are functions where the GitHub API did
not work as expected. The full GitHub API is in beta and constantly
improving.

Installation

In your project's cabal file:

Build-depends:       github

Or from the command line:

cabal v1-install github

Example Usage

See the samples in the
samples/ directory.

Note: some samples might be outdated.

Documentation

For details see the reference documentation on Hackage.

Each module lines up with the hierarchy of
documentation from the GitHub API.

Request functions (ending with R) construct a data type which can be executed
in IO by executeRequest functions. They are all listed in the root GitHub
module.

IO functions produce an IO (Either Error a), where a is the actual thing
you want. You must call the function using IO goodness, then dispatch on the
possible error message. Here's an example from the samples:

Many function have samples under
samples/ directory.

{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-}

import Prelude.Compat

import Data.Text         (Text, pack)
import Data.Text.IO as T (putStrLn)
import Data.Monoid       ((<>))

import GitHub (github')
import qualified GitHub

main :: IO ()
main = do
    possibleUsers <- github' GitHub.usersFollowingR "phadej"
    T.putStrLn $ either (("Error: " <>) . pack . show)
                        (foldMap ((<> "\n") . formatUser))
                        possibleUsers

formatUser :: GitHub.SimpleUser -> Text
formatUser = GitHub.untagName . GitHub.simpleUserLogin

Contributions

Please see
CONTRIBUTING.md
for details on how you can help.

Copyright

Copyright 2011-2012 Mike Burns.
Copyright 2013-2015 John Wiegley.
Copyright 2016-2019 Oleg Grenrus.

Available under the BSD 3-clause license.

Alternative

Library github-rest
also provides an interface to the GitHub API.
It compares itself to github here:
https://github.com/LeapYear/github-rest#comparison-to-other-libraries

Languages

Haskell100.0%

Latest Release

v0.29June 24, 2023
BSD 3-Clause "New" or "Revised" License
Created October 30, 2011
Updated March 12, 2026
haskell-github/github | GitHunt