Skip to content

ljlm0402/auto-github-tool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

9 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation


Project Logo

Auto GitHub Tool

πŸ€– A CLI tool to automate GitHub issue handling, branch creation, and PR submission.

npm Info

npm Version npm Release Version npm Downloads npm Package License

github Stars github Forks github Contributors github Issues


AGT μ†Œκ°œ

AGT(Automatic GitHub Tool)λŠ” GitHub Issueλ₯Ό 기반으둜 브랜치 관리와 ν’€ λ¦¬ν€˜μŠ€νŠΈ(PR) 생성을 μžλ™ν™”ν•˜μ—¬ 개발자의 생산성을 ν–₯μƒμ‹œν‚€κ³ , 브랜치 κ΄€λ¦¬μ˜ 일관성을 μœ μ§€ν•˜λŠ” λ„κ΅¬μž…λ‹ˆλ‹€.

이 도ꡬλ₯Ό μ‚¬μš©ν•˜λ©΄ λ‹€μŒκ³Ό 같은 μž‘μ—…μ„ λΉ λ₯΄κ²Œ μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€:

  • 이슈 λͺ©λ‘ 쑰회
  • μƒˆ 이슈 생성 (제λͺ© μž…λ ₯ κ°€λŠ₯)
  • 이슈 기반 브랜치 생성
  • PR 생성

πŸ“‹ λͺ©μ°¨

πŸ“Œ μš”κ΅¬ 사항

  • Node.js 14 이상
  • GitHub CLI (gh) μ„€μΉ˜ ν•„μš”
  • GitHub 계정이 ν•„μš”ν•©λ‹ˆλ‹€.
node -v # 버전 확인
gh --version  # μ„€μΉ˜ 확인

πŸš€ μ„€μΉ˜ 및 μ‹€ν–‰

  1. GitHub CLI μ„€μΉ˜

    # Homebrewλ₯Ό ν†΅ν•œ μ„€μΉ˜
    brew install gh
  2. GitHub 계정 연동

    gh auth login
    • ν”„λ‘¬ν”„νŠΈμ— 따라 진행:
      1. ? What account do you want to log into? β†’ GitHub.com 선택
      2. ? What is your preferred protocol for Git operations? β†’ HTTPS 선택
      3. ? Authenticate Git with your GitHub credentials? β†’ Yes 선택
      4. ? How would you like to authenticate GitHub CLI? β†’ Login with a web browser 선택
      5. ν‘œμ‹œλœ one-time codeλ₯Ό 볡사
      6. μžλ™μœΌλ‘œ μ—΄λ¦¬λŠ” λΈŒλΌμš°μ €μ—μ„œ GitHub 둜그인
      7. λ³΅μ‚¬ν•œ μ½”λ“œ μž…λ ₯ν•˜μ—¬ 인증 μ™„λ£Œ
  3. AGT μ˜€ν”ˆμ†ŒμŠ€ μ„€μΉ˜

    npm install -g auth-github-tool

μ„€μΉ˜ ν›„ agt λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•˜μ—¬ μ‹€ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

πŸ›  μ‚¬μš©λ²•

1. λͺ…λ Ήμ–΄ κ°œμš”

agt --help    # μ‚¬μš© κ°€λŠ₯ν•œ λͺ…λ Ήμ–΄ λͺ©λ‘ 좜λ ₯
agt list      # μ˜€ν”ˆλœ 이슈 λͺ©λ‘ 쑰회
agt issue     # μƒˆ 이슈 생성 (제λͺ© μž…λ ₯ 지원)
agt branch    # μ„ νƒν•œ 이슈 기반 브랜치 생성
agt pr        # ν˜„μž¬ λΈŒλžœμΉ˜μ—μ„œ PR 생성

2. 도움말

$ agt --help

Usage: agt <command> [options]

Commands:
list           Show open issues
issue          Create a new issue
branch         Create a branch from an issue
pr             Create a pull request
--help         Show this help message

Examples:
agt list
agt issue
agt branch
agt pr

3. 이슈 λͺ©λ‘ 쑰회

ν˜„μž¬ μ €μž₯μ†Œμ˜ λͺ¨λ“  이슈λ₯Ό 번호 순으둜 μ •λ ¬ν•˜μ—¬ λ³΄μ—¬μ€λ‹ˆλ‹€.

$ agt list

=== πŸ“‹ Open Issues ===
...

3. 이슈 생성

이슈 생성

$ agt issue

> πŸ“ Enter issue title: {issue-title}
πŸ“Œ Available Issue Templates:
1. bug_report.md
2. feature_request.md
3. question.md
> Select a template number or press Enter to skip: {issue-number}
> 🏷 Enter labels (comma-separated, or press Enter to skip): {issue-labels}
> πŸ‘₯ Enter assignees (comma-separated, or press Enter to skip): {issue-assignees}
> πŸ“… Enter milestone (or press Enter to skip): {issue-milestone}

4. 브랜치 생성

이슈 번호λ₯Ό μž…λ ₯λ°›μ•„ ν•΄λ‹Ή 이슈의 제λͺ©μ„ 기반으둜 μƒˆλ‘œμš΄ 브랜치λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.

  • 브랜치 λͺ…λͺ… κ·œμΉ™: {issue-label(feature/bug)}/{issue-number}-{issue-title}
$ agt branch

=== πŸ“‹ Open Issues ===
...

πŸ”’ Enter issue number to create branch: {issue-number}
βœ… Branch '{issue-label}/{issue-number}-{issue-title}' created.

5. Pull Request 생성

ν˜„μž¬ λΈŒλžœμΉ˜μ—μ„œ PR을 μžλ™μœΌλ‘œ μƒμ„±ν•©λ‹ˆλ‹€.

$ agt pr

πŸ“Œ Enter PR title: {pr-title}
πŸ“ Enter PR description: {pr-description}
πŸ‘₯ Enter reviewers (comma-separated, or press Enter to skip): {pr-reviewers}
πŸš€ Pushing branch '{issue-label}/{issue-number}-{pr-title}' to remote repository...
πŸ”„ Creating a new pull request...

문제 ν•΄κ²°

❌ 일반적인 였λ₯˜

  1. Git μ €μž₯μ†Œκ°€ μ•„λ‹Œ 경우

    Error: Not a git repository. Please run 'git init' first.
    

    ➑️ ν•΄κ²°: git init λͺ…λ Ήμ–΄λ‘œ Git μ €μž₯μ†Œ μ΄ˆκΈ°ν™”

  2. GitHub CLI 인증 였λ₯˜

    Error: Please run 'gh auth login' to authenticate with GitHub.
    

    ➑️ ν•΄κ²°: gh auth login μ‹€ν–‰ν•˜μ—¬ 재인증

  3. μ†ŒμŠ€ λΈŒλžœμΉ˜κ°€ μ—†λŠ” 경우

    Error: Source branch '{branch-name}' does not exist
    

    ➑️ ν•΄κ²°: ν•΄λ‹Ήν•˜λŠ” λΈŒλžœμΉ˜κ°€ μ‘΄μž¬ν•˜λŠ”μ§€ 확인

πŸ“„ λΌμ΄μ„ μŠ€

이 ν”„λ‘œμ νŠΈλŠ” MIT λΌμ΄μ„ μŠ€λ₯Ό λ”°λ¦…λ‹ˆλ‹€.