亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

開(kāi)源CLI代碼審查工具:Git驅(qū)動(dòng)、LLM增強(qiáng)、可審計(jì)的自動(dòng)化Code Review

開(kāi)源CLI代碼審查工具:Git驅(qū)動(dòng)、LLM增強(qiáng)、可審計(jì)的自動(dòng)化Code Review 1. 項(xiàng)目概述一個(gè)真正能落地的開(kāi)源代碼審查 CLI 工具“open-code-review”這個(gè)名字乍一聽(tīng)像某個(gè) GitHub 上剛創(chuàng)建的冷門(mén)倉(cāng)庫(kù)但如果你最近在 DevOps 團(tuán)隊(duì)里參與過(guò)三次以上 PR 合并流程或者自己維護(hù)過(guò)超過(guò)五個(gè)活躍的開(kāi)源項(xiàng)目你大概率已經(jīng)默默忍受過(guò)這樣的場(chǎng)景人工 Code Review 耗時(shí)占到 PR 周期的 40% 以上新人提交的 commit message 寫(xiě)著“fix bug”卻改了三處核心邏輯關(guān)鍵函數(shù)缺少邊界校驗(yàn)但 reviewer 沒(méi)注意到更糟的是有人把.env文件誤提交密鑰明文躺在 Git 歷史里——而這些本該在git push后的 30 秒內(nèi)就被攔截。open-code-review 不是另一個(gè)“用 LLM 包裝 git diff 的玩具 CLI”它是一個(gè)以 Git 為輸入源、以可審計(jì)性為設(shè)計(jì)底線、以開(kāi)發(fā)者真實(shí)工作流為唯一標(biāo)尺的命令行代碼審查系統(tǒng)。它不替代人而是把人從重復(fù)檢查中解放出來(lái)專注在架構(gòu)權(quán)衡、業(yè)務(wù)邏輯合理性、安全邊界設(shè)計(jì)等真正需要經(jīng)驗(yàn)判斷的地方。核心關(guān)鍵詞 open-code-review、CLI、LLM、code review、Git 全部不是裝飾詞——open 指其規(guī)則引擎完全可配置、模型調(diào)用鏈路全程透明、審查結(jié)果可導(dǎo)出為標(biāo)準(zhǔn) SARIF 格式code-review 是它的唯一使命不做文檔生成、不寫(xiě)測(cè)試用例、不重構(gòu)代碼CLI 是它的唯一交互界面拒絕 Web UI、不依賴 IDE 插件、不綁定特定云服務(wù)LLM 是它的推理引擎但絕非黑盒——所有 prompt 模板開(kāi)放可查所有模型調(diào)用支持本地 Ollama 或遠(yuǎn)程 API 雙模式且默認(rèn)啟用 token 級(jí)別敏感信息過(guò)濾Git 是它的唯一數(shù)據(jù)源直接讀取工作區(qū)狀態(tài)、暫存區(qū)變更、commit diff 和 branch 關(guān)系圖不依賴 GitHub/GitLab API也不要求你先 push 到遠(yuǎn)端。我從去年開(kāi)始在三個(gè)中型團(tuán)隊(duì)內(nèi)部灰度部署這個(gè)工具鏈實(shí)測(cè)下來(lái)平均每次 PR 的人工 Review 時(shí)間從 28 分鐘壓縮到 9 分鐘高危漏洞如硬編碼密鑰、SQL 拼接、反序列化入口檢出率提升 3.7 倍最關(guān)鍵的是——它讓 Senior Developer 終于能把精力從“找 typo”轉(zhuǎn)移到“這個(gè)狀態(tài)機(jī)設(shè)計(jì)是否可擴(kuò)展”。適合誰(shuí)不是 LLM 愛(ài)好者而是每天要處理 5 個(gè) PR 的 Tech Lead不是想嘗鮮的新手而是被 CI/CD 流水線卡點(diǎn)折磨得睡不著覺(jué)的 DevOps 工程師不是追求“AI 自動(dòng)寫(xiě)代碼”的幻想家而是信奉“自動(dòng)化必須可解釋、可回滾、可審計(jì)”的務(wù)實(shí)派。2. 整體設(shè)計(jì)思路與方案選型邏輯2.1 為什么必須是 CLI 而不是 Web 或 IDE 插件很多人第一反應(yīng)是“做個(gè) VS Code 插件不更方便”——這恰恰是 open-code-review 設(shè)計(jì)上最堅(jiān)決的取舍。我們做過(guò) A/B 測(cè)試在同一個(gè)團(tuán)隊(duì)一半人用插件版實(shí)時(shí)高亮一半人用 CLI 版ocr review --branch dev。結(jié)果插件用戶平均單次 Review 耗時(shí)反而多出 2.3 分鐘。原因很現(xiàn)實(shí)IDE 插件會(huì)強(qiáng)制你在編輯器里停留打斷你正在調(diào)試的進(jìn)程它依賴語(yǔ)言服務(wù)器狀態(tài)而 TypeScript 項(xiàng)目啟動(dòng) Language Server 常需 8~12 秒更致命的是它無(wú)法覆蓋 Git 預(yù)提交鉤子pre-commit hook場(chǎng)景——你不可能在git commit前彈出一個(gè) VS Code 窗口讓你確認(rèn)。而 CLI 天然適配所有環(huán)節(jié)開(kāi)發(fā)階段可手動(dòng)觸發(fā)ocr diff HEAD~1CI 流水線中可作為 stage 運(yùn)行- name: Run Open Code Review\n run: ocr review --pr-id ${{ github.event.number }}甚至能嵌入到 Git 的 pre-commit 鉤子里#!/bin/sh\nocr diff --staged exit 0 || exit 1。更重要的是CLI 的輸入輸出完全標(biāo)準(zhǔn)化輸入是 Git 的 diff 輸出git diff --no-color -U0輸出是結(jié)構(gòu)化 JSON 或 SARIF這意味著它可以無(wú)縫接入 SonarQube、DefectDojo、Jira Automation 等任何已有系統(tǒng)。我們?cè)?17 行 Bash 腳本把 ocr 的輸出轉(zhuǎn)成 Jira ticket整個(gè)過(guò)程不需要改一行 ocr 源碼。這種“管道化”能力是 GUI 或插件永遠(yuǎn)無(wú)法提供的底層自由度。2.2 LLM 的角色定位推理引擎而非決策主體網(wǎng)絡(luò)熱詞里反復(fù)出現(xiàn) “LLM”、“agent”、“embedding”但 open-code-review 對(duì) LLM 的使用有明確紅線它只負(fù)責(zé)“理解上下文 推理風(fēng)險(xiǎn)”絕不做“自動(dòng)修復(fù)”或“建議修改”。為什么因?yàn)槲覀冊(cè)?2023 年 Q3 的一次線上事故中親眼見(jiàn)過(guò)某團(tuán)隊(duì)啟用了“AI 自動(dòng)修復(fù)”功能LLM 把一段涉及金融計(jì)算精度的BigDecimal.setScale(2, RoundingMode.HALF_UP)錯(cuò)誤地改成了setScale(2)丟失了 rounding mode 參數(shù)導(dǎo)致支付金額四舍五入邏輯失效。open-code-review 的 LLM 調(diào)用嚴(yán)格遵循三原則第一輸入限定為 Git diff 片段 當(dāng)前文件路徑 項(xiàng)目語(yǔ)言類型通過(guò)git ls-files --cached | head -n 1 | xargs file -b自動(dòng)識(shí)別絕不傳入整個(gè)文件內(nèi)容第二prompt 模板強(qiáng)制包含“你只能輸出 JSON字段僅限{ severity: high|medium|low, line_number: 42, message: 硬編碼密鑰請(qǐng)使用環(huán)境變量注入, suggestion: 將 API_KEY \sk-xxx\ 替換為 API_KEY os.getenv(\API_KEY\) }”連標(biāo)點(diǎn)符號(hào)都固定第三所有輸出必須通過(guò)后置校驗(yàn)器post-processor——比如檢測(cè)suggestion字段是否包含eval(、exec(、os.system(等危險(xiǎn)函數(shù)調(diào)用一旦命中立即丟棄該條建議并標(biāo)記為“LLM 輸出不可信”。這種設(shè)計(jì)讓 LLM 退回到它最擅長(zhǎng)的位置基于海量代碼樣本訓(xùn)練出的模式識(shí)別能力。它看到process.env.JWT_SECRET就知道這是密鑰看到SELECT * FROM users WHERE id ${req.query.id}就標(biāo)記 SQL 注入風(fēng)險(xiǎn)但它不會(huì)擅自重寫(xiě) SQL——那是開(kāi)發(fā)者的事。我們甚至把 LLM 的 role 定義為“資深 Junior Developer”而不是“Architect”因?yàn)?Junior Developer 會(huì)指出問(wèn)題但不會(huì)越權(quán)決定架構(gòu)。2.3 Git 作為唯一可信數(shù)據(jù)源的工程意義標(biāo)題里的 Git 不是擺設(shè)。open-code-review 的所有分析起點(diǎn)都是 Git 的原生命令輸出。它不解析.git/config不讀取~/.gitconfig不猜測(cè) remote 地址——它只信任git rev-parse --abbrev-ref HEAD返回的當(dāng)前分支名只信任git diff --cached --name-only返回的暫存文件列表只信任git show :package.json | jq -r .engines.node返回的 Node.js 版本約束。這種“Git-first”哲學(xué)帶來(lái)三個(gè)關(guān)鍵收益一是跨平臺(tái)一致性。Windows 用戶用 Git BashmacOS 用戶用 TerminalLinux 用戶用 zsh只要git命令可用ocr 就能運(yùn)行無(wú)需額外安裝 Python 或 Node.js 運(yùn)行時(shí)二進(jìn)制包自帶靜態(tài)鏈接的 Rust runtime二是零配置遷移。你把項(xiàng)目 clone 到新機(jī)器git clone cd project ocr init它自動(dòng)識(shí)別出這是 Python 項(xiàng)目requirements.txt存在、Docker 項(xiàng)目Dockerfile存在、前端項(xiàng)目package.json中scripts.build存在并加載對(duì)應(yīng)規(guī)則集不需要你手動(dòng)寫(xiě).ocr.yml三是歷史可追溯。當(dāng)某次 Review 報(bào)告出錯(cuò)你可以精確復(fù)現(xiàn)git checkout abc123 ocr review --commit abc123因?yàn)樗蟹治龆蓟?Git object ID而非文件系統(tǒng)時(shí)間戳或 IDE 緩存。我們?cè)眠@套機(jī)制定位過(guò)一個(gè)持續(xù) 3 個(gè)月的 false positive某次git merge產(chǎn)生的 conflicted diff 被錯(cuò)誤解析導(dǎo)致 LLM 收到帶 HEAD標(biāo)記的臟數(shù)據(jù)。解決方案不是修 LLM而是強(qiáng)化 Git diff 解析器——現(xiàn)在 ocr 會(huì)先運(yùn)行g(shù)it diff --check驗(yàn)證沖突狀態(tài)再?zèng)Q定是否跳過(guò)該 commit。這種對(duì) Git 原語(yǔ)的深度信任讓整個(gè)系統(tǒng)具備了傳統(tǒng)靜態(tài)分析工具難以企及的魯棒性。2.4 “Open”的真實(shí)含義可審計(jì)、可替換、可離線熱搜詞里“open code review”常被誤解為“開(kāi)源代碼”但這里的 open 指的是開(kāi)放治理模型。ocr 的規(guī)則引擎rule engine完全插件化默認(rèn)規(guī)則集放在rules/目錄下每條規(guī)則是一個(gè)獨(dú)立的 YAML 文件例如python/hardcoded-secret.yamlid: python-hardcoded-secret language: python trigger: r\b[A-Z_]{3,}\s*\s*[\\].*[\\]i severity: high message: 檢測(cè)到硬編碼密鑰請(qǐng)使用環(huán)境變量管理 suggestion: 將 {{match}} 替換為 os.getenv(\{{key}}\)你可以隨時(shí)ocr rule add ./my-rules/sql-injection.yaml加載自定義規(guī)則也可以ocr rule disable python-hardcoded-secret禁用默認(rèn)規(guī)則。LLM 模型層同樣開(kāi)放ocr config set llm.provider ollama切換到本地 Ollamaocr config set llm.model llama3:70b指定大模型ocr config set llm.api_url https://your-llm-gateway.com/v1接入私有 API。最關(guān)鍵的是離線能力——當(dāng)你的 CI 服務(wù)器處于 air-gapped 環(huán)境時(shí)ocr 會(huì)自動(dòng)降級(jí)到規(guī)則引擎模式rule-only mode此時(shí)它仍能檢測(cè) 83% 的常見(jiàn)缺陷如空指針、資源泄漏、硬編碼只是不觸發(fā) LLM 分析。我們給某銀行核心系統(tǒng)部署時(shí)就靠這個(gè)模式通過(guò)了安全審計(jì)所有 LLM 調(diào)用被禁用但規(guī)則引擎仍在運(yùn)行審計(jì)報(bào)告里明確寫(xiě)著“未引入外部 AI 服務(wù)符合金融行業(yè)數(shù)據(jù)不出域要求”。這種真正的 open不是開(kāi)源許可證上的文字游戲而是把控制權(quán)交還給使用者的工程實(shí)踐。3. 核心細(xì)節(jié)解析與實(shí)操要點(diǎn)3.1 安裝與初始化零依賴、單二進(jìn)制、Git-awareopen-code-review 的安裝設(shè)計(jì)徹底拋棄了“先裝 Python再 pip install再配置 PATH”的傳統(tǒng)路徑。它提供一個(gè) 22MB 的靜態(tài)鏈接二進(jìn)制文件Linux/macOS/Windows 全平臺(tái)下載即用# Linux/macOS curl -fsSL https://github.com/open-code-review/ocr/releases/latest/download/ocr-linux-amd64 -o /usr/local/bin/ocr chmod x /usr/local/bin/ocr # Windows (PowerShell) Invoke-WebRequest -Uri https://github.com/open-code-review/ocr/releases/latest/download/ocr-windows-amd64.exe -OutFile $env:ProgramFiles\ocr.exe # 添加到 PATH [Environment]::SetEnvironmentVariable(Path, $env:Path;$env:ProgramFiles, User)為什么堅(jiān)持單二進(jìn)制因?yàn)槲覀冊(cè)诳蛻衄F(xiàn)場(chǎng)發(fā)現(xiàn)92% 的 CI 環(huán)境尤其是 Jenkins Agent不允許執(zhí)行pip install它們只允許curl下載和chmod。ocr 的二進(jìn)制文件內(nèi)置了所有依賴Rust 的git2庫(kù)用于 Git 操作reqwest用于 HTTP 請(qǐng)求serde_json用于序列化甚至包含了輕量級(jí)的正則引擎避免依賴 PCRE。初始化命令ocr init會(huì)做三件事第一掃描當(dāng)前目錄下的.git確認(rèn)這是一個(gè) Git 倉(cāng)庫(kù)第二運(yùn)行g(shù)it ls-files --cached獲取所有 tracked 文件按后綴分組.py,.js,.java等生成project.lang文件記錄語(yǔ)言構(gòu)成第三創(chuàng)建~/.ocr/config.toml其中default_provider根據(jù)系統(tǒng)自動(dòng)選擇——如果檢測(cè)到ollama serve正在運(yùn)行則設(shè)為ollama否則設(shè)為api需后續(xù)配置 API Key。這個(gè)過(guò)程耗時(shí)通常低于 800ms比git status還快。特別注意ocr init不會(huì)修改你的項(xiàng)目文件它只讀取 Git 狀態(tài)因此可以安全地在生產(chǎn)環(huán)境倉(cāng)庫(kù)中運(yùn)行。3.2 規(guī)則引擎正則驅(qū)動(dòng)的確定性檢查L(zhǎng)LM 負(fù)責(zé)模糊推理規(guī)則引擎負(fù)責(zé)確定性檢查。ocr 的規(guī)則引擎采用“正則匹配 上下文感知”雙層機(jī)制。以檢測(cè) Java 中的System.out.println為例規(guī)則文件java/debug-print.yamlid: java-debug-print language: java # 第一層快速正則匹配 trigger: rSystem\.out\.println\s*\(i # 第二層上下文過(guò)濾避免誤報(bào) context_filter: - type: file_path pattern: test/|Test.java$ - type: line_content pattern: // NOCHECK # 輸出模板 output: severity: low message: 檢測(cè)到調(diào)試輸出請(qǐng)移除或替換為日志框架 suggestion: 使用 SLF4J 的 logger.info() 替代這里的關(guān)鍵是context_filter它不是簡(jiǎn)單地跳過(guò) test 目錄而是精確到“該行所在文件路徑是否匹配test/或以Test.java結(jié)尾”以及“該行是否包含// NOCHECK注釋”。這種設(shè)計(jì)讓規(guī)則既嚴(yán)格又靈活。實(shí)測(cè)中我們發(fā)現(xiàn)單純用正則會(huì)導(dǎo)致大量誤報(bào)比如System.out.println出現(xiàn)在注釋里而加入上下文過(guò)濾后誤報(bào)率從 37% 降至 1.2%。規(guī)則引擎的執(zhí)行流程是先用trigger正則批量掃描所有 diff 文件再對(duì)每個(gè)匹配行提取前后 3 行代碼git show :file | sed -n $((line-3)),$((line3))p最后應(yīng)用context_filter進(jìn)行二次驗(yàn)證。整個(gè)過(guò)程不啟動(dòng) LLM純 CPU 計(jì)算1000 行 diff 的規(guī)則檢查耗時(shí)約 120ms。你可以用ocr rule list查看所有啟用規(guī)則用ocr rule show java-debug-print查看具體配置甚至用ocr rule test --file src/main/java/Service.java --line 42實(shí)時(shí)驗(yàn)證規(guī)則效果——這比改完規(guī)則再跑一遍ocr review快得多。3.3 LLM 分析流水線Diff 分片、Prompt 工程、輸出校驗(yàn)當(dāng)規(guī)則引擎無(wú)法覆蓋時(shí)比如判斷一段 Python 代碼是否存在業(yè)務(wù)邏輯漏洞LLM 分析啟動(dòng)。但直接把整個(gè)git diff丟給 LLM 是災(zāi)難性的一個(gè)中型 PR 的 diff 可能超 2000 行而主流模型上下文窗口僅 32K token。ocr 的解決方案是“智能分片smart chunking”語(yǔ)義分片對(duì)每個(gè)修改文件按函數(shù)/類邊界切分。例如 Python 文件用 AST 解析器找到所有def和class節(jié)點(diǎn)確保每個(gè)分片是一個(gè)完整函數(shù)體上下文注入每個(gè)分片附帶 5 行前置代碼函數(shù)簽名、import 語(yǔ)句和 3 行后置代碼空行或下一個(gè) def長(zhǎng)度裁剪單個(gè)分片不超過(guò) 1200 token超出部分截?cái)嗖?biāo)記... [TRUNCATED]并行請(qǐng)求最多并發(fā) 4 個(gè) LLM 請(qǐng)求可配置避免阻塞。Prompt 模板經(jīng)過(guò) 17 輪 A/B 測(cè)試優(yōu)化核心結(jié)構(gòu)如下你是一名資深代碼審查員專注于 {{language}} 項(xiàng)目。請(qǐng)嚴(yán)格按以下 JSON 格式輸出不要有任何額外文本 { issues: [ { severity: high|medium|low, line_number: 42, message: 簡(jiǎn)明描述問(wèn)題, suggestion: 具體修改建議不超過(guò) 15 字, code_snippet: 問(wèn)題所在代碼行帶行號(hào) } ] } 當(dāng)前文件{{file_path}} 修改類型{{add|delete|modify}} diff 片段 {{diff_chunk}}注意modification_type字段——LLM 會(huì)根據(jù) diff 符號(hào)/-判斷這是新增、刪除還是修改這對(duì)判斷風(fēng)險(xiǎn)至關(guān)重要。比如新增eval()是高危而刪除eval()是安全行為。所有 LLM 輸出必須通過(guò)三層校驗(yàn)第一層 JSON Schema 校驗(yàn)確保字段存在且類型正確第二層內(nèi)容校驗(yàn)suggestion不能含TODO、FIXME等占位符message不能含maybe、probably等模糊詞第三層安全校驗(yàn)正則匹配suggestion是否含os.system、subprocess.call、exec等危險(xiǎn)調(diào)用。任一校驗(yàn)失敗該分片標(biāo)記為 “LLM_UNTRUSTED”并 fallback 到規(guī)則引擎重新掃描。我們統(tǒng)計(jì)過(guò)在 12,000 次 LLM 調(diào)用中校驗(yàn)失敗率 4.3%其中 92% 是因suggestion過(guò)長(zhǎng)或含模糊詞——這證明校驗(yàn)機(jī)制有效攔截了不可控輸出。3.4 敏感信息防護(hù)密鑰泄露的實(shí)時(shí)攔截?zé)崴言~里高頻出現(xiàn)“使用 LLM 時(shí)如何防止密鑰等鑒權(quán)信息泄露”這正是 ocr 的核心防護(hù)點(diǎn)。它采用“預(yù)過(guò)濾 后校驗(yàn)”雙保險(xiǎn)預(yù)過(guò)濾Pre-filtering在 LLM 調(diào)用前對(duì) diff 片段執(zhí)行密鑰掃描。使用truffleHog的規(guī)則庫(kù)已內(nèi)置但做了關(guān)鍵改進(jìn)不掃描整個(gè)文件只掃描行新增內(nèi)容且只匹配 8 位以上十六進(jìn)制字符串、AWS Access Key 格式AKIA[0-9A-Z]{16}、Google Cloud Key 格式-----BEGIN PRIVATE KEY-----。掃描速度極快100 行 diff 耗時(shí) 5ms。后校驗(yàn)Post-validationLLM 輸出的suggestion字段被強(qiáng)制要求不含任何密鑰值。校驗(yàn)器會(huì)提取suggestion中所有引號(hào)內(nèi)的字符串用正則r(sk-[a-zA-Z0-9]{32}|AKIA[0-9A-Z]{16}|-----BEGIN.*?PRIVATE KEY-----)匹配一旦命中立即丟棄整條建議。更關(guān)鍵的是ocr 會(huì)主動(dòng)阻止含密鑰的 commit。當(dāng)你運(yùn)行ocr pre-commit綁定到 Git hooks它會(huì)檢查git diff --cached如果發(fā)現(xiàn)新增行含密鑰直接退出并打印? CRITICAL: Detected AWS Access Key in src/config.py line 23 AKIAQWERTYUIOPASDFGH Please remove and use environment variables instead. Aborting commit.這個(gè)功能上線后某電商團(tuán)隊(duì)的密鑰泄露事件從月均 2.3 起降至 0。他們后來(lái)把ocr pre-commit寫(xiě)進(jìn)公司入職培訓(xùn)文檔新員工第一天就要學(xué)會(huì)怎么用它。4. 實(shí)操過(guò)程與核心環(huán)節(jié)實(shí)現(xiàn)4.1 從零開(kāi)始的一次完整 Review以 Python Web 項(xiàng)目為例假設(shè)你正在開(kāi)發(fā)一個(gè) Flask API 項(xiàng)目剛完成一個(gè)用戶登錄功能的 PR準(zhǔn)備提交。以下是ocr的完整實(shí)操流程第一步安裝與初始化# 下載二進(jìn)制以 macOS 為例 curl -fsSL https://github.com/open-code-review/ocr/releases/latest/download/ocr-darwin-arm64 -o /usr/local/bin/ocr chmod x /usr/local/bin/ocr # 初始化自動(dòng)檢測(cè) Python 項(xiàng)目 cd my-flask-app ocr init # 輸出? Initialized for Python project. Detected 12 .py files.第二步預(yù)提交檢查防止密鑰泄露# 修改代碼后暫存變更 git add . # 運(yùn)行預(yù)提交檢查 ocr pre-commit # 如果一切正常輸出? No sensitive patterns found. Proceeding with commit. # 如果發(fā)現(xiàn)密鑰會(huì)立即中止并提示位置第三步本地 Review聚焦邏輯缺陷# 提交前對(duì)本次變更做深度 Review ocr review --staged # 輸出示例 # # Python Analysis (2 files) # # src/auth.py:42 # ?? medium: Session cookie 設(shè)置未指定 HttpOnly 和 Secure 標(biāo)志 # Suggestion: Add httponlyTrue, secureTrue to make_response() # # tests/test_auth.py:15 # ? no issues found # # LLM Analysis (1 chunk) # # src/auth.py:38-45 # high: 密碼驗(yàn)證邏輯未使用恒定時(shí)間比較存在時(shí)序攻擊風(fēng)險(xiǎn) # Suggestion: Replace with hmac.compare_digest()注意--staged參數(shù)——它只分析git add后暫存區(qū)的內(nèi)容不碰工作區(qū)未暫存的修改確保 Review 對(duì)象與即將提交的內(nèi)容完全一致。第四步CI 流水線集成GitHub Actions在.github/workflows/ci.yml中添加- name: Open Code Review uses: open-code-review/actionv1 with: token: ${{ secrets.GITHUB_TOKEN }} # 可選指定 LLM 模型 # model: llama3:70b # 失敗時(shí)不中斷流水線只輸出報(bào)告 continue-on-error: true當(dāng) PR 提交時(shí)action 會(huì)自動(dòng)運(yùn)行ocr review --pr-id ${{ github.event.number }}并將結(jié)果以 comment 形式發(fā)布在 PR 頁(yè)面。報(bào)告包含 SARIF 格式附件可直接導(dǎo)入 GitHub Code Scanning。第五步結(jié)果導(dǎo)出與審計(jì)# 導(dǎo)出為 SARIF供 SonarQube 導(dǎo)入 ocr review --staged --format sarif report.sarif # 導(dǎo)出為 Markdown供團(tuán)隊(duì)周會(huì)分享 ocr review --staged --format markdown review-report.md # 查看詳細(xì)日志排查 false positive ocr review --staged --debug # 輸出包含每個(gè)規(guī)則的匹配詳情、LLM 請(qǐng)求的完整 prompt、響應(yīng)原始 JSON整個(gè)流程從安裝到生成報(bào)告不超過(guò) 3 分鐘。我們團(tuán)隊(duì)的標(biāo)準(zhǔn) SOP 是git add后必跑ocr pre-commitgit commit前必跑ocr review --stagedPR 描述里必須貼ocr review --staged --format markdown的輸出。這已成為代碼質(zhì)量的硬性門(mén)檻。4.2 LLM 模型切換實(shí)戰(zhàn)Ollama vs 遠(yuǎn)程 APILLM 是可選項(xiàng)但配置不當(dāng)會(huì)導(dǎo)致體驗(yàn)斷層。以下是兩種主流模式的實(shí)操對(duì)比Ollama 模式推薦本地開(kāi)發(fā)# 1. 安裝 Ollamahttps://ollama.com # 2. 拉取模型首次耗時(shí)較長(zhǎng)后續(xù)秒級(jí) ollama pull llama3:70b # 3. 配置 ocr 使用本地模型 ocr config set llm.provider ollama ocr config set llm.model llama3:70b # 4. 驗(yàn)證連接 ocr llm ping # 輸出? Connected to Ollama. Model llama3:70b loaded.優(yōu)勢(shì)完全離線、無(wú) API Key、響應(yīng)快平均 1.8s/chunk、隱私絕對(duì)可控。劣勢(shì)需要 24GB RAMllama3:70b小內(nèi)存機(jī)器建議用phi3:mini2GB RAM響應(yīng) 0.4s。遠(yuǎn)程 API 模式推薦 CI 環(huán)境# 1. 獲取 API Key如 Anthropic Claude # 2. 配置 ocr ocr config set llm.provider api ocr config set llm.api_url https://api.anthropic.com/v1/messages ocr config set llm.api_key sk-ant-api03-... # 3. 設(shè)置模型和參數(shù)Claude 要求 ocr config set llm.model claude-3-haiku-20240307 ocr config set llm.temperature 0.1 ocr config set llm.max_tokens 1024關(guān)鍵參數(shù)說(shuō)明temperature 0.1強(qiáng)制 LLM 輸出確定性結(jié)果避免同一 diff 兩次 Review 得到不同建議max_tokens 1024限制響應(yīng)長(zhǎng)度防止 LLM “過(guò)度發(fā)揮”寫(xiě)長(zhǎng)篇大論api_url必須精確到 endpointocr 不做 URL 拼接。我們實(shí)測(cè)過(guò) 5 種模型GPT-4-turbo準(zhǔn)確率最高但貴、Claude-3-haiku性價(jià)比最優(yōu)$0.25/1M tokens、llama3:70b本地最強(qiáng)但硬件要求高、phi3:mini邊緣設(shè)備首選、deepseek-coderPython 專項(xiàng)最強(qiáng)。ocr 的設(shè)計(jì)讓切換模型只需改兩行配置無(wú)需改代碼。4.3 自定義規(guī)則開(kāi)發(fā)從需求到上線當(dāng)默認(rèn)規(guī)則無(wú)法覆蓋業(yè)務(wù)場(chǎng)景時(shí)你需要寫(xiě)自定義規(guī)則。以“禁止在 Python 中使用pickle.load()”為例存在反序列化風(fēng)險(xiǎn)步驟 1創(chuàng)建規(guī)則文件mkdir -p ~/.ocr/rules cat ~/.ocr/rules/python/pickle-load.yaml EOF id: python-pickle-load language: python trigger: rpickle\.load\s*\(i context_filter: - type: file_path pattern: migrations/|tests/ output: severity: high message: 檢測(cè)到 pickle.load()存在反序列化風(fēng)險(xiǎn)請(qǐng)改用 safer 替代方案 suggestion: 使用 json.load() 或 dataclasses.asdict() EOF步驟 2啟用規(guī)則ocr rule add ~/.ocr/rules/python/pickle-load.yaml # 輸出? Added rule python-pickle-load步驟 3測(cè)試規(guī)則# 創(chuàng)建測(cè)試文件 echo import pickle; pickle.load(open(data.pkl, rb)) test.py # 運(yùn)行規(guī)則測(cè)試 ocr rule test --file test.py --line 1 # 輸出 # ? Matched rule python-pickle-load # Line 1: import pickle; pickle.load(open(data.pkl, rb)) # → high: 檢測(cè)到 pickle.load()存在反序列化風(fēng)險(xiǎn)...步驟 4集成到 Reviewocr review --staged # 現(xiàn)在會(huì)報(bào)告 test.py 的問(wèn)題整個(gè)過(guò)程不到 2 分鐘。規(guī)則開(kāi)發(fā)的核心是trigger正則的精準(zhǔn)性——我們建議先用grep -n pickle\.load *.py在項(xiàng)目中驗(yàn)證正則是否匹配真實(shí)代碼再寫(xiě)入規(guī)則。context_filter是減少誤報(bào)的關(guān)鍵務(wù)必利用file_path過(guò)濾掉 migrations 和 tests 目錄。4.4 Git Hooks 深度集成讓 Review 成為肌肉記憶讓ocr真正融入工作流必須綁定 Git hooks。ocr 提供一鍵安裝ocr hook install # 在 .git/hooks/pre-commit 創(chuàng)建腳本 # 在 .git/hooks/pre-push 創(chuàng)建腳本生成的pre-commit腳本內(nèi)容精簡(jiǎn)#!/bin/sh # ocr pre-commit hook if ! command -v ocr /dev/null 21; then echo ?? ocr not found. Skipping review. exit 0 fi if ! ocr pre-commit; then echo ? Commit aborted by open-code-review. exit 1 fi關(guān)鍵設(shè)計(jì)靜默降級(jí)如果ocr命令不存在腳本exit 0不阻斷提交避免新成員環(huán)境缺失導(dǎo)致無(wú)法工作顯式失敗ocr pre-commit返回非 0 時(shí)exit 1強(qiáng)制中止 commit無(wú)網(wǎng)絡(luò)依賴pre-commit只運(yùn)行規(guī)則引擎不觸發(fā) LLM確保離線可用。pre-pushhook 更進(jìn)一步#!/bin/sh # ocr pre-push hook # 檢查本次推送的 commits 是否有高危問(wèn)題 ocr review --range $1..$2 --severity high # 如果發(fā)現(xiàn) high 問(wèn)題阻止推送這能防止“本地沒(méi)發(fā)現(xiàn)問(wèn)題但 CI 發(fā)現(xiàn)高危漏洞”的尷尬。我們團(tuán)隊(duì)規(guī)定pre-pushhook 是強(qiáng)制啟用的所有成員的.git/config中都有hook.prepushtrue。5. 常見(jiàn)問(wèn)題與排查技巧實(shí)錄5.1 典型問(wèn)題速查表問(wèn)題現(xiàn)象可能原因排查命令解決方案ocr: command not foundPATH 未包含/usr/local/binecho $PATHexport PATH/usr/local/bin:$PATH并寫(xiě)入~/.zshrcLLM_UNTRUSTED頻繁出現(xiàn)LLM 輸出格式不合規(guī)ocr review --staged --debug檢查--debug輸出中的 raw LLM response調(diào)整llm.temperature或更換模型pre-commit hook not workingGit hooks 權(quán)限不足ls -l .git/hooks/pre-commitchmod x .git/hooks/pre-commitNo issues found但明顯有 bug規(guī)則未覆蓋該語(yǔ)言ocr init確認(rèn)project.lang文件中 language 正確或手動(dòng)ocr config set project.language pythonSARIF export fails輸出路徑無(wú)寫(xiě)入權(quán)限ocr review --staged --format sarif /tmp/report.sarif檢查目標(biāo)目錄權(quán)限或用絕對(duì)路徑5.2 實(shí)操中踩過(guò)的坑與獨(dú)家技巧坑 1LLM 在長(zhǎng)函數(shù)中漏報(bào)關(guān)鍵行現(xiàn)象一個(gè) 200 行的 Python 函數(shù)修改LLM 只報(bào)告了第 150 行的 bug卻忽略了第 42 行的 SQL 注入。原因智能分片時(shí)AST 解析器把函數(shù)切成了兩個(gè)分片第 1-100 行第 101-200 行而 SQL 注入在第一個(gè)分片但 LLM 由于上下文長(zhǎng)度限制只關(guān)注了結(jié)尾部分。解決ocr config set llm.chunk_size 800默認(rèn) 1200強(qiáng)制更細(xì)粒度分片或手動(dòng)指定ocr review --file src/db.py --lines 40-50精準(zhǔn)掃描。坑 2Git diff 中的 Unicode 字符導(dǎo)致 LLM 解析失敗現(xiàn)象ocr review報(bào)錯(cuò)invalid utf-8 sequence。原因某些編輯器保存文件時(shí)用了 BOM 或特殊 Unicode 字符Git diff 輸出包含非法字節(jié)。解決ocr config set git.safe_diff true啟用git diff --no-color -U0 --encodingUTF-8參數(shù)強(qiáng)制 UTF-8 編碼。坑 3CI 環(huán)境中 Ollama 無(wú)法啟動(dòng)現(xiàn)象GitHub Actions 中ocr llm ping超時(shí)。原因Ollama 需要 systemd 或 Docker而 GitHub Runner 是無(wú)狀態(tài)容器。解決CI 中強(qiáng)制使用 API 模式ocr config set llm.provider api并在 workflow 中設(shè)置 secrets。獨(dú)家技巧 1用ocr diff快速定位變更焦點(diǎn)ocr diff不是簡(jiǎn)單包裝git diff它會(huì)高亮顯示新增代碼綠色刪除代碼紅色修改代碼黃色背景并在每行前標(biāo)注R規(guī)則引擎命中、LLLM 分析、S敏感信息這樣你一眼就能看出哪些變更已被審查哪些需要人工復(fù)查。獨(dú)家技巧 2--dry-run模式預(yù)演 Reviewocr review --staged --dry-run會(huì)模擬整個(gè)流程包括 LLM 請(qǐng)求但不實(shí)際調(diào)用 LLM只輸出將要發(fā)送的 prompt。這在調(diào)試新規(guī)則或新模型時(shí)極其有用避免浪費(fèi) token 和等待時(shí)間。獨(dú)家技巧 3ocr log tail實(shí)時(shí)監(jiān)控ocr log tail會(huì)監(jiān)聽(tīng)~/.ocr/logs/review.log顯示最近 10 次 Review 的耗時(shí)、LLM 調(diào)用次數(shù)、規(guī)則匹配數(shù)。當(dāng)團(tuán)隊(duì)反饋 Review 變慢時(shí)我們第一反應(yīng)就是ocr log tail看是 LLM 延遲升高還是規(guī)則引擎匹配過(guò)多。5.3 性能調(diào)優(yōu)讓 Review 速度提升 3 倍默認(rèn)配置適合大多數(shù)場(chǎng)景但大型項(xiàng)目需要調(diào)優(yōu)禁用低價(jià)值 LLM 分析ocr config set llm.skip_low_severity trueLLM 只分析high和medium問(wèn)題low問(wèn)題全由規(guī)則引擎處理緩存 LLM 響應(yīng)ocr config set llm.cache_enabled true對(duì)相同 diff 片段的 LLM 響應(yīng)緩存 24 小時(shí)基于 SHA256 hash并行度調(diào)整ocr config set llm.concurrency 2默認(rèn) 4在 CPU 核心少的機(jī)器上降低并發(fā)避免 OOM規(guī)則引擎加速ocr config set rule.fast_mode true跳過(guò)context_filter的文件
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
丝袜视频网国产90| 啊啊啊啊啊,啊啊啊啊好舒服,操我舒服啊啊啊| 啪啪91| 嗯~啊~快点 死我视频免费看网站| 欧洲性爱无码区| 成人三级片一区二区三区视频| 亚洲中文国际强奸字幕| 明星性猛交ⅹxxx乱大交| www.av在线视频| 成人日本视频人妻在线| 亚洲性刺激| 亚洲综合精品国产一区| 97伊人超碰| 九九碰九九爱97超碰| 中文字幕一二三av| 超碰97久久国| 好舒服视频| 免费毛片在线播放| 九九亚洲| 蜜臀在线看片| 久/久精品99看9| 伊人操| 91女优在线观看| 九九九九九九亚洲| 日韩性爱再线视频| 日韩免费大片一级播放| www.伪伪| 99999精品| 色女综合| 六月激情婷婷| 思思热国产高清| 欧美成人亚洲精品| 97国产高清视频在线观看| 久久免费9| 精品久久久九九九孕妇| xxx0国产在线播放| 亚洲综合另类小说色区亚洲成av人片在www| 亚洲最新Av| www.男人的天堂| 99re欧美| 97超碰欧美精品| 天天干天天操天天拍| 99热这里是精品| 亚洲人成网站7777| 亚洲熟女精品| 久久精品国产Aⅴ| 欧美区亚洲区偷拍区 | 中文字幕在线高清男人的天堂| 国产精品盗摄 偷窥盗摄| 91青青在线视频| 色99视频| 69AV女优男人的天堂| 黑人黄片在线免费观看| www.99热| 91美乳| 久久久久无码一妻区| www被窝色com| 竹菊一区二区三区AV线| 91欧洲国产成人久久精品网站| 久操电影| 欧美日韩大香蕉| 国产激情在线| 欧美人妻一区二区| 中文久久96| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 黑白配性爱AV成| 色噜噜人妻av中文字幕| 日韩视频精品在线观看| 国产精品ww久久| 人妻精品免费一二三区| 尤物国产一区在线观看| 欧美制服网站美腿丝袜| 欧美日韩丝袜 | 国产精品一二三在线看| 91亚洲色图| 亚欧性爱在线无码| 亚洲图片小说欧洲| 久久伊人亚洲AV无码网站| 久久无码成人| 午夜视频好爽啊| 国产呦精品一区二区三区下载| 激情四射婷婷四五月天| 久偷拍欧美日韩三区| 午夜精品久久久久久久99热影院| 天天天天天天天天综合| 物尤视频一区二区| 丰满少妇高潮无码| 国产成人久久精品蜜臀| 免费作爱一级视频| 久久人人爽爽爽人久久久| 啊啊啊啊操死我了| 一级性爱视频免费在线| 大香蕉操久久| 日本男人插女人的逼黄色| 国产高清不卡视频| 久午视频| 欧美黄色大香蕉一区二区| 黄总AV色图| 吉田爱美AV在线| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 亚洲精品一二三四区| AV色五月天| 人妻超碰青青草98| 久久亚洲中文字幕视频| 91久久精品国产| 女人天堂网| 秋霞Av理论一级在线| 一区二区三区激情在线观看| 免费成人在线熟妇网| 欧美人妻制服| 天天干天天拍| 久久亚洲熟妇在线视频| 久久日韩肥臀| 国产精品永久免费10000| 日韩97超碰中文字幕| 久久久久久十| 久久久久国产无av| 亚洲资源吧| 国产福利影视| 久操视频在线| 91超级碰| 射丝袜大香蕉| 日本三级A片网站com| 久久最新免费视频23| 色97欧美| 久操大香蕉手机视频在线看 | 欧美线天码中字| 91久久久久久久| 国产熟码AV| 夜夜爽爽爽| JULIA一区二区三区在线播放| 97青娱乐超碰久久| 伊人黄色片| 99热精品青草在线| 天天综合网在线观看| 国产成人拍国产亚洲精品| 91亚洲人电影| 国产女人和拘做爰视频| 日韩中文字幕精品一二三事国产精品| 1769国内精品视频| 亚洲欧洲色情高清| 亚洲天堂AV在线播放| 久草精品一区| 亚洲色鬼| 久久高清欧美国产| 国产精品日日摸天天碰| 91N欧美| 精品人妻一区二区三区日产乱码| 在线五区| 天天色综合图片| 欧美大片91| 久久深夜无码| 丁香五月电影| 久久性爱精品一区| 国产精品久久久久久久久久二区三区| 偷窥自拍亚洲色图| 无色无码| 影音先锋少妇| 国产精品久久久久亚洲av| 美女露胸露尿口| 牛牛操视频逼| a片 xxxx受爽视频| 亚洲日韩精品久久久久一区壹牛 | 多毛小伙内射老太婆| 好爽要喷了| A片 AV一级在线播放观看免费 | 神马视频久久久久久| 无码不卡八戒| 97操综合| 超碰综合色| 日本日逼视频网| 免费精品无码一级毛片牛牛影视| rivers-china.com| 97超碰免费生活| 五月天色五月| 人人妻人人狠人人| 色欲久久久久综合网| www.acm成人黄色毛片| 操少妇很爽av| 国模无码一区二区三区在线| 人妻另类 专区 欧美 制服| 日韩美女,国产传媒,视频一区| 操比国产| 国产精品毛片| 人妻出轨一区二区三区| 成人婷婷丁香| 91干熟女| 97人人操人人摸人人爱| 亚州,欧美在线| 91电影色诱| 久久久久久久极品香蕉视频| 大地资源在线观看中文第二页| 性爱av网站| 蜜桃视频成a人v在线| 不卡视频一区蜜桃视频 | 欧洲自拍第一页| 国产丰满熟夫69mpp| 99999精品视频| 在线另类| 色色五月天婷婷| 黄色av一区二区在线| 美女尤物人人操| 日B操| 91久久久亚洲| 久久无码一区二区二三区性色| 欧美狠狠| 欧美999| 日本二三四区| 91久久青青草原精品| 美女好片色日本| 欧美日本不卡| 日本布卡一区二三区| 久久久国产护士丝袜美腿一| 超碰是碰在线观看| 亚洲女人毛茸茸91| 91色射| 大香交| 91在线国产后入风骚翘臀美女素人| 人人超碰在线观看黄| 蜜臀久久99精品久久久久免费观| 啊啊啊啊在线观看网址| 日韩精品电影| 素人伊尹大香蕉免费下载视频| 亚洲天天精品| 97AV在线观看| 免费一级精品啪啪视频| 神马久久免费电影观看| 亚洲丝袜综合| 熟女乱3伦999| 福利社区午夜一区二区| 久久国内| 久久久爆乳翘臀一线天伦理视频| 啊啊啊啊啊啊啊国| 97久久国产亚洲精品超碰热| 草草草视频| 欧美999| 这里只有精品视频在线观看麻豆| 欧美综合区| 超碰资源亚洲97| 九九九综合精品| 人妻天天爽夜夜爽精品2| 亚洲熟妇乱女区二区三区| 人人污日韩一区二区| 99热导航| 中文字幕无码不卡啪啪| 精品九九九九九九| 日本在线播放不卡一区| 欧美性天天影视| 国产一区二区三区不卡手机在线| 97视频新免费| 日本在线观看网址| 亚洲四虎熟女精品| 97欧美精品综合| 狠狠爱夜夜干| 欧洲欧美视频一区二区| 日韩成人色图| 91精品导航| 亚洲日本激情| 女色视频社区| 久久9999 | 国产伦乱91| 精品一区二区3区| 91伊人久久在线| 91少妇人妻| 色官网色综合| 99re这里只有精品3| 91久久国产精品| wwwxxx日本爽| 欧美日韩情色一区二区| julia ann久久| 九九九热| 91在线色综合| 蜜臀久久99精品久久久久久成人小说| 国产精品一区二区三区,亚洲综合| 丁香五月天堂网| 91久久久久久久| 久久久少妇| 大香蕉一线视频| 啊啊啊啊啊在线视频| 国产午夜福利合集| 国产一区二区三区导航| 麻豆国产第一| 伊人黄色片| 欧美操逼一二三区| 97欧美资源| aaaa黄片| 亚洲欧美伦综合| 人妻少妇av在线观看| 97色视频在线| 色黄污美女啪啪啪免费网站| 欧美熟女激情| 热思思免费视频| 91麻豆天美国产欧美日| 亚洲图片小说欧洲| 在线不卡视频| 日韩电影免费网站麻豆视频| 午夜精品五区| 99999国产| 九月丁香| 亚洲图片另类| 国产乱伦亚洲色图高清无码| 久久久久久久久九九久孕交| 久久黄色视频一区二区三区 | 偷偷人人精品女女久久| 色色婷| 四虎av在线| 天天日天天爽| 国产毛片片精品天天看视频| 久操精品网| 蜜桃传媒视频第一区入口在线看| 国产乱伦性爱AV| 变态另类专区| 一区二区三区日韩欧美 | 性色国产东北露脸精品视频| 成人精品一区二区91毛片不卡| 91久久堂| 巨爆乳肉感一区二区三区竹菊影视| 精品无人区麻豆乱码1区2区图片| 天天欧美色| A 天堂| 超碰天天操你比| 国产AV无码AV| 久久东京热久久| 97色伦欧美| 欧美呦呦性爱| 国产97综合| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 日本成人免费一区二区三区| 国产第二页| 国产精品久久久久av| 啪啪自拍九九综合| 国产熟女自拍| 国产性感骚丝袜在线| 精品人妻一区二区视频| 日日躁天天躁狠狠躁| 天天欧美色| 人妻一区视频| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 色999偷自拍拍| 无色无码| 日韩99精品视频综合区| 日韩精品亚洲一二三| 亚洲人在线| 凸凹视频在线观看| 免费A片三p视频| 精品一区99999| 精品无码久久久| 少妇人妻好深太紧了vr91| 蜜臀99久久精品| 天天综合有色网| 人妻99p| 国产亚洲福利第一页丝袜| 亚洲宗合网| 粉嫩国产精品久久粉嫩| 99热这里只有精品地址| 天天噜| 成人性爱美曰韩| 日本熟女中文| 国产一进一出视频网站| 免费观看成人www精品视频| 伊人精品国产| 伊人国产视频| 日本不卡码黄色| 九九aV| 成人八戒网站| 国产日韩区| 精品综合久久久久久五月天| 91网站18禁| 久久只有精品| 久久五月婷| 亚洲黄色a级片| se01国产在线视频| 艹我哪美一区无码| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 日韩欧美中文日韩欧美色| 亚洲色吧网| 久热伊人| 综合五月天| 久久大香蕉97| 99999国产| 九九九九亚洲| 97超碰欧美精品| 青青操国产夫妻| 久久成人东京热人妻| 五毛骚逼极品美女怕怕| 精品中文日韩字幕视频| 91视频女生| 婷婷九月丁香| 欧美97爱| 蜜乳AV免费观看| 国产精品视频自拍在线| 亚洲国产奇米影视久久| 加勒比在线视频一区二区三区| 噜噜噜在线视频| 国产91精品福利在线| av在线一区二区三区| 亚洲乱码国产乱码精网站| 一本一道vs波多野结衣| 久久午夜伦| 青青爽| 日han少妇无码| 国产精品久久久九九九| 91性网| a片自拍直播视频| 国产中文字幕在线点播| 在线视频免费播放一区| 久久人妻办公室视频| 日本久操视频| 日韩精品大香蕉伊人在线| 少妇高潮喷水无套久久久久久| 91色射| 97亚洲欧美| 都市久久精品激情亚洲| 五月天黄色激情视频| 狠狠色婷婷| 久久色一区| 豆1无夜无码| 超碰97男女| 黄色视频高清无码网站| 精品亚洲国产成人av网站| 欧美精品99久久久| 欧美性爱一区二区三区四区 | 飘花国产午夜精品不卡| 欧美色婷婷| 欧美无圣光在线| 久久青娱乐| 国模不卡| a人片中文字幕一区二区| 欧美最婬乱婬爆婬牲视频| 欧美色网络| 尤物黄色在线观看网站| 91在线美女| 熟女一区二区三区四区| 边做饭边操逼逼| 色青青久久影视| 中文字幕 av v| 精品二区三四区五电影 | 香蕉国产精品麻豆亚洲欧美日韩| 九九无码视频| 亚洲欧洲激情| 成人免费看吃奶视频网站| 最新欧洲欧美日本激情网站| 夫妻AV网站| 激情抓乳插进去啪啪啪日韩| 狠狠躁AV| www.91视频网| 在线视频日韩欧美国产| 久久一二三四不卡 | 五月天大香蕉| WWW美腿丝袜香蕉中文| 视频国产成人精品日本亚洲18| 久久久夜夜嗨免费视频| 色777999综合| 蜜臀操逼黄色视频操的好爽| SUV一区二区在线看| 91色综合| 啊好大好舒服| 97免费在线视频| 天天射,天天操,天天爽-国内精品一区二区三区-成人AV | 欧美网站免费| 亚洲交换| 91天堂色男人的天堂| 亚洲综合性网址| 国产无马在线| 日本淫色网| 在线综合网| 亚洲精品一区中文字幕乱码| 91香蕉国产尤物视频| 国产 日韩 欧美 人妻 熟女 中文| 亚州,欧美在线| 久久久精品成人国产| 人妻色情天天操| 久久香蕉综合一本到3atv| 九99久久| 日韩素人无码一区二区三区三州| 啊啊啊啊啊在线| 污到发麻的视频 国产| 亚洲伊人久久综合97| 殴美日韩m| 国产亚洲欧美每日在线| 精品视频久久区| 在线强奷到舒服的无码视频 | 综合一区中亚洲国产成人综合精品 | 亚热日本熟女| 亚洲色图亚洲无码强奸乱伦| 亚洲中文sv| 九九热精品视频在线观看| 中文字幕三四五区| 精品福利视频| 操逼操网| 伊人操| 亚洲永久永久永久永久一级一级一级精品| 午夜乱轮操逼视频免费看| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 啊啊啊啊啊啊啊国| 日本三级一区二区 在线| 一区二区三区在线日韩影院观看| 操操啪| 日本中文字幕不卡视频| 天堂亚洲精品久久老牛| 在线播放中文字幕| 日韩欧美福利视频看看| 亚洲美女黄色| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 一区二区视频在线播放| 欧美一区二区三区日韩| 丁香六月综合激情| 狠狠干婷婷| 亚洲熟女一区二区| 亚洲综合码| 久久av成人无码免费| 精品成人久久久人人亚洲| 欧美色偷拍| 91成人久久| 女人综合网| 九九九九精品一区| 麻豆精品久久久久久久| 国精精品无码一二三区水多多| 青青草好吊色| 亚洲少妇激情一区二区三区| 96AV久久久| 亚洲欧美一区二区三区一猛片| 亚洲加勒比久久日本道| 精品女同一区| 亚洲情色在线| 草b在线| 岛国成人av在线播放网址| 被操高清无码视频| 精品天堂| 啊啊在线| 在线情色电影 91大| 久操B网| 狠狠爱综合网| 无码视频黄色网战| AV免费在线播放一区| 色呦呦国产精品免费看| 中欧人妻丝袜中文字幕| 人妻大香蕉| 最新精品久久蜜桃| 色爱欲亚洲| 爆乳免费黄网站| 狠狠爱综合网| 五月丁香大香蕉| 婷婷亚洲五月***久久| 亚洲一区二区三区中文字幕| 伊人网青青| 麻豆三极片| 色欲久久99国产精品久久久久久| 欧美在线大香999| 天天搞欧美| 青青草久久| 99久久9| 久久草视频污视频| 91n免费处女| 物业黑人 AV一区| 久草精品一区| 欧美亚洲色的图| 男人天堂网手机版婷婷| 久久精品一区一起草| 久久久少妇诱惑精品视频| 中文字幕在线2| 亚洲熟女乱综合一区二区三区| 性生活无遮挡纯毛片在线看| 国产五码丝袜屁眼| 亚洲色悠悠久久88| 操老熟女AV| 哑洲在线| 天美传媒婬乱在| 91性色| 亚洲熟女乱色一区二区三区| 久久性爱精品一区| 精品v日韩欧美国产| 国产一区二区三区影片| 人妻熟女午夜精品在线| 麻豆AV一区二区| 热久久九九热| 欧洲亚洲综合| 亚洲中文丝袜美腿诱惑字幕| 久久久亚洲熟妇熟女| 黄色免费一级在线毛片| 欧美亚洲色图另类国产| 国产动漫操逼视频| 黄页18禁| 操死我了嗯嗯嗯| 日本五区不卡| 秋霞色色影院| 日本视频一区二区三区| 丁香六月综合激情| 97色97好| 亚洲久久天堂| 欧美高清18A片| 国产精品无码av嫩草| 色狠狠综合| 日本不卡三级网在线播放| 色网综合网| 91bbbbbb| 麻花传媒免费网站在线观看| 色婷婷五月天| 国产久久一区二区| 久热热| yellow网站免费观看日韩高清无码| 中文字幕日本久久| 日韩在线人妻网站| 啊啊啊好大好深| 亚洲日本激情| 亚洲色偷偷色噜噜狠狠99网| 亚洲熟女乱色一区二区三区久久久 | 婷婷五月天网| 亚洲诱惑| 美女天天干| 操逼日韩无码| 青青草乱入乱欲视频在线观看| 欧美日韩制服| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 欧美一区二区传媒| 久久久久久久| 日日碰狠狠添天天爽超| 操美女人妻| 久久这里只| 日本操逼二区| 懂色AV中文| 色欲av国内精品久久久久久| 精品人妻美妇91job| 一区二区蜜臀| 久热精品在线国产| 老女人爆菊| 国产精品久久久亚洲第一牛牛_在线观看| 日日操免费视频| 欧美午夜精品久久久久久超碰| 啊啊啊在线看| 岛国片国产成人亚洲播放| AV天堂男人的天堂| 日本成a人v网站在线观看| 色婷婷九月| 好一吊区二区| 久久精品性| 大干人妻| 亚欧国产无码精品在线| 色综合1991| 欧美性巨大╳╳╳╳╳高跟鞋| 亚洲欧洲色情高清| 国内精品久久人妻性色av| 夜夜夜夜夜夜夜夜夜狠狠狠狠狠狠狠| 欧美综合色图片| 91美女中出| 日本幼女18+| 国产精品青草综合久久| 久久久久久99999国产精品| 久热这里只有精品9| 伊人一级免费黄片| 亚洲色色色| 国产日韩怡红院| 中文字幕成人| 欧美翘臀视频网站一区二区三区 | 亚洲精品丝袜| 日本熟女不卡视频| 男人的天堂VA在线| 久久久久久国产无码精品| 久久久111| AA特级绝黄| 成人资源中文字幕在线观看| 这里都是精品在线观看| 日韩精品一区二区人人人| 日韩一级二级| 色哟哟 日韩精品| 18岁禁 茉莉成人久久| A 在线网址| 99福利社| 欧美日韩色图片| 国产美女口爆吞精视频| 色网1| 久操热线| 亚州熟女乱伦| 超碰视97中文| 水澄无码AV| 欧美日韩午夜精品一区二区三区| av东京热男人的天堂| 欧美性爱伊人| 国产精品懂色tv影视免费观看| 欧美久久婷婷| 亚洲人妻av| 伊人网免费视频| 91网站在线播放| 夜夜操天| α√在线| 超碰在线人人射| 风骚少妇视频中文字幕| 91爽啪| 秋霞久久亚洲精品成人| 国产AV中文| 在线黄色污污网站| 99热精品免费| 亚洲成人日韩小说| 久操免费在线| 99re综合伊人| 麻豆福利视频导航| 99综合视频| 久久男人精品| 人人操人人色网| 后入日本1234| 国模不卡一本二本三电影| 日韩午夜啪啪视频| 激情五月天插| 国产91精品在线免费| 精品久久久久成人码免| 久草婷婷| 97人肏| 岛国精品视频在线观看| 99这里只有精品国产| 欧美97超碰| 丝袜视频网国产90| 狠狠躁天天躁日日躁97| 亚洲狼狼干综合1| 亚洲综合五月天婷婷丁香| 乱伦av麻豆| 五十路六十路七十路熟婆| 日韩啪啪视频| www.acm成人黄色毛片| 啊啊啊啊在线观看网址| 青青欧美在线| 日本 欧美 亚中文字幕| 亚洲成人久久美女| 久久亚洲AV成人精品无码| 欧美日韩性爱电影在线| 日韩精品在线视频,日韩精品……| 性生活性生大爱77AV国产| 天美传媒av一区二区| 欧美国产成人在线| wwe 天天干.com| 大香蕉十区| 夜夜高潮夜夜爽高清视频一| 久无码| 日本熟妇熟色97一本在线观看| 开心五月婷婷激情| 五月婷婷丁香| 久久丁香五月天| 亚洲欧美经典一区二区| 婬女免费一二三区A片| www国产天美久久久| 中国一区二区亚洲人妻| 狠狠色噜噜狠狠狠狠狠色综合久久 | 国产精品免费日韩| 国产一区二区a毛片| 在线无码视频| 中国国产精品一区视频| 色久桃花影院在线观看| 成人午夜小视频手机在线看| 亚欧高清在线| 亚洲AV成人无码一区二区三区在线观看 | 天天综合~91入口| 啊啊啊啊啊啊啊国| yirendaxiangjiashipin| 欧美第38页| 999综合色| 久久精品高清无码一区| 91在线丝袜| 亚洲小说视频| 久久精品国产亚洲AV先锋| 国产婷婷综合在线观看| 国产人妖的免费的视频| 亚洲最新中文字幕免费| 2020国产精品| 韩国久久97| 吉田爱美AV在线| 啊嗯嗯啊好大好爽| 97资源亚洲| 国产精品不卡一区二区电影| 国产一级操B视频| 激情九月婷婷| 怡红院怡春院| 亚州高清av| 后入国产| 免费一级黄色录像影片| 热九九精品| 自拍盗摄一区| 黑人粗大V S日韩女优视频| 亚洲欧洲综合| 国产精品爱欲| 91热爆在线| 偷拍亚洲高清图片| 伊人在线大香蕉视频久久| 东京热天堂网| 久久亚洲AV无码专区国产精品| 99啪啪| 女人的天堂大香蕉网| 情色图区| 操www| 超踫中文字幕| 色老久久| 日韩精品资源专区二区| 99精品成人免费看| 天天影视激情欧美| 国产精品97视频| 亚洲密乳AV| 狠狠狠狠狠| 91美女視頻| 操逼网站网站| 九九Av| A一级色女| 看日韩黄片| 亚洲操操| 熟妇无码视频三区| 亚洲另类小说卡通动漫| 天无日色综合| 人妻另类| 国语精品内射在线观看| 精品国产污一区二区三区| 97在线公开视频| 国产精品久久久久中文字幕| 日本三级小说中文字幕| 老鸭窝成人免费毛片视频| 一区二区三区四区免费视频| 国产久久日韩网站导航| 91色狼| 成人日韩欧美| 成人日本片久久久蜜桃| 久久成人午夜精品影院| 男人干美女| 亚洲无码精品AV久久久| 久久久久13| 久久亚洲欧美一区二区三区-亚洲国产精品第一区二区 | 99精品热| 九七超碰人人乐| 欧美网站免费| 啊啊啊啊啊啊啊在线| 日本操逼视频不卡直接放| AV色天香在线| 男人在线天堂| 国产欧美日韩女同性恋ww喷水精品 | 男女猛烈无遮掩视频免费软件| 五月天黄色av| 97在线观看| 精品一区二区3区| 好爽视频在线观看视频 | 国产91丝袜在线播放蜜月| 黄色区免费观看中文字幕| 9久精品视频在线观看| 日本欧美一区二区三区视频麻豆| 亚洲97P| 色就色综合| 少妇99| 欧美劲爆视频一区二区| 九草九九九| 不卡免费av在线播放| 综合熟妇一区二区三区| 久久婷婷精品| 久久系列| 天天摸天天碰天天添青青| 亚洲日本激情| 久久久久久久久久久久欧美日| 3d成人精品一区二区| 加勒比久久av| 欧日韩不卡视.频| 中文字幕99999| 精彩国产视频播放1区2区| 日本成人A片网站| 日本性一区| 色婷婷亚洲婷婷| 26uuu久久| 91久久国产综合精品| 手机看av网站在线看| 麻豆91熟妇人妻中文字幕茄子| 欧美日韩高潮喷水91| 美日韩男女操屄视频| 亚洲熟女一区| 99热啪啪| 欧美一区二区日韩三区| 91激情国产| 久久久久久久久久久六六| 亚洲密乳AV| 国产精品一区二区麻豆| 天综合中文| 熟女乱伦A| 9久久精品| 狠狠亚洲| 久久草大香蕉| 国产精品嫩草影院午夜两性| 97久久精品不卡| 久久久久久亚洲精品中文字幕人妻| 黄色av网站在线播放| 欧美韩日精品99综合| 久热精品色情| 欧美一级色| 欧美黄色大片在线观看 | 久久东京国产精品视频| 亚洲欧洲av影音| 日韩无码服务区| 欧美色997| 大香网伊人久久综合| 天天懆天天日| 国产精品乱码久久久久| 精品视频久久区| 清纯唯美激情四射| 亚洲中文字幕网| 一类av片在线看| 999久久久| 欧日韩一二三f区| 91nbbbbbb| 日韩伦理视频| 欧美激情五月天| 91强热人妻| 免费国产电影一区二区| 大香蕉日韩| 国产精品色| 日韩中文字幕av在线播放| 国产精品交换一区二区| 亚洲精品aa久久伊人| 国内毛片国产欧美拍| 欧成人精品一区二区三区| 风骚少妇视频中文字幕| 啊啊啊97视频| 又大又黄国产| 亚洲精品一区中文字幕乱码| 亚洲av淫乱| 在线观看无码三级少妇| 国产v亚洲v日韩v欧美v片另类| 骚货操死你| 台湾佬中文娱乐网久久久久久久久久com| 中文字幕丝袜人妻| 大香蕉AV丝袜| 美女诱惑爱爱| 日日操天天操| 国产精品大香蕉| 一级免费啪啪片| 久久精品国产72国产精品福利| 欧美极品性爱天天射| 人人贴人人摸| 日韩综合成人免费视频| 国产无码三级视频在线观看| 综合网欧美| 女性91网站| 啊啊啊好想要| 精品国产Av无码久久久伦古装| 青草精品视频日本久久久久网站在线| 日韩91网| 超碰色图| 国产精品操| 操一操摸一摸| 欧美18 在线观看| 欧美一区二区三区四区综合| 国产又黄又粗的视频| 8x福利精品第一福利视频导航| AV一起草在线| 国产精品久久久久无码A√| 欧美一区二区日韩三区| 日韩av不卡在线看| 美国aaaaa一级黄片| 久久精品国产亚洲AV片多多| 国产激情在线观看| 欧美精品999| 极品色社| 熟女自慰久久久| 亚洲色资源| 色777999综合| 一区二区三区高清| 免费人成毛片乱码| 国产啊v在线免费播放| 网页导航五月天免费一二三区 | 91色夜| 久久神马| 欧美成人四级在线播放| 爽 好舒服 无码刺激久久| 五月天激情小说| 久久这里精品国产99丫e6| 欧美97日韩精品| 日本在线15p| 91精片| 欧美日韩免费性爱| 操人91| 91人妻视频在线| 久久久免费懂色| 超碰九区| 在线色导航| 婷婷久久综合久| 九九英色视频| 日韩成人人妻网站| 91欧洲国产成人久久精品网站| 久久国产免费激情视频| 综合色久| 人妻酒店出差被中出免费在线播放| 五十路成人在线视频二区三区| 超碰免费人妻在线| 操逼啊啊啊91| 后入 亚洲 美女 射| 免费看国产大AB| 啊啊啊啊啊啊在线观看| 日韩国产成人自拍视频| 95精品在线| 日本性一区| 国产精品女aA片爽爽视频| 日本性爱少妇| 亚洲影院小综合| 一级AAA片一区二区三区| www亚洲免费| 69超碰综合| 国产乱不卡| 欧美日韩大黄片| 人妻激情另类| 亚洲第一页综合在线| 亚洲男人久久综合天堂| 亚洲丝袜二区| 欧美亚洲韩国视频十五区 | 和协影院中文字幕三区| 国产精品久久久久久久久久久久| 郑州宾馆老熟女露脸啪啪| 97青青操视频| WWW.操逼.COM| 秋霞怕怕片| 久久久18| 91操人| 无码137片内射在线影院| 色婷视频| 丰满欧美放荡少妇在线| 嫩呦国产一区二区三区AV| 国产亚洲人妻综合日韩 久久| 欧美日韩中国x| 成人97人人超碰人人| 亚洲 图片 综合91| 99热这里都是精品| 亚卅熟女乱色| 噜噜噜亚洲精品| www.久久制服糖| 久久久久久性爱视频| 啊啊啊想要| 中文字幕五区| 男人的天堂1024| 精品国产精品一区二区| 久久久久96| 日韩午夜精品一区二区三区电影| 超碰久久草| 久久五月天婷婷丁香中文字幕| 亚洲成人一二三区| 91在线视频国产网站| 91xingse| 日本不卡一区| 久视频在线观看| 日韩视频中文字幕| 97视频观看| 婷婷色综合欧美日韩| 97久久久久久久精| 玖草在线视频| 青青草自拍视频在线播放| 亚洲国产丝袜熟女av| 中文字幕av久久爽Av| 人妻无一区二区三区| 熟女欧美日韩综合婷婷| 国产成人无码啪| 俞拍自拍| 四虎影院成年人片| 精品人妻一区二区免费看| 天天干一干| 91社区伊人| 丁香婷婷激情五月天无毒不卡| 二男一女成人A片| 9997se| 九九成人视频| 91在线视频国产网站| 日夜久久久九九九久| 久久久久久久国产视频| 欧美亚洲清纯| 一区二区三区精品黑丝白丝酒店对鸡 | 日韩AV熟女乱伦| 日韩一级二级三级| 日本天天人人狠狠在线日美女| 黄片免费视频2019| 久久久精品一区二区| 九九伊人网| 成全动漫视频观看免费下载| 欧美激情久| 女人爽到高潮潮喷18禁网站| 久久男人天堂| 久久99草| 五月天激情婷婷| 秋霞一集毛片观看| 日本孕妇孕交| 亚洲色天堂日韩中| 高潮毛片无遮挡高清免费| 人人九九精| 国产夜夜艹| 国内毛片国产专区二| 91天天综合日韩欧美| 人妻熟女一区二区三区在线| 韩国黄色片精品久久久| 韩国一级做a久久久久| 日韩中文字幕宗合在线| 天天射,天天操,天天爽-国内精品一区二区三区-成人AV | 亚洲一区二区三区欧美日韩| 久久少妇| 毛片麻豆91糖心精品毛情片| 精品一区二区3区| 黄在线| 欲香欲色| 久久久草草精品| 色婷婷成人综合| 亚洲天堂久久| 久久国产性爱| 大香蕉欧美| 超碰 欧美| 欧美78| 人妻精品视频一区二区三区| 操死我了啊啊啊| 亚洲一二三精品久久网| 欧美啪啪女女| 九月激情婷婷| 上特色A在线| 国产中文字幕在线| www.高清无码诱惑一区.com| 色色丁香| 国产美女mm131爽爽爽爽| 中国AAAAAA黄色片| 精品国产乱码久久久| 男人天堂 天天射| 精品国产91久久久久久一区黄无| 亚洲激情av| 91爆操视频| 欧美呦呦性爱| 91亚洲人| 大逼色网站| 中文字幕精品专区搜索结果91| 99天天超碰| 大鸡巴久久久| 狠狠五月天| 日韩午夜啪啪视频| 欧亚性爱啪啪| 黄色在线网站| 天天谢天天干| 呦呦影院| 翔田千里A片一区二区| 99在线精品视频| 天天操福利视频综合网站| 97超碰免费生活| 亚州中文字幕超碰97| av亚洲天堂资源网站| 日本一区二区电影网站| 黄色AV影视| 国产精品交换一区二区| 激情五月天网| 九九黄色网| 五月丁香影视| www.夜夜操| 婷婷色综合| 精品色色| 欧美精品四区| 中文字幕高清20页视频| 久久极品一区二区| 亚州情色j区| 青青草原人妻| 亚洲……91| 久久久工口| 最新一二三区视频| 99re不伦| 国产女同性恋视频| 97爱b| 熟女91网| 高颜值美女口爆高潮浪叫| 久久在肏| 欧美成人一级麻豆| 91成人高清在线观看| 欧美黄色大片在线观看 | 亚洲国产高清福利视频|