GHub+
GHub+ is a thick GitHub API client built using API-Wrap.el
on ghub
,
the minuscule GitHub API client.
Tour by Example
;;; GET /issues
(ghubp-get-issues)
;;; GET /issues?state=closed
(ghubp-get-issues :state 'closed)
(let ((repo (ghub-get "/repos/magit/magit")))
(list
;; Magit's issues
;; GET /repos/magit/magit/issues
(ghubp-get-repos-owner-repo-issues repo)
;; Magit's closed issues labeled 'easy'
;; GET /repos/magit/magit/issues?state=closed&labels=easy
(ghubp-get-repos-owner-repo-issues repo
:state 'closed :labels "easy")))
Contributions should be made via pull-request. When it makes sense, be sure your addition works when passing around object-alists. Contributing
Introduction
This package is a thick client built on ghub
, the miniscule GitHub
client. Its aim is to provide the common functionality most helpful
for application development.
Since ghub+
is built on ghub
, any and all features you find lacking in
ghub+
can be done with ghub
without needing to dig into either
package’s internals. However, ghub+
provides some macros you may find
helpful in development; see Extending for details. If you find your
function to be particularly helpful or believe it to be a common use
case, please consider contributing it to the library!
To simplify application development, tools have been developed to shorten repetitive syntax and provide useful syntax for common problems that might not otherwise have good, succinct solutions. Extending
(ghubp-unpaginate &rest BODY)
Wraps the form in a let-binding where ghub-unpaginate
is t
. Forms
executed here will continue to poll the API until all output has been
received.
(defapi{get,put,head,post,patch,delete}-ghubp ...)
These wonderful macros super-charge the standard ghub-{get,put,...}
functions into documentation-generating, resource-wrapping machines.
Refer to their documentation or see apiwrap.el for a short tutorial in
using these macros.