Compare commits
6 Commits
b8fb75e6cd
...
9516803f78
Author | SHA1 | Date | |
---|---|---|---|
9516803f78 | |||
55b7dc396f | |||
598cd7db5c | |||
b18043c2f0 | |||
f53cd10241 | |||
ea2f7e76cb |
@ -8,42 +8,40 @@ import os
|
||||
|
||||
|
||||
|
||||
def default_matcher( entry ) -> dict:
|
||||
def default_matcher( entry, tool_name = '' ) -> dict:
|
||||
|
||||
if tool_name == 'default':
|
||||
tool_name = ''
|
||||
else:
|
||||
tool_name = tool_name + ' '
|
||||
|
||||
filename = str(entry['file'])
|
||||
|
||||
msg_type = str(entry['type']).upper()
|
||||
|
||||
if msg_type in type_count:
|
||||
|
||||
type_count[msg_type] += 1
|
||||
|
||||
else:
|
||||
|
||||
type_count[msg_type] = 1
|
||||
|
||||
if filename.startswith('./'):
|
||||
|
||||
filename = str(entry['file'])[2:]
|
||||
|
||||
body = f"> [!NOTE]\n>\n> **{msg_type} in file: {filename}** " \
|
||||
f"_Line: {str(entry['line'])} Column: {str(entry['column'])}_" \
|
||||
f"\n>\n> _{str(entry['text'])}_\n>"
|
||||
admonition_level = 'NOTE'
|
||||
if str(entry['type']).upper() in [ 'ERROR' ]:
|
||||
|
||||
if msg_type in [ 'ERROR' ]:
|
||||
admonition_level = 'IMPORTANT'
|
||||
|
||||
|
||||
elif str(entry['type']).upper() in [ 'WARNING' ]:
|
||||
|
||||
body = f"> [!IMPORTANT]\n>\n> **{msg_type} in file: {filename}** " \
|
||||
f"_Line: {str(entry['line'])} Column: {str(entry['column'])}_" \
|
||||
f"\n>\n> _{str(entry['text'])}_\n>"
|
||||
admonition_level = 'WARNING'
|
||||
|
||||
elif msg_type in [ 'WARNING' ]:
|
||||
|
||||
body = f"> [!WARNING]\n>\n> **{msg_type} in file: {filename}** " \
|
||||
f"_Line: {str(entry['line'])} Column: {str(entry['column'])}_" \
|
||||
f"\n>\n> _{str(entry['text'])}_\n>"
|
||||
body =str (
|
||||
f"> [!{admonition_level}]"
|
||||
"\n>"
|
||||
f"\n> **{tool_name}Severity:** _{str(entry['type']).lower()}_ "
|
||||
f"\n> **file**: _{filename}_ "
|
||||
f"**Line**: _{str(entry['line'])}_ **Column**: _{str(entry['column'])}_"
|
||||
"\n>"
|
||||
f"\n> {str(entry['text'])}"
|
||||
"\n>"
|
||||
)
|
||||
|
||||
return {
|
||||
"body": body,
|
||||
@ -65,20 +63,20 @@ def pylint_matcher( entry ) -> dict:
|
||||
comment_line = int(entry.get('line', int(1)))
|
||||
|
||||
severity = str(entry['severity']).lower()
|
||||
default_admonition_level = 'NOTE'
|
||||
admonition_level = 'NOTE'
|
||||
|
||||
if severity in [ 'major' ]:
|
||||
|
||||
default_admonition_level = 'IMPORTANT'
|
||||
admonition_level = 'IMPORTANT'
|
||||
|
||||
if severity in [ 'minor' ]:
|
||||
|
||||
default_admonition_level = 'WARNING'
|
||||
admonition_level = 'WARNING'
|
||||
|
||||
body = str(
|
||||
f"> [!{default_admonition_level}] "
|
||||
f"> [!{admonition_level}] "
|
||||
f"\n> "
|
||||
f"\n>**Severity**: {severity} "
|
||||
f"\n>**PyLint Severity**: {severity} "
|
||||
f"\n>**file**: _{entry['path']}_ "
|
||||
f"**Line**: _{entry.get('line', 0)}_ "
|
||||
f"\n>"
|
||||
@ -160,11 +158,11 @@ NFC_PROBLEM_MATCHER = False
|
||||
pull_request: int = None
|
||||
|
||||
matcher = re.compile(r'NFC_PROBLEM_MATCHER=(?P<pull_number>\d+)')
|
||||
matcher_type = re.compile(r'NFC_PROBLEM_MATCHER_TYPE=(?P<type>[a-z_-]+)')
|
||||
matcher_type = re.compile(r'NFC_PROBLEM_MATCHER_TYPE=(?P<type>[a-zA-Z_-]+)')
|
||||
|
||||
regex_type = 'default'
|
||||
pattern = re.compile( regex[regex_type] )
|
||||
|
||||
matcher_name = 'Default Matcher'
|
||||
|
||||
for line in sys.stdin:
|
||||
|
||||
@ -172,12 +170,19 @@ for line in sys.stdin:
|
||||
|
||||
if match_matcher_type:
|
||||
regex_type = match_matcher_type['type']
|
||||
pattern = re.compile( regex[regex_type] )
|
||||
matcher_name = match_matcher_type['type']
|
||||
|
||||
if regex_type in regex:
|
||||
|
||||
pattern = re.compile( regex[regex_type] )
|
||||
|
||||
else:
|
||||
|
||||
pattern = re.compile( regex['default'] )
|
||||
|
||||
match = pattern.finditer(line)
|
||||
|
||||
problem_matcher = matcher.search(line,)
|
||||
problem_matcher = matcher.search(line)
|
||||
|
||||
if problem_matcher:
|
||||
|
||||
@ -188,13 +193,13 @@ for line in sys.stdin:
|
||||
|
||||
if match:
|
||||
|
||||
if regex_type not in results:
|
||||
results[regex_type] = []
|
||||
if matcher_name not in results:
|
||||
results[matcher_name] = []
|
||||
|
||||
|
||||
for obj in match:
|
||||
|
||||
results[regex_type].append(obj.groupdict())
|
||||
results[matcher_name].append(obj.groupdict())
|
||||
|
||||
|
||||
|
||||
@ -222,14 +227,13 @@ for tool, tool_results in results.items():
|
||||
|
||||
for entry in tool_results:
|
||||
|
||||
if tool == 'default':
|
||||
|
||||
api_body['comments'] += [ default_matcher( entry ) ]
|
||||
|
||||
elif tool == 'pylint-json':
|
||||
if tool == 'pylint-json':
|
||||
|
||||
api_body['comments'] += [ pylint_matcher( entry ) ]
|
||||
|
||||
else:
|
||||
|
||||
api_body['comments'] += [ default_matcher( entry, tool_name = tool ) ]
|
||||
|
||||
if tool not in type_count:
|
||||
|
||||
@ -248,6 +252,7 @@ review_body = {
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
for msg_type, cnt in type_count.items():
|
||||
|
||||
if msg_type not in review_body:
|
||||
@ -259,6 +264,7 @@ for msg_type, cnt in type_count.items():
|
||||
|
||||
api_body['body'] = review_body['header']
|
||||
|
||||
|
||||
for msg_type, value in review_body.items():
|
||||
|
||||
if msg_type != 'header':
|
||||
|
Reference in New Issue
Block a user