Skip to main content

Automatically generate and commit changes using copilot

Project description

git-copilot-commit

AI-powered Git commit assistant that generates conventional commit messages using GitHub Copilot.

Screenshot of git-copilot-commit in action

Features

  • Generates commit messages based on your staged changes
  • Supports multiple AI models: GPT-4, Claude, Gemini, and more
  • Allows editing of generated messages before committing
  • Follows the Conventional Commits standard

Installation

Install the tool using uv (recommended)

Install uv:

# On macOS and Linux.
curl -LsSf https://astral.sh/uv/install.sh | sh

# On Windows.
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Then install and run git-copilot-commit:

# Install into global isolated environment
uv tool install git-copilot-commit

# Run --help to see available commands
git-copilot-commit --help

Alternatively, you can install and run the latest version of tool directly every time by invoking this one command:

# Install latest version into temporary environment and run --help
uvx git-copilot-commit --help

Install with pipx

If you prefer to use pipx:

pipx install git-copilot-commit

Prerequisites

  • Active GitHub Copilot subscription

Quick Start

  1. Authenticate with GitHub Copilot:

    git-copilot-commit authenticate
    
  2. Make changes in your repository.

  3. Generate and commit:

    git-copilot-commit commit
    # Or, if you want to stage all files and accept the generated commit message, use:
    git-copilot-commit commit --all --yes
    

Usage

Commit changes

$ uvx git-copilot-commit commit --help
Usage: git-copilot-commit commit [OPTIONS]

  Automatically commit changes in the current git repository.

Options:
  -a, --all         Stage all files before committing
  -v, --verbose     Show verbose output
  -m, --model TEXT  Model to use for generating commit message
  -y, --yes         Automatically accept the generated commit message
  --help            Show this message and exit.

Authenticate

$ uvx git-copilot-commit authenticate --help
Usage: git-copilot-commit authenticate [OPTIONS]

  Autheticate with GitHub Copilot.

Options:
  --help  Show this message and exit.

List models

$ uvx git-copilot-commit models --help
Usage: git-copilot-commit models [OPTIONS]

  List models available for chat in a table.

Options:
  --help  Show this message and exit.

Configure

$ uvx git-copilot-commit config --help
Usage: git-copilot-commit config [OPTIONS]

  Manage application configuration.

Options:
  --set-default-model TEXT  Set default model for commit messages
  --show                    Show current configuration
  --help                    Show this message and exit.

Examples

Commit all changes:

git-copilot-commit commit --all

Verbose output:

git-copilot-commit commit --verbose

Use a specific model:

git-copilot-commit commit --model claude-3.5-sonnet

Set and use a default model:

git-copilot-commit config --set-default-model gpt-4o
git-copilot-commit commit
git-copilot-commit commit --model claude-3.5-sonnet

Commit Message Format

Follows Conventional Commits:

<type>[optional scope]: <description>

Types:

  • feat: New feature
  • fix: Bug fix
  • docs: Documentation
  • style: Formatting only
  • refactor: Code restructure
  • perf: Performance
  • test: Tests
  • chore: Maintenance
  • revert: Revert changes

Git Configuration

Add a git alias by adding the following to your ~/.gitconfig:

[alias]
    ai-commit = "!f() { uvx git-copilot-commit commit $@; }; f"

Now you can run:

git ai-commit
git ai-commit --all --verbose
git ai-commit --model claude-3.5-sonnet

Additionally, show more context in diffs by running the following command:

git config --global diff.context 3

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_copilot_commit-0.1.15.tar.gz (21.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

git_copilot_commit-0.1.15-py3-none-any.whl (12.5 kB view details)

Uploaded Python 3

File details

Details for the file git_copilot_commit-0.1.15.tar.gz.

File metadata

  • Download URL: git_copilot_commit-0.1.15.tar.gz
  • Upload date:
  • Size: 21.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.0

File hashes

Hashes for git_copilot_commit-0.1.15.tar.gz
Algorithm Hash digest
SHA256 b1bb437143da37fe274a1107d0df335e3f53f2e94fda9d3311cef66c151192ea
MD5 77895a2cab8afb25802aaf367d336a53
BLAKE2b-256 c96b3ce6003de3f501b59bf9f6efc270513ca0b3abbd0900c473b8d274620e58

See more details on using hashes here.

File details

Details for the file git_copilot_commit-0.1.15-py3-none-any.whl.

File metadata

File hashes

Hashes for git_copilot_commit-0.1.15-py3-none-any.whl
Algorithm Hash digest
SHA256 8ba9311b2e7d48e4625447cd89d0b3a04c6dec6e0cd6d35e0e7520c2b7fe86f0
MD5 fd7d9f6b5dde3a348de351a8100a8e87
BLAKE2b-256 d1b9aae48257173ab1b13c1a88c8e9f5bc10fe6f5d1b100fd3090edc034715d7

See more details on using hashes here.

Supported by

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