如何通过GitHub API获取PR评审请求/重新请求的时间戳?
获取PR评审请求/重新请求时间戳的解决思路
1. 借助GitHub Events API
GitHub的Events API能获取PR关联的所有事件记录,其中包含review_requested(发起评审请求)和review_request_removed(移除评审请求,重新请求时会先触发这个再触发前者)类型的事件,这些事件里直接带有时间戳。
- 调用方式:
GET /repos/{owner}/{repo}/issues/{pr_number}/events - 从响应结果里筛选
event字段值为review_requested的条目,对应的created_at字段就是评审请求的时间戳。如果是重新请求评审,会看到先出现一条review_request_removed事件,紧接着是新的review_requested事件,后者的created_at就是重新请求的时间。
示例响应片段:
{ "id": "123456789", "actor": { "login": "tamlyn" }, "event": "review_requested", "created_at": "2024-05-20T14:30:00Z", "review_requested": { "login": "example-reviewer" } }
2. 使用GitHub GraphQL API
相比REST API,GraphQL可以更精准地获取目标数据,直接查询PR的timelineItems,筛选ReviewRequestedEvent类型的节点就能拿到时间戳。
示例查询语句:
query { repository(owner: "OWNER", name: "REPO") { pullRequest(number: PR_NUMBER) { timelineItems(last: 50, itemTypes: [REVIEW_REQUESTED_EVENT]) { nodes { ... on ReviewRequestedEvent { createdAt requestedReviewer { ... on User { login } ... on Team { name } } } } } } } }
3. 额外注意点
- 重新请求评审的操作会生成新的
review_requested事件,所以最新的该类型事件的时间就是最近一次请求评审的时间。 - Events API返回的事件默认按时间倒序排列,所以第一条
review_requested事件就是最近的请求操作记录。
内容的提问来源于stack exchange,提问作者Tamlyn
相关产品推荐
相关产品推荐

