GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - haskell-github/github: The github API for Haskell

BranchesTags
Open more actions menu

Latest commit

 

History

939 Commits
939 Commits

Folders and files

NameName
Last commit message
Last commit date
.github/workflows
.github/workflows
 
 
fixtures
fixtures
 
 
samples
samples
 
 
spec
spec
 
 
src
src
 
 
.gitignore
.gitignore
 
 
.stylish-haskell.yaml
.stylish-haskell.yaml
 
 
CHANGELOG.md
CHANGELOG.md
 
 
CONTRIBUTING.md
CONTRIBUTING.md
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
Setup.hs
Setup.hs
 
 
cabal.haskell-ci
cabal.haskell-ci
 
 
cabal.project
cabal.project
 
 
fix-whitespace.yaml
fix-whitespace.yaml
 
 
github.cabal
github.cabal
 
 

Repository files navigation

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

About

The github API for Haskell

hackage.haskell.org/package/github

Topics

github-apihaskellrest-api

Resources

Readme
BSD-3-Clause license

Contributing

Contributing
Activity
Custom properties

Stars

452 stars

Watchers

11 watching

Forks

196 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.