Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# 변경 사항

이 프로젝트의 주요 업데이트 내역을 안내합니다.

## [0.1.0] - 2025-06-05

### 새로운 기능
- **CLI 도구**: GitHub 워크플로우 자동화를 위한 명령줄 인터페이스(GitHub DevKit, `gdk`)를 제공합니다.
- **저장소 관리**: `gdk repo -c` 명령으로 GitHub 저장소를 생성하고, 로컬에 클론할 수 있습니다.
- **라벨 관리**:
- `gdk label -c`로 미리 준비된 라벨을 한 번에 생성할 수 있습니다.
- `gdk label -r`로 기존 라벨을 초기화할 수 있습니다.
- `data/labels.json`을 수정해 커스텀 라벨 목록을 생성할 수 있습니다.
- **이슈 관리**: `gdk issue -c` 명령으로 GitHub 이슈를 간편하게 생성할 수 있습니다.
- **브랜치 관리**: `gdk branch -c` 명령으로 이슈와 연결된 브랜치를 쉽게 만들 수 있습니다.
- **환경 설정**:
- `gdk config`로 대화형 설정 메뉴를 제공합니다.
- `gdk config -t`로 GitHub Token(Classic)을 등록할 수 있습니다.
- `gdk config -s`로 현재 설정을 확인할 수 있습니다.
- 토큰 자동 검증 및 사용자 정보 자동 감지 기능을 포함합니다.
- **환경 관리**: `config/env.json` 파일에 환경 설정이 자동으로 저장됩니다.
- **경로 설정**:
- `gdk config -p`로 저장소 클론 기본 경로를 설정할 수 있습니다.
- 저장소 생성 시 클론 경로를 선택할 수 있습니다.
- 기본 경로 설정으로 반복적인 경로 입력을 줄일 수 있습니다.
164 changes: 157 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,165 @@
# github-workflow-automation
# GitHub DevKit (gdk)

- 프로젝트 과정에서 발생하는 반복적인 Github 작업을 자동화하는 유틸리티
GitHub 워크플로우를 자동화하는 CLI 도구입니다. 저장소 생성, 라벨 관리, 이슈 생성, 브랜치 관리 등 반복적인 GitHub 작업을 명령어로 간편하게 처리할 수 있습니다.

## Getting Started
## 설치(Installation)

### Requirements
```bash
npm install -g .
```

## 초기 설정(Initial Setup)

GitHub Token(Classic)을 설정해야 합니다:

```bash
# 대화형 설정 메뉴
gdk config

# 또는 직접 토큰 설정
gdk config -t
```

- Node.js
토큰은 다음 권한이 필요합니다:
- `repo` (저장소 관리)
- `public_repo` (공개 저장소)
- `user` (사용자 정보)

## 명령어(Commands)

### 설정 관리(Configuration Management)

```bash
# 대화형 설정 메뉴
gdk config

# GitHub 토큰 설정
gdk config -t

# 저장소 클론 기본 경로 설정
gdk config -p

# 현재 설정 조회
gdk config -s
```

### Installation & Run
### 저장소 관리(Repository Management)

```bash
npm install
# 새 저장소 생성 및 로컬 클론
gdk repo -c
```

새 저장소를 생성하고 복제합니다. 저장소명, 설명, 공개/비공개 설정을 대화형으로 입력받습니다.

### 라벨 관리(Label Management)

```bash
# 미리 정의된 라벨 생성
gdk label -c

# 기존 라벨 제거 후 새 라벨 생성
gdk label -r
```

미리 정의된 라벨 템플릿을 사용하여 일관된 라벨 시스템을 구축할 수 있습니다. 또는 `data/labels.json`을 수정하여 커스텀 라벨 목록을 생성할 수 있습니다.

**기본 라벨 목록(Default Labels):**

```
상태(Status)
- Needs-Triage 🎯 - 분류 대기중
- Hotfix 🔥 - 치명적인 버그(긴급 수정 필요)
- Bug 🐛 - 치명적이지 않은 버그
- ASAP ⚡ - 우선순위가 높은 작업

진행(Progress)
- Status: In Progress ⏳ - 작업 진행 중
- Status: Paused ⏸️ - 작업이 일시 중단됨
- Status: Blocked 🚫 - 다른 작업/요인에 의해 막힘
- Status: Done ✅ - 작업 완료됨
- Status: Aborted ❌ - 작업 취소됨

작업 유형(Type)
- Type: Documentation 📝 - 문서 관련 작업
- Type: UI/UX 🎨 - UI/UX 관련 작업
- Type: Feature ✨ - 새로운 기능 추가
- Type: Enhancement ⚡ - 기존 기능 개선
- Type: Refactor ♻️ - 코드 리팩터링
- Type: Fix 🐛 - 버그 수정
- Type: Test 🧪 - 테스트 코드 작성/수정
- Type: Chore 📦 - 유지보수성 작업
- Type: Deploy 🚀 - 배포 관련 작업

작업 범위(Scope)
- Scope: FE - 프론트엔드 관련 작업
- Scope: BE - 백엔드 관련 작업
- Scope: Infra - 인프라 관련 작업
- Scope: Github - Github 관련 작업
```

### 이슈 관리(Issue Management)

```bash
# 새 이슈 생성
gdk issue -c
```

제목, 내용, 라벨, 담당자를 대화형으로 입력받아 새 이슈를 생성합니다.

### 브랜치 관리(Branch Management)

```bash
# 새 브랜치 생성
gdk branch -c
```

GitHub에서 새 브랜치를 생성합니다. 베이스 브랜치와 새 브랜치명을 입력받습니다.

## 사용 예시(Usage Examples)

### 새 프로젝트 시작하기(Starting a New Project)

```bash
# 1. 설정
gdk config

# 2. 저장소 생성
gdk repo -c

# 3. 라벨 시스템 설정
gdk label -r

# 4. 이슈 생성
gdk issue -c

# 5. 개발 브랜치 생성
gdk branch -c
```

### 기존 프로젝트에 라벨 추가(Add Labels on Existing Project)

```bash
# 기존 라벨 제거하고 새 라벨 시스템 적용
gdk label -r
```

## 설정 파일(Configuration File)

설정은 `config/env.json`에 저장됩니다:

```json
{
"GITHUB_TOKEN": "your_github_token",
"GITHUB_USERNAME": "your_username"
}
```

## 요구사항(Requirements)

- Node.js 14.0 이상
- GitHub Token(Classic)

## 라이센스(License)

MIT
34 changes: 18 additions & 16 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
{
"name": "github-devkit",
"description": "Automation development kit for Github workflows",
"main": "index.js",
"bin": {
"gdk": "index.js"
},
"scripts": {},
"dependencies": {
"@octokit/rest": "^18.0.12",
"chalk": "^4.1.2",
"commander": "^8.3.0",
"dotenv": "^10.0.0",
"inquirer": "^8.2.4"
}
}
{
"name": "github-devkit",
"version": "0.1.0",
"description": "Development automation kit for Github workflows",
"main": "index.js",
"bin": {
"gdk": "index.js"
},
"scripts": {},
"dependencies": {
"@octokit/rest": "^18.0.12",
"chalk": "^4.1.2",
"commander": "^8.3.0",
"dotenv": "^10.0.0",
"inquirer": "^8.2.4"
},
"license": "MIT"
}