1 điểm bởi heodongun 6 ngày trước | Chưa có bình luận nào. | Chia sẻ qua WhatsApp

Tôi đã tạo một dự án mã nguồn mở tên là GemmaCI.

Mô tả ngắn gọn trong một câu: đây là dự án nhằm chạy miễn phí một AI reviewer cho PR kiểu như CodeRabbit ngay bên trong GitHub Actions.

CodeRabbit là một công cụ tốt, nhưng nếu muốn dùng PR review nghiêm túc trên private repo thì cần gói trả phí. Theo tài liệu chính thức, gói Free chủ yếu tập trung vào PR summarization, còn PR review chỉ có từ gói Pro trở lên. Pro có giá $24/mo/user nếu thanh toán theo năm, hoặc $30/mo/user nếu thanh toán theo tháng.

Vì vậy tôi đã làm dự án này với suy nghĩ: “Liệu có thể thay thế miễn phí trải nghiệm cốt lõi của CodeRabbit cho các nhóm nhỏ, dự án sinh viên và side project cá nhân hay không?”

GemmaCI chạy mô hình Ollama + Gemma trong GitHub Actions để review PR diff.

Hiện tại các tính năng đang hoạt động gồm:

  • Tạo PR summary comment
  • Viết inline review comment trên các dòng đã thay đổi
  • Làm CI check thất bại khi phát hiện finding mức high / critical
  • Xuất review dựa trên evidence, confidence, recommendation
  • Giảm chi phí cold start bằng Ollama / model cache
  • Chỉ cần thêm một file workflow là có thể dùng
  • Mô hình bảo mật coi toàn bộ PR diff, model output và artifact là untrusted data

Hai điểm tôi chú trọng nhất là “miễn phí” và “bảo mật”.

Không chỉ đơn giản là ném diff cho LLM rồi để nó tự đăng bình luận, mà còn xác thực model output theo schema và chỉ đăng những finding thực sự có căn cứ trên các dòng đã thay đổi.

Ngoài ra, mặc định dự án không dùng pull_request_target. Mục đích là để tránh rủi ro workflow hoặc script do người tạo PR thay đổi bị chạy với quyền write. Ngay cả ở bước publish cũng chỉ chạy trusted base branch code, còn artifact và model output thì được kiểm tra lại một lần nữa.

Tôi đã mở một smoke PR trên GitHub Actions runner thực tế để kiểm chứng.

Các hạng mục đã xác minh:

  • Chạy workflow trên GitHub-hosted runner
  • Cài đặt Ollama và chạy job review của mô hình Gemma
  • Đăng PR summary comment
  • Đăng inline comment cho các dòng thay đổi
  • Làm check thất bại khi phát hiện finding mức độ nghiêm trọng cao

Trong PR thử nghiệm, tôi cố tình đưa vào hàm unsafeDivide, và GemmaCI đã phát hiện “thiếu kiểm tra phép chia cho 0” là một high severity finding rồi để lại inline comment.

Nó vẫn chưa đạt đến mức thay thế hoàn toàn CodeRabbit theo kiểu 1:1. Không nên kỳ vọng chất lượng hay các tính năng tích hợp tương đương những SaaS reviewer dùng mô hình lớn.

Tuy vậy, mục tiêu thì rất rõ ràng.

“Ngay cả với những repo nhỏ mà việc trả tiền còn khó cân nhắc, vẫn có thể gắn AI PR review miễn phí chỉ với một file workflow.”

GitHub:
https://github.com/bssm-oss/gemmaci

Rất hoan nghênh feedback, issue và PR.

Chưa có bình luận nào.

Chưa có bình luận nào.