:calls: `PUT /repos/{owner}/{repo}/environments/{environment_name} `_ :param environment_name: string :param wait_timer: int :param reviewers: List[:class:github.EnvironmentDeploym
(
self,
environment_name: str,
wait_timer: int = 0,
reviewers: list[ReviewerParams] = [],
prevent_self_review: bool = False,
deployment_branch_policy: EnvironmentDeploymentBranchPolicyParams | None = None,
)
| 4460 | return github.Environment.Environment(self._requester, url=url) |
| 4461 | |
| 4462 | def create_environment( |
| 4463 | self, |
| 4464 | environment_name: str, |
| 4465 | wait_timer: int = 0, |
| 4466 | reviewers: list[ReviewerParams] = [], |
| 4467 | prevent_self_review: bool = False, |
| 4468 | deployment_branch_policy: EnvironmentDeploymentBranchPolicyParams | None = None, |
| 4469 | ) -> Environment: |
| 4470 | """ |
| 4471 | :calls: `PUT /repos/{owner}/{repo}/environments/{environment_name} <https://docs.github.com/en/rest/reference/deployments#create-or-update-an-environment>`_ |
| 4472 | :param environment_name: string |
| 4473 | :param wait_timer: int |
| 4474 | :param reviewers: List[:class:github.EnvironmentDeploymentBranchPolicy.EnvironmentDeploymentBranchPolicyParams] |
| 4475 | :param prevent_self_review: bool |
| 4476 | :param deployment_branch_policy: Optional[:class:github.EnvironmentDeploymentBranchPolicy.EnvironmentDeploymentBranchPolicyParams`] |
| 4477 | :rtype: :class:`github.Environment.Environment` |
| 4478 | """ |
| 4479 | assert isinstance(environment_name, str), environment_name |
| 4480 | assert isinstance(wait_timer, int) |
| 4481 | assert isinstance(reviewers, list) |
| 4482 | assert isinstance(prevent_self_review, bool) |
| 4483 | assert all( |
| 4484 | [isinstance(reviewer, github.EnvironmentProtectionRuleReviewer.ReviewerParams) for reviewer in reviewers] |
| 4485 | ) |
| 4486 | assert ( |
| 4487 | isinstance( |
| 4488 | deployment_branch_policy, |
| 4489 | github.EnvironmentDeploymentBranchPolicy.EnvironmentDeploymentBranchPolicyParams, |
| 4490 | ) |
| 4491 | or deployment_branch_policy is None |
| 4492 | ) |
| 4493 | environment_name = urllib.parse.quote(environment_name, safe="") |
| 4494 | |
| 4495 | put_parameters = { |
| 4496 | "wait_timer": wait_timer, |
| 4497 | "reviewers": [reviewer._asdict() for reviewer in reviewers], |
| 4498 | "prevent_self_review": prevent_self_review, |
| 4499 | "deployment_branch_policy": deployment_branch_policy._asdict() if deployment_branch_policy else None, |
| 4500 | } |
| 4501 | |
| 4502 | headers, data = self._requester.requestJsonAndCheck( |
| 4503 | "PUT", f"{self.url}/environments/{environment_name}", input=put_parameters |
| 4504 | ) |
| 4505 | if "url" not in data: |
| 4506 | data["url"] = f"{self.url}/environments/{environment_name}" |
| 4507 | return github.Environment.Environment(self._requester, headers, data, completed=True) |
| 4508 | |
| 4509 | def delete_environment(self, environment_name: str) -> None: |
| 4510 | """ |
no test coverage detected