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 st
You can get simple "manual" Github support by setting magit-git-executable
to "hub"
. Then you can use all hub
commands and features through magit-git-command
(bound to :
in Magit buffers). This at least allows you to interact with Github through Emacs/Magit.
Although note that as of this writing, this will not work because the release version of hub
does not recognize the --literal-pathspecs
option , which Magit uses (see here). So until the next release, you need to install hub from the latest source: https://github.com/github/hub#source
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 by magit-gh-pulls
. I have contributed to it in the past but eventually stopped using it because (a) it uses url.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 of magit-branch-pull-request
from the magit-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 and glab.el as replacements for gh.el
. They are mostly intended for my own personal use and provide very little, basically they give you functions such as ghub-get (resource &optional params data noerror)
, you then have to look at the respective api documentation to figure out what resource
, params
, and data
you have to use. Also the error handling isn't great and this currently uses url.el
. I intend to improve both eventually by using libcurl
some time after an Emacs with ffi support has been released.
Edit in January 2020: More than a year ago I have released forge.
Forge allows you to work with Git forges—such as Github and Gitlab—from the comfort of Magit and the rest of Emacs.