diff --git a/examples/template/otterdog-defaults.libsonnet b/examples/template/otterdog-defaults.libsonnet index 486353c9..e4ce2376 100644 --- a/examples/template/otterdog-defaults.libsonnet +++ b/examples/template/otterdog-defaults.libsonnet @@ -271,6 +271,7 @@ local newEnvironment(name) = { name: name, wait_timer: 0, reviewers: [], + prevent_self_review: false, # Can be one of: all, protected_branches, branch_policies deployment_branch_policy: "all", branch_policies: [], diff --git a/otterdog/models/environment.py b/otterdog/models/environment.py index c4361898..3bcc1af1 100644 --- a/otterdog/models/environment.py +++ b/otterdog/models/environment.py @@ -38,6 +38,7 @@ class Environment(ModelObject): name: str = dataclasses.field(metadata={"key": True}) wait_timer: int reviewers: list[str] + prevent_self_review: bool deployment_branch_policy: str branch_policies: list[str] diff --git a/otterdog/resources/schemas/environment.json b/otterdog/resources/schemas/environment.json index ba1bea7a..fdecdb29 100644 --- a/otterdog/resources/schemas/environment.json +++ b/otterdog/resources/schemas/environment.json @@ -9,6 +9,7 @@ "type": "array", "items": { "type": "string" } }, + "prevent_self_review": { "type": "boolean" }, "deployment_branch_policy": { "type": "string" }, "branch_policies": { "type": "array", diff --git a/tests/models/resources/github-environment.json b/tests/models/resources/github-environment.json index 15d74d2f..bfb49dbd 100644 --- a/tests/models/resources/github-environment.json +++ b/tests/models/resources/github-environment.json @@ -7,6 +7,7 @@ "created_at": "2023-06-13T20:40:38Z", "updated_at": "2023-06-21T11:58:31Z", "can_admins_bypass": true, + "prevent_self_review": true, "protection_rules": [ { "id": 9174563, diff --git a/tests/models/resources/otterdog-environment.json b/tests/models/resources/otterdog-environment.json index 0a45b052..82965016 100644 --- a/tests/models/resources/otterdog-environment.json +++ b/tests/models/resources/otterdog-environment.json @@ -5,6 +5,7 @@ "@netomi", "@OtterdogTest/eclipsefdn-security" ], + "prevent_self_review": true, "deployment_branch_policy": "selected", "branch_policies": [ "main", diff --git a/tests/models/test_environment.py b/tests/models/test_environment.py index e027dcec..9dce0db3 100644 --- a/tests/models/test_environment.py +++ b/tests/models/test_environment.py @@ -41,6 +41,7 @@ def test_load_from_model(self): assert env.name == "linux" assert env.wait_timer == 15 assert env.reviewers == ["@netomi", "@OtterdogTest/eclipsefdn-security"] + assert env.prevent_self_review is True assert env.deployment_branch_policy == "selected" assert env.branch_policies == ["main", "develop/*"] @@ -52,6 +53,7 @@ def test_load_from_provider(self): assert env.name == "linux" assert env.wait_timer == 15 assert env.reviewers == ["@netomi", "@OtterdogTest/eclipsefdn-security"] + assert env.prevent_self_review is True assert env.deployment_branch_policy == "selected" assert env.branch_policies == ["main", "develop/*"] @@ -60,8 +62,9 @@ async def test_to_provider(self): provider_data = await env.to_provider_data(self.org_id, self.provider) - assert len(provider_data) == 5 + assert len(provider_data) == 6 assert provider_data["wait_timer"] == 15 + assert provider_data["prevent_self_review"] is True assert query_json("reviewers[0].id", provider_data) == "id_netomi" assert query_json("reviewers[1].id", provider_data) == "id_OtterdogTest/eclipsefdn-security"