zigcBenx / githappens

CLI tool for faster⚡ managing issues and merge requests on gitlab
MIT License
3 stars 2 forks source link

GitHappens⚡

Githappens is a powerful and versatile open-source command-line interface (CLI) tool designed to streamline your GitLab workflow.
Whether you're managing one project or several, this tool offers a range of features to make issue and merge request management a breeze.
- ChatGPT

Getting started 🚀

Installation 🔨

Preresequisits

Setup

Setup configs

To run gitHappens script anywhere in filesystem, make sure to create an alias. Add following line to your .bashrc or .zshrc file alias gh='python3 ~/<path-to-githappens-project>/gitHappens.py'

Run source ~/.zshrc or restart terminal.

Usage ⚡

Project selection

Issue creation for multiple projects at once

This feature is useful if you have to create issue on both backend and frontend project for same thing.

Milestone selection

Milestone is set to current by default. If you want to pick it manually, pass -m or --milestone flag to the script.

Issue templates

Issue templates are located in configs/templates.json.

Make sure that names of templates are unique

Excluding features

If you don't want to include some settings you use following flags:

Only issue

If you are in a hurry and want to create issue for later without merge request and branch this flag is for you.

Open merge request in browser

You can open merge request for current checked out branch in browser with command:

gh open

Git review

You can set default reviewers in templates.json file.

...
{
  "templates": [
    ...
  ],
  ...
  "reviewers": [234, 456, 678]
}
...

To submit merge request into review run command:

gh review

Flag help

If you run just gh (or whatever alias you set) or gh --help you will see all available flags and a short explanation.

Contributing 🫂

Every contributor is welcome. I suggest checking Gitlab's official API documentation: https://docs.gitlab.com/ee/api/merge_requests.html

Donating

Make sure to check this project on OpenPledge.