https://github.com/infinitaslearning/notion-azure-catalog
A github action to update a Notion database with Azure subscription and resource group information
https://github.com/infinitaslearning/notion-azure-catalog
Last synced: 8 months ago
JSON representation
A github action to update a Notion database with Azure subscription and resource group information
- Host: GitHub
- URL: https://github.com/infinitaslearning/notion-azure-catalog
- Owner: infinitaslearning
- Created: 2022-01-06T11:55:10.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2023-07-19T07:32:55.000Z (almost 3 years ago)
- Last Synced: 2025-07-08T02:17:02.822Z (11 months ago)
- Language: JavaScript
- Size: 1.25 MB
- Stars: 0
- Watchers: 5
- Forks: 0
- Open Issues: 12
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# Notion Azure Catalog
This action will scan all of the Azure subscritpions available to the provided token and update their information in the specified Notion database.
## Notion integration and token
First, you need to have an integration access token - which you can get from https://www.notion.so/my-integrations after creating an integration. Give the integration a friendly name like 'Github Actions'.
By default integrations cant access any content so you you *must* share your database (or the parent page / tree it is contained within) with the integration you created earlier to be able to access it.
## Notion Databases
This action expects a Notion Resource database with the following properties for *Subscriptions*
- Name: text
- URL: url
- ID: text
- Updated: date
- Hash: text
This action expects a Notion Resource database with the following properties for *Resources*
- Name: text
- URL: url
- Type: select
- ID: text
- Location: select
- Subscription: relation[Subscriptions]
- Updated: date
- Hash: text
## Usage
This is typically deployed as a scheduled action:
```yaml
name: AzureCatalog
on:
schedule:
- cron: '30 5 * * *'
workflow_dispatch:
jobs:
catalog:
runs-on: ubuntu-latest
steps:
- name: Notion azure catalog
uses: infinitaslearning/notion-azure-catalog@main
with:
notion_token: ${{ secrets.NOTION_TOKEN }}
resource_database: 2b26b4290cc84d95ad3e93c3255277a1
subscription_database: 2b26b4290cc84d95ad3e93c3255277a1
subscription_filter: .*
env:
AZURE_CLIENT_ID: '${{ secrets.AZURE_CLIENT_ID }}'
AZURE_TENANT_ID: '${{ secrets.AZURE_TENANT_ID }}'
AZURE_CLIENT_SECRET: '${{ secrets.AZURE_CLIENT_SECRET }}'
```
To get the database ID, simply browse to it, click on the '...' in Notion, and get a 'Copy link'. The GUID at the end of the URL (but before the `?v=`) is the id, this works on both embedded and full page databases.
## Azure Credentials
This expects a set of Azure environment credentials, easiest to get via: https://docs.microsoft.com/en-us/cli/azure/ad/sp?view=azure-cli-latest
```
AZURE_CLIENT_ID=...
AZURE_TENANT_ID=...
AZURE_CLIENT_SECRET=...
```
## Development
Assumes you have `@vercel/ncc` installed globally.
After changes ensure you `npm run build`, commit and then submit a PR.
For the tests to run you need to have the environment variables set for GITHUB_TOKEN, NOTION_TOKEN and NOTION_DATABASE.