{"id":13847478,"url":"https://github.com/jesselang/dox","last_synced_at":"2026-01-17T04:04:19.000Z","repository":{"id":52637695,"uuid":"155648308","full_name":"jesselang/dox","owner":"jesselang","description":"Publish markdown to Confluence as HTML","archived":false,"fork":false,"pushed_at":"2024-04-04T23:21:19.000Z","size":59,"stargazers_count":23,"open_issues_count":6,"forks_count":5,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-07-12T09:39:18.669Z","etag":null,"topics":["confluence","documentation","golang","markdown"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jesselang.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":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-11-01T02:04:49.000Z","updated_at":"2025-05-19T11:45:57.000Z","dependencies_parsed_at":"2024-01-15T20:51:48.876Z","dependency_job_id":"300a488d-ae22-415c-b5e3-fb7b1a30a5e3","html_url":"https://github.com/jesselang/dox","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jesselang/dox","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jesselang%2Fdox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jesselang%2Fdox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jesselang%2Fdox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jesselang%2Fdox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jesselang","download_url":"https://codeload.github.com/jesselang/dox/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jesselang%2Fdox/sbom","scorecard":{"id":516499,"data":{"date":"2025-08-11","repo":{"name":"github.com/jesselang/dox","commit":"7f857cc5c67e1c614a438a3b077fd094840c196f"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.4,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":2,"reason":"Found 6/21 approved changesets -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/codeql-analysis.yml:1","Warn: no topLevel permission defined: .github/workflows/go.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:38: update your workflow using https://app.stepsecurity.io/secureworkflow/jesselang/dox/codeql-analysis.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/jesselang/dox/codeql-analysis.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:53: update your workflow using https://app.stepsecurity.io/secureworkflow/jesselang/dox/codeql-analysis.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:67: update your workflow using https://app.stepsecurity.io/secureworkflow/jesselang/dox/codeql-analysis.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/go.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/jesselang/dox/go.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/go.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/jesselang/dox/go.yml/main?enable=pin","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":7,"reason":"SAST tool detected but not run on all commits","details":["Info: SAST configuration detected: CodeQL","Warn: 0 commits out of 15 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"16 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GO-2022-0197 / GHSA-4r78-hx75-jjj2 / GHSA-mv93-wvcp-7m7r","Warn: Project is vulnerable to: GO-2020-0014 / GHSA-vfw5-hrgq-h5wf","Warn: Project is vulnerable to: GO-2022-0536 / GHSA-39qc-96h7-956f / GHSA-hgr8-6h9x-f7q9","Warn: Project is vulnerable to: GO-2022-0236 / GHSA-h86h-8ppg-mxmh","Warn: Project is vulnerable to: GO-2021-0238 / GHSA-83g2-8m93-v3w7","Warn: Project is vulnerable to: GO-2022-0288","Warn: Project is vulnerable to: GO-2022-0969 / GHSA-69cg-p879-7622","Warn: Project is vulnerable to: GO-2022-1144 / GHSA-xrjj-mj9h-534m","Warn: Project is vulnerable to: GO-2023-1571 / GHSA-vvpx-j8f3-3w6h","Warn: Project is vulnerable to: GO-2023-1988 / GHSA-2wrh-6pvc-2jm9","Warn: Project is vulnerable to: GO-2023-2102 / GHSA-4374-p667-p6c8","Warn: Project is vulnerable to: GHSA-qppj-fm5r-hxr3","Warn: Project is vulnerable to: GO-2024-2687 / GHSA-4v7x-pqxf-cx7m","Warn: Project is vulnerable to: GO-2024-3333","Warn: Project is vulnerable to: GO-2025-3503 / GHSA-qxp5-gwg8-xv66","Warn: Project is vulnerable to: GO-2025-3595 / GHSA-vvgc-356p-c3xw"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-20T01:57:32.567Z","repository_id":52637695,"created_at":"2025-08-20T01:57:32.567Z","updated_at":"2025-08-20T01:57:32.567Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28494196,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T02:39:23.645Z","status":"ssl_error","status_checked_at":"2026-01-17T02:34:19.649Z","response_time":85,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["confluence","documentation","golang","markdown"],"created_at":"2024-08-04T18:01:30.091Z","updated_at":"2026-01-17T04:04:18.967Z","avatar_url":"https://github.com/jesselang.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"\u003c!-- dox: 1639121104 --\u003e\n# Meet dox\n\ndox publishes markdown to Confluence as HTML. For those who prefer to keep\ndocumentation in git, but need to publish to Confluence because... reasons.\n\n## Installing\n\n```sh\ngo install github.com/jesselang/dox\n```\n\n## Use\n\n```sh\n# tell dox where to publish\ncat - \u003c\u003cEOF \u003e .dox.yaml\nuri: https://confluence.yourcompany.com\nspace: DEMO\ntitle: \"title of generated root page\"\nbrowse_url_base: https://github.com/jesselang/dox/blob/master\nEOF\n\n# set DOX_USERNAME and DOX_PASSWORD to appropriate values\n export DOX_USERNAME=...\n export DOX_PASSWORD=...\n\n# publish\ndox [-v]\n```\n\ndox will publish **all markdown files** as children of a root page. Each\nmarkdown file will be modified with a dox header. Be sure to commit `.dox.yaml`\nand the modified markdown in your source code management.\n\n## dox Header\n\nAll markdown files should have a *dox header*. The dox header is a single line\ncomment at the top of source files that contains a comma separated list of\nitems. The items include a page ID and optional *source directives*.\n\nAll **published** pages will have the page ID included in the dox header.\n\n```\n\u003c!-- dox: 1234567890 --\u003e\n```\n\n## Source Directives\n\nSource directives allow the user to control how files are published. They are\ndefined as items in the comma separated list in the dox header.\n\n```\n\u003c!-- dox: 1234567890, \u003cdirective\u003e, \u003cdirective\u003e --\u003e\n```\n\n### Ignore Directive\n\nIf a file should not be published, use the ignore directive. The ignore\ndirective should be the only item in the dox header.\n\n```\n\u003c!-- dox: ignore --\u003e\n```\n\n### Omit Notice Directive\n\nBy default, dox adds a notice at the top of each published page stating that\nmodifications to the page should be done to the source file. This notice can be\nomitted.\n\n```\n\u003c!-- dox: 1234567890, omit-notice --\u003e\n```\n\n## Relative Linking\n\nWebsites like github allow markdown files to relatively link to other files in\nthe repository. dox will try to replicate this functionality by changing\nrelative links it finds in pages to be published.\n\nIf the relative link points to a dox source file, it will change that link to\nthe URL for that published page (currently limited to Confluence). Otherwise,\ndox will change the link to the file's browse URL using `browse_url_base`.\n\n`browse_url_base` supports formatting using the `%s` verb:\n\n```\n# dox appends '/%s'\nbrowse_url_base: https://github.com/jesselang/dox/blob/master\n\nbrowse_url_base: https://othersourcesite.com/repo-base/browse/%s?format=raw\n```\n\n\u003c!-- ## Not supported --\u003e\n\n## Roadmap\n\n- Improve [go-confluence][go-confluence] error handling\n- Media files\n- `dox update` updates already published files without source modifications\n- `dox init` to create initial config\n- `dox add` to initially publish new files\n- `dox ignore` to ignore files\n- Consider managing a manifest file in repo using UUIDs instead of\nconfluence page ID\n\n## Developing\n\ndox requires Go 1.11 modules or vgo. Clone the repo outside of your GOPATH,\nand use `go build`.\n\n\n[go-confluence]: https://github.com/jesselang/go-confluence\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjesselang%2Fdox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjesselang%2Fdox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjesselang%2Fdox/lists"}