in importer.py [0:0]
def import_milestones(self):
"""
Imports the gathered project milestones into GitHub and remembers the created milestone ids
"""
milestone_url = self.github_url + '/milestones'
print('Importing milestones...', milestone_url)
print
# Check existing first
existing = list()
def get_milestone_list(url):
return requests.get(url, headers=self.headers,
timeout=Importer._DEFAULT_TIME_OUT)
def get_next_page_url(url):
return url.replace('<', '').replace('>', '').replace('; rel="next"', '')
milestone_pages = list()
ms = get_milestone_list(milestone_url + '?state=all')
milestone_pages.append(ms.json())
if 'Link' in ms.headers:
links = ms.headers['Link'].split(',')
nextPageUrl = get_next_page_url(links[0])
while nextPageUrl is not None:
time.sleep(1)
nextPageUrl = None
for l in links:
if 'rel="next"' in l:
nextPageUrl = get_next_page_url(l)
if nextPageUrl is not None:
ms = get_milestone_list(nextPageUrl)
links = ms.headers['Link'].split(',')
milestone_pages.append(ms.json())
for ms_json in milestone_pages:
for m in ms_json:
print(self.project.get_milestones().keys())
try:
if m['title'] in self.project.get_milestones().keys():
self.project.get_milestones()[m['title']] = m['number']
print(m['title'], 'found')
existing.append(m['title'])
except TypeError:
pass
# Export new ones
for mkey in self.project.get_milestones().keys():
if mkey in existing:
continue
data = {'title': mkey}
r = requests.post(milestone_url, json=data, headers=self.headers,
timeout=Importer._DEFAULT_TIME_OUT)
# overwrite histogram data with the actual milestone id now
if r.status_code == 201:
content = r.json()
self.project.get_milestones()[mkey] = content['number']
print(mkey)