#!/usr/bin/env python3 import os import re REPOS = { "": "python-trezor", "f": "trezor-firmware", } LINK_RE = re.compile(r"\[(f?)#(\d+)\]") ISSUE_URL = "https://github.com/trezor/{repo}/issues/{issue}" CHANGELOG = os.path.dirname(__file__) + "/../CHANGELOG.md" changelog_entries = set() links = set() result_lines = [] with open(CHANGELOG, "r+") as changelog: for line in changelog: if LINK_RE.match(line): # line *starts with* issue identifier break for repo, issue in LINK_RE.findall(line): changelog_entries.add((repo, int(issue))) result_lines.append(line) changelog.seek(0) changelog.truncate(0) for line in result_lines: changelog.write(line) for repo, issue in sorted(changelog_entries): url = ISSUE_URL.format(repo=REPOS[repo], issue=issue) changelog.write(f"[{repo}#{issue}]: {url}\n")