参考信息

相关文档

依赖包

依赖包版本要求用途
GitPython>=3.1.0Git 操作
PyYAML>=6.0YAML 解析
tabulate>=0.9.0表格展示(可选)
openpyxl>=3.0.0Excel 文件处理
requests>=2.28.0HTTP 请求
babel>=2.10.0国际化支持

环境变量

环境变量描述必需
REPO_URL仓库地址
FORK_REPO_URLfork 仓库地址
GITEE_TOKEN代码托管平台令牌(支持Gitee、GitCode等)
SIGNER_NAME用户签名
SIGNER_EMAIL用户邮箱
LANG语言设置
LLM_PROVIDER大模型提供商
API_KEY大模型 API 密钥
MODEL_NAME本地模型名称
LOG_LEVEL日志级别
LOG_FILE日志文件路径

命令行参数

通用参数

参数描述示例
--action执行的操作parse-issue, setup-env, etc.
--debug启用调试日志--debug
--json输出 JSON 格式--json

特定操作参数

操作参数描述
parse-issue--cve-idCVE ID
get-commits--cve-idCVE ID
analyze-branches--cve-idCVE ID
apply-patch--cve-idCVE ID
apply-patch--patch-path补丁路径
create-pr--cve-idCVE ID
create-pr--branch分支名称
backport--cve-idCVE ID
backport--branch分支名称
backport--api-keyAPI 密钥
backport--llm-providerLLM 提供商
backport-batch--backport-config配置文件路径
backport-batch--backport-excelExcel 文件路径
backport-batch-o, --output输出文件路径
backport-batch-i, --interactive交互模式
backport-batch--apply应用特定 commit
backport-batch--signer-name签名用户名
backport-batch--signer-email签名邮箱
通用--gitee-token代码托管平台令牌

配置文件格式

backport-batch 配置文件

yaml
project: <项目名称>
project_url: <项目 URL>
project_dir: <源代码目录>
source_branch: <源分支>  # 可选
target_path: <目标仓库路径>
target_release: <目标版本>
patch_dataset_dir: <补丁数据集目录>
llm_provider: <LLM 提供商>  # 可选
api_key: <API 密钥>  # 建议通过环境变量
commits:
- commit: <commit ID>
  commit_title: <commit 标题>

报告文件格式

yaml
project: <项目名称>
project_url: <项目 URL>
project_dir: <源代码目录>
target_path: <目标仓库路径>
target_release: <目标版本>
commits:
- commit: <commit ID>
  commit_title: <commit 标题>
  merged_in_target: <是否已合并>
  has_conflict: <是否有冲突>
  error: <错误信息>  # 可选
  patch_applied: <补丁是否应用>  # 可选

代码结构

text
patchflow/
├── cli.py              # 命令行入口
├── core/              # 核心功能
│   ├── parser.py      # CVE 解析
│   ├── git.py         # Git 操作
│   ├── platform.py    # 代码托管平台操作(支持Gitee、GitCode等)
│   ├── backport.py    # 补丁回移植
│   └── llm.py         # LLM 集成
├── locales/           # 语言包
│   ├── en/            # 英文
│   └── zh/            # 中文
└── utils/             # 工具函数
    ├── config.py      # 配置管理
    ├── logger.py      # 日志管理
    └── helpers.py     # 辅助函数

最佳实践

  1. 使用环境变量:通过环境变量传入敏感信息,避免硬编码
  2. 定期更新:定期更新依赖包和工具版本
  3. 使用虚拟环境:在隔离的环境中运行,避免依赖冲突
  4. 备份配置:备份重要的配置文件和报告
  5. 测试验证:在生产环境使用前进行充分测试
  6. 监控日志:定期检查日志,及时发现问题
  7. 权限控制:为 Gitee 令牌设置最小必要权限
  8. 文档维护:及时更新文档,反映最新功能和变更