Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 910c286

Browse filesBrowse files
committed
merged new release & registry apis
1 parent a730598 commit 910c286
Copy full SHA for 910c286

File tree

Expand file treeCollapse file tree

1 file changed

+41
-0
lines changed
Open diff view settings
Filter options
Expand file treeCollapse file tree

1 file changed

+41
-0
lines changed
Open diff view settings
Collapse file

‎gitlab/v4/objects.py‎

Copy file name to clipboardExpand all lines: gitlab/v4/objects.py
+41Lines changed: 41 additions & 0 deletions
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 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.