{"id":19740742,"url":"https://github.com/duo-labs/markdown-to-confluence","last_synced_at":"2025-04-05T16:09:09.632Z","repository":{"id":43903350,"uuid":"229082100","full_name":"duo-labs/markdown-to-confluence","owner":"duo-labs","description":"Syncs Markdown files to Confluence","archived":false,"fork":false,"pushed_at":"2024-08-21T11:05:05.000Z","size":22,"stargazers_count":310,"open_issues_count":9,"forks_count":68,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-03-29T15:05:33.832Z","etag":null,"topics":["confluence","markdown"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/duo-labs.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":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-12-19T15:20:54.000Z","updated_at":"2025-02-28T01:03:48.000Z","dependencies_parsed_at":"2024-12-08T21:04:17.629Z","dependency_job_id":"5939bd98-e408-403a-8d49-e8068b61c84b","html_url":"https://github.com/duo-labs/markdown-to-confluence","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duo-labs%2Fmarkdown-to-confluence","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duo-labs%2Fmarkdown-to-confluence/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duo-labs%2Fmarkdown-to-confluence/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duo-labs%2Fmarkdown-to-confluence/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/duo-labs","download_url":"https://codeload.github.com/duo-labs/markdown-to-confluence/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247361691,"owners_count":20926643,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["confluence","markdown"],"created_at":"2024-11-12T01:23:02.682Z","updated_at":"2025-04-05T16:09:09.595Z","avatar_url":"https://github.com/duo-labs.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# markdown-to-confluence\n\nConverts and deploys a Markdown file to Confluence.\n\nThis project was created to sync [Journal](https://duo-labs.github.io/journal/) posts to Confluence as part of the CI process. However, it's able to more generally handle Markdown files that have front-matter at the top, such as those used in Hugo, Jeykll, etc.\n\n# Installation\n\nTo install the project, you need to first install the dependencies:\n\n```\npip install -r requirements.txt\n```\n\nAlternatively, you can use the provided Dockerfile:\n\n```\ndocker build -t markdown-to-confluence .\n```\n\n# Usage\n\n```\nusage: markdown-to-confluence.py [-h] [--git GIT] [--api_url API_URL]\n                                 [--username USERNAME] [--password PASSWORD]\n                                 [--space SPACE] [--ancestor_id ANCESTOR_ID]\n                                 [--header HEADER] [--dry-run]\n                                 [posts [posts ...]]\n\nConverts and deploys a markdown post to Confluence\n\npositional arguments:\n  posts                 Individual files to deploy to Confluence (takes\n                        precendence over --git)\n\noptional arguments:\n  -h, --help            show this help message and exit\n  --git GIT             The path to your Git repository (default:\n                        /Users/jwright/src/journal-to-confluence))\n  --api_url API_URL     The URL to the Confluence API (e.g.\n                        https://wiki.example.com/rest/api/)\n  --username USERNAME   The username for authentication to Confluence\n                        (default: env('CONFLUENCE_USERNAME'))\n  --password PASSWORD   The password for authentication to Confluence\n                        (default: env('CONFLUENCE_PASSWORD'))\n  --space SPACE         The Confluence space where the post should reside\n                        (default: env('CONFLUENCE_SPACE'))\n  --ancestor_id ANCESTOR_ID\n                        The Confluence ID of the parent page to place posts\n                        under (default: env('CONFLUENCE_ANCESTOR_ID'))\n  --header HEADER       Extra header to include in the request when sending\n                        HTTP to a server. May be specified multiple times.\n                        (default: env('CONFLUENCE_HEADER_\u003cNAME\u003e'))\n  --dry-run             Print requests that would be sent- don't actually make\n                        requests against Confluence (note: we return empty\n                        responses, so this might impact accuracy)\n```\n\n## What Posts are Deployed\n\nThis project assumes that the Markdown files being processed have YAML formatted front-matter at the top. In order for a file to be processed, we expect the following front-matter to be present:\n\n```yaml\nwiki:\n    share: true\n```\n\n## Deploying a Post\n\nThere are two ways to deploy a post:\n\n### Syncing from a Git Repository\n\nThis project was originally created to keep an instance of Journal in sync with a Confluence instance. To that end, this project is able to be run as part of a CI/CD pipeline, taking the Markdown files modified in the latest commit and syncing them to the upstream Confluence instance.\n\nTo enable this as part of your CI/CD pipeline, run `markdown-to-confluence`, providing the `--git` flag:\n\n```\nmarkdown-to-confluence.py --git /path/to/your/repo\n```\n\n### Deploying Posts On-Demand\n\nYou may wish to deploy a post on-demand, rather than building this process into your CI/CD pipeline. To do this, just put the filenames of the posts you wish to deploy to Confluence as arguments:\n\n```\nmarkdown-to-confluence.py /path/to/your/post.md\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fduo-labs%2Fmarkdown-to-confluence","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fduo-labs%2Fmarkdown-to-confluence","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fduo-labs%2Fmarkdown-to-confluence/lists"}