feat(docs): publish YARD API docs + llms.txt to GitHub Pages#480
Conversation
Users have no rendered API reference for the workos gem outside source comments. This wires up YARD (HTML + Markdown via yard-markdown) and a Pages workflow on tag pushes so docs.workos.com/sdk/ruby has a stable target. The workflow tars docs/_site manually instead of using actions/upload-pages-artifact: Socket flagged that action for a ghaArgToSink taint and it's trivially replaceable with upload-artifact named "github-pages", which deploy-pages consumes unchanged.
The published site is otherwise just HTML and per-class Markdown; LLM tooling has no entry point that lists the SDK's surface. script/llms-txt walks the generated markdown and writes an llms.txt at the site root per the llmstxt.org convention so models can locate per-class references in a single fetch.
Greptile SummaryThis PR adds a YARD-based API documentation pipeline — publishing HTML and Markdown docs plus an
Confidence Score: 4/5The workflow will fail on every attempted deploy because the deploy job lacks the permissions that actions/deploy-pages requires. The build and scripting logic is sound, but the deploy job omits the .github/workflows/docs.yml — the deploy job permissions block needs attention. Important Files Changed
|
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
| deploy: | ||
| needs: build | ||
| environment: | ||
| name: github-pages | ||
| url: ${{ steps.deployment.outputs.page_url }} | ||
| runs-on: ubuntu-latest | ||
| steps: |
There was a problem hiding this comment.
The
deploy job is missing the pages: write and id-token: write permissions that actions/deploy-pages requires. Without id-token: write the OIDC token is never issued, so the action cannot authenticate with the GitHub Pages deployment API and the job will always fail at the deploy step.
| deploy: | |
| needs: build | |
| environment: | |
| name: github-pages | |
| url: ${{ steps.deployment.outputs.page_url }} | |
| runs-on: ubuntu-latest | |
| steps: | |
| deploy: | |
| needs: build | |
| environment: | |
| name: github-pages | |
| url: ${{ steps.deployment.outputs.page_url }} | |
| runs-on: ubuntu-latest | |
| permissions: | |
| pages: write | |
| id-token: write | |
| steps: |
Summary
Test plan
script/docslocally and confirm docs/_site/index.html, per-class .md files, and llms.txt are generated.script/docs-serveand confirm the site renders at http://localhost:4000.github-pagesartifact contains the tarred site.