You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
trezor-firmware/python/helper-scripts/linkify-changelog.py

35 lines
903 B

#!/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")