fix: 显示 GitHub 仓库写与合并能力

This commit is contained in:
Codex
2026-07-14 20:30:50 +02:00
parent f341ad748e
commit f601be7f42
7 changed files with 203 additions and 4 deletions
@@ -0,0 +1,32 @@
# R2 任务报告
## 结论
- pikainc/pikaoa 继续使用 config/unidesk-cli.yaml#github.auth.repositoryOverrides 中既有的 pikainc-selfmedia-gh-token.txt;未修改 Secret sourceRef、运行面 Secret 或 PikaOA 业务。
- 先前“该 token 只能读、不能 merge”的根因假设已被真实原入口证伪:主代理使用同一受控入口首次成功合并 pikainc/pikaoa#9merge 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.ts6 pass0 fail。
- bun scripts/cli.ts gh auth status --repo pikainc/pikaoaread/write/pr-merge 均 availablewarnings=0valuesPrinted=false。
- 从 /tmp 调用同一 auth status:成功,证明探针不依赖调用方 cwd。
- bun scripts/cli.ts gh auth status --repo octocat/Hello-Worldread availablewrite/pr-merge unavailable,非阻塞返回。
- bun scripts/cli.ts gh pr view 9 --repo pikainc/pikaoa --json title,state,stateDetail,merged,mergedAt,mergeCommit,head,basestateDetail=mergedmerge commit 与主代理证据一致。
- git diff --check:通过。
## 风险
- git push --dry-run 证明 Git contents 写能力,不替代最终 PR merge 的分支保护与检查判断;CLI 已在帮助和输出中明确这一边界。
- 本任务没有再次执行真实 merge,也没有修改或生成任何 Secret。
+1 -1
View File
@@ -24,6 +24,6 @@
### R1.3 [completed]
覆盖 [#1749](https://github.com/pikasTech/unidesk/issues/1749) 的成功与失败测试,使用新命令验收 [PR #1748](https://github.com/pikasTech/unidesk/pull/1748),提交非 draft PR,完成任务后将详细报告写入[任务报告](./details/github-pr-draft-ready-command/R1.3_Task_Report.md)。
## R2 [in_progress]
## R2 [completed]
修复 `pikainc/pikaoa` 受控 GitHub token repository override 的写权限路由,并让 `gh auth status` 区分 repo 可读与 PR merge capability,执行记录见 [pikasTech/unidesk#2063](https://github.com/pikasTech/unidesk/issues/2063),完成任务后将详细报告写入[任务报告](./details/github-pr-draft-ready-command/R2_Task_Report.md)。