No project description provided
Project description
📖 Guide
1️⃣ Install
- install
brew: https://brew.sh/
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- install
pipx
brew install pipx
pipx ensurepath
- install
v-cr
方式一:安装 PyPI 远程仓库包
pipx install v-magic-code-review
方式二(推荐):安装本地项目包
# 进入你的项目根目录
cd /path/to/your/v-magic-code-review
# 使用可编辑模式(-e)安装
pipx install -e .
2️⃣ Setup environment variables
基础环境变量
设置以下环境变量,可直接写入到 ~/.zshrc 里:
# jira
export JIRA_HOST=https://jira.********.com
export JIRA_TOKEN=OTY**************************Y4
# confluence
export CONFLUENCE_HOST=https://wiki.********.com
export CONFLUENCE_TOKEN=MDQ2**************************1u
# gitlab
export GITLAB_HOST=https://gitlab.********.com
export GITLAB_TOKEN=_PH*****************UiW
如何获取这些变量:
| Variable | How to Get |
|---|---|
JIRA_TOKEN |
Go to Jira → 右上角头像点击 Profile → Personal Access Tokens → Create token |
CONFLUENCE_TOKEN |
Go to Confluence → 右上角头像点击 Settings → Personal Access Tokens → Create token |
GITLAB_TOKEN |
Go to GitLab → 左上角头像点击 Preferences → Access Tokens → Add new token |
Gemini Cookie
Gemini Cookie 可以手动配置,也可以自动获取,下面列出这两种方法
自动获取(推荐)
在浏览器中登陆 Gemini 后,使用命令就可以自动获取浏览器中的 Cookie,如果遇到权限提示,输入密码放行即可。
默认从 Chrome 浏览器获取 Cookie,如果你使用其他浏览器,请设置环境变量 BROWSER_NAME:
export BROWSER_NAME='arc'
支持的浏览器:
- chrome
- firefox
- brave
- edge
- safari
- arc
手动设置
设置以下环境变量,可直接写入到 ~/.zshrc 里:
# gemini(可不配置,不配置默认会从浏览器自动获取。建议不配置)
export GEMINI_COOKIE_SECURE_1PSID=g.a0KAaMS************************************************AROiSJgW0076
export GEMINI_COOKIE_SECURE_1PSIDTS=sidts-CjAB*****************************KZn7ScYuMQAA
如何获取这些变量:
| Variable | How to Get |
|---|---|
GEMINI_COOKIE_SECURE_1PSID(可忽略) |
Login to Gemini → F12 打开 Developer Tools → Application → Cookies → Copy value:__Secure-1PSID |
GEMINI_COOKIE_SECURE_1PSIDTS (可忽略) |
Login to Gemini → F12 打开 Developer Tools → Application → Cookies → Copy value:__Secure-1PSIDTS |
3️⃣ Usage
$ v-cr -h
usage: v-cr [-h] [-m MR_ID] [-o] [-c] [--prompt-templates PROMPT_TEMPLATES] [--list-prompt-templates] [--debug] [--version] [--advance] [JIRA_KEY OR MR_ID]
Magic Code Review
positional arguments:
JIRA_KEY OR MR_ID jira issue key or merge request id
options:
-h, --help show this help message and exit
-m, --mr-id MR_ID 【DEPRECATED】merge request id
-o, --only-code only review code diff
-c, --copy-prompt copy prompt to clipboard
--prompt-templates PROMPT_TEMPLATES
specific prompt template list, separated by [,]
--list-prompt-templates
list all prompt templates
--debug
--version
--advance use staged review
自动发送给 Gemini
Jira ID
$ v-cr ORI-100000
Merge Request ID
$ v-cr 30145
手动发送给 Gemini
$ v-cr ORI-100000 -c
......
......
2025-06-12 11:13:32,126 - INFO - ✨ issue comments length: 420
2025-06-12 11:13:33,231 - INFO - ✨ code diff length: 990
2025-06-12 11:13:33,387 - INFO - ✨ prompt length: 28737, tokens num: 13015
✅ Prompt 已复制到剪贴板
advance 模式
$ v-cr ORI-100000 --advance
这种模式适用于 Merge Request Changes 比较大的场景,工具会将 Changes 拆分后分组 Review,最后进行合并,给出审查报告。
注意:这种模式使用多次对话进行 Code Review,对 Gemini 的 Chat History 污染比较严重!
自定义 Prompt
创建
$ cd ~/.local/share/v-cr/prompts
$ touch my-prompt.txt
变量说明
| 变量 | 说明 |
|---|---|
{issue_summary} |
Jira Issue 标题 |
{issue_requirements} |
Jira Issue Description |
{issue_design} |
Jira Issue 关联的设计 Wiki |
{issue_comments} |
Jira Issue 的评论 |
{mr_description} |
Gitlab Merge Request 的描述 |
{mr_diff} |
Gitlab Merge Request 的代码变更 |
Prompt 示例
帮我优化一下代码变量命名
{mr_diff}
帮我看下需求和实现的代码是否一致,是否漏了需求
<section>需求</section>
{issue_requirements}
<section>代码实现 Diff</section>
{mr_diff}
列出可用的 Prompts
$ v-cr --list-prompt-template
Avalible Prompt Templates:
• DEFAULT
• my-prompt
指定 Prompt
$ v-cr ORI-100000 --prompt-template my-prompt
🤝 Contributing
- install
uv
brew install uv
- install virtualenv and dependencies
uv venv
uv sync --all-extras
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file v_magic_code_review-0.2.4.tar.gz.
File metadata
- Download URL: v_magic_code_review-0.2.4.tar.gz
- Upload date:
- Size: 35.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ad0c1f372115812448c57e4753a6f230a811e22557d07356273195bdbd5479c6
|
|
| MD5 |
e09832d2906ba2badecab1ef926756fd
|
|
| BLAKE2b-256 |
9049c10e89e9983f9b41168cad5309a112c214a09dad87ac6a997cbabb02d4bf
|
File details
Details for the file v_magic_code_review-0.2.4-py3-none-any.whl.
File metadata
- Download URL: v_magic_code_review-0.2.4-py3-none-any.whl
- Upload date:
- Size: 41.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
92baf94c78d7ae824faa30815ddde399771d6fd9cfbe3f518d190345333c462d
|
|
| MD5 |
acadf430244f892d96da64f31835af63
|
|
| BLAKE2b-256 |
42c917a579f27e49be3fb7e7320b62fc96880e13573bb6ae7522b6e562159d22
|