girep is a command line tool that helps you manage your git repositories in the cloud, for difrent platforms. It is written in Rust, and it is inspired by gcli.
- New: π
- Supported: β
- Planed support: π₯
- On development: πΆ
- Not available on the platform: πͺ
| Feature | GitHub | Gitea | Codeberg | Forgejo | GitLab | Azure DevOps |
|---|---|---|---|---|---|---|
| List | β | β | β | β | β | π₯ |
| Create | β | β | β | β | β | π₯ |
| Delete | β | β | β | β | β | π₯ |
| Feature | GitHub | Gitea | Codeberg | Forgejo | GitLab | Azure DevOps |
|---|---|---|---|---|---|---|
| List | β | β | β | β | β | πͺ |
| Create | πͺ1 |
β | β | β | β
2 |
πͺ |
| Delete | β | β | β | β | β
3 |
πͺ |
Tip
The git integrations supports any platform that allows you to send oAuth credentials
- β
Clone
- bare
- branch
- url clone This is how to clone any platform
- repo_structure base clone example
gh:feraxhp/grp
- β
Push
- tags
- branches
- force
- all
- dry-run
- set-upstream
- β
Pull
- force: Overrides any local code
- rebase: Do a
git pull rebase - dry-run
- set-upstream
- β Fetch
- Windows: Download the latest .exe from the releases page.
grp.exeis the portable versiongrp-0.11.0-x86_64.msiis the installer- Or use winget.
winget install --id feraxhp.grp
- Ubuntu: See releases page for the latest deb package.
- fedora: See releases page for the latest rpm package.
sudo dnf install <URL_DEL_PAQUETE>- Arch Linux: See build instructions below.
- Other Linux distributions: See build instructions below.
- MacOS: See build instructions below.
- Cargo:
cargo install girep --version 0.11.0-betasource <(COMPLETE=bash grp)source <(COMPLETE=zsh grp)COMPLETE=fish grp | sourceThe grp configurations are store in json. the first time you run grp, it will create the configurations file with the base config.
if you prefer a gide configuration use: grp config add
the location of the config folder depends on the platform
- linux:
$HOME/.config/girep/config.json - windows
%appdata%/girep/config.json - mac:
$HOME/Library/Application Support/girep/config.json
the basic structure looks like this:
{
"default": "",
"pconf": []
}grp manage the platforms in objets called pcofs. in every pconf you have to add
- name: Is the name for the pconf, it is used to determine the platform.
- owner: Is the username that will use by default to request in the platform.
- token: Is a user generated token used to authenticate the request.
- type: type of the platform. currently allows
github,giteaandgitlab. - endpoint: the endpoint to make the request
- examples:
"api.github.com": for GitHub."gitea.com": for Gitea."tea.example.com": for Gitea on custom host.localhost:3244: for gitea on localhost.
- examples:
here is an example for a complete config file:
{
"default": "gh",
"pconf": [
{
"name": "gh",
"owner": "feraxhp",
"token": "<token generated>",
"type": "github",
"endpoint": "api.github.com"
},
{
"name": "tea",
"owner": "feraxhp",
"token": "<token generated>",
"type": "gitea",
"endpoint": "tea.example.com"
},
{
"name": "glab",
"owner": "feraxhp",
"token": "<token generated>",
"type": "gitlab",
"endpoint": "gitlab.example.com"
}
]
}Make sure you have the following dependencies installed on your system:
- Cargo (Rust)
# clone the repository
git clone https://github.com/feraxhp/grp.git
cd grp
# if you want to install it on your system
cargo install --path .* Jetbrains has removed access for Jetbrains space So, is removed for the planed support.
1 Github does not allow create orgs by the API for security reasons
2 Some GitLab admins not allow create groups by the API for security reasons, however for sub-groups yes.
3 Delete for GitLab has an aditional step, so if you whant to just mark for delition something you have to add the flag --soft
If you need more functionality, feel free to open an issue or a pull request. remember to follow the contribution guidelines