try to support a single ignore expression

This commit is contained in:
Timothy Morey 2021-09-17 17:16:50 -04:00
parent 1169721b22
commit 2bc73c5967
No known key found for this signature in database
GPG Key ID: CE9E7542A10E42DE
3 changed files with 26 additions and 0 deletions

View File

@ -51,3 +51,6 @@ inputs:
ORG_PROJECTS:
description: "Default organisation projects"
required: false
IGNORE:
description: "A regular expression that matches files that should be ignored when searching for TODOs"
required: false

View File

@ -348,6 +348,8 @@ class TodoParser(object):
if not filename_search:
continue
curr_file = filename_search.group(0)
if self._should_ignore(curr_file):
continue
curr_markers, curr_markdown_language = self._get_file_details(curr_file)
if not curr_markers or not curr_markdown_language:
print(f'Could not check {curr_file} for TODOs as this language is not yet supported by default.')
@ -604,6 +606,13 @@ class TodoParser(object):
projects = list(filter(None, projects.split(',')))
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
return False
if __name__ == "__main__":
# Create a basic client for communicating with GitHub, automatically initialised with environment variables.

View File

@ -1,3 +1,4 @@
import os
import unittest
from main import TodoParser
@ -52,3 +53,16 @@ class ClosedIssueTests(unittest.TestCase):
def test_ruby_issues(self):
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'ruby'), 3)
class IgnorePatternTests(unittest.TestCase):
def test_single_ignore(self):
os.environ['INPUT_IGNORE'] = '.*\.java'
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'), 4)
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'] = ''