Skip to content

Commit 95d6602

Browse files
Merge branch 'main' into feat/entity_member
2 parents edc12d1 + 4479525 commit 95d6602

File tree

114 files changed

+7193
-513
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

114 files changed

+7193
-513
lines changed

.github/workflows/run-ci-cd.yaml

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ jobs:
3535
runs-on: ubuntu-latest
3636
steps:
3737
- name: Check out repository
38-
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
38+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
3939

4040
- name: Install Poetry
4141
run: pipx install poetry
@@ -68,7 +68,7 @@ jobs:
6868
runs-on: ubuntu-latest
6969
steps:
7070
- name: Check out repository
71-
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
71+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
7272

7373
- name: Install pnpm
7474
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda
@@ -101,7 +101,7 @@ jobs:
101101
runs-on: ubuntu-latest
102102
steps:
103103
- name: Check out repository
104-
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
104+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
105105

106106
- name: Run cspell
107107
run: |
@@ -116,7 +116,7 @@ jobs:
116116
runs-on: ubuntu-latest
117117
steps:
118118
- name: Check out repository
119-
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
119+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
120120

121121
- name: Run Trivy Repository Scan
122122
uses: aquasecurity/trivy-action@dc5a429b52fcf669ce959baa2c2dd26090d2a6c4
@@ -135,7 +135,7 @@ jobs:
135135
runs-on: ubuntu-latest
136136
steps:
137137
- name: Check out repository
138-
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
138+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
139139

140140
- name: Run Trivy Filesystem Scan
141141
uses: aquasecurity/trivy-action@dc5a429b52fcf669ce959baa2c2dd26090d2a6c4
@@ -153,7 +153,7 @@ jobs:
153153
runs-on: ubuntu-latest
154154
steps:
155155
- name: Check out repository
156-
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
156+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
157157

158158
- name: Set up Docker buildx
159159
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435
@@ -184,7 +184,7 @@ jobs:
184184
runs-on: ubuntu-latest
185185
steps:
186186
- name: Check out repository
187-
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
187+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
188188

189189
- name: Set up Docker buildx
190190
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435
@@ -215,7 +215,7 @@ jobs:
215215
runs-on: ubuntu-latest
216216
steps:
217217
- name: Check out repository
218-
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
218+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
219219

220220
- name: Set up Docker buildx
221221
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435
@@ -267,7 +267,7 @@ jobs:
267267
runs-on: ubuntu-latest
268268
steps:
269269
- name: Check out repository
270-
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
270+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
271271

272272
- name: Set up QEMU
273273
uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392
@@ -359,7 +359,7 @@ jobs:
359359
runs-on: ubuntu-latest
360360
steps:
361361
- name: Check out repository
362-
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
362+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
363363

364364
- name: Scan backend image
365365
uses: aquasecurity/trivy-action@dc5a429b52fcf669ce959baa2c2dd26090d2a6c4
@@ -398,7 +398,7 @@ jobs:
398398
runs-on: ubuntu-latest
399399
steps:
400400
- name: Check out repository
401-
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
401+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
402402

403403
- name: Prepare SSH key
404404
run: |
@@ -471,7 +471,7 @@ jobs:
471471
runs-on: ubuntu-latest
472472
steps:
473473
- name: Check out repository
474-
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
474+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
475475

476476
- name: Prepare SSH key
477477
run: |
@@ -499,7 +499,7 @@ jobs:
499499
runs-on: ubuntu-latest
500500
steps:
501501
- name: Check out repository
502-
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
502+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
503503

504504
- name: Set up QEMU
505505
uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392
@@ -587,7 +587,7 @@ jobs:
587587
runs-on: ubuntu-latest
588588
steps:
589589
- name: Check out repository
590-
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
590+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
591591

592592
- name: Setup Trivy
593593
uses: aquasecurity/setup-trivy@9ea583eb67910444b1f64abf338bd2e105a0a93d
@@ -632,7 +632,7 @@ jobs:
632632
runs-on: ubuntu-latest
633633
steps:
634634
- name: Check out repository
635-
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
635+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
636636

637637
- name: Prepare SSH key
638638
run: |
@@ -711,7 +711,7 @@ jobs:
711711
runs-on: ubuntu-latest
712712
steps:
713713
- name: Check out repository
714-
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
714+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
715715

716716
- name: Prepare SSH key
717717
run: |

.github/workflows/run-code-ql.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ jobs:
2626
- python
2727
steps:
2828
- name: Check out repository
29-
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
29+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
3030

3131
- name: Initialize CodeQL
3232
uses: github/codeql-action/init@76621b61decf072c1cee8dd1ce2d2a82d33c17ed

.github/workflows/update-nest-test-images.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
if: ${{ github.repository == 'OWASP/Nest' }}
1818
runs-on: ubuntu-latest
1919
steps:
20-
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
20+
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
2121

2222
- name: Set up Docker buildx
2323
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435

backend/apps/core/api/internal/algolia.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@
1414

1515
from apps.common.index import IndexBase
1616
from apps.common.utils import get_user_ip_address
17+
from apps.core.constants import CACHE_PREFIX
1718
from apps.core.utils.index import deep_camelize, get_params_for_index
1819
from apps.core.validators import validate_search_params
1920

20-
CACHE_PREFIX = "algolia_proxy"
2121
CACHE_TTL_IN_SECONDS = 3600 # 1 hour
2222

2323

backend/apps/core/constants.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
"""Core app constants."""
2+
3+
CACHE_PREFIX = "algolia_proxy"

backend/apps/core/utils/index.py

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,17 @@
11
"""Index utils."""
22

33
import contextlib
4+
import logging
45

56
from algoliasearch_django import register, unregister
67
from algoliasearch_django.registration import RegistrationError
78
from django.apps import apps
9+
from django.core.cache import cache
810

911
from apps.common.utils import convert_to_camel_case
12+
from apps.core.constants import CACHE_PREFIX
13+
14+
logger = logging.getLogger(__name__)
1015

1116

1217
class DisableIndexing:
@@ -140,6 +145,18 @@ def get_params_for_index(index_name: str) -> dict:
140145
]
141146
params["aroundLatLngViaIP"] = True
142147

148+
case "programs":
149+
params["attributesToRetrieve"] = [
150+
"idx_description",
151+
"idx_ended_at",
152+
"idx_experience_levels",
153+
"idx_key",
154+
"idx_modules",
155+
"idx_name",
156+
"idx_started_at",
157+
"idx_status",
158+
]
159+
143160
case "projects":
144161
params["attributesToRetrieve"] = [
145162
"idx_contributors_count",
@@ -213,3 +230,32 @@ def get_params_for_index(index_name: str) -> dict:
213230
params["attributesToRetrieve"] = []
214231

215232
return params
233+
234+
235+
def clear_index_cache(index_name: str) -> None:
236+
"""Clear Algolia proxy cache entries from the cache store that match a given index name.
237+
238+
Args:
239+
index_name (str): The specific index to clear cache for.
240+
If empty, the function does nothing.
241+
242+
Returns:
243+
None
244+
245+
"""
246+
if not index_name:
247+
logger.info("No index name provided, skipping cache clear.")
248+
return
249+
250+
pattern = f"{CACHE_PREFIX}:{index_name}*"
251+
keys_to_delete = list(cache.iter_keys(pattern))
252+
253+
if not keys_to_delete:
254+
logger.info("No matching cache keys found for pattern: %s", pattern)
255+
return
256+
257+
logger.info("Deleting %d cache keys for pattern: %s", len(keys_to_delete), pattern)
258+
259+
for key in keys_to_delete:
260+
logger.info("Deleting key: %s", key)
261+
cache.delete(key)

backend/apps/mentorship/admin/program.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
from django.contrib import admin
44

5-
from apps.mentorship.models.program import Program
5+
from apps.mentorship.models import Program
66

77

88
class ProgramAdmin(admin.ModelAdmin):

backend/apps/mentorship/api/__init__.py

Whitespace-only changes.

backend/apps/mentorship/api/internal/__init__.py

Whitespace-only changes.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
"""Mentorship mutations."""
2+
3+
from .module import ModuleMutation
4+
from .program import ProgramMutation

0 commit comments

Comments
 (0)