🚀 GitHub ↔ Neurium 연동 가이드
Neurium은 당신의 GitHub 레포지토리 문서(
.md파일)를 자동으로 동기화합니다. 이제 더 이상 문서를 두 곳에서 이중으로 관리할 필요가 없습니다.
🛠 시작하기 전에: 3단계 요약
- 🔑 API Key 발급 (Neurium 설정)
- 🔐 Secrets 등록 (GitHub 레포지토리 설정)
- ⚙️ Workflow 추가 (
.github/workflows/)
🔑 1단계: API Key 발급
⚠️ 주의: 발급된 API Key는 보안상 최초 1회만 화면에 표시됩니다. 반드시 안전한 곳에 복사해두세요.
- Neurium 설정 페이지로 이동합니다.
- API Keys 섹션에서 [ + 새 API Key 발급 ] 버튼을 클릭합니다.
- 용도에 맞는 이름(예:
github-sync)을 입력하고 발급을 완료합니다. - 생성된
nrm_...형태의 Key를 복사합니다.
🔐 2단계: GitHub Secrets 등록
동기화를 적용할 GitHub 레포지토리의 Settings → Secrets and variables → Actions 메뉴로 이동하여 다음 두 가지 Repository secret을 추가합니다.
| Secret Name | Secret Value |
|---|---|
NEURIUM_API_URL | https://neurium.vercel.app |
NEURIUM_API_KEY | 앞서 발급받은 API Key (nrm_...) |
⚙️ 3단계: Workflow 파일 추가
레포지토리에 .github/workflows/sync-docs-to-neurium.yml 경로로 새 파일을 생성하고, 아래 내용을 복사해 넣으세요.
name: 📚 Sync Docs → Neurium
on:
push:
branches: [main]
paths:
- '**/*.md'
workflow_dispatch:
inputs:
mode:
description: '동기화 모드'
required: true
default: changed
type: choice
options:
- changed
- all
jobs:
sync:
name: Sync to Neurium
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 2
- name: Resolve files to sync
id: files
run: |
MODE="${{ github.event.inputs.mode || 'changed' }}"
if [ "$MODE" = "all" ]; then
FILES=$(find . -name "*.md" \
-not -path "*/node_modules/*" \
-not -path "*/.git/*" \
| sed 's|^\./||' | tr '\n' ' ')
else
FILES=$(git diff --name-only HEAD~1 HEAD -- '*.md' \
| grep -v node_modules | tr '\n' ' ')
fi
echo "list=$FILES" >> $GITHUB_OUTPUT
- name: Sync to Neurium
if: steps.files.outputs.list != ''
env:
NEURIUM_API_URL: ${{ secrets.NEURIUM_API_URL }}
NEURIUM_API_KEY: ${{ secrets.NEURIUM_API_KEY }}
REPOSITORY: ${{ github.repository }}
run: |
for FILE in ${{ steps.files.outputs.list }}; do
[ ! -f "$FILE" ] && continue
TITLE=$(echo "$FILE" | sed 's/\.md$//')
curl -s -X POST "$NEURIUM_API_URL/api/notes/upsert" \
-H "Authorization: Bearer $NEURIUM_API_KEY" \
-H "Content-Type: application/json" \
-d "$(jq -n \
--arg title "$TITLE" \
--arg content "$(cat "$FILE")" \
--arg repository "$REPOSITORY" \
'{title:$title,content:$content,repository:$repository,status:"active"}')"
echo "✅ $FILE"
done
</details>
💡 어떻게 동작하나요?
🔄 자동화된 백그라운드 동기화
main 브랜치에 Markdown(.md) 파일이 Push될 때마다 Neurium으로 즉시 동기화됩니다.
📁 스마트한 폴더 분류
GitHub 레포지토리 이름에 맞춰 📦 owner/repo-name 형태의 Workspace 폴더가 Neurium에 자동으로 생성됩니다.
예시)
seeyoung/neurium→📦 seeyoung/neuriumseeyoung/global-impact-hub→📦 seeyoung/global-impact-hub
🎛 수동 트리거 지원
특정 상황에서 전체 문서를 강제로 다시 동기화하고 싶다면?
GitHub의 Actions 탭 → 📚 Sync Docs → Neurium 워크플로우를 선택한 후, Run workflow를 눌러 all 모드로 실행하세요.
👨💻 고급 활용: 직접 API 호출하기
GitHub Actions를 쓰지 않고, 자체 스크립트나 외부 시스템에서 직접 문서를 쏴주고 싶다면 POST /api/notes/upsert 엔드포인트를 활용하세요.
curl -X POST https://neurium.vercel.app/api/notes/upsert \
-H "Authorization: Bearer nrm_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "docs/my-document",
"content": "# 문서 내용",
"repository": "owner/repo-name"
}'
Tip:
repository필드를 넣어주면 자동으로 폴더 매핑이 이루어집니다!
이 노트에 대해 AI에게 더 묻기
선택한 도구의 새 창이 열리며, 노트 URL이 포함된 질문 프롬프트가 미리 채워지거나 클립보드에 복사됩니다. 이어서 궁금한 내용을 적어 주세요.