7 releases

0.1.8 Sep 29, 2024
0.1.7 Sep 28, 2024
0.1.0 Mar 18, 2024

#1915 in Command line utilities

GPL-3.0 license

73KB
2K SLoC


Logo

Revise

Interactive CLI that generate standardized git commit messages

Explore the docs · Report Bug · Request Feature

Overview
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. License

About The Project

Revise is an interactive command-line interface (CLI) tool that generates standardized git commit messages. It allows you to amend and enhance your commit messages, making them more informative and clear.

Demo

Getting Started

Example

To use git-revise, you have the option to create a toml file called revise.toml in the project directory or your local config directory. This file allows you to customize the configuration settings for git-revise. However, it's important to note that you can still use git-revise without creating these files, as it will use the default configuration.

For example, you can configure git-revise by creating a revise.toml file with the following content:

types = [
    { key= "feat", value= "A new feature"},
    { key= "fix", value= "A bug fix"},
    { key= "docs", value= "Documentation only changes"},
    { key= "style", value= "Changes that do not affect the meaning of the code"},
    { key= "refactor", value= "A code change that neither fixes a bug nor adds a feature"},
    { key= "perf", value= "A code change that improves performance"},
    { key= "test", value= "Adding missing tests or correcting existing tests"},
    { key= "build", value= "Changes that affect the build system or external dependencies"},
    { key= "ci", value= "Changes to our CI configuration files and scripts"},
    { key= "chore", value= "Other changes that don't modify src or test files"},
    { key= "revert", value= "Reverts a previous commit"}
]

emojis = [
    { key= "feat", value=""},
    { key= "fix", value="🐛"},
    { key= "docs", value="📚"},
    { key= "style", value="🎨"},
    { key= "refactor", value="♻️"},
    { key= "perf", value="⚡️"},
    { key= "test", value=""},
    { key= "build", value="📦️"},
    { key= "ci", value="🪶"},
    { key= "chore", value="🔨"},
    { key= "revert", value="◀️"}
]

api_key.gemini_key = "{{env}}"

scopes = [
    "revise",
    "config",
    "test",
    "docs"
]

exclude_files = [
    "CHANGELOG.md"
]

template = """
{{commit_icon}} {{ commit_type }}{% if commit_scope %}({{commit_scope}}){% endif %}{% if commit_breaking %}{{commit_breaking_symbol}}{% endif %}: {{ commit_subject }}{% if commit_issue %}({{commit_issue}}){% endif %}   
{% if commit_body %}\n{{ commit_body }}{% endif %}
{% if commit_breaking %}\n{{ commit_breaking }}{% endif %}
"""

[translation]
from = "中文"
to = "English"

[auto]
[auto.git]
add = false
push = false
diff = false
footer = false
[auto.commit]
content = false
footer = false

[hooks]
pre-add = [
    { command = "cargo clippy --fix --allow-dirty --allow-staged", order = 1 },
    { command = "cargo make", order = 2 },
]
post-add = [
    { command = "git status", order = 1 },
]
pre-commit = [
]
post-commit = [
]

Prerequisites

This is an example of how to list things you need to use the software and how to install them.

  • git
  • gemini-api-key

Installation

In order to install, just run the following command

cargo install --force git-revise

This will install git-revise in your ~/.cargo/bin.
Make sure to add ~/.cargo/bin directory to your PATH variable.

Usage

You can use it simply type

git revise

or

git-revise

Roadmap

  • Auto add and show diff
  • AI integrated
    • Auto translate to english
    • Auto generate with git diff
  • More configurable

See the open issues for a full list of proposed features (and known issues).

License

Distributed under the GPL-3.0 License. See LICENSE for more information.

Dependencies

~23–38MB
~614K SLoC