我正在尝试查询GitHub Search API,以获取通过提交请求请求的评论而做出的贡献。
在GitHub上的个人资料页面上,有一个“贡献活动”,并且有一个窗格“在Y储存库中审阅了X个提取请求”。展开时,我会看到通过评论提交做出的贡献的列表,其中包括诸如“我做出贡献的时间”之类的信息。我确认这不是创建,合并,更新请求请求的日期。
是否可以通过GitHub Search API提取“我发表评论时”?
答案 0 :(得分:0)
您可以使用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'