= gitlab
git +Lab wraps Git or Hub, making it simple to clone, fork, and interact with repositories on GitLab, including seamless workflows for creating merge requests, issues and snippets.
$ lab clone gitlab-com/infrastructure
# expands to:
$ git clone git@gitlab.com:gitlab-com/infrastructure
= hublab??
hub +lab will look for hub and uses that as your git binary when available so you don't have to give up hub to use lab
$ lab version
git version 2.11.0
hub version 2.3.0-pre9
lab version 0.16.0
Inspiration
The hub tool made my life significantly easier and still does! lab is heavily inspired by hub and attempts to provide a similar feel.
Installation
Dependencies
git
orhub
Homebrew
brew install zaquestion/tap/lab
Scoop
scoop bucket add zaquestion https://github.com/zaquestion/scoop-bucket.git
scoop install lab
Bash
Installs lab into /usr/local/bin/
curl -s https://raw.githubusercontent.com/zaquestion/lab/master/install.sh | bash
PreBuilt Binaries
Head to the releases page and download your preferred release
Source
Required
git clone git@github.com:zaquestion/lab
cd lab
go install -ldflags "-X \"main.version=$(git rev-parse --short=10 HEAD)\"" .
or
make install
Tests
See the contribution guide.
Configuration
lab
needs your GitLab information in order to interact with to your GitLab
instance. There are several ways to provide this information to lab
:
- environment variables:
LAB_CORE_HOST
,LAB_CORE_USER
,LAB_CORE_TOKEN
; - environment variables:
CI_PROJECT_URL
,CI_REGISTRY_USER
,CI_JOB_TOKEN
;- Note: these are meant for when
lab
is running within a GitLab CI pipeline
- Note: these are meant for when
- directory-specific configuration file in HashiCorp configuration language (HCL):
./lab.hcl
; - user-specific configuration file in HCL:
~/.config/lab.hcl
.
These are checked in order. If no suitable config values are found, lab
will
prompt for your GitLab information and save it into ~/.config/lab.hcl
.
For example:
$ lab
Enter default GitLab host (default: https://gitlab.com):
Enter default GitLab user: zaq
Enter default GitLab token:
Completions
lab
provides completions for bash and zsh.
Bash
lab completion bash
will generate a bash completion script. Save this script and source it in your .bashrc
:
source "/path/to/lab-completions.bash"
Zsh
lab completion zsh
will generate a zsh completion script. zsh completions are denoted with the syntax _command-name
, so save the output of lab completion
to a file name _lab
. Place the file in your $FPATH
, or create an new directory and add it to your $FPATH
.
fpath=(/path/to/script_directory $fpath)
Aliasing
Like hub, lab feels best when aliased as git
. In your .bashrc
or .bash_profile
alias git=lab
To the extent possible under law,
Zaq? Wiedmann
has waived all copyright and related or neighboring rights to
Lab.
This work is published from:
United States.