Skip to main content

Git and GitHub for the productivity addicted

Project description

https://github.com/peterbe/gg/workflows/Python/badge.svg https://badge.fury.io/py/gg.svg

Git and GitHub command line swiss army knife for the productivity addicted.

gg is a base command, and all the work to create branches, list branches, clean up branches, connect to Bugzilla etc. are done by plugins.

gg is stateful. Meaning, plugins (not all!) need to store additional information that is re-used for other commands. For example, to connect to your GitHub account might need to store a GitHub Access Token.

Installation

gg requires Python 3.

The idea is that you install gg globally:

sudo pip install gg

But that’s optional, you can also just install it in your current virtual environment:

pip install gg

If you don’t want to install gg and its dependencies in either the current working virtual environment or in your global system Python, you can first install pipx then once you’ve installed and set that up:

pipx install gg

Next, you need to install some plugins. See PLUGINS.rst for a list of available plugins.

Bash completion

First download gg-complete.sh and save it somewhere on your computer. Then put this line into your .bashrc (or .bash_profile if you’re on OSX):

source /path/to/gg-complete.sh

How to develop

To work on this, first run:

pip install -U --editable .

Now you can type:

gg --help

If you have install more plugins they will be listed under the same --help command.

Linting

This project tracks black and expects all files to be as per how black wants them. Please see its repo for how to set up automatic formatting.

All code needs to be flake8 conformant. See setup.cfg for the rules.

To test both, run:

tox -e lint

How to write a plugin

To write your own custom plugin, (similar to gg/builtins/commands/commit) these are the critical lines you need to you have in your setup.py:

setup(
    ...
    install_requires=['gg'],
    entry_points="""
        [gg.plugin]
        cli=gg_myplugin:start
    """,
    ...
)

This assumes you have a file called gg_myplugin.py that has a function called start.

Version History

0.1
  • Proof of concept

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gg-0.0.21.tar.gz (22.9 kB view hashes)

Uploaded Source

Built Distribution

gg-0.0.21-py3-none-any.whl (27.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page