{"id":22662758,"url":"https://github.com/graniet/comgen","last_synced_at":"2026-04-28T08:36:46.032Z","repository":{"id":266409996,"uuid":"898271239","full_name":"graniet/comgen","owner":"graniet","description":"Automatically generate meaningful commit messages harnessing the power of Large Language Models (LLMs) 🤖✨","archived":false,"fork":false,"pushed_at":"2024-12-04T05:57:03.000Z","size":36,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-29T09:13:18.548Z","etag":null,"topics":["commit","git","llm","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/graniet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-04T05:11:55.000Z","updated_at":"2024-12-04T05:57:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"072d26c1-edaa-4037-8e74-a7a84d901ef1","html_url":"https://github.com/graniet/comgen","commit_stats":null,"previous_names":["graniet/comgen"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/graniet/comgen","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/graniet%2Fcomgen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/graniet%2Fcomgen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/graniet%2Fcomgen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/graniet%2Fcomgen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/graniet","download_url":"https://codeload.github.com/graniet/comgen/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/graniet%2Fcomgen/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32373512,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-27T20:07:02.737Z","status":"online","status_checked_at":"2026-04-28T02:00:07.250Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["commit","git","llm","rust"],"created_at":"2024-12-09T12:15:26.002Z","updated_at":"2026-04-28T08:36:45.997Z","avatar_url":"https://github.com/graniet.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"https://i.postimg.cc/SKST2N1J/image-99.jpg\" width=\"300\" alt=\"logo\"\u003e\n\n\nComGen is a command-line tool that automatically generates Git commit messages using Large Language Models (LLMs). It analyzes modified files in your Git repository and creates relevant commit messages based on code differences.\n\n[![Rust](https://img.shields.io/badge/Rust-000000?style=for-the-badge\u0026logo=rust\u0026logoColor=white)](https://www.rust-lang.org/)\n[![License](https://img.shields.io/badge/License-MIT-green.svg?style=for-the-badge)](https://opensource.org/licenses/MIT)\n\n[![asciicast](https://asciinema.org/a/jx1V2DqcGIhgXATjQzGVUFANy.svg)](https://asciinema.org/a/jx1V2DqcGIhgXATjQzGVUFANy)\n\n## Features ✨\n\n- 🔍 Analyzes modified files in your Git repository\n- 🤖 Uses LLMs to generate intelligent commit messages\n- 🔧 Supports multiple LLM providers (OpenAI, Anthropic, Ollama)\n- 🛡️ Performs security audits on code changes\n- 📝 Allows customization of commit message templates\n- 🌐 Works on Windows, macOS and Linux\n\n## Configuration 🛠️\n\nComGen uses two main configuration files:\n\n### Main Configuration (`config.yaml`)\n\nThe main configuration allows you to define:\n\n- `provider`: The LLM provider (\"openai\", \"anthropic\", \"ollama\")\n- `model`: The model to use (e.g., \"gpt-4\")\n- `base_prompt`: The base prompt for generation\n- `templates`: Commit template configuration\n- API keys for different providers\n\n### Commit Template (`comgen.template`)\n\nThe `comgen.template` file defines the structure of commit messages, it can be used at the root of a project to define a particular standard.\n\n- `commit_types`: List of allowed commit types (feat, fix, docs, etc.)\n- `output_format`: Output format configuration\n  - `template`: Message structure \"\u003ctype\u003e[optional scope]: \u003cdescription\u003e\"\n  - `max_length`: Maximum message length (100 characters)\n  - `examples`: Examples of valid commit messages","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgraniet%2Fcomgen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgraniet%2Fcomgen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgraniet%2Fcomgen/lists"}