有人可以解释我或给一些教程来获取github中特定的所有提交详细信息。我看到this,我不明白如何使用它。
答案 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);
});
}