Conversation
|
✅ Template Inspection Passed All changed templates have been validated successfully. Last updated: 2026-09-10T02:58:28.078Z |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3761f4b550
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| const results = JSON.parse(fs.readFileSync('security_scan_results.json', 'utf8')); | ||
|
|
||
| results.templates.forEach(template => { | ||
| if (template.error) { |
There was a problem hiding this comment.
Surface scanner errors when the vulnerability count is zero
When pip-audit produces no parseable JSON, such as during a dependency-resolution or network failure, the report records template.error but leaves total_vulnerabilities at zero. The step-level condition on line 150 then skips this newly added error-reporting branch, and the summary instead claims that no vulnerabilities were found, leaving a failed weekly security scan looking successful. Gate issue creation on recorded scan errors as well as the vulnerability count, or fail the scan step.
Useful? React with 👍 / 👎.
| * text=auto eol=lf | ||
|
|
||
| # Template payload files (the `-tpl` marker is stripped at generation time). | ||
| *-tpl text eol=lf |
There was a problem hiding this comment.
Exclude binary template payloads from text normalization
The broad *-tpl text rule also matches supported binary payloads such as logo.png-tpl; the later *.png binary rule does not match that suffixed filename. On checkout Git will therefore normalize the PNG signature's CRLF bytes before the transducer can copy the file unchanged, corrupting such assets—the added test_binary_files_are_copied_untouched case assumes exactly this filename remains byte-for-byte intact. Add binary rules for the .<binary-extension>-tpl forms or avoid forcing every template payload to text.
Useful? React with 👍 / 👎.
| raise credentials_exception | ||
|
|
||
| except JWTError: | ||
| except jwt.PyJWTError: |
There was a problem hiding this comment.
Import jwt before catching PyJWTError
This src/auth/dependencies.py example is a separate module and never imports jwt. When an invalid, blacklisted, or subject-less token raises the intended HTTPException inside the try, Python evaluates jwt.PyJWTError while selecting a handler and raises NameError instead, turning the expected 401 into a 500 for readers who copy the tutorial. Import jwt in this snippet or remove the redundant handler because decode_token already converts JWT failures to None.
Useful? React with 👍 / 👎.
Requesting Merging
Description
v1.4.1 patch release. Removes two unmaintained auth dependencies (
python-jose,passlib), resolves all open Dependabot alerts, and repairs the weekly template inspection sofastapi-psql-ormpasses end to end again.Type of Change
Test Environment
pytest: 977 passed · mypy strict / black / isort / pre-commit clean ·mkdocs build --strictOKscripts/inspect-templates.py --offline: 12/12 templates pass, including the Docker-backedfastapi-psql-ormwith its smoke stepfastapi-mcpproject: 26 tests pass,pip-auditclean, noInsecureKeyLengthWarningMajor Changes
python-jose→PyJWT[crypto](drops unpatchedecdsaCVE-2024-23342) andpasslib[bcrypt]→pwdlib[argon2]in the JWT / FastAPI-Users catalog and thefastapi-mcptemplatedocker-compose ps --format jsonshape parsed,docker composeplugin fallback, Docker templates smoke-tested via the published port.gitattributespins template line endings (fixesbash\rfailures on Windows / autocrlf checkouts)Screenshots (optional)
N/A
Etc
Closes #76, closes #77.
Translated docs (ko/ja/zh/de/fr/es) still mention
python-jose/passliband will be synced by the translation workflow.