notion-page-repeaterの導入について
はじめに
こんにちは。FIREしてキャンプ三昧の生活を送りたいと思っている@tositeと申します。
先日「社内ツールを作成したと思ったらいつの間にかOSS活動になっていた話」で話していたOSS「tosite/notion-page-repeater」が完成したので使い方の実例を交えつつ紹介していきます。なお、導入についてはGitHub Actionsを用いることを前提としています。
また、現在β版ですので使ってみて不具合などありましたらご連絡いただけると大変助かります。
具体的な導入手順はドキュメントに残してありますが、手順としては大まかに次の通りになります。
- Notion側の設定
- リピートする設定を保持するSettingsページを複製する
- Notion APIトークンを発行する
- 自動生成したいページのテンプレートページを作成する
- 自動生成したいページのプロパティにDatetimeカラムを作成する
- テンプレートページのページIDを1-1.で複製したSettingsページのカラムに記載する
- 1-1.で複製したSettingsページ・自動生成したい親ページにAPIからのアクセス許可設定を行う
- GitHub側の設定
- GitHubシークレットに秘匿情報を記載する
- GitHub Actions用のymlファイルを記載する
設定手順
1-1.リピートする設定を保持するSettingsページを複製する
1-2.Notion APIトークンを発行する
https://www.notion.so/my-integrationsにアクセスし、「New integration」をクリックします。
以下のように設定します。
- Name - 自由
- Associated workspace - 先程Settingsページをコピーしたワークスペース
- Capabilities - Read content / Update content / Insert content
特に迷うことはないかなと思いますが、ページのテンプレートを作ります。
1-4.自動生成したいページのプロパティにDatetimeカラムを作成する
カラム名は必ず「Date型」で「Datetime」と命名してください。
1-5.テンプレートページのページIDを1-1.で複製したSettingsページのカラムに記載する
先程作成したテンプレートから「Copy link」を選択し、URLを取得します。
https://www.notion.so/xxx/657a983eefcd4f84a3b29ed5fe3122b6のうち赤く塗られている部分をコピーします。
議事録テンプレートページのページIDを直接取得する必要がある点に注意してください(テンプレート横の三点リーダーをクリックして「Edit」を選択した上でURLを取得する必要があります)。
1-6.1-1.で複製したSettingsページ・自動生成したい親ページにAPIからのアクセス許可設定を行う
次はAPIからのアクセスを許可する設定を行います。
「Share」から「Invite」をクリックします。
先程設定したAPIトークンに編集許可を与えます。
以下のように「Can edit」になっていたら設定完了です。
この作業をSettingsページと議事録テンプレートを準備したページに対して行います。
2-1.GitHubシークレットに秘匿情報を記載する
続いてGitHubに移ります。
https://github.com/{$user}/{$repo}/settings/secrets/actionsから「New repository secret」を選択します。
2-2.GitHub Actions用のymlファイルを記載する
name: Notion Page Repeater Demo on: push: branches: - main schedule: - cron: '00 * * * *' jobs: sync: name: Notion Page Repeater runs-on: ubuntu-latest container: node:latest env: TZ: Asia/Tokyo LANG: ja_JP.UTF-8 steps: - name: Sync uses: tosite/notion-page-repeater@v1 env: NOTION_TOKEN: ${{ secrets.NOTION_TOKEN }} SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} SETTING_DB_ID: ${{ secrets.SETTING_DB_ID }}
on: push: branches: - main pull_request:
今後の展望・注意事項
現在、テンプレートページのうちプロパティ(カラム)についてはコピーをすることが可能ですが、テンプレートページのブロックをコピーすることはできません。その場合は作成された空のページからテンプレートを選択するようお願いいたします。
また、祝日スキップの機能は現時点でありません。ページは開催1日前、土日を挟む場合は前日の金曜日にページが作成されます。
この辺りの機能は今後追加していこうと思っています。
ぜひ使っていただき、機能追加の希望などあればIssueからフィードバックいただければありがたいです!