]> granicus.if.org Git - icinga2/blobdiff - changelog.py
Fix incorrect memory access
[icinga2] / changelog.py
index f3b4726ac62d5d8a3ef7eca656ddd55d21dfd5fa..7b0da34ad3820e9cca31a41a219c244cd11bed42 100755 (executable)
@@ -30,6 +30,8 @@ except:
 changelog_file = "CHANGELOG.md" # TODO: config param
 debug = 1
 
+ignored_labels = ["high", "low", "bug", "enhancement", "feedback", "question", "backported"]
+
 #################################
 ## Helpers
 
@@ -50,8 +52,8 @@ def fetch_github_resources(uri, params = {}):
         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()
 
@@ -87,7 +89,7 @@ def escape_markdown(text):
     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) + ")"
@@ -114,12 +116,19 @@ def format_title(title):
 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)
@@ -143,6 +152,7 @@ for issue in cached_issues: #fetch_github_resources("/issues", { "state": "all"
     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("")