我正在尝试查询GitHub搜索应用程序接口来获取我的贡献,这些贡献是通过提交对拉取请求的评论而做出的。
在我在GitHub上的个人资料页面上,有“贡献活动”,还有一个窗格“审查了Y存储库中的X拉取请求”。当我展开它时,我看到了我通过提交评论所做的贡献的列表,其中包括诸如“我何时做出贡献”之类的信息。我确认这不是创建、合并、更新拉取请求的日期。
有没有办法通过GitHub搜索应用程序接口来获取“我发表评论的时候”?
发布于 2019-01-30 21:39:09
您可以使用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个结果,则需要使用iterate over all the results
要格式化结果并按日期排序,可以使用像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'https://stackoverflow.com/questions/54396853
复制相似问题