def lookup_actions()

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()))