Skip to content

Commit 8ca539f

Browse files
committed
Merge branch 'main' of github.com:anurag2787/Nest into fix/responsive-chapter-page
2 parents 34834aa + 76d6657 commit 8ca539f

File tree

30 files changed

+2134
-1288
lines changed

30 files changed

+2134
-1288
lines changed

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ jobs:
208208
exit $EXIT_CODE
209209
210210
- name: Upload coverage report to Codecov
211-
uses: codecov/codecov-action@1af58845a975a7985b0beb0cbe6fbbb71a41dbad
211+
uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2
212212
with:
213213
fail_ci_if_error: false
214214
files: backend/coverage.xml
@@ -257,7 +257,7 @@ jobs:
257257
exit $EXIT_CODE
258258
259259
- name: Upload coverage report to Codecov
260-
uses: codecov/codecov-action@1af58845a975a7985b0beb0cbe6fbbb71a41dbad
260+
uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2
261261
with:
262262
fail_ci_if_error: false
263263
files: frontend/coverage/lcov.info
@@ -534,7 +534,7 @@ jobs:
534534
role-to-assume: arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/nest-staging-terraform
535535

536536
- name: Login to Amazon ECR
537-
uses: aws-actions/amazon-ecr-login@261fc3d4806db1fa66a15cc11113c456db8870a7
537+
uses: aws-actions/amazon-ecr-login@183a1442edf41672e66566b7fc560e297a290896
538538

539539
- name: Build backend image
540540
uses: docker/build-push-action@d08e5c354a6adb9ed34480a06d141179aa583294

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ repos:
5555
- --args=--config=__GIT_WORKING_DIR__/infrastructure/.tflint.hcl
5656

5757
- repo: https://github.com/astral-sh/ruff-pre-commit
58-
rev: v0.15.7
58+
rev: v0.15.8
5959
hooks:
6060
- id: ruff-check
6161
args:

MENTORS.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,9 @@ Keshav is a Senior Security Engineer at LinkedIn who works at the intersection o
6464

6565
AI/ML enthusiast | GSoC'25 contributor at PSF
6666

67-
[GitHub](https://github.com/kritibirda)[LinkedIn](https://www.linkedin.com/in/kritibirda/)[Slack](https://owasp.slack.com/team/U08KZ9Z7MFX)Country (Timezone)
67+
[GitHub](https://github.com/kritibirda)[LinkedIn](https://www.linkedin.com/in/kritibirda/)[Slack](https://owasp.slack.com/team/U08KZ9Z7MFX)[India (IST)](https://time-time.net/time/new-delhi-india.php)
6868

69-
*This section is reserved for the mentor to add their own description.*
69+
Kriti Birda is an AI/ML enthusiast interested in applying her skills to real-world challenges and modern software systems. She is an active open-source contributor who enjoys building reliable, well-tested tools and helping simplify complex concepts for the community. She is also a two-time Google Summer of Code contributor. She contributed to OSGeo (GRASS) in 2024 and to Python Software Foundation (OWHF) in 2025.
7070

7171
### Marie Wang
7272

SPONSORSHIP.md

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
# GitHub Sponsorship Program
2+
3+
Thank you for your contributions to the OWASP Nest project! This document outlines how to set up GitHub Sponsors on your personal account as the first step toward participating in our Sponsorship Program.
4+
5+
---
6+
7+
## Phase 1 — Set Up GitHub Sponsors on Your Personal Account
8+
9+
> [!NOTE]
10+
> **Official Docs:** [Setting up GitHub Sponsors for your personal account](https://docs.github.com/en/sponsors/receiving-sponsorships-through-github-sponsors/setting-up-github-sponsors-for-your-personal-account)
11+
12+
This is a one-time setup. GitHub needs to verify your identity and set up your payout method before your profile goes live.
13+
14+
---
15+
16+
### Step 1 — Check Your Eligibility & Region
17+
18+
Contributors to open source - including mentorship - may be eligible, subject to GitHub Sponsors eligibility criteria. Check if your country is supported:
19+
20+
- [Supported regions for GitHub Sponsors](https://docs.github.com/en/sponsors/receiving-sponsorships-through-github-sponsors/supported-regions-for-github-sponsors)
21+
22+
If your region isn't listed yet, you can join the waitlist on the same page.
23+
24+
---
25+
26+
### Step 2 — Enable Two-Factor Authentication (2FA)
27+
28+
GitHub requires 2FA before you can become a sponsored developer. If you haven't enabled it yet, go to **Settings → Password and authentication**.
29+
30+
- [Configuring two-factor authentication](https://docs.github.com/en/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication)
31+
32+
---
33+
34+
### Step 3 — Apply for GitHub Sponsors
35+
36+
Go to [github.com/sponsors](https://github.com/sponsors) → click **Get sponsored** → follow the prompts to complete your contact information. You will choose your payout method at this step (see Step 4).
37+
38+
Once submitted, GitHub will review your application — this typically takes a few days, though it can take longer. If your application seems stuck, contact [GitHub Support](https://support.github.com) directly.
39+
40+
---
41+
42+
### Step 4 — Choose Your Payout Method
43+
44+
> [!NOTE]
45+
> ⚠️ This must be decided at sign-up — it is difficult to change later.
46+
47+
GitHub offers two options:
48+
49+
#### Option A — Stripe Connect (bank account)
50+
51+
Most common. Your bank account region must match your country of residence. Check the official GitHub Sponsors payout documentation and supported regions for full details.
52+
53+
- [Stripe Connect cross-border payouts — supported countries](https://stripe.com/docs/connect/cross-border-payouts)
54+
- Double-check your identity info (name, date of birth) before submitting — it is difficult to update after the fact.
55+
56+
#### Option B — Fiscal Host
57+
58+
Best if Stripe isn't available in your country, or if you prefer not to connect a personal bank account. A fiscal host is an organization that receives funds on your behalf and pays you out through their system.
59+
60+
You will need to register with your chosen fiscal host first, then select **"Use a fiscal host"** during GitHub Sponsors sign-up and provide your profile URL from that platform.
61+
62+
GitHub currently supports these fiscal hosts:
63+
64+
- [Open Source Collective](https://opencollective.com/opensource) *(most commonly used)*
65+
- [Hack Club](https://hackclub.com/fiscal-sponsorship/)
66+
- [NumFOCUS](https://numfocus.org/programs/fiscal-sponsorship)
67+
- [Open Collective Europe](https://opencollective.com/europe)
68+
- [Python Software Foundation](https://www.python.org/psf/)
69+
- [Radiant Earth](https://radiant.earth/)
70+
- [Software in the Public Interest](https://www.spi-inc.org/)
71+
- [Software Underground](https://softwareunderground.org/)
72+
73+
> [!NOTE]
74+
> **Official Docs:** [Using a fiscal host to receive GitHub Sponsors payouts](https://docs.github.com/en/sponsors/receiving-sponsorships-through-github-sponsors/using-a-fiscal-host-to-receive-github-sponsors-payouts)
75+
76+
---
77+
78+
### Step 5 — Submit Your Tax Information
79+
80+
After connecting your payout method, complete a tax form from your Sponsors dashboard:
81+
82+
- **US residents:** Form W-9
83+
- **Non-US residents:** Form W-8BEN
84+
85+
- [Tax information for GitHub Sponsors](https://docs.github.com/en/sponsors/receiving-sponsorships-through-github-sponsors/tax-information-for-github-sponsors)
86+
87+
---
88+
89+
### Step 6 — Submit for GitHub Review
90+
91+
Click **Request approval** from your Sponsors dashboard. Once approved, your profile goes live at:
92+
93+
```text
94+
https://github.com/sponsors/YOUR-USERNAME
95+
```
96+
97+
---
98+
99+
### Step 7 — Complete Your Sponsors Profile
100+
101+
After approval, go to **your profile picture → Your sponsors → Dashboard → Profile details** and fill in the following:
102+
103+
- **Short bio** — a brief description of who you are.
104+
- **Introduction** — describe your open source work. For example:
105+
106+
> *"I'm an OWASP Nest mentor with the Google Summer of Code, helping the next generation of open source security engineers build real-world skills."*
107+
108+
---
109+
110+
Once you have completed Phase 1 and your GitHub Sponsors profile is live, you are ready to proceed to the next steps in the OWASP Nest Sponsorship Program.
111+
112+
If you have questions or run into any issues, feel free to open a discussion or reach out to the maintainers.

backend/apps/mentorship/api/internal/nodes/module.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,9 @@ def issues(
8484
self, info: Info, limit: int = 20, offset: int = 0, label: str | None = None
8585
) -> list[IssueNode]:
8686
"""Return paginated issues linked to this module, optionally filtered by label."""
87+
if not self.program or not self.program.user_has_access(info.context.request.user):
88+
return []
89+
8790
info.context.current_module = self
8891

8992
# BULK load data
@@ -150,6 +153,9 @@ def available_labels(self) -> list[str]:
150153
@strawberry.field
151154
def issue_by_number(self, info: Info, number: int) -> IssueNode | None:
152155
"""Return a single issue by its GitHub number within this module's linked issues."""
156+
if not self.program or not self.program.user_has_access(info.context.request.user):
157+
return None
158+
153159
info.context.current_module = self
154160

155161
return (

backend/entrypoint.sh

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,13 @@ python manage.py migrate
1010
python manage.py collectstatic --noinput
1111
python manage.py clear_cache
1212

13-
gunicorn wsgi:application --bind 0.0.0.0:8000
13+
gunicorn wsgi:application \
14+
--access-logfile - \
15+
--bind 0.0.0.0:8000 \
16+
--error-logfile - \
17+
--graceful-timeout "${GUNICORN_GRACEFUL_TIMEOUT:-60}" \
18+
--max-requests "${GUNICORN_MAX_REQUESTS:-1000}" \
19+
--max-requests-jitter "${GUNICORN_MAX_REQUESTS_JITTER:-50}" \
20+
--threads "${GUNICORN_THREADS:-2}" \
21+
--timeout "${GUNICORN_TIMEOUT:-60}" \
22+
--workers "${GUNICORN_WORKERS:-3}"

0 commit comments

Comments
 (0)