Skip to content
upload-cloud

GitHub Action

Notion Documentation Sync

v0.0.10 Latest version

Notion Documentation Sync

upload-cloud

Notion Documentation Sync

Synchronize Documentation from GitHub to Notion

Installation

Copy and paste the following snippet into your .yml file.

              

- name: Notion Documentation Sync

uses: imnotjames/notion-docs-sync@v0.0.10

Learn more about this action in imnotjames/notion-docs-sync

Choose a version

Notion Documentation Sync

Synchronizes documentation files to Notion.so. Reads in files as files & Markdown, converting them to Notion pages & blocks.

Usage

Command Line

Run with Poetry:

poetry run notion-docs-sync --notion-token $NOTION_TOKEN $DOCS_PATH $NOTION_URL

Getting a Notion Token

The Notion token is stored in cookies during an authentication as token_v2. This can be retrieved in Firefox with the Storage Inspector or in Chrome with the Chrome DevTools Application tab.

The value of this can be used to make changes to your account as well as any workspace you have access to. There does not seem to be an easy way to invalidate this token so however you end up storing it, keep it secure!

Github Actions

Warning: If you include the Notion token directly in your workflow definition you will be allowing anyone with access to the repository to act on your behalf in Notion. Use the Github Repository Secrets feature!

Inputs

  • docs_path - The path that should be published to Notion.
  • notion_url - The URL to a page in Notion that serves as the root of the documentation.
  • notion_token - The Notion Access token to use for publishing.

Example Workflow

Create a Workflow with the following definition:

on:
  push:
    branches:
      - master

jobs:
  release:
    timeout-minutes: 10
    runs-on: ubuntu-latest
    steps:
        - uses: actions/checkout@v2

        - name: Notion Documentation Sync
          uses: imnotjames/notion-docs-sync@latest
          with:
            docs_path: ./docs/
            notion_url: ${{ secrets.NOTION_URL }}
            notion_token: ${{ secrets.NOTION_TOKEN }}