ghub-plus icon indicating copy to clipboard operation
ghub-plus copied to clipboard

Wrappers for GitHub API resources built on ghub

#+Title: GHub+ [[https://travis-ci.org/vermiculus/ghub-plus][https://travis-ci.org/vermiculus/ghub-plus.svg?branch=master]] [[https://melpa.org/#/ghub%2B][file:https://melpa.org/packages/ghub+-badge.svg]]

GHub+ is a thick GitHub API client built using =API-Wrap.el= on =ghub=, [[https://github.com/tarsius/ghub][the minuscule GitHub API client]].

  • Tour by Example #+BEGIN_SRC elisp ;;; 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"))) #+END_SRC

  • Contributing :PROPERTIES: :ID: 1F4644C5-72AC-49DA-A83C-443AA7F9651E :END: Contributions should be made via pull-request. When it makes sense, be sure your addition works when passing around object-alists.

  • 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 [[id:7208D9BD-1524-4701-A061-70861C5376DA][Extending]] for details. If you find your function to be particularly helpful or believe it to be a common use case, please consider [[id:1F4644C5-72AC-49DA-A83C-443AA7F9651E][contributing]] it to the library!

  • Extending :PROPERTIES: :ID: 7208D9BD-1524-4701-A061-70861C5376DA :END: 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.

** ~(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 [[https://github.com/vermiculus/apiwrap.el#using-the-generated-macros][apiwrap.el]] for a short tutorial in using these macros.

Local Variables:

org-id-link-to-org-use-id: t

End: