Pinnate Docs

GitHubApp

Git sync for sites

Import Markdown and site.yaml from GitHub or GitLab.

Connect a repository on Site → Integrations, set the path to your docs root, and sync.

Expected layout

site.yaml
introduction.md
get-started/
configuration/
…

See Project structure for the full layout story.

With sections:

When site.yaml declares sections:, each sync:

  1. Applies title, theme, visibility, navbar links, excludes

  2. Wipes and recreates all sections and guide pages from YAML + Markdown

  3. Attaches API/SDK/CLI embeds by reference

  4. Publishes a new site version on success

Treat the repo as the source of truth. Console-only pages will be removed on the next sync.

Without sections:

Markdown fills the existing guide section. Embed sections already attached in the console are preserved.

Workflow

  1. Open a PR against your docs branch

  2. Merge to the tracked branch

  3. Webhook or manual sync imports and publishes

  4. Confirm on {slug}.pinnate.app or your custom domain

Failures to expect

Condition

Result

No files under sync root

Validation error

Guide section with zero Markdown after excludes

Validation error

Unknown api / sdk / cli ref

Validation error

Duplicate page slugs in a section

Validation error

Monorepo

Use a separate Integrations path on the API (and schema/ruleset) resources for OpenAPI files. Same remote, different paths — see Registry git sync.