A Gitlab client for Emacs
Emacs Lisp Makefile
Latest commit 9b14a97 Jan 20, 2017 @nlamirault committed on GitHub Merge pull request #48 from vindarel/labels
Labels: list, list of names
Failed to load latest commit information.
contrib addons for issues to org file Jul 10, 2015
test Add log May 19, 2016
var Add screenshots Apr 19, 2015
.dir-locals.el Init project Nov 4, 2014
.gitignore update build Nov 5, 2014
.projectile Init project Nov 4, 2014
.travis.yml FIX build Travis May 29, 2015
CONTRIBUTING.md update branch Oct 12, 2015
Cask FIX Continuous integration May 19, 2016
ChangeLog.md update changelog May 19, 2016
LICENSE Init project Nov 4, 2014
Makefile FIX build Travis May 29, 2015
README.md List project labels Jan 20, 2017
VERSION Bumped version to 0.4.0 May 20, 2015
circle.yml FIX Continuous integration May 19, 2016
gitlab-api.el Refactoring utils May 19, 2016
gitlab-groups.el Refactoring tools May 19, 2016
gitlab-http.el Refactoring tools May 19, 2016
gitlab-issues.el Give query paramaters as params to list-project-issues function Sep 8, 2016
gitlab-milestones.el Refactoring tools May 19, 2016
gitlab-mode.el Allow per-project issues buffer. Oct 13, 2016
gitlab-notes.el Refactoring tools May 19, 2016
gitlab-projects.el Get list of labels names Jan 20, 2017
gitlab-session.el Refactoring tools May 19, 2016
gitlab-ui.el Refactoring utils May 19, 2016
gitlab-users.el Refactoring tools May 19, 2016
gitlab-utils.el Refactoring tools May 19, 2016
gitlab.el Refactoring tools May 19, 2016
helm-gitlab.el Refactoring tools May 19, 2016
ivy-gitlab.el FIX #33: Ivy support May 19, 2016



License GPL 3 Coverage Status

Master :

  • MELPA Stable
  • Circle CI


  • Melpa Status
  • Circle CI

Package gitlab provides a REST client to the Gitlab API.


Installation via package.el

package.el is the built-in package manager in Emacs.

emacs-gitlab is available on the two major community maintained repositories - MELPA STABLE, MELPA.

You can install gitlab with the following commnad:

M-x package-install [RET] gitlab [RET]

or by adding this bit of Emacs Lisp code to your Emacs initialization file (.emacs or init.el):

(unless (package-installed-p 'gitlab)
  (package-install 'gitlab))

If the installation doesn't work try refreshing the package list:

M-x package-refresh-contents [RET]

Keep in mind that MELPA packages are built automatically from the master branch, meaning bugs might creep in there from time to time. Never-the-less, installing from MELPA is the recommended way of obtaining emacs-gitlab, as the master branch is normally quite stable and "stable" (tagged) builds are released somewhat infrequently.

With the most recent builds of Emacs, you can pin emacs-gitlab to always use MELPA Stable by adding this to your Emacs initialization:

(add-to-list 'package-pinned-packages '(gitlab . "melpa-stable") t)

Via el-get

el-get is another popular package manager for Emacs. If you're an el-get user just do M-x el-get-install [RET] gitlab [RET].


You can install emacs-gitlab manually by placing it on your load-path and require ing it. Many people favour the folder ~/.emacs.d/vendor.

(add-to-list 'load-path "~/.emacs.d/vendor/")
(require 'gitlab)


  • Setup your Gitlab configurations :

    $ (setq gitlab-host "https://gitlab.com"
            gitlab-username "foo"
            gitlab-password "bar")
  • Open a session :

    $ M-x gitlab-login
  • Show user's projects with helm interface:

    $ M-x helm-gitlab-projects


  • Show user's issues with helm interface:

    $ M-x helm-gitlab-issues

Ask the api: (where project-id can be an int or a string of the form "username/projectname".

  • issues:


see gitlab-list-project-issues (project-id &optional page per-page params), where params can be '((state . \"opened\")) to list the open issues

  • labels: gitlab-list-project-labels



gitlab use Cask for dependencies management. Install it and retrieve dependencies :

$ curl -fsSkL https://raw.github.com/cask/cask/master/go | python
$ export PATH="$HOME/.cask/bin:$PATH"
$ cask


  • Setup your Gitlab informations :

    $ cat $HOME/.emacs-gitlab.rc
    export GITLAB_HOST="https://gitlab.com"
    export GITLAB_USERNAME="yourusername"
    export GITLAB_PASSWORD="yourpassword"
    export GITLAB_PROJECT_ID=111222
    export GITLAB_PROJECT_NAME="myproject"
    export GITLAB_PROJECT_DESCRIPTION="a project description"
    export GITLAB_ISSUE_ID=145645
    export GITLAB_ISSUE_TITLE="the issue title"
  • Launch unit tests :

    $ . $HOME/.emacs-gitlab.rc
    $ make clean test

Support / Contribute

See here


A changelog is available here.




Nicolas Lamirault nicolas.lamirault@gmail.com