xai-review 0.17.0__tar.gz → 0.18.0__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.
Potentially problematic release.
This version of xai-review might be problematic. Click here for more details.
- {xai_review-0.17.0 → xai_review-0.18.0}/PKG-INFO +26 -4
- {xai_review-0.17.0 → xai_review-0.18.0}/README.md +25 -3
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/vcs/github/client.py +4 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/pyproject.toml +1 -1
- {xai_review-0.17.0 → xai_review-0.18.0}/xai_review.egg-info/PKG-INFO +26 -4
- {xai_review-0.17.0 → xai_review-0.18.0}/LICENSE +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/cli/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/cli/commands/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/cli/commands/run_context_review.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/cli/commands/run_inline_review.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/cli/commands/run_review.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/cli/commands/run_summary_review.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/cli/main.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/clients/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/clients/claude/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/clients/claude/client.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/clients/claude/schema.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/clients/gemini/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/clients/gemini/client.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/clients/gemini/schema.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/clients/github/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/clients/github/client.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/clients/github/pr/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/clients/github/pr/client.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/clients/github/pr/schema/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/clients/github/pr/schema/comments.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/clients/github/pr/schema/files.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/clients/github/pr/schema/pull_request.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/clients/github/pr/schema/reviews.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/clients/gitlab/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/clients/gitlab/client.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/clients/gitlab/mr/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/clients/gitlab/mr/client.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/clients/gitlab/mr/schema/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/clients/gitlab/mr/schema/changes.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/clients/gitlab/mr/schema/comments.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/clients/gitlab/mr/schema/discussions.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/clients/openai/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/clients/openai/client.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/clients/openai/schema.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/config.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/libs/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/libs/asynchronous/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/libs/asynchronous/gather.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/libs/config/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/libs/config/artifacts.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/libs/config/base.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/libs/config/claude.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/libs/config/gemini.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/libs/config/github.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/libs/config/gitlab.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/libs/config/http.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/libs/config/llm.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/libs/config/logger.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/libs/config/openai.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/libs/config/prompt.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/libs/config/review.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/libs/config/vcs.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/libs/constants/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/libs/constants/llm_provider.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/libs/constants/vcs_provider.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/libs/diff/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/libs/diff/models.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/libs/diff/parser.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/libs/diff/tools.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/libs/http/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/libs/http/client.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/libs/http/event_hooks/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/libs/http/event_hooks/base.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/libs/http/event_hooks/logger.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/libs/http/handlers.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/libs/http/transports/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/libs/http/transports/retry.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/libs/json.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/libs/logger.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/libs/resources.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/libs/template/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/libs/template/render.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/prompts/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/prompts/default_context.md +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/prompts/default_inline.md +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/prompts/default_summary.md +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/prompts/default_system_context.md +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/prompts/default_system_inline.md +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/prompts/default_system_summary.md +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/resources/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/resources/pricing.yaml +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/artifacts/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/artifacts/schema.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/artifacts/service.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/artifacts/tools.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/cost/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/cost/schema.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/cost/service.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/diff/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/diff/renderers.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/diff/schema.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/diff/service.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/diff/tools.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/git/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/git/service.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/git/types.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/llm/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/llm/claude/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/llm/claude/client.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/llm/factory.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/llm/gemini/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/llm/gemini/client.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/llm/openai/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/llm/openai/client.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/llm/types.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/prompt/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/prompt/adapter.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/prompt/schema.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/prompt/service.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/prompt/tools.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/review/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/review/inline/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/review/inline/schema.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/review/inline/service.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/review/policy/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/review/policy/service.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/review/service.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/review/summary/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/review/summary/schema.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/review/summary/service.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/vcs/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/vcs/factory.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/vcs/github/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/vcs/gitlab/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/vcs/gitlab/client.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/services/vcs/types.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/fixtures/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/fixtures/git.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/clients/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/clients/claude/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/clients/claude/test_client.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/clients/claude/test_schema.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/clients/gemini/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/clients/gemini/test_client.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/clients/gemini/test_schema.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/clients/github/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/clients/github/test_client.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/clients/gitlab/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/clients/gitlab/test_client.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/clients/openai/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/clients/openai/test_client.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/clients/openai/test_schema.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/libs/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/libs/config/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/libs/config/test_prompt.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/libs/diff/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/libs/diff/test_models.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/libs/diff/test_parser.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/libs/diff/test_tools.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/libs/template/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/libs/template/test_render.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/libs/test_json.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/services/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/services/diff/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/services/diff/test_renderers.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/services/diff/test_service.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/services/diff/test_tools.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/services/prompt/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/services/prompt/test_schema.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/services/prompt/test_service.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/services/prompt/test_tools.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/services/review/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/services/review/inline/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/services/review/inline/test_schema.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/services/review/inline/test_service.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/services/review/policy/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/services/review/policy/test_service.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/services/review/summary/__init__.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/services/review/summary/test_schema.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/services/review/summary/test_service.py +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/setup.cfg +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/xai_review.egg-info/SOURCES.txt +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/xai_review.egg-info/dependency_links.txt +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/xai_review.egg-info/entry_points.txt +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/xai_review.egg-info/requires.txt +0 -0
- {xai_review-0.17.0 → xai_review-0.18.0}/xai_review.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: xai-review
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.18.0
|
|
4
4
|
Summary: AI-powered code review tool
|
|
5
5
|
Author-email: Nikita Filonov <nikita.filonov@example.com>
|
|
6
6
|
Maintainer-email: Nikita Filonov <nikita.filonov@example.com>
|
|
@@ -39,6 +39,7 @@ _Made with ❤️ by [@NikitaFilonov](https://t.me/sound_right)_
|
|
|
39
39
|
## 📑 Table of Contents
|
|
40
40
|
|
|
41
41
|
- ✨ [About](#-about)
|
|
42
|
+
- 🧪 [Live Preview](#-live-preview)
|
|
42
43
|
- 🚀 [Quick Start](#-quick-start)
|
|
43
44
|
- ⚙️ [️CI/CD Integration](#-cicd-integration)
|
|
44
45
|
- 🚀 [GitHub Actions](#-github-actions)
|
|
@@ -67,6 +68,27 @@ final decision to human reviewers.
|
|
|
67
68
|
|
|
68
69
|
---
|
|
69
70
|
|
|
71
|
+
## 🧪 Live Preview
|
|
72
|
+
|
|
73
|
+
Curious how **AI Review** works in practice? Here are three real Pull Requests reviewed entirely by the tool — one per
|
|
74
|
+
mode:
|
|
75
|
+
|
|
76
|
+
| Mode | Description | Live Example |
|
|
77
|
+
|------------|----------------------------------------------------|-------------------------------------------------------------------------------|
|
|
78
|
+
| 🧩 Inline | Adds line-by-line comments directly in the diff | [Try AI Review (inline)](https://github.com/Nikita-Filonov/ai-review/pull/4) |
|
|
79
|
+
| 📄 Summary | Posts a concise summary review with key highlights | [Try AI Review (context)](https://github.com/Nikita-Filonov/ai-review/pull/5) |
|
|
80
|
+
| 🧠 Context | Performs broader analysis across multiple files | [Try AI Review (summary)](https://github.com/Nikita-Filonov/ai-review/pull/6) |
|
|
81
|
+
|
|
82
|
+
Each review was generated automatically via GitHub Actions using the corresponding mode:
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
ai-review run-inline
|
|
86
|
+
ai-review run-summary
|
|
87
|
+
ai-review run-context
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
70
92
|
## 🚀 Quick Start
|
|
71
93
|
|
|
72
94
|
Install via **pip**:
|
|
@@ -120,8 +142,8 @@ vcs:
|
|
|
120
142
|
> **Note:** Running `ai-review run` executes the full review (inline + summary).
|
|
121
143
|
> To run only one mode, use the dedicated subcommands:
|
|
122
144
|
> - ai-review run-inline
|
|
123
|
-
> - ai-review run-summary
|
|
124
145
|
> - ai-review run-context
|
|
146
|
+
> - ai-review run-summary
|
|
125
147
|
|
|
126
148
|
---
|
|
127
149
|
|
|
@@ -132,7 +154,7 @@ Key things you can customize:
|
|
|
132
154
|
|
|
133
155
|
- **LLM provider** — OpenAI, Gemini, or Claude
|
|
134
156
|
- **Model settings** — model name, temperature, max tokens
|
|
135
|
-
- **VCS integration** —
|
|
157
|
+
- **VCS integration** — works out of the box with **GitLab** and **GitHub**.
|
|
136
158
|
- **Review policy** — which files to include/exclude, review modes
|
|
137
159
|
- **Prompts** — inline/context/summary prompt templates
|
|
138
160
|
|
|
@@ -170,7 +192,7 @@ jobs:
|
|
|
170
192
|
runs-on: ubuntu-latest
|
|
171
193
|
steps:
|
|
172
194
|
- uses: actions/checkout@v4
|
|
173
|
-
- uses: Nikita-Filonov/ai-review@v0.
|
|
195
|
+
- uses: Nikita-Filonov/ai-review@v0.18.0
|
|
174
196
|
with:
|
|
175
197
|
review-command: ${{ inputs.review-command }}
|
|
176
198
|
env:
|
|
@@ -15,6 +15,7 @@ _Made with ❤️ by [@NikitaFilonov](https://t.me/sound_right)_
|
|
|
15
15
|
## 📑 Table of Contents
|
|
16
16
|
|
|
17
17
|
- ✨ [About](#-about)
|
|
18
|
+
- 🧪 [Live Preview](#-live-preview)
|
|
18
19
|
- 🚀 [Quick Start](#-quick-start)
|
|
19
20
|
- ⚙️ [️CI/CD Integration](#-cicd-integration)
|
|
20
21
|
- 🚀 [GitHub Actions](#-github-actions)
|
|
@@ -43,6 +44,27 @@ final decision to human reviewers.
|
|
|
43
44
|
|
|
44
45
|
---
|
|
45
46
|
|
|
47
|
+
## 🧪 Live Preview
|
|
48
|
+
|
|
49
|
+
Curious how **AI Review** works in practice? Here are three real Pull Requests reviewed entirely by the tool — one per
|
|
50
|
+
mode:
|
|
51
|
+
|
|
52
|
+
| Mode | Description | Live Example |
|
|
53
|
+
|------------|----------------------------------------------------|-------------------------------------------------------------------------------|
|
|
54
|
+
| 🧩 Inline | Adds line-by-line comments directly in the diff | [Try AI Review (inline)](https://github.com/Nikita-Filonov/ai-review/pull/4) |
|
|
55
|
+
| 📄 Summary | Posts a concise summary review with key highlights | [Try AI Review (context)](https://github.com/Nikita-Filonov/ai-review/pull/5) |
|
|
56
|
+
| 🧠 Context | Performs broader analysis across multiple files | [Try AI Review (summary)](https://github.com/Nikita-Filonov/ai-review/pull/6) |
|
|
57
|
+
|
|
58
|
+
Each review was generated automatically via GitHub Actions using the corresponding mode:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
ai-review run-inline
|
|
62
|
+
ai-review run-summary
|
|
63
|
+
ai-review run-context
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
46
68
|
## 🚀 Quick Start
|
|
47
69
|
|
|
48
70
|
Install via **pip**:
|
|
@@ -96,8 +118,8 @@ vcs:
|
|
|
96
118
|
> **Note:** Running `ai-review run` executes the full review (inline + summary).
|
|
97
119
|
> To run only one mode, use the dedicated subcommands:
|
|
98
120
|
> - ai-review run-inline
|
|
99
|
-
> - ai-review run-summary
|
|
100
121
|
> - ai-review run-context
|
|
122
|
+
> - ai-review run-summary
|
|
101
123
|
|
|
102
124
|
---
|
|
103
125
|
|
|
@@ -108,7 +130,7 @@ Key things you can customize:
|
|
|
108
130
|
|
|
109
131
|
- **LLM provider** — OpenAI, Gemini, or Claude
|
|
110
132
|
- **Model settings** — model name, temperature, max tokens
|
|
111
|
-
- **VCS integration** —
|
|
133
|
+
- **VCS integration** — works out of the box with **GitLab** and **GitHub**.
|
|
112
134
|
- **Review policy** — which files to include/exclude, review modes
|
|
113
135
|
- **Prompts** — inline/context/summary prompt templates
|
|
114
136
|
|
|
@@ -146,7 +168,7 @@ jobs:
|
|
|
146
168
|
runs-on: ubuntu-latest
|
|
147
169
|
steps:
|
|
148
170
|
- uses: actions/checkout@v4
|
|
149
|
-
- uses: Nikita-Filonov/ai-review@v0.
|
|
171
|
+
- uses: Nikita-Filonov/ai-review@v0.18.0
|
|
150
172
|
with:
|
|
151
173
|
review-command: ${{ inputs.review-command }}
|
|
152
174
|
env:
|
|
@@ -124,6 +124,10 @@ class GitHubVCSClient(VCSClient):
|
|
|
124
124
|
|
|
125
125
|
async def create_discussion(self, file: str, line: int, message: str) -> None:
|
|
126
126
|
try:
|
|
127
|
+
logger.info(
|
|
128
|
+
f"Posting inline comment in {self.owner}/{self.repo}#{self.pull_number} at {file}:{line}: {message}"
|
|
129
|
+
)
|
|
130
|
+
|
|
127
131
|
pr = await self.http_client.pr.get_pull_request(
|
|
128
132
|
owner=self.owner, repo=self.repo, pull_number=self.pull_number
|
|
129
133
|
)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: xai-review
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.18.0
|
|
4
4
|
Summary: AI-powered code review tool
|
|
5
5
|
Author-email: Nikita Filonov <nikita.filonov@example.com>
|
|
6
6
|
Maintainer-email: Nikita Filonov <nikita.filonov@example.com>
|
|
@@ -39,6 +39,7 @@ _Made with ❤️ by [@NikitaFilonov](https://t.me/sound_right)_
|
|
|
39
39
|
## 📑 Table of Contents
|
|
40
40
|
|
|
41
41
|
- ✨ [About](#-about)
|
|
42
|
+
- 🧪 [Live Preview](#-live-preview)
|
|
42
43
|
- 🚀 [Quick Start](#-quick-start)
|
|
43
44
|
- ⚙️ [️CI/CD Integration](#-cicd-integration)
|
|
44
45
|
- 🚀 [GitHub Actions](#-github-actions)
|
|
@@ -67,6 +68,27 @@ final decision to human reviewers.
|
|
|
67
68
|
|
|
68
69
|
---
|
|
69
70
|
|
|
71
|
+
## 🧪 Live Preview
|
|
72
|
+
|
|
73
|
+
Curious how **AI Review** works in practice? Here are three real Pull Requests reviewed entirely by the tool — one per
|
|
74
|
+
mode:
|
|
75
|
+
|
|
76
|
+
| Mode | Description | Live Example |
|
|
77
|
+
|------------|----------------------------------------------------|-------------------------------------------------------------------------------|
|
|
78
|
+
| 🧩 Inline | Adds line-by-line comments directly in the diff | [Try AI Review (inline)](https://github.com/Nikita-Filonov/ai-review/pull/4) |
|
|
79
|
+
| 📄 Summary | Posts a concise summary review with key highlights | [Try AI Review (context)](https://github.com/Nikita-Filonov/ai-review/pull/5) |
|
|
80
|
+
| 🧠 Context | Performs broader analysis across multiple files | [Try AI Review (summary)](https://github.com/Nikita-Filonov/ai-review/pull/6) |
|
|
81
|
+
|
|
82
|
+
Each review was generated automatically via GitHub Actions using the corresponding mode:
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
ai-review run-inline
|
|
86
|
+
ai-review run-summary
|
|
87
|
+
ai-review run-context
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
70
92
|
## 🚀 Quick Start
|
|
71
93
|
|
|
72
94
|
Install via **pip**:
|
|
@@ -120,8 +142,8 @@ vcs:
|
|
|
120
142
|
> **Note:** Running `ai-review run` executes the full review (inline + summary).
|
|
121
143
|
> To run only one mode, use the dedicated subcommands:
|
|
122
144
|
> - ai-review run-inline
|
|
123
|
-
> - ai-review run-summary
|
|
124
145
|
> - ai-review run-context
|
|
146
|
+
> - ai-review run-summary
|
|
125
147
|
|
|
126
148
|
---
|
|
127
149
|
|
|
@@ -132,7 +154,7 @@ Key things you can customize:
|
|
|
132
154
|
|
|
133
155
|
- **LLM provider** — OpenAI, Gemini, or Claude
|
|
134
156
|
- **Model settings** — model name, temperature, max tokens
|
|
135
|
-
- **VCS integration** —
|
|
157
|
+
- **VCS integration** — works out of the box with **GitLab** and **GitHub**.
|
|
136
158
|
- **Review policy** — which files to include/exclude, review modes
|
|
137
159
|
- **Prompts** — inline/context/summary prompt templates
|
|
138
160
|
|
|
@@ -170,7 +192,7 @@ jobs:
|
|
|
170
192
|
runs-on: ubuntu-latest
|
|
171
193
|
steps:
|
|
172
194
|
- uses: actions/checkout@v4
|
|
173
|
-
- uses: Nikita-Filonov/ai-review@v0.
|
|
195
|
+
- uses: Nikita-Filonov/ai-review@v0.18.0
|
|
174
196
|
with:
|
|
175
197
|
review-command: ${{ inputs.review-command }}
|
|
176
198
|
env:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/clients/claude/test_client.py
RENAMED
|
File without changes
|
{xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/clients/claude/test_schema.py
RENAMED
|
File without changes
|
|
File without changes
|
{xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/clients/gemini/test_client.py
RENAMED
|
File without changes
|
{xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/clients/gemini/test_schema.py
RENAMED
|
File without changes
|
|
File without changes
|
{xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/clients/github/test_client.py
RENAMED
|
File without changes
|
|
File without changes
|
{xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/clients/gitlab/test_client.py
RENAMED
|
File without changes
|
|
File without changes
|
{xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/clients/openai/test_client.py
RENAMED
|
File without changes
|
{xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/clients/openai/test_schema.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/services/diff/test_renderers.py
RENAMED
|
File without changes
|
{xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/services/diff/test_service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/services/prompt/test_schema.py
RENAMED
|
File without changes
|
{xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/services/prompt/test_service.py
RENAMED
|
File without changes
|
{xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/services/prompt/test_tools.py
RENAMED
|
File without changes
|
|
File without changes
|
{xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/services/review/inline/__init__.py
RENAMED
|
File without changes
|
{xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/services/review/inline/test_schema.py
RENAMED
|
File without changes
|
|
File without changes
|
{xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/services/review/policy/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{xai_review-0.17.0 → xai_review-0.18.0}/ai_review/tests/suites/services/review/summary/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|