Skip to main content

📖 Guide

1️⃣ Install

  1. install brew: https://brew.sh/
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  1. install pipx
brew install pipx
pipx ensurepath
  1. 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

  1. install uv
brew install uv
  1. install virtualenv and dependencies
uv venv
uv sync --all-extras

Metadata

Release files for v-magic-code-review 0.2.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for v-magic-code-review 0.2.5
File Size Uploaded
v_magic_code_review-0.2.5.tar.gz 35.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for v-magic-code-review 0.2.5
File Interpreter ABI Platform
v_magic_code_review-0.2.5-py3-none-any.whl Python 3 none any Details

Total release size: 77.0 kB

Release files / v_magic_code_review-0.2.5.tar.gz

Download URL v_magic_code_review-0.2.5.tar.gz
Size 35.7 kB
Tags Source
SHA-256 checksum
How to use checksums
58fbc554558cc72b42bbc45ef256b7880615f8e6a44bef2dcd98b39776b84e73
BLAKE2b-256 checksum
How to use checksums
071473c458e1aa913bb0638df7fa7720752631c82092f68fc9f4ed0b591481ef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.11

Release files / v_magic_code_review-0.2.5-py3-none-any.whl

Download URL v_magic_code_review-0.2.5-py3-none-any.whl
Size 41.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
47bbd8575f910e792a09429fb74d584e962037dfe073dde3a92af54810a9df59
BLAKE2b-256 checksum
How to use checksums
6c664ede24cd7bdcd96fc98f35271c2493a362ced6b7d0eb273e39fbba572c15
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.11

Release history Release notifications | RSS feed

This release

0.2.5 This release

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page