github-api - 当我通过 github-api v3 搜索 API 提交评论来为拉取请求做出贡献时,有没有办法查询?
问题描述
我正在尝试查询 GitHub Search API 以获取我通过提交对拉取请求的评论所做的贡献。
在我在 GitHub 上的个人资料页面上,有“贡献活动”,其中有一个窗格“在 Y 存储库中审查了 X 拉取请求”。当我展开它时,我会看到我通过提交评论所做的贡献列表,其中包含诸如“我何时做出贡献”之类的信息。我确认这不是创建、合并、更新拉取请求的日期。
有没有办法通过 GitHub Search API 获取“当我做出评论贡献时”?
解决方案
您可以使用GraphQL Api v4并按作者过滤来自搜索查询的每个拉取请求的评论:
{
search(query: "reviewed-by:eps1lon is:pr updated:2019-01-01..2019-01-31", type: ISSUE, first: 100) {
issueCount
nodes {
... on PullRequest {
repository {
nameWithOwner
}
number
reviews(author: "eps1lon", last: 1) {
nodes {
createdAt
lastEditedAt
publishedAt
body
}
}
}
}
}
}
如果有超过 100 个结果,您将需要遍历所有结果
要格式化结果并按日期排序,您可以使用像jq这样的 json 解析器。使用bash、jq和curl:
user=eps1lon
date_range=2019-01-01..2019-01-31
token=YOUR_TOKEN
curl -s -H "Authorization: bearer $token" -d '
{
"query": "query {search(query: \"reviewed-by:'"$user"' is:pr updated:'"$date_range"'\", type: ISSUE, first: 100) {issueCount nodes {... on PullRequest {repository {nameWithOwner}number reviews(author: '"$user"', last: 1) {nodes {createdAt lastEditedAt publishedAt body}}}}}}"
}
' https://api.github.com/graphql | \
jq '[
.data.search.nodes[] |
{
repo:.repository.nameWithOwner,
number:.number,
createdAt:.reviews.nodes[0].createdAt,
publishedAt:.reviews.nodes[0].publishedAt,
lastEditedAt: .reviews.nodes[0].lastEditedAt
} |
select (.createdAt >= "2019-01-01") ] |
sort_by(.createdAt) |
reverse'
推荐阅读
- javascript - 在 jqGrid 中选择新添加的行
- node.js - 使用 NodeJS 从 GCP 的存储中下载对象
- php - PHP将变量设置为json数据
- angularjs - MAT_DIALOG_DATA:错误:必须从注入上下文调用注入()错误:必须从注入上下文调用注入()
- java - Java Thymeleaf 如何替换文件
- outlook - Office 365 是否支持独立的 MAPI 调用
- php - 有什么办法可以两次包含相同的php文件?
- javascript - Google Maps GeoCode API 返回 NO_RESULTS 以按 PostalCode 进行搜索,但未指定地区/国家
- ios - 尝试使用 Firebase 动态链接,无法在 iOS 上打开应用
- windows - Git:无法使用 cygwin 构建带有冒号的文件夹