javascript:从公共repo客户端获取所有问题

时间:2014-04-23 20:23:30

标签: javascript github github-api

我正在寻找一种简单的方法来检索github上特定公共存储库的所有问题。

我找到了一个客户端库gh3,但我注意到它所做的一切都需要用户名。其次,它根本没有提到“问题”。

有关如何做到这一点的任何建议,我应该使用哪些库?

1 个答案:

答案 0 :(得分:4)

以下是从github repo获取所有问题的一些基本代码。除了jQuery之外不使用任何库。

function getIssues(opts){
    opts.data = opts.data || [];
    opts.page = opts.page || 1;
    var url = 'https://api.github.com/repos/' + opts.username + '/' + opts.repo;
    url += '/issues?callback=?&page=' + opts.page + '&per_page=100&state=' + opts.state;
    $.ajax(url, {
        dataType: 'jsonp',
        success: function(res){
            if(res.meta && res.meta.status == '403'){
                return opts.error(res.data);
            }
            opts.data = $.merge(opts.data, res.data);
            if(res.meta && res.meta.Link){
                if(res.meta.Link[0][1].rel == "next"){
                    opts.page++; 
                    getIssues(opts)
                } else {
                    opts.success(opts.data);
                }
            }
        }
    });
}

使用示例:

getIssues({
    username: 'joyent',
    repo: 'node',
    state: 'open',
    success: function(data){
        console.log(data); 
    },
    error: function(err){
        console.log(err);
    }
});

注意:如果您的请求未经过身份验证,则每小时限制为60个请求(每个IP地址)。 See here