Conventional Commits Generator (CCG)
Author: EgydioBNeto
Description: Interactive CLI tool for creating standardized commit messages following the conventional commits format.

## Main Features

✨

### Interactive CLI

User-friendly interface with interactive prompts for choosing commit types, scopes, and descriptions.

📏

### Conventional Commits

Strictly follows the conventional commits specification for consistent and semantic versioning.

🎨

### Emoji Support

GitHub-compatible emoji codes to make your commits more visual and organized.

✏️

### Commit Management

Edit or delete existing commits with interactive selection and safety checks.

🏷️

### Tag Creation

Create and push annotated or lightweight tags directly from the CLI.

🔄

### Git Integration

Complete Git workflow support including staging, committing, and pushing.

## How It Works

Terminal
$ ccg

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

     Conventional Commits Generator

    Repository: my-project  Branch: main

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

    1. ✨ feat     - A new feature
    2. 🐛 fix      - A bug fix
    3. 🔧 chore    - Routine tasks
    4. 🔨 refactor - Code refactoring
    5. 💄 style    - Style changes
    6. 📚 docs     - Documentation
    7. 🧪 test     - Adding tests
    8. 📦 build    - Build system changes
    9. ⏪ revert   - Reverts a commit
    10. 👷 ci      - CI/CD changes
    11. ⚡ perf    - Performance improvements

    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): y

    ┌──────────────────────┐
    │ 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!

## Installation

1

### Using pipx (recommended)

pipx install conventional-commits-generator
2

### Using pip

pip install conventional-commits-generator
3

### Development Setup

git clone https://github.com/EgydioBNeto/conventional-commits-generator.git
cd conventional-commits-generator
chmod +x scripts/setup_venv.sh
./scripts/setup_venv.sh

## Available Commands

### 🚀 Interactive Commit

ccg

Create a commit with interactive prompts

### 💬 Generate Message Only

ccg --commit

Generate commit message without committing

### 📤 Push Only

ccg --push

Push existing commits to remote

### ✏️ Edit Commit

ccg --edit

Edit an existing commit message

### 🗑️ Delete Commit

ccg --delete

Delete an existing commit

### 🏷️ Create Tag

ccg --tag

Create and push a new tag

### 🔄 Reset Changes

ccg --reset

Discard local changes and pull from remote

### 📁 Specific Paths

ccg --path src/ docs/

Stage specific paths instead of all changes

### ℹ️ Version

ccg --version

Display current CCG version

## Commit Types

### ✨ feat

A new feature for the user or a particular enhancement

### 🐛 fix

A bug fix for the user or a particular issue

### 🔧 chore

Routine tasks, maintenance, or minor updates

### 🔨 refactor

Code refactoring without changing its behavior

### 💄 style

Code style changes, formatting, or cosmetic improvements

### 📚 docs

Documentation-related changes

### 🧪 test

Adding or modifying tests

### 📦 build

Changes that affect the build system or external dependencies

### ⏪ revert

Reverts a previous commit

### 👷 ci

Changes to CI configuration files and scripts

### ⚡ perf

A code change that improves performance

## Requirements

- ✅ Python 3.8 or higher
- ✅ Git installed and configured