github-samples / github-samples/pets-workshop
GitHub security workshop: Add a deterministic CodeQL scanning lab
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Python
- Estrellas
- 80
- Forks
- 161
- Merge medio
- 31 min
- PR fusionados (30 d)
- 1
Descripción
Goal
Teach learners how to enable code scanning and observe a real, intentionally introduced CodeQL finding in the pets application.
Scope
Add one safe training change that is detected reliably by a documented Python CodeQL query. The vulnerable path should be realistic enough to teach source-to-sink reasoning, but isolated from normal workshop startup and clearly marked as training-only. Provide a maintainer verification procedure so dependency or query-suite updates cannot silently break the exercise.
Acceptance criteria
- The exercise explains default setup versus advanced setup and selects one tested path.
- Learners enable CodeQL using current, capability-based instructions.
- A training fixture or guided code change triggers a named CodeQL query deterministically.
- The fixture contains no real secret, external side effect, or production deployment path.
- Learners trigger analysis on a branch or pull request and can identify the resulting check.
- The expected query ID, severity, file, and vulnerable data flow are documented for maintainers.
- A repeatable validation step proves the expected alert appears.
- Cleanup/reset instructions return the repository to a safe state.
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Empieza revisando la aplicación pets y la guía de configuración existente del workshop; después, compara las opciones de configuración predeterminada y avanzada de CodeQL. Define un fixture exclusivo para formación o un cambio guiado, y documenta la consulta con nombre, la gravedad, el archivo, el flujo de datos, el desencadenador de branch o pull request, el paso de validación y el procedimiento de limpieza. Se considera terminado cuando la alerta aparece de forma fiable sin secretos, efectos secundarios ni una ruta de producción.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- github, github-actions, python
- Área
- documentation, security
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Activo
- Claridad
- Bastante claro
- Aptitud para principiantes
- 50/100