Publish GitHub Markdown to Confluence While Checking for Manual-Edit Conflicts
Updated
1. Read-Only Destination Preflight & Version-Drift Detection
Blind CI/CD documentation scripts push Markdown commits directly to the Confluence REST API by incrementing the remote version number without verifying who authored the latest revision. DocBrancher records the expectedConfluenceVersion and content SHA-256 from the last synchronization. When you run a destination preflight, DocBrancher queries the remote space in read-only mode and flags any page whose actualRemoteConfluenceVersion exceeds expectedConfluenceVersion.
// Illustrative conflict example
{
"repoPath": "docs/architecture/overview.md",
"confluencePageTitle": "System Architecture Overview",
"preflightAction": "CONFLICT_DETECTED",
"expectedConfluenceVersion": 3,
"actualRemoteConfluenceVersion": 4,
"conflictReason": "Remote Confluence page advanced from v3 to v4 outside Git synchronization."
}
2. Side-by-Side Storage XHTML Inspection & Explicit Resolution
When a version conflict is detected during preflight, DocBrancher refuses to publish that page until an explicit operator decision is selected. You can inspect the compiled GitHub Storage XHTML alongside the remote Confluence Storage XHTML and choose either PRESERVE_HUMAN_EDIT (skip overwriting the remote page so the manual Confluence v4 edit remains intact) or FORCE_OVERWRITE_FROM_GITHUB (publish the GitHub Markdown compilation as Confluence v5).
Resolution Option A: PRESERVE_HUMAN_EDIT
-> Skips remote write; retains Confluence Cloud v4 as-is.
Resolution Option B: FORCE_OVERWRITE_FROM_GITHUB
-> Publishes compiled GitHub Storage XHTML as Confluence Cloud v5.
3. Operational Boundaries, Race-Condition Limits & Explicit Non-Goals
Engineering teams evaluating DocBrancher should review three operational boundaries: (1) Version checks detect manual Confluence edits present at preflight and sync execution time rather than holding an exclusive distributed lock against mid-request concurrent edit races; (2) Scoped workbench runs and Assisted Publishing Pilots cover up to 20 Markdown files (.md, .markdown, .mdx) per run across repository root and docs/; (3) DocBrancher compiles standard GitHub-Flavored Markdown and relative links to Confluence Storage XHTML and does not execute custom MkDocs Python plugins, Jinja2 macros, or static-site theme hooks.
Frequently Asked Questions
Can I test the Markdown compiler and conflict review flow without connecting Confluence first?
Preview rendered pages and rewritten links using a public GitHub repository. The illustrated conflict example explains version checks; checking your destination requires an authorized Confluence connection.
What is included in the $49 Assisted Publishing Pilot?
The Assisted Publishing Pilot covers 1 GitHub repository branch, 1 Confluence Cloud space, and up to 20 agreed Markdown pages within a 14-day delivery window, backed by our 14-day refund policy.
Related DocBrancher Guides & Compatibility Reference
-
Technical Compatibility, Scope & Explicit Non-Goals Matrix
Reference table covering the 20-file scoped run limit, supported GFM syntax, and preflight version check boundaries.
-
How to Publish Multi-File GitHub Markdown to Confluence Cloud Without Broken Links
Step-by-step engineering guide to synchronizing multi-file GitHub Markdown trees, relative links, anchors, and binary image attachments to Confluence Cloud.
-
Rewriting Relative Markdown Links and Heading Anchors for Confluence Storage XHTML
Technical reference on converting GitHub-Flavored Markdown relative paths, directory traversal links, and #heading-anchors into native Confluence Cloud macros.
-
Preview and Export Multi-File GitHub Markdown as an HTML Bundle Before Confluence Publishing
Step-by-step guide to loading a public GitHub repository in DocBrancher, inspecting compiled pages and rewritten relative links, and downloading an HTML documentation bundle via the workbench.
Preview a Public Repository or Request an Assisted Pilot
Preview rendered pages and rewritten links using a public GitHub repository. The illustrated conflict example explains version checks; checking your destination requires an authorized Confluence connection.