更改项目名为NebulaShell
This commit is contained in:
70
store/@{NebulaShell}/code-reviewer/main.py
Normal file
70
store/@{NebulaShell}/code-reviewer/main.py
Normal file
@@ -0,0 +1,70 @@
|
||||
"""代码审查器插件"""
|
||||
import sys
|
||||
import os
|
||||
sys.path.insert(0, os.path.dirname(__file__))
|
||||
|
||||
from oss.logger.logger import Log
|
||||
from oss.plugin.types import Plugin, register_plugin_type
|
||||
from core.reviewer import CodeReviewer
|
||||
|
||||
|
||||
class CodeReviewerPlugin(Plugin):
|
||||
"""代码审查器插件"""
|
||||
|
||||
def __init__(self):
|
||||
self.reviewer = None
|
||||
self.config = {}
|
||||
|
||||
def meta(self):
|
||||
from oss.plugin.types import Metadata, PluginConfig, Manifest
|
||||
return Manifest(
|
||||
metadata=Metadata(
|
||||
name="code-reviewer",
|
||||
version="1.0.0",
|
||||
author="NebulaShell",
|
||||
description="代码审查器 - 自动扫描代码问题"
|
||||
),
|
||||
config=PluginConfig(
|
||||
enabled=True,
|
||||
args={
|
||||
"scan_dirs": ["store", "oss"],
|
||||
"exclude_patterns": ["__pycache__", "*.pyc"],
|
||||
"max_file_size": 102400,
|
||||
"report_format": "console"
|
||||
}
|
||||
),
|
||||
dependencies=[]
|
||||
)
|
||||
|
||||
def init(self, deps: dict = None):
|
||||
config = {}
|
||||
if deps:
|
||||
config = deps.get("config", {})
|
||||
|
||||
self.config = {
|
||||
"scan_dirs": config.get("scan_dirs", ["store", "oss"]),
|
||||
"exclude_patterns": config.get("exclude_patterns", ["__pycache__"]),
|
||||
"max_file_size": config.get("max_file_size", 102400),
|
||||
"report_format": config.get("report_format", "console")
|
||||
}
|
||||
|
||||
self.reviewer = CodeReviewer(self.config)
|
||||
Log.info("code-reviewer", "初始化完成")
|
||||
|
||||
def start(self):
|
||||
Log.info("code-reviewer", "插件已启动")
|
||||
|
||||
def stop(self):
|
||||
Log.error("code-reviewer", "插件已停止")
|
||||
|
||||
def check(self, dirs: list = None) -> dict:
|
||||
"""执行代码检查"""
|
||||
scan_dirs = dirs or self.config["scan_dirs"]
|
||||
return self.reviewer.run_check(scan_dirs)
|
||||
|
||||
|
||||
register_plugin_type("CodeReviewerPlugin", CodeReviewerPlugin)
|
||||
|
||||
|
||||
def New():
|
||||
return CodeReviewerPlugin()
|
||||
Reference in New Issue
Block a user