gpt4 book ai didi

javascript - 使用 GitHub Api 和 Ember 检索最新的 Commit 链接和消息

转载 作者:行者123 更新时间:2023-11-29 14:44:42 25 4
gpt4 key购买 nike

我已经用这个 jsbin 复制了我的案例 http://emberjs.jsbin.com/xeninaceze/edit?js,output

Github API 允许我按作者获取事件列表:

API 链接 - api.github.com/users/:user/events

我可以访问过滤事件“PushEvent”的提交消息,这非常好,因为我可以流式传输我最新的提交消息。

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_url

我需要知道我该如何解决?因为提交 url 链接不在 API 链接中

  • api.github.com/users/:user/events

但是他们在下面的api中

  • api.github.com/repos/:user/repo/commits/branch

这使得访问最新的提交 url 链接 html_url 变得更加复杂

这是我正在尝试做的一个很好的例子

http://zmoazeni.github.io/gitspective/#

它在推送事件中流式传输最新的提交消息链接

最佳答案

在我看来,所有相关数据都已经存在:

{
"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:http://emberjs.jsbin.com/feyedujulu/1/edit?js,output

关于javascript - 使用 GitHub Api 和 Ember 检索最新的 Commit 链接和消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34255050/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com