Releases: pipewell/confluence-publisher
Releases · pipewell/confluence-publisher
Release list
v1.0.1
What changed
Manifest write-back now handled by the action itself.
Previously, the consuming repo's workflow was responsible for committing updated page IDs back to confluence-manifest.yaml after new pages were created. This required a direct push to main, which broke when branch protection was enabled.
The action now handles write-back automatically:
- After a sync run, if new page IDs were assigned, the action commits the manifest via the GitHub Contents API.
- If branch protection blocks the direct commit, the action opens a PR automatically. Merge it promptly -- until merged, the next publish run will not have the new page IDs.
To avoid the PR fallback, grant github-actions[bot] bypass permission on the branch protection rule for main in your repository settings.
Required workflow permissions
Add these to your publish workflow:
permissions:
contents: write
pull-requests: writeNew input
| Input | Default | Description |
|---|---|---|
github-token |
GITHUB_TOKEN |
Override the token used for manifest write-back; useful when a PAT with elevated permissions is needed |
See ONBOARDING.md for full details.
v1.0.0
First release of pipewell-confluence-publisher, available on PyPI and the GitHub Actions Marketplace.
Install
pip install pipewell-confluence-publisherOr use directly as a GitHub Action:
- uses: pipewell/confluence-publisher@v1.0.0
with:
confluence-base-url: ${{ vars.CONFLUENCE_BASE_URL }}
confluence-email: ${{ vars.CONFLUENCE_EMAIL }}
confluence-api-token: ${{ secrets.CONFLUENCE_API_TOKEN }}Features
- Supports Confluence Cloud (v2 API) and Data Center (v1 API)
- Converts Markdown to Confluence Storage Format via a custom mistletoe renderer
- Manages page identity via a checked-in YAML manifest; no reliance on page titles
- Auto-creates pages when no page_id is set; writes the new ID back via a skip-ci commit
- Uploads local images and Mermaid diagrams as page attachments
- Rewrites internal Markdown links to Confluence ac:link macros, including links with anchors and query strings
- Conflict detection: warns or fails when a Confluence page has been manually edited since last publish
- Dry-run mode for safe validation in pull requests
- All failures exit non-zero; no silent failures
- CI: ruff, mypy strict, pytest (121 tests passing)