github all repository names
권한이 있는 계정의 모든 레포지토리 이름을 가져오는 방법을 안내드리겠습니다.
private repo
까지 가져오기 위해서는 토큰
이 필요합니다.
- 여기로 이동하여
토큰
을 생성합니다. 계정에 따라 2차인증을 요구 할 수 있습니다.
Note
에는 githubRepoNames와 같이 작성하고, Expiration
은 사용 할 시간만 짧게 설정합니다. Select scopes
에서는 repo에 체크합니다. 그리고 Generate token
을 클릭합니다.
- 토큰 생성이 완료되면 복사 아이콘을 클릭하여 토큰을 복사합니다.
- 아래 코드를 참고하여
username
과 token
을 입력합니다.
- 아래의 코드를 실행하면 모든 레포지토리 이름을 가져올 수 있습니다.
getAllRepositories
함수는 문자열 배열을 반환합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| import axios from "axios";
async function getAllRepositories(): Promise<string[]> { const repositories = []; const username = ""; const token = ""; let pageNum = 1; while (true) { try { const response = await axios.get( `https://api.github.com/search/repositories?q=user:${username}&per_page=100&page=${pageNum}`, { headers: { Authorization: `Bearer ${token}`, }, } ); const items = response.data.items; if (items.length === 0) break; items.forEach((item) => { repositories.push(item.name); }); pageNum += 1; } catch (error) { console.error(`Failed to fetch repositories. Error: ${error.message}`); } } return repositories; }
|