gitpr-cli 0.0.32__tar.gz → 0.0.34__tar.gz
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.
- {gitpr_cli-0.0.32/gitpr_cli.egg-info → gitpr_cli-0.0.34}/PKG-INFO +37 -1
- gitpr_cli-0.0.32/PKG-INFO → gitpr_cli-0.0.34/README.md +438 -421
- gitpr_cli-0.0.32/README.md → gitpr_cli-0.0.34/gitpr_cli.egg-info/PKG-INFO +457 -402
- {gitpr_cli-0.0.32 → gitpr_cli-0.0.34}/gitpr_cli.egg-info/SOURCES.txt +4 -0
- {gitpr_cli-0.0.32 → gitpr_cli-0.0.34}/src/blame_engine.py +6 -3
- {gitpr_cli-0.0.32 → gitpr_cli-0.0.34}/src/config.py +57 -23
- {gitpr_cli-0.0.32 → gitpr_cli-0.0.34}/src/core.py +294 -21
- gitpr_cli-0.0.34/src/github_api.py +126 -0
- {gitpr_cli-0.0.32 → gitpr_cli-0.0.34}/src/issue_engine.py +66 -6
- {gitpr_cli-0.0.32 → gitpr_cli-0.0.34}/src/main.py +395 -16
- {gitpr_cli-0.0.32 → gitpr_cli-0.0.34}/src/mcp_server.py +109 -2
- {gitpr_cli-0.0.32 → gitpr_cli-0.0.34}/src/ui/issue_app.py +6 -4
- gitpr_cli-0.0.34/src/ui/pr_publish_app.py +1210 -0
- gitpr_cli-0.0.34/src/ui/pr_publish_help.py +45 -0
- {gitpr_cli-0.0.32 → gitpr_cli-0.0.34}/src/updater.py +2 -2
- gitpr_cli-0.0.34/tests/test_core.py +254 -0
- {gitpr_cli-0.0.32 → gitpr_cli-0.0.34}/tests/test_mcp_server.py +63 -0
- gitpr_cli-0.0.34/tests/test_plugins.py +297 -0
- gitpr_cli-0.0.32/tests/test_core.py +0 -29
- {gitpr_cli-0.0.32 → gitpr_cli-0.0.34}/LICENSE +0 -0
- {gitpr_cli-0.0.32 → gitpr_cli-0.0.34}/gitpr_cli.egg-info/dependency_links.txt +0 -0
- {gitpr_cli-0.0.32 → gitpr_cli-0.0.34}/gitpr_cli.egg-info/entry_points.txt +0 -0
- {gitpr_cli-0.0.32 → gitpr_cli-0.0.34}/gitpr_cli.egg-info/requires.txt +0 -0
- {gitpr_cli-0.0.32 → gitpr_cli-0.0.34}/gitpr_cli.egg-info/top_level.txt +0 -0
- {gitpr_cli-0.0.32 → gitpr_cli-0.0.34}/pyproject.toml +0 -0
- {gitpr_cli-0.0.32 → gitpr_cli-0.0.34}/setup.cfg +0 -0
- {gitpr_cli-0.0.32 → gitpr_cli-0.0.34}/src/__init__.py +0 -0
- {gitpr_cli-0.0.32 → gitpr_cli-0.0.34}/src/ai_providers.py +0 -0
- {gitpr_cli-0.0.32 → gitpr_cli-0.0.34}/src/cache.py +0 -0
- {gitpr_cli-0.0.32 → gitpr_cli-0.0.34}/src/chat_memory.py +0 -0
- {gitpr_cli-0.0.32 → gitpr_cli-0.0.34}/src/i18n.py +0 -0
- {gitpr_cli-0.0.32 → gitpr_cli-0.0.34}/src/linter_engine.py +0 -0
- {gitpr_cli-0.0.32 → gitpr_cli-0.0.34}/src/metrics.py +0 -0
- {gitpr_cli-0.0.32 → gitpr_cli-0.0.34}/src/security.py +0 -0
- {gitpr_cli-0.0.32 → gitpr_cli-0.0.34}/src/spinner.py +0 -0
- {gitpr_cli-0.0.32 → gitpr_cli-0.0.34}/src/tui_issue.py +0 -0
- {gitpr_cli-0.0.32 → gitpr_cli-0.0.34}/src/ui/__init__.py +0 -0
- {gitpr_cli-0.0.32 → gitpr_cli-0.0.34}/src/ui/chat_app.py +0 -0
- {gitpr_cli-0.0.32 → gitpr_cli-0.0.34}/src/ui/help_screen.py +0 -0
- {gitpr_cli-0.0.32 → gitpr_cli-0.0.34}/src/ui/metrics_app.py +0 -0
- {gitpr_cli-0.0.32 → gitpr_cli-0.0.34}/tests/test_blame_metrics.py +0 -0
- {gitpr_cli-0.0.32 → gitpr_cli-0.0.34}/tests/test_chat_backend.py +0 -0
- {gitpr_cli-0.0.32 → gitpr_cli-0.0.34}/tests/test_install_wizard.py +0 -0
- {gitpr_cli-0.0.32 → gitpr_cli-0.0.34}/tests/test_linter_metrics.py +0 -0
- {gitpr_cli-0.0.32 → gitpr_cli-0.0.34}/tests/test_mcp_prompts.py +0 -0
- {gitpr_cli-0.0.32 → gitpr_cli-0.0.34}/tests/test_metrics.py +0 -0
- {gitpr_cli-0.0.32 → gitpr_cli-0.0.34}/tests/test_pre_save.py +0 -0
- {gitpr_cli-0.0.32 → gitpr_cli-0.0.34}/tests/test_skill_command.py +0 -0
- {gitpr_cli-0.0.32 → gitpr_cli-0.0.34}/tests/test_smart_excludes.py +0 -0
- {gitpr_cli-0.0.32 → gitpr_cli-0.0.34}/tests/test_thinking_words.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: gitpr-cli
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.34
|
|
4
4
|
Summary: AI-powered PR automation, commit messages, and code review (Gemini, DeepSeek, and Ollama)
|
|
5
5
|
Author-email: Natan Fiuza <contato@natanfiuza.dev.br>
|
|
6
6
|
Requires-Python: >=3.10
|
|
@@ -162,7 +162,10 @@ You can pass the following *flags* for specific actions:
|
|
|
162
162
|
* `--lang <code>`: Forces the interface language for this execution (e.g.: `en_us`, `pt_br`). Overrides `GITPR_LANG` in `.env` without persisting the change.
|
|
163
163
|
* `-ch` or `--chat`: Opens the **Interactive Pair Programming Chat** — a TUI terminal where the AI sees your current diff and maintains a contextual conversation. Features memory per branch, slash commands (`/explain`, `/tests`, `/optimize`, `/clear`), auto-patching (F5), diff refresh (F2), and session export (F6).
|
|
164
164
|
* `-l` or `--linter`: Runs **only the local static linter** (no AI calls). Ideal for use in CI/CD pipelines to block non-compliant code.
|
|
165
|
+
* `--status`: Lists uncommitted file changes categorized as **new**, **modified**, and **deleted** — fast, no AI, no network. 📖 [Full docs](https://github.com/natanfiuza/gitpr/blob/main/docs/git-status.md)
|
|
166
|
+
* `--no-unstaged-check`: Skips the unstaged files verification before AI processing for a single invocation. Equivalent to `GITPR_SKIP_UNSTAGED_CHECK=true` for one run. 📖 [Full docs](https://github.com/natanfiuza/gitpr/blob/main/docs/git-status.md)
|
|
165
167
|
* `--mcp`: Starts GitPR as an **MCP server** (Model Context Protocol) on stdio transport. Enables integration with VS Code, Cursor, Claude Desktop, and other MCP-compatible editors — exposing all GitPR AI capabilities as 10 annotated tools, 15 resources, and 7 pre-built prompts directly inside your IDE. Also available as the standalone `gitpr-mcp` command.
|
|
168
|
+
* `--plugins`: Lists all **globally installed plugins** — custom linter packs from `~/.gitpr/plugins/linter/` and MCP prompt templates from `~/.gitpr/plugins/prompts/`. These plugins apply across all your projects without duplication. 📖 [Full docs](https://github.com/natanfiuza/gitpr/blob/main/docs/plugins-system.md)
|
|
166
169
|
* `--install`: **Interactive Setup Wizard.** Runs a guided 4-step setup: downloads skill templates, installs Git hooks, configures MCP for detected editors, and checks/requests your AI provider API key. Each step asks for confirmation before proceeding.
|
|
167
170
|
* `-ih` or `--installhooks`: Automatically installs **local Git Hooks** (`pre-commit` and `prepare-commit-msg`) in your repository.
|
|
168
171
|
* `-s` or `--skill`: Creates the AI context template files (`.gitpr.commit.md`, `.gitpr.pr.md`, `.gitpr.review.md`, `.gitpr.filereview.md`, `.gitpr.issue.md`, `.gitpr.blame.md`) and the Linter (`.gitpr.linter.yml`) at the project root.
|
|
@@ -170,6 +173,7 @@ You can pass the following *flags* for specific actions:
|
|
|
170
173
|
* **New Code Issue (`gitpr -is`):** Reads the current `git diff`. **Why use:** Ideal for quickly documenting the task you just finished programming, before committing.
|
|
171
174
|
* **Epic/Release Issue (`gitpr -is -ht`):** Reads the full history of the current branch (Git Log + PR Cache). **Why use:** Ideal for generating consolidated documentation of an entire release or a large *feature* that took several days/commits to complete.
|
|
172
175
|
* **Archaeological/Technical Debt Issue (`gitpr -is -b file:lines`):** Reads the timeline of a specific business rule. **Why use:** Ideal for documenting technical debt, explaining how a legacy code block evolved and why it needs to be refactored.
|
|
176
|
+
* **PR Publisher (default):** Running `gitpr` generates the PR description with AI, saves the `.md` file to `.gitpr/reports/pr_desc/`, and opens an interactive terminal interface (TUI) to review, edit, and publish the Pull Request directly to GitHub via REST API. Before generation, it checks for unstaged files and offers a modal to manage them. Use `--no-publish` to save only the PR file locally without opening the publisher, or `--no-edit` to auto-commit pending changes (with lint validation), auto-push, and publish immediately — handling existing PR updates and optional auto-merge. Use `--base <branch>` to change the target branch. 📖 [Full docs](https://github.com/natanfiuza/gitpr/blob/main/docs/pull-request-publication.md)
|
|
173
177
|
* `-h` or `--help`: Shows the general help with all options. Use together with another flag for **contextual help** (e.g.: `gitpr -h --issue`, `gitpr -h --linter`) with a direct link to the detailed documentation of each feature.
|
|
174
178
|
* `-u` or `--update`: Checks and installs the latest version of GitPR (Auto-Updater).
|
|
175
179
|
|
|
@@ -339,8 +343,39 @@ GitPR automatically removes non-code files from your `git diff` before sending t
|
|
|
339
343
|
- ✅ **Higher-quality analysis** — AI focuses on code changes, not markup
|
|
340
344
|
- ✅ **Zero configuration** — works automatically on every run, managed remotely
|
|
341
345
|
|
|
346
|
+
**Project-local configuration:** Each project can define extra exclusions at `.gitpr/conf/gitpr.smart-excludes.json`. The file is auto-seeded on first run and merged with the global list at runtime:
|
|
347
|
+
|
|
348
|
+
```json
|
|
349
|
+
{
|
|
350
|
+
"_comment": "Project-specific Smart Excludes.",
|
|
351
|
+
"excludes": [
|
|
352
|
+
"dist/",
|
|
353
|
+
"*.pyc",
|
|
354
|
+
"build/",
|
|
355
|
+
"node_modules/"
|
|
356
|
+
]
|
|
357
|
+
}
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
Add framework-specific build artifacts, generated folders, or any pattern that only applies to this project. The file is safe to commit — your team gets the same exclusions.
|
|
361
|
+
|
|
342
362
|
> 📖 **Full documentation:** [docs/smart-excludes.md](https://github.com/natanfiuza/gitpr/blob/main/docs/smart-excludes.md) — available in 5 languages (EN, PT-BR, PT-PT, FR, ES).
|
|
343
363
|
|
|
364
|
+
## 📁 Output Directory Structure
|
|
365
|
+
|
|
366
|
+
By default, GitPR saves all generated files in the `.gitpr/reports/` directory, organized by artifact type:
|
|
367
|
+
|
|
368
|
+
| Artifact | Default Location |
|
|
369
|
+
|---|---|
|
|
370
|
+
| PR Description | `.gitpr/reports/pr_desc/` |
|
|
371
|
+
| Code Review | `.gitpr/reports/review/` |
|
|
372
|
+
| Full Review | `.gitpr/reports/full_review/` |
|
|
373
|
+
| File Review | `.gitpr/reports/file_review/` |
|
|
374
|
+
| Blame Report | `.gitpr/reports/blame/` |
|
|
375
|
+
| Issue Draft | `.gitpr/reports/issue/` |
|
|
376
|
+
|
|
377
|
+
Directories are created automatically on first use. **Backward compatible:** if your `.env` already contains custom paths with directory separators (e.g., `OUTPUT_FILE_NAME=/home/user/prs/my_pr.md`), those are honored as-is — GitPR only redirects bare filenames to `.gitpr/reports/`.
|
|
378
|
+
|
|
344
379
|
## 📚 Technical Documentation and Advanced Guides
|
|
345
380
|
|
|
346
381
|
To keep this README concise, we detail the most advanced **DevOps** and **Continuous Integration** focused implementations in separate documents.
|
|
@@ -363,6 +398,7 @@ If you want to implement GitPR as an automated quality barrier in your team, che
|
|
|
363
398
|
### Core Features
|
|
364
399
|
|
|
365
400
|
* [**Pull Request (Default Mode)**](https://github.com/natanfiuza/gitpr/blob/main/docs/pr-descricao-padrao.md) — Complete flow for generating PR descriptions without flags.
|
|
401
|
+
* [**Pull Request Publisher TUI**](https://github.com/natanfiuza/gitpr/blob/main/docs/pull-request-publication.md) — How to review and publish Pull Requests directly to GitHub from the terminal.
|
|
366
402
|
* [**AI Code Review**](https://github.com/natanfiuza/gitpr/blob/main/docs/code-review-ia.md) — Guide to review modes (`--review`, `--fullreview`) and file auditing (`--input`).
|
|
367
403
|
* [**AI Commit Messages**](https://github.com/natanfiuza/gitpr/blob/main/docs/commit-message-ia.md) — How to generate messages in the Conventional Commits standard and integrate with Git Hooks.
|
|
368
404
|
* [**Issue Generation and TUI Interface**](https://github.com/natanfiuza/gitpr/blob/main/docs/issue-tui-help.md) — How to use the terminal graphical interface (TUI) and the 3 context engines to manage structured Issues.
|