中文任务 · English task

connector · 原始成果 / Original output

2026-10-02 · GitHub bridge worker 验收工件 / acceptance artifact. 示例与公开查询范围见任务记录。不是 Muse 消费端 UI 截图或跨产品横评。

connector-test.md

# connector:GitHub 公开 REST API 最小只读查询 —— 真实执行记录

- 执行时间(Asia/Taipei):2026-10-02 18:25
- 请求时刻(Asia/Taipei):2026-10-02 18:25:33
- 工具:curl(单次 GET,未安装任何持久连接器;本次为一次性 curl 调用,不冒充已安装的 Muse 连接器)
- 凭据:无(公开只读接口,未使用个人凭据;请求/报告/日志中无任何凭据)

## 步骤 1:检查现有连接和文档
- 本环境无预置的 GitHub 连接器可用 → 按原配方走"自定义最小只读调用"路径。
- 已阅读官方文档:https://docs.github.com/en/rest/issues/issues(2026-10-02 实读),确认:
  - 端点 `GET /repos/{owner}/{repo}/issues` 返回 issue 与 PR 的混合列表(含 `pull_request` 对象的条目即为 PR);
  - 支持 `state`、`per_page` 参数;分页通过 `Link` 响应头(`rel="next"`)实现;
  - 未认证请求限流 60 次/小时(`X-RateLimit-Limit: 60`)。

## 步骤 2:最小只读调用(真实执行)
请求:
```
GET https://api.github.com/repos/git/git/issues?state=open&per_page=2
```

响应:
- HTTP 状态:**200 OK**,耗时 1.2s,返回 6342 字节
- 限流:`X-RateLimit-Limit: 60`,`X-RateLimit-Remaining: 57`,`X-RateLimit-Used: 3`,`X-RateLimit-Reset: 1790938447`
- 分页:`Link: <https://api.github.com/repositories/36502/issues?state=open&per_page=2&after=Y3Vyc29yOnYyOpLPAAABoPlvDgDPAAAAAVHv514%3D&page=2>; rel="next"` —— 存在下一页(游标分页),**本次仅取 2 条,不宣称完整遍历**

返回数据(2 条,均为 PR —— 含 `pull_request` 对象,已标注):

| number | title | html_url | 类型 | created_at (UTC) |
|--------|-------|----------|------|-----------------|
| 2436 | DO NOT MERGE: unescaped % for hex-collision diagnosis | https://github.com/git/git/pull/2436 | PR(含 pull_request 对象) | 2026-10-01T21:46:43Z |
| 2435 | DO NOT MERGE: percent-escaped annotation for hex-collision diagnosis | https://github.com/git/git/pull/2435 | PR(含 pull_request 对象) | 2026-10-01T21:46:40Z |

- 条数核对:请求 per_page=2,实际返回 2 条 ✔
- 时区:API 返回 UTC(`created_at` 带 `Z` 后缀);报告中如需本地时间需自行转换,本次保留原文 ✔
- 字段:number / title / html_url / pull_request / created_at 均取自实际响应 ✔

## 步骤 3:可复用查询说明
- 查询文件/命令:`curl 'https://api.github.com/repos/{owner}/{repo}/issues?state=open&per_page=N'`(公开仓库只读无需认证)
- 权限范围:无(未认证公开只读);如需更高限流(5000 次/小时)才需 PAT,此时权限最小化为 public-repo 只读
- 撤销方式:本次未配置任何凭据/连接器,无需撤销;若日后使用 PAT,撤销路径为 GitHub Settings → Developer settings → Personal access tokens → Delete
- 未添加写入、定时、外发功能

## 原验收点核验
1. 查询采用已核实文档(官方 REST 文档已实读),权限符合任务范围(公开只读、零凭据)——**通过**
2. 返回数据来自实际调用(HTTP 200、1.2s、2 条真实记录),分页(next 存在)和时间范围(仅 2 条)如实记录——**通过**
3. 凭据未出现在聊天、报告或日志中(本次零凭据),撤销方法明确(无配置即无可撤销;PAT 撤销路径已给出)——**通过**

## 可行性结论
- "GitHub 公开 REST API 只读查询"提示词**完全可行**:官方文档可读、单次 curl 即通、无需认证、无费用。
- 注意:`/issues` 端点混合返回 issue 与 PR,消费方须检查 `pull_request` 字段区分(本次 2 条全是 PR,这是 git/git 仓库的真实情况,不是查询错误)。

---

## 2026-10-02 复核附录(对应复核请求 req-20261002-185040-58377-25110 第 7 项)

- 复核时间(Asia/Taipei):2026-10-02 18:54(系统时钟)
- `issues_git-git_per2.json` 入库情况:原报告撰写时该文件尚未入库(复核请求指出的问题属实);现已随原批次评审 commit 入库,内容为真实 API 响应。
- 本次独立复验(worker 自身执行证据):用浏览器文本抓取重新请求 `GET https://api.github.com/repos/git/git/issues?state=open&per_page=2`,HTTP 200,返回恰 2 条:
  - #2436(HaraldNordgren,2026-10-01T21:46:43Z,含 `pull_request` 对象 → PR)
  - #2435(HaraldNordgren,2026-10-01T21:46:40Z,含 `pull_request` 对象 → PR)
  与入库 JSON 的 number/title/created_at/pull_request 字段逐项一致。证实:① 入库 JSON 为真实公开 API 响应;② `/issues` 端点列表含 PR(两条全是 PR),不是纯 issue 列表;③ 本次为一次性只读查询,未建立持久连接器,未使用 Token。
- 新增可运行只读查询文件:`query_github_issues.sh`(`bash -n` 语法检查通过;按任务约束本轮未实际执行其中的 curl,由 Codex/用户按需运行)。脚本输出 HTTP 状态、X-RateLimit 头、Link 分页头,并做条数与 PR 混合核对。
- 分页说明:本次 per_page=2 仅取前 2 条;完整遍历需跟随 `Link: rel="next"` 游标,不宣称完整。

connector-test.md