summaryrefslogtreecommitdiff
path: root/.gitlab-ci/check-todos.py
diff options
context:
space:
mode:
Diffstat (limited to '.gitlab-ci/check-todos.py')
-rwxr-xr-x.gitlab-ci/check-todos.py62
1 files changed, 35 insertions, 27 deletions
diff --git a/.gitlab-ci/check-todos.py b/.gitlab-ci/check-todos.py
index 83b3eee7a..aa88f0832 100755
--- a/.gitlab-ci/check-todos.py
+++ b/.gitlab-ci/check-todos.py
@@ -23,18 +23,18 @@ import sys
# that’s conventionally used as a way of marking a workaround which needs to
# be merged for now, but is to be grepped for and reverted or reworked later.
BANNED_KEYWORDS = [
- 'TO' + 'DO',
- 'X' + 'XX',
- 'W' + 'IP',
+ "TO" + "DO",
+ "X" + "XX",
+ "W" + "IP",
]
def main():
parser = argparse.ArgumentParser(
- description='Check a range of commits to ensure they don’t contain '
- 'banned keywords.')
- parser.add_argument('commits',
- help='SHA to diff from, or range of commits to diff')
+ description="Check a range of commits to ensure they don’t contain "
+ "banned keywords."
+ )
+ parser.add_argument("commits", help="SHA to diff from, or range of commits to diff")
args = parser.parse_args()
banned_words_seen = set()
@@ -43,47 +43,55 @@ def main():
# Check the log messages for banned words.
log_process = subprocess.run(
- ['git', 'log', '--no-color', args.commits + '..HEAD'],
- stdout=subprocess.PIPE, stderr=subprocess.PIPE, encoding='utf-8',
- check=True)
- log_lines = log_process.stdout.strip().split('\n')
+ ["git", "log", "--no-color", args.commits + "..HEAD"],
+ stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE,
+ encoding="utf-8",
+ check=True,
+ )
+ log_lines = log_process.stdout.strip().split("\n")
for line in log_lines:
for keyword in BANNED_KEYWORDS:
- if re.search('(^|\W+){}(\W+|$)'.format(keyword), line):
+ if re.search("(^|\W+){}(\W+|$)".format(keyword), line):
banned_words_seen.add(keyword)
seen_in_log = True
# Check the diff for banned words.
diff_process = subprocess.run(
- ['git', 'diff', '-U0', '--no-color', args.commits],
- stdout=subprocess.PIPE, stderr=subprocess.PIPE, encoding='utf-8',
- check=True)
- diff_lines = diff_process.stdout.strip().split('\n')
+ ["git", "diff", "-U0", "--no-color", args.commits],
+ stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE,
+ encoding="utf-8",
+ check=True,
+ )
+ diff_lines = diff_process.stdout.strip().split("\n")
for line in diff_lines:
- if not line.startswith('+ '):
+ if not line.startswith("+ "):
continue
for keyword in BANNED_KEYWORDS:
- if re.search('(^|\W+){}(\W+|$)'.format(keyword), line):
+ if re.search("(^|\W+){}(\W+|$)".format(keyword), line):
banned_words_seen.add(keyword)
seen_in_diff = True
if banned_words_seen:
if seen_in_log and seen_in_diff:
- where = 'commit message and diff'
+ where = "commit message and diff"
elif seen_in_log:
- where = 'commit message'
+ where = "commit message"
elif seen_in_diff:
- where = 'commit diff'
-
- print('Saw banned keywords in a {}: {}. '
- 'This indicates the branch is a work in progress and should not '
- 'be merged in its current '
- 'form.'.format(where, ', '.join(banned_words_seen)))
+ where = "commit diff"
+
+ print(
+ "Saw banned keywords in a {}: {}. "
+ "This indicates the branch is a work in progress and should not "
+ "be merged in its current "
+ "form.".format(where, ", ".join(banned_words_seen))
+ )
sys.exit(1)
-if __name__ == '__main__':
+if __name__ == "__main__":
main()