Skip to content
This repository has been archived by the owner on Nov 14, 2021. It is now read-only.

Latest commit

 

History

History
170 lines (123 loc) · 6.25 KB

README.ko.md

File metadata and controls

170 lines (123 loc) · 6.25 KB

Notion2Github

Notion2Github

GitHub Action: View on Marketplace Demo: available Version: v1.0.1 license: MIT

| English | 한국어 |

노션에서 깃헙으로의 자동 동기화


⚠️ 유의사항: Notion2Github은 Jamie Alexandre이 만든 비공식 노션 API인 notion-py 프로젝트에 의존하고 있습니다. 공식 API가 아니기 때문에 안정적이지 않을 수 있습니다. 프로덕션 환경에서 사용하고자 한다면, 노션 공식 API 출시를 기다리는 것을 권장합니다.


사용법

바로 시작하기

  1. github.com/{your_id}/{your_repo}/settings/secrets/actions 으로 이동합니다.

  2. 노션의 token_v2 를 레포지토리의 Secrets으로 설정합니다.

    notion2github-image-0

    How To Find Your Notion v2 Token - Red Gregory

    Encrypted secrets

  3. 레포지토리의 .github/workflows/**.yml 파일에 워크플로우를 생성합니다.

몇 가지 예시입니다.

워크플로우 예제

예제 1 (main 브랜치에 push & pull request 시에 실행)

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 }}

예제 2 (정해진 시간에 실행)

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 }}

크론탭 설정에 유용한 사이트

실사용 예제

테스트를 위한 데이터베이스 템플릿 페이지

데이터베이스로부터 페이지들을 가져올 수 있는 데이터베이스 템플릿 페이지가 있습니다.

페이지로 이동해서 복제하고 테스트해볼 수 있습니다.

notion2github-image-1

환경설정

Name Description Required Default
database-url 추출할 노션 데이터베이스의 URL required
docs-directory 추출된 노션 페이지들이 저장될 디렉토리 "docs"
filter-prop 노션 데이터베이스에 적용할 필터의 속성 이름 ""
filter-value 노션 데이터베이스에 적용할 필터의 값 이름 ""

Narkdown 환경설정

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들이 있습니다.

License

MIT © younho9