tgit


Nametgit JSON
Version 0.22.0 PyPI version JSON
download
home_pageNone
SummaryTool for Git Interaction Temptation (tgit): An elegant CLI tool that simplifies and streamlines your Git workflow, making version control a breeze.
upload_time2025-07-15 16:38:56
maintainerNone
docs_urlNone
authorNone
requires_python>=3.11
licenseNone
keywords changelog commit git tool version
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 🚀 TGIT - Tool for Git Interaction Temptation

[![CodeTime Badge](https://img.shields.io/endpoint?style=social&color=222&url=https%3A%2F%2Fapi.codetime.dev%2Fshield%3Fid%3D2%26project%3Dtgit%26in=0)](https://codetime.dev)
[![PyPI version](https://badge.fury.io/py/tgit.svg)](https://badge.fury.io/py/tgit)
[![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

An elegant CLI tool that simplifies and streamlines your Git workflow with AI-powered commit messages, automated changelog generation, and intelligent version management.

## ✨ Features

### 🤖 AI-Powered Commits

- Generate conventional commit messages automatically using OpenAI
- Smart diff analysis that focuses on meaningful changes
- Support for custom commit types and emojis
- Breaking change detection

### 📝 Automated Changelog

- Generate beautiful, structured changelogs from conventional commits
- Group commits by type with emoji categorization
- Support for multiple output formats
- Automatic git remote URL detection for commit links

### 🔢 Intelligent Version Management

- Semantic versioning with pre-release support
- Support for multiple project files (package.json, pyproject.toml, Cargo.toml, etc.)
- Automatic version bumping based on commit history
- Git tagging integration

### ⚙️ Flexible Configuration

- Global and workspace-specific settings
- YAML-based configuration files
- Interactive settings management
- Customizable commit types and emojis

## 🚀 Quick Start

### Installation

```bash
pip install tgit
```

### Basic Usage

```bash
# AI-powered commit with automatic message generation
tgit commit

# Generate changelog for current version
tgit changelog

# Bump version and generate changelog
tgit version

# Interactive settings configuration
tgit settings
```

### Configuration

The easiest way to configure TGIT is through the interactive settings command:

```bash
# Interactive configuration - recommended!
tgit settings
```

This will guide you through setting up:

- OpenAI API key for AI-powered commits
- Preferred AI model (gpt-4, gpt-3.5-turbo, etc.)
- Commit emoji preferences
- Custom commit types

Alternatively, you can manually create a `.tgit.yaml` file in your project root or `~/.tgit.yaml` for global settings:

```yaml
apiKey: "your-openai-api-key"
model: "gpt-4"
commit:
  emoji: true
  types:
    - type: "feat"
      emoji: "✨"
    - type: "fix"
      emoji: "🐛"
```

## 📖 Commands

### Commit

```bash
# AI-powered commit
tgit commit 

# Breaking change commit
tgit commit --breaking "remove deprecated api"
```

### Changelog

```bash
# Generate changelog for current version
tgit changelog

# Generate changelog from specific version
tgit changelog --from v1.0.0

# Generate changelog to specific version
tgit changelog --to v2.0.0
```

### Version

```bash
# Interactive version bump
tgit version

# Bump specific version type
tgit version --patch
tgit version --minor
tgit version --major

# Pre-release version
tgit version --prerelease alpha
```

### Settings

```bash
# Interactive settings configuration
tgit settings

# Show current settings
tgit settings --show
```

## 🛠️ Development

### Setup

```bash
# Clone the repository
git clone https://github.com/Jannchie/tgit.git
cd tgit

# Install with uv
uv pip install -e .

# Install development dependencies
uv pip install -e ".[dev]"
```

### Testing

```bash
# Run all tests
./scripts/test.sh

# Run with coverage
./scripts/test.sh --coverage 90

# Run specific test types
./scripts/test.sh --unit
./scripts/test.sh --integration
```

### Code Quality

```bash
# Run linting
ruff check .

# Run formatting
ruff format .

# Build package
uv build
```

## 📄 License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## 🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

## 📞 Support

If you encounter any problems or have suggestions, please [open an issue](https://github.com/Jannchie/tgit/issues) on GitHub.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "tgit",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": null,
    "keywords": "changelog, commit, git, tool, version",
    "author": null,
    "author_email": "Jannchie <jannchie@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/e2/68/c616408147c34359a962743a11ee7bf9b2aa4de3f7c12cc6e7860db014f4/tgit-0.22.0.tar.gz",
    "platform": null,
    "description": "# \ud83d\ude80 TGIT - Tool for Git Interaction Temptation\n\n[![CodeTime Badge](https://img.shields.io/endpoint?style=social&color=222&url=https%3A%2F%2Fapi.codetime.dev%2Fshield%3Fid%3D2%26project%3Dtgit%26in=0)](https://codetime.dev)\n[![PyPI version](https://badge.fury.io/py/tgit.svg)](https://badge.fury.io/py/tgit)\n[![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nAn elegant CLI tool that simplifies and streamlines your Git workflow with AI-powered commit messages, automated changelog generation, and intelligent version management.\n\n## \u2728 Features\n\n### \ud83e\udd16 AI-Powered Commits\n\n- Generate conventional commit messages automatically using OpenAI\n- Smart diff analysis that focuses on meaningful changes\n- Support for custom commit types and emojis\n- Breaking change detection\n\n### \ud83d\udcdd Automated Changelog\n\n- Generate beautiful, structured changelogs from conventional commits\n- Group commits by type with emoji categorization\n- Support for multiple output formats\n- Automatic git remote URL detection for commit links\n\n### \ud83d\udd22 Intelligent Version Management\n\n- Semantic versioning with pre-release support\n- Support for multiple project files (package.json, pyproject.toml, Cargo.toml, etc.)\n- Automatic version bumping based on commit history\n- Git tagging integration\n\n### \u2699\ufe0f Flexible Configuration\n\n- Global and workspace-specific settings\n- YAML-based configuration files\n- Interactive settings management\n- Customizable commit types and emojis\n\n## \ud83d\ude80 Quick Start\n\n### Installation\n\n```bash\npip install tgit\n```\n\n### Basic Usage\n\n```bash\n# AI-powered commit with automatic message generation\ntgit commit\n\n# Generate changelog for current version\ntgit changelog\n\n# Bump version and generate changelog\ntgit version\n\n# Interactive settings configuration\ntgit settings\n```\n\n### Configuration\n\nThe easiest way to configure TGIT is through the interactive settings command:\n\n```bash\n# Interactive configuration - recommended!\ntgit settings\n```\n\nThis will guide you through setting up:\n\n- OpenAI API key for AI-powered commits\n- Preferred AI model (gpt-4, gpt-3.5-turbo, etc.)\n- Commit emoji preferences\n- Custom commit types\n\nAlternatively, you can manually create a `.tgit.yaml` file in your project root or `~/.tgit.yaml` for global settings:\n\n```yaml\napiKey: \"your-openai-api-key\"\nmodel: \"gpt-4\"\ncommit:\n  emoji: true\n  types:\n    - type: \"feat\"\n      emoji: \"\u2728\"\n    - type: \"fix\"\n      emoji: \"\ud83d\udc1b\"\n```\n\n## \ud83d\udcd6 Commands\n\n### Commit\n\n```bash\n# AI-powered commit\ntgit commit \n\n# Breaking change commit\ntgit commit --breaking \"remove deprecated api\"\n```\n\n### Changelog\n\n```bash\n# Generate changelog for current version\ntgit changelog\n\n# Generate changelog from specific version\ntgit changelog --from v1.0.0\n\n# Generate changelog to specific version\ntgit changelog --to v2.0.0\n```\n\n### Version\n\n```bash\n# Interactive version bump\ntgit version\n\n# Bump specific version type\ntgit version --patch\ntgit version --minor\ntgit version --major\n\n# Pre-release version\ntgit version --prerelease alpha\n```\n\n### Settings\n\n```bash\n# Interactive settings configuration\ntgit settings\n\n# Show current settings\ntgit settings --show\n```\n\n## \ud83d\udee0\ufe0f Development\n\n### Setup\n\n```bash\n# Clone the repository\ngit clone https://github.com/Jannchie/tgit.git\ncd tgit\n\n# Install with uv\nuv pip install -e .\n\n# Install development dependencies\nuv pip install -e \".[dev]\"\n```\n\n### Testing\n\n```bash\n# Run all tests\n./scripts/test.sh\n\n# Run with coverage\n./scripts/test.sh --coverage 90\n\n# Run specific test types\n./scripts/test.sh --unit\n./scripts/test.sh --integration\n```\n\n### Code Quality\n\n```bash\n# Run linting\nruff check .\n\n# Run formatting\nruff format .\n\n# Build package\nuv build\n```\n\n## \ud83d\udcc4 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## \ud83e\udd1d Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.\n\n## \ud83d\udcde Support\n\nIf you encounter any problems or have suggestions, please [open an issue](https://github.com/Jannchie/tgit/issues) on GitHub.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Tool for Git Interaction Temptation (tgit): An elegant CLI tool that simplifies and streamlines your Git workflow, making version control a breeze.",
    "version": "0.22.0",
    "project_urls": null,
    "split_keywords": [
        "changelog",
        " commit",
        " git",
        " tool",
        " version"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "302ad7515142d04482e8d02a9bed266640d613eaebac379bb48de38e888c6bf1",
                "md5": "8e0d41651cf577601c70dd8c7c01e1f7",
                "sha256": "a6aa59253cb036cfc2b48307f5dee9537a35ed8ffb58fc6e1929aeefa4d4a17c"
            },
            "downloads": -1,
            "filename": "tgit-0.22.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "8e0d41651cf577601c70dd8c7c01e1f7",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 26932,
            "upload_time": "2025-07-15T16:38:54",
            "upload_time_iso_8601": "2025-07-15T16:38:54.833233Z",
            "url": "https://files.pythonhosted.org/packages/30/2a/d7515142d04482e8d02a9bed266640d613eaebac379bb48de38e888c6bf1/tgit-0.22.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e268c616408147c34359a962743a11ee7bf9b2aa4de3f7c12cc6e7860db014f4",
                "md5": "08c9f8c5935de48c71107abc016bb5cd",
                "sha256": "ebf23a1c42edf1ac7a980db0509e41fcbf6afeb6c389039edf8363db7d8abbcd"
            },
            "downloads": -1,
            "filename": "tgit-0.22.0.tar.gz",
            "has_sig": false,
            "md5_digest": "08c9f8c5935de48c71107abc016bb5cd",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 91752,
            "upload_time": "2025-07-15T16:38:56",
            "upload_time_iso_8601": "2025-07-15T16:38:56.410882Z",
            "url": "https://files.pythonhosted.org/packages/e2/68/c616408147c34359a962743a11ee7bf9b2aa4de3f7c12cc6e7860db014f4/tgit-0.22.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-15 16:38:56",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "tgit"
}
        
Elapsed time: 1.73593s