GitHub에서 포크한 저장소를 삭제하는 방법은 다음과 같다:
- GitHub에 로그인: GitHub 계정으로 로그인한다.
- 저장소 페이지로 이동: 삭제하려는 포크된 저장소 페이지로 이동한다.
- Settings (설정) 메뉴로 이동:
- 저장소의 상단 메뉴에서 Settings 탭을 클릭한다.
- 저장소 삭제 옵션으로 이동:
- Settings 페이지의 하단으로 스크롤하여 Danger Zone 섹션에서 Delete this repository 버튼을 클릭한다.
- 확인 및 삭제:
- 나타나는 팝업 창에 저장소 이름을 정확히 입력한 후, 삭제 확인을 위해 다시 한 번 I understand the consequences, delete this repository 버튼을 클릭한다.
이 과정을 완료하면 포크한 저장소가 삭제된다.
만약 포크한 저장소가 너무 많아서 일일이 삭제하기 어려운 경우, GitHub CLI를 사용하면 쉽게 일괄 삭제할 수 있다.
- GitHub CLI 설치: GitHub CLI가 설치되어 있지 않다면 GitHubCLI설치가이드에 따라 설치한다.
- GitHub 로그인:명령어를 입력하고, 지시에 따라 GitHub 계정으로 로그인한다.
gh auth login - 포크된 저장소 리스트 확인: 모든 포크된 저장소를 확인하려면 다음 명령어를 사용한다.
gh repo list YOUR_USERNAME --fork --json name - 포크된 저장소 일괄 삭제: 특정 조건을 만족하는 포크만 삭제하려면, 스크립트를 이용해 필터링하여 삭제할 수 있다. 아래는 모든 포크된 저장소를 삭제하는 예제이다. 주의: 이 스크립트는 본인 계정의 모든 포크된 저장소를 반복적으로 삭제한다.
gh repo list YOUR_USERNAME --fork --json name -q '.[].name' | while read repo; do gh repo delete YOUR_USERNAME/$repo --confirm done
다른 방법으로 GitHub 개발자 설정에서 토큰을 발급 받은 후 아래와 같이 python 코드를 사용하여 삭제도 가능하다.
import requests
import time
# GitHub 개인 액세스 토큰과 사용자 이름
TOKEN = 'github_pat_11ABHO ... Q5L5R6ly7vhP'
USERNAME = 'YOUR USERNAME'
# GitHub API URL 설정
API_URL = f'https://api.github.com/users/{USERNAME}/repos'
# 요청 헤더 설정
headers = {
'Authorization': f'token {TOKEN}'
}
# 저장소 목록 가져오기
response = requests.get(API_URL, headers=headers)
# 응답 상태 코드 확인
if response.status_code != 200:
print(f"API 요청 실패: {response.status_code}, {response.text}")
else:
repos = response.json()
# 포크된 저장소만 필터링하여 삭제
for repo in repos:
if isinstance(repo, dict) and repo.get('fork') and repo.get('owner', {}).get('login') == USERNAME:
repo_name = repo['name']
delete_url = f'https://api.github.com/repos/{USERNAME}/{repo_name}'
delete_response = requests.delete(delete_url, headers=headers)
if delete_response.status_code == 204:
print(f'{repo_name} 삭제 완료')
else:
print(f'{repo_name} 삭제 실패: {delete_response.status_code}, {delete_response.text}')
print("모든 포크된 저장소 삭제 작업이 완료되었습니다.")
위 코드 실행시 약 25개정도 삭제될때마다 API 요청이 거절된다. 이유는 GitHub API는 짧은 시간에 많은 요청이 들어오면 요청을 제한하거나 차단한다. 요청시 일정 시간 딜레이를 주거나 여러번 실행하여 해결할 수 있다.
'개발 > Note' 카테고리의 다른 글
특정 폴더 git 추적 삭제 (0) | 2024.10.30 |
---|---|
git push 과정에서 서버 쪽에서 발생한 500 오류 해결 방법 (0) | 2024.10.30 |
git 마지막 commit 취소, 메시지 수정 (0) | 2024.10.16 |
BLE, Beacon, iBeacon (0) | 2024.01.11 |
BLE Advertising Payload format 샘플 분석 (1) | 2024.01.11 |