2.3 KiB
2.3 KiB
R2 任务报告
结论
- pikainc/pikaoa 继续使用 config/unidesk-cli.yaml#github.auth.repositoryOverrides 中既有的 pikainc-selfmedia-gh-token.txt;未修改 Secret sourceRef、运行面 Secret 或 PikaOA 业务。
- 先前“该 token 只能读、不能 merge”的根因假设已被真实原入口证伪:主代理使用同一受控入口首次成功合并 pikainc/pikaoa#9,merge commit 为 0142d2ff47ccfa4eb7543dcee11dd05e0bae2c6c,远端 head branch 删除成功。
- gh auth status --repo 现在分别披露 repo read、基于 HTTPS git push --dry-run 的 write capability 和 PR merge eligibility。write 探针使用临时 askpass、随机 ref 与 --dry-run,固定报告 writesRemote=false、mutation=false、valuesPrinted=false。
- PR merge eligibility 只覆盖 token 与仓库写权限;分支保护、检查和 PR 状态仍由 guarded gh pr merge 判定。
非阻塞判定
- write capability 不可用或未知时,auth status 仍保持可读认证成功,返回 warning=true、blocking=false,不成为业务发布门禁。
- 使用公开只读仓验证了 repo-read=ok、repo-write/pr-merge=unavailable 且命令退出码为 0。
- 未新增权限阈值、版本门禁或 YAML 数值策略;探针复用既有 GitHub 请求超时预算。
验证
- bun --check scripts/src/gh/repository-capability.ts
- bun --check scripts/src/gh/auth-pr-read.ts
- bun --check scripts/src/gh/default-render.ts
- bun --check scripts/src/gh/help.ts
- bun test scripts/src/gh-token-repository-override.test.ts:6 pass,0 fail。
- bun scripts/cli.ts gh auth status --repo pikainc/pikaoa:read/write/pr-merge 均 available,warnings=0,valuesPrinted=false。
- 从 /tmp 调用同一 auth status:成功,证明探针不依赖调用方 cwd。
- bun scripts/cli.ts gh auth status --repo octocat/Hello-World:read available,write/pr-merge unavailable,非阻塞返回。
- bun scripts/cli.ts gh pr view 9 --repo pikainc/pikaoa --json title,state,stateDetail,merged,mergedAt,mergeCommit,head,base:stateDetail=merged,merge commit 与主代理证据一致。
- git diff --check:通过。
风险
- git push --dry-run 证明 Git contents 写能力,不替代最终 PR merge 的分支保护与检查判断;CLI 已在帮助和输出中明确这一边界。
- 本任务没有再次执行真实 merge,也没有修改或生成任何 Secret。