in jbi/runner.py [0:0]
def lookup_actions(bug: bugzilla_models.Bug, actions: Actions) -> list[Action]:
"""
Find matching actions from bug's whiteboard field.
Tags are strings between brackets and can have prefixes/suffixes
using dashes (eg. ``[project]``, ``[project-moco]``, ``[project-moco-sprint1]``).
"""
if bug.whiteboard:
relevant_actions = []
for tag, action in actions.by_tag.items():
# [tag-word], [tag-], [tag], but not [word-tag] or [tagword]
search_string = r"\[" + tag + r"(-[^\]]*)*\]"
if re.search(search_string, bug.whiteboard, flags=re.IGNORECASE):
relevant_actions.append(action)
if len(relevant_actions):
return relevant_actions
raise ActionNotFoundError(", ".join(actions.by_tag.keys()))