Skip to content

iworkist/test_github_mcp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

10 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

GitHub MCP Server ν…ŒμŠ€νŠΈ μ €μž₯μ†Œ

이 μ €μž₯μ†ŒλŠ” GitHub MCP(Mixed Computational Platform) μ„œλ²„μ˜ κΈ°λŠ₯을 μ‹œν—˜ν•΄λ³΄κΈ° μœ„ν•œ ν…ŒμŠ€νŠΈ μ €μž₯μ†Œμž…λ‹ˆλ‹€. GitHub API와 LLM을 ν™œμš©ν•˜μ—¬ λ‹€μ–‘ν•œ μ†ŒμŠ€ 관리 및 μ›Œν¬ν”Œλ‘œμš° κΈ°λŠ₯을 ν…ŒμŠ€νŠΈν•˜κ³  ν™œμš©ν•˜λŠ” 방법을 λ³΄μ—¬μ€λ‹ˆλ‹€.

μ‹œν—˜ κ°€λŠ₯ν•œ κΈ°λŠ₯ λͺ©λ‘

  1. μ €μž₯μ†Œ 관리 핡심 κΈ°λŠ₯

    • μ €μž₯μ†Œ λͺ©λ‘ 쑰회
    • νŠΉμ • μ €μž₯μ†Œ λ‚΄μš© 확인
    • 졜근 컀밋 확인
    • 파일 생성 및 μ‚­μ œ
    • 브랜치 관리
  2. 파일 관리

    • 파일 생성 및 μˆ˜μ •
    • 파일 λ‚΄μš© 쑰회/뢄석
    • 파일 μ‚­μ œ
    • μ½”λ“œ 뢄석 및 κ°œμ„ 
  3. 브랜치 관리

    • 브랜치 생성
    • 브랜치 κ°„ 병합
    • 브랜치 μ „λž΅
  4. 이슈 및 PR(Pull Request) 관리

    • 이슈 생성 및 관리
    • PR 생성 및 병합
    • μ½”λ“œ 리뷰 컀멘트 μž‘μ„±
  5. μ›Œν¬ν”Œλ‘œμš° μžλ™ν™”

    • GitHub Actions ꡬ성
    • μ›Œν¬ν”Œλ‘œμš° 슀크립트 μž‘μ„±
    • 배포 νŒŒμ΄ν”„λΌμΈ μ„€μ •

LLM과의 연동 μ˜ˆμ‹œ

LLM을 ν™œμš©ν•˜μ—¬ GitHub MCP κΈ°λŠ₯을 ν™œμš©ν•˜λŠ” λ°©λ²•μ˜ μ˜ˆμ‹œμž…λ‹ˆλ‹€. μ•„λž˜λŠ” 각 κΈ°λŠ₯별 ν…ŒμŠ€νŠΈ μ˜ˆμ‹œμž…λ‹ˆλ‹€:

1. μ €μž₯μ†Œ 관리 핡심 κΈ°λŠ₯ μ˜ˆμ‹œ

μ €μž₯μ†Œ λͺ©λ‘ 쑰회

λ‚΄ GitHub κ³„μ •μ˜ μ €μž₯μ†Œ λͺ©λ‘μ„ 보여주고, 각 μ €μž₯μ†Œμ˜ μ£Όμš” 정보(μ–Έμ–΄, 별 수, 졜근 μ—…λ°μ΄νŠΈ λ‚ μ§œ)λ₯Ό μš”μ•½ν•΄μ€˜.

νŠΉμ • μ €μž₯μ†Œ λ‚΄μš© 확인

iworkist/test_github_mcp μ €μž₯μ†Œμ˜ 파일 ꡬ쑰λ₯Ό 보여주고, 핡심 νŒŒμΌλ“€μ˜ λ‚΄μš©κ³Ό λͺ©μ μ„ κ°„λž΅νžˆ μ„€λͺ…ν•΄μ€˜.

졜근 컀밋 확인

iworkist/test_github_mcp μ €μž₯μ†Œμ˜ 졜근 5개 컀밋 내역을 보여주고, 각 μ»€λ°‹μ—μ„œ μ–΄λ–€ 변경사항이 μžˆμ—ˆλŠ”μ§€ μš”μ•½ν•΄μ€˜.

파일 생성 및 μ‚­μ œ

temp.txt νŒŒμΌμ„ λ§Œλ“€μ–΄μ€˜. ν…ŒμŠ€νŠΈμš©μ΄μ•Ό.
iworkist/test_github_mcp μ €μž₯μ†Œμ—μ„œ λΆˆν•„μš”ν•œ temp.txt νŒŒμΌμ„ μ‚­μ œν•΄μ€˜. 컀밋 λ©”μ‹œμ§€λŠ” "Remove temporary test file"둜 μ„€μ •ν•΄μ€˜.

2. 파일 관리 μ˜ˆμ‹œ

파일 생성 및 μˆ˜μ •

Python으둜 μž‘μ„±λœ μ›Ή 슀크래퍼λ₯Ό λ§Œλ“€μ–΄μ„œ λ‚΄ test_github_mcp μ €μž₯μ†Œμ— webscraper.py 파일둜 μΆ”κ°€ν•΄μ€˜. BeautifulSoupκ³Ό requests 라이브러리λ₯Ό μ‚¬μš©ν•˜λŠ” μ½”λ“œλ‘œ μž‘μ„±ν•΄μ€˜.

파일 λ‚΄μš© 뢄석 및 κ°œμ„ 

iworkist/test_github_mcp μ €μž₯μ†Œμ˜ helloworld.py νŒŒμΌμ— μƒˆλ‘œμš΄ ν•¨μˆ˜ goodbye()λ₯Ό μΆ”κ°€ν•΄μ€˜. 이 ν•¨μˆ˜λŠ” "Goodbye, GitHub MCP World!"λ₯Ό λ°˜ν™˜ν•˜λ„λ‘ ν•΄μ€˜.

ν˜„μž¬ helloworld.py νŒŒμΌμ—λŠ” hello() ν•¨μˆ˜μ™€ μƒˆλ‘œ μΆ”κ°€λœ goodbye() ν•¨μˆ˜κ°€ 있으며, main() ν•¨μˆ˜μ—μ„œλŠ” 두 ν•¨μˆ˜μ˜ κ²°κ³Όλ₯Ό λͺ¨λ‘ 좜λ ₯ν•©λ‹ˆλ‹€:

def hello():
    """Simple function that returns a greeting message"""
    return "Hello, GitHub MCP World!"

def goodbye():
    """Simple function that returns a farewell message"""
    return "Goodbye, GitHub MCP World!"

def main():
    """Main function to print the greeting"""
    message = hello()
    print(message)
    
    # Also print the goodbye message
    farewell = goodbye()
    print(farewell)

3. 브랜치 관리 μ˜ˆμ‹œ

브랜치 생성

iworkist/test_github_mcp μ €μž₯μ†Œμ— 'update-readme' 브랜치λ₯Ό μƒˆλ‘œ λ§Œλ“€μ–΄μ€˜. 이 λΈŒλžœμΉ˜λŠ” main 브랜치λ₯Ό κΈ°μ€€μœΌλ‘œ μƒμ„±ν•΄μ€˜.

브랜치 κ°„ 병합

iworkist/test_github_mcp μ €μž₯μ†Œμ˜ 'update-readme' 브랜치λ₯Ό main 브랜치둜 λ³‘ν•©ν•΄μ€˜. 병합 μ‹œ 좩돌이 있으면 μžλ™μœΌλ‘œ ν•΄κ²°ν•˜κ³ , 병합 컀밋 λ©”μ‹œμ§€λŠ” "Merge updated README into main"으둜 μ„€μ •ν•΄μ€˜.

브랜치 μ „λž΅ 및 보호 브랜치 μ„€μ •

iworkist/test_github_mcp μ €μž₯μ†Œμ—μ„œ 'development' 브랜치둜 λΆ„κΈ°ν•œ λ‹€μŒ, config.json νŒŒμΌμ„ μˆ˜μ •ν•΄μ„œ debug λͺ¨λ“œλ₯Ό true둜 λ³€κ²½ν•΄μ€˜. λ³€κ²½ ν›„ ν•΄λ‹Ή λ‚΄μš©μ„ μ»€λ°‹ν•˜κ³  'development' λΈŒλžœμΉ˜μ— ν‘Έμ‹œν•΄μ€˜.

4. 이슈 및 PR 관리 μ˜ˆμ‹œ

이슈 생성 및 관리

test_github_mcp μ €μž₯μ†Œμ— "API κΈ°λŠ₯ ν™•μž₯ ν•„μš”" 제λͺ©μœΌλ‘œ μƒˆ 이슈λ₯Ό μƒμ„±ν•΄μ€˜. 이슈 λ‚΄μš©μ—λŠ” ν˜„μž¬ API ν˜Έν™˜μ„±κ³Ό ν™•μž₯이 ν•„μš”ν•œ 뢀뢄을 3κ°€μ§€ ν•­λͺ©μœΌλ‘œ μ •λ¦¬ν•΄μ€˜.

μ΄μŠˆμ— μ½”λ©˜νŠΈ μΆ”κ°€

iworkist/test_github_mcp μ €μž₯μ†Œμ˜ 이슈 #3에 μ½”λ©˜νŠΈλ₯Ό μΆ”κ°€ν•΄μ€˜. 이슈의 μ§„ν–‰μƒνƒœμ— λŒ€ν•œ μ—…λ°μ΄νŠΈ λ‚΄μš©μ„ μž‘μ„±ν•˜κ³ , μ•žμœΌλ‘œ μ–Έμ œ PR을 보낼 수 μžˆλŠ”μ§€ μ–ΈκΈ‰ν•΄μ€˜.

PR 생성

iworkist/test_github_mcp μ €μž₯μ†Œμ— μƒˆ PR을 λ§Œλ“€μ–΄μ€˜. 'update-readme' 브랜치의 변경사항을 main 브랜치둜 λ³‘ν•©ν•˜λŠ” PR이며. PR 제λͺ©μ€ "Update README.md to match current functionality"둜 ν•˜κ³ , μ„€λͺ…μ—λŠ” 변경사항 μš”μ•½κ³Ό ν…ŒμŠ€νŠΈ 방법을 ν¬ν•¨ν•΄μ€˜.

PR κ²€ν†  및 μ½”λ©˜νŠΈ

iworkist/test_github_mcp μ €μž₯μ†Œμ˜ PR #3을 κ²€ν† ν•˜κ³ , μ½”λ“œ ν’ˆμ§ˆμ— λŒ€ν•œ κ²€ν†  μ½”λ©˜νŠΈλ₯Ό μž‘μ„±ν•΄μ€˜. 특히 μ—λŸ¬ 처리, λ³€μˆ˜λͺ… 선택, μ•Œκ³ λ¦¬μ¦˜ μ„±λŠ₯ μ΅œμ ν™” λ“± μΈ‘λ©΄μ—μ„œ κ°œμ„ μ μ„ μ§€μ ν•΄μ€˜.

5. μ›Œν¬ν”Œλ‘œμš° μžλ™ν™” μ˜ˆμ‹œ

GitHub Actions μ›Œν¬ν”Œλ‘œμš° μž‘μ„±

iworkist/test_github_mcp μ €μž₯μ†Œμ— GitHub Actions μ›Œν¬ν”Œλ‘œμš° νŒŒμΌμ„ μΆ”κ°€ν•΄μ€˜. Python μ½”λ“œμ— λŒ€ν•œ 기본적인 ν…ŒμŠ€νŠΈμ™€ μ½”λ“œ ν’ˆμ§ˆμ„ ν™•μΈν•˜λŠ” CI μ›Œν¬ν”Œλ‘œμš°λ₯Ό λ§Œλ“€μ–΄μ€˜. main λΈŒλžœμΉ˜μ™€ PRμ—μ„œ νŠΈλ¦¬κ±°λ˜λ„λ‘ μ„€μ •ν•΄μ€˜.

μ›Œν¬ν”Œλ‘œμš° 슀크립트 μž‘μ„±

iworkist/test_github_mcp μ €μž₯μ†Œμ— μžˆλŠ” webscraper.py νŒŒμΌμ— λŒ€ν•œ μ›Œν¬ν”Œλ‘œμš° ν…ŒμŠ€νŠΈ 슀크립트λ₯Ό test_webscraper.py 파일둜 λ§Œλ“€μ–΄μ€˜. 특히 이 ν…ŒμŠ€νŠΈκ°€ 맀일 μžλ™μœΌλ‘œ μ‹€ν–‰λ˜λ„λ‘ GitHub Actions μŠ€μΌ€μ€„ μ›Œν¬ν”Œλ‘œμš°λ„ λ§Œλ“€μ–΄μ€˜.

배포 νŒŒμ΄ν”„λΌμΈ μ„€μ •

iworkist/test_github_mcp μ €μž₯μ†Œμ— 배포 μ›Œν¬ν”Œλ‘œμš° 슀크립트λ₯Ό λ§Œλ“€μ–΄μ€˜. main λΈŒλžœμΉ˜μ— μƒˆ νƒœκ·Έκ°€ 생성될 λ•Œ μžλ™μœΌλ‘œ Python νŒ¨ν‚€μ§€λ₯Ό λΉŒλ“œν•˜κ³  GitHub Releases에 μ—…λ‘œλ“œν•˜λŠ” μ›Œν¬ν”Œλ‘œμš°λ₯Ό μž‘μ„±ν•΄μ€˜.

6. κ³ κΈ‰ ν™œμš© μ˜ˆμ‹œ

μ™„μ „ν•œ κΈ°λŠ₯의 예제

iworkist/test_github_mcp μ €μž₯μ†Œμ—μ„œ λ‹€μŒ μž‘μ—…μ„ 순차적으둜 μˆ˜ν–‰ν•΄μ€˜:
1. 'feature/data-analysis' 브랜치λ₯Ό μƒˆλ‘œ λ§Œλ“€κΈ°
2. κ°„λ‹¨ν•œ 데이터 뢄석을 μœ„ν•œ Python 슀크립트(data_analyzer.py)λ₯Ό 생성
3. ν•΄λ‹Ή μŠ€ν¬λ¦½νŠΈμ— λŒ€ν•œ ν…ŒμŠ€νŠΈ νŒŒμΌλ„ μΆ”κ°€
4. 이 변경사항을 PR둜 μƒμ„±ν•˜μ—¬ main 브랜치둜 병합 μš”μ²­ν•˜κΈ°

μ €μž₯μ†Œ 뢄석 및 κ°œμ„  μ œμ•ˆ

test_github_mcp μ €μž₯μ†Œμ˜ μ½”λ“œλ₯Ό λΆ„μ„ν•˜κ³ , μ½”λ“œ ꡬ쑰, μ£Όμš” κΈ°λŠ₯, κ°œμ„  κ°€λŠ₯ν•œ 뢀뢄에 λŒ€ν•œ λ³΄κ³ μ„œλ₯Ό μž‘μ„±ν•΄μ€˜. 특히 Python μ½”λ”© 관행을 μ€€μˆ˜ν•˜κ³  μžˆλŠ”μ§€ ν™•μΈν•˜κ³ , κ°œμ„  λ°©μ•ˆμ„ 이슈둜 λ“±λ‘ν•΄μ€˜.

μ‚¬μš© 방법

  1. LLMκ³Ό λŒ€ν™”ν•  λ•Œ μœ„ μ˜ˆμ‹œ ν”„λ‘¬ν”„νŠΈλ₯Ό μ‚¬μš©ν•˜μ—¬ GitHub κ΄€λ ¨ μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  2. LLM은 GitHub APIλ₯Ό 톡해 μš”μ²­λœ μž‘μ—…μ„ μˆ˜ν–‰ν•˜κ³  κ²°κ³Όλ₯Ό λ³΄κ³ ν•©λ‹ˆλ‹€.
  3. λ³΅μž‘ν•œ μž‘μ—…μ˜ 경우, λ‹¨κ³„λ³„λ‘œ λ‚˜λˆ μ„œ μˆ˜ν–‰ν•˜λ©΄ 더 νš¨κ³Όμ μž…λ‹ˆλ‹€.

μ˜ˆμ‹œ 컀밋 및 λ³€κ²½ λ‚΄μ—­

μ§€λ‚œ 컀밋 λ‚΄μ—­:

졜근 컀밋 λ‚΄μ—­ (2025-04-06):
1. "Add goodbye() function to helloworld.py"
   - hello() ν•¨μˆ˜μ™€ ν•¨κ»˜ goodbye() ν•¨μˆ˜ μΆ”κ°€
   - main() ν•¨μˆ˜κ°€ 두 λ©”μ‹œμ§€λ₯Ό λͺ¨λ‘ 좜λ ₯ν•˜λ„λ‘ μˆ˜μ •

2. "Remove temporary test file"
   - temp.txt 파일 μ‚­μ œ μ‹œλ„ (ν˜„μž¬ API μ œν•œμœΌλ‘œ 인해 직접 μ‚­μ œλŠ” λΆˆκ°€λŠ₯)

3. "Add temp.txt for testing"
   - ν…ŒμŠ€νŠΈμš© μž„μ‹œ 파일 생성

4. "README에 λͺ¨λ“  μ‹œν—˜ κ°€λŠ₯ κΈ°λŠ₯에 λŒ€ν•œ 예제 μΆ”κ°€"
   - README.md νŒŒμΌμ— 포괄적인 μ‚¬μš© 예제 μΆ”κ°€
   - 브랜치, PR, μžλ™ν™” μ›Œν¬ν”Œλ‘œμš° κ΄€λ ¨ μ„€λͺ… μΆ”κ°€

μ£Όμ˜μ‚¬ν•­

  • κΆŒν•œμ΄ μ—†λŠ” μ €μž₯μ†Œλ‚˜ 보호된 λΈŒλžœμΉ˜λŠ” 이 λ°©μ‹μœΌλ‘œ λ³€κ²½ν•˜μ§€ λͺ»ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • λŒ€κ·œλͺ¨ ν”„λ‘œμ νŠΈμ˜ 경우, λ³΅μž‘ν•œ μ½”λ“œλ² μ΄μŠ€λ₯Ό LLM이 μ΄ν•΄ν•˜λŠ” 데 ν•œκ³„κ°€ μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€.
  • λ―Όκ°ν•œ 변경사항은 직접 κ²€ν†  μˆ˜μ€€μœΌλ‘œ κ²€ν† ν•œ ν›„ μ μš©ν•˜λŠ” 것이 μ•ˆμ „ν•©λ‹ˆλ‹€.
  • μ›Œν¬ν”Œλ‘œμš° μžλ™ν™” μ‹œ GitHub κ³„μ •μ˜ ν• λ‹ΉλŸ‰ μ‚¬μš©λŸ‰μ„ ν™•μΈν•˜μ„Έμš”.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages