Hello everyone. This article will share how I managed to auto-populate a Github readme learned section using data fetched from a remote notion database using a GitHub action that I created using Typescript.
Steps
In Repository File
1. Add the following content to your README.md
## What I have learned so far
<!--START_SECTION:learn-->
<!--END_SECTION:learn-->
2. Configure the workflow
name: 'Github Readme Updater'
on:
workflow_dispatch:
schedule:
- cron: '0 0 * * *' # Runs Every Day
jobs:
update_learn:
name: 'Update learn section'
runs-on: ubuntu-latest
steps:
- name: 'Fetching Repository Contents'
uses: actions/checkout@main
- name: 'Learn Section Updater'
uses: 'devorein/github-readme-learn-section-notion@master'
with:
database_id: '6626c1ebc5a44db78e3f2fe285171ab7'
token_v2: ${{ secrets.NOTION_TOKEN_V2 }} # Required only if your database is private
TIP: You can test out using this template that I've created just for this purpose.
In your notion account
1. Create a full-page database
NOTE: Your database must maintain the following structure/schema
2. Get the id of the database
3. Add it in the workflow file
with:
database_id: '6626c1ebc5a44db78e3f2fe285171ab7'
Follow the rest of the steps only if your database is not public, if its public you don't need to set the token_v2
To make your database public
- Navigate to the database in your notion account
- Click on Share at the top right corner
- Click on the Share to Web button.
1. Get your notion token_v2
NOTE: By no means should you share or expose your notion token_v2
. If you feel like you've done so accidentally, immediately log out from that account in all of your devices.
Follow the steps below to obtain your token_v2
:
- Open up the dev tools of your preferred browser.
- Go to the Application > Cookies section.
- There you'll find a
token_v2
cookie.
NOTE: Its highly recommended to store your token_v2
as a github secret rather than pasting it in your workflow file.
2. Create a github secret to store token_v2
- navigate to the url
https://github.com/<USERNAME>/<REPO-NAME>/settings/secrets/actions
- Click on
New repository secret
- You can name your secret as anything you want
- Paste the
token_v2
value in theValue
textarea - Use the secret in your workflow file
with:
token_v2: ${{ secrets.NOTION_TOKEN_V2 }} # The secret was named NOTION_TOKEN_V2
Outcome
If you follow all the steps properly your readme should look something like this.
Hope this was helpful to you. That's all from me for now.
The code for the Github action is here. Feel free to submit a pull request or open a new issue, contributions are highly appreciated and more than welcome. Thank you for reading.
Top comments (2)
Nice one!
Thank you so much.