diff --git a/src/plugins/analysis/linter/code/source_code_analysis.py b/src/plugins/analysis/linter/code/source_code_analysis.py index 6b328f960..cb9b002ee 100644 --- a/src/plugins/analysis/linter/code/source_code_analysis.py +++ b/src/plugins/analysis/linter/code/source_code_analysis.py @@ -7,6 +7,7 @@ import pydantic from docker.types import Mount from pydantic import Field +from semver import Version from analysis.plugin import AnalysisPluginV0 from helperFunctions.docker import run_docker_container @@ -35,7 +36,7 @@ class Schema(pydantic.BaseModel): class Issue(pydantic.BaseModel): """A linting issue.""" - symbol: str = Field( + symbol: Optional[str] = Field( description=( "An identifier for the linting type. E.g. 'unused-import' (pylint).\n" 'Note that this field is linter specific.' @@ -65,9 +66,9 @@ def __init__(self): metadata=AnalysisPluginV0.MetaData( name='source_code_analysis', description='This plugin implements static code analysis for multiple scripting languages', - version='0.7.1', + version=Version(0, 7, 3), Schema=AnalysisPlugin.Schema, - mime_whitelist=['text/'], + mime_whitelist=['text/', 'application/javascript'], ), ) diff --git a/src/plugins/analysis/linter/internal/linters.py b/src/plugins/analysis/linter/internal/linters.py index ca8277604..b660179bd 100644 --- a/src/plugins/analysis/linter/internal/linters.py +++ b/src/plugins/analysis/linter/internal/linters.py @@ -27,10 +27,15 @@ def run_eslint(file_path): output_json = json.loads(result.stdout) issues = [] - # As we only ever analyse one file use output_json[0] + # As we only ever analyze one file use output_json[0] for msg in output_json[0]['messages']: issues.append( - {'line': msg['line'], 'column': msg['column'], 'message': msg['message'], 'symbol': msg['ruleId']} + { + 'line': msg['line'], + 'column': msg['column'], + 'message': msg['message'], + 'symbol': msg['ruleId'] or 'N/A', # ruleId can be None if there is a syntax error + } ) return issues