1 ポイント 投稿者 heodongun 6 일 전 | まだコメントはありません。 | WhatsAppで共有

GemmaCIというオープンソースプロジェクトを作りました。

一言で説明すると、CodeRabbitのようなAI PRレビュアーをGitHub Actions内で無料で動かそうというプロジェクトです。

CodeRabbitは優れたツールですが、private repoで本格的にPR reviewを使うには有料プランが必要です。公式ドキュメントによると、FreeプランはPR summarizationが中心で、PR reviewはPro以上で提供されます。Proは年払いで $24/mo/user、月払いで $30/mo/user です。

そこで、「小さなチーム、学生プロジェクト、個人のサイドプロジェクトでCodeRabbitの中核体験を無料で代替できないだろうか?」という発想で作りました。

GemmaCIはGitHub ActionsでOllama + Gemmaモデルを実行し、PR diffをレビューします。

現在利用できる機能は次のとおりです。

  • PR summary comment の生成
  • 変更された行への inline review comment の記述
  • high / critical finding を発見した際にCI checkを失敗させる
  • evidence、confidence、recommendation に基づくレビュー出力
  • Ollama / model cache による cold start コスト削減
  • workflowファイルを1つ追加するだけで利用可能
  • PR diff、model output、artifact をすべて untrusted data とみなすセキュリティモデル

重視したのは「無料」と「セキュリティ」です。

単にLLMにdiffを投げてコメントを書かせるのではなく、model output を schema 検証し、実際に changed line に根拠のある finding だけを投稿します。

また、デフォルトでは pull_request_target を使いません。PR作成者が変更した workflow や script が write 権限で実行されるリスクを避けるためです。publish 段階でも trusted base branch code だけを実行し、artifact と model output は再度検証します。

実際にGitHub Actions runnerでsmoke PRを開いて検証しました。

検証済みの項目:

  • GitHub-hosted runner での workflow 実行
  • Ollama のインストールと Gemma モデルによる review job の実行
  • PR summary comment の投稿
  • 変更行への inline comment の投稿
  • high severity finding 検出時の check failure

テストPRでは意図的に unsafeDivide 関数を入れ、GemmaCIが「ゼロ除算の検証漏れ」を high severity finding として検出し、inline comment を残しました。

まだCodeRabbitを1:1で完全に代替するレベルではありません。大規模モデルを使うSaaSレビュアー並みの品質や統合機能を期待すべきではありません。

その代わり、目標は明確です。

「お金を払うには微妙な小さなrepoでも、workflowファイル1つで無料のAI PRレビューを導入できるようにしよう。」

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

フィードバック、issue、PR歓迎です。

まだコメントはありません。

まだコメントはありません。