The gitlib package

gitlib is a high-level, lazy and conduit-aware type wrapper around the
libgit2 C library (http://libgit2.github.com). The aim is both
type-safety and convenience of use for Haskell users, combined with high
performance and minimal memory footprint by taking advantage of Haskell's
laziness and the conduit library's deterministic resource cleanup.

For further information, as well as typical use cases, see
Data.Git.Tutorial.