-
-
Notifications
You must be signed in to change notification settings - Fork 263
Fix homepage container flexibility #2100
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
5e24a6d
caea551
7e7c88e
026ee9a
305d246
8a73963
8917f7c
3789e3d
5e0536e
f565947
37fa65b
4b93f3e
adb2e32
64ffd22
058cdd7
41d79c1
fdd40ea
3419a80
2e76459
891dd58
2cd43f6
d87feba
03f7dcc
b952945
ec0d606
23facd8
558aa6f
48f79f1
5892607
7352a18
df7aff0
c425484
6ee3cd5
dc5ed1d
690fe21
f4d49ea
10082d5
f17b2e7
e483c63
e625c12
8b5e522
1117ef3
2f37ee0
0bdde86
ba63156
c5e0993
b083a8a
4bbc988
b0627fe
a735bd5
2f6d0e7
3fcd9f9
dc248c0
9641262
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -492,26 +492,15 @@ jobs: | |
| - name: Check out repository | ||
| uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 | ||
|
|
||
| - name: Install pnpm | ||
| uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda | ||
| with: | ||
| run_install: true | ||
| version: 10 | ||
|
|
||
| - name: Set up Node | ||
| uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 | ||
| with: | ||
| cache-dependency-path: frontend/pnpm-lock.yaml | ||
| cache: 'pnpm' | ||
| node-version: 22 | ||
|
|
||
| - name: Run lighthouse-ci | ||
| env: | ||
| LHCI_BASE_URL: 'https://nest.owasp.dev' | ||
| run: | | ||
| pnpm run lighthouse-ci | ||
| timeout-minutes: 15 | ||
| - name: Run Lighthouse CI | ||
| working-directory: frontend | ||
| run: | | ||
| npx -y @lhci/[email protected] autorun | ||
|
|
||
| build-production-images: | ||
| name: Build Production Images | ||
|
|
||
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -7,8 +7,10 @@ name = "OWASP Nest" | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| version = "0.1.0" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| description = "Your gateway to OWASP" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| authors = [ "Arkadii Yakovets <[email protected]>" ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| authors = [ "Arkadii Yakovets <[email protected]>" ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| readme = "README.md" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| packages = [ { include = "apps" } ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| packages = [ { include = "apps" } ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+10
to
15
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Duplicate keys in [tool.poetry]: authors and packages are repeated (invalid TOML). TOML forbids redefining the same key/table; Poetry will fail to parse. Remove the duplicates. Apply: - authors = [ "Arkadii Yakovets <[email protected]>" ]
- packages = [ { include = "apps" } ]🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [tool.poetry.dependencies] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -20,6 +22,7 @@ django-cors-headers = "^4.7.0" | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| django-ninja = "^1.4.3" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| django-redis = "^6.0.0" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| django-storages = { extras = [ "s3" ], version = "^1.14.4" } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| django-storages = { extras = [ "s3" ], version = "^1.14.4" } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| emoji = "^2.14.1" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
24
to
26
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Duplicate dependency entry: django-storages repeated. Keep a single line for the package. - django-storages = { extras = [ "s3" ], version = "^1.14.4" }📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| geopy = "^2.4.1" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| gunicorn = "^23.0.0" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -44,7 +47,7 @@ requests = "^2.32.5" | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| sentry-sdk = { extras = [ "django" ], version = "^2.20.0" } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| slack-bolt = "^1.22.0" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| slack-sdk = "^3.35.0" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| strawberry-graphql = { extras = [ "django" ], version = "^0.281.0" } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| strawberry-graphql = { extras = [ "django" ], version = "^0.278.1" } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| strawberry-graphql-django = "^0.65.1" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| thefuzz = "^0.22.1" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -64,6 +67,64 @@ python-dotenv = "^1.0.1" | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [tool.ruff] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| target-version = "py313" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| line-length = 99 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| lint.select = [ "ALL" ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| lint.extend-select = [ "I" ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| lint.ignore = [ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "ANN", # https://docs.astral.sh/ruff/rules/#flake8-annotations-ann/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "ARG002", # https://docs.astral.sh/ruff/rules/unused-method-argument/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "C901", # https://docs.astral.sh/ruff/rules/complex-structure/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "COM812", # https://docs.astral.sh/ruff/rules/missing-trailing-comma/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "D407", # https://docs.astral.sh/ruff/rules/missing-dashed-underline-after-section/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "DJ012", # https://docs.astral.sh/ruff/rules/django-unordered-body-content-in-model/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "FIX002", # https://docs.astral.sh/ruff/rules/line-contains-todo/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "PLC0415", # https://docs.astral.sh/ruff/rules/import-outside-top-level/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "PLR0912", # https://docs.astral.sh/ruff/rules/too-many-branches/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "PLR0913", # https://docs.astral.sh/ruff/rules/too-many-arguments/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "PLR0915", # https://docs.astral.sh/ruff/rules/too-many-statements/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "RUF012", # https://docs.astral.sh/ruff/rules/mutable-class-default/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "TD003", # https://docs.astral.sh/ruff/rules/missing-todo-link/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| lint.per-file-ignores."**/__init__.py" = [ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "D104", # https://docs.astral.sh/ruff/rules/undocumented-public-package/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "F401", # https://docs.astral.sh/ruff/rules/unused-import/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| lint.per-file-ignores."**/management/commands/*.py" = [ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "D101", # https://docs.astral.sh/ruff/rules/undocumented-public-class/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "D102", # https://docs.astral.sh/ruff/rules/undocumented-public-method/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "T201", # https://docs.astral.sh/ruff/rules/print/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| lint.per-file-ignores."**/migrations/*.py" = [ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "D100", # https://docs.astral.sh/ruff/rules/undocumented-public-module/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "D101", # https://docs.astral.sh/ruff/rules/undocumented-public-class/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "D104", # https://docs.astral.sh/ruff/rules/undocumented-public-package/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "E501", # https://docs.astral.sh/ruff/rules/line-too-long/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "RUF012", # https://docs.astral.sh/ruff/rules/mutable-class-default/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| lint.per-file-ignores."**/models/*.py" = [ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "D106", # https://docs.astral.sh/ruff/rules/undocumented-public-nested-class/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| lint.per-file-ignores."**/rest/v1/*.py" = [ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
67
to
+107
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Duplicate [tool.ruff] block begins here; another appears below — this is invalid TOML. Consolidate to a single [tool.ruff] table. Decide on one source of truth. -[tool.ruff]
-target-version = "py313"
-
-line-length = 99
-lint.select = [ "ALL" ]
-lint.extend-select = [ "I" ]
-lint.ignore = [
- "ANN",
- "ARG002",
- "C901",
- "COM812",
- "D407",
- "DJ012",
- "FIX002",
- "PLC0415",
- "PLR0912",
- "PLR0913",
- "PLR0915",
- "RUF012",
- "TD003",
-]
-lint.per-file-ignores."**/__init__.py" = [ "D104", "F401" ]
-lint.per-file-ignores."**/management/commands/*.py" = [ "D101", "D102", "T201" ]
-lint.per-file-ignores."**/migrations/*.py" = [ "D100", "D101", "D104", "E501", "RUF012" ]
-lint.per-file-ignores."**/models/*.py" = [ "D106" ]
-lint.per-file-ignores."**/rest/v1/*.py" = [ "ARG001", "B008" ]
-lint.per-file-ignores."**/settings/*.py" = [ "RUF012" ]
-lint.per-file-ignores."**/tests/**/*.py" = [
- "D100","D101","D102","D103","D107","PLR2004","RUF012","S101","SLF001",
-]📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "ARG001", # https://docs.astral.sh/ruff/rules/unused-function-argument/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "B008", # https://docs.astral.sh/ruff/rules/function-call-in-default-argument/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| lint.per-file-ignores."**/settings/*.py" = [ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "RUF012", # https://docs.astral.sh/ruff/rules/mutable-class-default/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| lint.per-file-ignores."**/tests/**/*.py" = [ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "D100", # https://docs.astral.sh/ruff/rules/undocumented-public-module/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "D101", # https://docs.astral.sh/ruff/rules/undocumented-public-class/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "D102", # https://docs.astral.sh/ruff/rules/undocumented-public-method/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "D103", # https://docs.astral.sh/ruff/rules/undocumented-public-function/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "D107", # https://docs.astral.sh/ruff/rules/undocumented-public-init/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "PLR2004", # https://docs.astral.sh/ruff/rules/magic-value-comparison/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "RUF012", # https://docs.astral.sh/ruff/rules/mutable-class-default/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "S101", # https://docs.astral.sh/ruff/rules/assert/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "SLF001", # https://docs.astral.sh/ruff/rules/private-member-access/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [tool.ruff] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| target-version = "py313" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| line-length = 99 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| lint.select = [ "ALL" ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| lint.extend-select = [ "I" ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -134,12 +195,26 @@ addopts = [ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "--durations=5", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "--no-cov-on-fail", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "--numprocesses=auto", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "--cov-config=pyproject.toml", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "--cov-fail-under=80", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "--cov-precision=2", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "--cov-report=term-missing", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "--cov=.", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "--dist=loadscope", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "--durations-min=1", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "--durations=5", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "--no-cov-on-fail", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "--numprocesses=auto", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+198
to
208
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. pytest addopts duplicated verbatim. Remove the second copy to avoid confusing downstream tooling that parses arrays. - "--cov-config=pyproject.toml",
- "--cov-fail-under=80",
- "--cov-precision=2",
- "--cov-report=term-missing",
- "--cov=.",
- "--dist=loadscope",
- "--durations-min=1",
- "--durations=5",
- "--no-cov-on-fail",
- "--numprocesses=auto",📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| filterwarnings = [ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "ignore::DeprecationWarning:pytest_cov", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "ignore::DeprecationWarning:xdist", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "ignore::django.conf.RemovedInDjango60Warning:django", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "ignore::pydantic.warnings.PydanticDeprecatedSince20", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "ignore::DeprecationWarning:pytest_cov", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "ignore::DeprecationWarning:xdist", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "ignore::django.conf.RemovedInDjango60Warning:django", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "ignore::pydantic.warnings.PydanticDeprecatedSince20", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+214
to
218
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Duplicate filterwarnings entries. Delete the repeated block to keep settings DRY. - "ignore::DeprecationWarning:pytest_cov",
- "ignore::DeprecationWarning:xdist",
- "ignore::django.conf.RemovedInDjango60Warning:django",
- "ignore::pydantic.warnings.PydanticDeprecatedSince20",📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| log_level = "INFO" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -157,19 +232,38 @@ omit = [ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "wsgi.py", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [tool.coverage.run] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| branch = true | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| omit = [ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "__init__.py", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "**/admin.py", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "**/apps.py", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "**/migrations/*", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "**/mentorship/*", # TODO: work in progress | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "manage.py", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "settings/*", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "tests/*", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "wsgi.py", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+235
to
+248
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Duplicate [tool.coverage.run] table. TOML table redefinition is invalid. Keep a single coverage.run table. -[tool.coverage.run]
-branch = true
-omit = [
- "__init__.py",
- "**/admin.py",
- "**/apps.py",
- "**/migrations/*",
- "**/mentorship/*", # TODO: work in progress
- "manage.py",
- "settings/*",
- "tests/*",
- "wsgi.py",
-]📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [tool.mypy] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| explicit_package_bases = true | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ignore_missing_imports = true | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| mypy_path = "backend" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| plugins = [ "strawberry.ext.mypy_plugin" ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| plugins = [ "strawberry.ext.mypy_plugin" ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
253
to
255
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Duplicated mypy plugins line. Remove the second plugins assignment. -plugins = [ "strawberry.ext.mypy_plugin" ]📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [[tool.mypy.overrides]] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| disable_error_code = [ "attr-defined" ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| module = [ "apps.*.models.mixins.*", "apps.*.admin.*" ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| disable_error_code = [ "attr-defined" ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| module = [ "apps.*.models.mixins.*", "apps.*.admin.*" ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
256
to
261
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Duplicated [[tool.mypy.overrides]] block. Delete the duplicate to avoid confusion in override ordering. -[[tool.mypy.overrides]]
-disable_error_code = [ "attr-defined" ]
-module = [ "apps.*.models.mixins.*", "apps.*.admin.*" ]
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [[tool.mypy.overrides]] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| disable_error_code = [ "var-annotated" ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| module = [ "apps.*.migrations.*" ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| disable_error_code = [ "var-annotated" ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| module = [ "apps.*.migrations.*" ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
262
to
267
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Duplicated [[tool.mypy.overrides]] block. Same duplication for migrations override; remove the second one. -[[tool.mypy.overrides]]
-disable_error_code = [ "var-annotated" ]
-module = [ "apps.*.migrations.*" ]📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [[tool.mypy.overrides]] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| disable_error_code = [ "return-value", "attr-defined", "misc" ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -180,3 +274,11 @@ format = true | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| format_css = true | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| format_js = true | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| indent = 4 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| disable_error_code = [ "return-value", "attr-defined", "misc" ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| module = [ "apps.*.api.internal.queries.*", "apps.*.api.internal.nodes.*" ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [tool.djlint] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| format = true | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| format_css = true | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| format_js = true | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| indent = 4 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -28,10 +28,7 @@ format-frontend-code: | |
| && pnpm run format)) | ||
|
|
||
| lighthouse-ci: | ||
| @cd frontend && pnpm run lighthouse-ci | ||
|
|
||
| lighthouse-ci-desktop: | ||
| @cd frontend && pnpm run lighthouse-ci:desktop | ||
| @cd frontend && npx -y @lhci/[email protected] autorun --collect.url=http://localhost:3000 | ||
|
|
||
| lint-frontend-code: | ||
| @(cd frontend && pnpm run lint:check >/dev/null 2>&1 \ | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,19 @@ | ||
| { | ||
| "ci": { | ||
| "assert": { | ||
| "assertions": { | ||
| "categories:performance": ["warn", { "minScore": 0.9 }], | ||
| "categories:accessibility": ["warn", { "minScore": 0.9 }], | ||
| "categories:best-practices": ["warn", { "minScore": 0.9 }], | ||
| "categories:seo": ["warn", { "minScore": 0.9 }] | ||
| } | ||
| }, | ||
| "collect": { | ||
| "url": ["https://nest.owasp.dev/"], | ||
| "numberOfRuns": 3 | ||
| }, | ||
| "upload": { | ||
| "target": "temporary-public-storage" | ||
| } | ||
| } | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Prefer pinned, lockfile-backed execution over npx; also pass config explicitly and retain artifacts.
npx fetches code at runtime and bypasses your lockfile. Use pnpm dlx (via Corepack) to keep supply-chain controls tighter and speed up repeat runs, and pass the config path explicitly to avoid accidental defaults. Also upload LHCI artifacts for debugging.
Apply this diff within the step:
And add a follow-up step to persist reports:
🤖 Prompt for AI Agents
💡 Verification agent
🧩 Analysis chain
Confirm LHCI 0.15.1 compatibility with Node 22 (or pin Node 20 LTS).
Node 22 is new; some CLIs lag support. If incompatibilities exist, pin Node to 20.x here or bump LHCI to a version that officially supports Node 22.
🌐 Web query:
💡 Result:
Short answer: No — @lhci/[email protected] does not officially state Node.js 22 support. The Lighthouse CI docs and repo examples recommend Node 16 (and their quick-start shows Node 18 for CI), and the project’s server docs require Node 16 LTS. I could not find any LHCI release that explicitly declares official Node 22 support. [1][2][3]
Sources:
Pin Node to 20.x in CI before running LHCI
LHCI v0.15.1 doesn’t support Node 22 (docs/examples only reference Node 16/18). Add an actions/setup-node@v3 step with
node-version: '20.x'immediately before the “Run Lighthouse CI” step in .github/workflows/run-ci-cd.yaml.🤖 Prompt for AI Agents