Skip to content
Snippets Groups Projects
Commit f42a7d39 authored by Amir Mohammadi's avatar Amir Mohammadi
Browse files

Add chagelog generation script

parent 38fb246e
No related branches found
No related tags found
1 merge request!46Add chagelog generation script
......@@ -91,13 +91,16 @@ class Gitlab(object):
pipeline = subprocess.check_output(cmd)
return json.loads(pipeline.decode())
def create_merge_request(self, project_id, source_branch, target_branch, title,
assignee_id='', description='', target_project_id='',
labels='', milestone_id='', remove_source_branch=''):
def create_merge_request(self, project_id, source_branch, target_branch,
title, assignee_id='', description='',
target_project_id='', labels='', milestone_id='',
remove_source_branch=''):
url = "projects/{}/merge_requests?"
url += "&".join(['source_branch={}', 'target_branch={}', 'title={}'])
url += "&".join(['assignee_id={}', 'description={}', 'target_project_id={}',
'labels={}', 'milestone_id={}', 'remove_source_branch={}'])
url += "&".join(
['source_branch={}', 'target_branch={}', 'title={}'])
url += "&".join(
['assignee_id={}', 'description={}', 'target_project_id={}',
'labels={}', 'milestone_id={}', 'remove_source_branch={}'])
url = url.format(project_id, source_branch, target_branch, title,
assignee_id, description, target_project_id, labels,
milestone_id, remove_source_branch)
......@@ -107,6 +110,14 @@ class Gitlab(object):
pipeline = subprocess.check_output(cmd)
return json.loads(pipeline.decode())
def get_tags(self, project_id):
cmd = ["curl", "--header",
"PRIVATE-TOKEN: {}".format(self.token),
self.base_url + "projects/{}/repository/tags".format(
project_id)]
pipeline = subprocess.check_output(cmd)
return json.loads(pipeline.decode())
def main(packages_list):
gitlab = Gitlab(os.environ.get('GITLAB_API_TOKEN'))
......@@ -128,6 +139,43 @@ def main(packages_list):
return
def generate_bob_changelog():
def get_changelog(pkg, tag):
changelog = ''
if tag['release'] is None:
return changelog
changelog += '{} {}\n'.format(pkg, tag['name'])
changelog += '{}\n'.format(tag['release']['description'])
return changelog
gitlab = Gitlab(os.environ.get('GITLAB_API_TOKEN'))
changelog = ''
for package in ['bob.extension', 'bob.blitz', 'bob.core', 'bob.io.base',
'bob.sp', 'bob.ap', 'bob.math', 'bob.measure',
'bob.db.base', 'bob.io.audio', 'bob.io.image',
'bob.io.video', 'bob.io.matlab', 'bob.ip.base',
'bob.ip.color', 'bob.ip.draw', 'bob.ip.gabor',
'bob.learn.activation', 'bob.learn.libsvm',
'bob.learn.linear', 'bob.learn.mlp', 'bob.learn.em',
'bob.learn.boosting', 'bob.db.iris', 'bob.db.wine',
'bob.db.mnist', 'bob.db.atnt', 'bob.ip.facedetect',
'bob.ip.optflow.hornschunck', 'bob.ip.optflow.liu',
'bob.ip.flandmark', ]:
pid = PACKAGES_ID.get(package)
if pid is None:
pid = gitlab.get_project(package)['id']
print('Getting tag info for {}'.format(package))
tags = gitlab.get_tags(pid)
tags = sorted(tags, key=lambda x: x['commit']['authored_date'])
# if some packages have seen two releases since the last version of
# bob:
# if package in ('bob.io.video', 'bob.ip.gabor'):
# changelog += get_changelog(package, tags[-2])
changelog += get_changelog(package, tags[-1])
print(changelog)
if __name__ == '__main__':
arguments = docopt(__doc__.format(sys.argv[0]), version='Nightlies 0.0.1')
print(arguments)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment