Exemplo n.º 1
0
def test_can_remove_labels():
    labeled_messages = [
        "(one two three) Message",
        "(one) Message",
    ]
    for message in labeled_messages:
        assert remove_labels(message) == 'Message'

    assert remove_labels('(abc) Two sets (def ghi)') == "Two sets (def ghi)"
Exemplo n.º 2
0
def test_leaves_unlabeled_untouched():
    unlabeled_messages = [
        "A simple message",
        "() No real labels",
        "Misplaced (abc def ghi) labels",
    ]
    for message in unlabeled_messages:
        assert remove_labels(message) == message.strip()
Exemplo n.º 3
0
def parse_labels(git_log):
    """
    Annotates git log entries with their gitlabels.

    Args:
        git_log: A git log tokenized by tokenize_git_log.

    Returns:
        The same git log with each entry annotated with:
        - labels: A dictionary of labels.
        - pretty_labels: A list of label representations.
        - message: The unlabeled commit message.
    """
    for entry in git_log:
        labels = get_labels(entry['message'])
        entry['labels'] = labels
        entry['pretty_labels'] = sorted(
            "%s:%s" % (k, v) if v else k for k, v in labels.items())
        entry['message'] = remove_labels(entry['message'])

    return git_log