spacemacs/layers/+source-control/github
Maximilian Wolff 9c564b864f
[github] Make docs use pip instead of pip3
I have also added a note for users with distributions
still being on python2.
2020-11-14 09:28:46 +00:00
..
img
funcs.el update copyright to 2020 2020-09-23 21:25:01 +02:00
layers.el update copyright to 2020 2020-09-23 21:25:01 +02:00
packages.el Add grip-mode to github layer 2020-11-14 09:47:36 +01:00
README.org [github] Make docs use pip instead of pip3 2020-11-14 09:28:46 +00:00

GitHub layer

/TakeV/spacemacs/media/commit/9c564b864f001d9452576dcb41e3f0f30011c0fc/layers/+source-control/github/img/github.png

Description

This layers adds support for GitHub.

Features:

  • forge: integration with various forges, such as GitHub and GitLab.
  • gist.el: full-featured mode to browse and post GitHub gists.
  • git-link: quickly generate URLs for commits or files.
  • github-clone allows for easy cloning and forking of repositories.
  • grip-mode Github-flavored Markdown/Org preview using Grip.

Install

Layer

To use this configuration layer, add it to your ~/.spacemacs. You will need to add github to the existing dotspacemacs-configuration-layers list in this file.

Git configuration

You will need to generate a personal access token on GitHub. This token should have the gist and repo permissions. Once this token is created, it needs to be added to your ~/.gitconfig

You will also need to generate an SSH key and add it to your GitHub account.

  git config --global github.oauth-token <token>

Forge

The forge package uses emacsql which requires a C compiler to be available on MS Windows, see issue https://github.com/skeeto/emacsql/issues/46.

For this reason the forge package is not installed on MS Windows by default. If you still want to install it (which means you do have a C compiler available in your PATH) then use the dotspacemacs-additional-packages variable in your dotfile:

  (dotspacemacs-additional-packages '((forge :toggle t)))

grip-mode

Grip-mode requires python and the python package grip to be installed on the system. Grip can usually be installed with the command pip install grip, on debian based systems make sure you use the python 3 version of pip, it is normally called pip3.

Key bindings

Forge

In a magit-status buffer (SPC g s):

Key binding Description
b Y create branch from pull-request
b y create and check out branch from pull-request
F f fetch issues and pull-requests
F n fetch notifications
F p create pull-request
F i create issue
F F list notifications
F P list pull-requests
F I list issues
p y pull pull-requests and issues for the current repository
p Y pull all notifications for the current repository's forge

In a forge-topic buffer:

Key binding Description
SPC m c create new post
SPC m e edit post

In a forge-post buffer (assuming the major mode leader key is ,)

Key binding Description
SPC m c or SPC m , submit post
SPC m k or SPC m k cancel post

gist.el

Key binding Description
SPC g g b create a public gist with the buffer content
SPC g g B create a private gist with the buffer content
SPC g g l open the gist list buffer
SPC g g r create a public gist with the region content
SPC g g R create a private gist with the region content

In the gist list buffer:

Key binding Description
/ evil search
+ add buffer to gist
- remove file for gist
b or o open current gist in browser
f fetch current gist
g refresh the list
h go left
j go down
k go up
K kill current gist
l go right
n next search occurrence
N next previous occurrence
v visual state
V visual-line state
y print URL and copy it

Clone repositories

Key binding Description
SPC g h c / search for a repository to clone it
SPC g h c c clone and optionally fork repository
SPC g h c r add a remote that is an existing fork of selected remote
SPC g h c f fork remote in current user namespace
SPC g h c u add upstream as remote

Grip-mode

Key binding Description
SPC g p toggle github flavored mb/org buffer preview in web-browser