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:
Applies title, theme, visibility, navbar links, excludes
Wipes and recreates all sections and guide pages from YAML + Markdown
Attaches API/SDK/CLI embeds by reference
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
Open a PR against your docs branch
Merge to the tracked branch
Webhook or manual sync imports and publishes
Confirm on
{slug}.pinnate.appor 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 | 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.