Skip to content

Releases: pipewell/confluence-publisher

Release list

v1.0.1

Choose a tag to compare

@donolu donolu released this 30 Jun 00:35
97d0070

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:

  1. After a sync run, if new page IDs were assigned, the action commits the manifest via the GitHub Contents API.
  2. 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: write

New 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

Choose a tag to compare

@donolu donolu released this 29 Jun 22:41

First release of pipewell-confluence-publisher, available on PyPI and the GitHub Actions Marketplace.

Install

pip install pipewell-confluence-publisher

Or 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)