Skip to content

vermiculus/ghub-plus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GHub+ https://travis-ci.org/vermiculus/ghub-plus.svg?branch=master https://melpa.org/packages/ghub+-badge.svg

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")))

Contributing

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 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!

Extending

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 apiwrap.el for a short tutorial in using these macros.