{"id":17645467,"url":"https://github.com/bradwood/git_lab_rust","last_synced_at":"2026-05-08T04:32:07.040Z","repository":{"id":68320862,"uuid":"256597712","full_name":"bradwood/git_lab_rust","owner":"bradwood","description":"Git cli tool to interact with a GitLab server.","archived":false,"fork":false,"pushed_at":"2020-07-27T20:43:27.000Z","size":470,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-30T07:15:09.209Z","etag":null,"topics":["cli","git","gitlab","mirror","rust"],"latest_commit_sha":null,"homepage":"https://gitlab.com/bradwood/git-lab-rust","language":"Rust","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bradwood.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-04-17T19:59:47.000Z","updated_at":"2023-02-14T03:26:09.000Z","dependencies_parsed_at":null,"dependency_job_id":"8d5d1207-0052-40de-8080-7e5d5cb5ee76","html_url":"https://github.com/bradwood/git_lab_rust","commit_stats":null,"previous_names":[],"tags_count":36,"template":false,"template_full_name":null,"purl":"pkg:github/bradwood/git_lab_rust","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradwood%2Fgit_lab_rust","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradwood%2Fgit_lab_rust/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradwood%2Fgit_lab_rust/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradwood%2Fgit_lab_rust/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bradwood","download_url":"https://codeload.github.com/bradwood/git_lab_rust/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradwood%2Fgit_lab_rust/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262030486,"owners_count":23247667,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","git","gitlab","mirror","rust"],"created_at":"2024-10-23T10:56:28.218Z","updated_at":"2026-05-08T04:32:02.022Z","avatar_url":"https://github.com/bradwood.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# git_lab_cli\n\n[![pipeline status](https://gitlab.com/bradwood/git-lab-rust/badges/master/pipeline.svg)](https://gitlab.com/bradwood/git-lab-rust/-/commits/master)\n[![Crates.io](https://img.shields.io/crates/v/git_lab_cli)](https://crates.io/crates/git_lab_cli)\n[![Crates.io](https://img.shields.io/crates/d/git_lab_cli)](https://crates.io/crates/git_lab_cli)\n[![musl binaries](https://img.shields.io/badge/musl%20binary-download-brightgreen)](https://gitlab.com/bradwood/git-lab-rust/-/releases)\n\nThis is a cli tool that adds the `lab` command to `git` to enable interaction with a GitLab server.\n\n### Change Log\n\nSee [CHANGELOG.md](CHANGELOG.md) for a summary of fixes and features added to each release.\n\n## Functionality\n\nThe tool is designed to work as a custom command to the vanilla `git` cli command. Once\ninstalled you can invoke it with `git lab \u003csubcommand\u003e \u003coptions\u003e...`.\n\n### Current functions\n\n * `init` -- initialise credentials against a remote GitLab server\n * `project` -- interact with GitLab projects\n    * `project create` -- create project\n    * `project attach` -- associate a local repo with a project\n    * `project (open|view|browse)` -- open project's URL in browser\n    * `project (show|info|get)` -- show details about a project\n * `issue` -- interact with issues\n    * `issue create` -- create issue (either entirely via cli-passed parameters, or\n       interactively, by prompting the user for the inputs needed)\n    * `issue assign` -- assign issue\n    * `issue (open|view|browse)` -- open issue's URL in browser\n    * `issue (show|info|get)` -- show details about a issue\n    * `issue list` -- get list of issues\n    * `issue close` -- close issue\n    * `issue reopen` -- reopen issue\n    * `issue lock` -- lock discussions on issue\n    * `issue unlock` -- unlock discussions on issue\n * `mr` -- interact with merge requests\n    * `mr create` -- create merge request (either entirely via cli-passed parameters, or\n       interactively, by prompting the user for the inputs needed)\n    * `mr assign` -- assign merge request\n    * `mr close` -- close merge request\n    * `mr reopen` -- reopen merge request\n    * `mr lock` -- lock discussions on merge request\n    * `mr unlock` -- unlock discussions on merge request\n    * `mr list` -- get list of merge requests\n    * `mr (open|view|browse)` -- open merge request's URL in browser\n    * `mr (show|info|get)` -- show details about a merge request\n    * `mr (checkout|co)` -- checkout merge request\n    * `mr wip` -- toggle `WIP:` (or `Draft:`) status of merge request\n    * `mr approve` -- approve merge request\n    * `mr merge` -- merge merge request\n\n### Planned functions\n\n * `labels` -- interact with Gitlab labels\n * `project list` -- get list of projects\n * `pipeline` -- interact with Gitlab CI jobs\n * `group` -- interact with Gitlab groups\n * `user` -- interact with Gitlab users\n * probably others...\n\n## Features\n\n### Current features\n\n * Config stored using standard `git config` machinery\n * Locally cached Gitlab metadata to improve usability when creating gitlab objects\n   interactively\n * JSON output in addition to plain text to allow for parsing with tools like `jq`\n * Terminal-based markdown rendering\n * `$EDITOR` integration on `create` commands\n * `musl` binaries available [here](https://gitlab.com/bradwood/git-lab-rust/-/releases)\n\n### Planned features\n\n * support for various linux packaging tools like AUR, Deb, RPM, etc\n * non-Linux support (PRs requested!)\n\n## Installation\n\n### Cargo\n\nIf you have the Rust toolchain installed, you can install via `cargo`:\n\n```shell\ncargo install git_lab_cli\n```\n### Statically linked Linux binaries\n\nGrab a tarball for these [here](https://gitlab.com/bradwood/git-lab-rust/-/releases).\nUntar the file and then copy the included files into place as shown in the below example:\n\n```shell\ncd git_lab_cli-x.y.z-x86_64-unknown-linux-musl\nsudo cp git-lab /usr/local/bin/\nsudo cp man/git-lab.1 /usr/local/share/man/man1/\n```\n\n## Getting started\n\nTo connect the `git-lab` cli binary to a GitLab instance you need to create a Personal Access\nToken. On Gitlab.com this can be done\n[here](https://gitlab.com/profile/personal_access_tokens). Copy the token to your clipboard and\nthen run the following from your home directory:\n\n```shell\ngit lab init\n```\n\nThis will prompt you though entering the required set-up parameters, one of which will require\nyou to paste the GitLab token copied in the previous step into the config. Your default\n`.gitconfig` will then be updated with the information needed to connect `git-lab` to your\nserver. You can also set this config up with vanilla `git config` commands. See `git lab init\n--help` for details on how to do this.\n\nThe easiest way to get started with an existing git repo is to run the following from _within_\nthe repo:\n\n```shell\ngit lab project attach\n```\n\nThis will assoicate the git repo you are working on with a server-side GitLab project by\nlooking at your `origin` git remote. Once this is done, you'll be able to query, create, and\nmodify project-specific objects like GitLab issues, merge-requests, and such like as long as\nyou remain within the repo's subtree.\n\n## Compatibility\n\nThe tool tries to track GitLab.com's latest version pretty closely. Currently GitLab 13.0 and\nabove work but earlier versions do not.\n\n## Contributions\n\nMerge requests are welcome. Please raise a merge request on\n[GitLab](https://gitlab.com/bradwood/git-lab-rust), not GitHub.\n\n\nLicense: MIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbradwood%2Fgit_lab_rust","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbradwood%2Fgit_lab_rust","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbradwood%2Fgit_lab_rust/lists"}