如何为用户获取所有github“PushEvents”的列表

时间:2013-09-11 05:38:50

标签: rest github-api

我可以看到特定用户的所有事件,例如这里是我的:

https://api.github.com/users/arasbm/events

但我只对特定类型的事件感兴趣:

"type": "PushEvent",

如何在不处理所有事件列表(可能很慢)的情况下获取此数据。我正在尝试这样做,因为我想获得已经合并的所有PR的列表。如果你能给我一个很棒的curl命令。我无法在github api docs中找到它。

2 个答案:

答案 0 :(得分:3)

在" How do I get notifications for commits to the framework?"中已确认,您必须过滤JSON /users/username/events响应。

$.each(data.data, function(key, val) {
  if (val.type == "PushEvent") {
    $.each(val.payload.commits, function(key2, val2) {
      list.append('<li id="' + val2.sha + '"><a href="https://github.com/UnionOfRAD/lithium/commit/' + val2.sha + '">' + val2.message + '</a> [' + val.actor.login + ' @ ' + val.created_at + ']</li>');
    });
  }
});

或者:

您可以监控提交RSS提要(如&#34; Setting up an Github Commit RSS feed&#34;:

https://github.com/user/repo/commits/master.atom
# more general url:
https://github.com/user/repo/commits/branch_name.atom?login=login&token=token

但是,这将是一个用户的一个回购,而不是所有用户回购。

答案 1 :(得分:0)

看看这个python脚本: https://github.com/jimzucker/githubutils/blob/master/githubreflog.py

我创建它来拉动事件并使它们可读,你可以将它传递给grep&#39; PushEvent&#39;或者您可以修改它以通过修改此行来丢弃其他PushEvent事件,以仅包含您感兴趣的事件。

HANDLEDEVENTS = [&#34; CreateEvent&#34;&#34; DeleteEvent&#34;&#34; PushEvent&#34;&#34; CommitCommentEvent&#34;]