changelog_file = "CHANGELOG.md" # TODO: config param
debug = 1
+ignored_labels = ["high", "low", "bug", "enhancement", "feedback", "question", "backported"]
+
#################################
## Helpers
resp = requests.get(url, auth=(github_auth_username, github_auth_token), params=params)
try:
resp.raise_for_status()
- except:
- break
+ except requests.exceptions.HTTPError as e:
+ raise e
data = resp.json()
return re.sub("([<>*_()\[\]#])", r"\\\1", tmp)
def format_labels(issue):
- labels = filter(lambda label: label not in ["high", "low", "bug", "enhancement", "feedback", "question"], [label["name"] for label in issue["labels"]])
+ labels = filter(lambda label: label not in ignored_labels, [label["name"] for label in issue["labels"]])
if len(labels):
return " (" + ", ".join(labels) + ")"
milestones = {}
issues = defaultdict(lambda: defaultdict(list))
-log(1, "Fetching data from GitHub API for " + project_name)
+log(1, "Fetching data from GitHub API for project " + project_name)
+
+try:
+ tickets = fetch_github_resources("/issues", { "state": "all" })
+except requests.exceptions.HTTPError as e:
+ log(1, "ERROR " + str(e.response.status_code) + ": " + e.response.text)
+
+ sys.exit(1)
clfp = open(changelog_file, "w+")
with open('tickets.pickle', 'wb') as fp:
- pickle.dump(fetch_github_resources("/issues", { "state": "all" }), fp)
+ pickle.dump(tickets, fp)
with open('tickets.pickle', 'rb') as fp:
cached_issues = pickle.load(fp)
ms_tickets = issues[ms_title][issue_type(issue)]
ms_tickets.append(issue)
+# TODO: Generic header based on project_name
write_changelog("# Icinga 2.x CHANGELOG")
write_changelog("")