1
1
# coding=utf-8
2
2
3
3
4
-
5
4
from ..base import BitbucketCloudBase
6
5
7
6
@@ -16,6 +15,9 @@ def __get_object_workspace_membership(self, data):
16
15
** self ._new_session_args ,
17
16
)
18
17
18
+ def __get_object_repository_permission (self , data ):
19
+ return RepositoryPermission (self .url , data , ** self ._new_session_args )
20
+
19
21
def each (self , q = None , sort = None , pagelen = 10 ):
20
22
"""
21
23
Returns the list of pipelines in this repository.
@@ -45,6 +47,12 @@ def each(self, q=None, sort=None, pagelen=10):
45
47
46
48
return
47
49
50
+ def repositories (self , repo_slug = "" , pagelen = 10 ):
51
+ for permissions in self ._get_paged (
52
+ "repositories/{}" .format (repo_slug ), trailing = True , params = {"pagelen" : pagelen }
53
+ ):
54
+ yield self .__get_object_repository_permission (permissions )
55
+
48
56
49
57
class WorkspaceMembership (BitbucketCloudBase ):
50
58
def __init__ (self , url , data , * args , ** kwargs ):
@@ -89,3 +97,30 @@ def permission(self):
89
97
def last_accessed (self ):
90
98
"""The workspace_membership last accessed"""
91
99
return self .get_time ("last_accessed" )
100
+
101
+
102
+ class RepositoryPermission (BitbucketCloudBase ):
103
+ def __init__ (self , url , data , * args , ** kwargs ):
104
+ super (RepositoryPermission , self ).__init__ (
105
+ url , * args , data = data , expected_type = "repository_permission" , ** kwargs
106
+ )
107
+
108
+ @property
109
+ def repository (self ):
110
+ """The repository_permission uuid"""
111
+ return self .get_data ("repository" )
112
+
113
+ @property
114
+ def type (self ):
115
+ """The repository_permission type"""
116
+ return self .get_data ("type" )
117
+
118
+ @property
119
+ def permission (self ):
120
+ """The repository_permission permission"""
121
+ return self .get_data ("permission" )
122
+
123
+ @property
124
+ def user (self ):
125
+ """The repository_permission workspace"""
126
+ return self .get_data ("user" )
0 commit comments