From: Markus Lehtonen Date: Mon, 26 May 2014 14:13:32 +0000 (+0300) Subject: Include tag list in the git treeish meta data X-Git-Tag: submit/devel/20190730.075437~33 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=91f43b8b65c3f7a8a46e0d2e60b1451aa57fde6d;p=services%2Fobs-service-git-buildpackage.git Include tag list in the git treeish meta data List all annotated tags pointing at the exported commit. Adds a new 'tags' key (an array) to the metadata. Change-Id: I0271130807f3af8e3e112360842fcac095d07fd5 Signed-off-by: Markus Lehtonen --- diff --git a/obs_service_gbp_utils/__init__.py b/obs_service_gbp_utils/__init__.py index f41534a..83ca45b 100644 --- a/obs_service_gbp_utils/__init__.py +++ b/obs_service_gbp_utils/__init__.py @@ -144,6 +144,12 @@ def write_treeish_meta(repo, treeish, outdir, filename): if obj_type in ('tag', 'commit'): meta['commit'] = _commit_info_in_json(repo, treeish) + # Get information about (annotated) tags pointing to the commit + meta['tags'] = [] + for tag in repo.list_tags(treeish + '^0'): + if repo.get_obj_type(tag) == 'tag': + meta['tags'].append(repo.get_tag_info(tag)) + # No dir components allowed in filename filepath = os.path.join(outdir, os.path.basename(filename)) diff --git a/tests/test_obs_service_gbp_utils.py b/tests/test_obs_service_gbp_utils.py index f83091e..11b5de7 100644 --- a/tests/test_obs_service_gbp_utils.py +++ b/tests/test_obs_service_gbp_utils.py @@ -146,8 +146,10 @@ class TestGitMeta(UnitTestsBase): super(TestGitMeta, cls).setup_class() cls.repo = MirrorGitRepository.clone('myrepo', cls._template_repo.path) - # Create test tag + # Create test tags cls.repo.create_tag('tag', msg='Subject\n\nBody') + cls.repo.create_tag('tag2', msg='Subject 2') + cls.repo.create_tag('light_tag') # Reference meta cls.tag_meta = {'tagname': 'tag', @@ -164,6 +166,12 @@ class TestGitMeta(UnitTestsBase): 'body': '', 'files': {'A': ['debian/changelog', 'debian/control']}} + cls.tags_meta = [cls.tag_meta, + {'tagname': 'tag2', + 'sha1': cls.repo.rev_parse('tag2'), + 'tagger': committer, + 'subject': 'Subject 2', + 'body': ''}] @classmethod def teardown_class(cls): @@ -184,6 +192,7 @@ class TestGitMeta(UnitTestsBase): meta = json.load(meta_fp) eq_(meta['treeish'], 'tag') eq_(meta['tag'], self.tag_meta) + eq_(meta['tags'], self.tags_meta) eq_(meta['commit'], self.commit_meta) def test_commit(self): @@ -194,6 +203,7 @@ class TestGitMeta(UnitTestsBase): meta = json.load(meta_fp) eq_(meta['treeish'], 'HEAD') ok_('tag' not in meta) + eq_(meta['tags'], self.tags_meta) eq_(meta['commit'], self.commit_meta) def test_tree(self): @@ -205,6 +215,7 @@ class TestGitMeta(UnitTestsBase): meta = json.load(meta_fp) eq_(meta['treeish'], tree) ok_('tag' not in meta) + ok_('tags' not in meta) ok_('commit' not in meta) def test_failures(self):