GitHub 커밋 변경 내역을 AI로 분석하여 Notion에 자동으로 학습 일지를 작성해주는 도구
개발자가 학습한 코드를 GitHub에 커밋하면, 그 변경사항을 자동으로 분석하여 **"무엇을 배웠는지, 왜 중요한지, 어떻게 활용하는지"**를 정리해 Notion 학습 일지에 자동으로 기록해주는 자동화 도구입니다.
- GitHub 특정 커밋의 변경 내역 자동 추출
- OpenAI GPT를 활용한 학습 요약 자동 생성
- Markdown을 Notion 블록으로 변환하여 자동 작성
- Notion 전송 전 미리보기 기능
- Streamlit 기반의 직관적인 웹 UI
GitHub_Notion_Auto_Connect/
├── app.py # Streamlit 웹 UI (메인 애플리케이션)
├── message.py # GitHub API 연동 및 OpenAI 학습 요약 생성
├── notion_handler.py # Notion API 연동 및 블록 변환
├── requirements.txt # Python 패키지 의존성
└── README.md # 프로젝트 문서
- Streamlit 기반의 사용자 인터페이스 제공
- GitHub/Notion 정보 입력 폼
- 요약 미리보기 및 확정/취소 기능
- 세션 상태 관리
- GitHub API를 통한 커밋 diff 가져오기
- OpenAI GPT-4o-mini로 학습 요약 생성
- 프롬프트 템플릿 관리
- CLI 모드 지원 (독립 실행 가능)
- Markdown → Notion 블록 변환
- Notion API 안전 호출 (재시도 로직 포함)
- Rate Limit 대응
git clone https://github.com/YOUR_USERNAME/GitHub_Notion_Auto_Connect.git
cd GitHub_Notion_Auto_Connectpython -m venv venv venv\Scripts\activate
pip install -r requirements.txt
프로젝트 루트에 .env 파일 생성:
OPENAI_API_KEY=your_openai_api_key_here GITHUB_TOKEN=your_github_personal_access_token_here
Streamlit Cloud 앱 설정에서 Secrets 추가:
OPENAI_API_KEY = "your_openai_api_key_here"
streamlit run app.py
브라우저에서 http://localhost:8501 자동 실행됩니다.
- GitHub → Settings → Developer settings → Personal access tokens → Tokens (classic)
- Generate new token 클릭
- 권한 선택:
repo(Full control of private repositories) - 토큰 생성 후 복사 (한 번만 표시됨!)
- Notion Integrations 페이지 접속
- New integration 클릭
- Integration 이름 입력 및 생성
- Internal Integration Token 복사
- Notion 페이지에서:
- 우측 상단
···→Add connections→ 생성한 Integration 연결
- 우측 상단
"Public API service is temporarily unavailable" 에러가 발생하면:
-
Integration 권한 확인
- My Integrations에서 생성한 Integration 클릭
- Capabilities 섹션에서 다음 권한 활성화:
- ✅ Read content
- ✅ Update content
- ✅ Insert content
-
페이지에 Integration 연결 (가장 중요!)
- Notion에서 작성할 페이지 열기
- 우측 상단
···→연결 추가(Add connections) - 생성한 Integration 선택하여 연결
⚠️ 이 단계를 빠뜨리면 API 호출이 실패합니다!
-
Token 재확인
- Integration 설정에서 "Show"를 눌러 Token 확인
- 앱에 입력한 Token과 정확히 일치하는지 확인
- 앞뒤 공백이 없는지 확인
- OpenAI Platform 접속
- Create new secret key 클릭
- API 키 복사 (한 번만 표시됨!)
- GitHub ID (Owner): 리포지토리 소유자 이름
- GitHub repository: 리포지토리 이름
- Commit Hash: 분석할 커밋의 해시 값 (예:
abc123def456...) - GitHub Token: Personal Access Token
- Notion 페이지 URL: 내용을 추가할 Notion 페이지의 전체 URL
- 예:
https://www.notion.so/My-Learning-Page-abc123...
- 예:
- Notion Token: Integration Token
- "Notion에 요약본 작성하기" 버튼 클릭
- GitHub에서 커밋 변경 내역 가져오기 (자동)
- AI가 학습 요약 생성 (자동)
- 미리보기 화면에서 내용 확인
- 확정 및 Notion 전송: Notion 페이지에 자동 작성
- 취소: 요약 내용 삭제 및 처음 화면으로 돌아가기
AI가 다음 7가지 항목으로 구조화된 학습 일지를 자동 생성합니다:
- 무엇을 했나요? (What) - 주제와 변경사항 요약
- 핵심 코드 (Key Code) - 중요한 코드 발췌 (10-15줄)
- 어떻게 작동하나요? (How) - 단계별 동작 설명
- 왜 이렇게 했나요? (Why) - 문제 상황, 선택 이유, 핵심 개념
- 실무에서는? (Real-world Application) - 실제 프로젝트 적용 시나리오
- 더 알아보기 (Further Learning) - 관련 개념 및 심화 질문
- 체크리스트 (Self-check) - 학습 완성도 자가 점검 모든 설명은 초보자도 이해할 수 있도록 쉽게 작성되며, 기술 용어는 한글과 영문을 병기합니다.
message.py를 직접 실행하여 CLI 모드로 사용할 수 있습니다:
python message.py
코드 내 설정 수정:
REPO_OWNER = "YOUR_GITHUB_ID" REPO_NAME = "YOUR_REPO_NAME" TARGET_COMMIT_HASH = "YOUR_COMMIT_HASH"
결과:
commit_summary_YYYY-MM-DD.md- 학습 요약 마크다운commit_infographic_YYYY-MM-DD.html- 인포그래픽 HTML- 클립보드에 요약 내용 자동 복사
- API 사용량: OpenAI API는 사용량에 따라 과금됩니다.
- Notion Rate Limit: 대량의 블록 추가 시 속도 제한이 있을 수 있습니다 (자동 재시도 구현됨).
- Private Repository: GitHub Private Repo 접근 시 반드시 Token이 필요합니다.
- Notion 페이지 권한: Integration이 해당 페이지에 접근 권한이 있어야 합니다.
- Streamlit Cloud 접속
- New app 클릭
- GitHub 리포지토리 연결
- Main file:
app.py선택 - Secrets 설정에서
OPENAI_API_KEY추가 - Deploy 클릭