extend to support a comma-delimited list of patterns

This commit is contained in:
Timothy Morey 2021-09-20 12:45:07 -04:00
parent 2bc73c5967
commit bec4b579f8
No known key found for this signature in database
GPG Key ID: CE9E7542A10E42DE
3 changed files with 17 additions and 5 deletions

View File

@ -52,5 +52,5 @@ inputs:
description: "Default organisation projects"
required: false
IGNORE:
description: "A regular expression that matches files that should be ignored when searching for TODOs"
description: "A collection of comma-delimited regular expression that matches files that should be ignored when searching for TODOs"
required: false

View File

@ -607,10 +607,11 @@ class TodoParser(object):
return projects
def _should_ignore(self, file):
ignore_pattern = os.getenv('INPUT_IGNORE', None)
if ignore_pattern:
if re.match(ignore_pattern, file):
return True
ignore_patterns = os.getenv('INPUT_IGNORE', None)
if ignore_patterns:
for pattern in filter(None, [pattern.strip() for pattern in ignore_patterns.split(',')]):
if re.match(pattern, file):
return True
return False

View File

@ -66,3 +66,14 @@ class IgnorePatternTests(unittest.TestCase):
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'java'), 0)
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'ruby'), 3)
os.environ['INPUT_IGNORE'] = ''
def test_multiple_ignores(self):
os.environ['INPUT_IGNORE'] = '.*\.java, tests/example-file\.php'
diff_file = open('tests/test_new.diff', 'r')
self.raw_issues = TodoParser().parse(diff_file)
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'python'), 2)
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'yaml'), 2)
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'php'), 0)
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'java'), 0)
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'ruby'), 3)
os.environ['INPUT_IGNORE'] = ''