This is a very simple tool to export a workspace from Notion, designed to work as part of a GitHub workflow.
It reads NOTION_TOKEN and NOTION_SPACE_ID from the environment, and outputs the export to both
html and markdown directories in the current working directory, as well as to html.zip and
markdown.zip.
This assumes you are looking to set this up to back up Notion to GitHub.
- Create a repo for your backup. You probably want it private.
- Get the
NOTION_TOKENandNOTION_SPACE_IDas explained in this blog post. - Set them as secrets in your GitHub repo.
- Install the following under
.github/workflows/whatever.ymlin your repo.
name: "Notion backup"
on:
push:
branches:
- master
schedule:
- cron: "0 */4 * * *"
jobs:
backup:
runs-on: ubuntu-latest
name: Backup
timeout-minutes: 15
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: '12'
- name: Setup dependencies
run: npm install -g notion-backup
- name: Run backup
run: notion-backup
env:
NOTION_TOKEN: ${{ secrets.NOTION_TOKEN }}
NOTION_SPACE_ID: ${{ secrets.NOTION_SPACE_ID }}
- name: Delete zips
run: rm -f *.zip
- name: Commit changes
uses: elstudio/actions-js-build/commit@v3
with:
commitMessage: Automated snapshot