OWASP / OWASP/Nest

Sync OWASP Awards data and integrate with user profiles

Open
#1,766 11 comments 0 reactions 1 assignee Claimed by @trucodd View on GitHub
enhancement gssoc2025 level 3
Dominant language
Python
Stars
451
Forks
707
Avg merge
22h 59m
Merged PRs (30d)
91

Description

**Is your feature request related to a problem? Please describe.**

We want to import and manage OWASP Awards data within Nest based on the canonical source at https://github.com/OWASP/owasp.github.io/blob/main/_data/awards.yml

**Describe the solution you'd like**

1. Create a new model in the owasp Django app that aligns with the structure of the awards YAML file.

The model should include at least the following fields:

category: CharField (e.g. "WASPY", "Lifetime Achievement")
name: CharField (unique)
description: TextField
year: IntegerField
user: ForeignKey to User (optional, award recipient)
created_at, updated_at: standard timestamp fields

2. Implement award sync command

Create a new management command similar to [owasp_update_events.py](https://github.com/OWASP/Nest/blob/main/backend/apps/owasp/management/commands/owasp_update_events.py) that:

- Downloads and parses awards.yml from the owasp.github.io repository
- Creates or updates award records in the database
- Attempts to match recipients with existing users by name or GitHub username
- Log warnings for unmatched users, and make the command idempotent.

3. Integrate with badges job

Once the sync is in place, the daily badge job will need to be updated to:

- Assign a "WASPY Award Winner" badge to users who have received any WASPY award (based on the Award model)
- Ensure the badge is removed if the award is no longer associated with the user

**Are you going to work on implementing this?**

- [ ] Yes
- [x] No

**Additional context**

Depends on Badge implementation completion.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.