It is no secret that here at Stack Builders we are fans of functional programming. We love Haskell and are always happy to write more Haskell. Recently, one of our internal projects required the use of GitHub's API. Naturally we took to Hackage to see what was already there. The packages we found did not quite make the cut for the code quality and reliability we are used to. The deal breaker was a lack of automated tests in existing libraries, which didn't give us confidence that we could adapt them quickly enough to our needs. So we took to write our own bindings and soon the Octohat project was born.
The Octohat bindings are being developed as-needed, so Octohat covers just a small part of GitHub's API, namely the organizations and teams endpoints. Nonetheless, we have tried to construct Octohat to make it easy to add support for more endpoints (along with integration tests for those endpoints) while keeping a high level of abstraction. There are a few areas that we would like to improve on aside from supporting more endpoints: support for running computations in the GitHub
monad without authentication and support for rate limiting are some of them.
We have at least two projects that depend on Octohat at Stack Builders, so we plan to support it for the foreseeable future. We look forward to feedback and contributions from the community. You can find the code on GitHub and the released version of the library on Hackage.