fix(ci): switch python api-docs to pydoc-markdown - #32
Conversation
lazydocs uses pkgutil's deprecated find_module() API which Python 3.12 removed. The first dispatched run on main hit AttributeError: 'FileFinder' object has no attribute 'find_module' on every submodule walk; the resulting docs PR (resq-software/ docs#19) only contained the top-level README.md and an empty _pages.json. Switch to pydoc-markdown, which is on the find_spec() API and works on the runner's Python 3.13. Also pulls the README-phrasing fix landing in resq-software/ docs#18 (active voice + code-formatted repo path).
|
Note Gemini is unable to generate a review for this pull request due to the file types involved not being currently supported. |
|
Warning Rate limit exceeded
You’ve run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
✨ 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 |
Resolves zizmor code-scanning alerts #29-#43: security.yml - Pin reusable security-scan.yml from @main to a SHA (alert #42) - Replace `secrets: inherit` with explicit SEMGREP_APP_TOKEN pass (alert #43) - Add `actions: read` to top-level permissions so CodeQL/zizmor telemetry (`GET /actions/runs/{id}`) can execute under the inherited token. This fixes the recurring startup_failure on main since 2026-05-04. publish.yml - Drop top-level write permissions to `contents: read`; lift `contents: write` only onto the two semantic-release jobs that actually need it (alerts #38-#41). - Add `persist-credentials: false` to all five checkouts so uploaded artifacts can never carry the workflow's git credentials (alerts #33-#37). The release jobs still pass GITHUB_TOKEN explicitly to python-semantic-release. ci.yml - Add `persist-credentials: false` to lint/typecheck/test/build checkouts (alerts #29-#32). Verified locally with `zizmor v1.24.1`: "No findings to report."
…#34) Resolves zizmor code-scanning alerts #29-#43: security.yml - Pin reusable security-scan.yml from @main to a SHA (alert #42) - Replace `secrets: inherit` with explicit SEMGREP_APP_TOKEN pass (alert #43) - Add `actions: read` to top-level permissions so CodeQL/zizmor telemetry (`GET /actions/runs/{id}`) can execute under the inherited token. This fixes the recurring startup_failure on main since 2026-05-04. publish.yml - Drop top-level write permissions to `contents: read`; lift `contents: write` only onto the two semantic-release jobs that actually need it (alerts #38-#41). - Add `persist-credentials: false` to all five checkouts so uploaded artifacts can never carry the workflow's git credentials (alerts #33-#37). The release jobs still pass GITHUB_TOKEN explicitly to python-semantic-release. ci.yml - Add `persist-credentials: false` to lint/typecheck/test/build checkouts (alerts #29-#32). Verified locally with `zizmor v1.24.1`: "No findings to report."
Why
The first run of
api-docsonmainafter #30 and #31 merged (run 25602155559) hitAttributeError: 'FileFinder' object has no attribute 'find_module'on every submodule:Root cause: lazydocs uses
pkgutil's deprecatedfind_module()API, which was removed in Python 3.12. The runner uses Python 3.13. lazydocs is essentially abandoned for modern Python (last release 2023).The resulting docs PR (resq-software/docs#19) only had
README.mdand an empty_pages.jsonbecause the script's fail-fast caught zero generated content.Fix
Switch to pydoc-markdown, which uses
find_spec()(the supported API since Python 3.4) and produces Markdown directly via its CLI:pydoc-markdown -p resq_mcp --render-toc > out/overview.mdOne combined Markdown document per package at
<pkg_dir>/overview.md. Adds an empty-output sanity check so partial / silent failures land as a hard error.Bundled
Test plan
api-docsonmain.resq-mcp/overview.mdandresq-dsa/overview.mdwith real per-module content.View sourceURLs resolve.mintlify (broken links)is zero.