Merge pull request #1002 from marxin/filter-by-title

Support filtering of warnings/errors based on title
This commit is contained in:
Martin Liška 2023-02-14 16:41:51 +01:00 committed by GitHub
commit 8c37604db0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 10 additions and 1 deletions

View File

@ -20,6 +20,10 @@ DisallowedDirs = [
"/etc/NetworkManager/dispatcher.d",
]
FilterErrorTitles = [
'cross-directory-hard-link',
]
Filters = [
# Stuff autobuild takes care about
'.*invalid-version.*',
@ -31,7 +35,6 @@ Filters = [
'.*shlib-policy-name-error.*',
'.*hardcoded-path-in-buildroot-tag.*',
'.*no-buildroot-tag.*',
'.*cross-directory-hard-link.*',
# Do not validate package rpm groups
'.*devel-package-with-non-devel-group.*',

View File

@ -28,6 +28,8 @@ Checks = [
"ZipCheck",
"ZyppSyntaxCheck",
]
# List of error titles that should be filtered
FilterErrorTitles = []
# Various output filters, list of regexp strings eg. "E: .* no-signature"
Filters = []
# List of errors that can't be filtered

View File

@ -32,6 +32,7 @@ class Filter:
self.strict = config.strict
# list of filter regexes
self.filters_regexes = [re.compile(f) for f in config.configuration['Filters']]
self.filter_titles = set(config.configuration['FilterErrorTitles'])
# list of blocked filters
self.blocked_filters = set(config.configuration['BlockedFilters'])
# set of filters that are actually used in add_info
@ -135,6 +136,9 @@ class Filter:
result_no_color = f'{filename}{arch}:{line} {level}: {rpmlint_issue}{detail_output}'
# unused-rpmlintrc-filter warnings should be skipped
if rpmlint_issue != 'unused-rpmlintrc-filter' and rpmlint_issue not in self.blocked_filters:
if rpmlint_issue in self.filter_titles:
self.filtered_out += 1
return
for f in self.filters_regexes:
if f.search(result_no_color):
self.used_filters.add(f.pattern)