Lab wraps Git or Hub, making it simple to clone, fork, and interact with repositories on GitLab

Overview

git + = gitlab Build Status Go Report Card codecov Join the chat at https://gitter.im/labcli CC0 License Donate

Lab wraps Git, 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 [email protected]:gitlab-com/infrastructure

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

Homebrew

brew install lab

NixOS

nix-env -f '
   
    ' -iA gitAndTools.lab

   

Scoop

scoop bucket add zaquestion https://github.com/zaquestion/scoop-bucket.git
scoop install lab

Alpine

apk add lab

Bash

Installs lab into /usr/local/bin/

curl -s https://raw.githubusercontent.com/zaquestion/lab/master/install.sh | sudo bash

NOTE: Please take care when executing scripts in this fashion. Make sure you trust the developer providing the script and consider peeking at the install script itself (ours is pretty simple ;)

PreBuilt Binaries

Head to the releases page and download your preferred release

Source

Required

git clone [email protected]: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:

  1. environment variables: CI_PROJECT_URL, CI_JOB_TOKEN, GITLAB_USER_LOGIN;
    • Note: these are meant for when lab is running within a GitLab CI pipeline
    • If all of these variables are set, the config files will not be updated.
    • If all of these variables are set, these take precedence over all other values.
  2. environment variables: LAB_CORE_HOST, LAB_CORE_TOKEN;
    • If these variables are set, the config files will not be updated.
    • For example to use gitlab.com do: export LAB_CORE_HOST="https://gitlab.com"
  3. local configuration file in Tom's Obvious, Minimal Language (TOML): ./lab.toml;
    • No other config files will be used as overrides if a local configuration file is specified
  4. user-specific configuration file in TOML: ~/.config/lab/lab.toml.
  5. work-tree configuration file in TOML: .git/lab/lab.toml. The values in this file will override any values set in the user-specific configuration file.

If no suitable config values are found, lab will prompt for your GitLab information and save it into ~/.config/lab/lab.toml. For example:

$ lab
Enter default GitLab host (default: https://gitlab.com):
Enter default GitLab token:

Command-specific flags can be set in the config files.

[mr_show]
  comments = true # sets --comments on 'mr show' commands

Completions

lab provides completions for Bash, Elvish, Fish, Oil, Powershell, Xonsh and Zsh. Scripts can be directly sourced (though using pre-generated versions is recommended to avoid shell startup delay):

# bash (~/.bashrc)
source <(lab completion)

# elvish (~/.elvish/rc.elv)
eval (lab completion|slurp)

# fish (~/.config/fish/config.fish)
lab completion | source

# oil
source <(lab completion)

# powershell (~/.config/powershell/Microsoft.PowerShell_profile.ps1)
Set-PSReadlineKeyHandler -Key Tab -Function MenuComplete
lab completion | Out-String | Invoke-Expression

# xonsh (~/.config/xonsh/rc.xsh)
COMPLETIONS_CONFIRM=True
exec($(lab completion xonsh))

# zsh (~/.zshrc)
source <(lab completion zsh)

What about GLab?

Both glab and lab are open-source tools with the same goal of bringing GitLab to your command line and simplifying the developer workflow. In many ways lab is to hub, what glab is to gh.

lab aims to feel familiar to a git user and leverages git to power many of it's commands. glab will feel more familiar to gh users and in turn is more interactive and likely more beginner friendly for that reason.

$ lab
Enter GitLab host (default: https://gitlab.com):

CC0
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.

Issues
  • Accept self signed certificates

    Accept self signed certificates

    Hi, is it possible to configure lab to accept self signed certificates?

    This is the error: mrList.go:38: Get https:/api/v4/projects/<project>: x509: certificate signed by unknown authority

    opened by fauust 37
  • cmd: Pipe output through pager in terminals

    cmd: Pipe output through pager in terminals

    Replicate git's behavior of piping output through a pager when it doesn't fit a single screen. This is not only more convenient than piping into less on the command line, but preserves terminal features like colored output as well.

    I do have a local follow-up to add a global --no-pager option like git as well, if that's wanted (not sure that's the case, so leaving it out right now)

    opened by fmuellner 27
  • lab ci wait

    lab ci wait

    I don't know wether or not this is possible, but it would be nice to have a ci command that simpy waits for the current pipeline to finish and then exits with status code 0 for success, and 1 for failure. This would allow scripting of several pipelines that need to be run in a specific order. I know you can trigger builds inside a pipeline, but we need it the other way - like a listener.

    This would allow something like this:

    cd /whatever/docker-base
    lab ci create
    lab ci wait
    cd /whatever/docker-project-that-uses-docker-base
    # or maybe
    lab ci create --wait
    cd /whatever/another-docker-project-that-uses-docker-base
    # or maybe
    lab ci create
    lab ci trace --exit-on-finish
    ...
    
    opened by temp 19
  • nil pointer since 0.18.0

    nil pointer since 0.18.0

    After updating from 0.17.2 to 0.18.0 creating a merge request triggers a nil pointer.

    panic: runtime error: invalid memory address or nil pointer dereference
    [signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0xe85f3a]
    goroutine 1 [running]:
    github.com/spf13/viper.(*Viper).find(0x0, 0xc000471a60, 0xd, 0x1, 0xc000471a60, 0xd)
    	/home/travis/gopath/pkg/mod/github.com/spf13/[email protected]/viper.go:1027 +0x3a
    github.com/spf13/viper.(*Viper).Get(0x0, 0xc000471a60, 0xd, 0x2, 0x2)
    	/home/travis/gopath/pkg/mod/github.com/spf13/[email protected]/viper.go:728 +0x85
    github.com/spf13/viper.(*Viper).GetStringSlice(0x0, 0xc000471a60, 0xd, 0x10cc4ed, 0x5, 0xc000471a60)
    	/home/travis/gopath/pkg/mod/github.com/spf13/[email protected]/viper.go:865 +0x3f
    github.com/zaquestion/lab/cmd.flagConfig.func1(0xc0004c7b80)
    	/home/travis/gopath/src/github.com/zaquestion/lab/cmd/util.go:45 +0x48b
    github.com/spf13/pflag.(*FlagSet).VisitAll(0xc000660700, 0x11c37a0)
    	/home/travis/gopath/pkg/mod/github.com/spf13/[email protected]/flag.go:290 +0x94
    github.com/zaquestion/lab/cmd.flagConfig(0xc000660700)
    	/home/travis/gopath/src/github.com/zaquestion/lab/cmd/util.go:31 +0x37
    github.com/zaquestion/lab/cmd.LabPersistentPreRun(0x18c0280, 0xc0006756a0, 0x0, 0x2)
    	/home/travis/gopath/src/github.com/zaquestion/lab/cmd/util.go:341 +0x39
    github.com/spf13/cobra.(*Command).execute(0x18c0280, 0xc000675680, 0x2, 0x2, 0x18c0280, 0xc000675680)
    	/home/travis/gopath/pkg/mod/github.com/spf13/[email protected]/command.go:834 +0x231
    github.com/spf13/cobra.(*Command).ExecuteC(0x18bb120, 0xc0000320a0, 0x5, 0x5)
    	/home/travis/gopath/pkg/mod/github.com/spf13/[email protected]/command.go:958 +0x375
    github.com/spf13/cobra.(*Command).Execute(...)
    	/home/travis/gopath/pkg/mod/github.com/spf13/[email protected]/command.go:895
    github.com/zaquestion/lab/cmd.Execute()
    	/home/travis/gopath/src/github.com/zaquestion/lab/cmd/root.go:222 +0x196
    main.main()
    	/home/travis/gopath/src/github.com/zaquestion/lab/main.go:28 +0x93
    
    help wanted 
    opened by damoon 18
  • updated shell completion

    updated shell completion

    Had another go at what i originally extracted from the cobra zsh PR: https://github.com/rsteube/cobra-zsh-gen This brings lab back to cobra (no fork) and makes the completion less cryptic as it's all go code.

    • adds dependency to https://github.com/rsteube/cobra-zsh-gen
    • adds dependency to https://github.com/src-d/go-git (seemed resonable to me as this makes git handling a bit easier than invoking the shell, but can change that if it's a bad idea)

    Needs some good testing (looks ok so far).

    fixes #333 fixes #367

    opened by rsteube 18
  • lab mr complains that gitlab project not found

    lab mr complains that gitlab project not found

    I am kind of lost.

    I cloned a self-hosted repo on gitlab and I am trying to create a merge request or list all merge requests, but I am getting:

    [[email protected] /tmp/apps (master)]$ lab mr list
    2018/03/06 22:40:58 mrList.go:38: gitlab project not found
    

    Is there something that i am missing?

    Thanks

    apache 
    opened by dpetrov 16
  • Add shell completion scripts

    Add shell completion scripts

    Cobra has some docs on generating autocompletion scripts for bash: https://github.com/spf13/cobra/blob/master/bash_completions.md

    enhancement help wanted 
    opened by zaquestion 15
  • Add merge-request option for

    Add merge-request option for "Merge when pipeline succeeds"

    It would be helpful if lab would provide an option to enable the "Merge when pipeline succeeds" Option, especially in the automation context, where we use lab.

    A push option named merge_request.merge_when_pipeline_succeeds does exist for that matters.

    opened by galan 15
  • Open the current merge request with lab mr b

    Open the current merge request with lab mr b

    This is a work in progress.

    The current code fails with the following error:

    ../../go/src/github.com/zaquestion/lab/cmd/mr_browse.go:46:17: unknown field 'SourceBranch' in struct literal of type "github.com/zaquestion/lab/vendor/github.com/xanzy/go-gitlab".ListProjectMergeRequestsOptions
    

    There is indeed a ListProjectMergeRequestsOptions.SourceBranch here: https://github.com/xanzy/go-gitlab/blob/master/merge_requests.go#L262

    Unfortunately, I have a different file in vi vendor/github.com/xanzy/go-gitlab/merge_requests.go...

    opened by MartinDelille 15
  • Review with quick actions

    Review with quick actions

    This is the second part of the change to unify the calls made when approving/commenting on an MR.

    The new code removes the usage of the merge_request/approve API and instead uses the /approve and /unapprove notes API quick actions. Fixes: #708

    opened by zampierilucas 14
  • `mr checkout`: specify the tracking remote

    `mr checkout`: specify the tracking remote

    I don't use the "1 remote/author" workflow at work; instead we all push branches to a single, shared origin where only some of us have permission to merge to main. As written, mr checkout -t <id> will create/update a remote named after the MR author. In my case, this ends up w/ 2 remotes both pointing to the same URL, which doesn't feel helpful to me. I have hacked around this locally, but before I go making it pretty I'd like to know if anyone else wants this. 😛

    My existing hack is just an add'l flag --track-default-remote that tells mr checkout use targetRemote instead of creating a new remote based on mr.Author.Username.

    Any interest?

    BTW I looked into some way to support something like this:

    • --tracking-remote not specified on command line: use mr.Author.Username (current behavior)
    • --tracking-remote specified but w/ no value: use default remote
    • --tracking-remote=<remoteName>: use remote named remoteName

    I got stuck on this b/c I couldn't (quickly) figure out how to coax pflags into working w/ some sort of flag that has different values if it's not specified, vs if it's passed but w/o a value vs w/ a value. (Or even if such a thing is possible.) I eventually just settled for the default remote being fine for me. 😄

    opened by claytonrcarter 2
  • cmd/note-common.go: Fix context comments on diffs

    cmd/note-common.go: Fix context comments on diffs

    @krobelus noticed that it wasnt possible to comment on the context portion of a diff. For example, when commenting on line 6 of

    | newfile: Makefile oldfile: Makefile | @@ -5,6 +5,8 @@ SUBLEVEL = 0 | 5 5 EXTRAVERSION = | 6 6 NAME = Merciless Moray | 7 7 | 8 +# space | 9 + | 8 10 # | 9 11 # DRM backport version | 10 12 #

    it was not possible to comment on line 6 and lab would output an error. This is fixed by reworking the code to detect context diffs, however, this only appears to work on code shown before the difflines. There are several open GitLab API issues that report errors when commenting on Merge Request commits and it is likely that one of these is causing the error.

    ex) https://gitlab.com/gitlab-org/gitlab-foss/-/issues/28599

    Rework the code to allow for commenting on the context of diffs.

    Signed-off-by: Prarit Bhargava [email protected]

    opened by prarit 3
  • discussion on commits failing due to invalid line code

    discussion on commits failing due to invalid line code

    When I comment in a commit with lab mr discussion --commit <sha> but in a line surrounding the actual code touched by the change I receive the following error:

    2021/12/06 17:09:19 ERROR: note_common.go:108: POST https://gitlab.com/api/v4/projects/20363472/merge_requests/680/discussions: 400 {message: 400 Bad request - Note {:line_code=>["can't be blank", "must be a valid line code"]}}
    

    For instance, the commit is:

    newfile: Makefile oldfile: Makefile
         @@ -1,3 +1,4 @@
       1 +# #test
    1  2  # SPDX-License-Identifier: GPL-2.0
    2  3  VERSION = 4
    3  4  PATCHLEVEL = 18
    

    If I add a comment after VERSION = 4 the mentioned error happens.

    @prarit is it expected? Is there a "valid scope" that the user is allowed to comment?

    opened by bmeneg 9
  • Standardize and track arguments through different commands

    Standardize and track arguments through different commands

    This is an initiative to track and discuss changes related to standardizing different arguments through lab. It also would be great if we can find a way to track all flags.

    opened by zampierilucas 1
  • Can't we run the specified job in current pipeline with one line?

    Can't we run the specified job in current pipeline with one line?

    Hi, is it unable to run the specified job in current pipeline with one line? (not using ci view)

    Like this:

    lab ci run manual_upload_job
    

    Thanks,

    opened by snowhork 2
  • note vs discussion comment difference

    note vs discussion comment difference

    I noticed this while working on the commit comment code but felt it was slightly out of scope for that changeset.

    When you start a comment with 'mr note' lab adds, for example:

    
    # This comment is being applied to OPEN Merge Request 1166 commit ee6d5ceeadc8f6d8e71a565bb50fcff5e98992fa.
    # Do not delete patch tracking lines that begin with '|'.
    # Write a message for this note. Commented lines are discarded.
    

    And when you start a discussion with 'mr discussion' lab adds, for example:

    # Write a message for this note. Commented lines are discarded.
    

    These really should be the same. I'll work on a changeset today to synchronize the messaging.

    opened by prarit 0
  • Fix pager not being closed after command failure

    Fix pager not being closed after command failure

    The way the pager is getting closed today is by using deferred code:

    https://github.com/zaquestion/lab/blob/5a1fd5d7512ef9b457630920cf1374ff81c081c7/cmd/ci_status.go#L52-L53

    However, in case an error occurs in the middle of a pager session and a log.Fatal() is used the pager.Close() is never called. Per Golang documentation, the log.Fatal() call terminates the program abruptly, without cleaning or running any deferred code.

    In this specific case, when the pager isn't closed properly, the stdout is kept allocated to lab in that console session, meaning that the user won't be able to write anything to the console line.

    I noticed this behavior during tests with lab ci commands, where I did a typo and the command failed to find what I was requesting and exit'ed the program:

    $ lab ci status --merge-request --bridge 'realtime_check_regularu' upstream 1128
    2021/08/10 19:58:42 ERROR: ci_status.go:88: no CI jobs found in pipeline 351155952 on remote redhat/rhel/src/kernel/rhel-8
    $ ^C                <--- I was trying to write something, but only the control character was shown
    $ ^C
    

    I didn't find any way to force deferred code to run before the log.Fatal() is actually called (within our custom log lib). With that, we have 2 ways of correcting it:

    1. stop using log.Fatal() as a whole, but return errors until the point where there are no more code in the stack to move back.
    2. change our custom log lib to instead of using the builtin log.Fatal() function to use Panic() plus Rescue() instead, creating an exception handling mechanism.

    The option 2) is quite tempting to try and I would be happy to do so, however, it'll take countless more time to get done right than the option 1). With that, I suggest moving towards 1) and let 2) for the future.

    opened by bmeneg 0
  • Fix CI commands for merge request pipelines

    Fix CI commands for merge request pipelines

    As far as I could check, some CI commands are not ready to work with merge-request CI pipelines, but only with project-level pipelines. This issues will be used as a tracker to point what are the features we're lacking in what command.

    • [ ] Create a merge-request pipeline for a specific MR (that might not have any)
    • [ ] Allow retry of individual MR pipeline jobs
    • [ ] ...

    As I find more missing features I'm going to add here.

    opened by bmeneg 0
  • `lab` binary in current directory will attempt loading as config

    `lab` binary in current directory will attempt loading as config

    After git pull origin master && make install

    $ lab
    Error: User authentication failed.  This is likely due to a misconfigured Personal
    Access Token.  Verify the token or token_load config settings before attempting to
    authenticate.
    

    Even if I blow away my config I get these errors, and it doesn't seem to prompt me to put in new creds.

    opened by zaquestion 1
  • Show todos across all projects

    Show todos across all projects

    I couldn't find a flag for it but it would be very useful.

    opened by Tranquility 0
Releases(v0.23.0)
  • v0.23.0(Sep 30, 2021)

    Changelog

    8bbc211 Added with-comment fix cf64081 Added quickaction to files f808fd8 Added /unapprove quick action to mr_approve.go 76c9251 Added /approve quick action to mr_approve.go a59a5aa gitlab: handle API response without X-Total(-Pages) HTTP header 31ae4a7 mr discussions: Set CommitID 579ee99 lab: Update go dependencies 4bbfcbd lab mr create: Check file exists (-F/-f options) 527e709 mr_create: Add -f option to open editor a395410 cmd/show_common.go: Fix commenting on new file diffs 4c9510c lab: Use HeadSHA value when CommitID is not specified 4c80927 Moved file function to break before approval 653549a mr discussion: Update tests ad90d0e mr discussion: Drop mrDiscussionText() b723634 mr note: Use templates for note information 0723109 mr_discussion: Provide better discussion information a49cfa0 mr_discussion: Use mrDiscussionMsg instead of noteMsg 443fd3d rhstatus: Add commit comment functionality 1d84149 mr show: Show correct commit comments 1ac0f1b mr_create: clarify help wrt source and target remotes and branches 778bd48 gitlab: remove project ID lookup for CI Bridge jobs 501c6d6 mod: update go-gitlab 94f5faa ci: add documentation for the bridge option c37e266 ci: filter jobs by bridge name 6947303 internal: remove redundant use of 'host' a3b7f92 Fix mr create documentation 36c5ba0 Fix gitlab profile link URL c6b3e58 lab: Update modules b1193a7 Added documentation examples on every command; Fixes b5527d3 fix: (ci view) dont run ci job if esc is hit 093a016 Finalized lab todo issue, updated go-gitlab fea9e83 Fix Snippets Browse cfg host 95692fc cmd/lab_todo: fix index out of range without any args 1dafd5e Fix thumb Down 0a22600 Updated Carapace, Cobra and Glamour 9c0aa08 Removed --with-comment dependency; Fixed approve bug c554731 cmd/mr_create: fix index out of range with --source 66a1a41 mr show: Output commit ID hash on commit comments e744d4a chore: (ci status) #240 bump up default wait interval d4c4280 cmd/util: fix handle of unknown number of arguments 19b1ee0 cmd/note_common: use Cobra cmd obj to inspect command name and alias a8e7a56 cmd/note_common: move noteRunFn to the common code b5b084c Added version to make install c2a89b0 cmd/mr_create_test: fix test text wrt number of commits fb66a37 internal/git: allow specific ref to be used in LastCommitMessage() e371958 internal/git: add second ref to diffstat 114b876 internal/git: take diff stat from merge base 0c0280d internal/git: fix git log command with union behavior d7df603 internal/git: rename PathWithNameSpace to PathWithNamespace 482d054 cmd/util: remove "remote" arguement from verifyRemoteAndBranch function 6c5a5d6 internal/git: remove unused CurrentUpstreamBranch function 4b2a727 internal/action: move Labels and Milestones actions to a single file b6864c2 internal/gitlab: rename dupId to dupID 51696f9 internal/action: fix else clause with if ending with return aada9db internal/gitlab: fix argument name for UpdateMRDiscussionNote fe9248b internal/gitlab: unexport JobSorter type 88ada3d internal: add comments for exported functions and structures c9d6b3b internal/logger: rename log levels a065605 internal/logger: fix exported functions comments 0edf42e internal/logger: export Logger structure 1cfb2f4 cmd/mr_show: golint: if block ends with a return statement 68aea79 cmd/mr: remote WIP terminology support f8abe97 cmd/mr_edit: update Draft detection to use hasPrefix() 4c59f30 mr show: Fix --patch and --comments option output b65a04b cmd/mr_test: fix leftover test diffs b9e0de0 cmd/util: fix error handling for parseArgsWithGitBranchMR ecd57aa cmd/util: avoid an empty string to be parsed 5f7d2aa cmd: unexport LabPersistentPreRun function fcd11a6 cmd: fix else clause with a single return statement 68df5b3 issue_close: fix variable name 4938a98 labels: unexport MapLabels function 0c13df9 note: unexport NoteRunFn function 2b08856 util: unexport CommandPrefix variable 93c4938 util: unexport the Pager structure ec7ed8e cmd: fix unused variables b756458 cmd: fix return value checks and statements e7f1c88 cmd: use log.Fatalf instead of calling fmt.Errorf b1c4a74 internal/logger_test: add test for all logging functions 77e7321 internal/logger: fix logger whitespace for Fatal msgs 0e02d27 internal/logger: fix keysAndValues overflow 02ab075 mr_note_test: change MR ID used for testing discussion 214d810 edit_common: remove unused function 71df609 edit: fix labels update for issue and MR 15929ef mr_reopen_test: fix MR number 2000253 cmd: add heredoc.Doc() to texts within the code 40726c3 cmd: use heredoc.Doc() in every multiline help message c2cbf46 todo list: Implement --all

    Source code(tar.gz)
    Source code(zip)
    lab_0.23.0_checksums.txt(771 bytes)
    lab_0.23.0_darwin_amd64.tar.gz(8.03 MB)
    lab_0.23.0_linux_386.tar.gz(7.14 MB)
    lab_0.23.0_linux_amd64.tar.gz(7.76 MB)
    lab_0.23.0_linux_arm64.tar.gz(7.09 MB)
    lab_0.23.0_linux_armv6.tar.gz(7.39 MB)
    lab_0.23.0_windows_386.tar.gz(7.46 MB)
    lab_0.23.0_windows_amd64.tar.gz(7.79 MB)
    lab_0.23.0_windows_armv6.tar.gz(7.52 MB)
  • v0.22.0(May 20, 2021)

    Changelog

    f63883f cmd/util_bsd: add BSD operating systems 5f745da cmd/util: rename OS specific files f1a6b7d todo list: Remove MR and Issue lookups a73c3f9 fix copy&paste error in readme bd03f25 todo list: Add title to pretty output 0fd6b5a todo list: Add 'draft' status 4a57a12 updated carapace to v0.5.12 37ad1fa go.mod: update module list to follow latest changes de59b59 gitlab: fix page number check 354d89e gitlab: fix the number of items per page for listing labels a9d5350 logger: add testing code 2a67f7e go.mod: update go-gitlab for custom logger support 6da5d52 root: add --quiet option for disabling logging 35abd0c root: add --debug option for changing logger level e62e8ff gitlab: pass custom LeveledLogger to go-gitlab 4126cd3 log: substitute default Golang log by lab internal one 9af2695 logger: add specific lab logger bef39e0 approve/unapprove: Provide better error messages for repeat actions 2df755d gitlab: Cleanup error codes 2918d3d mr merge: Add successful completion message. 55b6be1 config: move CI() to after config merge 2c3f694 lab: Remove os.Rename() and add implement otiai10 copy d6c53cf root_test: Fix test errors 4a94ee9 todo_issue: Fix format error cf5f4b0 lab: Add support for GitLab Testing 8da1c96 config: Fix MainConfig nil pointer panic 3ddc746 todo: Add --pretty output 5fa923a todo: Implmement 'mr' and 'issue' commands 60de999 todo done: Add "--all" option a7f0d3f todo: Implement "done" command efec805 list: Fix list user options ee1444e issue list: Add --sort and --order list options 84599aa mr show: Change 'Reviewers' to output usernames 898dff8 labels: don't fetch labels in case of empty request 41e9f74 mr_test: Add tests for approve and review 391bf23 fork test: Delete fork project on error 7f577a3 mr_list_test: Change latest created MR value bc51d1b mr_merge: add option for merging immediately a79d158 root: remove redundant check 1e61f40 main: make "-v" flag to also skip init code 7960f84 root: return to lab when git fails handling flags 7ab2359 mr_list: Add --reviewer option a7d201f mr_test: fix error output and test a12a117 merge_request: deprecate command 258693d gitlab: remove duplicate function for getting used ID fa9daf4 mr_create: fix output messages 0f4aeea mr_test: Add wildcard support to cleanupMR() fc1356f mr_test: Fix cleanupMR() 645c7e8 mr edit: Fix reviewers check f3a38a2 mr create: Allow email addresses d118285 util.go: Move getUserID() and getUserIDs() 6cfaf6c mr_edit: Fix panic with --assign option 7b53f9a lab: Add assign reviewer functionality ac1fdb8 cmd: Rename Assignee functions to general User functions 64322db lab: introduce todo command 375f452 mr_test: Generalize prepare and close test functions 63c2db6 mr create: Add --source option 7e9c436 edit.go: Add core.editor for default editor 9a36b5f mr: add delete command 8a72102 mr create: Clean up variable names 3580b6f mr create: Clarify remote branch in help 610a795 mr create: Use remote source branch for commit logs 4f8cc17 mr_create: Check for zero commits in a Merge Request 514d2ce root: make "upstream" the defaultRemote preference 4949cb4 show_common: add fixed ANSI terminal color f058ea9 mr_show: fix line wrapping c81e575 mr checkout: Add --force option

    Source code(tar.gz)
    Source code(zip)
    lab_0.22.0_checksums.txt(771 bytes)
    lab_0.22.0_darwin_amd64.tar.gz(7.64 MB)
    lab_0.22.0_linux_386.tar.gz(6.79 MB)
    lab_0.22.0_linux_amd64.tar.gz(7.38 MB)
    lab_0.22.0_linux_arm64.tar.gz(6.75 MB)
    lab_0.22.0_linux_armv6.tar.gz(7.03 MB)
    lab_0.22.0_windows_386.tar.gz(7.10 MB)
    lab_0.22.0_windows_amd64.tar.gz(7.41 MB)
    lab_0.22.0_windows_armv6.tar.gz(7.16 MB)
  • v0.21.0(Mar 15, 2021)

    Changelog

    8c8e502 mr show: Display output for approvers and reviewers 73fd2bc lab: Update lab's description 8b27899 mr,issue,snippet: make shorthand flags deprecated b8a2a48 added label completion 7e5ce92 added milestone completion 3ffb5d9 mr show: Fix --no-color-diff help 43b10a3 mr_edit: add ability to update MR through file eba88e6 edit_common: add func to get title and body from file 69136b1 lab: Remove git version from version command 101c6f0 issue_list: add filter by assignee and author d932304 mr_list: substitute --mine by --author 715faee util_test: add test function for matchTerms 667ae70 mr_edit: allow user to update target branch 786a725 util: add func for matching terms and check ambiguity 7bb49ac lab: Clean up IntVarP usage f67c4aa list: add "all" to completion 6d32c09 fix <nil> output in completion script generation 6208470 make installer script POSIX compliant 644586b updated carapace to 0.4.1 5333fe6 mr_create: error out when using -F, -m and/or -c together d3651ca fork: allow user to set custom remote name 20d5724 git: skip to url in case of an empty pushurl d3da0ad Completely drop hub support bbca093 gitlab: improve checking for project lookup during fork 1713610 mr/issue: Test (un)subscribe commands 42e92b9 mr/issue: Include subscription status in show command 77f64f3 mr/issue: Add subscribe/unsubscribe subcommands aafaffb gitlab: fix project lookup during fork

    Source code(tar.gz)
    Source code(zip)
    lab_0.21.0_checksums.txt(673 bytes)
    lab_0.21.0_darwin_amd64.tar.gz(7.60 MB)
    lab_0.21.0_linux_386.tar.gz(6.76 MB)
    lab_0.21.0_linux_amd64.tar.gz(7.35 MB)
    lab_0.21.0_linux_arm64.tar.gz(6.71 MB)
    lab_0.21.0_linux_armv6.tar.gz(7.00 MB)
    lab_0.21.0_windows_386.tar.gz(7.07 MB)
    lab_0.21.0_windows_amd64.tar.gz(7.37 MB)
  • v0.20.0(Feb 23, 2021)

    Changelog

    b6724cf util: fix dup2() usage for Linux and Darwin 090ff30 util: create os-specific layer for syscalls 6a99151 fix: (mr_note) move tests to new dumping ground b0089e1 mr_create: Add number of commits to create metadata 02e44ae issue_list: fix help message wrt issue state a501391 mr_list: fix help message wrt MR state dac5bed mr_create: fix slice out of bounds for MERGE message 87b5993 mr_create: check for empty msg before acting fddbafe main: Also skip init for subcommand help cce6e90 gitlab: fix error handling for ImportStatus check 34175ab Make the issue link clickable dd5f5e0 mr_create: Evaluate label/milstone flags before description 50a41b1 mr approve/unapprove: Provide better error messages df4f84f label_list: fix exact match after substring matches e15e96c mr_list: remove config error message 5cde716 util: remove unecessary condition 53f2f30 ci: add hint to user during artifact download 40cbc9c ci: add support for multi-project pipelines 7a86fb4 docs: readme fix tired typing 3ce8f88 go.mod: remove unused modules 4df35c3 go.mod: update tview module 2d65ce7 cmd: Pipe output through pager in terminals ab9be1b util: move getPipelineFromArgs from ci_status 97f6242 browse_common: add file for browse variable 401dbb4 util: move union, difference and same functions ee8227e edit_common: add file for edit* functions e38ac47 note_common: add file for note* functions ea207ca util: move filterCommentArg to util file 7183bba util: move determineSourceRemote to util file ea0c681 create_common: add file for *_create common data 5c37357 show_common: add file for *_show common functions 807018b root: allow to configure a default remote in the configuration e1aa433 root: move the remote guessing logic in its own function fe24255 cmd: rename forkedFromRemote to defaultRemote 2abefb6 config: fix the worktree config comment 8a17309 fix glab link 25e17ac Reference glab ee99ea6 git: fix error message in NumberCommits cb7a8c2 git: fix UpstreamBranch

    Source code(tar.gz)
    Source code(zip)
    lab_0.20.0_checksums.txt(673 bytes)
    lab_0.20.0_darwin_amd64.tar.gz(7.59 MB)
    lab_0.20.0_linux_386.tar.gz(6.76 MB)
    lab_0.20.0_linux_amd64.tar.gz(7.34 MB)
    lab_0.20.0_linux_arm64.tar.gz(6.71 MB)
    lab_0.20.0_linux_armv6.tar.gz(7.00 MB)
    lab_0.20.0_windows_386.tar.gz(7.06 MB)
    lab_0.20.0_windows_amd64.tar.gz(7.37 MB)
  • v0.19.0(Jan 24, 2021)

    Changelog

    7c7f840 mr_create: fix the target remote 8251fd6 mr_list: Support search c59b143 issue_list: Add flag for matching exact terms 78cb696 fork: Allow forking from remotes other than "origin" 7c2c165 Fix the -h lab option 4241954 mr_list: Fix test 8c6eec1 mr approve: Fix unapprove test failures f7019fe mr_show: Add MR status "open (needs rebase)" 881fd1e config: Fix "attemping" typo 85a6290 mr_list: add flags for checking merge conflicts 115b471 issue, mr: Allow filtering lists by milestone fd7fd63 issue, mr: Allow editing milestone e068d19 issue_create: Add --milestone option 6cbbe1b mr_create: Allow passing milestone by name bdc9670 milestone: Add new milestone command 867a5b0 lab: Check that LAB_CORE_TOKEN is set before querying user for a token f798f62 ci_artifacts: Allow downloading artifact(s) 4b9781f mr_list: Update test (again)

    Source code(tar.gz)
    Source code(zip)
    lab_0.19.0_checksums.txt(673 bytes)
    lab_0.19.0_darwin_amd64.tar.gz(7.57 MB)
    lab_0.19.0_linux_386.tar.gz(6.73 MB)
    lab_0.19.0_linux_amd64.tar.gz(7.32 MB)
    lab_0.19.0_linux_arm64.tar.gz(6.69 MB)
    lab_0.19.0_linux_armv6.tar.gz(6.98 MB)
    lab_0.19.0_windows_386.tar.gz(7.04 MB)
    lab_0.19.0_windows_amd64.tar.gz(7.34 MB)
  • v0.18.0(Jan 5, 2021)

    Changelog

    319d609 Merge branch 'master' of github.com:zaquestion/lab cf622fe update travis github token 1f481b1 util: fix syscall.Stdout and Stderr fd values on for Windows 2c097ca label: Add delete subcommand f5b306c label: Add new create subcommand 23e8f40 labels: Support partial label names 4293972 mr_list: fix order and sort flags description bc6e07a tests: Adjust expected issue show output b1d6c06 issue_show: Render markdown in notes b0aed83 issue_show: Handle multi-line system notes better 258a825 issue_show: Move newline 8c03560 issue_show: Fix indent of multi-line discussions 25b187d issue_show: Use correct indent for note body 6437930 util: Support getting MR ID from branch name dccfcf8 fork: cleanup function args 67d04c2 fork: populate fork options directly in the command 0f4e16c gitlab: fix fork name index b34ae86 fork: rename namespace to group 82d9be5 test: Fix draft-mr test preparation 33de0c3 ci_view: Fix screen freeze dd21120 gitlab: check SearchGroup list length 45198d3 (project create) support creates in subgroups and nested subgroups 22b09ca (project create) parse group from path 76e7bcd remove 'in your user namespace', we can create projects in other ns cd24a6d add comment to clarify behavior when namespaceID is nil 4ffe48e create a repository in a group b602d4e mr_list: diff between latest updated and created MR 4476a44 Disable flag sorting for some commands cd3bfec ci: Handle job names with colons in filterJobArg() fd00962 cmd: Add PersistentPreRun where it's currently missing c743a49 util: Always override config file flags from the command line bf71f13 mr_test: Fix typo c11e773 issue_close: Allow closing as duplicate of another issue f945aca issue_reopen: Add subcommand to reopen closed issues 894625e gitlab: Return error when trying to close a closed issue df3d8a9 fork: add test for --no-wait option d980c61 fork: add test for custom target options 54d13ae fork: allow custom namespace as remote name 8660629 gitlab: target fork name and path must not be empty 308d63a gitlab: consider custom namespace for finding a project 35edd30 fork: wait for the actual fork process completion 1ab3a53 fork: enable different target name, namespace and path 4aadd27 mr_show: Fix --patch option with no arguments d9a2d69 mr: Fix draft test c1bc35a mr: Use bang to denote MR IDs fb024b8 mr: Add draft test case 87cd0bb mr_create: Allow creating draft merge request 4b72ab8 mr_list: Allow filtering by draft status b4f4d18 mr_edit: Support (un)marking merge requests as draft d315e01 ci: Add support for merge request pipelines 6f7973e gitlab: Use pipeline ID for getting jobs 6287135 issue_note: Fix quoting of replied comment ee7fda4 Revert "ci_status_test: Reverse expected output" f055edf gitlab: Sort list of returned jobs e8b6600 gitlab: simplify CIJobs a bit 173544a show: check output type before rendering Markdown 32fd380 mr_test: Add separate test case for different upstream name 568d297 Revert "mr_test: Check out test branch under diverging name" 06b5f6a ci_test: Only use labBinaryPath for lab commands 3bb895b mr_list: fix test latest MR 6e4a87a mr_reopen: add command for reopening a closed MR 333616b ci_test: Use a different local branch name 434587b mr_test: Check out test branch under diverging name 37348fb testdata: Fix non-default remotes d6b8490 ci: Use better default branch and remote for fetching jobs d939764 mr: Default to remote tracking branch 022fa99 Makefile: move PHONY target from 'deps' to 'build' 4413443 Fix another typo cf63bff Fix typo in readme 15e066b mr list: Add sort and order tests 6993e9e mr list: Add --sort list option 750e04a mr list: Add --order option 845de95 mr/show: Fix glitch in error message 8486750 lab: Add tests for reply commands f46c433 lab reply: Fix replies with -m option 29f9553 lab: Add 'mr resolve' alias to 'mr note' ae4b111 mr note: Add --resolve option 465b8a4 mr: Remove questionable aliases 2c1fd59 mr: Don't set minimum number of args b42b06b lab show: Convert html comments to text 014a9ec show: Add system note output e19c7e1 mr: Add approve and unapprove tests 46cef78 mr_show: Display approvals 0fd88fc gitlab: MRListDiscussions must return all discussions 7321203 mr list test: Update Test_mrListByTargetBranch 77ce9d3 Allow using HTTP protocol instead of SSH 3e3b74d Make http default fork a922751 config: check mandatory options before allowing any action 40cd2d3 config: Provide better PAT information message 6ef2d45 root: run remote discovery code in worktree only eac93fb issue_edit: Fix minor typo 66f3f5a issue_show: fix test case 5228809 root: add default values to test setup 6d1316d root: add fallthrough option for setting forkedFromRemote bb4aeef root: fix default branch remote discovery 628a61c root: remove redundant check a048e20 show: Fix bug with multi-line discussion comment output 4353b94 note: Add reply --quote functionality 0e25db0 note: Add reply functionality 24a5b66 fix: (mr checkout) override target remote when passed as arg 1ee9cd5 show: Unify the PrintDiscussions() code aa00f8b note: Unify mr and issue note codebases 010a623 root_test: Add tests for new config and flag layout 9bf2452 lab: Add LabPersistentPreRun() to all commands 928ac90 show: Convert to using flagConfig() 47de8c5 util: Add flagConfig function 8507984 fix: #364 support passing remote to mr checkout 9a68717 README.md: Update documentation with new config layout d2050a9 flags: fix "message" string handling 7dcf390 lab: rework config ordering 4289c25 show: Migrate metadata to lab toml file c7ddf19 config: Simplify metadata config functions f730ac1 lab: Rename LoadConfig() 810be67 config: Add multiple vipers 86f9dd6 mr_checkout: fix usage message e8b79e8 Fix typo in discussion cce87e3 Fix discussion test 9eab160 Fix tests for mr discussion fd4bc29 Add mr discussion creation 6022af3 lab: Add --force-linebreak option 4dc20f9 config: Add WorkTree functions 6298774 config: Read token from other sources d4dfe5e fork: fix clonning for projects within subgroups c1067e5 clone: fix folder name used for operations after clonning 9ce5c7c main: skip config initialization for --version and --help 08f5c32 issue,mr: remove markdown flag from parent command e25d3e0 config: Small LoadConfig() cleanup 4104b40 show: Add "comments" config option. dbf3165 show: Reorganize config code 6d8163f config: add Convert test 51d9b7d config: Fix and clean up certificate code 8dda6ff config: Move config init code 2c6e0d8 config: Rework the config code 44d164e config: Convert config files from HCL to TOML 6ce90a2 [PATCH] Add --patch option to mr show 08ceeac Revert commit 1285411b8584 ("config: Fix missing core.user entry") 2fb924f issue show: Add automatic comment highlights bad596f issue show: Add --since option cc98e63 mr show: Add automatic comment highlights e1076ee mr show: Add --since option 1285411 config: Fix missing core.user entry 40bfa11 mr list: Add --mine and --assignee options 3365d11 mr create: Add mr create --file option 9561d5a go fmt 7159c2b added gofmt check to travis build 4cd8998 mr show: tests for updated comments 690015e show: Mark updated comments d2c3dfe note: Add mr note --file option 6b4ee46 mr create: Set default target branch 163c86e updated carapace to 0.0.16 57fabb8 lab: Add --comments flag to 'mr show' 9bf1f87 mr show: Fix 'mr show' for unassigned Merge Requests 3f4e7ba edit: Fix GIT_EDITOR evaluation 7a92c29 added completions to readme 7bebe48 updated shell completion ffc8929 .goreleaser.yml: Create arm/arm64 binaries bba7c39 fix ci 2e1fd24 Merge branch 'master' into fix_issue_338 ed122dd README.md: Update to require go 13 or newer 6224c31 fork: Add option to skip the clone 496b0f3 add parseArgsRemoteRef - base unification + test 468bb69 use GetCommit by ref instead of GetBranch 763b691 base changes - WIP for review 8e68f5f Merge branch 'master' into support-issue-templates df7e662 Apply automatic formatting 9294018 readme: warn before aliasing b0b8ee2 alec/multiple-assignees fa99382 Create .deepsource.toml ea586a4 Merge branch 'master' into ci-status 2411e84 Update FUNDING.yml edcd8ba Merge branch 'master' into ci-status f354e90 label list: support pagination cd835e9 Using glamour's new auto-style feature 13e45f1 small test fix concerning whitespace 5466231 Test now handle ansi chars a9111f0 Using implementation independent variable names 111cb0b Fixing up tests to work with glamour 039f39f Glamour support for merge request descriptions 75146a3 glamour can also be disabled without "show" 5acfd58 Glamour Support can now be disabled with -G instead of enabled with -g c3a64b0 Added flag -g to enable glamour support c81698a first working draft of glamour-support b39265d ci status --wait: actually wait for jobs to finish 01e4354 Set TLS skip verify when getting user 2d3c105 Update .goreleaser.yml a2bc5d2 fix: #356 use SetScreen to avoid weird SetFocus deallocks 6d9efae improve project not found error to clarify it may be a permission issue 3f9088d add "tls" config section for specifiying client certs or skiping tls verification c875a07 fix: #351, need to do proper interface checking since the cfg can come in as 2 different types 929c8f3 Add support for freebsd/arm64 284fbb8 fix #314: --version not showing lab version 6d80422 use latest go in travis 3680ee2 remove mentions of providing user to lab which happens automatically now c9bee03 Support issue templates 01d6397 fix: #295 to bring in simplified current brnach changes c5d4454 #321: allow completions to be generated without authenticating with GitLab 18d029c update tview dep 63bb26a try XDG_CONFIG_HOME 020e58f Create FUNDING.yml bdb1a7e Use normal string concat to avoid "/" removal da99136 Fix crash when opening issue in browser 3654a36 tview patch 5a30108 get the CurrentBranch from git instead of parsing text

    Source code(tar.gz)
    Source code(zip)
    lab_0.18.0_checksums.txt(673 bytes)
    lab_0.18.0_darwin_amd64.tar.gz(7.56 MB)
    lab_0.18.0_linux_386.tar.gz(6.73 MB)
    lab_0.18.0_linux_amd64.tar.gz(7.31 MB)
    lab_0.18.0_linux_arm64.tar.gz(6.68 MB)
    lab_0.18.0_linux_armv6.tar.gz(6.97 MB)
    lab_0.18.0_windows_386.tar.gz(7.04 MB)
    lab_0.18.0_windows_amd64.tar.gz(7.34 MB)
  • v0.17.0(Dec 11, 2019)

    Changelog

    6d9efae improve project not found error to clarify it may be a permission issue 3f9088d add "tls" config section for specifiying client certs or skiping tls verification c875a07 fix: #351, need to do proper interface checking since the cfg can come in as 2 different types 929c8f3 Add support for freebsd/arm64 284fbb8 fix #314: --version not showing lab version 6d80422 use latest go in travis 3680ee2 remove mentions of providing user to lab which happens automatically now 01a0366 docs: apline installation usage 45bb615 update readme to address new install requirements d114488 fix: adopt license suggestions from #294 5cb35fa README: clarify what HCL is 01d6397 fix: #295 to bring in simplified current brnach changes c5d4454 #321: allow completions to be generated without authenticating with GitLab 18d029c update tview dep 63bb26a try XDG_CONFIG_HOME 020e58f Create FUNDING.yml bdb1a7e Use normal string concat to avoid "/" removal da99136 Fix crash when opening issue in browser 3654a36 tview patch 5a30108 get the CurrentBranch from git instead of parsing text

    Source code(tar.gz)
    Source code(zip)
    lab_0.17.0_checksums.txt(576 bytes)
    lab_0.17.0_darwin_386.tar.gz(4.14 MB)
    lab_0.17.0_darwin_amd64.tar.gz(4.35 MB)
    lab_0.17.0_linux_386.tar.gz(3.97 MB)
    lab_0.17.0_linux_amd64.tar.gz(4.20 MB)
    lab_0.17.0_windows_386.tar.gz(3.86 MB)
    lab_0.17.0_windows_amd64.tar.gz(4.08 MB)
  • v0.16.0(May 31, 2019)

    Changelog

    0a1c2c3 Address spacing in gitlab.go. 5d9d7de Fix test. 8f8525d Fix indentation. 45f8f63 Add support for posting notes to Merge Requests. 3fdad5f Merge branch 'master' into fix_brew_test fb5bf74 Stop "brew test" from hanging fd1a725 Switch from Unlicense to Creative Commons CC0 1.0 license

    Source code(tar.gz)
    Source code(zip)
    lab_0.16.0_checksums.txt(576 bytes)
    lab_0.16.0_darwin_386.tar.gz(3.71 MB)
    lab_0.16.0_darwin_amd64.tar.gz(3.92 MB)
    lab_0.16.0_linux_386.tar.gz(3.55 MB)
    lab_0.16.0_linux_amd64.tar.gz(3.79 MB)
    lab_0.16.0_windows_386.tar.gz(3.51 MB)
    lab_0.16.0_windows_amd64.tar.gz(3.73 MB)
  • v0.15.3(Mar 21, 2019)

    Changelog

    6f56975 fix #271 (lab mr browse break) and fix #300 (lab alias is actually hub alias) 5c82aaf Fix spelling error 1bb24cd check remote on branch first before making guesses 7978cca add mr rebase

    Source code(tar.gz)
    Source code(zip)
    lab_0.15.3_checksums.txt(576 bytes)
    lab_0.15.3_darwin_386.tar.gz(3.70 MB)
    lab_0.15.3_darwin_amd64.tar.gz(3.92 MB)
    lab_0.15.3_linux_386.tar.gz(3.55 MB)
    lab_0.15.3_linux_amd64.tar.gz(3.79 MB)
    lab_0.15.3_windows_386.tar.gz(3.50 MB)
    lab_0.15.3_windows_amd64.tar.gz(3.72 MB)
  • v0.15.0(Feb 10, 2019)

    Changelog

    5bb5be4 save username locally so it can be used offline 42a6cec build release with modules 6b5f335 fix? panic on ci trace 887584f Add lab label for listing and searching labels. 21ec7ff (config) Check $HOME before looking up in the user db 8b63465 (ci status) support a short text based pipeline/job status ef8b710 Document unusual .gitignore unit test dependency. 34fb0e9 Add tests for new 'internal/copy' pkg and extend existing cmd tests. d05ff83 Make all tests pass on Windows. 3b1f5ae (config) use host from environment if available to setup lab.hcl 4cea8d4 [#269] remove need for configuring username during setup be24c68 issue comments: implement pagination & show all comments (#264) 396a7c2 install.sh script fixes (#263) 751950f issue show: add --comments flag to print notes & discussions for issue (#256) e088723 project create: update help text (#255) a82eac8 add positional completion to issue edit 229e611 updated zsh completion for remote parameter (#253) 09324ac Issue edit (#245) 0cd2388 Added bash and zsh autocompletion (#252) 1e7613a Prettify install script (#248) 9ba0548 Issue list search (#242) 7eda748 docs: reword overview header 509a801 docs: document how to run tests (close #239) a0f4572 Merge branch 'master' into issue-note 14f22e5 add lab issue note command a6aa3c0 refactor git/edit to prepare for issue notes 26b8f62 update readme afd0c51 [#228] (ci view) support viewing pipelines on provided branch/tag 3aebeb2 update install from source instructions for modules 21a102f upgrade to go1.11; use modules

    Source code(tar.gz)
    Source code(zip)
    lab_0.15.0_checksums.txt(576 bytes)
    lab_0.15.0_darwin_386.tar.gz(3.70 MB)
    lab_0.15.0_darwin_amd64.tar.gz(3.91 MB)
    lab_0.15.0_linux_386.tar.gz(3.55 MB)
    lab_0.15.0_linux_amd64.tar.gz(3.78 MB)
    lab_0.15.0_windows_386.tar.gz(3.50 MB)
    lab_0.15.0_windows_amd64.tar.gz(3.72 MB)
  • v0.14.0(Oct 24, 2018)

    Changelog

    f9081ac Need to do a reset not a clean to remove tracked files oops 1e0c955 actually clean the testdata dir up 59a3fc3 clean up git dir after test 2cf73c4 fix failed passthrough to git when using flags on the rootCmd f5e1c4b add alias new for issue and merge request creation fix #216 e92a944 fix mrBrowseCurrent test b7d9e5f Put badges on the title line 2ea831e add liberapay donation link 9c3caf4 fix os/exec missing 08ed930 add empty array for args 09c0a4c splitting mr_browse_test into 2 tests 8e8265f just try to display the branchs 479cda4 just a modification to reduce diff and trigger travis ci again 9694b59 open current merge request fix #218 fc4ca81 Fix SourceBranch missing by updating go-gitlab 0c5f7c4 use git.CurrentBranch() 7f96c8f just list merge request and source branch 0249d96 Pass required ApprovelsBeforeMerge parameter 0465c5a Update go-gitlab to use TargetBranch filter 295a892 Allow filtering by target branch 24e6729 fix #212 by using gitlab api to detect latest lab version

    Source code(tar.gz)
    Source code(zip)
    lab_0.14.0_checksums.txt(576 bytes)
    lab_0.14.0_darwin_386.tar.gz(3.12 MB)
    lab_0.14.0_darwin_amd64.tar.gz(3.29 MB)
    lab_0.14.0_linux_386.tar.gz(2.98 MB)
    lab_0.14.0_linux_amd64.tar.gz(3.16 MB)
    lab_0.14.0_windows_386.tar.gz(2.96 MB)
    lab_0.14.0_windows_amd64.tar.gz(3.14 MB)
  • v0.13.0(Aug 10, 2018)

    Changelog

    155e5c0 Expand on #187 and implement #190, allow ci pipelines to be created/trigger and allow lab to "just work" in gitlab ci a94a451 (ci view) support suspending application to view trace logs c9d2dc6 Support approve and thumb operations on MRs eff2524 Support scoop and add windows installation instructions to readme 6700f77 fix #189 and fix #197: support non-titled commits and markdown in EDITOR 0bf771e fix dep lock file and clean up mr create flags eb930b2 (listing) abstract pagination from user 6ea77f9 add some more MR options 762f637 Use git describe to get semantically meaningful version string f9ef931 Separate make recipes and parameterize variables fd63280 Fix misspellings and add doc comment 57ca8e9 Add logo into readme de347a7 Introducing ci run command to create a pipeline 4df7f29 load config from file only if env is not present 84e891c (readme) move gif below summary text d5592c6 update gif url to point to github content b85cc1a add usage gif to README.md

    Source code(tar.gz)
    Source code(zip)
    lab_0.13.0_checksums.txt(576 bytes)
    lab_0.13.0_darwin_386.tar.gz(3.11 MB)
    lab_0.13.0_darwin_amd64.tar.gz(3.28 MB)
    lab_0.13.0_linux_386.tar.gz(2.97 MB)
    lab_0.13.0_linux_amd64.tar.gz(3.15 MB)
    lab_0.13.0_windows_386.tar.gz(2.95 MB)
    lab_0.13.0_windows_amd64.tar.gz(3.13 MB)
  • v0.12.0(Jul 12, 2018)

    Changelog

    5cac42b (vendor) update Gopkg.lock to latest format e3d7e85 fix #160: trailing slash in host name broke client 9e24c08 (cmd/ci_view) breakout input handling and do some basic cleanup e197188 fix compile and test errors for listing MRs 62e3277 feat: config per page flag on 1dc8a86 refactor handleNavigation to manage its own state in a struct to keep things cohesive 9cc67af Support running, tracing, and canceling jobs in lab ci view a9fa9c5 Support visibility for lab project create and improve help text to be more intuitive and ease use overall d348fdc [#163] block hub passthrough for lab browse to avoid confusion 4e2aa70 (fix) #159 by ensuring source project is used and add test e47a575 Add project list/search functionality 42c32fe (project_list) add command to list all projects c1d883e start producing builds for windows 6f23a30 allow host, user, and token to be set with environment, implements #155 590ad86 Support assignee on issues and merge requests, implements #154 d63266a Add support for lab project browse 0faefd0 fix: prevent lab create from being passed through to hub f446b9a Reduce dependencies (#161) 2900ecb use snake case for cmd file names -- it just feels right

    Source code(tar.gz)
    Source code(zip)
    lab_0.12.0_checksums.txt(576 bytes)
    lab_0.12.0_darwin_386.tar.gz(3.07 MB)
    lab_0.12.0_darwin_amd64.tar.gz(3.24 MB)
    lab_0.12.0_linux_386.tar.gz(2.93 MB)
    lab_0.12.0_linux_amd64.tar.gz(3.11 MB)
    lab_0.12.0_windows_386.tar.gz(2.92 MB)
    lab_0.12.0_windows_amd64.tar.gz(3.09 MB)
  • v0.11.1(Apr 23, 2018)

  • v0.11.0(Apr 23, 2018)

    Changelog

    95c1acf [#137] (merge-request) remove merge-request from docs, will leave the command around e9d401b (ci) bugfixes & error handling + dependecies updated 55357bb (ci) dynamic rendering of ci pipeline for current branch db6bffb [#136] (fix) issue displaying token url when entering credentials 4af19e9 [#137] issue deprecation notice in lab merge-request 835e9e3 [#138] support --version in addition to lab version 381b503 (ci_trace,tests) test selecting and stream job logs 8323f0f (ci,trace) initial support for view ci job logs; live

    Source code(tar.gz)
    Source code(zip)
    lab_0.11.0_checksums.txt(382 bytes)
    lab_0.11.0_darwin_386.tar.gz(3.01 MB)
    lab_0.11.0_darwin_amd64.tar.gz(3.17 MB)
    lab_0.11.0_linux_386.tar.gz(2.87 MB)
    lab_0.11.0_linux_amd64.tar.gz(3.04 MB)
  • v0.10.1(Apr 12, 2018)

    Changelog

    d91987b [#130] (tests) assert projects using ssh on non standard ports are parsed correctly in PathWithNameSpace c877f5d [#116] (fork,create) retry API calls for known race cases (fork->clone,create->clone) 475c44b fix: set message flag in merge-request cmd f8207e7 Add support for GitLab subgroups (#126) 414bf11 Add install to Makefile

    Source code(tar.gz)
    Source code(zip)
    lab_0.10.1_checksums.txt(382 bytes)
    lab_0.10.1_darwin_386.tar.gz(2.72 MB)
    lab_0.10.1_darwin_amd64.tar.gz(2.84 MB)
    lab_0.10.1_linux_386.tar.gz(2.58 MB)
    lab_0.10.1_linux_amd64.tar.gz(2.72 MB)
  • v0.10.0(Mar 18, 2018)

    Changelog

    1a8a9a6 [#122] support setting labels when creating a issues 7c8768c [#78] add "upstream" remote during git fork when "origin" refers to a user fork efb3752 [#113] Support lab repo create for creating a project on gitlab 6584ce6 PR feedback aff5e24 [#104] Support setting the remote during lab mr checkout 24414d5 [#115] support setting target branch during mr create c2e9143 (fixes) go1.10 compile time check bug, test used rename which didnt support cross device bfec507 (bug) autocreate ~/.config directory if it doesnt exist


    Automated with GoReleaser Built with go version go1.10 linux/amd64

    Source code(tar.gz)
    Source code(zip)
    lab_0.10.0_checksums.txt(382 bytes)
    lab_0.10.0_darwin_386.tar.gz(2.71 MB)
    lab_0.10.0_darwin_amd64.tar.gz(2.83 MB)
    lab_0.10.0_linux_386.tar.gz(2.58 MB)
    lab_0.10.0_linux_amd64.tar.gz(2.71 MB)
  • v0.9.5(Feb 18, 2018)

    Changelog

    9e9e50c [#12] (internal/git) support parsing remotes using http/s, ssh://, and git:// 5c85a53 [#109] (internal/gitlab) prevent panic when unable to connect to gitlab server 5ee2cc1 [#107] (bug) align lab help functionality with git help and --help


    Automated with GoReleaser Built with go version go1.9 linux/amd64

    Source code(tar.gz)
    Source code(zip)
    lab_0.9.5_checksums.txt(378 bytes)
    lab_0.9.5_darwin_386.tar.gz(2.62 MB)
    lab_0.9.5_darwin_amd64.tar.gz(2.79 MB)
    lab_0.9.5_linux_386.tar.gz(2.48 MB)
    lab_0.9.5_linux_amd64.tar.gz(2.67 MB)
  • v0.9.3(Jan 19, 2018)

  • v0.9.2(Jan 17, 2018)

  • v0.9.1(Jan 16, 2018)

    Changelog

    51ea66c [#99] (snippet) remove editor workflow for writing title/description e5de37d [#98] (snippet,fix) use /tmp for personal snippets when editing outside of a git repo e6c5e00 (fix) it seems sudo elevation doesnt work with process subsitution 55dba77 (fix) actually pass if list personal snippet if its in the first 3 returned cfb9968 [#96] (fix) update install script to use prebuilt binaries for more reliable installs and add back an install from source section


    Automated with GoReleaser Built with go version go1.9 linux/amd64

    Source code(tar.gz)
    Source code(zip)
    lab_0.9.1_checksums.txt(378 bytes)
    lab_0.9.1_darwin_386.tar.gz(2.61 MB)
    lab_0.9.1_darwin_amd64.tar.gz(2.78 MB)
    lab_0.9.1_linux_386.tar.gz(2.48 MB)
    lab_0.9.1_linux_amd64.tar.gz(2.67 MB)
  • v0.9.0(Jan 7, 2018)

    Changelog

    1f3677c (mr_create) update go-gitlab to include url encode for branches API and add tests for BranchPushed fd87602 (refactor) BranchPushed pull out FindProject call and put more information into calling error message fbfde98 (doc) improve language for description in readme 40d4025 (doc) add banner a370e4b (debug) remove debug statements 2531851 (refactor) consolidate argument parsing logic 4604b39 (cmd/lint) add subcommand to validate .gitlab-ci.yml 9aea71f (browse) refactor test setup into the packages TestMain 1c838c7 (mr,issue) update show all assignees on issues


    Automated with GoReleaser Built with go version go1.9 linux/amd64

    Source code(tar.gz)
    Source code(zip)
    lab_0.9.0_checksums.txt(378 bytes)
    lab_0.9.0_darwin_386.tar.gz(2.61 MB)
    lab_0.9.0_darwin_amd64.tar.gz(2.78 MB)
    lab_0.9.0_linux_386.tar.gz(2.48 MB)
    lab_0.9.0_linux_amd64.tar.gz(2.67 MB)
  • v0.8.0(Dec 21, 2017)

    Changelog

    06e0408 Merge pull request #86 from zaquestion/docs 6b6da87 Merge pull request #85 from zaquestion/close 38a0b1e (issue,mr) support close subcommand 27fc07a (issue,mr) add close and merge sub commands 0862f42 Merge pull request #73 from nkprince007/nkprince007/browse a49ae83 add browse command for issues, mrs and snippets 3de9fe0 (browser, Open) add Open function to open URLs fe20daf (fix) install script needs to pull and cd to project first, .gitignore vendors 36ee6e0 Merge pull request #72 from zaquestion/novendor b050e2a (vendor) drop commited dependencies in favor of using dep as needed 19d68b5 Merge pull request #70 from zaquestion/config b6cf8bc [#48] (config) support lab.hcl config and move credentials into it. 14853a0 (fix,ci) generate docs before_deploy and checkout correct branch 0f041ec (mr/issue show) update command descriptions ab6ad07 (mr/issue show) update command descriptions cb699c9 Merge pull request #69 from nkprince007/mr-show be371ed (mr, show) add mr show command 5936736 (gitlab, internal) add GetMR method 7ca971f Merge pull request #66 from nkprince007/issue-show a057d77 (issue, show) add issue show command d3a760d (gitlab, internal) add IssueGet method 50d2075 Merge pull request #65 from nkprince007/issueLabels c273987 (mr, state) add state flag to filter MRs by state c9ccd9b (issue, state) add state flag for filtering issues by state 40d3d31 (mr, labels) add support for filtering mrs by labels 6405134 (issue, labels) add support for filtering issues by labels 4cb0cfc Merge pull request #64 from zaquestion/tests-cmd-3 7e34590 (tests,fix) coverage for clone test was getting trapped inside the repo dir 6540c63 Merge pull request #61 from zaquestion/tests-cmd-3 27d23f4 (test,cmd/fork) add naive test for verifying remote get properly updated after a lab fork 323a7a1 (test,cmd/clone) add a basic test for cloning using "upstream" usecase bb6ccc6 (test,cmd/root) add unittests for parseArgsRemote c4062a8 Merge pull request #58 from zaquestion/tests-cmd-2 6cc5b81 (coverage) adjust coverage threashold you show green when non-failure cases are covered e063a53 Merge pull request #56 from zaquestion/tests-cmd


    Automated with GoReleaser Built with go version go1.9 linux/amd64

    Source code(tar.gz)
    Source code(zip)
    lab_0.8.0_checksums.txt(378 bytes)
    lab_0.8.0_darwin_386.tar.gz(2.63 MB)
    lab_0.8.0_darwin_amd64.tar.gz(2.80 MB)
    lab_0.8.0_linux_386.tar.gz(2.50 MB)
    lab_0.8.0_linux_amd64.tar.gz(2.69 MB)
  • v0.7.0(Dec 18, 2017)

    Changelog

    b7305f8 (ci) after_deploy generate doc/ghpages 45a6b65 (mr/issue show) update command descriptions cb699c9 Merge pull request #69 from nkprince007/mr-show be371ed (mr, show) add mr show command 5936736 (gitlab, internal) add GetMR method 7ca971f Merge pull request #66 from nkprince007/issue-show a057d77 (issue, show) add issue show command d3a760d (gitlab, internal) add IssueGet method 50d2075 Merge pull request #65 from nkprince007/issueLabels c273987 (mr, state) add state flag to filter MRs by state c9ccd9b (issue, state) add state flag for filtering issues by state 40d3d31 (mr, labels) add support for filtering mrs by labels 6405134 (issue, labels) add support for filtering issues by labels 4cb0cfc Merge pull request #64 from zaquestion/tests-cmd-3 7e34590 (tests,fix) coverage for clone test was getting trapped inside the repo dir 6540c63 Merge pull request #61 from zaquestion/tests-cmd-3 27d23f4 (test,cmd/fork) add naive test for verifying remote get properly updated after a lab fork 323a7a1 (test,cmd/clone) add a basic test for cloning using "upstream" usecase bb6ccc6 (test,cmd/root) add unittests for parseArgsRemote 50ceb84 (tests) test passthrough to git and combined help text on lab c4062a8 Merge pull request #58 from zaquestion/tests-cmd-2 5dd2085 (tests) add unittests around pkg cmd functions to increase coverage 6cc5b81 (coverage) adjust coverage threashold you show green when non-failure cases are covered e063a53 Merge pull request #56 from zaquestion/tests-cmd 99e5400 (tests) mrText all non-integration (lab_bin) tests run in testdata to work with git operations


    Automated with GoReleaser Built with go version go1.9 linux/amd64

    Source code(tar.gz)
    Source code(zip)
    lab_0.7.0_checksums.txt(378 bytes)
    lab_0.7.0_darwin_386.tar.gz(2.21 MB)
    lab_0.7.0_darwin_amd64.tar.gz(2.35 MB)
    lab_0.7.0_linux_386.tar.gz(2.09 MB)
    lab_0.7.0_linux_amd64.tar.gz(2.25 MB)
A Git RPC service for handling all the git calls made by GitLab

Quick Links: Roadmap | Want to Contribute? | GitLab Gitaly Issues | GitLab Gitaly Merge Requests | Gitaly is a Git RPC service for handling all the gi

null 1 Nov 13, 2021
A Simple and Comprehensive Vulnerability Scanner for Container Images, Git Repositories and Filesystems. Suitable for CI

A Simple and Comprehensive Vulnerability Scanner for Containers and other Artifacts, Suitable for CI. Abstract Trivy (tri pronounced like trigger, vy

Aqua Security 10.1k Jan 20, 2022
Sync tags in your git repository and a changelog in Keep a Changelog format with releases of your GitLab project.

Automatic GitLab releases Sync tags in your git repository and a changelog in Keep a Changelog format with releases of your GitLab project. Features:

null 0 Jan 7, 2022
A tool to monitor git repositories and automatically pull & push changes

git-o-matic A tool to monitor git repositories and automatically pull & push changes Installation Packages & Binaries Arch Linux: gitomatic Binaries f

Christian Muehlhaeuser 1k Jan 17, 2022
SQL interface to git repositories, written in Go. https://docs.sourced.tech/gitbase

gitbase gitbase, is a SQL database interface to Git repositories. This project is now part of source{d} Community Edition, which provides the simplest

source{d} 2k Jan 13, 2022
A simple cli tool for switching git user easily inspired by Git-User-Switch

gitsu A simple cli tool for switching git user easily inspired by Git-User-Switch Installation Binary releases are here. Homebrew brew install matsuyo

Masaya Watanabe 194 Jan 14, 2022
Git with a cup of tea, painless self-hosted git service

Gitea - Git with a cup of tea View the chinese version of this document Purpose The goal of this project is to make the easiest, fastest, and most pai

Gitea 28k Jan 22, 2022
ReGit: A Tiny Git-Compatible Git Implementation written in Golang

ReGit is a tiny Git implementation written in Golang. It uses the same underlying file formats as Git. Therefore, all the changes made by ReGit can be checked by Git.

null 162 Nov 17, 2021
Removes unnecessarily saved git objects to optimize the size of the .git directory.

Git Repo Cleaner Optimizes the size of the .git directory by removing all of the files that are unnecessarily-still-saved as part of the git history.

Omar Yasser 1 Dec 16, 2021
A simple tool to help apply changes across many GitHub repositories simultaneously

A simple tool to help apply changes across many GitHub repositories simultaneously

Skyscanner 292 Jan 13, 2022
Gitlab include draftsman in golang

Gitlab include draftsman WIP Утилита, которая рисует graph include'ов из gitlab-ci Как работает пока: Считывает из app.env файла(который должен быть в

Roman Mironov 3 Oct 31, 2021
Find trending repositories on GitHub

octotrends.com A niftly little tool I wrote to try and find repos and languages that are rapidly growing on GitHub. Growth rates are based on % growth

Dominik Dabrowski 5 Nov 5, 2021
Simple git hooks written in go that installs globally to your machine

Go-hooks Simple git hooks written in go that installs globally to your machine Install curl -fsSL

Vadim Makerov 0 Nov 1, 2021
🥄A simple generator for semantic git messages.

?? Tablespoon EXPERIMENTAL PREVIEW A simple generator for semantic git messages. Installation | Contributing Tablespoon is a simple generator which ca

Matt 4 Dec 18, 2021
Fast and powerful Git hooks manager for any type of projects.

Lefthook The fastest polyglot Git hooks manager out there Fast and powerful Git hooks manager for Node.js, Ruby or any other type of projects. Fast. I

Abroskin Alexander 1.9k Jan 16, 2022
go mod vendor lets you check in your dependencies to git, but that's both bloaty (for developers) and tedious (remembering to update it).

go-mod-archiver Afraid of being unable to build historical versions of your Go program? go mod vendor lets you check in your dependencies to git, but

Tailscale 78 Oct 29, 2021
A single Git repository that holds two microservices (Python and GO)

A single Git repository that holds two microservices (Python and GO)

null 0 Nov 19, 2021
Installs git repos onto your system and keeps them up-to-date

Gitfile Installs git repos onto your system and keeps them up-to-date. It's a lightweight package manager for things that haven't been published to a

Brad Urani 18 Jan 16, 2021
Gogs is a painless self-hosted Git service

Gogs - A painless self-hosted Git service 简体中文 ?? Vision The Gogs (/gɑgz/) project aims to build a simple, stable and extensible self-hosted Git servi

Gogs 38.3k Jan 17, 2022