Provisioning, tools/git

Jeonghak Cho·2025년 3월 16일

Provisioning

목록 보기
10/44

GIT OPERATION 자동화

GitHub의 토큰만 있으면 (사용자 아이디, 패스워드 불필요) 레포지토리 생성, 목록 조회 등의 오퍼레이션을 코드로 진행할 수 있다. REST API를 통해 단위 작업이 가능하고 파이썬 등의 언어로 구현도 가능하다.

오퍼레이션

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 동기화

동기화할 디렉토리로 이동한다. git init >> 원격 저장소등록 >> git fetch 순으로 실행한다.

git init
git remote add origin https://github.com/사용자명/저장소명.git
git fetch origin

0개의 댓글