Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions atlassian/bitbucket/cloud/repositories/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
from .branchRestrictions import BranchRestrictions
from .commits import Commits
from .defaultReviewers import DefaultReviewers
from .deploymentEnvironments import DeploymentEnvironments
from .pipelines import Pipelines
from .pullRequests import PullRequests
from .refs import Branches, Tags
Expand Down Expand Up @@ -257,6 +258,9 @@ def __init__(self, data, *args, **kwargs):
**self._new_session_args,
)
self.__default_reviewers = DefaultReviewers("{}/default-reviewers".format(self.url), **self._new_session_args)
self.__deployment_environments = DeploymentEnvironments(
"{}/environments".format(self.url), **self._new_session_args
)
self.__issues = Issues("{}/issues".format(self.url), **self._new_session_args)
self.__pipelines = Pipelines("{}/pipelines".format(self.url), **self._new_session_args)
self.__pullrequests = PullRequests("{}/pullrequests".format(self.url), **self._new_session_args)
Expand Down Expand Up @@ -378,6 +382,11 @@ def default_reviewers(self):
"""The repository default reviewers"""
return self.__default_reviewers

@property
def deployment_environments(self):
"""The repository deployment environments"""
return self.__deployment_environments

@property
def issues(self):
"""The repository issues"""
Expand Down
120 changes: 120 additions & 0 deletions atlassian/bitbucket/cloud/repositories/deploymentEnvironments.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
# coding=utf-8

from ..base import BitbucketCloudBase


class DeploymentEnvironments(BitbucketCloudBase):
def __init__(self, url, *args, **kwargs):
super(DeploymentEnvironments, self).__init__(url, *args, **kwargs)

def __get_object(self, data):
return DeploymentEnvironment(
self.url_joiner(self.url, data["uuid"]),
data,
**self._new_session_args,
)

def each(self, q=None, sort=None):
"""
Returns the list of environments in this repository.

:param q: string: Query string to narrow down the response.
See https://developer.atlassian.com/bitbucket/api/2/reference/meta/filtering for details.
:param sort: string: Name of a response property to sort results.
See https://developer.atlassian.com/bitbucket/api/2/reference/meta/filtering for details.

:return: A generator for the DeploymentEnvironment objects

API docs: https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Bworkspace%7D/%7Brepo_slug%7D/environments/#get
"""
params = {}
if sort is not None:
params["sort"] = sort
if q is not None:
params["q"] = q
for deployment_environment in self._get_paged(
None,
params=params,
):
yield self.__get_object(deployment_environment)

return

def get(self, uuid):
"""
Returns the environment with the uuid in this repository.

:param uuid: string: The requested environment uuid

:return: The requested DeploymentEnvironment objects

API docs: https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Bworkspace%7D/%7Brepo_slug%7D/environments/%7Benvironment_uuid%7D#get
"""
return self.__get_object(super(DeploymentEnvironments, self).get(uuid))


class DeploymentEnvironment(BitbucketCloudBase):
def __init__(self, url, data, *args, **kwargs):
super(DeploymentEnvironment, self).__init__(
url, *args, data=data, expected_type="deployment_environment", **kwargs
)

@property
def uuid(self):
"""The deployment environment uuid"""
return self.get_data("uuid")

@property
def category(self):
"""The deployment environment category"""
return self.get_data("category")

@property
def deployment_gate_enabled(self):
"""The deployment environment deployment gate enabled"""
return self.get_data("deployment_gate_enabled")

@property
def environment_lock_enabled(self):
"""The deployment environment environment lock enabled"""
return self.get_data("environment_lock_enabled")

@property
def environment_type(self):
"""The deployment environment environment type"""
return self.get_data("environment_type")

@property
def hidden(self):
"""The deployment environment hidden"""
return self.get_data("hidden")

@property
def lock(self):
"""The deployment environment lock"""
return self.get_data("lock")

@property
def name(self):
"""The deployment environment name"""
return self.get_data("name")

@property
def rank(self):
"""The deployment environment rank"""
return self.get_data("rank")

@property
def restrictions(self):
"""The deployment environment restrictions"""
return self.get_data("restrictions")

@property
def slug(self):
"""The deployment environment slug"""
return self.get_data("slug")

@property
def type(self):
"""The deployment environment type"""
return self.get_data("type")
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
include_package_data=True,
zip_safe=False,
install_requires=["deprecated", "requests", "six", "oauthlib", "requests_oauthlib"],
extras_require={"kerberos": ['requests-kerberos']},
extras_require={"kerberos": ["requests-kerberos"]},
platforms="Platform Independent",
classifiers=[
"Development Status :: 4 - Beta",
Expand Down