gac 2.3.0__py3-none-any.whl → 2.7.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of gac might be problematic. Click here for more details.

gac/workflow_utils.py CHANGED
@@ -5,6 +5,8 @@ from pathlib import Path
5
5
  import click
6
6
  from rich.console import Console
7
7
 
8
+ from gac.constants import EnvDefaults
9
+
8
10
  logger = logging.getLogger(__name__)
9
11
  console = Console()
10
12
 
@@ -57,13 +59,14 @@ def handle_confirmation_loop(
57
59
  return ("regenerate", commit_message, conversation_messages)
58
60
 
59
61
 
60
- def execute_commit(commit_message: str, no_verify: bool) -> None:
62
+ def execute_commit(commit_message: str, no_verify: bool, hook_timeout: int | None = None) -> None:
61
63
  from gac.git import run_git_command
62
64
 
63
65
  commit_args = ["commit", "-m", commit_message]
64
66
  if no_verify:
65
67
  commit_args.append("--no-verify")
66
- run_git_command(commit_args)
68
+ effective_timeout = hook_timeout if hook_timeout and hook_timeout > 0 else EnvDefaults.HOOK_TIMEOUT
69
+ run_git_command(commit_args, timeout=effective_timeout)
67
70
  logger.info("Commit created successfully")
68
71
  console.print("[green]Commit created successfully[/green]")
69
72
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gac
3
- Version: 2.3.0
3
+ Version: 2.7.0
4
4
  Summary: LLM-powered Git commit message generator with multi-provider support
5
5
  Project-URL: Homepage, https://github.com/cellwebb/gac
6
6
  Project-URL: Documentation, https://github.com/cellwebb/gac#readme
@@ -41,6 +41,9 @@ Requires-Dist: twine; extra == 'dev'
41
41
  Description-Content-Type: text/markdown
42
42
 
43
43
  <!-- markdownlint-disable MD013 -->
44
+ <!-- markdownlint-disable MD033 MD036 -->
45
+
46
+ <div align="center">
44
47
 
45
48
  # 🚀 Git Auto Commit (gac)
46
49
 
@@ -50,9 +53,11 @@ Description-Content-Type: text/markdown
50
53
  [![codecov](https://codecov.io/gh/cellwebb/gac/branch/main/graph/badge.svg)](https://app.codecov.io/gh/cellwebb/gac)
51
54
  [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
52
55
  [![mypy](https://img.shields.io/badge/mypy-checked-blue.svg)](https://mypy-lang.org/)
53
- [![Contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg)](docs/CONTRIBUTING.md)
56
+ [![Contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg)](docs/en/CONTRIBUTING.md)
54
57
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
55
58
 
59
+ **English** | [简体中文](docs/zh-CN/README.md) | [繁體中文](docs/zh-TW/README.md) | [日本語](docs/ja/README.md) | [한국어](docs/ko/README.md) | [हिन्दी](docs/hi/README.md) | [Tiếng Việt](docs/vi/README.md) | [Français](docs/fr/README.md) | [Русский](docs/ru/README.md) | [Español](docs/es/README.md) | [Português](docs/pt/README.md) | [Norsk](docs/no/README.md) | [Svenska](docs/sv/README.md) | [Deutsch](docs/de/README.md) | [Nederlands](docs/nl/README.md) | [Italiano](docs/it/README.md)
60
+
56
61
  **LLM-powered commit messages that understand your code!**
57
62
 
58
63
  **Automate your commits!** Replace `git commit -m "..."` with `gac` for contextual, well-formatted commit messages generated by large language models!
@@ -67,12 +72,16 @@ Intelligent, contextual messages that explain the **why** behind your changes:
67
72
 
68
73
  ---
69
74
 
75
+ </div>
76
+
77
+ <!-- markdownlint-enable MD033 MD036 -->
78
+
70
79
  ## Quick Start
71
80
 
72
81
  ### Use gac without installing
73
82
 
74
83
  ```bash
75
- uvx gac init # Configure your LLM provider
84
+ uvx gac init # Configure your provider, model, and language
76
85
  uvx gac # Generate and commit with LLM
77
86
  ```
78
87
 
@@ -98,7 +107,7 @@ uv tool upgrade gac
98
107
 
99
108
  ### 🌐 **Supported Providers**
100
109
 
101
- - **Anthropic** • **Cerebras** • **Chutes.ai** • **DeepSeek** • **Fireworks**
110
+ - **Anthropic** • **Cerebras** • **Claude Code** • **Chutes.ai** • **DeepSeek** • **Fireworks**
102
111
  - **Gemini** • **Groq** • **LM Studio** • **MiniMax** • **Mistral** • **Ollama** • **OpenAI**
103
112
  - **OpenRouter** • **Streamlake** • **Synthetic.new** • **Together AI**
104
113
  - **Z.AI** • **Z.AI Coding** • **Custom Endpoints (Anthropic/OpenAI)**
@@ -220,6 +229,8 @@ The edit feature (`e`) provides rich in-place terminal editing, allowing you to:
220
229
 
221
230
  Run `gac init` to configure your provider interactively, or set environment variables:
222
231
 
232
+ Need to change providers or models later without touching language settings? Use `gac model` for a streamlined flow that skips the language prompts.
233
+
223
234
  ```bash
224
235
  # Example configuration
225
236
  GAC_MODEL=anthropic:your-model-name
@@ -231,16 +242,24 @@ See `.gac.env.example` for all available options.
231
242
 
232
243
  **Want commit messages in another language?** Run `gac language` to select from 25+ languages including Español, Français, 日本語, and more.
233
244
 
234
- **Want to customize commit message style?** See [docs/CUSTOM_SYSTEM_PROMPTS.md](docs/CUSTOM_SYSTEM_PROMPTS.md) for guidance on writing custom system prompts.
245
+ **Want to customize commit message style?** See [docs/CUSTOM_SYSTEM_PROMPTS.md](docs/en/CUSTOM_SYSTEM_PROMPTS.md) for guidance on writing custom system prompts.
246
+
247
+ ---
248
+
249
+ ## Project Analytics
250
+
251
+ 📊 **[View live usage analytics and statistics →](https://clickpy.clickhouse.com/dashboard/gac)**
252
+
253
+ Track real-time installation metrics and package download statistics.
235
254
 
236
255
  ---
237
256
 
238
257
  ## Getting Help
239
258
 
240
- - **Full documentation**: [USAGE.md](USAGE.md) - Complete CLI reference
241
- - **Custom prompts**: [CUSTOM_SYSTEM_PROMPTS.md](docs/CUSTOM_SYSTEM_PROMPTS.md) - Customize commit message style
242
- - **Troubleshooting**: [TROUBLESHOOTING.md](docs/TROUBLESHOOTING.md) - Common issues and solutions
243
- - **Contributing**: [CONTRIBUTING.md](docs/CONTRIBUTING.md) - Development setup and guidelines
259
+ - **Full documentation**: [docs/USAGE.md](docs/en/USAGE.md) - Complete CLI reference
260
+ - **Custom prompts**: [docs/CUSTOM_SYSTEM_PROMPTS.md](docs/en/CUSTOM_SYSTEM_PROMPTS.md) - Customize commit message style
261
+ - **Troubleshooting**: [docs/TROUBLESHOOTING.md](docs/en/TROUBLESHOOTING.md) - Common issues and solutions
262
+ - **Contributing**: [docs/CONTRIBUTING.md](docs/en/CONTRIBUTING.md) - Development setup and guidelines
244
263
 
245
264
  ---
246
265
 
@@ -250,7 +269,7 @@ See `.gac.env.example` for all available options.
250
269
 
251
270
  Made with ❤️ for developers who want better commit messages
252
271
 
253
- [⭐ Star us on GitHub](https://github.com/cellwebb/gac) • [🐛 Report issues](https://github.com/cellwebb/gac/issues) • [📖 Full docs](USAGE.md)
272
+ [⭐ Star us on GitHub](https://github.com/cellwebb/gac) • [🐛 Report issues](https://github.com/cellwebb/gac/issues) • [📖 Full docs](docs/en/USAGE.md)
254
273
 
255
274
  </div>
256
275
 
@@ -1,27 +1,31 @@
1
1
  gac/__init__.py,sha256=z9yGInqtycFIT3g1ca24r-A3699hKVaRqGUI79wsmMc,415
2
- gac/__version__.py,sha256=KHcXxHr9uQK6amU8n-h2x8FjOXkwzFkaiUL62tdw07w,66
3
- gac/ai.py,sha256=6SQK4axBE0uEbF3eKVTvQtGL9X1TbxoBOrY7NuYIfiM,5009
4
- gac/ai_utils.py,sha256=reJINfsKlX0HAg5HPlH4ImO6FvibzgRZ0ruG9u1cxa8,8312
5
- gac/cli.py,sha256=i4VEQeq5k2Rmy8DzqVuJCUyYxSq87x_wLTmH3VgOkyg,5986
6
- gac/config.py,sha256=O9n09-sFOqlkf47vieEP7fI5I7uhu1cXn9PUZ5yiYkw,1974
2
+ gac/__version__.py,sha256=ZtPBPM1886CyEdtyRElDUY1IyJ0wC1HyEm3mVjHq_WM,66
3
+ gac/ai.py,sha256=jFIA79WAXnsOp-0ttGJdUARVHss_5VNWBi2PFfS4ZT8,5066
4
+ gac/ai_utils.py,sha256=75bXu2jSSKN-d6WYCpHhfQeRLsh2GiIbquZQ28rK9O4,8335
5
+ gac/auth_cli.py,sha256=Bd2TSjoVruOwzcPjDvyjfuKtlBr_wEScf8AWsddKfU0,2224
6
+ gac/cli.py,sha256=Jw683ua9TZbJKaMu2n2xONwXz5NxrrpfsZbCZH7mBkQ,6464
7
+ gac/config.py,sha256=HXYy889wZGlot2kn2jvR1QsiVIVHaZbvhIqMybm3Iso,2164
7
8
  gac/config_cli.py,sha256=v9nFHZO1RvK9fzHyuUS6SG-BCLHMsdOMDwWamBhVVh4,1608
8
- gac/constants.py,sha256=yyvYycIfRJ9SZZIMIhwn1s6yohjcaNM-fGXl_R9w1dI,9586
9
+ gac/constants.py,sha256=f8UdGVzYHcuOxPHO53Isllkrk8G0DEE0qP8f4Oers_M,9670
9
10
  gac/diff_cli.py,sha256=wnVQ9OFGnM0d2Pj9WVjWbo0jxqIuRHVAwmb8wU9Pa3E,5676
10
11
  gac/errors.py,sha256=ysDIVRCd0YQVTOW3Q6YzdolxCdtkoQCAFf3_jrqbjUY,7916
11
- gac/git.py,sha256=m7EqMYYRNRfD68HbxZD3TUY3DZlzZSdqa38SeLSNb6A,9347
12
- gac/init_cli.py,sha256=3n6A9FX0atPpO8XMMDypxLTIPxXv-cg_YtRl4yAKUOc,14449
13
- gac/language_cli.py,sha256=Nl1WKR-o7APOKTg_7T5LoJmg4GaiXnGUzR5XFJayYwI,3050
14
- gac/main.py,sha256=r5zwAYBBn-qz9kix2Zn5yJ-ac3-42u6HaIoirybOaTQ,28784
12
+ gac/git.py,sha256=HJANfY8RFyrtXJUDo8wxrU0e5tx0agakdM8jCru1b3Q,11285
13
+ gac/init_cli.py,sha256=x_N38ynOrvdc--GYDYl7ysQJvwtL-NBk7_bxH4eLHzo,21238
14
+ gac/language_cli.py,sha256=FEQf-k5KrhIpvx4XJvjqxTeE4qumNO00d-tgOAf83W4,8488
15
+ gac/main.py,sha256=8HhyJ1OOEQNU39wj6g9cdzeqc4Vpu7M6EuaHwY6hb-E,31274
15
16
  gac/preprocess.py,sha256=hk2p2X4-xVDvuy-T1VMzMa9k5fTUbhlWDyw89DCf81Q,15379
16
17
  gac/prompt.py,sha256=ofumb6DmxJceqZLUlUyLE9b7Mwx9BpIEHweKEV9eicw,31841
17
18
  gac/security.py,sha256=QT91mBEo2Y7la-aXvKuF2zhWuoOSXb6PWKLJ93kSy2k,9926
18
- gac/utils.py,sha256=owkUzwJBX8mi0VrP3HKxku5vJj_JlaShzTYwjjsHn-4,8126
19
- gac/workflow_utils.py,sha256=fc0yPRBeA-7P2WiVPFa7A_NjXTW68UlbUv6_AXVYAzA,5023
20
- gac/providers/__init__.py,sha256=pT1xcKoZkPm6BWaxcAQ299-Ca5zZ31kf4DeQYAim9Tw,1367
19
+ gac/utils.py,sha256=gTpc9zLzy3-3L5k-V5uSeFI-NnSPabA1GGVwSgpeMSk,11709
20
+ gac/workflow_utils.py,sha256=rnKrPc8yiBKdGz6Set2wu8q-bX6lEUVD1YEj5wg6C2Q,5226
21
+ gac/oauth/__init__.py,sha256=hPSGHlt-BFZXSodg-n6S405-5YZComyV_iEtzkPumdQ,46
22
+ gac/oauth/claude_code.py,sha256=S4XsamRKOJoBwXo3GyhhcP5ypj3RE2akoBSo2yojtS8,12120
23
+ gac/providers/__init__.py,sha256=k_T1K6aPeB4vJ5XyHeFROtbVJ6s3aNTtdHpEBxjdaFA,1441
21
24
  gac/providers/anthropic.py,sha256=VK5d1s1PmBNDwh_x7illQ2CIZIHNIYU28btVfizwQPs,2036
22
25
  gac/providers/cerebras.py,sha256=Ik8lhlsliGJVkgDgqlThfpra9tqbdYQZkaC4eNxRd9w,1648
23
26
  gac/providers/chutes.py,sha256=cclJOLuGVIiiaF-9Bs1kH6SSOhEmduGB2zZ86KIaXKw,2617
24
- gac/providers/custom_anthropic.py,sha256=l5-bRusVA19LFQ5QCZBU0Wa1rWbxoBHkWCwszQMPzvw,5545
27
+ gac/providers/claude_code.py,sha256=e_j0n0flN6m1UsY_v1lzwcy1miC9pynPY-1Fbq2akyw,4069
28
+ gac/providers/custom_anthropic.py,sha256=aqtMdLnbwFjXkQzo7-pKfhIHktFuePVsnfDJOFJvDeM,5529
25
29
  gac/providers/custom_openai.py,sha256=EB1H21oV6CJNPGtM7u2EP7sGaPhCQ0lQAcIcj-2PXvE,3975
26
30
  gac/providers/deepseek.py,sha256=leT2S4_CE6JzwF3skDd4umBsu2rkJOJ66AfOdSL5wGc,1643
27
31
  gac/providers/fireworks.py,sha256=zsWhf6LMVdtsD9keXRFwgn9lCQigz6VmrDl6vqIVkdI,1688
@@ -37,8 +41,8 @@ gac/providers/streamlake.py,sha256=KAA2ZnpuEI5imzvdWVWUhEBHSP0BMnprKXte6CbwBWY,2
37
41
  gac/providers/synthetic.py,sha256=sRMIJTS9LpcXd9A7qp_ZjZxdqtTKRn9fl1W4YwJZP4c,1855
38
42
  gac/providers/together.py,sha256=1bUIVHfYzcEDw4hQPE8qV6hjc2JNHPv_khVgpk2IJxI,1667
39
43
  gac/providers/zai.py,sha256=kywhhrCfPBu0rElZyb-iENxQxxpVGykvePuL4xrXlaU,2739
40
- gac-2.3.0.dist-info/METADATA,sha256=5VIkxFRlLC4NPEGIuZyRUo253XYHdQYt_8uX3gbvjjg,9782
41
- gac-2.3.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
42
- gac-2.3.0.dist-info/entry_points.txt,sha256=tdjN-XMmcWfL92swuRAjT62bFLOAwk9bTMRLGP5Z4aI,36
43
- gac-2.3.0.dist-info/licenses/LICENSE,sha256=vOab37NouL1PNs5BswnPayrMCqaN2sqLfMQfqPDrpZg,1103
44
- gac-2.3.0.dist-info/RECORD,,
44
+ gac-2.7.0.dist-info/METADATA,sha256=A31IMh77XO-gFzQRptAN-3dixvA-0FZ9NEd9VM4uBdE,10867
45
+ gac-2.7.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
46
+ gac-2.7.0.dist-info/entry_points.txt,sha256=tdjN-XMmcWfL92swuRAjT62bFLOAwk9bTMRLGP5Z4aI,36
47
+ gac-2.7.0.dist-info/licenses/LICENSE,sha256=vOab37NouL1PNs5BswnPayrMCqaN2sqLfMQfqPDrpZg,1103
48
+ gac-2.7.0.dist-info/RECORD,,
File without changes