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
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
The hub tool made my life significantly easier and still does! lab is heavily inspired by hub and attempts to provide a similar feel.
Dependencies
git
orhub
brew install zaquestion/tap/lab
scoop bucket add zaquestion https://github.com/zaquestion/scoop-bucket.git
scoop install lab
Installs lab into /usr/local/bin/
curl -s https://raw.githubusercontent.com/zaquestion/lab/master/install.sh | bash
Head to the releases page and download your preferred release
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
See the contribution guide.
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:
lab
provides completions for bash and zsh.
lab completion bash
will generate a bash completion script. Save this script and source it in your .bashrc
:
source "/path/to/lab-completions.bash"
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)
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.