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.7.1-x86_64.msiis the installer- Or use winget.
winget install --id feraxhp.grp
- Ubuntu: See releases page for the latest deb package.
wget -O paquete.deb <URL_DEL_PAQUETE>
dpkg sudo dpkg -i paquete.deb
sudo apt-get install -f- 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.
source <(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