Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6e7525241d | ||
|
|
b7faa9e17c | ||
|
|
97a0b34f9c | ||
|
|
b975ffc5e3 |
No files matched your search
@@ -0,0 +1,3 @@
|
|||||||
|
graft devgen/templates
|
||||||
|
include README.md
|
||||||
|
include LICENSE
|
||||||
@@ -23,13 +23,13 @@
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Stable release from PyPI
|
# Stable release from PyPI
|
||||||
pip install devgen
|
pip install devgen-cli
|
||||||
|
|
||||||
# Using pipx (recommended for isolated CLI)
|
# Using pipx (recommended for isolated CLI)
|
||||||
pipx install devgen
|
pipx install devgen-cli
|
||||||
|
|
||||||
# Using uv (fast Python package manager)
|
# Using uv (fast Python package manager)
|
||||||
uv tool install devgen
|
uv tool install devgen-cli
|
||||||
```
|
```
|
||||||
|
|
||||||
## 🚀 Quick Start
|
## 🚀 Quick Start
|
||||||
@@ -63,12 +63,14 @@ devgen commit run --force-rebuild
|
|||||||
```
|
```
|
||||||
|
|
||||||
**How it works:**
|
**How it works:**
|
||||||
|
|
||||||
- DevGen detects all staged and unstaged changes
|
- DevGen detects all staged and unstaged changes
|
||||||
- Groups files by directory
|
- Groups files by directory
|
||||||
- Generates semantic commit messages for each group using AI
|
- Generates semantic commit messages for each group using AI
|
||||||
- Follows [Conventional Commits](https://www.conventionalcommits.org/) format
|
- Follows [Conventional Commits](https://www.conventionalcommits.org/) format
|
||||||
|
|
||||||
**Additional commit commands:**
|
**Additional commit commands:**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# View cached commit messages
|
# View cached commit messages
|
||||||
devgen commit list-cached
|
devgen commit list-cached
|
||||||
@@ -96,6 +98,7 @@ devgen changelog generate --output CHANGES.md
|
|||||||
```
|
```
|
||||||
|
|
||||||
The changelog follows Semantic Release conventions, categorizing commits into:
|
The changelog follows Semantic Release conventions, categorizing commits into:
|
||||||
|
|
||||||
- **BREAKING CHANGES**
|
- **BREAKING CHANGES**
|
||||||
- **Features**
|
- **Features**
|
||||||
- **Bug Fixes**
|
- **Bug Fixes**
|
||||||
@@ -136,6 +139,7 @@ devgen gitignore generate --offline Python
|
|||||||
```
|
```
|
||||||
|
|
||||||
**Options:**
|
**Options:**
|
||||||
|
|
||||||
- `--append` / `--overwrite` - Append to or overwrite existing `.gitignore`
|
- `--append` / `--overwrite` - Append to or overwrite existing `.gitignore`
|
||||||
- `--output` - Specify output file path (default: `.gitignore`)
|
- `--output` - Specify output file path (default: `.gitignore`)
|
||||||
- `--offline` - Use only cached templates
|
- `--offline` - Use only cached templates
|
||||||
@@ -149,12 +153,14 @@ devgen license generate
|
|||||||
```
|
```
|
||||||
|
|
||||||
This will:
|
This will:
|
||||||
|
|
||||||
1. Show available licenses (MIT, Apache-2.0, GPL-3.0, etc.)
|
1. Show available licenses (MIT, Apache-2.0, GPL-3.0, etc.)
|
||||||
2. Prompt for author name
|
2. Prompt for author name
|
||||||
3. Prompt for year (defaults to current year)
|
3. Prompt for year (defaults to current year)
|
||||||
4. Generate the license file
|
4. Generate the license file
|
||||||
|
|
||||||
**Available licenses:**
|
**Available licenses:**
|
||||||
|
|
||||||
- MIT
|
- MIT
|
||||||
- Apache-2.0
|
- Apache-2.0
|
||||||
- GPL-2.0, GPL-3.0
|
- GPL-2.0, GPL-3.0
|
||||||
@@ -176,6 +182,7 @@ devgen setup config
|
|||||||
```
|
```
|
||||||
|
|
||||||
**Configuration options:**
|
**Configuration options:**
|
||||||
|
|
||||||
- `provider` - AI provider: `gemini`, `openai`, `anthropic`, `huggingface`, or `openrouter`
|
- `provider` - AI provider: `gemini`, `openai`, `anthropic`, `huggingface`, or `openrouter`
|
||||||
- `model` - Model name (e.g., `gemini-2.5-flash`, `gpt-4`, `claude-3-opus`)
|
- `model` - Model name (e.g., `gemini-2.5-flash`, `gpt-4`, `claude-3-opus`)
|
||||||
- `api_key` - Your API key
|
- `api_key` - Your API key
|
||||||
@@ -184,6 +191,7 @@ devgen setup config
|
|||||||
## 📋 Command Reference
|
## 📋 Command Reference
|
||||||
|
|
||||||
### Commit Commands
|
### Commit Commands
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
devgen commit run [--dry-run] [--push] [--debug] [--force-rebuild]
|
devgen commit run [--dry-run] [--push] [--debug] [--force-rebuild]
|
||||||
devgen commit validate
|
devgen commit validate
|
||||||
@@ -192,27 +200,32 @@ devgen commit clear-cache
|
|||||||
```
|
```
|
||||||
|
|
||||||
### Changelog Commands
|
### Changelog Commands
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
devgen changelog generate [--output FILE] [--from REF]
|
devgen changelog generate [--output FILE] [--from REF]
|
||||||
```
|
```
|
||||||
|
|
||||||
### Release Commands
|
### Release Commands
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
devgen release notes [--version VERSION] [--output FILE] [--from REF]
|
devgen release notes [--version VERSION] [--output FILE] [--from REF]
|
||||||
```
|
```
|
||||||
|
|
||||||
### Gitignore Commands
|
### Gitignore Commands
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
devgen gitignore generate [TEMPLATES...] [--output FILE] [--append/--overwrite] [--offline]
|
devgen gitignore generate [TEMPLATES...] [--output FILE] [--append/--overwrite] [--offline]
|
||||||
devgen gitignore list [--cached]
|
devgen gitignore list [--cached]
|
||||||
```
|
```
|
||||||
|
|
||||||
### License Commands
|
### License Commands
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
devgen license generate [--output FILE]
|
devgen license generate [--output FILE]
|
||||||
```
|
```
|
||||||
|
|
||||||
### Setup Commands
|
### Setup Commands
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
devgen setup config
|
devgen setup config
|
||||||
```
|
```
|
||||||
|
|||||||
+1
-1
@@ -132,7 +132,7 @@ def delete_file(filepath: Path | str) -> bool:
|
|||||||
|
|
||||||
|
|
||||||
def load_template_env(sub_dir: str) -> Environment:
|
def load_template_env(sub_dir: str) -> Environment:
|
||||||
template_dir = Path(__file__).parent / "prompt_templates" / sub_dir
|
template_dir = Path(__file__).parent / "templates" / sub_dir
|
||||||
return Environment(loader=FileSystemLoader(template_dir))
|
return Environment(loader=FileSystemLoader(template_dir))
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -3,8 +3,8 @@ requires = ["setuptools>=61", "wheel"]
|
|||||||
build-backend = "setuptools.build_meta"
|
build-backend = "setuptools.build_meta"
|
||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "devgen"
|
name = "devgen-cli"
|
||||||
version = "0.2.0"
|
version = "0.2.1"
|
||||||
description = "A collection of developer tools"
|
description = "A collection of developer tools"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
requires-python = ">=3.10"
|
requires-python = ">=3.10"
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ Setup script for devgen package.
|
|||||||
from setuptools import find_packages, setup
|
from setuptools import find_packages, setup
|
||||||
|
|
||||||
setup(
|
setup(
|
||||||
name="devgen",
|
name="devgen-cli",
|
||||||
version="0.2.0",
|
version="0.2.1",
|
||||||
packages=find_packages(),
|
packages=find_packages(),
|
||||||
include_package_data=True,
|
include_package_data=True,
|
||||||
install_requires=[
|
install_requires=[
|
||||||
|
|||||||
@@ -188,8 +188,8 @@ wheels = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "devgen"
|
name = "devgen-cli"
|
||||||
version = "0.1.0"
|
version = "0.2.0"
|
||||||
source = { editable = "." }
|
source = { editable = "." }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "anthropic" },
|
{ name = "anthropic" },
|
||||||
@@ -262,7 +262,7 @@ name = "exceptiongroup"
|
|||||||
version = "1.3.1"
|
version = "1.3.1"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "typing-extensions", marker = "python_full_version < '3.13'" },
|
{ name = "typing-extensions", marker = "python_full_version < '3.11'" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/50/79/66800aadf48771f6b62f7eb014e352e5d06856655206165d775e675a02c9/exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219", size = 30371, upload-time = "2025-11-21T23:01:54.787Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/50/79/66800aadf48771f6b62f7eb014e352e5d06856655206165d775e675a02c9/exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219", size = 30371, upload-time = "2025-11-21T23:01:54.787Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
|
|||||||
Reference in new issue
Block a user