Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/devorein/github-readme-learn-section-notion
Update your github README with data fetched from a notion database
https://github.com/devorein/github-readme-learn-section-notion
github-actions github-readme notion notion-database
Last synced: 12 days ago
JSON representation
Update your github README with data fetched from a notion database
- Host: GitHub
- URL: https://github.com/devorein/github-readme-learn-section-notion
- Owner: Devorein
- License: mit
- Created: 2021-05-02T13:10:43.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2022-01-22T07:17:30.000Z (almost 3 years ago)
- Last Synced: 2024-12-09T14:41:50.175Z (13 days ago)
- Topics: github-actions, github-readme, notion, notion-database
- Language: TypeScript
- Homepage: https://github.com/marketplace/actions/github-readme-learn-section-notion
- Size: 813 KB
- Stars: 33
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
Github Readme Learn Section - Github Action
Automatically update your github README with data fetched from a notion database## Configuration
| Option | Description | Required | Default |
| :-----------: | :----------------------------------------------------------------------: | :------: | :-----: |
| `database_id` | Set this to the id of your remote notion database | true | - |
| `token_v2` | Set this to your notion `token_v2` (Required only for private databases) | false | - |## Usage
### In Repository File
#### 1. Add the following content to your `README.md`
```markdown
## What I know so far```
#### 2. Configure the workflow
```yaml
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](https://www.notion.so/devorein/6c46c1ebc5a44db78e3f5fe285071ab6?v=0bc36e7c59e54f34b0838956e35b4490) that I've created, or [this repo](https://github.com/Devorein/test-github-action).
### In your notion account
#### 1. Create a full page database
![Notion Full Page Database](./media/notion_full_page_db.png)
**NOTE**: Your database must maintain the following structure/schema
| Name | Type | Required | Default | Description | Value | Example |
| :------: | :----: | :------: | :-----: | :-------------------------------------: | :-----------------------------------------------------------------------------: | :--------------------------------------: |
| Name | title | true | - | The name of the item you've learnt | Must be a valid icon from `https://simple-icons.github.io/simple-icons-website` | React, Typescript |
| Category | select | true | - | The category under which the item falls | Any string | Language, Library |
| Color | text | false | black | Background Color of the badge | Any keyword color or hex value without alpha and # | red,00ff00 |
| Base64 | text | false | "" | Custom base64 of the svg logo | Any base64 encoded svg | data:image/svg%2bxml;base64,PHN2ZyB4b... |#### 2. Get the id of the database
![Notion Full Page Database Id](./media/notion_full_page_db_id.png)
#### 3. Add it in workflow file
```yaml
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
1. Navigate to the database in your notion account
2. Click on Share at the top right corner
3. Click on 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`:
1. Open up the devtools of your preferred browser.
2. Go to the Application > Cookies section.
3. 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. And if you want to embed it in your workflow file make sure unauthorized sources can't access/view it.
#### 2. Create a github secret to store `token_v2`
1. navigate to the url `https://github.com///settings/secrets/actions`
2. Click on `New repository secret`
3. You can name your secret as anything you want
4. Paste the `token_v2` value in the `Value` textarea
5. Use the secret in your workflow file```yaml
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.
![Github Readme Learn Section](./media/github_readme_learn_section.png)
Feel free to submit a pull request or open a new issue, contributions are more than welcome !!!