Javascript 使用GitHub Api和Ember检索最新提交链接和消息
我用这个jsbin复制了我的案例 Github API允许我按作者获取事件列表: API链接-API.github.com/users/:user/events 我可以访问过滤事件“PushEvent”的提交消息,这非常好,因为我可以流式传输我最新的提交消息Javascript 使用GitHub Api和Ember检索最新提交链接和消息,javascript,ember.js,github-api,Javascript,Ember.js,Github Api,我用这个jsbin复制了我的案例 Github API允许我按作者获取事件列表: API链接-API.github.com/users/:user/events 我可以访问过滤事件“PushEvent”的提交消息,这非常好,因为我可以流式传输我最新的提交消息 var gitactivitiesPromise = function() { return new Ember.RSVP.Promise(function (resolve) { Ember.$.ajax(eventsAct,
var gitactivitiesPromise = function() {
return new Ember.RSVP.Promise(function (resolve) {
Ember.$.ajax(eventsAct, {
success: function(events) {
var result = [];
events.filter(function(event) {
return event.type == 'PushEvent';
}).forEach(function(item){
item.payload.commits.map(function(commit){
result.push(store.createRecord('commit', {
message: commit.message,
}));
});
});
resolve(result);
},
error: function(reason) {
reject(reason);
}
});
});
};
问题是,我想在msg旁边流,还有他自己的url链接<代码>html\u url
我需要知道我如何解决这个问题?由于提交url链接不在API链接中的
- api.github.com/users/:user/events
- api.github.com/repos/:user/repo/commits/branch
它在推送事件中流式传输最新的提交消息,带有链接在我看来,所有相关数据都已经存在:
{
"id": "3414229549",
"type": "PushEvent",
"actor": {
...
"login": "paulirish"
},
"repo": {
...
"name": "GoogleChrome/devtools-docs"
},
"payload": {
...
"commits": [
{
...
"message": "fish shell. really liking it.",
"sha": "1f9740c9dd07f166cb4b92ad053b17dbc014145b"
},
...
您可以通过actor
访问作者URL,通过repo
访问存储库。有了它,就可以轻松构建相关链接:
...
.forEach(function(item) {
var repoUrl = 'https://github.com/' + item.repo.name;
var authorUrl = 'https://github.com/' + item.actor.login;
item.payload.commits.map(function(commit) {
result.push(store.createRecord('commit', {
authorUrl: authorUrl,
repositoryUrl: repoUrl,
commitUrl: repoUrl + '/commit/' + commit.sha,
message: commit.message
}));
});
})
...
更新的JSBin:您查看了位于的代码库了吗?在使用演示的API时,是否有一些特定的东西是您无法遵循的?我无法将其设置为调试,这就是问题所在。我不需要commit.url,但我需要他自己的html_url,如果你点击它,那么你需要的是用户的实际url,而不是API端点!给我一点时间来调整我的答案。你介意更新我的jsbin来接受答案吗?我发现两个细节:作者URL中缺少一个
/
,我写了commits
,而不是commit
,URL:-)现在都已更正,更新的jsbin在答案中。