Skip to main content

Add commands to simplify release and publish operation from Git CLI.

Project description

Git Improved

Python package to add helpful git commands.

Installation

This package is available from PyPI

It can be installed using

pip install git-improved

Additional commands

git template install [-h] [--branch BRANCH] [--user USER] [--token TOKEN] alias origin

Install a template from a remote git repository.

positional arguments:

  • alias: the name you want to use locally to reference this template
  • origin: url of the repository where target template is hosted

optional arguments:

  • --branch BRANCH: branch of the repo containing the template (default: main)
  • --user USER: username used to autenticate if required
  • --token TOKEN: pass a token or password to authenticate if required

git template list [-h] [search]

List available templates.

positional arguments:

  • search: (optional) python-style regex that can be used to filter output

git template update [-h] [-v] [templates [templates ...]]

Pull last version of the template from its git repository.

positional arguments:

  • templates: (optional) if you pass a list of templates, only these templates will be updated...

optional arguments:

  • --verbose: display additional informations concerning updated templates...

git template rm [-h] templates [templates ...]

Remove templates

positional arguments:

  • templates: alias(es) of the template(s) to remove

git setup --template <template_alias> DIRECTORY

Initialize project structure.

  • template_alias: alias of the template used to initialize project structure.
  • directory: path to the folder where project must be initialized. (may be . for current folder)

git wip [category] [description]

Create a branch to work on something.

  • Branch has a category that describe kind of work. (e.g. Feature, CI/CD, Documentation, ...)
  • Description explain what happens on this branch. If not passed, it is prompted.

git done

Merge current branch in main branch.

  • Update [unreleased] section of changelog to reflect changes from current branch
  • Merge current branch into main in a single commit (contains description of squashed commits)

git cancel
  • Without arguments: Delete current branch from local and remote.
  • With -i option: Prompt names of multiple branches to delete

git release [--version VERSION | --patch | --minor | --major]

Deploy a new release for current project.

  • Increment version in all files it is referenced (configure in setup.cfg)
  • Replace [unreleased] section of changelog with new version.
  • Create a file in docs/releases to document this release.

git unrelease [-i] [version]

Delete a release from GitHub.

  • You can pass the version of the release to delete (or a coma separated list of versions)
  • Otherwise, use -i option to be prompted for versions to delete.
  • You can't pass both version and -i flag.

RoadMap

Must

  • Handle changelog/squash message generation when more than one section is changed
  • Add roadmap/assign commands to avoid many people working on same feature
  • Display a warning in save command if working on main branch
    • Propose to create a wip branch from current changes to avoid commiting directly...
    • Add an option to reset X last commits from main, put them on a branch, an perform magic merge.
  • Add an empty github action that run on unrelease. (can be used to remove packages from registries when tag is deleted)

Should

  • Study interesting uses cases of a rollback command that cancel changes introduced by a commit
  • Improve save command by adding an interactive mode to select staged files
  • Add a --no-changelog option to done command that indicates to not update changelog on merge.

Could

  • Define a message syntax that indicates that a commit don't go in changelog (e.g prefix with ;)
  • Require user to be logged into git using a token.
  • Then retrieve author information from github to put in changelog

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

git-improved-0.1.5.tar.gz (17.4 kB view details)

Uploaded Source

Built Distribution

git_improved-0.1.5-py3-none-any.whl (21.0 kB view details)

Uploaded Python 3

File details

Details for the file git-improved-0.1.5.tar.gz.

File metadata

  • Download URL: git-improved-0.1.5.tar.gz
  • Upload date:
  • Size: 17.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.55.1 CPython/3.9.1

File hashes

Hashes for git-improved-0.1.5.tar.gz
Algorithm Hash digest
SHA256 17194a32df1de25afc0cbc638292bf95d9ee41005ae92f641bc79906e44c4c70
MD5 2d51198e15b939d38f37f2246ef281d0
BLAKE2b-256 9b8f77bf86d31f63f7fbdf4c7d5d393d61cc56cf7ced506007e9f7e438d6f6c8

See more details on using hashes here.

File details

Details for the file git_improved-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: git_improved-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 21.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.55.1 CPython/3.9.1

File hashes

Hashes for git_improved-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 43e411d3c9f138b84207c5a15c1af6d9638e5bd6d3c827b99671ef4d115ebbde
MD5 18295aa6712d287b4df138da99931a6f
BLAKE2b-256 9dd12eb4cede105f0da651d047415467a0d629acf021519bbf0ab9764913942a

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