grp (git repository)
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.
Features
- New: 🎉
- Supported: ✅
- Planed support: 🟥
- On development: 🔶
- Not available on the platform: 🟪
Repositories
| Feature | GitHub | Gitea | Codeberg | Forgejo | GitLab | Azure DevOps |
|---|---|---|---|---|---|---|
| List | ✅ | ✅ | ✅ | ✅ | ✅ | 🟥 |
| Create | ✅ | ✅ | ✅ | ✅ | ✅ | 🟥 |
| Delete | ✅ | ✅ | ✅ | ✅ | ✅ | 🟥 |
Organizations
| Feature | GitHub | Gitea | Codeberg | Forgejo | GitLab | Azure DevOps |
|---|---|---|---|---|---|---|
| List | ✅ | ✅ | ✅ | ✅ | ✅ | 🟪 |
| Create | 🟪1 |
✅ | ✅ | ✅ | ✅2 |
🟪 |
| Delete | ✅ | ✅ | ✅ | ✅ | ✅3 |
🟪 |
git integrations
[!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
Installation
- 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.
- Ubuntu: See releases page for the latest deb package.
- fedora: See releases page for the latest rpm package.
- Arch Linux: See build instructions below.
- Other Linux distributions: See build instructions below.
- MacOS: See build instructions below.
Completions
bash
zsh
fish
COMPLETE=fish |
Configuration
The 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:
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:
Build and Run
Dependencies
Make sure you have the following dependencies installed on your system:
-
dependencies
- Cargo (Rust)
Build
# clone the repository
# if you want to install it on your system
* 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
Need more Functionality?
If you need more functionality, feel free to open an issue or a pull request. remember to follow the contribution guidelines