#!/usr/bin/env python3 import json import os import re import sys json_file = sys.argv[1] with open(json_file, 'r') as f: issues = json.load(f) tickets = issues['tickets'] def get_ticket_num(ticket): return ticket['ticket_num'] def is_ticket(num): return 0 < num and num < 6000 tickets.sort(key=get_ticket_num) issue1 = re.compile('[Ii]ssue #?(\d+)') issue2 = re.compile('#(\d+)[ \.]') for t in tickets: current = get_ticket_num(t) description = t['description'] referenced = None m = issue1.search(description) if m: referenced = int(m.group(1)) if not is_ticket(referenced): referenced = None if referenced is None: m = issue2.search(description) if m: referenced = int(m.group(1)) if not is_ticket(referenced): referenced = None if referenced is not None: print('Issue #{current} references #{referenced}{error}'.format( current=current, referenced=referenced, error=' - ERROR' if referenced > current else '' ))