어느 덧 한달의 시간이 흘러
프로젝트 수행 계획서를 작성할때 소설을 쓴다는 마음으로 작성했던,
'Github 저장소 연계 해 사용하기'
를 구현해야 할 시간이 왔습니다. 일단 Github의 REST API 관련 Documents 를 읽어 보았습니다.
https://docs.github.com/en/rest
수 많은, 정말 말도 안되게 많은 API 들이 있습니다. 개발자들의 개발자란 무엇인가.. 조금은 실감이 나는 순간입니다.
일단 그 중에서도 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
신나게 restapi 활용할 모듈들 만들다가 혹시나 해서 찾아보니 github api들을 활용 할 수 있게 만들어둔 고수준 모듈도 있네요
이상 Github RESTAPI 에 대한 포스팅 이었습니다. 더 자세한 다른 API 들은 Github 홈페이지를 방문해서 확인하시면 됩니다.
선생님께서 Jgit 등을 활용 해 보라고 하셨었는데 너무 쉽게 가는게 아닌가 걱정도 드네요.
Github 처음 써보겠다고 아래 글을 쓰면 하던게 5개월 전인데 이 글을 쓰며 참 묘한 기분이 듭니다.
https://shanepark.tistory.com/9
That's why Developers can't help loving Github I reckon !
'Development > Projects-DDIT' 카테고리의 다른 글
Google Analytics 데이터 java 통해 받아오기 (1) | 2021.06.22 |
---|---|
Ajax 비동기 요청 발생시 로딩 이미지 (로딩 바) 만들기. (0) | 2021.06.13 |
GAIA 알람 시스템을 만들기 위해 구축한 여러가지 모듈 소개와 과정 (0) | 2021.06.09 |
Google Analytics 구글 애널리틱스 활용하기 - 웹 어플리케이션에 적용 (3) | 2021.05.23 |
Google Analytics 구글 애널리틱스 활용하기 - 티스토리 연동 (0) | 2021.05.23 |