AI News HubLIVE
站内改写2 分鐘閱讀

Slopper GitHub Action:抵禦開源專案中的AI垃圾貢獻

Slopper是一個GitHub Action,利用AI分析拉取請求,檢測並標記由AI生成的低質量、無價值的貢獻,幫助維護者識別偽裝成合法程式碼的垃圾提交。支援多種AI提供商,可自定義配置,自動執行關閉或批准等操作。

來源Hacker News AI作者: malvads

開源專案正面臨AI生成的"垃圾貢獻"(slop)的衝擊。這些大量產生的拉取請求看似合理,卻引入細微的Bug、不必要的複雜度和零價值變更,甚至能透過CI測試並擁有精美的描述。為了應對這一挑戰,開發者推出了Slopper——一款GitHub Action,旨在利用AI技術保護程式碼庫的完整性。

Slopper的工作機制是對每一個拉取請求進行全方位分析,涵蓋作者聲譽、提交模式、程式碼質量和行為訊號,從而揭示人類審閱者容易忽略的問題。它不會阻塞合併,而是透過標籤和評論提供資訊,最終決定權仍在維護者手中。

該工具支援五種AI提供商:OpenAI(預設使用gpt-4o)、Anthropic(claude-sonnet-4-6)、Vertex AI、Groq和Gemini,使用者可根據已有API金鑰靈活選擇。此外,還可透過模型引數覆蓋預設模型。

Slopper的檢測模式源自真實事件,包括curl、Linux核心、Godot、Jazzband和Node.js等專案的維護者報告。質量訊號涵蓋假修復(修復不存在的Bug)、格式噪音(語法正確但邏輯錯誤)、樣板膨脹(通用提交資訊與差異不匹配)、不必要的重構(增加複雜度而無收益)、外觀偽裝(空白符和格式修改)以及重複功能等。作者訊號則包括地毯式轟炸(在數天內向大量無關倉庫提交PR)、信譽積累、新賬戶爆發、假日時間選擇、無參與度和描述不匹配等。安全方面,Slopper監控混淆程式碼、動態執行、硬編碼金鑰、可疑URL、CI篡改和依賴劫持。

配置方面,使用者可在倉庫根目錄建立.slopper檔案(支援YAML或純文本),設定白名單(vouched)、自動關閉/批准閾值、風險等級邊界、忽略路徑以及PR衛生規則(如要求描述或關聯Issue)。當PR被開啟時,Slopper先載入配置,檢查作者是否在白名單中(若是則跳過分析),否則收集資料、呼叫AI提供商、計算標籤、釋出評論,並執行自動操作。

標籤由分析結果確定性計算得出,包括風險等級(low/medium/high/critical)、批准、白名單、首次貢獻者、CI修改、依賴修改、安全審查等。當AI分析失敗時會應用slopper/analysis-failed標籤。

維護者可透過在PR上評論/slopper vouch將信任的貢獻者永久加入白名單,Slopper會驗證評論者許可權並更新.slopper檔案。對於高信任度的作者,Slopper還會主動建議新增白名單。

PR評論包含風險分數、置信度、發現概要(可摺疊區域)以及審查建議列表。評論在重新執行時更新,不會重複。

Slopper提供四個輸出:risk-score(0-10)、risk-level、confidence和labels,可用於後續工作流步驟。該專案採用MIT許可證,使用TypeScript開發,可在GitHub Marketplace上獲取。