mergereq

CLI for Gitlab merge requests & more

Crates.io npm

Install

```sh cargo install mergereq

or

npm i -g mergereq-bin ```

Setup

First of all, to request data requires authentication you need to save you Gitlab private token. ( Find it here ). sh mergereq config save-token "$YOUR_PRIVATE_TOKEN" Token will be saved (by default) at system config dir, e.g. for Linux it would be ~/.config/.mergereq-config. Path to global config can be overwritten with --global-config option.

Also create the local configuration file for mergereq in directory when you want to use it (default name is ./.mergereqrc.toml). Path can be overwritten with --local-config option. ```toml

Gitlab API endpoint

repo_url = "https://example.com"

The ID or path of the project

defaultproject = "web/mybest_project" ```

You may overwrite all this parameters when run command with --private-token, --repo-url and -P, --project options.

Docs

Available subcommands: * config save-token - Stores token to config file * config show-token - Shows GitLab private token if exists * config forget-token - Removes global config file where private token is * create mr - Creates merge request * ls branches - Shows list of branches * ls mr - Shows list of merge requests * ls projects - Shows list of projects * ls users - Shows list of users

Aboute merge request creating

Some options has default values

| Option | Desc | Default | | ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------- | | -S, --src <source-branch> | The source branch | Current git branch | | -T, --trg <target-branch> | The target branch | Project default branch | | -I, --title <title> | The target branch | Message of last commit in source branch | | --assignee-id <assignee-id> | Assignee user ID | Unassigned | | -A, --assignee-name <assignee-name> | Assignee user name. mergereq will fetch all active users, then search one with specified name, if not available throws error | Unassigned | | -R, --remove-source-branch | Flag indicating if a merge request should remove the source branch when merging | false | | -Q, --squash | Squash commits into a single commit when merging | false |

Example

```sh mergereq create mr -A team.lead

You creating merge requests with this parameters:

Source branch: — feature/move_btn

Target branch: — develop

Title branch: — Move button by 1px to the right

Assignee: — team.lead (ID: 2)

Do you want to continue? [Y/n]

#

Your merge request is created. You can see it here:

https://example.com/web/mybestproject/merge_requests/23

Status: canbemerged

```

Create merge request

``` mergereq-create-mr Creates merge request

USAGE: mergereq create mr [FLAGS] [OPTIONS]

FLAGS: -h, --help Prints help information -R, --remove-source-branch Flag indicating if a merge request should remove the source branch when merging -Q, --squash Squash commits into a single commit when merging

OPTIONS: --assignee-id Assignee user ID -A, --assignee-name Assignee user name -D, --desc Description of MR. Limited to 1 000 000 characters --global-config Path of global config file. e.g. for Linux it would be ~/.config/.mergereq-config --local-config Path of local config file. Default is .mergereqrc.toml in the current directory. --private-token Sets the Gitlab private token for requests -P, --project The ID or path of the project owned by the authenticated user --repo-url URL of your Gitlab domain -S, --src The source branch -T, --trg The target branch -I, --title Title of MR</p> <p>```</p> <p>All documentation available in mergereq CLI with <code>--help</code> or <code>-h</code> flag.</p> <h5>Enjoy using!</h5> <h3>License</h3> <p>This module is <a href="./LICENSE">MIT licensed</a>.</p> </body></html>