:bulb: 로컬 환경(Host)에서 Github page의 UI를 사용하지 않고, CLI로 원격 저장소를 생성하는 방법을 작성한다.

[01] 필요 정보

  • curl을 사용하여 Github API로 Remote Repository를 생성함
  • 원격에서 Github API를 사용하기 위해, 사용자 토큰(User Token)을 Github에서 발급 필요

[02] Token 생성

사용자 Profile → Settings → Developer settings → Personal access tokens

  • 신규 토큰 생성은 Generate new token
    • Select scopes는 repo 부분만 전체 체크
  • 기존 토큰 재생성은 토큰명 선택 후, Regenerate token
  • 생성된 토큰을 API Call에 사용함

참조 스크린샷:

doit_django_09

doit_django_02

doit_django_03

doit_django_04

[03] API 사용

:small_blue_diamond:참조: githubapi-Create an organization repository

3-1. API 동작 확인

1
2
3
4
5
6
7
8
9
10
11
12
curl -i -u cmaven:${user_token} https://api.github.com/user

# example
E:\Coding\Python\doit_djngo>curl -i -u cmaven:${user_token} https://api.github.com/user
HTTP/1.1 200 OK
Server: GitHub.com
Date: Thu, 25 Aug 2022 03:01:21 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 1264
Cache-Control: private, max-age=60, s-maxage=60
Vary: Accept, Authorization, Cookie, X-GitHub-OTP
# ...

3-2. Remote Repository 생성

  • name은 생성할 저장소 이름
  • privatetrue로 설정 시, 비공개 저장소를 생성함
1
2
3
4
5
# Windows 환경의 cmd
curl -i -u cmaven:${user_token} https://api.github.com/user/repos -d "{\"name\":\"doit_django\", \"private\":\"true\"}"

# Linux 환경의 bash-shell
curl -i -u cmaven:${user_token} https://api.github.com/user/repos -d '{"name":"doit_django", "private":"true"}'

생성 예:

doit_django_08

생성 모습:

doit_django_07