# GitHub 이슈 관리 스크립트 이 프로젝트는 CSV 파일을 사용하여 GitHub 이슈를 일괄 생성하고, 모든 이슈를 삭제하는 등의 관리 작업을 자동화하는 Python 스크립트 모음입니다. ## 주요 기능 - **CSV로부터 이슈 일괄 생성**: `github_issues_from_csv.py` - CSV 파일에 정의된 내용(제목, 본문, 라벨, 담당자, 마일스톤 등)을 바탕으로 GitHub 이슈를 자동으로 생성합니다. - 필요한 라벨과 마일스톤이 없으면 자동으로 생성합니다. - **모든 이슈 일괄 삭제**: `delete_all_issues.py` - 리포지토리에 있는 모든 이슈(Open, Closed 상태 모두)를 영구적으로 삭제합니다. - 삭제 전 사용자 확인 절차를 거칩니다. - **샘플 CSV 파일 생성**: `generate_sample_csv.py` - 이슈 생성 스크립트에서 사용할 수 있는 형식의 샘플 `github_issues.csv` 파일을 생성합니다. ## 사전 준비 1. **Python 설치**: Python 3.6 이상이 필요합니다. 2. **필요 라이브러리 설치**: ```bash pip install requests ``` 3. **GitHub 개인용 액세스 토큰(PAT) 발급**: - GitHub에서 `repo` 스코프 권한을 가진 개인용 액세스 토큰을 발급받아야 합니다. [GitHub 문서 참고](https://docs.github.com/ko/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens) - 발급받은 토큰을 환경 변수에 설정합니다. ```bash # Linux/macOS export GITHUB_TOKEN='your_personal_access_token' # Windows (Command Prompt) set GITHUB_TOKEN='your_personal_access_token' ``` 4. **스크립트 내 리포지토리 정보 수정**: - `delete_all_issues.py`와 `github_issues_from_csv.py` 파일 상단에 있는 `REPO_OWNER`와 `REPO_NAME` 변수를 자신의 GitHub 리포지토리 정보에 맞게 수정해야 합니다. ## 스크립트 사용법 ### 1. 샘플 CSV 파일 생성하기 이슈 생성을 테스트하기 위해 샘플 CSV 파일을 생성할 수 있습니다. ```bash python generate_sample_csv.py ``` - `github_issues.csv` 파일이 생성됩니다. 이 파일을 수정하여 원하�� 이슈 내용을 추가할 수 있습니다. ### 2. CSV 파일로 GitHub 이슈 생성하기 `github_issues.csv` 파일을 기반으로 이슈를 생성합니다. ```bash python github_issues_from_csv.py github_issues.csv ``` - **Dry Run**: 실제 생성 없이 실행 결과만 미리 보려면 `--dry-run` 플래그를 사용하세요. ```bash python github_issues_from_csv.py github_issues.csv --dry-run ``` - **라벨/마일스톤 생성 건너뛰기**: 라벨이나 마일스톤 생성을 원치 않을 경우 아래 플래그를 사용할 수 있습니다. ```bash python github_issues_from_csv.py github_issues.csv --skip-labels --skip-milestones ``` ### 3. 리포지토리의 모든 이슈 삭제하기 **주의: 이 작업은 되돌릴 수 없습니다!** 리포지토리의 모든 이슈를 삭제하려면 아래 명령어를 실행하세요. ```bash python delete_all_issues.py ``` - 스크립트가 실행되면 삭제할 이슈 목록을 보여주고, 최종 확인을 위해 `yes`를 입력해야만 삭제가 진행됩니다.