Import gitlab MRs into a local repository
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
.gitignore
Cargo.lock
Cargo.toml
README.md
UNLICENSE

README.md

gitlab-sync

Imports gitlab MRs into the local repository using the git series format.

Setup

Start by adding a "gitlab" section to your repo's config file (.git/config):

[gitlab]
    projectId = 42
    url = gitlab.mydomain.com
    privateToken = "xyz123abc456pqr789st"

You can get a private token from http://gitlab.mydomain.com/profile/account if you don't have one yet.

Usage

The working directory must be within a checkout of the specified project. If gitlab-sync can't find the branches referenced by an MR, it will fail to import it.

Each MR is imported as a git series. If a series already exists, it is updated. If you run gitlab-sync regularly you get the complete history of all MRs.

By default, only open MRs are imported (override with -a).

If gitlab-sync fails while communicating with gitlab, it may be due to a gitlab version incompatibility. You can fix this by changing the version of the gitlab package in Cargo.toml so that it matches your version of gitlab. (See here for more information.)

I imported some MRs; now what?

The MRs are imported in the format understood by git-series, so you could use that; but these days (git-2.19+) you don't even need to have git-series installed to view the ddiffs - it's supported in the base distribution!

Suppose you reviewed MR !2572 last week, but the author has pushed 13 times since then. To see the changes since your last review, simply:

$ SERIES=git-series/gitlab/2572
$ git range-diff ${SERIES}~13:base..${SERIES}~13:series ${SERIES}:base..${SERIES}:series

Try it! I'm pretty sure this is the best way to re-review a branch.

License

This is free and unencumbered software released into the public domain. See UNLICENSE or http://unlicense.org/.