feat(docs): publish documentation to the AbsaOSS knowledge base - #93
Conversation
Adds the zero-config single-page onboarding: one workflow renders docs/index.md and docs/security/security.md into a headless bundle and attaches dist.tar.gz to the published release. - new .github/workflows/publish_docs.yml (release: published + workflow_dispatch with an optional release-tag input) - new docs/index.md overview page, frontmatter-free - docs/security/security.md: root-relative links replaced with absolute GitHub URLs, which resolve against the knowledge-base origin otherwise Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GdafNH5D2xP8QNjo1yBE8Y
|
Warning Review limit reached
Next review available in: 40 minutes You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
WalkthroughThis change adds a GitHub Actions workflow, "Publish Docs," that runs on release publication or manual dispatch to publish security automation documentation to the Knowledge Base. It also updates security documentation links from relative paths to absolute GitHub URLs and corrects a label typo. ChangesDocumentation publication
Estimated code review effort: 2 (Simple) | ~10 minutes Sequence Diagram(s)sequenceDiagram
participant Release as Release publication or manual dispatch
participant Actions as GitHub Actions
participant Repository as Repository checkout
participant KnowledgeBase as Knowledge Base
Release->>Actions: Start Publish Docs workflow
Actions->>Repository: Checkout repository and resolve release tag
Actions->>KnowledgeBase: Publish security automation documentation
Possibly related PRs
Suggested reviewers: Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Drop docs/index.md from the publish definition and from the repository. The knowledge base catalogue already lists every registered app, so a per-repo overview page duplicated that landing without adding anything. Remove the overview back-link from the security page along with it. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GdafNH5D2xP8QNjo1yBE8Y
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.github/workflows/publish_docs.yml:
- Line 41: Update the publish-single-page-docs action reference in the workflow
to use a full immutable commit SHA instead of the mutable master tag, while
preserving the existing action and permissions configuration.
In `@docs/security/security.md`:
- Line 190: Standardize the spelling in docs/security/security.md by changing
“Organisational scale” to “Organizational scale” and retaining “organizational
workflows” in the link description, matching the document title and
docs/index.md.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 1df34e84-a807-403b-a47d-09d03f07e574
📒 Files selected for processing (3)
.github/workflows/publish_docs.ymldocs/index.mddocs/security/security.md
Pin the knowledge-base publishing action to a commit SHA. The job grants contents: write, so a mutable @master ref would let upstream changes run with a token that can write release assets. Every other action in this repository is pinned the same way, and the Dependabot github-actions group already covers the bump. Use the American spelling of "organizational" consistently.
tmikula-dev
left a comment
There was a problem hiding this comment.
I really like this new way of generating the workflow. Please only see one config comment below.
Tags render as pills on the knowledge base catalogue card, so add the two that readers are most likely to search the library for. Spell out how release-tag resolves under each trigger. The one-line comment did not make clear that the input only ever appears on a manual dispatch, which was the question raised in review.
The per-trigger breakdown duplicated the workflow_dispatch input description. Requested in review.
The SHA pinned by #93 (679ec07) ships a broken action manifest: the `github-token` description contains an unquoted `: ` inside backticks, so the runner cannot parse action.yml and the job dies during "Set up job". Run 30910992670 on master failed exactly this way. Upstream fixed it in fa935dc ("quote colon-containing description ..."), which also adds action-manifest validation to the knowledge-base CI. The pin is bumped by hand: AbsaOSS/knowledge-base publishes no tags and no releases, so Dependabot's github-actions ecosystem has nothing to resolve the SHA forward to. A two-line comment records that so the next reader does not inherit the assumption made on #93. Claude-Session: https://claude.ai/code/session_01GdafNH5D2xP8QNjo1yBE8Y Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Overview
Onboards this repository's documentation into the AbsaOSS knowledge base using its single-page mechanism — the zero-config path for repos whose docs are plain markdown rather than a docs site.
The knowledge base recently gained this capability, so no MkDocs orchestration, theme, build script,
marketplace.json, or packing tooling is needed here. The entire repo-side cost is one workflow file.What was added
.github/workflows/publish_docs.yml— runs onrelease: publishedand on manualworkflow_dispatch(with an optionalrelease-taginput). It calls the reusableAbsaOSS/knowledge-base/actions/publish-single-page-docsaction, which renders the markdown into headless HTML, packs it asdist.tar.gzwith abundle.jsonmanifest, and attaches it to the release. The knowledge base picks it up on its next build.docs/security/security.md— root-relative links (/src/security/README.md,/README.md, the example workflow YAML) replaced with absolute GitHub URLs, since published pages are re-hosted under the knowledge base origin where those paths would 404.One doc is published, the Security Automation page, getting its own catalogue card and URL:
org-workflows-security/knowledge-base/org-workflows-security/No repository overview page is published — the knowledge base catalogue already lists every registered app, so a per-repo landing would only duplicate it.
Notes
release-tagis wired as${{ inputs.release-tag || github.event.release.tag_name }}. Passing the dispatch input bare would supply an empty string on the release trigger and suppress the action's own default, causing it to fall back to "latest release" — wrong for a pre-release or a non-newest release. This form is exact onrelease: publishedand falls back correctly on a bare dispatch..mdlinks: the action does not strip frontmatter, and each doc becomes an independently hosted app, so those references would render as literal text or 404.count=1, validbundle.json,data-mp-headless="true", mermaid vendored into the artifact, and every rendered link either an in-page anchor or an absolute URL.Follow-up (separate repo)
Publishing is only half the loop — the knowledge base also needs a registry entry. That is a one-line PR against
AbsaOSS/knowledge-baseadding toapps.json:{ "repo": "AbsaOSS/organizational-workflows", "type": "single-page", "version": "latest" }No slug, name, or description there — all of it is discovered from the bundle, so adding or renaming a doc later never touches the knowledge base repo again.
This also supersedes #91 (the MkDocs showcase-site approach), which can be closed.
Release Notes
Publish Docsworkflow that publishes the Security Automation documentation to the AbsaOSS knowledge base on every published release, and on manual dispatch.Related
Closes #92
Summary by CodeRabbit
New Features
Documentation