Conversation
Summary by CodeRabbit
WalkthroughRefactors Poetry/pyproject structure in backend and docs, bumps several dependency and image versions, updates a pre-commit hook, and adds --verbose to Poetry installs in multiple Dockerfiles. No public API signatures changed. Changes
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes 🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches🧪 Generate unit tests (beta)
No actionable comments were generated in the recent review. 🎉 🧹 Recent nitpick comments
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 |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Fix all issues with AI agents
In `@backend/pyproject.toml`:
- Line 14: The pyproject.toml lists django-ninja==1.4.3 and
django-configurations==2.5.1 which are not declared compatible with Django 6.0;
update the dependency entries (the django-ninja and django-configurations lines
in pyproject.toml) to versions that support Django 6.0 (e.g., bump django-ninja
to 1.5.x or later and choose a django-configurations release that declares
Django 6 compatibility), then run the test suite against Django 6.0 to verify
compatibility and adjust versions if tests fail.
In `@docs/pyproject.toml`:
- Around line 11-16: The TOML uses dotted-key assignments like
dependencies.mkdocs and dependencies.python under [tool.poetry]; replace those
dotted-key lines by adding a [tool.poetry.dependencies] section header and move
the keys (mkdocs, mkdocs-material, mkdocs-minify-plugin, mkdocstrings,
pymdown-extensions, python) as regular keys under that section (e.g., mkdocs =
"...") to conform to Poetry 2.x standard and avoid dotted-key usage.
🧹 Nitpick comments (1)
backend/pyproject.toml (1)
12-60:pyparsingat line 49 breaks the alphabetical ordering of dependencies.All other main dependencies (lines 12–48) are sorted alphabetically, but
pyparsingis appended at the end afterthefuzz. It should be placed betweenpydantic-coreandpygithubto maintain consistency.🔤 Move `pyparsing` to its alphabetical position
dependencies.pydantic-core = "^2.33.0" +dependencies.pyparsing = "^3.2.3" dependencies.pygithub = "^2.5.0" ... dependencies.thefuzz = "^0.22.1" -dependencies.pyparsing = "^3.2.3"
| weasyprint = "^68.0" | ||
| dependencies.algoliasearch = "^4.13.2" | ||
| dependencies.algoliasearch-django = "^4.0.0" | ||
| dependencies.django = "^6.0" |
There was a problem hiding this comment.
🧩 Analysis chain
🌐 Web query:
Django 6.0 release date 2025 2026
💡 Result:
Django 6.0 was officially released on December 3, 2025. [1][2]
(For context: 6.0.1 shipped January 6, 2026 [3] and 6.0.2 shipped February 3, 2026 [4][5].)
Sources: [1] [2] [3] [4] [5]
🏁 Script executed:
# Read the full pyproject.toml to see actual dependencies
cat -n backend/pyproject.tomlRepository: OWASP/Nest
Length of output: 8446
🌐 Web query:
django-ninja 1.4.3 Django 6.0 compatibility
💡 Result:
django-ninja==1.4.3 is not marked as compatible with Django 6.0. On PyPI, its classifiers list Django support only up to Django 5.1 (no Django :: 6.0 classifier) and it was released Jun 4, 2025. [1]
If you need Django 6.0, use a newer django-ninja release: the current PyPI project metadata includes a Django :: 6.0 classifier (e.g., the 1.5.x line). [2]
Also note Django 6.0 requires Python 3.12+. [3]
Sources
[1] PyPI – django-ninja 1.4.3: (pypi.org)
[2] PyPI – django-ninja (latest): (pypi.org)
[3] Django 6.0 release notes (Python compatibility): (docs.djangoproject.com)
Citations:
- 1: https://pypi.org/project/django-ninja/1.4.3/
- 2: https://pypi.org/project/django-ninja/?utm_source=openai
- 3: https://docs.djangoproject.com/en/dev/releases/6.0/?utm_source=openai
🌐 Web query:
strawberry-graphql-django 0.75.0 Django 6.0 support
💡 Result:
strawberry-graphql-django 0.75.0 (released Jan 27, 2026) explicitly declares Django 6.0 support via its PyPI framework classifiers (Framework :: Django :: 6.0). It also requires Python >= 3.10. [1]
Sources:
[1] PyPI project page for strawberry-graphql-django 0.75.0 (classifiers + release date) (pypi.org)
Citations:
🌐 Web query:
django-configurations 2.5.1 Django 6.0 compatibility
💡 Result:
django-configurations 2.5.1 does not claim Django 6.0 compatibility. Its PyPI classifiers list support for Django 3.2, 4.1, 4.2, and 5.0 (and Python >=3.8,<4.0)—no Django 6.0 classifier is present. [1]
Since Django 6.0 requires Python 3.12+ and includes breaking/deprecation-driven changes, you should assume django-configurations 2.5.1 is “unverified/unsupported on Django 6.0” unless you run its test suite (or your project’s tests) against Django 6.0 and it passes. [2]
Sources: [1] [2]
Upgrade django-ninja and django-configurations for Django 6.0 compatibility.
django-ninja==1.4.3 does not support Django 6.0 (only Django ≤5.1). Upgrade to version 1.5.x or later.
django-configurations==2.5.1 lacks Django 6.0 support declarations on PyPI (classifiers only cover up to Django 5.0). Verify compatibility by running the test suite against Django 6.0, or upgrade to a version that explicitly supports Django 6.0.
All other listed dependencies (django-redis, django-rq, django-storages, strawberry-graphql-django, sentry-sdk) are compatible with Django 6.0.
🤖 Prompt for AI Agents
In `@backend/pyproject.toml` at line 14, The pyproject.toml lists
django-ninja==1.4.3 and django-configurations==2.5.1 which are not declared
compatible with Django 6.0; update the dependency entries (the django-ninja and
django-configurations lines in pyproject.toml) to versions that support Django
6.0 (e.g., bump django-ninja to 1.5.x or later and choose a
django-configurations release that declares Django 6 compatibility), then run
the test suite against Django 6.0 to verify compatibility and adjust versions if
tests fail.
| dependencies.mkdocs = "^1.6.1" | ||
| dependencies.mkdocs-material = "^9.6.19" | ||
| dependencies.mkdocs-minify-plugin = "^0.8.0" | ||
| dependencies.mkdocstrings = "^1.0.0" | ||
| dependencies.pymdown-extensions = "^10.20.0" | ||
| dependencies.python = "^3.13" |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
find . -name "pyproject.toml" -path "*/docs/*" | head -20Repository: OWASP/Nest
Length of output: 75
🌐 Web query:
Poetry 2.x pyproject.toml dependencies format dotted keys
💡 Result:
In Poetry 2.x you have two good options when a dependency name contains a dot (e.g. zope.interface), because in TOML an unquoted a.b key is a dotted key (it creates nested tables) rather than a literal key name. Use a quoted key if you’re in a TOML table, or switch to PEP 621 string dependencies.
Option A (recommended in Poetry 2.x): PEP 621 strings (no TOML key issues)
[project]
dependencies = [
"zope.interface>=6,<7",
]Poetry 2.x supports specifying main dependencies in project.dependencies as PEP 508 strings. [1]
Option B (legacy / still supported): quote the key under tool.poetry.dependencies
[tool.poetry.dependencies]
"zope.interface" = "^6.0"TOML allows quoted keys (so the dot is part of the key name), whereas bare keys can’t contain dots. [2] Real-world Poetry projects use this quoting pattern for dotted package names. [3]
Sources:
[1] Poetry docs – Dependency specification (project.dependencies vs tool.poetry.dependencies) (python-poetry.org)
[2] TOML spec – keys, quoted keys, and dotted keys (toml.io)
[3] Example pyproject.toml showing "zope.interface" in [tool.poetry.dependencies] (sources.debian.org)
Citations:
- 1: https://python-poetry.org/docs/dependency-specification/
- 2: https://toml.io/en/v1.1.0?utm_source=openai
- 3: https://sources.debian.org/src/python-pysaml2/7.5.0-7/pyproject.toml?utm_source=openai
🏁 Script executed:
cat -n ./docs/pyproject.toml | head -30Repository: OWASP/Nest
Length of output: 666
🌐 Web query:
Poetry 2.0 tool.poetry dependencies dotted key format support
💡 Result:
Poetry 2.x doesn’t implement any special “dotted-key dependency syntax” of its own; it just reads whatever your TOML parser produces.
- If by “dotted key format” you mean TOML dotted keys like
tool.poetry.dependencies.requests = "^2.31": that’s standard TOML dotted-key notation (it creates nested tables) and can represent the same data structure Poetry expects. (toml.io) - However, standard TOML forbids mixing a
[tool.poetry.dependencies]table header with dotted keys that (re)define that same table path, which makes such files error-prone across TOML parsers/tools. (toml.io) - In Poetry 2.x, the recommended modern/standard place for dependencies is
[project].dependencies(PEP 508 strings);[tool.poetry.dependencies]remains Poetry’s extended table format. (deepwiki.com)
So: there’s no Poetry-2.0-specific “support switch”—it’s mainly a TOML validity/compatibility question. For best compatibility, stick to [tool.poetry.dependencies] entries (table form) or move to [project].dependencies rather than relying on dotted-key assignments. (deepwiki.com)
Citations:
- 1: https://toml.io/en/v1.0.0?utm_source=openai
- 2: https://toml.io/en/v1.0.0?utm_source=openai
- 3: https://deepwiki.com/python-poetry/poetry/3.2-dependency-specification?utm_source=openai
- 4: https://deepwiki.com/python-poetry/poetry/3.2-dependency-specification?utm_source=openai
🏁 Script executed:
wc -l ./docs/pyproject.toml && cat ./docs/pyproject.tomlRepository: OWASP/Nest
Length of output: 579
Use [tool.poetry.dependencies] section header instead of dotted-key format.
The dotted-key syntax (dependencies.mkdocs = "^1.6.1") under [tool.poetry] is valid TOML but not the recommended Poetry 2.x format. Per Poetry documentation, use the standard section header format:
[tool.poetry.dependencies]
mkdocs = "^1.6.1"
mkdocs-material = "^9.6.19"
mkdocs-minify-plugin = "^0.8.0"
mkdocstrings = "^1.0.0"
pymdown-extensions = "^10.20.0"
python = "^3.13"Dotted-key assignments for this purpose are error-prone across TOML parsers and deviate from Poetry's standard conventions.
🤖 Prompt for AI Agents
In `@docs/pyproject.toml` around lines 11 - 16, The TOML uses dotted-key
assignments like dependencies.mkdocs and dependencies.python under
[tool.poetry]; replace those dotted-key lines by adding a
[tool.poetry.dependencies] section header and move the keys (mkdocs,
mkdocs-material, mkdocs-minify-plugin, mkdocstrings, pymdown-extensions, python)
as regular keys under that section (e.g., mkdocs = "...") to conform to Poetry
2.x standard and avoid dotted-key usage.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #3874 +/- ##
=======================================
Coverage 93.13% 93.13%
=======================================
Files 463 463
Lines 14531 14531
Branches 2061 2061
=======================================
Hits 13533 13533
Misses 538 538
Partials 460 460
Flags with carried forward coverage won't be shown. Click here to find out more. Continue to review full report in Codecov by Sentry.
🚀 New features to boost your workflow:
|
|
❌ The last analysis has failed. |
|
* Run make update * Clean up snapshot generated videos * Update backend/data/nest.dump * feat(ui): revamp corporate supporters carousel (Infinite Marquee + Dark Mode fix) (#3837) * feat(ui): revamp corporate supporters carousel (Infinite Marquee + Dark Mode fix) * fix: resolve failing test case * fix: add fallback text for unnamed sponsors * docs: add docstrings to satisfy coverage requirements * Run make check and fix tests. --------- Co-authored-by: Kate <kate@kgthreads.com> * Fix/redundant typescript assertion (#3834) * Fix Sonar S4325 by narrowing session user fields instead of casting * Fix unused ExtendedSession in mentorship page * fix: redundant-typescript-assertion * Fix stale latest date displayed in Project Health Dashboard metrics (#3842) * Fixed latest date in proejct health dashboard * updated order * Update code * Update code --------- Co-authored-by: Arkadii Yakovets <arkadii.yakovets@owasp.org> * feat: improve backend test coverage to 96% (#3840) * feat: improve backend test coverage to 96% * fix comments * fix issues * fix issue * fix cubic-dev-ai comments * Update code * Fix tests --------- Co-authored-by: Arkadii Yakovets <arkadii.yakovets@owasp.org> Co-authored-by: Arkadii Yakovets <2201626+arkid15r@users.noreply.github.com> * Fix: merge consecutive RUN instructions in frontend Dockerfile (#3644) * Fix: merge consecutive RUN instructions in frontend Dockerfile * fix: comment Dockerfile note to prevent syntax error * Update code * Update code --------- Co-authored-by: Arkadii Yakovets <arkadii.yakovets@owasp.org> Co-authored-by: Arkadii Yakovets <2201626+arkid15r@users.noreply.github.com> * Fix 'is_merged' not being available on the Issue (#3843) * Fix 'is_merged' not being available on the Issue * Update code --------- Co-authored-by: Arkadii Yakovets <arkadii.yakovets@owasp.org> * CI: Add ansible-lint workflow for Ansible playbooks (#3796) * ci: add ansible-lint workflow Signed-off-by: Muhammad Hassaan Saleem <iamhassaans@gmail.com> * Update .github/workflows/lint-ansible.yaml Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * ci: add ansible-lint make target and workflow Signed-off-by: Muhammad Hassaan Saleem <iamhassaans@gmail.com> * ci: add ansible-lint pre-commit hook Signed-off-by: Muhammad Hassaan Saleem <iamhassaans@gmail.com> * fix: whitespace & version Signed-off-by: Muhammad Hassaan Saleem <iamhassaans@gmail.com> * Update Makefile Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> * ci: enable ansible-lint scanning and add requirements.yml Signed-off-by: Muhammad Hassaan Saleem <iamhassaans@gmail.com> * chore(ansible):align linting and module usage Signed-off-by: Muhammad Hassaan Saleem <iamhassaans@gmail.com> * ci(ansible): install collections before deploy playbooks Signed-off-by: Muhammad Hassaan Saleem <iamhassaans@gmail.com> * Update code * Update code * Update .github/workflows/run-ci-cd.yaml --------- Signed-off-by: Muhammad Hassaan Saleem <iamhassaans@gmail.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> Co-authored-by: Arkadii Yakovets <arkadii.yakovets@owasp.org> * Fix ElevenLabs API error (#3861) * use default liam voice * bump speed by 0.10 --------- Co-authored-by: Arkadii Yakovets <2201626+arkid15r@users.noreply.github.com> * Add Ime Iyonsi to MENTORS.md (#3866) * Add mentor profile for Ime Iyonsi Added Ime Iyonsi's mentor profile. * Fix GitHub link for Ime Iyonsi Corrected GitHub link for Ime Iyonsi. * Update code --------- Co-authored-by: Arkadii Yakovets <arkadii.yakovets@owasp.org> * Update MENTORS.md * Enabled Strict Mode (#3776) * Enabled Strict Mode * fixed ai review * fix * fixed review * fix * update test * Update code --------- Co-authored-by: Arkadii Yakovets <arkadii.yakovets@owasp.org> Co-authored-by: Arkadii Yakovets <2201626+arkid15r@users.noreply.github.com> * Resolve case-sensitivity in QueryParser to support Chapters/Members search (#3844) * resolve query parser blocker * use case_sensitive flag in QueryParser * feat: add case_sensitive option to QueryParser and update tests * Update code --------- Co-authored-by: Arkadii Yakovets <arkadii.yakovets@owasp.org> Co-authored-by: Arkadii Yakovets <2201626+arkid15r@users.noreply.github.com> * Update dependencies (#3874) * Update dependencies * Bump django-ninja version * fix(proxy): pin nginx and certbot images (#3848) * fix(proxy): pin nginx and certbot images Signed-off-by: Muhammad Hassaan Saleem <iamhassaans@gmail.com> * fix stable verssions Signed-off-by: Muhammad Hassaan Saleem <iamhassaans@gmail.com> --------- Signed-off-by: Muhammad Hassaan Saleem <iamhassaans@gmail.com> Co-authored-by: Arkadii Yakovets <2201626+arkid15r@users.noreply.github.com> * Update docker-compose/proxy/compose.yaml * Update backend/pyproject.toml * Update ansible lint configuration (#3880) * Update .github/ansible/.ansible-lint.yaml * Improve frontend test coverage above 80% and add missing test files (#3864) * Imrove test coverage to 80% and added test * Fixed coderabbit review * update code * fixed coderabbit ai * fixed soanrqube warning * fixed review * update * fixed aloglia cache_key (#3825) * fixed aloglia cache_key * change separator val to be semicolon (;) * Update code * add tests + use json filters * add trailing newline * Update code --------- Co-authored-by: Arkadii Yakovets <arkadii.yakovets@owasp.org> Co-authored-by: Arkadii Yakovets <2201626+arkid15r@users.noreply.github.com> * fix: remove unused className prop from AnchorTitle component (#3822) * fix: remove unused className prop from AnchorTitle component Fixes #3805 The className prop was defined in AnchorTitleProps but never used in the component implementation. Removing it resolves Sonar rule typescript:S6767 and improves code maintainability. * fix: use className prop instead of removing it - Added className back to AnchorTitleProps interface - Accept className parameter in component - Apply className to root div element - Resolves reviewer feedback on PR #3822 * Update code --------- Co-authored-by: Arkadii Yakovets <arkadii.yakovets@owasp.org> Co-authored-by: Arkadii Yakovets <2201626+arkid15r@users.noreply.github.com> --------- Signed-off-by: Muhammad Hassaan Saleem <iamhassaans@gmail.com> Co-authored-by: Arkadii Yakovets <arkadii.yakovets@owasp.org> Co-authored-by: Yashraj Pahuja <yashrajpahuja9999@gmail.com> Co-authored-by: Kate <kate@kgthreads.com> Co-authored-by: CodeAritraDhank <aritradhank21@gmail.com> Co-authored-by: Anurag Yadav <143180737+anurag2787@users.noreply.github.com> Co-authored-by: Harshit Verma <harshit1092004@gmail.com> Co-authored-by: Arkadii Yakovets <2201626+arkid15r@users.noreply.github.com> Co-authored-by: Shuban Mutagi <shubanmutagi55@gmail.com> Co-authored-by: Muhammad Hassaan Saleem <iamhassaans@gmail.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> Co-authored-by: emaybu <152900874+emaybu@users.noreply.github.com> Co-authored-by: sai chethana <saichethanavesireddy@gmail.com> Co-authored-by: Rahul Paul <179798584+Mr-Rahul-Paul@users.noreply.github.com> Co-authored-by: Lavanya <lavanyayadawad30@gmail.com>



Proposed change
Run make update + manual updates
Checklist
make check-testlocally: all warnings addressed, tests passed