Skip to content

Commit 211e27e

Browse files
committed
feat: add RepositoryMigration as valid actor_type for bypass_actors
1 parent 866a673 commit 211e27e

6 files changed

Lines changed: 21 additions & 7 deletions

github/resource_github_organization_ruleset.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,8 @@ func resourceGithubOrganizationRuleset() *schema.Resource {
6868
"actor_type": {
6969
Type: schema.TypeString,
7070
Required: true,
71-
ValidateDiagFunc: validation.ToDiagFunc(validation.StringInSlice([]string{"Integration", "OrganizationAdmin", "RepositoryRole", "Team", "DeployKey"}, false)),
72-
Description: "The type of actor that can bypass a ruleset. Can be one of: `Integration`, `OrganizationAdmin`, `RepositoryRole`, `Team`, or `DeployKey`.",
71+
ValidateDiagFunc: validation.ToDiagFunc(validation.StringInSlice([]string{"Integration", "OrganizationAdmin", "RepositoryRole", "Team", "DeployKey", "RepositoryMigration"}, false)),
72+
Description: "The type of actor that can bypass a ruleset. Can be one of: `Integration`, `OrganizationAdmin`, `RepositoryRole`, `Team`, `DeployKey`, or `RepositoryMigration`.",
7373
},
7474
"bypass_mode": {
7575
Type: schema.TypeString,

github/resource_github_organization_ruleset_test.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,11 @@ resource "github_organization_ruleset" "test" {
7777
bypass_mode = "always"
7878
}
7979
80+
bypass_actors {
81+
actor_type = "RepositoryMigration"
82+
bypass_mode = "always"
83+
}
84+
8085
conditions {
8186
repository_name {
8287
include = ["~ALL"]
@@ -161,7 +166,7 @@ resource "github_organization_ruleset" "test" {
161166
resource.TestCheckResourceAttr("github_organization_ruleset.test", "name", rulesetName),
162167
resource.TestCheckResourceAttr("github_organization_ruleset.test", "target", "branch"),
163168
resource.TestCheckResourceAttr("github_organization_ruleset.test", "enforcement", "active"),
164-
resource.TestCheckResourceAttr("github_organization_ruleset.test", "bypass_actors.#", "3"),
169+
resource.TestCheckResourceAttr("github_organization_ruleset.test", "bypass_actors.#", "4"),
165170
resource.TestCheckResourceAttr("github_organization_ruleset.test", "bypass_actors.0.actor_type", "DeployKey"),
166171
resource.TestCheckResourceAttr("github_organization_ruleset.test", "bypass_actors.0.bypass_mode", "always"),
167172
resource.TestCheckResourceAttr("github_organization_ruleset.test", "bypass_actors.1.actor_id", "5"),
@@ -170,6 +175,8 @@ resource "github_organization_ruleset" "test" {
170175
resource.TestCheckResourceAttr("github_organization_ruleset.test", "bypass_actors.2.actor_id", "1"),
171176
resource.TestCheckResourceAttr("github_organization_ruleset.test", "bypass_actors.2.actor_type", "OrganizationAdmin"),
172177
resource.TestCheckResourceAttr("github_organization_ruleset.test", "bypass_actors.2.bypass_mode", "always"),
178+
resource.TestCheckResourceAttr("github_organization_ruleset.test", "bypass_actors.3.actor_type", "RepositoryMigration"),
179+
resource.TestCheckResourceAttr("github_organization_ruleset.test", "bypass_actors.3.bypass_mode", "always"),
173180
resource.TestCheckResourceAttr("github_organization_ruleset.test", "rules.0.pull_request.0.allowed_merge_methods.#", "3"),
174181
resource.TestCheckResourceAttr("github_organization_ruleset.test", "rules.0.required_workflows.0.do_not_enforce_on_create", "true"),
175182
resource.TestCheckResourceAttr("github_organization_ruleset.test", "rules.0.required_workflows.0.required_workflow.0.path", workflowFilePath),

github/resource_github_repository_ruleset.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ func resourceGithubRepositoryRuleset() *schema.Resource {
7373
"actor_type": {
7474
Type: schema.TypeString,
7575
Required: true,
76-
ValidateDiagFunc: validation.ToDiagFunc(validation.StringInSlice([]string{"RepositoryRole", "Team", "Integration", "OrganizationAdmin", "DeployKey"}, false)),
76+
ValidateDiagFunc: validation.ToDiagFunc(validation.StringInSlice([]string{"RepositoryRole", "Team", "Integration", "OrganizationAdmin", "DeployKey", "RepositoryMigration"}, false)),
7777
Description: "The type of actor that can bypass a ruleset. See https://docs.github.com/en/rest/repos/rules for more information.",
7878
},
7979
"bypass_mode": {

github/resource_github_repository_ruleset_test.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,11 @@ resource "github_repository_ruleset" "test" {
4646
bypass_mode = "always"
4747
}
4848
49+
bypass_actors {
50+
actor_type = "RepositoryMigration"
51+
bypass_mode = "always"
52+
}
53+
4954
conditions {
5055
ref_name {
5156
include = ["refs/heads/main"]
@@ -125,12 +130,14 @@ resource "github_repository_ruleset" "test" {
125130
resource.TestCheckResourceAttr("github_repository_ruleset.test", "name", "test"),
126131
resource.TestCheckResourceAttr("github_repository_ruleset.test", "target", "branch"),
127132
resource.TestCheckResourceAttr("github_repository_ruleset.test", "enforcement", "active"),
128-
resource.TestCheckResourceAttr("github_repository_ruleset.test", "bypass_actors.#", "2"),
133+
resource.TestCheckResourceAttr("github_repository_ruleset.test", "bypass_actors.#", "3"),
129134
resource.TestCheckResourceAttr("github_repository_ruleset.test", "bypass_actors.0.actor_type", "DeployKey"),
130135
resource.TestCheckResourceAttr("github_repository_ruleset.test", "bypass_actors.0.bypass_mode", "always"),
131136
resource.TestCheckResourceAttr("github_repository_ruleset.test", "bypass_actors.1.actor_id", "5"),
132137
resource.TestCheckResourceAttr("github_repository_ruleset.test", "bypass_actors.1.actor_type", "RepositoryRole"),
133138
resource.TestCheckResourceAttr("github_repository_ruleset.test", "bypass_actors.1.bypass_mode", "always"),
139+
resource.TestCheckResourceAttr("github_repository_ruleset.test", "bypass_actors.2.actor_type", "RepositoryMigration"),
140+
resource.TestCheckResourceAttr("github_repository_ruleset.test", "bypass_actors.2.bypass_mode", "always"),
134141
resource.TestCheckResourceAttr("github_repository_ruleset.test", "rules.0.pull_request.0.allowed_merge_methods.#", "2"),
135142
resource.TestCheckResourceAttr("github_repository_ruleset.test", "rules.0.required_code_scanning.0.required_code_scanning_tool.0.alerts_threshold", "errors"),
136143
resource.TestCheckResourceAttr("github_repository_ruleset.test", "rules.0.required_code_scanning.0.required_code_scanning_tool.0.security_alerts_threshold", "high_or_higher"),

website/docs/r/organization_ruleset.html.markdown

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -351,7 +351,7 @@ The `rules` block supports the following:
351351

352352
- `actor_id` - (Optional) (Number) The ID of the actor that can bypass a ruleset. Some actor types such as `DeployKey` do not have an ID.
353353

354-
- `actor_type` (String) The type of actor that can bypass a ruleset. Can be one of: `RepositoryRole`, `Team`, `Integration`, `OrganizationAdmin`.
354+
- `actor_type` (String) The type of actor that can bypass a ruleset. Can be one of: `RepositoryRole`, `Team`, `Integration`, `OrganizationAdmin`, `DeployKey`, `RepositoryMigration`.
355355

356356
- `bypass_mode` - (Optional) (String) When the specified actor can bypass the ruleset. pull_request means that an actor can only bypass rules on pull requests. Can be one of: `always`, `pull_request`, `exempt`.
357357

website/docs/r/repository_ruleset.html.markdown

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -300,7 +300,7 @@ The `rules` block supports the following:
300300

301301
- `actor_id` - (Optional) (Number) The ID of the actor that can bypass a ruleset. If `actor_type` is `Integration`, `actor_id` is a GitHub App ID. App ID can be obtained by following instructions from the [Get an App API docs](https://docs.github.com/en/rest/apps/apps?apiVersion=2022-11-28#get-an-app). Some actor types such as `DeployKey` do not have an ID.
302302

303-
- `actor_type` (String) The type of actor that can bypass a ruleset. Can be one of: `RepositoryRole`, `Team`, `Integration`, `OrganizationAdmin`, `DeployKey`.
303+
- `actor_type` (String) The type of actor that can bypass a ruleset. Can be one of: `RepositoryRole`, `Team`, `Integration`, `OrganizationAdmin`, `DeployKey`, `RepositoryMigration`.
304304

305305
- `bypass_mode` - (Optional) (String) When the specified actor can bypass the ruleset. pull_request means that an actor can only bypass rules on pull requests. Can be one of: `always`, `pull_request`, `exempt`.
306306

0 commit comments

Comments
 (0)