Skip to main content

No project description provided

Project description

Painy

Comments for this repository commits are written with Painy itself.

Star the repository to support the project.

Features

  • Painy is a simple tool which allows you to automatically generate commit messages with the help of OpenAI models. It automatically check the staged changes in your repository and generate a commit message based on the changes.

  • Works well with Jupyter Notebooks (.ipynb files) by using nbdime for diffing.

  • Painy is capable of reviewing past commits and creating new ones that follow the same style.

  • You can add your own rules/requests as additional prompts for model. For example, set maximum number of characters/sentences in the commit message.

  • Interactive mode.

Prerequisites

  • OpenAI API key. You can get one here.

  • Python 3.7.1 or higher and pip package manager.

Installation

  • Install the package via pip:

    pip install painy
    
  • Set the environment variable OPENAI_API_KEY to your OpenAI API key.

  • By default, Painy will use the gpt-3.5-turbo (ChatGPT), if you want to use a different model, set the environment variable OPENAI_MODEL_NAME to the model you want to use. You must have access to the model you want to use.

  • Max context length depends on the model you use. Try to use the tool on not too big changes, ideally on a single file.

Usage

  • (Recommended) Go to the folder with your repository and run the following command:

    • Add something to stage:

      git add <files>
      
    • Then use Painy:

      painy comment
      
    • Or with the environment variable OPENAI_API_KEY set inplace:

      OPENAI_API_KEY=<your-openai-api-key> painy comment
      

      This will generate a commit message based on the staged changes in your repository.

  • Commit staged changes with a generated commit message:

painy commit
  • Interactive mode:
painy <comment|commit> -i

This will generate a commit message based on the staged changes in your repository and will ask you if you want to regenerate the commit message.

  • If you want to generate a commit message for all the changes in your repository, run the following command (this files must be registered in git before in order to have a diff to compare):
painy <comment|commit> --check-all
  • By default the use_commit_history_style is set to True. If you want to disable it, run the following command:

    painy config --set use-commit-history-style False
    
  • To get the actual value of config option run the following command:

    painy config --get use-commit-history-style
    
  • List of options:

    • use_commit_history_style - whether to use the style of the former commits in the repository. By default it is set to false. (Experimental)
    • max_num_commits_style - the maximum number of last commits to use for the style. By default it is set to 5.
    • max_characters (used as a property in one of default rules) - the desired maximum number of characters in the commit message. By default it is set to 100.
  • To get the list of rules run the following command:

    painy rules
    
    • To add a new rule run the following command:

      painy rules --add "Your own rule"
      
    • To remove i-th rule from the list run the following command:

      painy rules --remove <i>
      

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

Painy-0.2.2.tar.gz (14.2 kB view hashes)

Uploaded Source

Built Distribution

Painy-0.2.2-py3-none-any.whl (15.2 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