Coder Social home page Coder Social logo

reinforz / github-readme-learn-section-notion Goto Github PK

View Code? Open in Web Editor NEW
36.0 1.0 0.0 832 KB

Update your github README with data fetched from a notion database

Home Page: https://github.com/marketplace/actions/github-readme-learn-section-notion

License: MIT License

JavaScript 3.19% TypeScript 95.92% Shell 0.89%
notion github-actions github-readme notion-database

github-readme-learn-section-notion's Introduction

Logo

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

## What I know 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, or this repo.

In your notion account

1. Create a full page database

Notion Full Page Database

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

3. Add it in 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

  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/<USERNAME>/<REPO-NAME>/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
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

Feel free to submit a pull request or open a new issue, contributions are more than welcome !!!

github-readme-learn-section-notion's People

Contributors

devorein avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.