{"id":13523826,"url":"https://github.com/Eomm/notion-board","last_synced_at":"2025-04-01T01:33:35.331Z","repository":{"id":65549836,"uuid":"592204747","full_name":"Eomm/notion-board","owner":"Eomm","description":"Monitor your modules and repositories from Notion","archived":false,"fork":false,"pushed_at":"2023-11-11T11:28:22.000Z","size":1940,"stargazers_count":42,"open_issues_count":3,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-05-16T13:42:32.311Z","etag":null,"topics":["github-actions","integration","notion","notion-database","npm-module"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Eomm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-01-23T07:38:28.000Z","updated_at":"2023-11-10T07:57:44.000Z","dependencies_parsed_at":"2023-11-11T12:25:30.678Z","dependency_job_id":"4a92b931-d614-4f39-8f59-d7737a972d8c","html_url":"https://github.com/Eomm/notion-board","commit_stats":null,"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Eomm%2Fnotion-board","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Eomm%2Fnotion-board/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Eomm%2Fnotion-board/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Eomm%2Fnotion-board/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Eomm","download_url":"https://codeload.github.com/Eomm/notion-board/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246567341,"owners_count":20798156,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["github-actions","integration","notion","notion-database","npm-module"],"created_at":"2024-08-01T06:01:04.071Z","updated_at":"2025-04-01T01:33:30.308Z","avatar_url":"https://github.com/Eomm.png","language":"JavaScript","funding_links":[],"categories":["JavaScript","HarmonyOS"],"sub_categories":["Windows Manager"],"readme":"# notion-board\n\nMonitor your Node.js modules and repositories from a [Notion] page!\n\n[![status board on notion](./images/preview.png)](./images/preview.png)\n\n\n## How it works\n\nThis project is a GitHub Action that exports a set of data gathered from GitHub and NPM to publish it your [Notion].\n\nDoing so you will be able to monitor and filter your Node.js modules and repositories from a single page and much more.  \nHere an example of the [Fastify organization's status board](https://eomm.notion.site/7a064537ee794af698684df68e215b54?v=a660ff01ca5344769a5f2b1a1c4eeda4)!\n\nThe collected data are:\n\n- GitHub repository name\n- NPM downloads per month\n- GitHub stars\n- GitHub topics\n- Number of open issues, optionally filtered by labels\n- Number of open pull requests\n- Latest version published on NPM\n- Checkbox to mark archived repositories\n- Direct link to the repository\n- Direct link to the NPM page\n- NPM package size in bytes\n- Last commit date\n- Last edited date\n\nHere is a sample [database template] it will be used to store the data.\n\n\u003e **Note**  \n\u003e The project is still in early development and the data exported are not yet customizable nor configurable.  \n\u003e I aim to make this application available from the [Notion Connections](https://www.notion.so/integrations/all) marketplace.\n\n\n### How it works in details\n\nThis GitHub Action will:\n\n- Create all the missing columns into the Notion database\n- Fetch the list of repositories from GitHub using the provided `github-repository-query` input. You can test the query on [GitHub Search]\n- For each repository will check if it's a Node.js module and if it's published on NPM collecting additional data\n- Read the Notion database and update the existing rows or create new ones\n\n#### Known behaviors\n\n- Unrecognized columns will be **untouched**\n- If the row's data is not changed, the row will not be updated to minimize the API calls\n\n\n## Usage\n\nTo install this GitHub Action, you need to create a new GitHub repository and add a `.github/workflows/notion-board.yml` file with the following content:\n\n```yml\nname: Notion Board\n\non:\n  workflow_dispatch: # Allow manual trigger to force the update\n  schedule:\n    - cron: \"0 12 * * *\" # Sync it \"Everyday at 12:00 UTC (5:00 PT)\" https://crontab.guru/#0_12_*_*_*\n\njobs:\n  update-notion-board:\n    runs-on: ubuntu-latest\n\n    steps:\n      - name: Update Notion\n        uses: Eomm/notion-board@v0\n        with:\n          github-repository-query: user:Eomm is:public # Replace with your query eg: \"org:fastify\"\n          notion-token: ${{ secrets.NOTION_TOKEN }}\n          notion-database-id: ${{ secrets.NOTION_DATABASE_ID }}\n```\n\n\n### How to configure Notion\n\nIn order to use this GitHub Action, you need to create:\n\n1. A notion integration token to allow the GitHub Action to update the database\n2. An empty notion database to store the data\n\n#### Create the Notion API token\n\nTo get the token, you must follow the [official Notion documentation][1] to create the required resources.  \nNote that you must add the following `Capabilities` to the integration:\n\n- _Read content_: to read the database and skip the unchanged rows\n- _Update content_: to update existing rows, minimizing the payload\n- _Insert content_: to insert new rows\n\n#### Create the Notion database\n\nTo create the database, you can follow the [official Notion documentation][2] or follow this quick guide:\n\nStep | Description\n--- | ---\n![](./images/step-1.png) | Create an empty page\n![](./images/step-2.png) | Create an empty inline database\n![](./images/step-3.png) | Add to the page, the connection you created to get the API token\n![](./images/step-4.png) | Share the database link to get a link that [contains the ID][3]\nLast step | Add the database ID to the GitHub Action secrets\n\n\u003e **Note**  \n\u003e The Action will add to the database all the necessary columns.\n\u003e If you rename the columns or change the column's type, the columns will be added again.\n\u003e So, **right now you can't change the columns' name** or type.\n\n\n## Inputs\n\n| Input | Description | Required | Default |\n| --- | --- | --- | --- |\n| `github-repository-query` | The GitHub repository query to fetch the repositories to monitor. You can test the query on [GitHub Search] | Yes | |\n| `github-issue-labels`     | Filter the issues counter by labels. Example: `good first issue` | No | |\n| `notion-token`            | The Notion API key to use to update the database | Yes | |\n| `notion-database-id`      | The Notion database ID to update | Yes | |\n| `github-token`            | The GitHub token to use to fetch the repositories | No | `${{github.token}}` |\n| `delete-additional-rows`  | Delete Notion database's rows if they are not present in the GitHub query. | No | `true` |\n| `log-level`               | The log level to use | No | `info` |\n\n\n## License\n\nCopyright [Manuel Spigolon](https://github.com/Eomm), Licensed under [MIT](./LICENSE).\n\n\n  [1]: https://developers.notion.com/docs/create-a-notion-integration#step-1-create-an-integration\n  [2]: https://developers.notion.com/docs/create-a-notion-integration#step-2-share-a-database-with-your-integration\n  [3]: https://developers.notion.com/docs/create-a-notion-integration#step-3-save-the-database-id\n  [database template]: https://eomm.notion.site/repository-name-259756cfa17b4ec18f2a9d3e6f66c562\n  [Notion]: https://www.notion.so/\n  [GitHub Search]: https://github.com/search/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FEomm%2Fnotion-board","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FEomm%2Fnotion-board","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FEomm%2Fnotion-board/lists"}