github-samples / github-samples/pets-workshop

GitHub security workshop: Add a deterministic CodeQL scanning lab

オープン
#271 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

priority: P2
主要言語
Python
スター
80
フォーク
161
平均マージ
31分
マージ済み PR(30日)
1

説明

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.

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

まず pets アプリケーションと workshop の既存のセットアップガイダンスを確認し、その後、CodeQL のデフォルトセットアップと高度なセットアップのオプションを比較します。トレーニング専用の fixture またはガイド付きの変更を定義し、名前付きクエリ、重要度、ファイル、データフロー、branch または pull request のトリガー、検証手順、クリーンアップ手順を文書化します。アラートが secrets、副作用、本番パスなしで確実に表示されれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
github, github-actions, python
領域
documentation, security
issue の種類
機能追加
難易度
4/5
見積もり時間
3〜5日
活発さ
活発
明瞭さ
おおむね明確
初心者へのやさしさ
50/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。