GitHub Action that pushes Markdown and docs from a repository into a Datalumo knowledge source.
Use it when your content lives in git. On push, the files are synced. Visitors get search and chat that stay on your content.
- In Datalumo, create a source of type API.
- Create an API key with
pages.writeandpages.read. Limit it to that source if you can. Read is used to prune pages whose files were removed. - Copy your organisation public id (the UUID, not the slug).
- In the docs repo, add the secrets and this workflow.
name: Sync docs to Datalumo
on:
push:
branches: [main]
paths:
- "docs/**"
- ".github/workflows/datalumo.yml"
jobs:
sync:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: datalumo/github-action@v1
with:
api_key: ${{ secrets.DATALUMO_TOKEN }}
organisation: ${{ secrets.DATALUMO_ORG }}
source: docs
path: docs
base_url: https://example.com/docsexternal_id is the path relative to path, without the file extension. install.md becomes install. Nested files keep their folders: guides/install.md becomes guides/install. A later run updates the same pages instead of duplicating them. Files that disappear from the folder are deleted from the source.
Citation URLs are {base_url}/{external_id}, so base_url: https://example.com/docs plus install.md becomes https://example.com/docs/install.
Pin @v1 for compatible updates. Pin @v1.0.0 if you need that exact release.
| Input | Required | Default | What it is |
|---|---|---|---|
api_key |
yes | Organisation API key with pages.write and pages.read |
|
organisation |
yes | Organisation public id (UUID) | |
source |
yes | API source slug or public id | |
path |
no | docs |
Folder to sync, relative to the repo |
base_url |
no | Public docs URL prefix for citations | |
api_url |
no | https://datalumo.app |
Change only for a self-hosted install |
.md, .mdx, .markdown, .html, .htm, and .txt. It skips .git, node_modules, vendor, and .github.
Title comes from the first # heading, or the file name. After a push, the action kicks indexing. Watch the source page in the dashboard until it says Ready.
An empty folder fails the job instead of wiping the source.
This repository is the listed Action. Publish a release from action.yml and tick Publish this Action to the GitHub Marketplace. See GitHub's listing steps.