Movatterモバイル変換


[0]ホーム

URL:


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

Sign up
Appearance settings

Commit32c704c

Browse files
author
Gauvain Pocentek
committed
add support for objects delete()
1 parent26c0441 commit32c704c

File tree

2 files changed

+48
-37
lines changed

2 files changed

+48
-37
lines changed

‎gitlab/mixins.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,17 @@ def save(self, **kwargs):
250250
self._update_attrs(server_data)
251251

252252

253+
classObjectDeleteMixin(object):
254+
"""Mixin for RESTObject's that can be deleted."""
255+
defdelete(self,**kwargs):
256+
"""Delete the object from the server.
257+
258+
Args:
259+
**kwargs: Extra option to send to the server (e.g. sudo)
260+
"""
261+
self.manager.delete(self.get_id())
262+
263+
253264
classAccessRequestMixin(object):
254265
defapprove(self,access_level=gitlab.DEVELOPER_ACCESS,**kwargs):
255266
"""Approve an access request.

‎gitlab/v4/objects.py

Lines changed: 37 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ def compound_metrics(self, **kwargs):
6262
returnself.gitlab.http_get('/sidekiq/compound_metrics',**kwargs)
6363

6464

65-
classUserEmail(RESTObject):
65+
classUserEmail(ObjectDeleteMixin,RESTObject):
6666
_short_print_attr='email'
6767

6868

@@ -73,7 +73,7 @@ class UserEmailManager(RetrieveMixin, CreateMixin, DeleteMixin, RESTManager):
7373
_create_attrs= (('email', ),tuple())
7474

7575

76-
classUserKey(RESTObject):
76+
classUserKey(ObjectDeleteMixin,RESTObject):
7777
pass
7878

7979

@@ -101,7 +101,7 @@ class UserProjectManager(CreateMixin, RESTManager):
101101
)
102102

103103

104-
classUser(SaveMixin,RESTObject):
104+
classUser(SaveMixin,ObjectDeleteMixin,RESTObject):
105105
_short_print_attr='username'
106106
_managers= (
107107
('emails','UserEmailManager'),
@@ -162,7 +162,7 @@ def _sanitize_data(self, data, action):
162162
returnnew_data
163163

164164

165-
classCurrentUserEmail(RESTObject):
165+
classCurrentUserEmail(ObjectDeleteMixin,RESTObject):
166166
_short_print_attr='email'
167167

168168

@@ -173,7 +173,7 @@ class CurrentUserEmailManager(RetrieveMixin, CreateMixin, DeleteMixin,
173173
_create_attrs= (('email', ),tuple())
174174

175175

176-
classCurrentUserKey(RESTObject):
176+
classCurrentUserKey(ObjectDeleteMixin,RESTObject):
177177
_short_print_attr='title'
178178

179179

@@ -231,7 +231,7 @@ def _sanitize_data(self, data, action):
231231
returnnew_data
232232

233233

234-
classBroadcastMessage(SaveMixin,RESTObject):
234+
classBroadcastMessage(SaveMixin,ObjectDeleteMixin,RESTObject):
235235
pass
236236

237237

@@ -308,12 +308,12 @@ class GroupIssueManager(GetFromListMixin, RESTManager):
308308
_list_filters= ('state','labels','milestone','order_by','sort')
309309

310310

311-
classGroupMember(SaveMixin,RESTObject):
311+
classGroupMember(SaveMixin,ObjectDeleteMixin,RESTObject):
312312
_short_print_attr='username'
313313

314314

315315
classGroupMemberManager(GetFromListMixin,CreateMixin,UpdateMixin,
316-
RESTManager):
316+
DeleteMixin,RESTManager):
317317
_path='/groups/%(group_id)s/members'
318318
_obj_cls=GroupMember
319319
_from_parent_attrs= {'group_id':'id'}
@@ -331,7 +331,7 @@ class GroupNotificationSettingsManager(NotificationSettingsManager):
331331
_from_parent_attrs= {'group_id':'id'}
332332

333333

334-
classGroupAccessRequest(AccessRequestMixin,RESTObject):
334+
classGroupAccessRequest(AccessRequestMixin,ObjectDeleteMixin,RESTObject):
335335
pass
336336

337337

@@ -342,7 +342,7 @@ class GroupAccessRequestManager(GetFromListMixin, CreateMixin, DeleteMixin,
342342
_from_parent_attrs= {'group_id':'id'}
343343

344344

345-
classHook(RESTObject):
345+
classHook(ObjectDeleteMixin,RESTObject):
346346
_url='/hooks'
347347
_short_print_attr='url'
348348

@@ -378,7 +378,7 @@ class LicenseManager(RetrieveMixin, RESTManager):
378378
_optional_get_attrs= ('project','fullname')
379379

380380

381-
classSnippet(SaveMixin,RESTObject):
381+
classSnippet(SaveMixin,ObjectDeleteMixin,RESTObject):
382382
_constructor_types= {'author':'User'}
383383
_short_print_attr='title'
384384

@@ -433,7 +433,7 @@ class NamespaceManager(GetFromListMixin, RESTManager):
433433
_list_filters= ('search', )
434434

435435

436-
classProjectBoardList(SaveMixin,RESTObject):
436+
classProjectBoardList(SaveMixin,ObjectDeleteMixin,RESTObject):
437437
_constructor_types= {'label':'ProjectLabel'}
438438

439439

@@ -457,7 +457,7 @@ class ProjectBoardManager(GetFromListMixin, RESTManager):
457457
_from_parent_attrs= {'project_id':'id'}
458458

459459

460-
classProjectBranch(RESTObject):
460+
classProjectBranch(ObjectDeleteMixin,RESTObject):
461461
_constructor_types= {'author':'User',"committer":"User"}
462462
_id_attr='name'
463463

@@ -640,7 +640,7 @@ class ProjectCommitManager(RetrieveMixin, CreateMixin, RESTManager):
640640
('author_email','author_name'))
641641

642642

643-
classProjectEnvironment(SaveMixin,RESTObject):
643+
classProjectEnvironment(SaveMixin,ObjectDeleteMixin,RESTObject):
644644
pass
645645

646646

@@ -653,7 +653,7 @@ class ProjectEnvironmentManager(GetFromListMixin, CreateMixin, UpdateMixin,
653653
_update_attrs= (tuple(), ('name','external_url'))
654654

655655

656-
classProjectKey(RESTObject):
656+
classProjectKey(ObjectDeleteMixin,RESTObject):
657657
pass
658658

659659

@@ -694,7 +694,7 @@ class ProjectForkManager(CreateMixin, RESTManager):
694694
_create_attrs= (tuple(), ('namespace', ))
695695

696696

697-
classProjectHook(SaveMixin,RESTObject):
697+
classProjectHook(SaveMixin,ObjectDeleteMixin,RESTObject):
698698
requiredUrlAttrs= ['project_id']
699699
requiredCreateAttrs= ['url']
700700
optionalCreateAttrs= ['push_events','issues_events','note_events',
@@ -722,12 +722,11 @@ class ProjectHookManager(CRUDMixin, RESTManager):
722722
)
723723

724724

725-
classProjectIssueNote(SaveMixin,RESTObject):
725+
classProjectIssueNote(SaveMixin,ObjectDeleteMixin,RESTObject):
726726
_constructor_types= {'author':'User'}
727727

728728

729-
classProjectIssueNoteManager(RetrieveMixin,CreateMixin,UpdateMixin,
730-
RESTManager):
729+
classProjectIssueNoteManager(CRUDMixin,RESTManager):
731730
_path='/projects/%(project_id)s/issues/%(issue_iid)s/notes'
732731
_obj_cls=ProjectIssueNote
733732
_from_parent_attrs= {'project_id':'project_id','issue_iid':'iid'}
@@ -736,7 +735,7 @@ class ProjectIssueNoteManager(RetrieveMixin, CreateMixin, UpdateMixin,
736735

737736

738737
classProjectIssue(SubscribableMixin,TodoMixin,TimeTrackingMixin,SaveMixin,
739-
RESTObject):
738+
ObjectDeleteMixin,RESTObject):
740739
_constructor_types= {'author':'User','assignee':'User','milestone':
741740
'ProjectMilestone'}
742741
_short_print_attr='title'
@@ -765,7 +764,7 @@ class ProjectIssueManager(CRUDMixin, RESTManager):
765764
'updated_at','state_event','due_date'))
766765

767766

768-
classProjectMember(SaveMixin,RESTObject):
767+
classProjectMember(SaveMixin,ObjectDeleteMixin,RESTObject):
769768
requiredCreateAttrs= ['access_level','user_id']
770769
optionalCreateAttrs= ['expires_at']
771770
requiredUpdateAttrs= ['access_level']
@@ -802,7 +801,7 @@ class ProjectNotificationSettingsManager(NotificationSettingsManager):
802801
_from_parent_attrs= {'project_id':'id'}
803802

804803

805-
classProjectTag(RESTObject):
804+
classProjectTag(ObjectDeleteMixin,RESTObject):
806805
_constructor_types= {'release':'ProjectTagRelease',
807806
'commit':'ProjectCommit'}
808807
_id_attr='name'
@@ -846,7 +845,7 @@ class ProjectMergeRequestDiffManager(RetrieveMixin, RESTManager):
846845
_from_parent_attrs= {'project_id':'project_id','mr_iid':'iid'}
847846

848847

849-
classProjectMergeRequestNote(SaveMixin,RESTObject):
848+
classProjectMergeRequestNote(SaveMixin,ObjectDeleteMixin,RESTObject):
850849
_constructor_types= {'author':'User'}
851850

852851

@@ -859,7 +858,7 @@ class ProjectMergeRequestNoteManager(CRUDMixin, RESTManager):
859858

860859

861860
classProjectMergeRequest(SubscribableMixin,TodoMixin,TimeTrackingMixin,
862-
SaveMixin,RESTObject):
861+
SaveMixin,ObjectDeleteMixin,RESTObject):
863862
_constructor_types= {'author':'User','assignee':'User'}
864863
_id_attr='iid'
865864

@@ -952,7 +951,7 @@ class ProjectMergeRequestManager(CRUDMixin, RESTManager):
952951
_list_filters= ('iids','state','order_by','sort')
953952

954953

955-
classProjectMilestone(SaveMixin,RESTObject):
954+
classProjectMilestone(SaveMixin,ObjectDeleteMixin,RESTObject):
956955
_short_print_attr='title'
957956

958957
defissues(self,**kwargs):
@@ -995,7 +994,8 @@ class ProjectMilestoneManager(RetrieveMixin, CreateMixin, DeleteMixin,
995994
_list_filters= ('iids','state')
996995

997996

998-
classProjectLabel(SubscribableMixin,SaveMixin,RESTObject):
997+
classProjectLabel(SubscribableMixin,SaveMixin,ObjectDeleteMixin,
998+
RESTObject):
999999
_id_attr='name'
10001000
requiredCreateAttrs= ['name','color']
10011001
optionalCreateAttrs= ['description','priority']
@@ -1004,7 +1004,7 @@ class ProjectLabel(SubscribableMixin, SaveMixin, RESTObject):
10041004

10051005

10061006
classProjectLabelManager(GetFromListMixin,CreateMixin,UpdateMixin,
1007-
RESTManager):
1007+
DeleteMixin,RESTManager):
10081008
_path='/projects/%(project_id)s/labels'
10091009
_obj_cls=ProjectLabel
10101010
_from_parent_attrs= {'project_id':'id'}
@@ -1038,7 +1038,7 @@ def save(self, **kwargs):
10381038
self._update_attrs(server_data)
10391039

10401040

1041-
classProjectFile(SaveMixin,RESTObject):
1041+
classProjectFile(SaveMixin,ObjectDeleteMixin,RESTObject):
10421042
_id_attr='file_path'
10431043
_short_print_attr='file_path'
10441044

@@ -1145,7 +1145,7 @@ class ProjectSnippetNoteManager(RetrieveMixin, CreateMixin, RESTManager):
11451145
_create_attrs= (('body', ),tuple())
11461146

11471147

1148-
classProjectSnippet(SaveMixin,RESTObject):
1148+
classProjectSnippet(SaveMixin,ObjectDeleteMixin,RESTObject):
11491149
_url='/projects/%(project_id)s/snippets'
11501150
_constructor_types= {'author':'User'}
11511151
_short_print_attr='title'
@@ -1180,7 +1180,7 @@ class ProjectSnippetManager(CRUDMixin, RESTManager):
11801180
_update_attrs= (tuple(), ('title','file_name','code','visibility'))
11811181

11821182

1183-
classProjectTrigger(SaveMixin,RESTObject):
1183+
classProjectTrigger(SaveMixin,ObjectDeleteMixin,RESTObject):
11841184
deftake_ownership(self,**kwargs):
11851185
"""Update the owner of a trigger."""
11861186
path='%s/%s/take_ownership'% (self.manager.path,self.get_id())
@@ -1196,7 +1196,7 @@ class ProjectTriggerManager(CRUDMixin, RESTManager):
11961196
_update_attrs= (('description', ),tuple())
11971197

11981198

1199-
classProjectVariable(SaveMixin,RESTObject):
1199+
classProjectVariable(SaveMixin,ObjectDeleteMixin,RESTObject):
12001200
_id_attr='key'
12011201

12021202

@@ -1297,7 +1297,7 @@ def available(self, **kwargs):
12971297
returnlist(ProjectService._service_attrs.keys())
12981298

12991299

1300-
classProjectAccessRequest(AccessRequestMixin,RESTObject):
1300+
classProjectAccessRequest(AccessRequestMixin,ObjectDeleteMixin,RESTObject):
13011301
pass
13021302

13031303

@@ -1318,7 +1318,7 @@ class ProjectDeploymentManager(RetrieveMixin, RESTManager):
13181318
_from_parent_attrs= {'project_id':'id'}
13191319

13201320

1321-
classProjectRunner(RESTObject):
1321+
classProjectRunner(ObjectDeleteMixin,RESTObject):
13221322
canUpdate=False
13231323
requiredCreateAttrs= ['runner_id']
13241324

@@ -1330,7 +1330,7 @@ class ProjectRunnerManager(NoUpdateMixin, RESTManager):
13301330
_create_attrs= (('runner_id', ),tuple())
13311331

13321332

1333-
classProject(SaveMixin,RESTObject):
1333+
classProject(SaveMixin,ObjectDeleteMixin,RESTObject):
13341334
_constructor_types= {'owner':'User','namespace':'Group'}
13351335
_short_print_attr='path'
13361336
_managers= (
@@ -1547,7 +1547,7 @@ def trigger_pipeline(self, ref, token, variables={}, **kwargs):
15471547
self.manager.gitlab.http_post(path,post_data=post_data,**kwargs)
15481548

15491549

1550-
classRunner(SaveMixin,RESTObject):
1550+
classRunner(SaveMixin,ObjectDeleteMixin,RESTObject):
15511551
pass
15521552

15531553

@@ -1574,7 +1574,7 @@ def all(self, scope=None, **kwargs):
15741574
returnself.gitlab.http_list(path,query_data,**kwargs)
15751575

15761576

1577-
classTodo(RESTObject):
1577+
classTodo(ObjectDeleteMixin,RESTObject):
15781578
defmark_as_done(self,**kwargs):
15791579
"""Mark the todo as done.
15801580
@@ -1640,7 +1640,7 @@ class GroupProjectManager(GetFromListMixin, RESTManager):
16401640
'ci_enabled_first')
16411641

16421642

1643-
classGroup(SaveMixin,RESTObject):
1643+
classGroup(SaveMixin,ObjectDeleteMixin,RESTObject):
16441644
_short_print_attr='name'
16451645
_managers= (
16461646
('accessrequests','GroupAccessRequestManager'),

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp