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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file gg-0.0.21.tar.gz.

File metadata

  • Download URL: gg-0.0.21.tar.gz
  • Upload date:
  • Size: 22.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Python-urllib/3.8

File hashes

Hashes for gg-0.0.21.tar.gz
Algorithm Hash digest
SHA256 355e693f6b4f64dd13abfa13f8ea0cddd1b875383a4ea342926dcfb03745295e
MD5 81b39bc703ca1009736d49409ea665f0
BLAKE2b-256 a4c91df6a9a41b2a94425bc5fb7c804f5701e8d9efa3145a6e1fcd99a1549352

See more details on using hashes here.

File details

Details for the file gg-0.0.21-py3-none-any.whl.

File metadata

  • Download URL: gg-0.0.21-py3-none-any.whl
  • Upload date:
  • Size: 27.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Python-urllib/3.8

File hashes

Hashes for gg-0.0.21-py3-none-any.whl
Algorithm Hash digest
SHA256 6cc6ee35c286986d8e366422e8c547401cab652f3ab54302da354b6c9ded8289
MD5 9826eb71328cf5357304c40a8f9153f2
BLAKE2b-256 64582d34467ddea77da1ff3f1357e7c88c0fdf7d9f3bca04edb198527fc478bd

See more details on using hashes here.

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