Development/Projects

Github REST API 사용하기

📝 작성 : 2021.06.11  ⏱ 수정 : 
반응형

어느 덧 한달의 시간이 흘러

프로젝트 수행 계획서를 작성할때 소설을 쓴다는 마음으로 작성했던,

'Github  저장소 연계 해 사용하기'

를 구현해야 할 시간이 왔습니다. 일단 Github의 REST API 관련 Documents 를 읽어 보았습니다.

https://docs.github.com/en/rest

 

GitHub REST API - GitHub Docs

You can use the GitHub REST API to create calls to get the data you need to integrate with GitHub. REST API overview→ Learn about resources, libraries, previews and troubleshooting for GitHub's REST API. Reference→ View reference documentation to learn

docs.github.com

수 많은, 정말 말도 안되게 많은 API 들이 있습니다. 개발자들의 개발자란 무엇인가.. 조금은 실감이 나는 순간입니다.

 

일단 그 중에서도 Repositories를 선택해서 보았습니다.

Repositories

정말 엄~~청 난 양의 문서가 있습니다. Repositories 쪽만 15,000 줄의 분량입니다. 도저히 하나하나 읽는게 불가능 하단 생각이 들어서 필요하겠다는 생각이 드는 문서들 몇개만 예시로 테스트 해보았습니다.

1. 일단 해당 저장소의 언어 목록을 가져오고, 각 언어에 해당 하는 code 들의 bytes를 보여주는 api 입니다.

 

Postman 을 이용해 테스트 해 보았습니다.

 

지금 준비중인 최종 프로젝트 gaia의 language를 조회 해 보았습니다.

어마어마한 JavaScript의 코드 양이 눈에 띄는데요, 사용중인 템플릿이 뭐 세상에 존재하는 모든 js plugin들을 다 포함하고 있어서 그렇습니다. 당장이라도 없애버리고 싶은데 정확히 어느 걸 쓰고 어느 걸 안쓰는지 신경 쓸 여유가 없다보니 삭제를 못 하고 있습니다. 저희 프로젝트의 갚아야 할 부채 중 하나입니다.

 

커밋 목록을 확인 하는 API도 있습니다

커밋에 하나 하나에 대한 데이터가 생각보다 방대합니다.

 

README를 얻어 오는 API도 있네요 !

content 를 보니 인코딩까지 해서 보내줍니다. encoding 은 base64 로 되어 있습니다. utf-8로 디코딩을 하면 마크다운 으로 저장한 원본을 얻을 수 있습니다.

Github 에서 제공하는 markdown api를 활용하면 html로 렌더링도 가능 합니다.

아주 잘 렌더링 해 줍니다.

 

마지막으로 저장소의 Content 를 가져오는 API 입니다. 아무래도 이게 핵심이 될 듯 합니다.

 

사용법은 위와 같습니다.

파일에 마다 용량, 크기,  경로, download-url 들을 모두 제공 해 주니, 너무 쉽게 사용 할 수 있을 듯 합니다.

사실상 이거 하나로 이제 제가 원하는 기능을 구현 하면 될 듯 합니다.

 

Github 측에서 restapi로 제공하는 기능이 워낙에 많아서 잘만 해당 API들을 활용한다면 나만의 source tree를 만드는 것도 가능하겠다 싶을 정도였습니다. 

 

https://github.com/github-tools/github

 

github-tools/github

A higher-level wrapper around the Github API. Intended for the browser. - github-tools/github

github.com

신나게 restapi 활용할 모듈들 만들다가 혹시나 해서 찾아보니 github api들을 활용 할 수 있게 만들어둔 고수준 모듈도 있네요

 

이상 Github RESTAPI 에 대한 포스팅 이었습니다. 더 자세한 다른 API 들은 Github 홈페이지를 방문해서 확인하시면 됩니다.

선생님께서 Jgit 등을 활용 해 보라고 하셨었는데 너무 쉽게 가는게 아닌가 걱정도 드네요.

 

Github 처음 써보겠다고 아래 글을 쓰면 하던게 5개월 전인데 이 글을 쓰며 참 묘한 기분이 듭니다. 

https://shanepark.tistory.com/9

 

Github 사용법 ( 수업 내용 깃허브에 올려 동기화하기)

목차 1. Github 가입하기 2. Repository (저장소) 만들기 3. Sourcetree 다운로드 및 설치 4. Sourcetree를 사용해 내 프로젝트를 Repository에 업로드 (동기화, Commit & push) 하기 5. 새로운 컴퓨터에 기존 Rep..

shanepark.tistory.com

 

That's why Developers can't help loving Github I reckon !

반응형