feat(phase32): 實作 review_push + gitea_webhook 改用本地 Ollama 審查
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled
- local_code_review_service: 新增 review_push() 方法 使用 qwen2.5-coder:7b 審查 push event(非 PR) - gitea_webhook_service: _call_openclaw_push_review 改用本地推理 OpenClaw 無 push-review 端點(404) → 改用 LocalCodeReviewService Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -244,25 +244,31 @@ class GiteaWebhookService:
|
||||
files_changed: dict,
|
||||
) -> CodeReviewResult | None:
|
||||
"""
|
||||
呼叫 OpenClaw 進行 Push 代碼審查
|
||||
|
||||
Phase 22 P0 修復: 使用 OpenClawHttpService (2026-03-31)
|
||||
Phase 32 ADR-067: Ollama qwen2.5-coder:7b push 代碼審查
|
||||
2026-04-10 Claude Sonnet 4.6: OpenClaw 無 push-review 端點 → 改用 Ollama 本地推理
|
||||
"""
|
||||
try:
|
||||
from src.services.openclaw_http_service import get_openclaw_http_service
|
||||
service = get_openclaw_http_service()
|
||||
data = await service.push_review(
|
||||
repo_name=repo_name,
|
||||
ref=ref,
|
||||
commits=commits,
|
||||
files_changed=files_changed,
|
||||
prefer_local=True,
|
||||
timeout=120.0,
|
||||
from src.services.local_code_review_service import get_local_code_review_service
|
||||
svc = get_local_code_review_service()
|
||||
|
||||
branch = ref.split("/")[-1]
|
||||
commit_msgs = "\n".join(f'- {c["sha"]}: {c["message"]}' for c in commits[:5])
|
||||
added = files_changed.get("added", [])
|
||||
modified = files_changed.get("modified", [])
|
||||
removed = files_changed.get("removed", [])
|
||||
files_summary = (
|
||||
f"Added: {', '.join(added[:5]) or '無'}\n"
|
||||
f"Modified: {', '.join(modified[:5]) or '無'}\n"
|
||||
f"Removed: {', '.join(removed[:5]) or '無'}"
|
||||
)
|
||||
|
||||
if data:
|
||||
return CodeReviewResult(**data)
|
||||
return None
|
||||
result = await svc.review_push(
|
||||
repo_name=repo_name,
|
||||
branch=branch,
|
||||
commit_summary=commit_msgs,
|
||||
files_summary=files_summary,
|
||||
)
|
||||
return result
|
||||
|
||||
except Exception as e:
|
||||
logger.exception("openclaw_push_review_error", error=str(e))
|
||||
|
||||
Reference in New Issue
Block a user