Connect your GitHub issues to a Notion database.
Like this GitHub Action? Give us a ⭐️ and follow us on Twitter for more drops 🪂.
- Create a new internal Notion integration and note the value of the Internal Integration Token.
- In your GitHub repository, go to
Settings>Secrets, and add aNew repository secret. Set theNametoNOTION_TOKENand theValueto the Internal Integration Token you created in the previous step. - Set up your Notion Database. Use this template and duplicate it to your workspace.

- In your Notion Database page's
Sharemenu, add the Notion integration you created as a member with theCan editprivilege. You may have to type your integration's name in theInvitefield.
- Find the ID of your Database by copying the link to it. The link will have the format
https://www.notion.so/abc?v=123
where abc is the database id.
-
Add the Database's ID as a repository secret for your GitHub repository. Set the
NametoNOTION_DATABASEand theValueto the id of your Database. -
In your GitHub repository, create a GitHub workflow file at the path
.github/workflows/issues-notion-sync.yml.
name: Notion Sync
on:
workflow_dispatch:
issues:
types:
[
opened,
edited,
labeled,
unlabeled,
assigned,
unassigned,
milestoned,
demilestoned,
reopened,
closed,
]
jobs:
notion_job:
runs-on: ubuntu-latest
name: Add GitHub Issues to Notion
steps:
- name: Add GitHub Issues to Notion
uses: oakestra/notion-github-action@v1
with:
notion-token: ${{ secrets.NOTION_TOKEN }}
notion-db: ${{ secrets.NOTION_DATABASE }}- (Optional) If your Github repository has any preexisting issues that you would like to sync to your new Notion Database you can trigger a manual workflow. Make sure your organization's default
GITHUB_TOKENhas read and write permissions then follow these intructions to run theNotion Jobworkflow.
Note: The manual workflow will only work on Notion Databases created from the templated linked above.
The action syncs GitHub issues to your Notion database. Your database must have the following columns:
| Column Name | Property Type | Description |
|---|---|---|
| Name | Title | The title of the GitHub issue |
| Status | Select | The status of the issue (Open or Closed) |
| Body | Rich Text | The issue description/body content with markdown support |
| Assignees | Multi-select | People assigned to the issue |
| Reviewer | Multi-select | Reviewers (Note: currently not populated from GitHub issues) |
| Link | URL | Direct link to the GitHub issue |
You can create the database manually with these columns, or:
1.Create a new Notion database with the schema above
Make sure your Notion integration has read and write access to the database.
- Locally, on
master(make sure it's up to date), executeGITHUB_TOKEN=<TOKEN> release-it. (Alternatively, setGITHUB_TOKENas a system environment variable) - Follow the interactive prompts, selecting
Yesfor all options. - When selecting the increment, choose
patchwhen the release is only bug fixes. For new features, chooseminor. For major changes, choosemajor.
Release-It will then automatically generate a GitHub release with the changelog inside.
Built with 💙 by the team behind Fabric. Adaptation and fixes by Giobart