Metadata-Version: 2.4
Name: conventional-commits-generator
Version: 2.2.5
Summary: Interactive CLI tool for creating standardized commit messages following conventional commits
Project-URL: Homepage, https://github.com/EgydioBNeto/conventional-commits-generator
Project-URL: Repository, https://github.com/EgydioBNeto/conventional-commits-generator
Project-URL: Issues, https://github.com/EgydioBNeto/conventional-commits-generator/issues
Project-URL: Changelog, https://github.com/EgydioBNeto/conventional-commits-generator/releases
Author-email: Egydio Bolonhezi <egydiobolonhezi@gmail.com>
License: MIT License
        
        Copyright (c) 2025 Egydio Bolonhezi
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions: 
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
License-File: LICENSE
Keywords: cli,commit,conventional-commits,developer-tools,git
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Version Control :: Git
Classifier: Topic :: Utilities
Requires-Python: >=3.8
Requires-Dist: prompt-toolkit>=3.0.20
Provides-Extra: dev
Requires-Dist: pre-commit>=3.5.0; extra == 'dev'
Requires-Dist: prompt-toolkit>=3.0.20; extra == 'dev'
Description-Content-Type: text/markdown

# Conventional Commits Generator

<div align="center">
<img src="https://github.com/EgydioBNeto/conventional-commits-generator/assets/84047984/53f38934-16bb-40f6-aff7-a5800c4bd706" width="300px"/>
</div>

## Description

Interactive CLI tool for creating standardized commit messages following the [conventional commits](https://www.conventionalcommits.org/) format. Includes support for commit body, emojis, and advanced commit management features.

## Installation

### Using pipx (recommended)
```bash
pipx install conventional-commits-generator
```

### Using pip
```bash
pip install conventional-commits-generator
```

### Development installation
```bash
# Clone the GitHub repository
git clone https://github.com/EgydioBNeto/conventional-commits-generator.git

# Navigate into the project directory
cd conventional-commits-generator

# Grant execute permission to the virtual environment setup script
chmod +x scripts/setup_venv.sh

# Run the script to create and set up the virtual environment
./scripts/setup_venv.sh

# Activate the virtual environment
source .venv/bin/activate
```

## Usage

### Basic commands

```bash
# Create interactive commit
ccg

# Generate commit message without committing
ccg --commit

# Push only without creating commit
ccg --push

# Edit existing commit
ccg --edit

# Delete existing commit
ccg --delete

# Create and push tag
ccg --tag

# Reset local and pull from remote
ccg --reset

# Stage specific files or directories
ccg --path src/ tests/

# Work in a different repository directory
ccg --path /path/to/repo

# Combine --path with other flags
ccg --path /path/to/repo --push

# Show version
ccg --version
```

### Interactive usage example

```
$ ccg

 ________      ________      ________
|\   ____\    |\   ____\    |\   ____\
\ \  \___|    \ \  \___|    \ \  \___|
 \ \  \        \ \  \        \ \  \  ___
  \ \  \____    \ \  \____    \ \  \|\  \
   \ \_______\   \ \_______\   \ \_______\
    \|_______|    \|_______|    \|_______|

 Conventional Commits Generator

Repository: my-project  Branch: main

┌──────────────────────┐
│ Commit Types         │
└──────────────────────┘

1. ✨ feat     - A new feature
2. 🐛 fix      - A bug fix
3. 🔧 chore    - Maintenance tasks
4. ♻️ refactor - Code refactoring
5. 💄 style    - Style changes
6. 📚 docs     - Documentation
...

Choose the commit type: 1

┌──────────────────────┐
│ Scope                │
└──────────────────────┘
Enter the scope (optional): auth

┌──────────────────────┐
│ Breaking Change      │
└──────────────────────┘
Is this a BREAKING CHANGE? (y/N): n

┌──────────────────────┐
│ Emoji                │
└──────────────────────┘
Include emoji in commit message? (Y/n): n

┌──────────────────────┐
│ Commit Message       │
└──────────────────────┘
Enter the commit message: implement OAuth login

┌──────────────────────┐
│ Commit Body          │
└──────────────────────┘
Commit body (optional): Added Google OAuth 2.0 support
Integration with existing user system

┌──────────────────────┐
│ Review               │
└──────────────────────┘
Commit: feat(auth): implement OAuth login

Body:
Added Google OAuth 2.0 support
Integration with existing user system

Confirm this commit message? (Y/n): y
✓ Commit message confirmed!

┌──────────────────────┐
│ Push Changes         │
└──────────────────────┘
Do you want to push these changes? (Y/n): y
✓ Changes pushed successfully!
```

## Commit Types

| Type | Emoji | Description |
|------|-------|-------------|
| `feat` | ✨ | A new feature |
| `fix` | 🐛 | A bug fix |
| `chore` | 🔧 | Maintenance tasks |
| `refactor` | ♻️ | Code refactoring |
| `style` | 💄 | Style/formatting changes |
| `docs` | 📚 | Documentation changes |
| `test` | 🧪 | Adding or modifying tests |
| `build` | 📦 | Build system changes |
| `revert` | ⏪ | Reverts a previous commit |
| `ci` | 👷 | CI/CD changes |
| `perf` | ⚡ | Performance improvements |

## Requirements

- Python 3.8+
- Git

## Contributing

See [CONTRIBUTING.md](.github/CONTRIBUTING.md) for details on how to contribute.

## Code of Conduct

Please read our [Code of Conduct](.github/CODE_OF_CONDUCT.md) for details on our community standards.

## Security

To report security vulnerabilities, see [SECURITY.md](.github/SECURITY.md).

## License

This project is licensed under the [MIT License](LICENSE).

## Author

[EgydioBNeto](https://github.com/EgydioBNeto)
