Skip to content

配置项参考 ​

eyeful 自己找出被审查项目的构建和测试方法。本地设置文件保存用户为 eyeful review 做的选择;云端 action 通过环境变量和命令行参数配置。

项目命令 ​

仓库可以在 .github/eyeful.yml 里用下表的键声明命令,test_one 必须含 {test}。声明会替换 eyeful 找到的命令,没写的键就没有命令:

yaml
setup: python -m pip install -e . -r requirements-dev.txt
test: python -m pytest tests
test_one: python -m pytest {test}

没有声明时,eyeful 用规则、不用模型,根据快照根目录下的文件选出命令,按表格顺序取第一个匹配的行。

文件setuptest、test_onelint
go.modgo mod downloadgo test ./...,单个测试加 -run {test}有 .golangci 文件时用 golangci-lint run ./...
Cargo.tomlcargo fetchcargo test,单个测试加 {test}
提到 pytest 的 pyproject.toml、setup.py 或 setup.cfg按锁文件用 uv sync、poetry install 或 pip installpytest -q,单个测试加 {test};用 uv 或 poetry 安装时经由 uv run、poetry run配置了 ruff 时用 ruff check .
package.json用锁文件对应的包管理器安装依赖里有 vitest、jest 或 mocha 时用它们,单个测试加 {test};否则只用 test 脚本lint 脚本
命令用在哪里
setup准备阶段:安装依赖
lint本地 CI 校验
test验证器运行整套测试:审查前找出改动弄坏的测试,每次修复后再跑
test_one验证器运行单个复现测试,{test} 会替换成加了引号的测试编号

一行都匹配不上的项目,或者没有提到 pytest 的 Python 项目,没有命令:什么都不运行,所有发现都由裁判阅读,审查开始前会说明这一点。

eyeful review 的 --setup、--lint、--test 和 --test-one 会替换 eyeful 找到的命令,--no-detect 则只运行给出的命令。评估用它们在容器里运行 SWE-bench 的测试。

审查时执行的项目代码只有这些命令,而且要在审查开始前经过用户确认(见开始之前)。

仓库的 .gitattributes 标为 linguist-generated 或 linguist-vendored 的文件不交给任何专家(见分拣)。

本地设置 ​

eyeful connect 和 eyeful jev 会写入用户配置目录下、只有用户本人可读的 eyeful/settings.json(macOS 上是 ~/Library/Application Support,Linux 上是 $XDG_CONFIG_HOME 或 ~/.config):

json
{
	"agent": "claude",
	"repository": "/Users/me/src/app",
	"typesafe_api_key": "…"
}

没有连接 agent、或没有用 eyeful jev 或桌面端的 key 按钮保存 TypeSafe API key 时,eyeful review 和桌面端会报错;Jev 用这个 key 合并发现。repository 是桌面端上一次显示的仓库,桌面端不在仓库里启动时会打开它。设置文件旁边的 eyeful/confirmed 为每次确认保存一个哈希,由仓库路径和在那里确认过的命令算出,所以仓库没法自带一份确认记录。每个项目在 .eyeful/runs/ 下保存历次审查的运行记录。这个目录里有一个内容为 * 的 .gitignore,所以 git 看不到它,它也不会被纳入审查。

Action 配置 ​

eyeful-action 的每个命令行参数都有对应的环境变量,eyeful-action --help 会同时列出两者。action.yml 从它的输入和 job 环境里设置它们。缺少必需的值时直接报错,不会猜一个默认值。

密钥 ​

密钥用途
EYEFUL_MODEL_KEYpi models.json 中模型所用的火山方舟 API key。
EYEFUL_TYPESAFE_API_KEYJev 用的 TypeSafe API key。
EYEFUL_GITHUB_TOKENjob 的 GITHUB_TOKEN,用来克隆、读取 Actions 和发布审查。

在 GitHub 上,前两个是传给 action 输入的仓库 secrets(见部署)。手动运行 eyeful-action 时,它们放在根目录的 .env 里,git 忽略它,mise 以 redact 方式加载;.env.example 列出了它们。本地审查则从本地设置里读取 key。

变量 ​

不是密钥的配置都在这里。DOCS_URL 写在 mise.toml 的 [env] 中。

变量用途
EYEFUL_PULL要审查的 pull request。
GITHUB_REPOSITORY仓库,格式 owner/name。由 Actions 设置。
GITHUB_RUN_IDworkflow 运行;它标记审查发布的内容,审查也不会等它所属 workflow 的任何运行。
GITHUB_API_URLGitHub API 根地址。默认 https://api.github.com。
EYEFUL_DIR检出和审查文件所在目录,以只读方式共享给沙箱。默认 /work。
EYEFUL_SANDBOX_URL这次审查的沙箱。默认 http://eyeful-sandbox:8080。
EYEFUL_AGENT审查连接的 agent CLI:pi、claude 或 codex。默认 pi。
EYEFUL_LOG_LEVELdebug、info、warn 或 error。默认 info。
DOCS_URL文档站的公开地址,用于 sitemap、robots 和 llms.txt。写在 mise.toml 里。

云端审查用的模型和它的 provider 地址都固定在 cmd/eyeful-action 里:pi 的设置在 pi/ 下,地址就在旁边,不由变量决定(见agent 与模型)。