bot check action – GitHub Action, das Issue-/PR-Bot-Schutz mit Verifizierung an GitHub-Issues/PRs anhängt
(github.com/dohyeon5626)Beim Betrieb eines Open-Source-Repositorys kommt es vor, dass Bots Issues oder PRs wie Spam erstellen. Um das zu verhindern, habe ich testweise eine einfache GitHub Action gebaut, die beim Erstellen eines Issues/PRs eine Verifizierung über Cloudflare Turnstile verlangt.
Ablauf
- Jemand erstellt ein Issue oder einen PR.
- Der Bot postet automatisch einen Kommentar mit einem Verifizierungslink.
- Wenn der Verfasser auf den Link klickt und die Verifizierung abschließt, wird der Kommentar mit einer Erfolgsmeldung aktualisiert.
- Wenn die Verifizierung fehlschlägt oder das Zeitlimit überschritten wird, wird der Kommentar mit einer Fehlermeldung aktualisiert; je nach Option kann das Issue/der PR außerdem automatisch geschlossen oder mit einem Label versehen werden.
Bei der Nutzung lassen sich die Optionen je nach Bedarf anpassen.
- Event-Einstellungen für Issues/PRs
- Automatisches Schließen bei fehlgeschlagener Verifizierung, Label-Hinzufügung
- Verifizierung für bestimmte Nutzer überspringen (
allowed-users) - Überspringen ab einer bestimmten Berechtigungsstufe (
trusted-permission: read / write / admin) - Verifizierung nur für neue Beitragende anfordern (
first-time-only) - Das Kommentarkonto kann auf
github-actions[bot]oder ein benutzerdefiniertes Bot-Konto gesetzt werden
Hier sind die Code-Links.
GitHub-Action-Code: https://github.com/dohyeon5626/bot-check-action
Code der Verifizierungsseite: https://github.com/dohyeon5626/bot-check-page
Code des Verifizierungsservers: https://github.com/dohyeon5626/serverless-functions/…
Dies ist mein erster Beitrag auf GeekNews! Hier gibt es viele sehr gute Entwicklerinnen und Entwickler, daher würde ich mich über Feedback freuen und sicher viel daraus lernen.
Nicht nur zu diesem Projekt: Unter https://github.com/dohyeon5626 könnt ihr auch in meinen anderen Repositories gern beliebig Issues oder PRs hinterlassen — ich wäre für jedes Feedback dankbar!!
2 Kommentare
Ein gutes Projekt. Da ich keine großen Projekte habe, weiß ich nicht, ob ich es jemals verwenden werde.
Damit lässt sich in Open Source wohl verhindern, dass Bots einfach Issues/PRs erstellen.