CL-Git is an interface to the C library libgit2. The API is an almost complete exposure of the underlying library.

License LGPL 3

This is the HTML documentation, but there is also, pdf and info

The source is available on SourceHut.

GIT> (resolve
      (get-object 'reference "HEAD"
                  (open-repository
                   (merge-pathnames #p"projects/lisp/cl-git"
                                    (user-homedir-pathname)))))
#<COMMIT 276EE31DD4F35E49AEB7C7FCFB8094D557A25AD1 {100817E383}>
(#<REFERENCE refs/heads/master {100817C403}> #<REFERENCE HEAD {100817C0C3}>)

GIT> (tree-directory (commit-tree *))
(#<TREE-BLOB .gitignore (weak) {100A8A1E73}>
 #<TREE-BLOB AUTHORS (weak) {100A8A3E33}>
 #<TREE-BLOB CHANGELOG (weak) {100A8A5483}>
 ...)

Documentation

Indices and tables