Github API 가져오기
6934 단어 webdevgithubopensource
대시보드는 현재 material-dashboard 템플릿을 표시하고 있으며 관련 정보를 한 번에 하나의 PR에 추가할 예정입니다.
관련 통계를 추가하려면 Github API에서 어떤 데이터를 얻을 수 있는지 확인해야 했습니다.
커밋 횟수
먼저 주간 및 연간commit count을 얻는 방법을 찾았습니다. 이 요청은 지난 1년 동안 주당 커밋 수의 배열을 반환합니다.
다음은
curl
를 사용한 요청입니다.curl \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/repos/Seneca-CDOT/telescope/stats/participation
다음은 Javascript의
fetch
입니다.fetch(`https://api.github.com/repos/Seneca-CDOT/telescope/stats/participation`, {
headers: { Accept: 'application/vnd.github.v3+json' },
});
.then((res) => res.json())
.then((data) => {
// use received data
})
주간 커밋 활동
내가 원하는 두 번째 데이터는 해당 주에 추가된 총 라인과 제거된 라인입니다. weekly commit activity을 가져와서 찾았습니다.
배열의 마지막 요소를 취하면 UNIX timestamp , 행이 추가되고 행이 제거됩니다.
[
1636848000,
876,
-349
]
최신 저자
최신 커밋의 작성자를 얻으려면 list of commits을 가져와야 했습니다.
응답에는 각 커밋에 대한 많은 정보가 포함되어 있으므로 필요한 정보에만 집중했습니다.
{
"commit": {
"author": {
"name": "Francesco Menghi",
},
},
"author": {
"login": "menghif",
"avatar_url": "https://avatars.githubusercontent.com/u/53121061?v=4",
},
}
총 기여자
마지막으로 나는 레포의 총 기여자 수를 얻는 방법을 원했습니다. 페이지당 1개의 결과로 repository contributors을 가져온 다음 응답 헤더에 반환된 페이지 수를 검색했습니다. Thanks David!
fetch(`https://api.github.com/repos/Seneca-CDOT/telescope/contributors?per_page=1`, {
headers: { Accept: 'application/vnd.github.v3+json' },
});
.then((res) => res.headers.get('link'))
.then((data) => {
const contributors = data.match(/.*"next".*&page=([0-9]*).*"last".*/)[1];
})
함께 모아서
최종 결과는 다음과 같습니다.
모든 가져오기 요청이 포함된 Javascript 코드를 사용할 수 있습니다here.
결과에 만족하지만 아직 첫 단계일 뿐입니다. 나는 다른 학생들이 수정해야 할 버그를 찾고 버그에 더 많이 기여할 것이라고 확신합니다. 대시보드가 "완료"되면 어떻게 보일지 기대됩니다.
Reference
이 문제에 관하여(Github API 가져오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/menghif/fetching-the-github-api-119e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)