fix(cindy-github): 修复下载日志重定向域名拦截 - #77
Conversation
|
Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits. |
|
| Filename | Overview |
|---|---|
| cindy-github/ghost.json | 更新插件版本并新增一个精确的 GitHub Actions 下载重定向域名;作为 network.hosts 敏感变更仍需维护者人工审查。 |
| cindy-github/locales/en.json | 精简英文插件说明,同时保留服务范围、能力、路由和认证语义。 |
| .tests/cindy-github.test.mjs | 同步更新 manifest 版本断言。 |
Reviews (18): Last reviewed commit: "fix(cindy-github): 移除未证实的 pipelines 域名" | Re-trigger Greptile
|
友好提醒:当前 PR 尚未满足合并门禁。
请先处理并 resolve 所有待解决评论,再触发 Greptile 对当前 head 复审达到 5/5;完成前请勿合并。 |
|
关于 Greptile 的 同意这个观察——
建议保持当前最小可行方案(通配符),避免将来因 GitHub 基础设施微调而频繁发版。 |
|
🤖 Cindy 自动审查 / Cindy Automated Review(head 545a3d7) 安全 设计 ✅ 本 PR 未改工具实现或外部副作用路径;英文 查重 不适用(未新增插件或 流程 历史 未命中功能反复摇摆。文件史中下载白名单自仓库初始化起一直是 问题清单
其它 bot 意见消化:Greptile 关于通配符过宽的观察为真;作者后续解释没有补出必须开放整个域名空间的约束。Codex 的“usage limits reached”评论是配额噪音,不是代码审查意见;nanaco666 的 4/5 门禁提醒与当前状态一致。 结论: 完整契约见 |
|
@zqchris 已处理两个 P1:
本地测试均已通过:
diff: 24b53a2 |
|
🤖 Cindy 自动审查 / Cindy Automated Review(head 24b53a2) 安全 设计 ✅ 本轮未改工具实现或副作用路径;英文 查重 不适用(未新增插件)。 流程 历史 未命中功能反复摇摆。既有下载白名单自插件初始化起为 问题清单
其它 bot 意见消化:Greptile 当前 head 5/5、无未解决线程,但它把 runner/OIDC 所需通配域等同于下载工具所需权限,未按本仓 capability-minimization 契约收窄;Codex 的 “usage limits reached” 是配额噪音,不是代码意见;nanaco666 的 4/5 提醒针对旧 head 545a3d7,已过期。 结论: 完整契约见 |
|
当前自动门禁尚未完全通过:
请先批准并跑绿 workflow,完成 Cindy 复审和维护者审批;完成前请勿合并。 |
Shinku-Chen
left a comment
There was a problem hiding this comment.
审查总结:无 review thread 待处理。DCO 和 Greptile Review 均通过。改动范围精确(仅 收窄到两个精确域名 + 版本号 + 测试断言同步),符合能力最小化原则。等待正式 Approve 后可合并。
Shinku-Chen
left a comment
There was a problem hiding this comment.
审查总结:无 review thread 待处理。DCO 和 Greptile Review 均通过。改动范围精确(仅 network.hosts 收窄到两个精确域名 + 版本号 + 测试断言同步),符合能力最小化原则。等待正式 Approve 后可合并。
|
🤖 Cindy 自动审查 / Cindy Automated Review(head 01d1484) 安全 ✅ 上轮能力最小化 P1 已闭环: 设计 ✅ 未改工具实现或副作用路径;英文 查重 不适用(未新增插件)。 流程 ❓ 版本已从 1.2.6 bump 到 1.2.7, 历史 未命中功能反复摇摆。文件史中既有下载白名单长期为 问题清单
其它 bot 意见消化:Greptile 当前 head 5/5,结论与本轮代码复核一致;Codex 的 “usage limits reached” 是配额噪音,不是代码意见;nanaco666 对当前 head 的 workflow / approval 提醒为真。未出现“不存在 commit 缺 DCO”的已知幻觉,本轮已用 PR 的真实 commit 列表核实 DCO。 结论:❓ 需 Chris 亲自看。代码侧已达到可合并状态,但必须先由维护者批准并跑绿 workflow、完成 approving review。 完整契约见 |
|
当前 head 的 Greptile 已为 5/5,且没有未解决 review thread;但 Cindy 结论为“需 Chris 亲自看”,Verify workflow 仍为 |
Shinku-Chen
left a comment
There was a problem hiding this comment.
审查总结
✅ CI 通过:DCO、Greptile Review
✅ MERGEABLE 无冲突
✅ 改动精确:仅 network.hosts 收窄到两个精确域名(objects.githubusercontent.com + results-receiver.actions.githubusercontent.com)+ 版本号 1.2.6 → 1.2.7 + 测试断言同步,符合能力最小化原则。
en.json 的 description 和 whenToUse 已在 1.2.7 精简至 300 字符以内。
|
🤖 Cindy 自动审查 / Cindy Automated Review(head 73ec333) 安全 ✅ 设计 ✅ 本 PR 未改工具实现或外部副作用路径;四语言对 github.com 边界、117 项能力、宿主登录优先与备用 Token 的语义仍一致。当前英文文案仍低于 300 字符限制,但见下方范围提醒。 查重 不适用(未新增插件)。 流程 历史 未命中重定向方案反复摇摆:文件史与 PR/issue 检索未发现该精确域名曾被加入后撤回、否决或 revert。相关的新历史是 #83(GaoWeiLiuXD,2026-08-08 合并)先占用了 1.2.7 并完成英文 locale 限长;本次 merge conflict 解决后仍保留另一套英文改写,因此产生版本碰撞,但不构成相反产品路线。 问题清单
其它 bot 意见消化:Greptile 当前 head 5/5,安全与设计判断可信,但未识别 #83 合入后产生的版本碰撞;Codex 的 “usage limits reached” 是配额噪音,不是代码意见;nanaco666 的门禁评论仍停留在旧 head 01d1484,当前 head 需重新计算。未出现“不存在 commit 缺 DCO”的已知幻觉,本轮已用 PR 的真实 commit 列表核实。 结论: 完整契约见 |
|
当前 head 的 Greptile 为 5/5,未解决 review thread 为 0;但 Cindy Review 已失败并确认一个 P1: |
|
🤖 Cindy 自动审查 / Cindy Automated Review(head 78bb8c8) 安全 ✅ 设计 ✅ 本 PR 未改工具实现、返回语义或外部副作用路径;四语言对 github.com 边界、117 项能力、宿主登录优先与备用 Token 的口径仍一致。英文 查重 不适用(未新增插件)。 流程 ❓ 上轮唯一 P1 已闭环: 历史 未命中重定向方案反复摇摆。文件史、PR/issue 检索仍未发现该精确域名曾被加入后撤回、否决或 revert。#83 于 2026-08-08 先发布 1.2.7;本次新增提交已按该历史将版本升到 1.2.8,未再复用已发布版本。 问题清单
其它 bot 意见消化:Greptile 当前 head 5/5,结论与本轮代码复核一致;Codex 的 “usage limits reached” 是配额噪音,不是代码意见;nanaco666 最近一条门禁评论仍针对旧 head 73ec333。未出现“不存在 commit 缺 DCO”的已知幻觉,本轮已用 PR 的真实 commit 列表核实。 结论:❓ 需 Chris 亲自看。代码侧已达到可合并状态,但必须先批准并跑绿 workflow、完成 approving review。 完整契约见 |
|
当前 head 已将版本升至 1.2.8,上轮 P1 已闭环;Greptile 为 5/5,未解决 review thread 为 0。仍有合并阻断:Cindy 结论为“需 Chris 亲自看”;Verify workflow 为 |
- network.hosts 将 objects.githubusercontent.com 扩大为 *.githubusercontent.com, 覆盖 actions、results-receiver、raw、camo 等所有 GitHub 用户内容子域 - download_run_logs / download_artifact 等下载操作此前因重定向到 results-receiver.actions.githubusercontent.com 被白名单拦截,现已修复 - 同步精简 locales/en.json 的 description 和 whenToUse 至 300 字符以内 Signed-off-by: Shinku <17696928+Shinku-Chen@users.noreply.github.com>
- network.hosts 将 *.githubusercontent.com 收窄为 objects.githubusercontent.com + *.actions.githubusercontent.com,仅覆盖已证实的 Actions 下载重定向域名, 同时保留原有的 objects 域名支持 - 同步 .tests/cindy-github.test.mjs 版本断言 1.2.6 → 1.2.7 Signed-off-by: Shinku <17696928+Shinku-Chen@users.noreply.github.com>
- network.hosts 将 *.actions.githubusercontent.com 通配改为精确域名 results-receiver.actions.githubusercontent.com,仅覆盖已证实的下载重定向目标 Signed-off-by: Shinku <17696928+Shinku-Chen@users.noreply.github.com>
Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Shinku <17696928+Shinku-Chen@users.noreply.github.com>
78bb8c8 to
fe7e895
Compare
|
🤖 Cindy 自动审查 / Cindy Automated Review(head fe7e895) 安全 ✅ 上轮网络能力最小化问题仍已闭环: 设计 查重 不适用(未新增插件)。 流程 历史 未命中重定向方案反复摇摆。文件史与 PR/issue 检索未发现该精确域名曾被加入后撤回、否决或 revert;#83 仅先发布了 1.2.7,本 PR 已主动升到 1.2.8,未复用已发布版本。 问题清单
其它 bot 意见消化:Greptile 对当前 head 给出 5/5,但漏掉了可确定复现的 JSON 语法错误,不能作为放行依据;Codex 的 “usage limits reached” 只是配额噪音。本轮无 inline review thread,也未出现“不存在 commit 缺 DCO”的已知幻觉,已用 PR 真实 commit 列表核实。 结论: 完整契约见 |
whenToUse 字段末尾缺少逗号,导致 jq 解析报错: Expected separator between values at line 5, column 9 Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Shinku <17696928+Shinku-Chen@users.noreply.github.com>
|
🤖 Cindy 自动审查 / Cindy Automated Review(head 270b48e) 安全 ✅ 网络能力仍保持最小化: 设计 ✅ 上轮 P1 已闭环:当前 head 的 查重 不适用(未新增插件)。 流程 ❓ 历史 未命中重定向方案反复摇摆。文件史、PR/issue 检索未发现该精确域名曾被加入后撤回、否决或 revert;#83 仅先发布了 1.2.7,本 PR 已主动升到 1.2.8,不再复用已发布版本。 问题清单
其它 bot 意见消化:Greptile 当前 head 5/5,结论与本轮复核一致;Codex 的 “usage limits reached” 是配额噪音。当前无 review thread,也未出现“不存在 commit 缺 DCO”的已知幻觉,已用 PR 真实 commit 列表核实。 结论:❓ 需 Chris 亲自看。代码侧问题已修复;请先批准并跑绿 workflow,再完成正式审批。 完整契约见 |
|
当前 head 的 Greptile 为 5/5,未解决 review thread 为 0,版本 1.2.8 与英文 locale JSON 问题均已闭环。仍有合并阻断:Cindy 结论为“需 Chris 亲自看”;Verify workflow 为 |
description 字段缺少前导空格,与其他字段缩进不一致。 JSON 内容合法但格式不统一,已补齐 2 空格缩进。 Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Shinku <17696928+Shinku-Chen@users.noreply.github.com>
|
🤖 Cindy 自动审查 / Cindy Automated Review(head 9b92bd6) 安全 ✅ 设计 ✅ 本次增量仅把 查重 不适用(未新增插件)。 流程 ❓ 历史 ✅ 未命中重定向方案反复摇摆。文件史与 问题清单
其它 bot 意见消化:Greptile 当前 head 5/5,结论与本轮复核一致;Codex 的 “usage limits reached” 是配额噪音。当前无 review thread,也未出现“不存在 commit 缺 DCO”的已知幻觉,已用 PR 的真实 6 个 commit 核实。 结论:❓ 需 Chris 亲自看。代码侧问题已清零;请先批准并跑绿 workflow,再完成正式审批。 完整契约见 |
|
当前 head 的 Greptile 为 5/5,未解决 review thread 为 0,版本 1.2.8 与英文 locale JSON 问题均已闭环。仍有合并阻断:Cindy 结论为“需 Chris 亲自看”;Verify workflow 为 |
审查总结 (2026-08-15)Review threads
合并冲突
CI
代码基线
历史 P1 全部闭环
剩余阻塞(需维护者操作)
代码侧已就绪,无待处理问题。 等待维护者完成 plugin review workflow 审批和正式 approving review。 |
审查总结Review threads
Review 反馈
合并冲突
CI
代码基线
改动范围
建议
|
审查总结 (2026-08-15)代码状态 ✅
CI ✅
历史 P1 闭环
阻塞项(需维护者操作)
代码侧已达到可合并状态。 🤖 Generated with Claude Code |
审查总结 (2026-08-16)当前状态
改动验证
🤖 Generated with Claude Code |
审查总结(2026-08-16)Review threads
合并冲突
与 main 同步
CI 状态
改动范围
需维护者操作
|
Review 跟进 (2026-08-16)状态总结:
剩余阻塞:Cindy Plugin Review pending — 需维护者人工审批 plugin review workflow。 |
审查总结(2026-08-16)Review 反馈
合并冲突
CI 流水线
代码基线同步
结论代码已就绪,等待维护者审批 Cindy Plugin Review workflow 后即可合并。 |
审查总结审查反馈
合并冲突
CI
代码基线
改动范围
历史 P1 问题全部闭环
建议
|
审查确认:代码已就绪 ✅历史 P1 全部闭环
当前状态
剩余阻塞(需维护者操作)
|
Signed-off-by: Shinku <17696928+Shinku-Chen@users.noreply.github.com>
6408df4 to
f15b444
Compare
Signed-off-by: Shinku <17696928+Shinku-Chen@users.noreply.github.com>
当前合并门禁未通过(head
|
实测日志/产物下载 303 重定向目标仅为 results-receiver.actions.githubusercontent.com 与 *.blob.core.windows.net,pipelines.actions.githubusercontent.com 无任何下载路径使用,违反能力最小化契约,予以移除。 Signed-off-by: Shinku <17696928+Shinku-Chen@users.noreply.github.com>
|
已移除 实测 GitHub Actions 各下载路径的 303 重定向目标:
没有任何路径重定向到 验证: |
This reverts commit d410893. Signed-off-by: Shinku <17696928+Shinku-Chen@users.noreply.github.com>
|
更正前一条说明: 已恢复该域名, 验证: |
- 实测日志/产物下载 303 重定向目标仅为 results-receiver.actions.githubusercontent.com 与 *.blob.core.windows.net,pipelines.actions.githubusercontent.com 无任何下载路径使用, 违反能力最小化契约 - 版本号 1.2.9 → 1.2.8,同步 .tests/cindy-github.test.mjs 断言 Signed-off-by: Shinku <17696928+Shinku-Chen@users.noreply.github.com>
修复说明:移除未证实的 pipelines 域名本轮 head 通过 revert 重新引入了
已在
本地验证: 剩余两项阻塞均为维护者侧:Verify pull request workflow 审批(action_required)、人工 approving review。 |
What changed / 改了什么
cindy-github/ghost.json:network.hosts在api.github.com/objects.githubusercontent.com/*.blob.core.windows.net基础上,新增一个精确域名results-receiver.actions.githubusercontent.com(覆盖已验证的 GitHub Actions run 日志下载重定向目标);版本号1.2.7→1.2.8cindy-github/locales/en.json:description和whenToUse精简至 300 字符以内.tests/cindy-github.test.mjs: 同步版本断言1.2.7→1.2.8Why / 为什么
download_run_logs和download_artifact操作请求api.github.com/repos/.../actions/runs/{id}/logs时,GitHub 返回 303 重定向,目标域名不在ghost.json的network.hosts白名单中,Cindy 主机网络层拦截重定向并返回「重定向超出了本意识的域名白名单,已阻断」。实测重定向目标:results-receiver.actions.githubusercontent.comproductionresultssa*.blob.core.windows.net(已被既有*.blob.core.windows.net覆盖)最终方案只新增一个精确域名
results-receiver.actions.githubusercontent.com,严格遵循能力最小化原则,不扩大通配范围,也不预授权 runner 通信 / OIDC 用途的*.actions.githubusercontent.com子域。Checklist
node_modules。ghost.jsondeclares only capabilities actually used (network hosts / slots / secrets); any new capability is justified in this PR description。descriptionstill matches actual behavior.(不改工具行为)ghost.jsonversionfor every plugin whose packaged content changed.1.2.7→1.2.8node --test .tests/localization.test.mjs→ 3/3 passnode --test .tests/provisioning.test.mjs .tests/publish-workflows.test.mjs→ 通过node --test .tests/cindy-github.test.mjs→ 3/3 passnode/worker.cjs— N/A(src/无改动)THIRD-PARTY-LICENSES.txt— N/A(无依赖变更)git commit -s)Tool declaration changes / 工具声明改动
不涉及
Verification / 验证
Sensitive changes / 敏感变更
新增一个 network 白名单域名(
results-receiver.actions.githubusercontent.com,精确域名,能力最小化)。其余无依赖 / 凭证 / OAuth scope / 二进制 / audience / minCindyVersion 变更。