I'm specifically interested in pull requests, editing issues and tying them to commits, and other things I generally have to use hub on the command line for. However, I've started using magit and really like the keybindings and general interface---I'd like to stay in emacs for this part, too, rather than needing to keep an extra shell open for pull requests, issues, etc.
The packages that might add the most github functionality to magit that I could find are:
Can anyone, possibly involved with these projects, recommend how they'd compare and what might be best for integrating pull requests into a magit environment?
Eventually I will implement such things in Magit (I am the maintainer), but I first have to get a release out.
Old outdated information: Unfortunately there currently also isn't a third-party extensions that could fill this role.
magithub
has been broken for a long time now.magit-gh-pulls
(by Yann, my predecessor as Magit maintainer) also wasn't kept in sync with the changes in Magit. I tried to fix it up some time ago, but gave up when it became clear that doing so would result in a complete rewrite .gh.el
is also written by Yann and is used bymagit-gh-pulls
. I have contributed to it in the past but eventually stopped using it because (a) it usesurl.el
and that turned out to be very unreliable (b) it's over complex.So I am afraid there currently isn't a package that does what you want. If you want to write it yourself, I recommend you use
request.el
and then only implement those parts of the Github api that you actually need, to avoid over-engineering it.Edit: As of October 2015
magit-gh-pulls
is maintained again, but no longer an official extension. Personally I don't use it, as I think it should either to more or less. I currently use "less" in the form ofmagit-branch-pull-request
from themagit-rockstar
library. Even though I maintain that library, I do not consider it an official extension - it's provided as-is. That function is very basic, you give it an issue number and it creates a branch for you, that's it.Edit in September 2016: I have written
ghub.el
andglab.el
as replacements forgh.el
. They are mostly intended for my own personal use and provide very little, basically they give you functions such asghub-get (resource &optional params data noerror)
, you then have to look at the respective api documentation to figure out whatresource
,params
, anddata
you have to use. Also the error handling isn't great and this currently usesurl.el
. I intend to improve both eventually by usinglibcurl
some time after an Emacs with ffi support has been released.Edit in January 2020: More than a year ago I have released
forge
.