{"id":21031299,"url":"https://github.com/workable/confluence-docs-as-code","last_synced_at":"2026-02-25T02:32:11.181Z","repository":{"id":72865938,"uuid":"588220902","full_name":"Workable/confluence-docs-as-code","owner":"Workable","description":"Gihub action to publish MkDocs documentation to Atlassian Confluence Cloud wiki.","archived":false,"fork":false,"pushed_at":"2024-07-11T15:07:05.000Z","size":2584,"stargazers_count":23,"open_issues_count":2,"forks_count":4,"subscribers_count":36,"default_branch":"main","last_synced_at":"2025-05-15T11:38:57.719Z","etag":null,"topics":["actions","confluence","mkdocs"],"latest_commit_sha":null,"homepage":"https://workable.github.io/confluence-docs-as-code/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Workable.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-01-12T16:01:39.000Z","updated_at":"2025-05-12T01:02:02.000Z","dependencies_parsed_at":null,"dependency_job_id":"bbac7ecb-52ec-4d4a-81b6-60d728568681","html_url":"https://github.com/Workable/confluence-docs-as-code","commit_stats":null,"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/Workable/confluence-docs-as-code","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Workable%2Fconfluence-docs-as-code","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Workable%2Fconfluence-docs-as-code/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Workable%2Fconfluence-docs-as-code/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Workable%2Fconfluence-docs-as-code/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Workable","download_url":"https://codeload.github.com/Workable/confluence-docs-as-code/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Workable%2Fconfluence-docs-as-code/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29809086,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-24T22:43:48.403Z","status":"online","status_checked_at":"2026-02-25T02:00:07.329Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["actions","confluence","mkdocs"],"created_at":"2024-11-19T12:27:09.585Z","updated_at":"2026-02-25T02:32:11.156Z","avatar_url":"https://github.com/Workable.png","language":"JavaScript","readme":"# Confluence Docs as Code Action\n\nThis Action publishes your [MkDocs](https://www.mkdocs.org) documentation to your\nAtlassian Confluence Cloud wiki.\n\n## Features\n\n* Publishes only new or changed pages\n  * Optionally [force update](#confluence_force_update) all pages\n  * Force update all pages on new major/minor release\n* Converts internal links to Confluence links\n* Uploads images as Confluence page attachments\n* Converts fenced code blocks to Confluence code macros\n* Renders graphs:\n  * *Mermaid* see [`mermaid_renderer`](#mermaid_renderer) for available options\n  * *PlantUML* see [`plantuml_renderer`](#plantuml_renderer) for available options\n* Add a common [prefix](#confluence_title_prefix) to all page titles\n* Restricts page update to [confluence_user](#confluence_user)\n\n## Limitations\n\n* Does not fully support nesting in the `nav` section of the [MkDocs Configuration](#mkdocs-configuration),\n  flattens all pages to one level.\n* Does not publish pages not described in the `nav` section.\n\n## Requirements\n\nIn order to use this action to your repository you need to meet the following requirements.\n\n### MkDocs Configuration\n\nYour repository is expected to include an `mkdocs.yml` configuration file\n(in the root dir) with the following settings:\n\n* `site_name`\n* `repo_url`\n* `nav`\n\n```yml\nsite_name: Fixture Site Name\nrepo_url: https://github.com/fixture-account/fixture-repo\n\nnav:\n  - Page title: page.md\n  - Some other page title: other-page.md\n  - Yet an other page title: more/page.md\n```\n\nFor more MkDocs configuration options check out the official [documentation](https://www.mkdocs.org/user-guide/configuration).\n\n### Atlassian Confluence\n\nIn order for the action to be able to publish your documents to a Confluence space\nyou need to create an API token for a user with read/write access to that space.\n\nIt is highly recommended that you create a dedicated (robot) user just for this purpose.\n\nRefer to Atlassian documentation on [managing API tokens](https://support.atlassian.com/atlassian-account/docs/manage-api-tokens-for-your-atlassian-account/).\n\n## Inputs\n\n### `confluence_tenant`\n\n**Required**. Typically this is your is your organization name that is used as a subdomain to\nyour Atlassian cloud url, for example if your Atlassian url is\n`https://my-organization.atlassian.net` use `my-organization` as\n`confluence_tenant`\n\n### `confluence_space`\n\n**Required**. The key of the space that will host your documentation.\nIf your space has an auto-generated key, navigate to your space an you can find\nit in the URL on your browser's location.\n\nFor example if your space URL is:\n`https://my-organization.atlassian.net/wiki/spaces/~55700475998cb3f40a`\n\nUse `~55700475998cb3f40a` as your `confluence_space`.\n\n### `confluence_user`\n\n**Required**. The username of the user that will be used to publish to Confluence\n(see also [Atlassian Confluence](#atlassian-confluence) section)\n\n### `confluence_token`\n\n**Required**. The API token of the user that will be used to publish to Confluence\n(see also [Atlassian Confluence](#atlassian-confluence) section)\n\n### `confluence_parent_page`\n\n*Optional*. The title of an existing page in the same Confluence space to be used as\na parent for your documentation.\n\nFor example if your space has a page with title **\"My Documentation\"** and you\nwant to use it as the parent for your published documents, then set\n`confluence_parent_page` to `'My Documentation'`\n\n### `confluence_title_prefix`\n\n*Optional*. When set, this prefix will be prepended to all confluence page titles\nexcept your root page which is titled according to the `site_name` in your\n[MkDocs configuration](#mkdocs-configuration).\n\nFor example, if you have a page with title `'My Page'` and the `confluence_title_prefix`\nis set to `'FOO:'` then the page will be created to confluence with the title\n`'FOO: My Page'`.\n\nThis could be useful in cases that you want to publish multiple repos to the same\nconfluence space, which requires each page title to be unique.\n\n### `confluence_force_update`\n\n*Optional*. When set to `yes` all pages will be published to confluence including\nthose that have not changed. Can be handy when used with the `workflow_dispatch`\nevent as shown in the [example usage](#example-usage) below.\n\n### `confluence_cleanup`\n\n*Optional*. When set to `yes` all pages will be deleted from confluence.\nCan be handy when used with the `workflow_dispatch` event as shown in the\n[example usage](#example-usage) below.\n\n### `kroki_enabled` (*Deprecated*)\n\n*Optional*. When set to `yes` enables rendering of [Mermaid](https://mermaid.js.org/)\nand [PlantUML](https://plantuml.com/) graphs into images (`.png`)\nvia [Kroki.io](https://kroki.io/) service.\n\nDefaults to `yes`.\n\n\u003e ⚠️ Will be removed in future releases in favour of the more fine-grained\n\u003e [`mermaid_renderer`](#mermaid_renderer) and [`plantuml_renderer`](#plantuml_renderer)\n\u003e options below.\n\n### `kroki_host` \n\n*Optional*. When set this host is used as a kroki server instead of the default one.\nSee [kroki docs](https://docs.kroki.io/kroki/setup/use-docker-or-podman/) on how to setup a local kroki instance.\n\nDefaults to https://kroki.io\n\n### `mermaid_renderer`\n\n*Optional*. Can be one of:\n\n* `'none'`: will not render\n* `'kroki'`: will use [Kroki.io](https://kroki.io) to render as `png`\n* `'mermaid-plugin'`: will upload the diagram source and render using\n  [Mermaid Diagrams for Confluence](https://marketplace.atlassian.com/apps/1226567/mermaid-diagrams-for-confluence?tab=overview\u0026hosting=cloud) add-on\n\n\u003e ⚠️ If not explicitly defined, falls back to [`kroki_enabled`](#kroki_enabled-deprecated)\n\u003e option in order to provide backwards compatibility\n\n### `plantuml_renderer`\n\n*Optional*. Can be one of:\n\n* `'none'`: will not render\n* `'kroki'`: will use [Kroki.io](https://kroki.io) to render as `png`\n* `'plantuml'`: will use [plantuml.com](https://plantuml.com/) to render as `png`\n\n\u003e ⚠️ If not explicitly defined, falls back to [`kroki_enabled`](#kroki_enabled-deprecated)\n\u003e option in order to provide backwards compatibility\n\n## Example usage\n\n```yml\n# File: .github/workflows/publish_to_confluence.yml\n\nname: Publish MkDocs to Confluence\n\non:\n  push:\n    branches:\n      - master\n    paths:\n      - \"docs/**\"\n      - mkdocs.yml\n  workflow_dispatch:\n    inputs:\n      confluence_force_update:\n        description: 'Force update all pages (yes/no)?'\n        required: false\n        default: 'no'\n      confluence_cleanup:\n        description: 'Delete all pages (yes/no)?'\n        required: false\n        default: 'no'\n\njobs:\n  publish-to-confluence:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout Source\n        uses: actions/checkout@v3\n      - name: Publish to Confluence\n        uses: Workable/confluence-docs-as-code@v1.5.0\n        with:\n          confluence_tenant: 'Your Confluence Account Name'\n          confluence_space: 'The Confluence Space Key'\n          confluence_user: ${{ secrets.CONFLUENCE_USER }}\n          confluence_token: ${{ secrets.CONFLUENCE_TOKEN }}\n          confluence_parent_page: 'The title of the page to use as parent' # Optional\n          confluence_title_prefix: 'My Prefix:' # Optional\n          confluence_force_update: ${{ github.event.inputs.confluence_force_update }} # Optional\n          confluence_cleanup: ${{ github.event.inputs.confluence_cleanup }} # Optional\n          kroki_enabled: 'no' # Optional\n          kroki_host: 'https://kroki.io' # Optional\n          mermaid_renderer: 'none' # Optional\n          plantuml_renderer: 'none' # Optional\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fworkable%2Fconfluence-docs-as-code","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fworkable%2Fconfluence-docs-as-code","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fworkable%2Fconfluence-docs-as-code/lists"}