/docs-as-code-confluence

Publish the content of a folder to confluence Github Action

Primary LanguageJavaScriptMIT LicenseMIT

Docs as Code - Confluence

Publish a folder of documentation to Confluence.

Create a Confluence Page for each markdown file. Each folder will create a parent page to reflect the directory structure.

Parameters

Name Description Required
folder The folder to sync true
username Confluence username or email true
password Confluence password or API token true
confluence-base-url Your Confluence URL (with wiki). Example: https://mydomain.atlassian.net/wiki true
space-key Confluence space key to publish the documentation. Located after spaces in the URL. https://mydomain.atlassian.net/wiki/spaces/<<~1234>>.
Or in Space settings > Space details > Key.
true
parent-page-id Page id under which the documentation will be published. Located after pages in the URL. https://mydomain.atlassian.net/wiki/spaces/~1234/pages/<<1234>>/My+Parent+Page true

TODO

  • Renaming a file
  • Moving/Removing a file
  • Not updating Confluence pages when there is no change
  • Add commit link to the new page version
  • Add markdown images with url source

Example of workflow

name: Sync Docs as Code - Confluence
on:
  push:
    branches:
      - main
    paths:
      - 'docs/**'
jobs:
  docs-as-code:
    runs-on: ubuntu-latest
    name: Sync Docs as Code - Confluence
    steps:
      - name: Checkout
        uses: actions/checkout@v2
      - name: Sync Docs as Code - Confluence
        uses: Bhacaz/docs-as-code-confluence@v2
        with:
          folder: docs
          username: abc@xyz.com
          password: ${{ secrets.API_TOKEN }}
          confluence-base-url: https://mydomain.atlassian.net/wiki
          space-key: ~1234
          parent-page-id: 123456789

Example of usage in a repository

Bhacaz/docs-as-code-confluence-demo