GitHub의 토큰만 있으면 (사용자 아이디, 패스워드 불필요) 레포지토리 생성, 목록 조회 등의 오퍼레이션을 코드로 진행할 수 있다. REST API를 통해 단위 작업이 가능하고 파이썬 등의 언어로 구현도 가능하다.
curl -X POST https://api.github.com/user/repos \
-H "Authorization: token 개인토큰" \
-d '{"name":"new-repo", "private":true}'
주로 레포지토리 명과 git clone 시 사용하는 url이 필요할 것이다. jq를 사용하여 아래처럼 사용한다.
curl -H "Authorization: token 개인토큰" \
-H "Accept: application/vnd.github+json" \
https://api.github.com/user/repos | jq '.[] | {name: .name, clone_url: .clone_url}'
바로 삭제되므로 유의해서 사용
curl -X DELETE \
-H "Authorization: token 개인토큰" \
-H "Accept: application/vnd.github+json" \
https://api.github.com/repos/사용자명/지울저장소명
토큰을 변수화한 후 스크립트 실행하고 결과를 확인한다.
mygit.py
import requests
GITHUB_TOKEN = "개인토큰"
headers = {
"Authorization": f"token {GITHUB_TOKEN}",
"Accept": "application/vnd.github+json"
}
response = requests.get("https://api.github.com/user/repos", headers=headers)
if response.status_code == 200:
repo_names = [repo["name"] for repo in response.json()]
print("\n".join(repo_names))
else:
print("Failed to fetch repositories:", response.json())
root@DESKTOP-SCOK45O:~# python mygit.py
samples
template-multi-thread
동기화할 디렉토리로 이동한다. git init >> 원격 저장소등록 >> git fetch 순으로 실행한다.
git init
git remote add origin https://github.com/사용자명/저장소명.git
git fetch origin