安全与隐私
哪些内容会离开你的机器,以及 ocra 如何做隔离。
会发送给模型供应商的内容
- 审查员的指令、变更的标题和描述,以及被审查文件的 diff。
AGENTS.md和匹配的.ocra/rules.json规则。- 审查员通过工具请求的文件内容和搜索结果。
除此之外不会附加任何内容:ocra 启动 agent 运行时时,会关闭你本机的 OpenCode 全局配置、已安装的 skill 和项目指令文件,因此你本机的信息不会进入提示词。
隔离
- OpenCode 运行时只监听
127.0.0.1,每次运行使用随机端口和随机密码,状态存放在临时目录里,结束后删除。 - 审查工具由 ocra 自己的进程在
127.0.0.1上提供,需要随机生成的 bearer token 才能访问。 - 所有内置 agent 工具(shell、编辑文件、访问网络)都被关闭,审查员只能读取被审查的那个版本。
- 模型请求的路径被限制在仓库之内,通过符号链接也跑不出去。
不可信的输入
PR 的文字、diff 和仓库文件一律当作数据处理,其中的指令永远不会被执行;模仿 ocra 提示词结构的文本,在交给模型之前就会被中和。
密钥
供应商 key 只从环境变量读取,绝不会写入配置、日志或会话文件。
CI
- 把 key 存为 CI 的 secret。
- 不要用
pull_request_target带着 secret 在不可信的代码上运行 ocra。 .ocra/config.json、规则和插件都应当从受保护的 base 分支读取,而不是从 PR 里读取。