Github-api得到了承诺

时间:2014-01-30 11:04:18

标签: github github-api

有人可以解释我或给一些教程来获取github中特定的所有提交详细信息。我看到this,我不明白如何使用它。

1 个答案:

答案 0 :(得分:3)

您可以查看我的文章:
http://ondrek.me/articles/how-to-parse-github-API-in-nodejs/

这是NodeJs的方式
(对于客户端js,将require("https")更改为客户端ajax JSON - 代码非常类似)

用户ONDREK的repo MDOWN的快速示例链接
https://api.github.com/repos/ondrek/mdown/git/refs/heads/

如何向Github API发出请求

var options = {
    user : 'ondrek',
    repo : 'favicon-blog',
    branch : 'master'
};

function getHttpRequestJson(customPath, callback){
    require('https').request({
        hostname: 'api.github.com',
        path: customPath,
        method: 'GET'
    }, function(res){
        var data = '';
        res.on('data', function (chunk) {
            data += chunk;
        });
        res.on('end', function () {
            callback(JSON.parse(data));
        });
    }).end();
}

如何从Github API获取用户详细信息json

(inject previous code)

var url = '/repos/'+options.user+'/'+options.repo+'/git/refs/heads/'+options.branch;
getHttpRequestJson(url, function(userJson){
    var lastCommitUrl = userJson.object.url;
    getLastCommit(lastCommitUrl);
});

如何从Github API获取最后一次提交json

(inject previous code)

function getLastCommit(url){
    getHttpRequestJson(url+auth, function(lastCommitJson){
        var treeUrl = lastCommitJson.tree.url;
        getTree(treeUrl);
    });
}

如何从Github API获取最后一次提交的树

(inject previous code)

function getTree(url){
    getHttpRequestJson(url+auth, function(treeJson){
        var treeArr = treeJson.tree;
        getOnlyPages(treeArr);
    });
}

如何从Github API获取最后一次提交的特定文件夹

(inject previous code)

function getOnlyPages(treeArr){
    treeArr.forEach(function(ele){
        if (ele.path==='blog') { getArticles(ele.url); }
    });
}

function getArticles(url){
    getHttpRequestJson(url+auth, function(treeJson){
        var treeArr = treeJson;
        parseMarkdownArticles(treeArr.tree);
    });
}