노션에서 깃헙으로의 자동 동기화
⚠️ 유의사항: Notion2Github은 Jamie Alexandre이 만든 비공식 노션 API인 notion-py 프로젝트에 의존하고 있습니다. 공식 API가 아니기 때문에 안정적이지 않을 수 있습니다. 프로덕션 환경에서 사용하고자 한다면, 노션 공식 API 출시를 기다리는 것을 권장합니다.
-
github.com/{your_id}/{your_repo}/settings/secrets/actions
으로 이동합니다. -
노션의
token_v2
를 레포지토리의 Secrets으로 설정합니다. -
레포지토리의
.github/workflows/**.yml
파일에 워크플로우를 생성합니다.
몇 가지 예시입니다.
name: Notion2Github
on:
pull_request:
push:
branches:
- main
jobs:
auto-sync-from-notion-to-github:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Notion2Github
uses: younho9/[email protected]
with:
database-url: 'https://www.notion.so/acc3dfd0339e4cacb5baae8673fddfad'
docs-directory: docs
env:
NOTION_TOKEN: ${{ secrets.NOTION_TOKEN }}
- name: Format documents
uses: creyD/[email protected]
with:
prettier_options: --write ./docs/**/*.md
commit_message: 'docs: Update docs (auto)'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
name: Notion2Github
on:
schedule:
- cron: '0 14 * * *'
jobs:
auto-sync-from-notion-to-github:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Notion2Github
uses: younho9/[email protected]
with:
database-url: 'https://www.notion.so/acc3dfd0339e4cacb5baae8673fddfad'
docs-directory: docs
env:
NOTION_TOKEN: ${{ secrets.NOTION_TOKEN }}
- name: Format documents
uses: creyD/[email protected]
with:
prettier_options: --write ./docs/**/*.md
commit_message: 'docs: Update docs (auto)'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
데이터베이스로부터 페이지들을 가져올 수 있는 데이터베이스 템플릿 페이지가 있습니다.
페이지로 이동해서 복제하고 테스트해볼 수 있습니다.
Name | Description | Required | Default |
---|---|---|---|
database-url |
추출할 노션 데이터베이스의 URL | required |
|
docs-directory |
추출된 노션 페이지들이 저장될 디렉토리 | "docs" |
|
filter-prop |
노션 데이터베이스에 적용할 필터의 속성 이름 | "" |
|
filter-value |
노션 데이터베이스에 적용할 필터의 값 이름 | "" |
Narkdown은 문서들을 어떻게 추출할 것인지에 대해 몇가지 환경설정을 제공합니다. narkdown.config.json
파일을 통해서 Narkdown을 환경설정할 수 있습니다.
레포지토리의 root에 narkdown.config.json
파일을 생성하세요.
환경에 따라 환경설정하는 방법에 대한 더 많은 정보를 보려면 Narkdown의 문서를 확인하세요.
// narkdown.config.json
{
"exportConfig": {
"recursiveExport": true,
"createPageDirectory": true,
"addMetadata": true,
"appendCreatedTime": true,
"generateSlug": true
},
"databaseConfig": {
"categoryColumnName": "Category",
"statusColumnName": "Status",
"currentStatus": "✅ Completed",
"nextStatus": "🖨 Published"
}
}
Notion2Github은 워크플로우의 한 step으로 단지 github action으로 실행되는 가상 머신으로 노션의 콘텐츠들을 가져올 뿐입니다.
노션의 콘텐츠들을 레포지토리로 커밋할 수 있는 훌륭한 action들이 있습니다.
MIT © younho9