diff --git a/gitlab/v4/objects.py b/gitlab/v4/objects.py index 6f40dc812..a15e3cb41 100644 --- a/gitlab/v4/objects.py +++ b/gitlab/v4/objects.py @@ -1250,6 +1250,18 @@ def enable(self, key_id, **kwargs): self.gitlab.http_post(path, **kwargs) +class ProjectBadge(SaveMixin, ObjectDeleteMixin, RESTObject): + pass + + +class ProjectBadgeManager(CRUDMixin, RESTManager): + _path = '/projects/%(project_id)s/badges' + _obj_cls = ProjectBadge + _from_parent_attrs = {'project_id': 'id'} + _create_attrs = (('link_url', 'image_url'), tuple()) + _update_attrs = (('link_url', 'image_url'), tuple()) + + class ProjectEvent(Event): pass @@ -2472,6 +2484,7 @@ class Project(SaveMixin, ObjectDeleteMixin, RESTObject): _short_print_attr = 'path' _managers = ( ('accessrequests', 'ProjectAccessRequestManager'), + ('badges', 'ProjectBadgeManager'), ('boards', 'ProjectBoardManager'), ('branches', 'ProjectBranchManager'), ('jobs', 'ProjectJobManager'), diff --git a/tools/python_test_v4.py b/tools/python_test_v4.py index 01de5bd51..66743309a 100644 --- a/tools/python_test_v4.py +++ b/tools/python_test_v4.py @@ -583,6 +583,12 @@ #lists = board.lists.list() #assert(len(lists) == begin_size - 1) +# project badges +badge_image = 'http://example.com' +badge_link = 'http://example/img.svg' +bp = admin_project.badges.create({'link_url': badge_link, 'image_url': badge_image}) +assert(len(admin_project.badges.list()) == 1) + # project wiki wiki_content = 'Wiki page content' wp = admin_project.wikis.create({'title': 'wikipage', 'content': wiki_content})