bot check action - GitHub Action ที่เพิ่มการยืนยันเพื่อกันบอตใน GitHub Issue/PR
(github.com/dohyeon5626)เวลาที่ดูแลโอเพนซอร์สรีโพซิทอรี บางครั้งอาจมีบอตสร้าง Issue หรือ PR แบบสแปมขึ้นมาได้ เพื่อป้องกันเรื่องนี้ ผมเลยลองทำ GitHub Action แบบง่าย ๆ ที่บังคับให้มีการยืนยันผ่าน Cloudflare Turnstile ตอนสร้าง Issue/PR
ลำดับการทำงาน
- เมื่อมีคนสร้าง Issue หรือ PR
- บอตจะคอมเมนต์อัตโนมัติพร้อมลิงก์สำหรับยืนยัน
- เมื่อผู้เขียนกดลิงก์และยืนยันเสร็จ คอมเมนต์จะถูกอัปเดตเป็นข้อความสำเร็จ
- หากยืนยันไม่สำเร็จหรือหมดเวลา คอมเมนต์จะถูกอัปเดตเป็นข้อความล้มเหลว และสามารถตั้งค่าให้ปิด Issue/PR อัตโนมัติหรือเพิ่ม label ได้ตามตัวเลือก
ตอนใช้งานสามารถเลือกปรับแต่งตัวเลือกได้ตามต้องการ
- ตั้งค่าอีเวนต์ของ Issue/PR
- ตั้งค่าให้ปิดอัตโนมัติเมื่อยืนยันล้มเหลว หรือเพิ่ม label
- ตั้งค่าให้ข้ามการยืนยันสำหรับผู้ใช้บางราย (
allowed-users) - ตั้งค่าให้ข้ามได้หากมีระดับสิทธิ์ตั้งแต่ที่กำหนดขึ้นไป (
trusted-permission: read / write / admin) - ตั้งค่าให้ขอการยืนยันเฉพาะผู้ร่วมพัฒนาใหม่เท่านั้น (
first-time-only) - สามารถกำหนดบัญชีคอมเมนต์เป็น
github-actions[bot]หรือบัญชีบอตแบบกำหนดเองได้
ลิงก์โค้ดมีดังนี้
GitHub Action code: https://github.com/dohyeon5626/bot-check-action
โค้ดหน้าการยืนยัน: https://github.com/dohyeon5626/bot-check-page
โค้ดเซิร์ฟเวอร์สำหรับการยืนยัน: https://github.com/dohyeon5626/serverless-functions/…
นี่เป็นครั้งแรกที่ผมเขียนโพสต์ใน GeekNews! ที่นี่มีนักพัฒนาที่เก่ง ๆ เยอะมาก ถ้าให้ฟีดแบ็กกันได้ก็จะได้เรียนรู้อีกเยอะเลยครับ
นอกจากโปรเจกต์นี้แล้ว รีโพของผมที่ https://github.com/dohyeon5626 ไม่ว่าอันไหนก็ฝาก Issue หรือ PR กันได้ตามสบายเลยครับ ถ้ามีฟีดแบ็กให้จะขอบคุณมากครับ!!
2 ความคิดเห็น
เป็นโปรเจ็กต์ที่ดีนะครับ แต่เพราะไม่ได้มีโปรเจ็กต์ใหญ่ ๆ เลยไม่แน่ใจว่าจะมีโอกาสได้ใช้ไหม
ดูเหมือนว่าน่าจะช่วยป้องกันการที่บอตมาสร้าง issue/PR แบบง่าย ๆ ในโอเพนซอร์สได้ครับ