2013-05-18 2 views
1

저는 몇 시간 동안이 작업을 해왔으며 아직 어디서나 유용한 정보를 찾지 못했습니다. jQuery를 사용하여 단일 사용자의 모든 GitHub 저장소 커밋을 내 홈페이지에 표시하려고합니다. 이 링크를 출력jQuery를 통해 GitHub 저장소에서 최신 커밋의 SHA를 얻으려면 어떻게해야합니까?

$.getJSON("https://api.github.com/users/theinfection/repos", function(data) { 
     $(".lastcommit").html('<a href="https://github.com/TheInfection/' + data[0].name + '/commit/' + data[0].sha + '">text</a>'); 
}); 

: https://github.com/TheInfection/Blue-Monday-HD/commit/undefined를 현재이 내가 가진 것입니다. 이러한 종류의 작업이지만 JSON 파일에 나열된 첫 번째 repo의 최신 커밋 만 보여주고 커밋의 SHA를 얻지 못합니다.

자, 내가 알고 싶은 것은 :

  • 내가 커밋의 SHA을 어떻게합니까?
  • 커밋을 시간순으로 정렬하여 최신 커밋을 맨 위에 정렬하려면 어떻게합니까?
  • 커밋 주석 텍스트를 얻으려면 어떻게해야합니까?

이것은 잠시 동안 나를 괴롭 혔습니다. 그래서 어떤 도움을 많이 주시면 감사하겠습니다!

답변

2

도움이 되셨습니까?

$.getJSON("https://api.github.com/users/theinfection/repos", function(data) { 
    $.getJSON(data[0].commits_url.slice(0, -6), function(data) { 
     $('.lastcommit').text(data[0].sha); 
    }); 
}); 

초기 요청에서 repos를 얻은 다음 원하는 repo를 가져 와서 커밋을받습니다. 이미 REPO의 이름을 알고 있다면 당신은 호출 할 수

var repo = 'TheInfection/Blue-Monday-HD'; 
$.getJSON("https://api.github.com/repos/" + repo + "/commits", function(data) { 
    $('.lastcommit').text(data[0].sha); 
}); 

목록은 이미 역 시간순으로 정렬되고 메시지와 저자도 있습니다 : data[0].commit.messagedata[0].commit.committer.name을. jsfiddle

+0

이 내가 필요에 가까운하지만 하나의 사용자가 가지고있는 모든 REPOS보고 최신을 찾을 수있는 스크립트를 필요에 그것으로

플레이 모두에서 커밋 만 반환 최신 것. 예를 들어, 내가 10 리포지토리라고 가정 해 봅시다. 매일 10 일 동안 각 repo에 대해 한 번 커밋합니다. 필요한 스크립트는 내 모든 repos를보고 마지막으로 저지른 커밋을 반환해야합니다. 이 경우 10 일째에 10 번째 레포로 밀린 커밋이됩니다. –

+0

github api v3을 사용하면이 접근법이 더 이상 작동하지 않습니다. 아마 API가 인증을 필요로하기 때문에? – Kzqai

관련 문제