Skip to content

Commit 910c286

Browse files
committed
merged new release & registry apis
1 parent a730598 commit 910c286

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

gitlab/v4/objects.py

+41
Original file line numberDiff line numberDiff line change
@@ -1177,6 +1177,46 @@ class PagesDomainManager(ListMixin, RESTManager):
11771177
_obj_cls = PagesDomain
11781178

11791179

1180+
class ProjectRegistryRepository(ObjectDeleteMixin, RESTObject):
1181+
_managers = (
1182+
('tags', 'ProjectRegistryTagManager'),
1183+
)
1184+
1185+
1186+
class ProjectRegistryRepositoryManager(DeleteMixin, ListMixin, RESTManager):
1187+
_path= '/projects/%(project_id)s/registry/repositories'
1188+
_obj_cls = ProjectRegistryRepository
1189+
_from_parent_attrs = {'project_id': 'id'}
1190+
1191+
class ProjectRegistryTag(ObjectDeleteMixin, RESTObject):
1192+
_id_attr = 'name'
1193+
1194+
class ProjectRegistryTagManager(DeleteMixin, RetrieveMixin, RESTManager):
1195+
_obj_cls = ProjectRegistryTag
1196+
_from_parent_attrs = {'project_id': 'project_id', 'repository_id': 'id'}
1197+
_path = '/projects/%(project_id)s/registry/repositories/%(repository_id)d/tags'
1198+
1199+
@exc.on_http_error(exc.GitlabDeleteError)
1200+
def delete_in_bulk(self, name_regex='.*', **kwargs):
1201+
"""Delete Tag by name or in bulk
1202+
1203+
Args:
1204+
name_regex (string): The regex of the name to delete. To delete all
1205+
tags specify .*.
1206+
keep_n (integer): The amount of latest tags of given name to keep.
1207+
older_than (string): Tags to delete that are older than the given time,
1208+
written in human readable form 1h, 1d, 1month.
1209+
**kwargs: Extra options to send to the server (e.g. sudo)
1210+
Raises:
1211+
GitlabAuthenticationError: If authentication is not correct
1212+
GitlabDeleteError: If the server cannot perform the request
1213+
"""
1214+
valid_attrs = ['keep_n', 'older_than']
1215+
data = {'name_regex':name_regex}
1216+
data.update({k: v for k,v in kwargs.items() if k in valid_attrs})
1217+
self.gitlab.http_delete(self.path, query_data=data, **kwargs)
1218+
1219+
11801220
class ProjectBoardList(SaveMixin, ObjectDeleteMixin, RESTObject):
11811221
pass
11821222

@@ -3286,6 +3326,7 @@ class Project(SaveMixin, ObjectDeleteMixin, RESTObject):
32863326
('pipelineschedules', 'ProjectPipelineScheduleManager'),
32873327
('pushrules', 'ProjectPushRulesManager'),
32883328
('releases', 'ProjectReleaseManager'),
3329+
('repositories', 'ProjectRegistryRepositoryManager'),
32893330
('runners', 'ProjectRunnerManager'),
32903331
('services', 'ProjectServiceManager'),
32913332
('snippets', 'ProjectSnippetManager'),

0 commit comments

Comments
 (0)