Commit Graph
100 Commits
Author SHA1 Message Date
sankalp e69de1d99a Merge pull request #63 from S4NKALP/dependabot/github_actions/main/actions/checkout-7
build(deps): bump actions/checkout from 6 to 7
2026-07-03 19:07:59 +05:45
sankalp 277f197a71 fix(.github/workflows): change fail-on-scopes to runtime
Update CI to enforce runtime dependency reviews, improving coverage of actual runtime packages.
2026-07-03 18:26:35 +05:45
sankalp 2edbf95ed5 feat(provider): refactor Gemini provider to use struct schema
Improves validation and aligns with latest API changes.
2026-07-03 18:24:48 +05:45
sankalp 109fcd584f feat(root): bump version to 0.3.0 and update dependencies
Update metadata and pin production dependencies for reproducible builds.
2026-07-03 18:23:37 +05:45
sankalp 61e51b5187 chore(deps): bump dependency versions
Upgrade to latest stable releases for security and compatibility.
2026-07-03 18:21:18 +05:45
sankalp d4b694e77d fix(devgen): handle missing git binary gracefully
Ensure the function returns an empty list when git is not found, avoiding crashes.
2026-07-03 18:08:00 +05:45
sankalp 261d04c56f refactor(devgen/providers): centralize retry and quota handling in BaseProvider
Move retry logic and quota detection from provider-specific code to BaseProvider to reduce duplication and simplify error handling.
2026-07-03 18:07:43 +05:45
sankalp f7001d4243 feat(devgen/modules): streamline provider guard and enhance ManifestInspector flexibility
Add token‑limit error handling and switch git diff to null‑delimited output for reliable file detection.
2026-07-03 18:07:26 +05:45
sankalp 11a9db7986 feat(devgen): extend header regex to include deps and wip scopes and ignore markdown fences
Prevent false positives on markdown fences and enable parsing of dependency-related commit types.
2026-07-03 17:02:18 +05:45
sankalp 34f5d090ce chore(devgen): extend commit message regex to include perf and revert
Update the regex in devgen/utils.py to recognize `perf` and `revert` as valid Conventional Commit types, ensuring alignment with the specification and preventing false negatives in automated analysis.
2026-07-03 16:46:05 +05:45
sankalp d20a31bf38 feat(devgen/templates/commit): update commit_message.tpl with expanded conventional commit format
Add detailed format description, examples, and diff handling to improve commit message clarity.
2026-07-03 16:45:47 +05:45
sankalp a43e09e924 feat(.github/workflows): enable auto-merge for dependabot
Allow automatic merging of Dependabot PRs to keep the repository up‑to‑date without manual intervention.
2026-06-16 15:43:46 +05:45
sankalp fca0e34422 chore(root): bump version to 0.2.9
Updated version and dependency constraints for release.
2026-06-16 15:12:54 +05:45
sankalp c4992cce57 formating 2026-06-16 15:05:07 +05:45
sankalp 957dda9d49 refactor: remove jinja2 dependency, use simple template engine
- Replace jinja2 with custom render_template() helper
- Support {{ var }} substitution and {% if %}...{% endif %} conditionals
- Remove jinja2 from pyproject.toml and requirements.txt
- Simplifies dependency tree and reduces install size
2026-06-16 14:58:25 +05:45
sankalp 869aa37f0c update 2026-06-16 14:45:55 +05:45
sankalp 51ede1a7da fix: address 7 security and reliability issues
- Prevent path traversal in gitignore template names (Critical)
- Fix TOCTOU races in file operations with try/except pattern (High)
- Add timeout to HuggingFace API requests (Medium)
- Add missing %x00 separator in changelog fallback format (Medium)
- Filter unsanitized kwargs before passing to OpenAI SDK (High)
- Use context managers for proper client cleanup in providers (High)
- Exit with non-zero code on commit engine failure (Low)
2026-06-16 14:43:52 +05:45
sankalp ede489c219 fix: resolve 8 bugs affecting real users
- Fix KeyError 'root' in FileGrouper when merging groups with no root-level files
- Fix changelog commit parsing breaking on multiline bodies (use %x00 separator)
- Add empty choices/content checks in OpenAI, Anthropic, OpenRouter providers
- Fix config edit crash when config is empty
- Fix validate command using wrong color for 'no staged files'
- Add type check for corrupted YAML config (non-dict returns empty dict)
2026-06-16 14:36:19 +05:45
sankalp a56fe0a6ee update 2026-06-13 15:17:42 +05:45
sankalp e13e763cf2 chore(.github/workflows): upgrade dependency-review-action to v4.6.0
Upgrade to the latest stable version to receive security fixes and new features.
2026-06-13 15:16:22 +05:45
sankalp 79294f1df0 Merge pull request #61 from S4NKALP/dependabot/pip/main/openai-2.41.1
build(deps): bump openai from 2.41.0 to 2.41.1
2026-06-13 15:15:43 +05:45
sankalp 187ad00e99 Merge branch 'main' into dependabot/pip/main/openai-2.41.1 2026-06-13 15:15:19 +05:45
sankalp 35e02ddf7d Merge pull request #60 from S4NKALP/dependabot/pip/main/pre-commit-4.6.0
build(deps): bump pre-commit from 4.5.0 to 4.6.0
2026-06-13 15:14:51 +05:45
sankalp 93f09c9d74 Merge pull request #62 from S4NKALP/dependabot/pip/main/anthropic-0.109.1
build(deps): bump anthropic from 0.105.2 to 0.109.1
2026-06-13 15:14:34 +05:45
sankalp ab9527df33 Merge pull request #59 from S4NKALP/dependabot/pip/main/ruff-0.15.17
build(deps): bump ruff from 0.15.16 to 0.15.17
2026-06-13 15:14:13 +05:45
sankalp 186d952fda Merge pull request #58 from S4NKALP/dependabot/github_actions/main/github/codeql-action-4
build(deps): bump github/codeql-action from 3 to 4
2026-06-13 15:13:59 +05:45
sankalp deba25b055 Merge pull request #57 from S4NKALP/dependabot/github_actions/main/actions/dependency-review-action-5
build(deps): bump actions/dependency-review-action from 4 to 5
2026-06-13 15:13:40 +05:45
sankalp f007c7c579 chore(.github/workflows):switch fail-on-scopes from changes to direct 2026-06-13 15:11:43 +05:45
sankalp 91500f634a chore(.github/workflows): remove vuln-check-non-vulnerable-refs flag
Removed the flag that disabled vulnerability checks for non‑vulnerable refs; allow default security behavior.
2026-06-13 15:07:07 +05:45
sankalp cb3a1662d9 refactor(devgen/cli): reorder config merge to preserve key order
Preserves insertion order and prevents accidental overwriting of existing keys
2026-06-06 21:36:37 +05:45
sankalp 70e9068082 fix: None crash in providers, _merge_deepest loop, lock-file false positives, stage() race, cache TTL, config merge, changelog indent, template check 2026-06-06 21:33:51 +05:45
sankalp fb87bfa146 fix: handle deleted files in stage() — use git rm for missing paths 2026-06-06 21:21:10 +05:45
sankalp 69bd79e0fa bump version to 0.2.6 2026-06-06 20:57:00 +05:45
sankalp a86dcc93ee update readme 2026-06-06 17:43:22 +05:45
sankalp 456040ed2b feat(root): revamp README and add gitignore/license commands
Updated project overview, removed emojis, and introduced new CLI subcommands for managing .gitignore and license templates. Added architecture and custom template documentation.

New Features
- Added `devgen gitignore list` and `devgen gitignore add <name> …` commands.
- Added `devgen license list` and `devgen license add <spdx>` commands.
- Introduced support for custom commit templates via `.tpl` files.

Enhancements
- Rewrote README with clearer description and updated badges.
- Removed emojis and streamlined formatting throughout documentation.
- Added sections for custom templates, architecture overview, and contribution guide.
- Clarified dependency installation and CI workflow references.

Bug Fixes
- Fixed formatting issues in badge links and stray hyphens.
- Resolved truncated documentation sections and improved readability.
2026-06-06 17:39:25 +05:45
sankalp df1d1765d1 ci: drop pyright typecheck job in favour of ruff
The project uses ruff for lint+format, and pyright was redundant and
slow. The previous pyright run surfaced ~30 false positives from running
outside the venv plus 5 real-but-minor typing issues that don't justify
the extra CI minutes on a 0.2.x CLI.

CI now runs only ruff check, ruff format --check, and the import/CLI
smoke matrix on 3.10/3.11/3.12/3.13.
2026-06-06 17:38:01 +05:45
sankalp 09ba5e9644 ci: add CodeQL, lint/typecheck/smoke CI, and dependency review
- ci.yml: ruff check + format check, pyright typecheck, and import/CLI
  smoke test on Python 3.10/3.11/3.12/3.13 matrix. Uses uv like the
  existing pre-commit workflow for consistency.
- codeql.yml: weekly + push/PR Python security-and-quality analysis.
- dependency-review.yml: fail PRs adding high+ severity CVEs or copyleft
  licenses that would taint GPL-3.0 (AGPL, SSPL, BUSL).
2026-06-06 17:31:31 +05:45
sankalp 850e88972e ci(dependabot): merge directly via squash instead of use-github-auto-merge
The previous config required branch protection with required status checks,
but main has no protection rules configured, so auto-merge never fired and
PRs had to be merged manually.

Switch to direct squash merge in the action itself, which works regardless
of branch protection settings.
2026-06-06 17:24:10 +05:45
sankalp 96e776f7cc chore(root):ignore .tpl files in Linguist language stats to prevent inflated language statistics. 2026-06-06 17:10:34 +05:45
sankalp f70b5208ec refactor(devgen/providers): shared provider base class
Abstract out generate validation and error handling into BaseProvider, eliminating duplicated logic across Anthropic, OpenRouter, and OpenAI providers.
2026-06-06 17:10:30 +05:45
sankalp e2ec269f16 refactor(modules): restructure changelog and release note generation
Refactor to improve readability and separate concerns,
use Section enum and ordered traversal for consistent output.
2026-06-06 17:10:30 +05:45
sankalp 90ca0c0f59 refactor(devgen/modules): rename commit_message template from .j2 to .tpl
Bug Fixes:
- Updated template reference to use .tpl extension, resolving missing template error.
2026-06-06 16:56:14 +05:45
sankalp 9781523e8e refactor(devgen/modules): streamline manifest context generation
Enhancements:
- Replaced verbose scanning of many manifest files with targeted parsing of key project manifests (pyproject.toml, package.json, requirements.txt).
- Generated a compact one‑line‑per‑file summary, reducing token usage.
- Improved clarity and readability of the AI‑provided context.
2026-06-06 16:48:28 +05:45
sankalp 96b2499ecf chore(devgen/templates/commit): streamline commit template to Conventional Commits format
Clarify output format and remove redundant guidance.

New Features:
- Added explicit format and type list

Enhancements:
- Simplified instructions, removed unnecessary guidance

Bug Fixes:
- None
2026-06-06 16:48:21 +05:45
sankalp 4f8e358a60 feat(devgen/modules): expose max_groups and max_diff_size as CLI override flags
- Add CLI flags to override `max_groups` and `max_diff_size` limits
- Update file grouping logic to respect override values
- Improve truncation logging with configurable size and guidance
- Remove unused imports and streamline rich console setup
2026-06-06 16:45:18 +05:45
sankalp 72c57f0d33 feat(devgen):add token limit error detection and friendly formatting utilities 2026-06-06 16:45:13 +05:45
sankalp 0b023482d7 feat(devgen/cli): introduce --max-groups and --max-diff-size options for commit command
Add limits to prevent token‑limit errors during commit generation.
- New `--max-groups` option to cap the number of commit groups.
- New `--max-diff-size` option to set maximum diff size per group (default 8000 chars).
Update logging to reflect the new options and pass them to the engine.
2026-06-06 16:45:07 +05:45
sankalp 8069895bc7 feat(devgen/providers): normalize token limit error handling
Add token limit error detection and formatting across all provider modules to surface clear diagnostics when context windows are exceeded, improving error messages and preventing silent failures.

New Features
- Introduce `is_token_limit_error` checks in Anthropic, Gemini, Hugging Face, Ollama, OpenAI, and OpenRouter providers.
- Use `format_token_limit_error` to generate user‑friendly error messages for token limit overs.

Enhancements
- Centralize token limit error handling for consistent diagnostics across providers.
- Explicitly re‑raise `RuntimeError` in Hugging Face to preserve original behavior.

Bug Fixes
- None
2026-06-06 16:45:05 +05:45
sankalp d991af9c47 feat(devgen/cli): introduce Ollamaprovider support and interactive host configuration
- Add "ollama" to AI provider choices in config prompts
- Prompt user for Ollama server URL when selecting the Ollama provider
- Store the configured Ollama host in the config under the "ollama_host" key
- Update config saving logic in both edit_config and setup_config functions
2026-06-06 16:31:09 +05:45
sankalp d8fcf0849a feat(root): add local Ollama AI model support
- New Features
  - Added Ollama as a supported AI model source.
  - Updated README and project manifests to include Ollama.

- Enhancements
  - Expanded AI model selection to handle local Ollama endpoints.
  - Improved dependency resolution for Ollama packages.

- Bug Fixes
  - None
2026-06-06 16:31:06 +05:45
sankalp aad3703ea3 feat(devgen/modules): add configurable Ollama host- New Features
- Added `ollama_host` configuration option.
- Enhancements
  - Use the configured host when calling the Ollama provider.
2026-06-06 16:31:02 +05:45
sankalp a8b48e9f07 feat(devgen/providers): add OllamaProvider for local Ollama integration
Add a new provider that wraps the local Ollama server using an OpenAI‑compatible client, enabling generation via `ollama_host` configuration. This introduces the first provider for local LLM inference.

New Features
- Implement OllamaProvider with a `generate()` method, supporting custom host, model selection, and robust error handling.
2026-06-06 16:30:56 +05:45
sankalp 7016cff3a7 feat(devgen): add Ollama provider and host configuration
Add support for the Ollama provider in the AI generation pipeline and expose a configurable host address.

New Features:
- Introduce `ollama` as a selectable provider.
- Add `ollama_host` configuration option with default `http://localhost:11434`.

Enhancements:
- Extend provider list in error message to include Ollama.
2026-06-06 16:30:52 +05:45
sankalp 55ebbaef15 feat(devgen/cli): improve version callback error messages
- Enhanced error messages when version cannot be determined, providing clearer guidance.
- Added explicit handling for missing pyproject.toml and TOML parsing errors.
- Improved user feedback for installation corruption issues.
2026-06-06 16:27:20 +05:45
sankalp 80f68a6ccd feat(devgen): enhance provider import error handling
Enhancements:
- Split ModuleNotFoundError and AttributeError handling to deliver clearer diagnostics
- Explicitly list available providers and flag missing provider classes as packaging bugs

Bug Fixes:
- Provide specific guidance when a provider module is not a built‑in module
- Clarify that a missing provider class indicates a packaging issue rather than user error
2026-06-06 16:27:17 +05:45
sankalp fd3ce03484 feat(devgen/modules): categorize committypes and improve changelog/release note formattingAdd separate categories for Performance, Refactor, Tests, Style, and Chore; update ordering and emojis; improve remote push detection and fetch strategy; enhance error logging.
- New Features  - Introduced distinct sections for Performance, Refactor, Tests, Style, and Chore in changelog generation.
  - Added dedicated emojis for each new category.
  - Updated section ordering to reflect the new categories.
- Enhancements
  - Enhanced push logic to fetch upstream before push, avoiding non‑fast‑forward rejections.
  - Refactored `is_ahead_of_remote` with a fetch flag to reduce network calls and TOCTOU windows.
  - Improved error logging with full traceback for group processing failures.
- Bug Fixes
  - Fixed emoji mappings for "Style" and "Other Changes".
  - Corrected handling of empty upstream ref to prevent errors.
  - Ensured proper exception handling when remote branch is missing.
2026-06-06 16:27:12 +05:45
sankalp 51d2b7549f feat(devgen/providers):improve provider error handling and response parsing 2026-06-06 16:27:03 +05:45
sankalp 5660e40eb4 chore(root): tidy README and bump dependencies
New Features
- None

Enhancements
- Updated dependency versions; fixed pre‑commit typo.
- Normalized Rich version across config files.
- Cleaned up README formatting and spacing.

Bug Fixes
- Fixed misspelling "pre-comit" → "pre-commit".
- Removed redundant whitespace in README badges and title.
2026-06-06 16:26:58 +05:45
sankalp c6914e2139 Merge pull request #53 from S4NKALP/dependabot/pip/main/openai-2.41.0
build(deps): bump openai from 2.29.0 to 2.41.0
2026-06-06 16:11:32 +05:45
sankalp 16c6f70057 Merge pull request #56 from S4NKALP/dependabot/pip/main/typer-0.26.7
build(deps): bump typer from 0.24.1 to 0.26.7
2026-06-06 16:09:48 +05:45
sankalp 3daf798dcd Merge pull request #54 from S4NKALP/dependabot/pip/main/ruff-0.15.16
build(deps): bump ruff from 0.15.7 to 0.15.16
2026-06-06 16:09:33 +05:45
sankalp d6f2452d21 Merge pull request #55 from S4NKALP/dependabot/pip/main/google-genai-2.8.0
build(deps): bump google-genai from 1.68.0 to 2.8.0
2026-06-06 16:09:14 +05:45
sankalp 8fdc346913 Merge pull request #50 from S4NKALP/dependabot/pip/main/anthropic-0.105.2
build(deps): bump anthropic from 0.86.0 to 0.105.2
2026-06-06 16:05:29 +05:45
sankalp e77472fb0f Merge pull request #44 from S4NKALP/dependabot/pip/main/requests-2.34.2
build(deps): bump requests from 2.32.5 to 2.34.2
2026-06-06 16:03:59 +05:45
sankalp e3dc6729dc Merge branch 'main' into dependabot/pip/main/requests-2.34.2 2026-06-06 16:03:44 +05:45
sankalp c7c1da8459 Merge pull request #28 from S4NKALP/dependabot/pip/main/rich-15.0.0
build(deps): bump rich from 14.3.3 to 15.0.0
2026-06-06 16:03:14 +05:45
sankalp 48ae3be0d4 chore: auto-update README [skip ci] 2026-03-27 07:01:11 +05:45
sankalp 5682a51d97 chore: auto-update README [skip ci] 2026-03-20 08:38:34 +05:45
sankalp 3007623f4c docs(root): update README withproject description and badges
Added a concise AI‑focused description and a centered badge section to the README, improving the project overview.

New Features- Introduced an AI‑centric tagline that highlights automation of commits, changelogs, and project management tasks.

Enhancements
- Centered and styled the title block for consistent visual presentation.
- Integrated project badges for PyPI version, Python compatibility, license, build status, and pre‑commit.

Bug Fixes
- None.
2026-03-20 08:38:24 +05:45
sankalp f2e5097e7f chore: auto-update README [skip ci] 2026-03-20 08:34:44 +05:45
sankalp d95c88b240 Merge pull request #14 from S4NKALP/dependabot/pip/main/openai-2.29.0 2026-03-20 08:34:37 +05:45
sankalp dc2b00651f chore: auto-update README [skip ci] 2026-03-20 08:34:18 +05:45
sankalp 2c9c5ed22d Merge pull request #15 from S4NKALP/dependabot/pip/main/ruff-0.15.7 2026-03-20 08:34:11 +05:45
sankalp d7fd658b98 Merge pull request #13 from S4NKALP/dependabot/pip/main/anthropic-0.86.0 2026-03-20 08:33:57 +05:45
sankalp 34a7635a6d chore: auto-update README [skip ci] 2026-03-20 08:33:53 +05:45
sankalp fdd38d5a49 Merge branch 'main' into dependabot/pip/main/anthropic-0.86.0 2026-03-20 08:33:44 +05:45
sankalp aa4fc8018e chore: auto-update README [skip ci] 2026-03-20 08:33:44 +05:45
sankalp 763537a324 Merge pull request #12 from S4NKALP/dependabot/pip/main/google-genai-1.68.0 2026-03-20 08:33:05 +05:45
sankalp 867156b65a chore: auto-update README [skip ci] 2026-03-20 07:01:09 +05:45
sankalp 6a8e92b4fc chore: auto-update README [skip ci] 2026-03-13 07:01:35 +05:45
sankalp 89bfe85002 docs(root): enrich README with detailed description and badges
Add expanded project overview and formatting updates.

- New Features: Expanded overview and richer description of AI-powered commits and customizable templates.
- Enhancements: Added extra badge images and improved formatting across sections.
- Bug Fixes: None.
2026-03-06 20:38:21 +05:45
sankalp 5515ca5633 Merge pull request #5 from S4NKALP/dependabot/pip/main/google-genai-1.66.0
build(deps): bump google-genai from 0.1.0 to 1.66.0
2026-03-06 20:36:10 +05:45
sankalp e7385c55fb chore: auto-update README [skip ci] 2026-03-06 20:36:03 +05:45
sankalp ceebf728ca Merge pull request #8 from S4NKALP/dependabot/pip/main/rich-14.3.3
build(deps): bump rich from 14.2.0 to 14.3.3
2026-03-06 20:35:44 +05:45
sankalp 8c98b64495 chore: auto-update README [skip ci] 2026-03-06 20:34:33 +05:45
sankalp b9899a774f Merge pull request #7 from S4NKALP/dependabot/pip/main/typer-0.24.1
build(deps): bump typer from 0.21.1 to 0.24.1
2026-03-06 20:34:32 +05:45
sankalp 96c8dd83b1 Merge pull request #6 from S4NKALP/dependabot/pip/main/ruff-0.15.5
build(deps): bump ruff from 0.14.13 to 0.15.5
2026-03-06 20:34:24 +05:45
sankalp 92e9f5ac19 chore: auto-update README [skip ci] 2026-03-06 20:34:08 +05:45
sankalp 75eb20fab3 Merge pull request #4 from S4NKALP/dependabot/pip/main/anthropic-0.84.0
build(deps): bump anthropic from 0.76.0 to 0.84.0
2026-03-06 20:34:00 +05:45
sankalp 5b7bd55ccd chore: auto-update README [skip ci] 2026-03-06 20:33:55 +05:45
sankalp 386e0ee72d Merge pull request #9 from S4NKALP/dependabot/pip/main/openai-2.26.0
build(deps): bump openai from 2.15.0 to 2.26.0
2026-03-06 20:33:48 +05:45
sankalp b31b06eb11 chore: auto-update README [skip ci] 2026-03-06 20:33:03 +05:45
sankalp cf637f34e8 Merge pull request #3 from S4NKALP/dependabot/github_actions/main/actions/checkout-6
build(deps): bump actions/checkout from 4 to 6
2026-03-06 20:32:30 +05:45
sankalp cb99c2fa56 Merge pull request #2 from S4NKALP/dependabot/github_actions/main/astral-sh/setup-uv-7
build(deps): bump astral-sh/setup-uv from 4 to 7
2026-03-06 20:32:19 +05:45
sankalp a67220cfb7 chore: auto-update README [skip ci] 2026-03-06 19:45:40 +05:45
sankalp 9e9c42ced7 chore: auto-update README [skip ci] 2026-03-06 19:45:12 +05:45
sankalp b74fb8071a chore(.github/workflows): add dependabot auto-merge workflow
New Features:
- Add dependabot auto-merge workflow (dependabot-auto-merge.yml)
2026-03-06 19:44:27 +05:45
sankalp d135381ad5 chore(.github): add dependabot.yml for weekly dependency updates
Add dependabot configuration to automate weekly updates of GitHub Actions and pip packages.

New Features
- Add Dependabot configuration for GitHub Actions and pip ecosystems with weekly schedule.

Enhancements
-

Bug Fixes
-
2026-03-06 19:44:23 +05:45
sankalp daa6f203c3 refactor(devgen/modules): reformat time.sleep block for readability 2026-03-06 19:43:19 +05:45
sankalp 1b36c3f2d7 feat(devgen/providers): improve error detection for rate‑limiting and quota exceeded responses
Enhancements:
- Extend error message parsing to capture additional throttling indicators such as "RESOURCE_EXHAUSTED", "QUOTA_EXCEEDED", and "THROTTLED".
- Refactor the conditional logic for better readability and maintainability.
- Keep existing retry behavior while increasing resilience to API rate‑limit errors.
2026-03-06 19:43:16 +05:45