Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
4dc0a6b
Run make update
arkid15r Jan 16, 2026
9f00b94
chore(deps): bump aquasecurity/setup-trivy from 0.2.4 to 0.2.5 (#3376)
dependabot[bot] Jan 16, 2026
f5a7707
Fix modal overflow and improve responsiveness on on small screens of…
Isha-upadhyay Jan 17, 2026
1540bd4
Run make update
arkid15r Jan 17, 2026
29cfd17
fix: adjust navbar breakpoints to lg to prevent overflow #3272 (#3324)
harshita8120 Jan 17, 2026
060316b
Simplify regex to reduce Sonar complexity while preserving behavior (…
PawanMohit16 Jan 17, 2026
ca01430
Improve Module Card: Show mentors/mentee avatars & change grid to 3 c…
HarshitVerma109 Jan 17, 2026
a772cb4
fix(frontend): remove invalid turbopack config key (#3318)
mohith257 Jan 18, 2026
e9cf300
Fix ChapterMap locking behavior and wide screen layout issues (#3322)
anurag2787 Jan 18, 2026
bf345da
Docs: clarify upstream remote setup and fork sync steps for contribut…
SuyashJain17 Jan 18, 2026
c3505dd
Update cspell/Makefile
arkid15r Jan 18, 2026
7431363
Run make update
arkid15r Jan 18, 2026
eb555bf
test: replace single-character regex alternation with character class…
anukalp2804 Jan 18, 2026
c7a692a
Bump tar to 7.5.3
arkid15r Jan 18, 2026
ba28d79
refactor: mark BoardCandidatesLayout props as read-only (#3409)
ThetaLogN Jan 18, 2026
02ed7dd
Pin tar to v7.5.3
arkid15r Jan 18, 2026
058a2fd
fix: justify empty ResizeObserver mock methods (S1186) (#3403)
anukalp2804 Jan 18, 2026
06cc17a
Establish an e2e backend instance locally and in CI/CD (#2429)
ahmedxgouda Nov 23, 2025
b651e92
Fix running e2e backend (#2710)
ahmedxgouda Dec 12, 2025
592d033
Implement fuzztesting. (#1139)
ahmedxgouda Dec 29, 2025
e459de8
Add redis cache to e2e and fuzz tests (#3041)
ahmedxgouda Jan 2, 2026
a38e720
Update volume names (#3102)
ahmedxgouda Jan 2, 2026
1f6d6f2
Migrate Fuzz tests tool to Schemathesis and add REST Fuzz tests (#3122)
ahmedxgouda Jan 16, 2026
cdb2ff7
Update code
arkid15r Jan 16, 2026
7b647f0
Update docker-compose files
arkid15r Jan 16, 2026
affe48b
Apply rabbit suggestions on the e2e feature branch (#3389)
ahmedxgouda Jan 17, 2026
f975598
Update strawberry_django decorators (#3404)
ahmedxgouda Jan 18, 2026
f4d2a4e
Merge branch 'main' into feature/nest-zappa-migration-sync-main
rudransh-shrivastava Jan 19, 2026
ebc1ecc
Merge branch 'feature/nest-zappa-migration' into feature/nest-zappa-m…
rudransh-shrivastava Jan 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
89 changes: 84 additions & 5 deletions .github/workflows/run-ci-cd.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ jobs:
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8

- name: Setup Trivy
uses: aquasecurity/setup-trivy@e6c2c5e321ed9123bda567646e2f96565e34abe1
uses: aquasecurity/setup-trivy@3fb12ec12f41e471780db15c232d5dd185dcb514
with:
cache: true

Expand All @@ -172,7 +172,7 @@ jobs:
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8

- name: Setup Trivy
uses: aquasecurity/setup-trivy@e6c2c5e321ed9123bda567646e2f96565e34abe1
uses: aquasecurity/setup-trivy@3fb12ec12f41e471780db15c232d5dd185dcb514
with:
cache: true

Expand Down Expand Up @@ -260,13 +260,73 @@ jobs:
permissions:
contents: read
runs-on: ubuntu-latest
services:
db:
image: pgvector/pgvector:pg16
env:
POSTGRES_DB: nest_db_e2e
POSTGRES_PASSWORD: nest_user_e2e_password
POSTGRES_USER: nest_user_e2e
options: >-
--health-cmd="pg_isready -U nest_user_e2e -d nest_db_e2e -h localhost -p 5432"
--health-interval=5s
--health-timeout=5s
--health-retries=5
ports:
- 5432:5432
cache:
image: redis:8.0.5-alpine3.21
options: >-
--health-cmd="redis-cli ping"
--health-interval=5s
--health-retries=5
--health-timeout=5s
ports:
- 6379:6379
steps:
- name: Check out repository
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8

- name: Set up Docker buildx
uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f

- name: Setup Backend environment
uses: ./.github/workflows/setup-backend-environment
with:
db_username: nest_user_e2e
db_name: nest_db_e2e

- name: Start Backend in the background
run: |
docker run -d --rm --name e2e-nest-backend \
--env-file backend/.env.e2e.example \
--network host \
-e DJANGO_DB_HOST=localhost \
-e DJANGO_REDIS_AUTH_ENABLED=False \
-e DJANGO_REDIS_HOST=localhost \
-p 9000:9000 \
owasp/nest:test-backend-latest \
sh -c '
python manage.py migrate &&
gunicorn wsgi:application --bind 0.0.0.0:9000
'

- name: Waiting for the backend to be ready
run: |
timeout 5m bash -c '
until wget --spider http://localhost:9000/a; do
echo "Waiting for backend..."
sleep 5
done
'
echo "Backend is up!"

- name: Load Postgres data
env:
PGPASSWORD: nest_user_e2e_password
run: |
pg_restore -h localhost -U nest_user_e2e -d nest_db_e2e < backend/data/nest.dump

- name: Build frontend end-to-end testing image
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83
with:
Expand All @@ -281,7 +341,7 @@ jobs:

- name: Run frontend end-to-end tests
run: |
docker run --env-file frontend/.env.example owasp/nest:test-frontend-e2e-latest pnpm run test:e2e
docker run --env-file frontend/.env.e2e.example owasp/nest:test-frontend-e2e-latest pnpm run test:e2e
timeout-minutes: 10

run-frontend-a11y-tests:
Expand Down Expand Up @@ -335,6 +395,25 @@ jobs:
fi
timeout-minutes: 5

run-graphql-fuzz-tests:
name: Run GraphQL fuzz tests
needs:
- scan-code
- scan-ci-dependencies
uses: ./.github/workflows/run-fuzz-tests.yaml
with:
test-file: graphql_test.py

run-rest-fuzz-tests:
name: Run REST fuzz tests
needs:
- scan-code
- scan-ci-dependencies
uses: ./.github/workflows/run-fuzz-tests.yaml
with:
test-file: rest_test.py
rest-url: http://localhost:9500/api/v0

build-staging-images:
name: Build Staging Images
env:
Expand Down Expand Up @@ -467,7 +546,7 @@ jobs:
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8

- name: Setup Trivy
uses: aquasecurity/setup-trivy@e6c2c5e321ed9123bda567646e2f96565e34abe1
uses: aquasecurity/setup-trivy@3fb12ec12f41e471780db15c232d5dd185dcb514
with:
cache: true

Expand Down Expand Up @@ -833,7 +912,7 @@ jobs:
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8

- name: Setup Trivy
uses: aquasecurity/setup-trivy@e6c2c5e321ed9123bda567646e2f96565e34abe1
uses: aquasecurity/setup-trivy@3fb12ec12f41e471780db15c232d5dd185dcb514
with:
cache: true

Expand Down
118 changes: 118 additions & 0 deletions .github/workflows/run-fuzz-tests.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
name: Run fuzz tests

on:
workflow_call:
inputs:
test-file:
description: 'The test file to run fuzz tests on'
required: true
type: string
rest-url:
description: 'The REST API URL to test against'
required: false
type: string
default: 'http://localhost:9500/api/v0'

jobs:
run-fuzz-tests:
name: Run Fuzz Tests
runs-on: ubuntu-latest
timeout-minutes: 20
services:
db:
image: pgvector/pgvector:pg16
env:
POSTGRES_DB: nest_db_fuzz
POSTGRES_PASSWORD: nest_user_fuzz_password
POSTGRES_USER: nest_user_fuzz
options: >-
--health-cmd="pg_isready -U nest_user_fuzz -d nest_db_fuzz -h localhost -p 5432"
--health-interval=5s
--health-retries=5
--health-timeout=5s
ports:
- 5432:5432
cache:
image: redis:8.0.5-alpine3.21
options: >-
--health-cmd="redis-cli ping"
--health-interval=5s
--health-retries=5
--health-timeout=5s
ports:
- 6379:6379
steps:
- name: Check out repository
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8

- name: Set up Docker buildx
uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f

- name: Setup Backend environment
uses: ./.github/workflows/setup-backend-environment
with:
db_username: nest_user_fuzz
db_name: nest_db_fuzz

- name: Run backend with fuzz environment variables
run: |
docker run -d --rm --name fuzz-nest-backend \
--env-file backend/.env.fuzz.example \
--network host \
-e DJANGO_DB_HOST=localhost \
-e DJANGO_REDIS_AUTH_ENABLED=False \
-e DJANGO_REDIS_HOST=localhost \
-p 9500:9500 \
owasp/nest:test-backend-latest \
sh -c '
python manage.py migrate &&
gunicorn wsgi:application --bind 0.0.0.0:9500
'

- name: Waiting for the backend to be ready
run: |
timeout 5m bash -c '
until wget --spider http://localhost:9500/a; do
echo "Waiting for backend..."
sleep 5
done
'
echo "Backend is up!"

- name: Load Postgres data
env:
PGPASSWORD: nest_user_fuzz_password
run: |
set -euo pipefail
if ! pg_restore -h localhost -U nest_user_fuzz -d nest_db_fuzz < backend/data/nest.dump; then
echo "Data loading failed"
exit 1
fi
echo "Data loading completed."

- name: Build Fuzz-testing image
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83
with:
cache-from: |
type=gha
type=registry,ref=owasp/nest:test-fuzz-backend-cache
cache-to: |
type=gha,compression=zstd
context: backend
file: docker/backend/Dockerfile.fuzz
load: true
platforms: linux/amd64
tags: owasp/nest:test-fuzz-backend-latest

- name: Run fuzz tests
env:
TEST_FILE: ${{ inputs.test-file }}
REST_URL: ${{ inputs.rest-url }}
run: |
docker run \
--network host \
-e BASE_URL=http://localhost:9500 \
-e CI=true \
-e REST_URL="$REST_URL" \
-e TEST_FILE="$TEST_FILE" \
owasp/nest:test-fuzz-backend-latest
44 changes: 44 additions & 0 deletions .github/workflows/setup-backend-environment/action.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: Set up Backend environment

description: Sets up the Backend environment testing.

inputs:
db_username:
description: 'Database username'
required: true
db_name:
description: 'Database name'
required: true

runs:
using: composite
steps:
- name: Wait for database to be ready
env:
DB_USERNAME: ${{ inputs.db_username }}
DB_NAME: ${{ inputs.db_name }}
run: |
timeout 5m bash -c '
until docker exec ${{ job.services.db.id }} pg_isready -U $DB_USERNAME -d $DB_NAME; do
echo "Waiting for database..."
sleep 5
done
'
shell: bash

- name: Install PostgreSQL client
run: sudo apt-get install -y postgresql-client
shell: bash

- name: Build backend image
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83
with:
cache-from: |
type=gha
cache-to: |
type=gha,compression=zstd
context: backend
file: docker/backend/Dockerfile
load: true
platforms: linux/amd64
tags: owasp/nest:test-backend-latest
13 changes: 13 additions & 0 deletions .github/workflows/update-nest-test-images.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -74,4 +74,17 @@ jobs:
platforms: linux/amd64
push: true
tags: owasp/nest:test-frontend-e2e-latest

- name: Build and push fuzz-test-backend image
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83
with:
cache-from: type=registry,ref=owasp/nest:test-fuzz-backend-cache
cache-to: |
type=gha,compression=zstd
type=registry,ref=owasp/nest:test-fuzz-backend-cache
context: backend
file: docker/backend/Dockerfile.fuzz
platforms: linux/amd64
push: true
tags: owasp/nest:test-fuzz-backend-latest
timeout-minutes: 15
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,12 @@ __pycache__
.cache
.coverage
.cursor/rules/snyk_rules.mdc
backend/fuzzing_results/
.DS_Store
.env*
!.env.example
!.env.e2e.example
!.env.fuzz.example
.github/instructions/snyk_rules.instructions.md
.idea
.lighthouseci/
Expand Down Expand Up @@ -55,3 +58,6 @@ logs
node_modules/
TODO
venv/

# Snyk Security Extension - AI Rules (auto-generated)
.cursor/rules/snyk_rules.mdc
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ repos:
- --args=--config=__GIT_WORKING_DIR__/infrastructure/.tflint.hcl

- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.14.11
rev: v0.14.13
hooks:
- id: ruff-check
args:
Expand Down
Loading
Loading