Skip to content
/ grp Public

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. This repository was created with itself, how exiting! (git cli) (GitHub cli) (gitea cli) (command tool) (for windows) (for linux)

License

Notifications You must be signed in to change notification settings

feraxhp/grp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

205 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

grp (git repository)

.github/workflows/Releases.yml WinGet Package Version

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.exe is the portable version
    • grp-0.11.0-x86_64.msi is 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-beta

Completions

bash

source <(COMPLETE=bash grp)

zsh

source <(COMPLETE=zsh grp)

fish

COMPLETE=fish grp | source

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:

{
  "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, gitea and gitlab.
  • 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.

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"
    }
  ]
}

Build and Run

Dependencies

Make sure you have the following dependencies installed on your system:

Build

# 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


Need more Functionality?

If you need more functionality, feel free to open an issue or a pull request. remember to follow the contribution guidelines

About

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. This repository was created with itself, how exiting! (git cli) (GitHub cli) (gitea cli) (command tool) (for windows) (for linux)

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Languages