Skip to content

Commit fecda26

Browse files
authored
Merge pull request #1 from AktechLabs/add-user-role-json
2 parents c260b6c + 203b2ab commit fecda26

File tree

2 files changed

+40
-15
lines changed

2 files changed

+40
-15
lines changed

cirun/client.py

Lines changed: 31 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,9 @@ def _create_access_control_repo_resource_data(
152152
resources,
153153
action="add",
154154
teams=None,
155+
roles=None,
156+
users=None,
157+
users_from_json=None,
155158
policy_args=None,
156159
):
157160
repository_resource_access = {
@@ -160,14 +163,16 @@ def _create_access_control_repo_resource_data(
160163
"action": action,
161164
"policy_args": policy_args
162165
}
163-
if teams:
164-
repository_resource_access = {
165-
**repository_resource_access,
166-
"teams": teams
167-
}
166+
repository_resource_access = {
167+
**repository_resource_access,
168+
"teams": teams,
169+
"users": users,
170+
"roles": roles,
171+
"users_from_json": users_from_json,
172+
}
168173
return repository_resource_access
169174

170-
def remove_repo_from_resources(self, org, repo, resources, teams=None, policy_args=None):
175+
def remove_repo_from_resources(self, org, repo, resources):
171176
"""
172177
Removes the access to the resource for the repository.
173178
@@ -179,22 +184,27 @@ def remove_repo_from_resources(self, org, repo, resources, teams=None, policy_ar
179184
GitHub Repository
180185
resources: List[str]
181186
List of resources
182-
teams: List[str]
183-
List of teams
184-
policy_args: Optional[Dict[str, Any]]
185-
Policy arguments, this is a dictionary of key values, currently the only
186-
supported argument is ``{"pull_request": True}`` or ``{"pull_request": False}``
187187
188188
Returns
189189
-------
190190
requests.Response
191191
"""
192192
repository_resource_access = self._create_access_control_repo_resource_data(
193-
repo, resources, action="remove", teams=teams, policy_args=policy_args
193+
repo, resources, action="remove",
194194
)
195195
return self.update_access_control(org, [repository_resource_access])
196196

197-
def add_repo_to_resources(self, org, repo, resources, teams=None, policy_args=None):
197+
def add_repo_to_resources(
198+
self,
199+
org,
200+
repo,
201+
resources,
202+
teams=None,
203+
roles=None,
204+
users=None,
205+
users_from_json=None,
206+
policy_args=None,
207+
):
198208
"""
199209
Grants access to the resource for the repository
200210
@@ -208,6 +218,12 @@ def add_repo_to_resources(self, org, repo, resources, teams=None, policy_args=No
208218
List of resources
209219
teams: List[str]
210220
List of teams
221+
roles: List[str]
222+
List of roles
223+
users: List[str]
224+
List of users
225+
users_from_json: List[str]
226+
List of users from a json url
211227
policy_args: Optional[Dict[str, Any]]
212228
Policy arguments, this is a dictionary of key values, currently the only
213229
supported argument is ``{"pull_request": True}`` or ``{"pull_request": False}``
@@ -217,7 +233,8 @@ def add_repo_to_resources(self, org, repo, resources, teams=None, policy_args=No
217233
requests.Response
218234
"""
219235
repository_resource_access = self._create_access_control_repo_resource_data(
220-
repo, resources, action="add", teams=teams, policy_args=policy_args
236+
repo, resources, action="add", teams=teams, roles=roles,
237+
users=users, users_from_json=users_from_json, policy_args=policy_args
221238
)
222239
return self.update_access_control(org, [repository_resource_access])
223240

cirun/tests/test_integration.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,15 @@ def set_api_key():
1616
def test_access_control_add_repo_to_resource_401(set_api_key):
1717
cirun = Cirun()
1818
with pytest.raises(requests.exceptions.HTTPError) as exc:
19-
cirun.add_repo_to_resources("cirun", "cirun-py", resources=["cirun-runner-1"])
19+
cirun.add_repo_to_resources(
20+
"cirun", "cirun-py",
21+
teams=["team1", "team2", "team3"],
22+
roles=["role1", "role2", "role3"],
23+
users=["user1", "user2", "user3"],
24+
users_from_json="https://cirun.io/users.json",
25+
resources=["cirun-runner-1"]
26+
27+
)
2028
assert exc.value.response.status_code == 401
2129
assert exc.value.response.json() == {'message': MSG_401}
2230

0 commit comments

Comments
 (0)