Skip to content

Commit a863ad7

Browse files
authored
Bamboo: add environment and deployment permission (atlassian-api#756)
1 parent d4195a8 commit a863ad7

File tree

2 files changed

+192
-0
lines changed

2 files changed

+192
-0
lines changed

atlassian/bamboo.py

+156
Original file line numberDiff line numberDiff line change
@@ -758,6 +758,162 @@ def get_build_queue(self, expand="queuedBuilds"):
758758
params = {"expand": expand}
759759
return self.get("rest/api/latest/queue", params=params)
760760

761+
def get_deployment_users(self, deployment_id, filter_name=None, start=0, limit=25):
762+
"""
763+
Retrieve a list of users with their explicit permissions to given resource.
764+
The list can be filtered by some attributes.
765+
This resource is paged and returns a single page of results.
766+
:param deployment_id:
767+
:param filter_name:
768+
:param start:
769+
:param limit:
770+
:return:
771+
"""
772+
params = {"limit": limit, "start": start}
773+
if filter_name:
774+
params = {"name": filter_name}
775+
resource = "permissions/deployment/{}/users".format(deployment_id)
776+
return self.get(self.resource_url(resource), params=params)
777+
778+
def revoke_user_from_deployment(self, deployment_id, user, permissions=["READ", "WRITE", "BUILD"]):
779+
"""
780+
Revokes deployment project permissions from a given user.
781+
:param deployment_id:
782+
:param user:
783+
:param permissions:
784+
:return:
785+
"""
786+
resource = "permissions/deployment/{}/users/{}".format(deployment_id, user)
787+
return self.delete(self.resource_url(resource), data=permissions)
788+
789+
def grant_user_to_deployment(self, deployment_id, user, permissions):
790+
"""
791+
Grants deployment project permissions to a given user.
792+
:param deployment_id:
793+
:param user:
794+
:param permissions:
795+
:return:
796+
"""
797+
resource = "permissions/deployment/{}/users/{}".format(deployment_id, user)
798+
return self.put(self.resource_url(resource), data=permissions)
799+
800+
def get_deployment_groups(self, deployment_id, filter_name=None, start=0, limit=25):
801+
"""
802+
Retrieve a list of groups with their deployment project permissions.
803+
The list can be filtered by some attributes.
804+
This resource is paged returns a single page of results.
805+
:param deployment_id:
806+
:param filter_name:
807+
:param start:
808+
:param limit:
809+
:return:
810+
"""
811+
params = {"limit": limit, "start": start}
812+
if filter_name:
813+
params = {"name": filter_name}
814+
resource = "permissions/deployment/{}/groups".format(deployment_id)
815+
return self.get(self.resource_url(resource), params=params)
816+
817+
def revoke_group_from_deployment(self, deployment_id, group, permissions=["READ", "WRITE", "BUILD"]):
818+
"""
819+
Revokes deployment project permissions from a given group.
820+
:param deployment_id:
821+
:param group:
822+
:param permissions:
823+
:return:
824+
"""
825+
resource = "permissions/deployment/{}/groups/{}".format(deployment_id, group)
826+
return self.delete(self.resource_url(resource), data=permissions)
827+
828+
def grant_group_to_deployment(self, deployment_id, group, permissions):
829+
"""
830+
Grants deployment project permissions to a given group.
831+
:param deployment_id:
832+
:param group:
833+
:param permissions:
834+
:return:
835+
"""
836+
resource = "permissions/deployment/{}/groups/{}".format(deployment_id, group)
837+
return self.put(self.resource_url(resource), data=permissions)
838+
839+
def get_environment_users(self, environment_id, filter_name=None, start=0, limit=25):
840+
"""
841+
Retrieve a list of users with their explicit permissions to given resource.
842+
The list can be filtered by some attributes.
843+
This resource is paged and returns a single page of results.
844+
:param environment_id:
845+
:param filter_name:
846+
:param start:
847+
:param limit:
848+
:return:
849+
"""
850+
params = {"limit": limit, "start": start}
851+
if filter_name:
852+
params = {"name": filter_name}
853+
resource = "permissions/environment/{}/users".format(environment_id)
854+
return self.get(self.resource_url(resource), params=params)
855+
856+
def revoke_user_from_environment(self, environment_id, user, permissions=["READ", "WRITE", "BUILD"]):
857+
"""
858+
Revokes deployment environment permissions from a given user.
859+
:param environment_id:
860+
:param user:
861+
:param permissions:
862+
:return:
863+
"""
864+
resource = "permissions/environment/{}/users/{}".format(environment_id, user)
865+
return self.delete(self.resource_url(resource), data=permissions)
866+
867+
def grant_user_to_environment(self, environment_id, user, permissions):
868+
"""
869+
Grants deployment environment permissions to a given user.
870+
:param environment_id:
871+
:param user:
872+
:param permissions:
873+
:return:
874+
"""
875+
resource = "permissions/environment/{}/users/{}".format(environment_id, user)
876+
return self.put(self.resource_url(resource), data=permissions)
877+
878+
def get_environment_groups(self, environment_id, filter_name=None, start=0, limit=25):
879+
"""
880+
Retrieve a list of groups with their deployment environment permissions.
881+
The list can be filtered by some attributes.
882+
This resource is paged returns a single page of results.
883+
:param environment_id:
884+
:param filter_name:
885+
:param start:
886+
:param limit:
887+
:return:
888+
"""
889+
params = {"limit": limit, "start": start}
890+
if filter_name:
891+
params = {"name": filter_name}
892+
resource = "permissions/environment/{}/groups".format(environment_id)
893+
return self.get(self.resource_url(resource), params=params)
894+
895+
def revoke_group_from_environment(self, environment_id, group, permissions=["READ", "WRITE", "BUILD"]):
896+
"""
897+
Revokes deployment environment permissions from a given group.
898+
:param environment_id:
899+
:param group:
900+
:param permissions:
901+
:return:
902+
"""
903+
resource = "permissions/environment/{}/groups/{}".format(environment_id, group)
904+
return self.delete(self.resource_url(resource), data=permissions)
905+
906+
def grant_group_to_environment(self, environment_id, group, permissions):
907+
"""
908+
Grants deployment environment permissions to a given group.
909+
:param environment_id:
910+
:param group:
911+
:param permissions:
912+
:return:
913+
"""
914+
resource = "permissions/environment/{}/groups/{}".format(environment_id, group)
915+
return self.put(self.resource_url(resource), data=permissions)
916+
761917
"""Other actions"""
762918

763919
def server_info(self):

docs/bamboo.rst

+36
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,42 @@ Users & Groups
152152
# Get users without Group
153153
get_users_not_in_group(group_name, filter_users='', start=0, limit=25)
154154
155+
# Get deployment users
156+
get_deployment_users(self, deployment_id, filter_name=None, start=0, limit=25)
157+
158+
# Revoke user from deployment
159+
revoke_user_from_deployment(self, deployment_id, user, permissions=['READ', 'WRITE', 'BUILD'])
160+
161+
# Grant user to deployment
162+
grant_user_to_deployment(self, deployment_id, user, permissions)
163+
164+
# Get deployment groups
165+
get_deployment_groups(self, deployment_id, filter_name=None, start=0, limit=25)
166+
167+
# Revoke group from deployment
168+
revoke_group_from_deployment(self, deployment_id, group, permissions=['READ', 'WRITE', 'BUILD'])
169+
170+
# Grant group to deployment
171+
grant_group_to_deployment(self, deployment_id, group, permissions)
172+
173+
# Get environment user
174+
get_environment_users(self, environment_id, filter_name=None, start=0, limit=25)
175+
176+
# Revoke user from environment
177+
revoke_user_from_environment(self, environment_id, user, permissions=['READ', 'WRITE', 'BUILD'])
178+
179+
# Grant user to environment
180+
grant_user_to_environment(self, environment_id, user, permissions)
181+
182+
# Get environment groups
183+
get_environment_groups(self, environment_id, filter_name=None, start=0, limit=25)
184+
185+
# Revoke group from environment
186+
revoke_group_from_environment(self, environment_id, group, permissions=['READ', 'WRITE', 'BUILD'])
187+
188+
# Grant group to environment
189+
grant_group_to_environment(self, environment_id, group, permissions)
190+
155191
Agents
156192
------
157193

0 commit comments

Comments
 (0)