xai-review 0.16.0__tar.gz → 0.17.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/PKG-INFO +260 -0
- xai_review-0.17.0/README.md +236 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/pyproject.toml +1 -1
- xai_review-0.17.0/xai_review.egg-info/PKG-INFO +260 -0
- xai_review-0.16.0/PKG-INFO +0 -303
- xai_review-0.16.0/README.md +0 -279
- xai_review-0.16.0/xai_review.egg-info/PKG-INFO +0 -303
- {xai_review-0.16.0 → xai_review-0.17.0}/LICENSE +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/cli/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/cli/commands/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/cli/commands/run_context_review.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/cli/commands/run_inline_review.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/cli/commands/run_review.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/cli/commands/run_summary_review.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/cli/main.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/clients/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/clients/claude/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/clients/claude/client.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/clients/claude/schema.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/clients/gemini/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/clients/gemini/client.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/clients/gemini/schema.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/clients/github/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/clients/github/client.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/clients/github/pr/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/clients/github/pr/client.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/clients/github/pr/schema/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/clients/github/pr/schema/comments.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/clients/github/pr/schema/files.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/clients/github/pr/schema/pull_request.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/clients/github/pr/schema/reviews.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/clients/gitlab/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/clients/gitlab/client.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/clients/gitlab/mr/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/clients/gitlab/mr/client.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/clients/gitlab/mr/schema/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/clients/gitlab/mr/schema/changes.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/clients/gitlab/mr/schema/comments.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/clients/gitlab/mr/schema/discussions.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/clients/openai/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/clients/openai/client.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/clients/openai/schema.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/config.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/libs/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/libs/asynchronous/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/libs/asynchronous/gather.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/libs/config/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/libs/config/artifacts.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/libs/config/base.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/libs/config/claude.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/libs/config/gemini.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/libs/config/github.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/libs/config/gitlab.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/libs/config/http.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/libs/config/llm.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/libs/config/logger.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/libs/config/openai.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/libs/config/prompt.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/libs/config/review.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/libs/config/vcs.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/libs/constants/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/libs/constants/llm_provider.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/libs/constants/vcs_provider.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/libs/diff/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/libs/diff/models.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/libs/diff/parser.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/libs/diff/tools.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/libs/http/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/libs/http/client.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/libs/http/event_hooks/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/libs/http/event_hooks/base.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/libs/http/event_hooks/logger.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/libs/http/handlers.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/libs/http/transports/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/libs/http/transports/retry.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/libs/json.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/libs/logger.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/libs/resources.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/libs/template/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/libs/template/render.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/prompts/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/prompts/default_context.md +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/prompts/default_inline.md +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/prompts/default_summary.md +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/prompts/default_system_context.md +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/prompts/default_system_inline.md +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/prompts/default_system_summary.md +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/resources/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/resources/pricing.yaml +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/artifacts/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/artifacts/schema.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/artifacts/service.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/artifacts/tools.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/cost/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/cost/schema.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/cost/service.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/diff/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/diff/renderers.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/diff/schema.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/diff/service.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/diff/tools.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/git/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/git/service.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/git/types.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/llm/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/llm/claude/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/llm/claude/client.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/llm/factory.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/llm/gemini/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/llm/gemini/client.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/llm/openai/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/llm/openai/client.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/llm/types.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/prompt/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/prompt/adapter.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/prompt/schema.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/prompt/service.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/prompt/tools.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/review/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/review/inline/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/review/inline/schema.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/review/inline/service.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/review/policy/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/review/policy/service.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/review/service.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/review/summary/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/review/summary/schema.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/review/summary/service.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/vcs/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/vcs/factory.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/vcs/github/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/vcs/github/client.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/vcs/gitlab/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/vcs/gitlab/client.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/services/vcs/types.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/fixtures/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/fixtures/git.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/suites/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/suites/clients/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/suites/clients/claude/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/suites/clients/claude/test_client.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/suites/clients/claude/test_schema.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/suites/clients/gemini/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/suites/clients/gemini/test_client.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/suites/clients/gemini/test_schema.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/suites/clients/github/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/suites/clients/github/test_client.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/suites/clients/gitlab/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/suites/clients/gitlab/test_client.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/suites/clients/openai/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/suites/clients/openai/test_client.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/suites/clients/openai/test_schema.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/suites/libs/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/suites/libs/config/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/suites/libs/config/test_prompt.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/suites/libs/diff/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/suites/libs/diff/test_models.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/suites/libs/diff/test_parser.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/suites/libs/diff/test_tools.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/suites/libs/template/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/suites/libs/template/test_render.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/suites/libs/test_json.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/suites/services/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/suites/services/diff/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/suites/services/diff/test_renderers.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/suites/services/diff/test_service.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/suites/services/diff/test_tools.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/suites/services/prompt/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/suites/services/prompt/test_schema.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/suites/services/prompt/test_service.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/suites/services/prompt/test_tools.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/suites/services/review/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/suites/services/review/inline/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/suites/services/review/inline/test_schema.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/suites/services/review/inline/test_service.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/suites/services/review/policy/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/suites/services/review/policy/test_service.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/suites/services/review/summary/__init__.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/suites/services/review/summary/test_schema.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/ai_review/tests/suites/services/review/summary/test_service.py +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/setup.cfg +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/xai_review.egg-info/SOURCES.txt +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/xai_review.egg-info/dependency_links.txt +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/xai_review.egg-info/entry_points.txt +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/xai_review.egg-info/requires.txt +0 -0
- {xai_review-0.16.0 → xai_review-0.17.0}/xai_review.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: xai-review
|
|
3
|
+
Version: 0.17.0
|
|
4
|
+
Summary: AI-powered code review tool
|
|
5
|
+
Author-email: Nikita Filonov <nikita.filonov@example.com>
|
|
6
|
+
Maintainer-email: Nikita Filonov <nikita.filonov@example.com>
|
|
7
|
+
License: Apache-2.0
|
|
8
|
+
Project-URL: Issues, https://github.com/Nikita-Filonov/ai-review/issues
|
|
9
|
+
Project-URL: Homepage, https://github.com/Nikita-Filonov/ai-review
|
|
10
|
+
Project-URL: Repository, https://github.com/Nikita-Filonov/ai-review
|
|
11
|
+
Keywords: ai,code review,llm,openai,claude,gemini
|
|
12
|
+
Requires-Python: >=3.11
|
|
13
|
+
Description-Content-Type: text/markdown
|
|
14
|
+
License-File: LICENSE
|
|
15
|
+
Requires-Dist: typer
|
|
16
|
+
Requires-Dist: httpx
|
|
17
|
+
Requires-Dist: pyyaml
|
|
18
|
+
Requires-Dist: pytest
|
|
19
|
+
Requires-Dist: loguru
|
|
20
|
+
Requires-Dist: aiofiles
|
|
21
|
+
Requires-Dist: pydantic
|
|
22
|
+
Requires-Dist: pydantic-settings
|
|
23
|
+
Dynamic: license-file
|
|
24
|
+
|
|
25
|
+
# AI Review
|
|
26
|
+
|
|
27
|
+
AI-powered code review tool.
|
|
28
|
+
|
|
29
|
+
[](https://github.com/Nikita-Filonov/ai-review/actions/workflows/workflow-test.yml)
|
|
30
|
+
[](https://codecov.io/gh/Nikita-Filonov/ai-review)
|
|
31
|
+
[](https://pypi.org/project/xai-review/)
|
|
32
|
+
[](./LICENSE)
|
|
33
|
+
[](https://github.com/Nikita-Filonov/ai-review/stargazers)
|
|
34
|
+
|
|
35
|
+
_Made with ❤️ by [@NikitaFilonov](https://t.me/sound_right)_
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## 📑 Table of Contents
|
|
40
|
+
|
|
41
|
+
- ✨ [About](#-about)
|
|
42
|
+
- 🚀 [Quick Start](#-quick-start)
|
|
43
|
+
- ⚙️ [️CI/CD Integration](#-cicd-integration)
|
|
44
|
+
- 🚀 [GitHub Actions](#-github-actions)
|
|
45
|
+
- 🚀 [GitLab CI/CD](#-gitlab-cicd)
|
|
46
|
+
- 📘 [Documentation](#-documentation)
|
|
47
|
+
- ⚠️ [Privacy & Responsibility Notice](#-privacy--responsibility-notice)
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## ✨ About
|
|
52
|
+
|
|
53
|
+
**AI Review** is a developer tool that brings **AI-powered code review** directly into your workflow. It helps teams
|
|
54
|
+
improve code quality, enforce consistency, and speed up the review process.
|
|
55
|
+
|
|
56
|
+
✨ Key features:
|
|
57
|
+
|
|
58
|
+
- **Multiple LLM providers** — choose between **OpenAI**, **Claude**, and **Gemini**, or switch anytime.
|
|
59
|
+
- **VCS integration** — works out of the box with GitLab, GitHub (more providers coming).
|
|
60
|
+
- **Customizable prompts** — adapt inline, context, and summary reviews to match your team’s coding guidelines.
|
|
61
|
+
- **Flexible configuration** — supports `YAML`, `JSON`, and `ENV`, with seamless overrides in CI/CD pipelines.
|
|
62
|
+
- **AI Review runs fully client-side** — it never proxies or inspects your requests.
|
|
63
|
+
|
|
64
|
+
AI Review runs automatically in your CI/CD pipeline and posts both **inline comments** and **summary reviews** right
|
|
65
|
+
inside your merge requests. This makes reviews faster, more consistent, and less error-prone — while still leaving the
|
|
66
|
+
final decision to human reviewers.
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## 🚀 Quick Start
|
|
71
|
+
|
|
72
|
+
Install via **pip**:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
pip install xai-review
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Or run directly via Docker:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
docker run --rm -v $(pwd):/app nikitafilonov/ai-review:latest run-summary
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
👉 Before running, create a basic configuration file [.ai-review.yaml](./docs/configs/.ai-review.yaml) in the root of
|
|
85
|
+
your project:
|
|
86
|
+
|
|
87
|
+
```yaml
|
|
88
|
+
llm:
|
|
89
|
+
provider: OPENAI
|
|
90
|
+
|
|
91
|
+
meta:
|
|
92
|
+
model: gpt-4o-mini
|
|
93
|
+
max_tokens: 1200
|
|
94
|
+
temperature: 0.3
|
|
95
|
+
|
|
96
|
+
http_client:
|
|
97
|
+
timeout: 120
|
|
98
|
+
api_url: https://api.openai.com/v1
|
|
99
|
+
api_token: ${OPENAI_API_KEY}
|
|
100
|
+
|
|
101
|
+
vcs:
|
|
102
|
+
provider: GITLAB
|
|
103
|
+
|
|
104
|
+
pipeline:
|
|
105
|
+
project_id: 1
|
|
106
|
+
merge_request_id: 100
|
|
107
|
+
|
|
108
|
+
http_client:
|
|
109
|
+
timeout: 120
|
|
110
|
+
api_url: https://gitlab.com
|
|
111
|
+
api_token: ${GITLAB_API_TOKEN}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
👉 This will:
|
|
115
|
+
|
|
116
|
+
- Run AI Review against your codebase.
|
|
117
|
+
- Generate inline and/or summary comments (depending on the selected mode).
|
|
118
|
+
- Use your chosen LLM provider (OpenAI GPT-4o-mini in this example).
|
|
119
|
+
|
|
120
|
+
> **Note:** Running `ai-review run` executes the full review (inline + summary).
|
|
121
|
+
> To run only one mode, use the dedicated subcommands:
|
|
122
|
+
> - ai-review run-inline
|
|
123
|
+
> - ai-review run-summary
|
|
124
|
+
> - ai-review run-context
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
AI Review can be configured via `.ai-review.yaml`, `.ai-review.json`, or `.env`. See [./docs/configs](./docs/configs)
|
|
129
|
+
for complete, ready-to-use examples.
|
|
130
|
+
|
|
131
|
+
Key things you can customize:
|
|
132
|
+
|
|
133
|
+
- **LLM provider** — OpenAI, Gemini, or Claude
|
|
134
|
+
- **Model settings** — model name, temperature, max tokens
|
|
135
|
+
- **VCS integration** — GitLab (currently supported) with project/MR context
|
|
136
|
+
- **Review policy** — which files to include/exclude, review modes
|
|
137
|
+
- **Prompts** — inline/context/summary prompt templates
|
|
138
|
+
|
|
139
|
+
👉 Minimal configuration is enough to get started. Use the full reference configs if you want fine-grained control (
|
|
140
|
+
timeouts, artifacts, logging, etc.).
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## ⚙️ CI/CD Integration
|
|
145
|
+
|
|
146
|
+
AI Review works out-of-the-box with major CI providers.
|
|
147
|
+
Use these snippets to run AI Review automatically on Pull/Merge Requests.
|
|
148
|
+
Each integration uses environment variables for LLM and VCS configuration.
|
|
149
|
+
|
|
150
|
+
> For full configuration details (timeouts, artifacts, logging, prompt overrides), see [./docs/configs](./docs/configs).
|
|
151
|
+
|
|
152
|
+
### 🚀 GitHub Actions
|
|
153
|
+
|
|
154
|
+
Add a workflow like this (manual trigger from **Actions** tab):
|
|
155
|
+
|
|
156
|
+
```yaml
|
|
157
|
+
name: AI Review
|
|
158
|
+
on:
|
|
159
|
+
workflow_dispatch:
|
|
160
|
+
inputs:
|
|
161
|
+
review-command:
|
|
162
|
+
type: choice
|
|
163
|
+
default: run
|
|
164
|
+
options: [ run, run-inline, run-context, run-summary ]
|
|
165
|
+
pull-request-number:
|
|
166
|
+
type: string
|
|
167
|
+
required: true
|
|
168
|
+
jobs:
|
|
169
|
+
ai-review:
|
|
170
|
+
runs-on: ubuntu-latest
|
|
171
|
+
steps:
|
|
172
|
+
- uses: actions/checkout@v4
|
|
173
|
+
- uses: Nikita-Filonov/ai-review@v0.17.0
|
|
174
|
+
with:
|
|
175
|
+
review-command: ${{ inputs.review-command }}
|
|
176
|
+
env:
|
|
177
|
+
# --- LLM configuration ---
|
|
178
|
+
LLM__PROVIDER: "OPENAI"
|
|
179
|
+
LLM__META__MODEL: "gpt-4o-mini"
|
|
180
|
+
LLM__META__MAX_TOKENS: "15000"
|
|
181
|
+
LLM__META__TEMPERATURE: "0.3"
|
|
182
|
+
LLM__HTTP_CLIENT__API_URL: "https://api.openai.com/v1"
|
|
183
|
+
LLM__HTTP_CLIENT__API_TOKEN: ${{ secrets.OPENAI_API_KEY }}
|
|
184
|
+
|
|
185
|
+
# --- GitHub integration ---
|
|
186
|
+
VCS__PROVIDER: "GITHUB"
|
|
187
|
+
VCS__PIPELINE__OWNER: ${{ github.repository_owner }}
|
|
188
|
+
VCS__PIPELINE__REPO: ${{ github.event.repository.name }}
|
|
189
|
+
VCS__PIPELINE__PULL_NUMBER: ${{ inputs.pull-request-number }}
|
|
190
|
+
VCS__HTTP_CLIENT__API_URL: "https://api.github.com"
|
|
191
|
+
VCS__HTTP_CLIENT__API_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
192
|
+
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
🔗 Full example: [./docs/ci/github.yaml](./docs/ci/github.yaml)
|
|
196
|
+
|
|
197
|
+
### 🚀 GitLab CI/CD
|
|
198
|
+
|
|
199
|
+
For GitLab users:
|
|
200
|
+
|
|
201
|
+
```yaml
|
|
202
|
+
ai-review:
|
|
203
|
+
when: manual
|
|
204
|
+
stage: review
|
|
205
|
+
image: nikitafilonov/ai-review:latest
|
|
206
|
+
rules:
|
|
207
|
+
- if: '$CI_MERGE_REQUEST_IID'
|
|
208
|
+
script:
|
|
209
|
+
- ai-review run
|
|
210
|
+
variables:
|
|
211
|
+
# --- LLM configuration ---
|
|
212
|
+
LLM__PROVIDER: "OPENAI"
|
|
213
|
+
LLM__META__MODEL: "gpt-4o-mini"
|
|
214
|
+
LLM__META__MAX_TOKENS: "15000"
|
|
215
|
+
LLM__META__TEMPERATURE: "0.3"
|
|
216
|
+
LLM__HTTP_CLIENT__API_URL: "https://api.openai.com/v1"
|
|
217
|
+
LLM__HTTP_CLIENT__API_TOKEN: "$OPENAI_API_KEY"
|
|
218
|
+
|
|
219
|
+
# --- GitLab integration ---
|
|
220
|
+
VCS__PROVIDER: "GITLAB"
|
|
221
|
+
VCS__PIPELINE__PROJECT_ID: "$CI_PROJECT_ID"
|
|
222
|
+
VCS__PIPELINE__MERGE_REQUEST_ID: "$CI_MERGE_REQUEST_IID"
|
|
223
|
+
VCS__HTTP_CLIENT__API_URL: "$CI_SERVER_URL"
|
|
224
|
+
VCS__HTTP_CLIENT__API_TOKEN: "$CI_JOB_TOKEN"
|
|
225
|
+
allow_failure: true # Optional: don't block pipeline if AI review fails
|
|
226
|
+
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
🔗 Full example: [./docs/ci/gitlab.yaml](./docs/ci/gitlab.yaml)
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
## 📘 Documentation
|
|
234
|
+
|
|
235
|
+
See these folders for reference templates and full configuration options:
|
|
236
|
+
|
|
237
|
+
- [./docs/ci](./docs/ci) — CI/CD integration templates (GitHub Actions, GitLab CI)
|
|
238
|
+
- [./docs/configs](./docs/configs) — full configuration examples (`.yaml`, `.json`, `.env`)
|
|
239
|
+
- [./docs/prompts](./docs/prompts) — prompt templates for Python/Go (light & strict modes)
|
|
240
|
+
|
|
241
|
+
---
|
|
242
|
+
|
|
243
|
+
## ⚠️ Privacy & Responsibility Notice
|
|
244
|
+
|
|
245
|
+
AI Review does **not store**, **log**, or **transmit** your source code to any external service other than the **LLM
|
|
246
|
+
provider** explicitly configured in your `.ai-review.yaml`.
|
|
247
|
+
|
|
248
|
+
All data is sent **directly** from your CI/CD environment to the selected LLM API endpoint (e.g. OpenAI, Gemini,
|
|
249
|
+
Claude). No intermediary servers or storage layers are involved.
|
|
250
|
+
|
|
251
|
+
> ⚠️ Please ensure you use proper API tokens and avoid exposing corporate or personal secrets.
|
|
252
|
+
> If you accidentally leak private code or credentials due to incorrect configuration (e.g., using a personal key
|
|
253
|
+
> instead of an enterprise one), it is **your responsibility** — the tool does not retain or share any data by itself.
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
🧠 **AI Review** — open-source AI-powered code reviewer
|
|
258
|
+
|
|
259
|
+
- 📦 [PyPI](https://pypi.org/project/xai-review/)
|
|
260
|
+
- 🐳 [DockerHub](https://hub.docker.com/r/nikitafilonov/ai-review)
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
# AI Review
|
|
2
|
+
|
|
3
|
+
AI-powered code review tool.
|
|
4
|
+
|
|
5
|
+
[](https://github.com/Nikita-Filonov/ai-review/actions/workflows/workflow-test.yml)
|
|
6
|
+
[](https://codecov.io/gh/Nikita-Filonov/ai-review)
|
|
7
|
+
[](https://pypi.org/project/xai-review/)
|
|
8
|
+
[](./LICENSE)
|
|
9
|
+
[](https://github.com/Nikita-Filonov/ai-review/stargazers)
|
|
10
|
+
|
|
11
|
+
_Made with ❤️ by [@NikitaFilonov](https://t.me/sound_right)_
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 📑 Table of Contents
|
|
16
|
+
|
|
17
|
+
- ✨ [About](#-about)
|
|
18
|
+
- 🚀 [Quick Start](#-quick-start)
|
|
19
|
+
- ⚙️ [️CI/CD Integration](#-cicd-integration)
|
|
20
|
+
- 🚀 [GitHub Actions](#-github-actions)
|
|
21
|
+
- 🚀 [GitLab CI/CD](#-gitlab-cicd)
|
|
22
|
+
- 📘 [Documentation](#-documentation)
|
|
23
|
+
- ⚠️ [Privacy & Responsibility Notice](#-privacy--responsibility-notice)
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## ✨ About
|
|
28
|
+
|
|
29
|
+
**AI Review** is a developer tool that brings **AI-powered code review** directly into your workflow. It helps teams
|
|
30
|
+
improve code quality, enforce consistency, and speed up the review process.
|
|
31
|
+
|
|
32
|
+
✨ Key features:
|
|
33
|
+
|
|
34
|
+
- **Multiple LLM providers** — choose between **OpenAI**, **Claude**, and **Gemini**, or switch anytime.
|
|
35
|
+
- **VCS integration** — works out of the box with GitLab, GitHub (more providers coming).
|
|
36
|
+
- **Customizable prompts** — adapt inline, context, and summary reviews to match your team’s coding guidelines.
|
|
37
|
+
- **Flexible configuration** — supports `YAML`, `JSON`, and `ENV`, with seamless overrides in CI/CD pipelines.
|
|
38
|
+
- **AI Review runs fully client-side** — it never proxies or inspects your requests.
|
|
39
|
+
|
|
40
|
+
AI Review runs automatically in your CI/CD pipeline and posts both **inline comments** and **summary reviews** right
|
|
41
|
+
inside your merge requests. This makes reviews faster, more consistent, and less error-prone — while still leaving the
|
|
42
|
+
final decision to human reviewers.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## 🚀 Quick Start
|
|
47
|
+
|
|
48
|
+
Install via **pip**:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
pip install xai-review
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Or run directly via Docker:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
docker run --rm -v $(pwd):/app nikitafilonov/ai-review:latest run-summary
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
👉 Before running, create a basic configuration file [.ai-review.yaml](./docs/configs/.ai-review.yaml) in the root of
|
|
61
|
+
your project:
|
|
62
|
+
|
|
63
|
+
```yaml
|
|
64
|
+
llm:
|
|
65
|
+
provider: OPENAI
|
|
66
|
+
|
|
67
|
+
meta:
|
|
68
|
+
model: gpt-4o-mini
|
|
69
|
+
max_tokens: 1200
|
|
70
|
+
temperature: 0.3
|
|
71
|
+
|
|
72
|
+
http_client:
|
|
73
|
+
timeout: 120
|
|
74
|
+
api_url: https://api.openai.com/v1
|
|
75
|
+
api_token: ${OPENAI_API_KEY}
|
|
76
|
+
|
|
77
|
+
vcs:
|
|
78
|
+
provider: GITLAB
|
|
79
|
+
|
|
80
|
+
pipeline:
|
|
81
|
+
project_id: 1
|
|
82
|
+
merge_request_id: 100
|
|
83
|
+
|
|
84
|
+
http_client:
|
|
85
|
+
timeout: 120
|
|
86
|
+
api_url: https://gitlab.com
|
|
87
|
+
api_token: ${GITLAB_API_TOKEN}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
👉 This will:
|
|
91
|
+
|
|
92
|
+
- Run AI Review against your codebase.
|
|
93
|
+
- Generate inline and/or summary comments (depending on the selected mode).
|
|
94
|
+
- Use your chosen LLM provider (OpenAI GPT-4o-mini in this example).
|
|
95
|
+
|
|
96
|
+
> **Note:** Running `ai-review run` executes the full review (inline + summary).
|
|
97
|
+
> To run only one mode, use the dedicated subcommands:
|
|
98
|
+
> - ai-review run-inline
|
|
99
|
+
> - ai-review run-summary
|
|
100
|
+
> - ai-review run-context
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
AI Review can be configured via `.ai-review.yaml`, `.ai-review.json`, or `.env`. See [./docs/configs](./docs/configs)
|
|
105
|
+
for complete, ready-to-use examples.
|
|
106
|
+
|
|
107
|
+
Key things you can customize:
|
|
108
|
+
|
|
109
|
+
- **LLM provider** — OpenAI, Gemini, or Claude
|
|
110
|
+
- **Model settings** — model name, temperature, max tokens
|
|
111
|
+
- **VCS integration** — GitLab (currently supported) with project/MR context
|
|
112
|
+
- **Review policy** — which files to include/exclude, review modes
|
|
113
|
+
- **Prompts** — inline/context/summary prompt templates
|
|
114
|
+
|
|
115
|
+
👉 Minimal configuration is enough to get started. Use the full reference configs if you want fine-grained control (
|
|
116
|
+
timeouts, artifacts, logging, etc.).
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## ⚙️ CI/CD Integration
|
|
121
|
+
|
|
122
|
+
AI Review works out-of-the-box with major CI providers.
|
|
123
|
+
Use these snippets to run AI Review automatically on Pull/Merge Requests.
|
|
124
|
+
Each integration uses environment variables for LLM and VCS configuration.
|
|
125
|
+
|
|
126
|
+
> For full configuration details (timeouts, artifacts, logging, prompt overrides), see [./docs/configs](./docs/configs).
|
|
127
|
+
|
|
128
|
+
### 🚀 GitHub Actions
|
|
129
|
+
|
|
130
|
+
Add a workflow like this (manual trigger from **Actions** tab):
|
|
131
|
+
|
|
132
|
+
```yaml
|
|
133
|
+
name: AI Review
|
|
134
|
+
on:
|
|
135
|
+
workflow_dispatch:
|
|
136
|
+
inputs:
|
|
137
|
+
review-command:
|
|
138
|
+
type: choice
|
|
139
|
+
default: run
|
|
140
|
+
options: [ run, run-inline, run-context, run-summary ]
|
|
141
|
+
pull-request-number:
|
|
142
|
+
type: string
|
|
143
|
+
required: true
|
|
144
|
+
jobs:
|
|
145
|
+
ai-review:
|
|
146
|
+
runs-on: ubuntu-latest
|
|
147
|
+
steps:
|
|
148
|
+
- uses: actions/checkout@v4
|
|
149
|
+
- uses: Nikita-Filonov/ai-review@v0.17.0
|
|
150
|
+
with:
|
|
151
|
+
review-command: ${{ inputs.review-command }}
|
|
152
|
+
env:
|
|
153
|
+
# --- LLM configuration ---
|
|
154
|
+
LLM__PROVIDER: "OPENAI"
|
|
155
|
+
LLM__META__MODEL: "gpt-4o-mini"
|
|
156
|
+
LLM__META__MAX_TOKENS: "15000"
|
|
157
|
+
LLM__META__TEMPERATURE: "0.3"
|
|
158
|
+
LLM__HTTP_CLIENT__API_URL: "https://api.openai.com/v1"
|
|
159
|
+
LLM__HTTP_CLIENT__API_TOKEN: ${{ secrets.OPENAI_API_KEY }}
|
|
160
|
+
|
|
161
|
+
# --- GitHub integration ---
|
|
162
|
+
VCS__PROVIDER: "GITHUB"
|
|
163
|
+
VCS__PIPELINE__OWNER: ${{ github.repository_owner }}
|
|
164
|
+
VCS__PIPELINE__REPO: ${{ github.event.repository.name }}
|
|
165
|
+
VCS__PIPELINE__PULL_NUMBER: ${{ inputs.pull-request-number }}
|
|
166
|
+
VCS__HTTP_CLIENT__API_URL: "https://api.github.com"
|
|
167
|
+
VCS__HTTP_CLIENT__API_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
168
|
+
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
🔗 Full example: [./docs/ci/github.yaml](./docs/ci/github.yaml)
|
|
172
|
+
|
|
173
|
+
### 🚀 GitLab CI/CD
|
|
174
|
+
|
|
175
|
+
For GitLab users:
|
|
176
|
+
|
|
177
|
+
```yaml
|
|
178
|
+
ai-review:
|
|
179
|
+
when: manual
|
|
180
|
+
stage: review
|
|
181
|
+
image: nikitafilonov/ai-review:latest
|
|
182
|
+
rules:
|
|
183
|
+
- if: '$CI_MERGE_REQUEST_IID'
|
|
184
|
+
script:
|
|
185
|
+
- ai-review run
|
|
186
|
+
variables:
|
|
187
|
+
# --- LLM configuration ---
|
|
188
|
+
LLM__PROVIDER: "OPENAI"
|
|
189
|
+
LLM__META__MODEL: "gpt-4o-mini"
|
|
190
|
+
LLM__META__MAX_TOKENS: "15000"
|
|
191
|
+
LLM__META__TEMPERATURE: "0.3"
|
|
192
|
+
LLM__HTTP_CLIENT__API_URL: "https://api.openai.com/v1"
|
|
193
|
+
LLM__HTTP_CLIENT__API_TOKEN: "$OPENAI_API_KEY"
|
|
194
|
+
|
|
195
|
+
# --- GitLab integration ---
|
|
196
|
+
VCS__PROVIDER: "GITLAB"
|
|
197
|
+
VCS__PIPELINE__PROJECT_ID: "$CI_PROJECT_ID"
|
|
198
|
+
VCS__PIPELINE__MERGE_REQUEST_ID: "$CI_MERGE_REQUEST_IID"
|
|
199
|
+
VCS__HTTP_CLIENT__API_URL: "$CI_SERVER_URL"
|
|
200
|
+
VCS__HTTP_CLIENT__API_TOKEN: "$CI_JOB_TOKEN"
|
|
201
|
+
allow_failure: true # Optional: don't block pipeline if AI review fails
|
|
202
|
+
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
🔗 Full example: [./docs/ci/gitlab.yaml](./docs/ci/gitlab.yaml)
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
## 📘 Documentation
|
|
210
|
+
|
|
211
|
+
See these folders for reference templates and full configuration options:
|
|
212
|
+
|
|
213
|
+
- [./docs/ci](./docs/ci) — CI/CD integration templates (GitHub Actions, GitLab CI)
|
|
214
|
+
- [./docs/configs](./docs/configs) — full configuration examples (`.yaml`, `.json`, `.env`)
|
|
215
|
+
- [./docs/prompts](./docs/prompts) — prompt templates for Python/Go (light & strict modes)
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
## ⚠️ Privacy & Responsibility Notice
|
|
220
|
+
|
|
221
|
+
AI Review does **not store**, **log**, or **transmit** your source code to any external service other than the **LLM
|
|
222
|
+
provider** explicitly configured in your `.ai-review.yaml`.
|
|
223
|
+
|
|
224
|
+
All data is sent **directly** from your CI/CD environment to the selected LLM API endpoint (e.g. OpenAI, Gemini,
|
|
225
|
+
Claude). No intermediary servers or storage layers are involved.
|
|
226
|
+
|
|
227
|
+
> ⚠️ Please ensure you use proper API tokens and avoid exposing corporate or personal secrets.
|
|
228
|
+
> If you accidentally leak private code or credentials due to incorrect configuration (e.g., using a personal key
|
|
229
|
+
> instead of an enterprise one), it is **your responsibility** — the tool does not retain or share any data by itself.
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
🧠 **AI Review** — open-source AI-powered code reviewer
|
|
234
|
+
|
|
235
|
+
- 📦 [PyPI](https://pypi.org/project/xai-review/)
|
|
236
|
+
- 🐳 [DockerHub](https://hub.docker.com/r/nikitafilonov/ai-review)
|