CommunityRecherche & Datenanalysegithub.com

Nick2bad4u/GitHub-Sicherheits-CodeScanning-Alarme-Skill

Ein Copilot/AI-Skill zum Verwalten von GitHub-Sicherheitswarnungen wie Code Scanning, Dependabot und Secret Scanning.

Was ist GitHub-Sicherheits-CodeScanning-Alarme-Skill?

Dieser Skill ermöglicht es einem KI-Agenten (z. B. Claude Code, Cursor oder Codex), GitHub-Repository-Sicherheitswarnungen zu inspizieren und zu verwalten. Er unterstützt Code Scanning-, Dependabot-, Dependabot-Malware-, Secret Scanning-Alarme, Secret Scanning-Standorte, den Scan-Verlauf sowie Repository-Sicherheitseinstellungen. Der Skill enthält das plattformunabhängige Hilfsskript `scripts/manage_github_security_alerts.py`, das automatisch die Repository-Informationen aus dem Git-Remote-Ort ableitet oder explizite Parameter wie `--repository owner/repo` akzeptiert. Die Authentifizierung erfolgt sicher über Umgebungsvariablen wie `GITHUB_TOKEN` oder `GH_TOKEN`. Das Skript bietet zahlreiche CLI-Befehle für Zusammenfassungen, Exporte, Massenaktualisierungen und detaillierte Ansichten, wobei Geheimwerte standardmäßig geschwärzt bleiben. Es unterstützt sowohl GitHub.com als auch GitHub Enterprise Server (GHES).

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add Nick2bad4u/Github-Security-CodeScanning-Alerts-Skill

Installed? Explore more Recherche & Datenanalyse skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

GitHub Sicherheitswarnungen verwalten

Übersicht

Verwenden Sie diesen Skill, wenn ein Benutzer darum bittet, GitHub-Repository-Sicherheitswarnungen zu inspizieren oder zu verwalten, einschließlich:

  • Code Scanning-Alarme
  • Dependabot-Alarme
  • Dependabot-Malware-Alarme
  • Secret Scanning-Alarme
  • Secret Scanning-Alarmpositionen
  • Secret Scanning-Scan-Verlauf
  • Repository-Sicherheitseinstellungen Übersicht
  • Roh-GitHub-Sicherheits-API-Inspektion über Repositories hinweg
  • Massenexport von Alarmen für Offline-Triage oder Berichtsworkflows
  • Massenmutation von Alarmen für Bereinigungs-Workflows mit hohem Volumen

Das gebündelte Hilfsskript ist Repository-unabhängig:

  • --repo auf einen lokalen Checkout zeigen
  • owner/repo und den GitHub-Host automatisch aus dem Git-Remote erkennen lassen
  • Oder explizit --repository owner/repo übergeben
  • Authentifizierung über Umgebungsvariable, anstatt ein Token in der Befehlszeile zu platzieren
  • Optional die API- oder Web-Basis-URL für kundenspezifische Umgebungen überschreiben

Kompatibilität

Erfordert Python 3. Verwendet die GitHub-REST-API direkt mit einem Token, das über eine Umgebungsvariable wie GITHUB_TOKEN oder GH_TOKEN bereitgestellt wird. Unterstützt GitHub.com und die standardmäßige GHES-API-Basis-URL-Ableitung von Git-Remotes, mit einem Roh-API-Fallback für alles, was noch nicht abgedeckt ist.

Aufrufhinweise

Verwenden Sie repo, wenn das Ziel ein lokaler Checkout ist, standardmäßig .. Verwenden Sie optional die Werte repository, api_base_url, web_base_url und token_env, wenn die automatische Erkennung nicht ausreicht. Häufige Befehle sind summary, export-alerts, bulk-update-alerts, repo-security-overview, list-code-scanning, show-code-scanning, update-code-scanning, list-dependabot, show-dependabot, update-dependabot, list-malware, show-malware, update-malware, list-secret-scanning, show-secret-scanning, update-secret-scanning, list-secret-locations, secret-scan-history und api-call.

Sicherheitsmodell

GitHub-Token nicht in Befehlsargumente einfügen. --show-secret-values nicht verwenden, es sei denn, der Benutzer fragt explizit nach ungeschwärzten Geheimwerten und bestätigt das Offenlegungsrisiko. Bevorzugen Sie geschwärzte Alarmmetadaten, Geheimpositionen, Gültigkeit und Auflösungsstatus. Wenn für die Behebung ungeschwärzte Ausgaben erforderlich sind, Geheimmaterial nicht in Chat, Issue-Kommentaren, PRs, Commits, Protokollen oder gespeicherten Berichten einfügen.

Bevorzugtes Muster:

$env:GITHUB_TOKEN = Get-Secret GITHUB_TOKEN -AsPlainText

Wenn ein Repository einen anderen Umgebungsvariablennamen verwendet, entweder diese Variable zuerst exportieren oder den Variablennamen mit --token-env übergeben.

Beispiele:

python "<path-to-skill>/scripts/manage_github_security_alerts.py" summary --repo "."
python "<path-to-skill>/scripts/manage_github_security_alerts.py" summary --repo "." --token-env GITHUB_TOKEN

Gemeinsame CLI-Optionen

  • repo: Pfad innerhalb des Ziel-Repository-Checkouts (Standard .)
  • repository: optionales explizites owner/repo-Override
  • api_base_url: optionales explizites API-Basis-URL-Override
  • web_base_url: optionales explizites Web-Basis-URL-Override für gerenderte Links
  • token_env: optionaler Name der Umgebungsvariable, die das Token enthält; wiederholbar für Fallbacks
  • json: optionales Flag für maschinenlesbare Ausgabe

Wichtiger Hinweis zu Malware-Alarmen

GitHub zeigt Malware-Funde als Dependabot-Malware-Alarme an.

GitHub bietet keine separate Repository-Alarmfamilie mit einer eigenen dedizierten REST-Oberfläche. Daher behandelt das gebündelte Hilfsskript Malware als gefilterte Teilmenge von Dependabot-Alarmen und gleicht die GHSA jedes Alarms mit der GitHub Advisory Database ab, um Advisories zu identifizieren, deren Typ malware ist.

Das bedeutet:

  • list-malware, show-malware und update-malware basieren auf Dependabot-Alarm-APIs
  • Die Malware-Klassifizierung ist auf GitHub.com am stärksten, wo der Endpunkt der Advisory Database verfügbar ist
  • Wenn die Suche nach Advisory-Typ auf dem Zielhost nicht verfügbar ist, meldet das Hilfsskript diesen Zustand, anstatt stillschweigend zu raten

Schnellstart

1. Aktuellen Sicherheitszustand inspizieren

python "<path-to-skill>/scripts/manage_github_security_alerts.py" summary --repo "."

2. Übersicht der Repository-Sicherheitseinstellungen anzeigen

python "<path-to-skill>/scripts/manage_github_security_alerts.py" repo-security-overview --repo "."

2.5 Vollständige Alarmsätze für Bulk-Triage exportieren

python "<path-to-skill>/scripts/manage_github_security_alerts.py" export-alerts --repo "." --json

3. Code Scanning-Liste Beispiel

Verwendet gemeinsame Eingaben repo, repository, api_base_url, web_base_url, token_env und json sowie Code Scanning-Filter wie state, severity, tool_name, tool_guid, ref und pr. Gibt code_scanning_alerts als gerenderten Text oder maschinenlesbares JSON aus.

python "<path-to-skill>/scripts/manage_github_security_alerts.py" list-code-scanning --repo "." --state open --severity high,error

3.5 Alarme massenhaft ablehnen oder wiedereröffnen

python "<path-to-skill>/scripts/manage_github_security_alerts.py" bulk-update-alerts --repo "." --surface code-scanning --select-state open --target-state dismissed --dismissed-reason "false positive" --comment "Reviewed and intentionally dismissed." --limit 10 --dry-run --json

python "<path-to-skill>/scripts/manage_github_security_alerts.py" bulk-update-alerts --repo "." --surface dependabot --select-state open --target-state dismissed --dismissed-reason tolerable_risk --comment "Accepted until the next dependency refresh." --limit 25 --dry-run --json

python "<path-to-skill>/scripts/manage_github_security_alerts.py" bulk-update-alerts --repo "." --surface secret-scanning --select-state open --target-state resolved --resolution used_in_tests --limit 25 --dry-run --json

4. Code Scanning-Alarm ablehnen oder wiedereröffnen

python "<path-to-skill>/scripts/manage_github_security_alerts.py" update-code-scanning --repo "." --alert 42 --state dismissed --dismissed-reason false_positive --comment "False positive after manual review." --dry-run
python "<path-to-skill>/scripts/manage_github_security_alerts.py" update-code-scanning --repo "." --alert 42 --state open

5. Dependabot-Liste Beispiel

Verwendet gemeinsame Eingaben repo, repository, api_base_url, web_base_url, token_env und json sowie Dependabot-Filter wie state, severity, ecosystem, package, manifest, has, assignee und scope. Gibt dependabot_alerts als gerenderten Text oder maschinenlesbares JSON aus.

python "<path-to-skill>/scripts/manage_github_security_alerts.py" list-dependabot --repo "." --state open --ecosystem npm --has patch

6. Dependabot-Alarm ablehnen oder wiedereröffnen

python "<path-to-skill>/scripts/manage_github_security_alerts.py" update-dependabot --repo "." --alert 7 --state dismissed --dismissed-reason tolerable_risk --comment "Accepted until next quarterly upgrade." --dry-run
python "<path-to-skill>/scripts/manage_github_security_alerts.py" update-dependabot --repo "." --alert 7 --state open

7. Malware-Liste Beispiel

Verwendet gemeinsame Eingaben repo, repository, api_base_url, web_base_url, token_env und json sowie Dependabot-gestützte Malware-Filter wie state, severity, ecosystem, package, manifest und has. Gibt malware_alerts und eventuelle lookup_failures aus der Advisory-Typ-Klassifizierung aus.

python "<path-to-skill>/scripts/manage_github_security_alerts.py" list-malware --repo "." --state open

8. Secret Scanning-Liste Beispiel

Verwendet gemeinsame Eingaben repo, repository, api_base_url, web_base_url, token_env und json sowie Secret Scanning-Filter wie state, secret_type, resolution, assignee, validity und Flags für Leaks oder mehrere Repositories. Gibt secret_scanning_alerts aus, wobei Geheimwerte standardmäßig geschwärzt sind.

python "<path-to-skill>/scripts/manage_github_security_alerts.py" list-secret-scanning --repo "." --state open

Geheimwerte sind standardmäßig ausgeblendet. Behalten Sie diese Standardeinstellung bei, es sei denn, der Benutzer bestätigt explizit, dass eine ungeschwärzte Geheimausgabe erforderlich ist.

9. Secret Scanning-Alarm auflösen oder wiedereröffnen

python "<path-to-skill>/scripts/manage_github_security_alerts.py" update-secret-scanning --repo "." --alert 11 --state resolved --resolution revoked --comment "Token revoked and rotated." --dry-run
python "<path-to-skill>/scripts/manage_github_security_alerts.py" update-secret-scanning --repo "." --alert 11 --state open

10. Geheimpositionen und Scan-Verlauf anzeigen

python "<path-to-skill>/scripts/manage_github_security_alerts.py" list-secret-locations --repo "." --alert 11
python "<path-to-skill>/scripts/manage_github_security_alerts.py" secret-scan-history --repo "."

11. Roh-API-Fallback für noch nicht abgedeckte Bereiche verwenden

python "<path-to-skill>/scripts/manage_github_security_alerts.py" api-call --repo "." --endpoint /repos/OWNER/REPO/code-scanning/default-setup

Arbeitsablauf

  1. Authentifizierung sicher auflösen.
    • Eine Umgebungsvariable wie GITHUB_TOKEN bevorzugen.
    • Bei Bedarf zuerst aus einem Secret Manager in eine Umgebungsvariable laden.
    • Das Token niemals in Protokollen oder Chat-Ausgaben ausgeben.
  2. Ziel-Repository auflösen.
    • --repo und automatische Erkennung aus Git-Remote bevorzugen.
    • Auf --repository owner/repo zurückgreifen, wenn der lokale Checkout nicht verfügbar oder nicht standardmäßig ist.
  3. Aktuelle Funde inspizieren.
    • Zuerst summary ausführen.
    • export-alerts verwenden, wenn eine vollständigere Multi-Oberflächen-JSON-Momentaufnahme für Bulk-Triage oder externe Berichte benötigt wird.
    • Die Listen-/Anzeige-Befehle für die relevante Alarmfamilie verwenden.
    • repo-security-overview verwenden, wenn es um Aktivierung oder verfügbare Sicherheitseinstellungen geht.
  4. Funde klassifizieren.
    • Echte Fehler im Code oder in der Abhängigkeitskonfiguration beheben, wenn angemessen.
    • Nur ablehnen, wenn eine klare Begründung vorliegt.
    • Alarme wiedereröffnen, wenn die frühere Ablehnung oder Auflösung nicht mehr gültig ist.
    • bulk-update-alerts verwenden, wenn ein Repository Dutzende oder Hunderte bereits überprüfter, falsch eingestufter Alarme hat, die dieselbe Aktion benötigen.
  5. Mutationen vorsichtig anwenden.
    • Für riskante Änderungen zuerst --dry-run bevorzugen.
    • Einen kurzen, umsetzbaren Ablehnungs- oder Auflösungskommentar hinzufügen.
    • Beachten, dass Schreiboperationen die entsprechenden GitHub-Berechtigungen erfordern.
  6. Zustand nach der Änderung überprüfen.
    • Den entsprechenden Listen-/Anzeige-Befehl erneut ausführen.
    • Bei Code- oder Abhängigkeitskorrekturen auf den nächsten GitHub-Analysezyklus warten, wenn erwartet wird, dass der Alarm von selbst verschwindet.

Gebündelte Ressourcen

Hilfsskript

scripts/manage_github_security_alerts.py ist das Repository-unabhängige Hilfsskript für GitHub-Repository-Sicherheitswarnungen.

Unterstützte Befehle:

  • summary
  • export-alerts
  • bulk-update-alerts
  • repo-security-overview
  • list-code-scanning
  • show-code-scanning
  • update-code-scanning
  • list-dependabot
  • show-dependabot
  • update-dependabot
  • list-malware
  • show-malware
  • update-malware
  • list-secret-scanning
  • show-secret-scanning
  • update-secret-scanning
  • list-secret-locations
  • secret-scan-history
  • api-call

Implementierungsmodule:

  • github_security_api.py
  • github_security_cli.py
  • github_security_common.py
  • github_security_operations.py
  • github_security_render.py

Beispiele:

python "<path-to-skill>/scripts/manage_github_security_alerts.py" summary --repo "." --json
python "<path-to-skill>/scripts/manage_github_security_alerts.py" export-alerts --repo "." --json
python "<path-to-skill>/scripts/manage_github_security_alerts.py" bulk-update-alerts --repo "." --surface code-scanning --select-state open --target-state dismissed --dismissed-reason "false positive" --comment "Reviewed and intentionally dismissed." --limit 10 --dry-run --json
python "<path-to-skill>/scripts/manage_github_security_alerts.py" list-code-scanning --repo "." --state open --per-page 100 --json
python "<path-to-skill>/scripts/manage_github_security_alerts.py" update-code-scanning --repo "." --alert 42 --state dismissed --dismissed-reason false_positive --comment "False positive after review." --dry-run
python "<path-to-skill>/scripts/manage_github_security_alerts.py" list-dependabot --repo "." --state open --ecosystem npm --json
python "<path-to-skill>/scripts/manage_github_security_alerts.py" list-malware --repo "." --json
python "<path-to-skill>/scripts/manage_github_security_alerts.py" update-dependabot --repo "." --alert 7 --state dismissed --dismissed-reason tolerable_risk --comment "Accepted temporarily." --dry-run
python "<path-to-skill>/scripts/manage_github_security_alerts.py" list-secret-scanning --repo "." --state open --json
python "<path-to-skill>/scripts/manage_github_security_alerts.py" update-secret-scanning --repo "." --alert 11 --state resolved --resolution revoked --comment "Revoked and rotated." --dry-run
python "<path-to-skill>/scripts/manage_github_security_alerts.py" list-secret-locations --repo "." --alert 11 --json
python "<path-to-skill>/scripts/manage_github_security_alerts.py" secret-scan-history --repo "." --json
python "<path-to-skill>/scripts/manage_github_security_alerts.py" api-call --repo "." --endpoint /repos/OWNER/REPO/dependabot/alerts --query-param state=open --json

Verwandte Skills