diff --git a/provider/cmd/pulumi-resource-github/bridge-metadata.json b/provider/cmd/pulumi-resource-github/bridge-metadata.json
index 2602c568..f8c2fbfd 100644
--- a/provider/cmd/pulumi-resource-github/bridge-metadata.json
+++ b/provider/cmd/pulumi-resource-github/bridge-metadata.json
@@ -333,6 +333,18 @@
}
}
},
+ "github_enterprise_actions_runner_group": {
+ "current": "github:index/enterpriseActionsRunnerGroup:EnterpriseActionsRunnerGroup",
+ "majorVersion": 6,
+ "fields": {
+ "selected_organization_ids": {
+ "maxItemsOne": false
+ },
+ "selected_workflows": {
+ "maxItemsOne": false
+ }
+ }
+ },
"github_enterprise_organization": {
"current": "github:index/enterpriseOrganization:EnterpriseOrganization",
"majorVersion": 6,
diff --git a/provider/cmd/pulumi-resource-github/schema.json b/provider/cmd/pulumi-resource-github/schema.json
index dcd77954..e28e781c 100644
--- a/provider/cmd/pulumi-resource-github/schema.json
+++ b/provider/cmd/pulumi-resource-github/schema.json
@@ -316,6 +316,10 @@
"type": "boolean",
"description": "Require an approved review in pull requests including files with a designated code owner. Defaults to `false`.\n"
},
+ "requireLastPushApproval": {
+ "type": "boolean",
+ "description": "Require that the most recent push must be approved by someone other than the last pusher. Defaults to `false`\n"
+ },
"requiredApprovingReviewCount": {
"type": "integer",
"description": "Require x number of approvals to satisfy branch protection requirements. If this is specified it must be a number between 0-6. This requirement matches GitHub's API, see the upstream [documentation](https://developer.github.com/v3/repos/branches/#parameters-1) for more information.\n"
@@ -5537,6 +5541,166 @@
"type": "object"
}
},
+ "github:index/enterpriseActionsRunnerGroup:EnterpriseActionsRunnerGroup": {
+ "description": "This resource allows you to create and manage GitHub Actions runner groups within your GitHub enterprise.\nYou must have admin access to an enterprise to use this resource.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as github from \"@pulumi/github\";\n\nconst enterprise = github.getEnterprise({\n slug: \"my-enterprise\",\n});\nconst enterpriseOrganization = new github.EnterpriseOrganization(\"enterpriseOrganization\", {\n enterpriseId: enterprise.then(enterprise =\u003e enterprise.id),\n billingEmail: \"octocat@octo.cat\",\n adminLogins: [\"octocat\"],\n});\nconst example = new github.EnterpriseActionsRunnerGroup(\"example\", {\n enterpriseSlug: enterprise.then(enterprise =\u003e enterprise.slug),\n allowsPublicRepositories: true,\n visibility: \"selected\",\n selectedOrganizationIds: [enterpriseOrganization.databaseId],\n restrictedToWorkflows: true,\n selectedWorkflows: [\"my-organization/my-repo/.github/workflows/cool-workflow.yaml@refs/tags/v1\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_github as github\n\nenterprise = github.get_enterprise(slug=\"my-enterprise\")\nenterprise_organization = github.EnterpriseOrganization(\"enterpriseOrganization\",\n enterprise_id=enterprise.id,\n billing_email=\"octocat@octo.cat\",\n admin_logins=[\"octocat\"])\nexample = github.EnterpriseActionsRunnerGroup(\"example\",\n enterprise_slug=enterprise.slug,\n allows_public_repositories=True,\n visibility=\"selected\",\n selected_organization_ids=[enterprise_organization.database_id],\n restricted_to_workflows=True,\n selected_workflows=[\"my-organization/my-repo/.github/workflows/cool-workflow.yaml@refs/tags/v1\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Github = Pulumi.Github;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var enterprise = Github.GetEnterprise.Invoke(new()\n {\n Slug = \"my-enterprise\",\n });\n\n var enterpriseOrganization = new Github.EnterpriseOrganization(\"enterpriseOrganization\", new()\n {\n EnterpriseId = enterprise.Apply(getEnterpriseResult =\u003e getEnterpriseResult.Id),\n BillingEmail = \"octocat@octo.cat\",\n AdminLogins = new[]\n {\n \"octocat\",\n },\n });\n\n var example = new Github.EnterpriseActionsRunnerGroup(\"example\", new()\n {\n EnterpriseSlug = enterprise.Apply(getEnterpriseResult =\u003e getEnterpriseResult.Slug),\n AllowsPublicRepositories = true,\n Visibility = \"selected\",\n SelectedOrganizationIds = new[]\n {\n enterpriseOrganization.DatabaseId,\n },\n RestrictedToWorkflows = true,\n SelectedWorkflows = new[]\n {\n \"my-organization/my-repo/.github/workflows/cool-workflow.yaml@refs/tags/v1\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-github/sdk/v6/go/github\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tenterprise, err := github.GetEnterprise(ctx, \u0026github.GetEnterpriseArgs{\n\t\t\tSlug: \"my-enterprise\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tenterpriseOrganization, err := github.NewEnterpriseOrganization(ctx, \"enterpriseOrganization\", \u0026github.EnterpriseOrganizationArgs{\n\t\t\tEnterpriseId: pulumi.String(enterprise.Id),\n\t\t\tBillingEmail: pulumi.String(\"octocat@octo.cat\"),\n\t\t\tAdminLogins: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"octocat\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = github.NewEnterpriseActionsRunnerGroup(ctx, \"example\", \u0026github.EnterpriseActionsRunnerGroupArgs{\n\t\t\tEnterpriseSlug: pulumi.String(enterprise.Slug),\n\t\t\tAllowsPublicRepositories: pulumi.Bool(true),\n\t\t\tVisibility: pulumi.String(\"selected\"),\n\t\t\tSelectedOrganizationIds: pulumi.IntArray{\n\t\t\t\tenterpriseOrganization.DatabaseId,\n\t\t\t},\n\t\t\tRestrictedToWorkflows: pulumi.Bool(true),\n\t\t\tSelectedWorkflows: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"my-organization/my-repo/.github/workflows/cool-workflow.yaml@refs/tags/v1\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.github.GithubFunctions;\nimport com.pulumi.github.inputs.GetEnterpriseArgs;\nimport com.pulumi.github.EnterpriseOrganization;\nimport com.pulumi.github.EnterpriseOrganizationArgs;\nimport com.pulumi.github.EnterpriseActionsRunnerGroup;\nimport com.pulumi.github.EnterpriseActionsRunnerGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var enterprise = GithubFunctions.getEnterprise(GetEnterpriseArgs.builder()\n .slug(\"my-enterprise\")\n .build());\n\n var enterpriseOrganization = new EnterpriseOrganization(\"enterpriseOrganization\", EnterpriseOrganizationArgs.builder() \n .enterpriseId(enterprise.applyValue(getEnterpriseResult -\u003e getEnterpriseResult.id()))\n .billingEmail(\"octocat@octo.cat\")\n .adminLogins(\"octocat\")\n .build());\n\n var example = new EnterpriseActionsRunnerGroup(\"example\", EnterpriseActionsRunnerGroupArgs.builder() \n .enterpriseSlug(enterprise.applyValue(getEnterpriseResult -\u003e getEnterpriseResult.slug()))\n .allowsPublicRepositories(true)\n .visibility(\"selected\")\n .selectedOrganizationIds(enterpriseOrganization.databaseId())\n .restrictedToWorkflows(true)\n .selectedWorkflows(\"my-organization/my-repo/.github/workflows/cool-workflow.yaml@refs/tags/v1\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n enterpriseOrganization:\n type: github:EnterpriseOrganization\n properties:\n enterpriseId: ${enterprise.id}\n billingEmail: octocat@octo.cat\n adminLogins:\n - octocat\n example:\n type: github:EnterpriseActionsRunnerGroup\n properties:\n enterpriseSlug: ${enterprise.slug}\n allowsPublicRepositories: true\n visibility: selected\n selectedOrganizationIds:\n - ${enterpriseOrganization.databaseId}\n restrictedToWorkflows: true\n selectedWorkflows:\n - my-organization/my-repo/.github/workflows/cool-workflow.yaml@refs/tags/v1\nvariables:\n enterprise:\n fn::invoke:\n Function: github:getEnterprise\n Arguments:\n slug: my-enterprise\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThis resource can be imported using the enterprise slug and the ID of the runner group:\n\n```sh\n$ pulumi import github:index/enterpriseActionsRunnerGroup:EnterpriseActionsRunnerGroup test enterprise-slug/42\n```\n",
+ "properties": {
+ "allowsPublicRepositories": {
+ "type": "boolean",
+ "description": "Whether public repositories can be added to the runner group. Defaults to false.\n"
+ },
+ "default": {
+ "type": "boolean",
+ "description": "Whether this is the default runner group\n"
+ },
+ "enterpriseSlug": {
+ "type": "string",
+ "description": "The slug of the enterprise.\n"
+ },
+ "etag": {
+ "type": "string",
+ "description": "An etag representing the runner group object\n"
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the runner group\n"
+ },
+ "restrictedToWorkflows": {
+ "type": "boolean",
+ "description": "If true, the runner group will be restricted to running only the workflows specified in the selected_workflows array. Defaults to false.\n"
+ },
+ "runnersUrl": {
+ "type": "string",
+ "description": "The GitHub API URL for the runner group's runners\n"
+ },
+ "selectedOrganizationIds": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ },
+ "description": "IDs of the organizations which should be added to the runner group\n"
+ },
+ "selectedOrganizationsUrl": {
+ "type": "string",
+ "description": "The GitHub API URL for the runner group's selected organizations\n"
+ },
+ "selectedWorkflows": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of workflows the runner group should be allowed to run. This setting will be ignored unless restricted_to_workflows is set to true.\n"
+ },
+ "visibility": {
+ "type": "string",
+ "description": "Visibility of a runner group to enterprise organizations. Whether the runner group can include `all` or `selected`\n"
+ }
+ },
+ "required": [
+ "default",
+ "enterpriseSlug",
+ "etag",
+ "name",
+ "runnersUrl",
+ "selectedOrganizationsUrl",
+ "visibility"
+ ],
+ "inputProperties": {
+ "allowsPublicRepositories": {
+ "type": "boolean",
+ "description": "Whether public repositories can be added to the runner group. Defaults to false.\n"
+ },
+ "enterpriseSlug": {
+ "type": "string",
+ "description": "The slug of the enterprise.\n"
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the runner group\n"
+ },
+ "restrictedToWorkflows": {
+ "type": "boolean",
+ "description": "If true, the runner group will be restricted to running only the workflows specified in the selected_workflows array. Defaults to false.\n"
+ },
+ "selectedOrganizationIds": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ },
+ "description": "IDs of the organizations which should be added to the runner group\n"
+ },
+ "selectedWorkflows": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of workflows the runner group should be allowed to run. This setting will be ignored unless restricted_to_workflows is set to true.\n"
+ },
+ "visibility": {
+ "type": "string",
+ "description": "Visibility of a runner group to enterprise organizations. Whether the runner group can include `all` or `selected`\n"
+ }
+ },
+ "requiredInputs": [
+ "enterpriseSlug",
+ "visibility"
+ ],
+ "stateInputs": {
+ "description": "Input properties used for looking up and filtering EnterpriseActionsRunnerGroup resources.\n",
+ "properties": {
+ "allowsPublicRepositories": {
+ "type": "boolean",
+ "description": "Whether public repositories can be added to the runner group. Defaults to false.\n"
+ },
+ "default": {
+ "type": "boolean",
+ "description": "Whether this is the default runner group\n"
+ },
+ "enterpriseSlug": {
+ "type": "string",
+ "description": "The slug of the enterprise.\n"
+ },
+ "etag": {
+ "type": "string",
+ "description": "An etag representing the runner group object\n"
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the runner group\n"
+ },
+ "restrictedToWorkflows": {
+ "type": "boolean",
+ "description": "If true, the runner group will be restricted to running only the workflows specified in the selected_workflows array. Defaults to false.\n"
+ },
+ "runnersUrl": {
+ "type": "string",
+ "description": "The GitHub API URL for the runner group's runners\n"
+ },
+ "selectedOrganizationIds": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ },
+ "description": "IDs of the organizations which should be added to the runner group\n"
+ },
+ "selectedOrganizationsUrl": {
+ "type": "string",
+ "description": "The GitHub API URL for the runner group's selected organizations\n"
+ },
+ "selectedWorkflows": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of workflows the runner group should be allowed to run. This setting will be ignored unless restricted_to_workflows is set to true.\n"
+ },
+ "visibility": {
+ "type": "string",
+ "description": "Visibility of a runner group to enterprise organizations. Whether the runner group can include `all` or `selected`\n"
+ }
+ },
+ "type": "object"
+ }
+ },
"github:index/enterpriseOrganization:EnterpriseOrganization": {
"description": "This resource allows you to create and manage a GitHub enterprise organization.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as github from \"@pulumi/github\";\n\nconst org = new github.EnterpriseOrganization(\"org\", {\n enterpriseId: data.github_enterprise.enterprise.id,\n displayName: \"Some Awesome Org\",\n description: \"Organization created with terraform\",\n billingEmail: \"jon@winteriscoming.com\",\n adminLogins: [\"jon-snow\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_github as github\n\norg = github.EnterpriseOrganization(\"org\",\n enterprise_id=data[\"github_enterprise\"][\"enterprise\"][\"id\"],\n display_name=\"Some Awesome Org\",\n description=\"Organization created with terraform\",\n billing_email=\"jon@winteriscoming.com\",\n admin_logins=[\"jon-snow\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Github = Pulumi.Github;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var org = new Github.EnterpriseOrganization(\"org\", new()\n {\n EnterpriseId = data.Github_enterprise.Enterprise.Id,\n DisplayName = \"Some Awesome Org\",\n Description = \"Organization created with terraform\",\n BillingEmail = \"jon@winteriscoming.com\",\n AdminLogins = new[]\n {\n \"jon-snow\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-github/sdk/v6/go/github\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := github.NewEnterpriseOrganization(ctx, \"org\", \u0026github.EnterpriseOrganizationArgs{\n\t\t\tEnterpriseId: pulumi.Any(data.Github_enterprise.Enterprise.Id),\n\t\t\tDisplayName: pulumi.String(\"Some Awesome Org\"),\n\t\t\tDescription: pulumi.String(\"Organization created with terraform\"),\n\t\t\tBillingEmail: pulumi.String(\"jon@winteriscoming.com\"),\n\t\t\tAdminLogins: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"jon-snow\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.github.EnterpriseOrganization;\nimport com.pulumi.github.EnterpriseOrganizationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var org = new EnterpriseOrganization(\"org\", EnterpriseOrganizationArgs.builder() \n .enterpriseId(data.github_enterprise().enterprise().id())\n .displayName(\"Some Awesome Org\")\n .description(\"Organization created with terraform\")\n .billingEmail(\"jon@winteriscoming.com\")\n .adminLogins(\"jon-snow\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n org:\n type: github:EnterpriseOrganization\n properties:\n enterpriseId: ${data.github_enterprise.enterprise.id}\n displayName: Some Awesome Org\n description: Organization created with terraform\n billingEmail: jon@winteriscoming.com\n adminLogins:\n - jon-snow\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nGitHub Enterprise Organization can be imported using the `slug` of the enterprise, combined with the `orgname` of the organization, separated by a `/` character.\n\n```sh\n$ pulumi import github:index/enterpriseOrganization:EnterpriseOrganization org enterp/some-awesome-org\n```\n",
"properties": {
@@ -5551,6 +5715,10 @@
"type": "string",
"description": "The billing email address.\n"
},
+ "databaseId": {
+ "type": "integer",
+ "description": "The ID of the organization.\n"
+ },
"description": {
"type": "string",
"description": "The description of the organization.\n"
@@ -5571,6 +5739,7 @@
"required": [
"adminLogins",
"billingEmail",
+ "databaseId",
"enterpriseId",
"name"
],
@@ -5624,6 +5793,10 @@
"type": "string",
"description": "The billing email address.\n"
},
+ "databaseId": {
+ "type": "integer",
+ "description": "The ID of the organization.\n"
+ },
"description": {
"type": "string",
"description": "The description of the organization.\n"
@@ -10747,6 +10920,10 @@
"type": "string",
"description": "The time the enterprise was created.\n"
},
+ "databaseId": {
+ "type": "integer",
+ "description": "The database ID of the enterprise.\n"
+ },
"description": {
"type": "string",
"description": "The description of the enterprise.\n"
@@ -10771,6 +10948,7 @@
"type": "object",
"required": [
"createdAt",
+ "databaseId",
"description",
"name",
"slug",
diff --git a/provider/go.mod b/provider/go.mod
index 60812228..0ac2ec80 100644
--- a/provider/go.mod
+++ b/provider/go.mod
@@ -190,7 +190,7 @@ require (
github.com/russross/blackfriday/v2 v2.1.0 // indirect
github.com/ryanuber/go-glob v1.0.0 // indirect
github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 // indirect
- github.com/santhosh-tekuri/jsonschema/v5 v5.3.0 // indirect
+ github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 // indirect
github.com/segmentio/asm v1.2.0 // indirect
github.com/segmentio/encoding v0.3.6 // indirect
github.com/sergi/go-diff v1.3.1 // indirect
@@ -228,15 +228,15 @@ require (
gocloud.dev/secrets/hashivault v0.29.0 // indirect
golang.org/x/crypto v0.21.0 // indirect
golang.org/x/exp v0.0.0-20240103183307-be819d1f06fc // indirect
- golang.org/x/mod v0.15.0 // indirect
- golang.org/x/net v0.21.0 // indirect
- golang.org/x/oauth2 v0.17.0 // indirect
+ golang.org/x/mod v0.16.0 // indirect
+ golang.org/x/net v0.22.0 // indirect
+ golang.org/x/oauth2 v0.18.0 // indirect
golang.org/x/sync v0.6.0 // indirect
golang.org/x/sys v0.18.0 // indirect
golang.org/x/term v0.18.0 // indirect
golang.org/x/text v0.14.0 // indirect
golang.org/x/time v0.5.0 // indirect
- golang.org/x/tools v0.18.0 // indirect
+ golang.org/x/tools v0.19.0 // indirect
golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect
google.golang.org/api v0.155.0 // indirect
google.golang.org/appengine v1.6.8 // indirect
@@ -244,7 +244,7 @@ require (
google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80 // indirect
google.golang.org/grpc v1.62.0 // indirect
- google.golang.org/protobuf v1.32.0 // indirect
+ google.golang.org/protobuf v1.33.0 // indirect
gopkg.in/square/go-jose.v2 v2.6.0 // indirect
gopkg.in/warnings.v0 v0.1.2 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
diff --git a/provider/go.sum b/provider/go.sum
index b28158a2..e54d25fe 100644
--- a/provider/go.sum
+++ b/provider/go.sum
@@ -2891,8 +2891,8 @@ github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06/go.mod h1:+e
github.com/safchain/ethtool v0.0.0-20190326074333-42ed695e3de8/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4=
github.com/safchain/ethtool v0.0.0-20210803160452-9aa261dae9b1/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4=
github.com/sagikazarmark/crypt v0.6.0/go.mod h1:U8+INwJo3nBv1m6A/8OBXAq7Jnpspk5AxSgDyEQcea8=
-github.com/santhosh-tekuri/jsonschema/v5 v5.3.0 h1:uIkTLo0AGRc8l7h5l9r+GcYi9qfVPt6lD4/bhmzfiKo=
-github.com/santhosh-tekuri/jsonschema/v5 v5.3.0/go.mod h1:FKdcjfQW6rpZSnxxUvEA5H/cDPdvJ/SZJQLWWXWGrZ0=
+github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 h1:lZUw3E0/J3roVtGQ+SCrUrg3ON6NgVqpn3+iol9aGu4=
+github.com/santhosh-tekuri/jsonschema/v5 v5.3.1/go.mod h1:uToXkOrWAZ6/Oc07xWQrPOhJotwFIyu2bBVN41fcDUY=
github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=
github.com/scaleway/scaleway-sdk-go v1.0.0-beta.9/go.mod h1:fCa7OJZ/9DRTnOKmxvT6pn+LPWUptQAmHF/SBJUGEcg=
github.com/scaleway/scaleway-sdk-go v1.0.0-beta.12/go.mod h1:fCa7OJZ/9DRTnOKmxvT6pn+LPWUptQAmHF/SBJUGEcg=
@@ -3363,8 +3363,9 @@ golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
-golang.org/x/mod v0.15.0 h1:SernR4v+D55NyBH2QiEQrlBAnj1ECL6AGrA5+dPaMY8=
golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
+golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic=
+golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
golang.org/x/net v0.0.0-20180530234432-1e491301e022/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180811021610-c39426892332/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -3472,8 +3473,8 @@ golang.org/x/net v0.16.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=
golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=
golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ=
golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U=
-golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4=
-golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
+golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc=
+golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -3513,8 +3514,8 @@ golang.org/x/oauth2 v0.10.0/go.mod h1:kTpgurOux7LqtuxjuyZa4Gj2gdezIt/jQtGnNFfypQ
golang.org/x/oauth2 v0.11.0/go.mod h1:LdF7O/8bLR/qWK9DrpXmbHLTouvRHK0SgJl0GmDBchk=
golang.org/x/oauth2 v0.13.0/go.mod h1:/JMhi4ZRXAf4HG9LiNmxvk+45+96RUlVThiH8FzNBn0=
golang.org/x/oauth2 v0.14.0/go.mod h1:lAtNWgaWfL4cm7j2OV8TxGi9Qb7ECORx8DktCY74OwM=
-golang.org/x/oauth2 v0.17.0 h1:6m3ZPmLEFdVxKKWnKq4VqZ60gutO35zm+zrAHVmHyDQ=
-golang.org/x/oauth2 v0.17.0/go.mod h1:OzPDGQiuQMguemayvdylqddI7qcD9lnSDb+1FiwQ5HA=
+golang.org/x/oauth2 v0.18.0 h1:09qnuIAgzdx1XplqJvW6CQqMCtGZykZWcXzPMPUusvI=
+golang.org/x/oauth2 v0.18.0/go.mod h1:Wf7knwG0MPoWIMMBgFlEaSUDaKskp0dCfrlJRJXbBi8=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -3872,8 +3873,8 @@ golang.org/x/tools v0.9.1/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc=
golang.org/x/tools v0.9.3/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc=
golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM=
golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58=
-golang.org/x/tools v0.18.0 h1:k8NLag8AGHnn+PHbl7g43CtqZAwG60vZkLqgyZgIHgQ=
-golang.org/x/tools v0.18.0/go.mod h1:GL7B4CwcLLeo59yx/9UWWuNOW1n3VZ4f5axWfML7Lcg=
+golang.org/x/tools v0.19.0 h1:tfGCXNR1OsFG+sVdLAitlpjAvD/I6dHDKnYrpEZUHkw=
+golang.org/x/tools v0.19.0/go.mod h1:qoJWxmGSIBmAeriMx19ogtrEPrGtDbPK634QFIcLAhc=
golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
@@ -4271,8 +4272,9 @@ google.golang.org/protobuf v1.28.2-0.20230222093303-bc1253ad3743/go.mod h1:HV8QO
google.golang.org/protobuf v1.29.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
-google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I=
google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
+google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI=
+google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U=
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
diff --git a/sdk/dotnet/EnterpriseActionsRunnerGroup.cs b/sdk/dotnet/EnterpriseActionsRunnerGroup.cs
new file mode 100644
index 00000000..dbb2820a
--- /dev/null
+++ b/sdk/dotnet/EnterpriseActionsRunnerGroup.cs
@@ -0,0 +1,330 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Github
+{
+ ///
+ /// This resource allows you to create and manage GitHub Actions runner groups within your GitHub enterprise.
+ /// You must have admin access to an enterprise to use this resource.
+ ///
+ /// ## Example Usage
+ ///
+ /// <!--Start PulumiCodeChooser -->
+ /// ```csharp
+ /// using System.Collections.Generic;
+ /// using System.Linq;
+ /// using Pulumi;
+ /// using Github = Pulumi.Github;
+ ///
+ /// return await Deployment.RunAsync(() =>
+ /// {
+ /// var enterprise = Github.GetEnterprise.Invoke(new()
+ /// {
+ /// Slug = "my-enterprise",
+ /// });
+ ///
+ /// var enterpriseOrganization = new Github.EnterpriseOrganization("enterpriseOrganization", new()
+ /// {
+ /// EnterpriseId = enterprise.Apply(getEnterpriseResult => getEnterpriseResult.Id),
+ /// BillingEmail = "octocat@octo.cat",
+ /// AdminLogins = new[]
+ /// {
+ /// "octocat",
+ /// },
+ /// });
+ ///
+ /// var example = new Github.EnterpriseActionsRunnerGroup("example", new()
+ /// {
+ /// EnterpriseSlug = enterprise.Apply(getEnterpriseResult => getEnterpriseResult.Slug),
+ /// AllowsPublicRepositories = true,
+ /// Visibility = "selected",
+ /// SelectedOrganizationIds = new[]
+ /// {
+ /// enterpriseOrganization.DatabaseId,
+ /// },
+ /// RestrictedToWorkflows = true,
+ /// SelectedWorkflows = new[]
+ /// {
+ /// "my-organization/my-repo/.github/workflows/cool-workflow.yaml@refs/tags/v1",
+ /// },
+ /// });
+ ///
+ /// });
+ /// ```
+ /// <!--End PulumiCodeChooser -->
+ ///
+ /// ## Import
+ ///
+ /// This resource can be imported using the enterprise slug and the ID of the runner group:
+ ///
+ /// ```sh
+ /// $ pulumi import github:index/enterpriseActionsRunnerGroup:EnterpriseActionsRunnerGroup test enterprise-slug/42
+ /// ```
+ ///
+ [GithubResourceType("github:index/enterpriseActionsRunnerGroup:EnterpriseActionsRunnerGroup")]
+ public partial class EnterpriseActionsRunnerGroup : global::Pulumi.CustomResource
+ {
+ ///
+ /// Whether public repositories can be added to the runner group. Defaults to false.
+ ///
+ [Output("allowsPublicRepositories")]
+ public Output AllowsPublicRepositories { get; private set; } = null!;
+
+ ///
+ /// Whether this is the default runner group
+ ///
+ [Output("default")]
+ public Output Default { get; private set; } = null!;
+
+ ///
+ /// The slug of the enterprise.
+ ///
+ [Output("enterpriseSlug")]
+ public Output EnterpriseSlug { get; private set; } = null!;
+
+ ///
+ /// An etag representing the runner group object
+ ///
+ [Output("etag")]
+ public Output Etag { get; private set; } = null!;
+
+ ///
+ /// Name of the runner group
+ ///
+ [Output("name")]
+ public Output Name { get; private set; } = null!;
+
+ ///
+ /// If true, the runner group will be restricted to running only the workflows specified in the selected_workflows array. Defaults to false.
+ ///
+ [Output("restrictedToWorkflows")]
+ public Output RestrictedToWorkflows { get; private set; } = null!;
+
+ ///
+ /// The GitHub API URL for the runner group's runners
+ ///
+ [Output("runnersUrl")]
+ public Output RunnersUrl { get; private set; } = null!;
+
+ ///
+ /// IDs of the organizations which should be added to the runner group
+ ///
+ [Output("selectedOrganizationIds")]
+ public Output> SelectedOrganizationIds { get; private set; } = null!;
+
+ ///
+ /// The GitHub API URL for the runner group's selected organizations
+ ///
+ [Output("selectedOrganizationsUrl")]
+ public Output SelectedOrganizationsUrl { get; private set; } = null!;
+
+ ///
+ /// List of workflows the runner group should be allowed to run. This setting will be ignored unless restricted_to_workflows is set to true.
+ ///
+ [Output("selectedWorkflows")]
+ public Output> SelectedWorkflows { get; private set; } = null!;
+
+ ///
+ /// Visibility of a runner group to enterprise organizations. Whether the runner group can include `all` or `selected`
+ ///
+ [Output("visibility")]
+ public Output Visibility { get; private set; } = null!;
+
+
+ ///
+ /// Create a EnterpriseActionsRunnerGroup resource with the given unique name, arguments, and options.
+ ///
+ ///
+ /// The unique name of the resource
+ /// The arguments used to populate this resource's properties
+ /// A bag of options that control this resource's behavior
+ public EnterpriseActionsRunnerGroup(string name, EnterpriseActionsRunnerGroupArgs args, CustomResourceOptions? options = null)
+ : base("github:index/enterpriseActionsRunnerGroup:EnterpriseActionsRunnerGroup", name, args ?? new EnterpriseActionsRunnerGroupArgs(), MakeResourceOptions(options, ""))
+ {
+ }
+
+ private EnterpriseActionsRunnerGroup(string name, Input id, EnterpriseActionsRunnerGroupState? state = null, CustomResourceOptions? options = null)
+ : base("github:index/enterpriseActionsRunnerGroup:EnterpriseActionsRunnerGroup", name, state, MakeResourceOptions(options, id))
+ {
+ }
+
+ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id)
+ {
+ var defaultOptions = new CustomResourceOptions
+ {
+ Version = Utilities.Version,
+ };
+ var merged = CustomResourceOptions.Merge(defaultOptions, options);
+ // Override the ID if one was specified for consistency with other language SDKs.
+ merged.Id = id ?? merged.Id;
+ return merged;
+ }
+ ///
+ /// Get an existing EnterpriseActionsRunnerGroup resource's state with the given name, ID, and optional extra
+ /// properties used to qualify the lookup.
+ ///
+ ///
+ /// The unique name of the resulting resource.
+ /// The unique provider ID of the resource to lookup.
+ /// Any extra arguments used during the lookup.
+ /// A bag of options that control this resource's behavior
+ public static EnterpriseActionsRunnerGroup Get(string name, Input id, EnterpriseActionsRunnerGroupState? state = null, CustomResourceOptions? options = null)
+ {
+ return new EnterpriseActionsRunnerGroup(name, id, state, options);
+ }
+ }
+
+ public sealed class EnterpriseActionsRunnerGroupArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// Whether public repositories can be added to the runner group. Defaults to false.
+ ///
+ [Input("allowsPublicRepositories")]
+ public Input? AllowsPublicRepositories { get; set; }
+
+ ///
+ /// The slug of the enterprise.
+ ///
+ [Input("enterpriseSlug", required: true)]
+ public Input EnterpriseSlug { get; set; } = null!;
+
+ ///
+ /// Name of the runner group
+ ///
+ [Input("name")]
+ public Input? Name { get; set; }
+
+ ///
+ /// If true, the runner group will be restricted to running only the workflows specified in the selected_workflows array. Defaults to false.
+ ///
+ [Input("restrictedToWorkflows")]
+ public Input? RestrictedToWorkflows { get; set; }
+
+ [Input("selectedOrganizationIds")]
+ private InputList? _selectedOrganizationIds;
+
+ ///
+ /// IDs of the organizations which should be added to the runner group
+ ///
+ public InputList SelectedOrganizationIds
+ {
+ get => _selectedOrganizationIds ?? (_selectedOrganizationIds = new InputList());
+ set => _selectedOrganizationIds = value;
+ }
+
+ [Input("selectedWorkflows")]
+ private InputList? _selectedWorkflows;
+
+ ///
+ /// List of workflows the runner group should be allowed to run. This setting will be ignored unless restricted_to_workflows is set to true.
+ ///
+ public InputList SelectedWorkflows
+ {
+ get => _selectedWorkflows ?? (_selectedWorkflows = new InputList());
+ set => _selectedWorkflows = value;
+ }
+
+ ///
+ /// Visibility of a runner group to enterprise organizations. Whether the runner group can include `all` or `selected`
+ ///
+ [Input("visibility", required: true)]
+ public Input Visibility { get; set; } = null!;
+
+ public EnterpriseActionsRunnerGroupArgs()
+ {
+ }
+ public static new EnterpriseActionsRunnerGroupArgs Empty => new EnterpriseActionsRunnerGroupArgs();
+ }
+
+ public sealed class EnterpriseActionsRunnerGroupState : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// Whether public repositories can be added to the runner group. Defaults to false.
+ ///
+ [Input("allowsPublicRepositories")]
+ public Input? AllowsPublicRepositories { get; set; }
+
+ ///
+ /// Whether this is the default runner group
+ ///
+ [Input("default")]
+ public Input? Default { get; set; }
+
+ ///
+ /// The slug of the enterprise.
+ ///
+ [Input("enterpriseSlug")]
+ public Input? EnterpriseSlug { get; set; }
+
+ ///
+ /// An etag representing the runner group object
+ ///
+ [Input("etag")]
+ public Input? Etag { get; set; }
+
+ ///
+ /// Name of the runner group
+ ///
+ [Input("name")]
+ public Input? Name { get; set; }
+
+ ///
+ /// If true, the runner group will be restricted to running only the workflows specified in the selected_workflows array. Defaults to false.
+ ///
+ [Input("restrictedToWorkflows")]
+ public Input? RestrictedToWorkflows { get; set; }
+
+ ///
+ /// The GitHub API URL for the runner group's runners
+ ///
+ [Input("runnersUrl")]
+ public Input? RunnersUrl { get; set; }
+
+ [Input("selectedOrganizationIds")]
+ private InputList? _selectedOrganizationIds;
+
+ ///
+ /// IDs of the organizations which should be added to the runner group
+ ///
+ public InputList SelectedOrganizationIds
+ {
+ get => _selectedOrganizationIds ?? (_selectedOrganizationIds = new InputList());
+ set => _selectedOrganizationIds = value;
+ }
+
+ ///
+ /// The GitHub API URL for the runner group's selected organizations
+ ///
+ [Input("selectedOrganizationsUrl")]
+ public Input? SelectedOrganizationsUrl { get; set; }
+
+ [Input("selectedWorkflows")]
+ private InputList? _selectedWorkflows;
+
+ ///
+ /// List of workflows the runner group should be allowed to run. This setting will be ignored unless restricted_to_workflows is set to true.
+ ///
+ public InputList SelectedWorkflows
+ {
+ get => _selectedWorkflows ?? (_selectedWorkflows = new InputList());
+ set => _selectedWorkflows = value;
+ }
+
+ ///
+ /// Visibility of a runner group to enterprise organizations. Whether the runner group can include `all` or `selected`
+ ///
+ [Input("visibility")]
+ public Input? Visibility { get; set; }
+
+ public EnterpriseActionsRunnerGroupState()
+ {
+ }
+ public static new EnterpriseActionsRunnerGroupState Empty => new EnterpriseActionsRunnerGroupState();
+ }
+}
diff --git a/sdk/dotnet/EnterpriseOrganization.cs b/sdk/dotnet/EnterpriseOrganization.cs
index 8fe14bb0..775ebc02 100644
--- a/sdk/dotnet/EnterpriseOrganization.cs
+++ b/sdk/dotnet/EnterpriseOrganization.cs
@@ -62,6 +62,12 @@ public partial class EnterpriseOrganization : global::Pulumi.CustomResource
[Output("billingEmail")]
public Output BillingEmail { get; private set; } = null!;
+ ///
+ /// The ID of the organization.
+ ///
+ [Output("databaseId")]
+ public Output DatabaseId { get; private set; } = null!;
+
///
/// The description of the organization.
///
@@ -200,6 +206,12 @@ public InputList AdminLogins
[Input("billingEmail")]
public Input? BillingEmail { get; set; }
+ ///
+ /// The ID of the organization.
+ ///
+ [Input("databaseId")]
+ public Input? DatabaseId { get; set; }
+
///
/// The description of the organization.
///
diff --git a/sdk/dotnet/GetEnterprise.cs b/sdk/dotnet/GetEnterprise.cs
index 63b96268..71591ca3 100644
--- a/sdk/dotnet/GetEnterprise.cs
+++ b/sdk/dotnet/GetEnterprise.cs
@@ -102,6 +102,10 @@ public sealed class GetEnterpriseResult
///
public readonly string CreatedAt;
///
+ /// The database ID of the enterprise.
+ ///
+ public readonly int DatabaseId;
+ ///
/// The description of the enterprise.
///
public readonly string Description;
@@ -126,6 +130,8 @@ public sealed class GetEnterpriseResult
private GetEnterpriseResult(
string createdAt,
+ int databaseId,
+
string description,
string id,
@@ -137,6 +143,7 @@ private GetEnterpriseResult(
string url)
{
CreatedAt = createdAt;
+ DatabaseId = databaseId;
Description = description;
Id = id;
Name = name;
diff --git a/sdk/dotnet/Inputs/BranchProtectionV3RequiredPullRequestReviewsArgs.cs b/sdk/dotnet/Inputs/BranchProtectionV3RequiredPullRequestReviewsArgs.cs
index 60da6e83..b05de96a 100644
--- a/sdk/dotnet/Inputs/BranchProtectionV3RequiredPullRequestReviewsArgs.cs
+++ b/sdk/dotnet/Inputs/BranchProtectionV3RequiredPullRequestReviewsArgs.cs
@@ -70,6 +70,12 @@ public InputList DismissalUsers
[Input("requireCodeOwnerReviews")]
public Input? RequireCodeOwnerReviews { get; set; }
+ ///
+ /// Require that the most recent push must be approved by someone other than the last pusher. Defaults to `false`
+ ///
+ [Input("requireLastPushApproval")]
+ public Input? RequireLastPushApproval { get; set; }
+
///
/// Require x number of approvals to satisfy branch protection requirements. If this is specified it must be a number between 0-6. This requirement matches GitHub's API, see the upstream [documentation](https://developer.github.com/v3/repos/branches/#parameters-1) for more information.
///
diff --git a/sdk/dotnet/Inputs/BranchProtectionV3RequiredPullRequestReviewsGetArgs.cs b/sdk/dotnet/Inputs/BranchProtectionV3RequiredPullRequestReviewsGetArgs.cs
index 893f1e4a..3839da83 100644
--- a/sdk/dotnet/Inputs/BranchProtectionV3RequiredPullRequestReviewsGetArgs.cs
+++ b/sdk/dotnet/Inputs/BranchProtectionV3RequiredPullRequestReviewsGetArgs.cs
@@ -70,6 +70,12 @@ public InputList DismissalUsers
[Input("requireCodeOwnerReviews")]
public Input? RequireCodeOwnerReviews { get; set; }
+ ///
+ /// Require that the most recent push must be approved by someone other than the last pusher. Defaults to `false`
+ ///
+ [Input("requireLastPushApproval")]
+ public Input? RequireLastPushApproval { get; set; }
+
///
/// Require x number of approvals to satisfy branch protection requirements. If this is specified it must be a number between 0-6. This requirement matches GitHub's API, see the upstream [documentation](https://developer.github.com/v3/repos/branches/#parameters-1) for more information.
///
diff --git a/sdk/dotnet/Outputs/BranchProtectionV3RequiredPullRequestReviews.cs b/sdk/dotnet/Outputs/BranchProtectionV3RequiredPullRequestReviews.cs
index 3558a2fb..ca518f8e 100644
--- a/sdk/dotnet/Outputs/BranchProtectionV3RequiredPullRequestReviews.cs
+++ b/sdk/dotnet/Outputs/BranchProtectionV3RequiredPullRequestReviews.cs
@@ -40,6 +40,10 @@ public sealed class BranchProtectionV3RequiredPullRequestReviews
///
public readonly bool? RequireCodeOwnerReviews;
///
+ /// Require that the most recent push must be approved by someone other than the last pusher. Defaults to `false`
+ ///
+ public readonly bool? RequireLastPushApproval;
+ ///
/// Require x number of approvals to satisfy branch protection requirements. If this is specified it must be a number between 0-6. This requirement matches GitHub's API, see the upstream [documentation](https://developer.github.com/v3/repos/branches/#parameters-1) for more information.
///
public readonly int? RequiredApprovingReviewCount;
@@ -60,6 +64,8 @@ private BranchProtectionV3RequiredPullRequestReviews(
bool? requireCodeOwnerReviews,
+ bool? requireLastPushApproval,
+
int? requiredApprovingReviewCount)
{
BypassPullRequestAllowances = bypassPullRequestAllowances;
@@ -69,6 +75,7 @@ private BranchProtectionV3RequiredPullRequestReviews(
DismissalUsers = dismissalUsers;
IncludeAdmins = includeAdmins;
RequireCodeOwnerReviews = requireCodeOwnerReviews;
+ RequireLastPushApproval = requireLastPushApproval;
RequiredApprovingReviewCount = requiredApprovingReviewCount;
}
}
diff --git a/sdk/go/github/enterpriseActionsRunnerGroup.go b/sdk/go/github/enterpriseActionsRunnerGroup.go
new file mode 100644
index 00000000..6bbdf48d
--- /dev/null
+++ b/sdk/go/github/enterpriseActionsRunnerGroup.go
@@ -0,0 +1,418 @@
+// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
+// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
+
+package github
+
+import (
+ "context"
+ "reflect"
+
+ "errors"
+ "github.com/pulumi/pulumi-github/sdk/v6/go/github/internal"
+ "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
+)
+
+// This resource allows you to create and manage GitHub Actions runner groups within your GitHub enterprise.
+// You must have admin access to an enterprise to use this resource.
+//
+// ## Example Usage
+//
+//
+// ```go
+// package main
+//
+// import (
+//
+// "github.com/pulumi/pulumi-github/sdk/v6/go/github"
+// "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
+//
+// )
+//
+// func main() {
+// pulumi.Run(func(ctx *pulumi.Context) error {
+// enterprise, err := github.GetEnterprise(ctx, &github.GetEnterpriseArgs{
+// Slug: "my-enterprise",
+// }, nil)
+// if err != nil {
+// return err
+// }
+// enterpriseOrganization, err := github.NewEnterpriseOrganization(ctx, "enterpriseOrganization", &github.EnterpriseOrganizationArgs{
+// EnterpriseId: pulumi.String(enterprise.Id),
+// BillingEmail: pulumi.String("octocat@octo.cat"),
+// AdminLogins: pulumi.StringArray{
+// pulumi.String("octocat"),
+// },
+// })
+// if err != nil {
+// return err
+// }
+// _, err = github.NewEnterpriseActionsRunnerGroup(ctx, "example", &github.EnterpriseActionsRunnerGroupArgs{
+// EnterpriseSlug: pulumi.String(enterprise.Slug),
+// AllowsPublicRepositories: pulumi.Bool(true),
+// Visibility: pulumi.String("selected"),
+// SelectedOrganizationIds: pulumi.IntArray{
+// enterpriseOrganization.DatabaseId,
+// },
+// RestrictedToWorkflows: pulumi.Bool(true),
+// SelectedWorkflows: pulumi.StringArray{
+// pulumi.String("my-organization/my-repo/.github/workflows/cool-workflow.yaml@refs/tags/v1"),
+// },
+// })
+// if err != nil {
+// return err
+// }
+// return nil
+// })
+// }
+//
+// ```
+//
+//
+// ## Import
+//
+// This resource can be imported using the enterprise slug and the ID of the runner group:
+//
+// ```sh
+// $ pulumi import github:index/enterpriseActionsRunnerGroup:EnterpriseActionsRunnerGroup test enterprise-slug/42
+// ```
+type EnterpriseActionsRunnerGroup struct {
+ pulumi.CustomResourceState
+
+ // Whether public repositories can be added to the runner group. Defaults to false.
+ AllowsPublicRepositories pulumi.BoolPtrOutput `pulumi:"allowsPublicRepositories"`
+ // Whether this is the default runner group
+ Default pulumi.BoolOutput `pulumi:"default"`
+ // The slug of the enterprise.
+ EnterpriseSlug pulumi.StringOutput `pulumi:"enterpriseSlug"`
+ // An etag representing the runner group object
+ Etag pulumi.StringOutput `pulumi:"etag"`
+ // Name of the runner group
+ Name pulumi.StringOutput `pulumi:"name"`
+ // If true, the runner group will be restricted to running only the workflows specified in the selectedWorkflows array. Defaults to false.
+ RestrictedToWorkflows pulumi.BoolPtrOutput `pulumi:"restrictedToWorkflows"`
+ // The GitHub API URL for the runner group's runners
+ RunnersUrl pulumi.StringOutput `pulumi:"runnersUrl"`
+ // IDs of the organizations which should be added to the runner group
+ SelectedOrganizationIds pulumi.IntArrayOutput `pulumi:"selectedOrganizationIds"`
+ // The GitHub API URL for the runner group's selected organizations
+ SelectedOrganizationsUrl pulumi.StringOutput `pulumi:"selectedOrganizationsUrl"`
+ // List of workflows the runner group should be allowed to run. This setting will be ignored unless restrictedToWorkflows is set to true.
+ SelectedWorkflows pulumi.StringArrayOutput `pulumi:"selectedWorkflows"`
+ // Visibility of a runner group to enterprise organizations. Whether the runner group can include `all` or `selected`
+ Visibility pulumi.StringOutput `pulumi:"visibility"`
+}
+
+// NewEnterpriseActionsRunnerGroup registers a new resource with the given unique name, arguments, and options.
+func NewEnterpriseActionsRunnerGroup(ctx *pulumi.Context,
+ name string, args *EnterpriseActionsRunnerGroupArgs, opts ...pulumi.ResourceOption) (*EnterpriseActionsRunnerGroup, error) {
+ if args == nil {
+ return nil, errors.New("missing one or more required arguments")
+ }
+
+ if args.EnterpriseSlug == nil {
+ return nil, errors.New("invalid value for required argument 'EnterpriseSlug'")
+ }
+ if args.Visibility == nil {
+ return nil, errors.New("invalid value for required argument 'Visibility'")
+ }
+ opts = internal.PkgResourceDefaultOpts(opts)
+ var resource EnterpriseActionsRunnerGroup
+ err := ctx.RegisterResource("github:index/enterpriseActionsRunnerGroup:EnterpriseActionsRunnerGroup", name, args, &resource, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return &resource, nil
+}
+
+// GetEnterpriseActionsRunnerGroup gets an existing EnterpriseActionsRunnerGroup resource's state with the given name, ID, and optional
+// state properties that are used to uniquely qualify the lookup (nil if not required).
+func GetEnterpriseActionsRunnerGroup(ctx *pulumi.Context,
+ name string, id pulumi.IDInput, state *EnterpriseActionsRunnerGroupState, opts ...pulumi.ResourceOption) (*EnterpriseActionsRunnerGroup, error) {
+ var resource EnterpriseActionsRunnerGroup
+ err := ctx.ReadResource("github:index/enterpriseActionsRunnerGroup:EnterpriseActionsRunnerGroup", name, id, state, &resource, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return &resource, nil
+}
+
+// Input properties used for looking up and filtering EnterpriseActionsRunnerGroup resources.
+type enterpriseActionsRunnerGroupState struct {
+ // Whether public repositories can be added to the runner group. Defaults to false.
+ AllowsPublicRepositories *bool `pulumi:"allowsPublicRepositories"`
+ // Whether this is the default runner group
+ Default *bool `pulumi:"default"`
+ // The slug of the enterprise.
+ EnterpriseSlug *string `pulumi:"enterpriseSlug"`
+ // An etag representing the runner group object
+ Etag *string `pulumi:"etag"`
+ // Name of the runner group
+ Name *string `pulumi:"name"`
+ // If true, the runner group will be restricted to running only the workflows specified in the selectedWorkflows array. Defaults to false.
+ RestrictedToWorkflows *bool `pulumi:"restrictedToWorkflows"`
+ // The GitHub API URL for the runner group's runners
+ RunnersUrl *string `pulumi:"runnersUrl"`
+ // IDs of the organizations which should be added to the runner group
+ SelectedOrganizationIds []int `pulumi:"selectedOrganizationIds"`
+ // The GitHub API URL for the runner group's selected organizations
+ SelectedOrganizationsUrl *string `pulumi:"selectedOrganizationsUrl"`
+ // List of workflows the runner group should be allowed to run. This setting will be ignored unless restrictedToWorkflows is set to true.
+ SelectedWorkflows []string `pulumi:"selectedWorkflows"`
+ // Visibility of a runner group to enterprise organizations. Whether the runner group can include `all` or `selected`
+ Visibility *string `pulumi:"visibility"`
+}
+
+type EnterpriseActionsRunnerGroupState struct {
+ // Whether public repositories can be added to the runner group. Defaults to false.
+ AllowsPublicRepositories pulumi.BoolPtrInput
+ // Whether this is the default runner group
+ Default pulumi.BoolPtrInput
+ // The slug of the enterprise.
+ EnterpriseSlug pulumi.StringPtrInput
+ // An etag representing the runner group object
+ Etag pulumi.StringPtrInput
+ // Name of the runner group
+ Name pulumi.StringPtrInput
+ // If true, the runner group will be restricted to running only the workflows specified in the selectedWorkflows array. Defaults to false.
+ RestrictedToWorkflows pulumi.BoolPtrInput
+ // The GitHub API URL for the runner group's runners
+ RunnersUrl pulumi.StringPtrInput
+ // IDs of the organizations which should be added to the runner group
+ SelectedOrganizationIds pulumi.IntArrayInput
+ // The GitHub API URL for the runner group's selected organizations
+ SelectedOrganizationsUrl pulumi.StringPtrInput
+ // List of workflows the runner group should be allowed to run. This setting will be ignored unless restrictedToWorkflows is set to true.
+ SelectedWorkflows pulumi.StringArrayInput
+ // Visibility of a runner group to enterprise organizations. Whether the runner group can include `all` or `selected`
+ Visibility pulumi.StringPtrInput
+}
+
+func (EnterpriseActionsRunnerGroupState) ElementType() reflect.Type {
+ return reflect.TypeOf((*enterpriseActionsRunnerGroupState)(nil)).Elem()
+}
+
+type enterpriseActionsRunnerGroupArgs struct {
+ // Whether public repositories can be added to the runner group. Defaults to false.
+ AllowsPublicRepositories *bool `pulumi:"allowsPublicRepositories"`
+ // The slug of the enterprise.
+ EnterpriseSlug string `pulumi:"enterpriseSlug"`
+ // Name of the runner group
+ Name *string `pulumi:"name"`
+ // If true, the runner group will be restricted to running only the workflows specified in the selectedWorkflows array. Defaults to false.
+ RestrictedToWorkflows *bool `pulumi:"restrictedToWorkflows"`
+ // IDs of the organizations which should be added to the runner group
+ SelectedOrganizationIds []int `pulumi:"selectedOrganizationIds"`
+ // List of workflows the runner group should be allowed to run. This setting will be ignored unless restrictedToWorkflows is set to true.
+ SelectedWorkflows []string `pulumi:"selectedWorkflows"`
+ // Visibility of a runner group to enterprise organizations. Whether the runner group can include `all` or `selected`
+ Visibility string `pulumi:"visibility"`
+}
+
+// The set of arguments for constructing a EnterpriseActionsRunnerGroup resource.
+type EnterpriseActionsRunnerGroupArgs struct {
+ // Whether public repositories can be added to the runner group. Defaults to false.
+ AllowsPublicRepositories pulumi.BoolPtrInput
+ // The slug of the enterprise.
+ EnterpriseSlug pulumi.StringInput
+ // Name of the runner group
+ Name pulumi.StringPtrInput
+ // If true, the runner group will be restricted to running only the workflows specified in the selectedWorkflows array. Defaults to false.
+ RestrictedToWorkflows pulumi.BoolPtrInput
+ // IDs of the organizations which should be added to the runner group
+ SelectedOrganizationIds pulumi.IntArrayInput
+ // List of workflows the runner group should be allowed to run. This setting will be ignored unless restrictedToWorkflows is set to true.
+ SelectedWorkflows pulumi.StringArrayInput
+ // Visibility of a runner group to enterprise organizations. Whether the runner group can include `all` or `selected`
+ Visibility pulumi.StringInput
+}
+
+func (EnterpriseActionsRunnerGroupArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*enterpriseActionsRunnerGroupArgs)(nil)).Elem()
+}
+
+type EnterpriseActionsRunnerGroupInput interface {
+ pulumi.Input
+
+ ToEnterpriseActionsRunnerGroupOutput() EnterpriseActionsRunnerGroupOutput
+ ToEnterpriseActionsRunnerGroupOutputWithContext(ctx context.Context) EnterpriseActionsRunnerGroupOutput
+}
+
+func (*EnterpriseActionsRunnerGroup) ElementType() reflect.Type {
+ return reflect.TypeOf((**EnterpriseActionsRunnerGroup)(nil)).Elem()
+}
+
+func (i *EnterpriseActionsRunnerGroup) ToEnterpriseActionsRunnerGroupOutput() EnterpriseActionsRunnerGroupOutput {
+ return i.ToEnterpriseActionsRunnerGroupOutputWithContext(context.Background())
+}
+
+func (i *EnterpriseActionsRunnerGroup) ToEnterpriseActionsRunnerGroupOutputWithContext(ctx context.Context) EnterpriseActionsRunnerGroupOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(EnterpriseActionsRunnerGroupOutput)
+}
+
+// EnterpriseActionsRunnerGroupArrayInput is an input type that accepts EnterpriseActionsRunnerGroupArray and EnterpriseActionsRunnerGroupArrayOutput values.
+// You can construct a concrete instance of `EnterpriseActionsRunnerGroupArrayInput` via:
+//
+// EnterpriseActionsRunnerGroupArray{ EnterpriseActionsRunnerGroupArgs{...} }
+type EnterpriseActionsRunnerGroupArrayInput interface {
+ pulumi.Input
+
+ ToEnterpriseActionsRunnerGroupArrayOutput() EnterpriseActionsRunnerGroupArrayOutput
+ ToEnterpriseActionsRunnerGroupArrayOutputWithContext(context.Context) EnterpriseActionsRunnerGroupArrayOutput
+}
+
+type EnterpriseActionsRunnerGroupArray []EnterpriseActionsRunnerGroupInput
+
+func (EnterpriseActionsRunnerGroupArray) ElementType() reflect.Type {
+ return reflect.TypeOf((*[]*EnterpriseActionsRunnerGroup)(nil)).Elem()
+}
+
+func (i EnterpriseActionsRunnerGroupArray) ToEnterpriseActionsRunnerGroupArrayOutput() EnterpriseActionsRunnerGroupArrayOutput {
+ return i.ToEnterpriseActionsRunnerGroupArrayOutputWithContext(context.Background())
+}
+
+func (i EnterpriseActionsRunnerGroupArray) ToEnterpriseActionsRunnerGroupArrayOutputWithContext(ctx context.Context) EnterpriseActionsRunnerGroupArrayOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(EnterpriseActionsRunnerGroupArrayOutput)
+}
+
+// EnterpriseActionsRunnerGroupMapInput is an input type that accepts EnterpriseActionsRunnerGroupMap and EnterpriseActionsRunnerGroupMapOutput values.
+// You can construct a concrete instance of `EnterpriseActionsRunnerGroupMapInput` via:
+//
+// EnterpriseActionsRunnerGroupMap{ "key": EnterpriseActionsRunnerGroupArgs{...} }
+type EnterpriseActionsRunnerGroupMapInput interface {
+ pulumi.Input
+
+ ToEnterpriseActionsRunnerGroupMapOutput() EnterpriseActionsRunnerGroupMapOutput
+ ToEnterpriseActionsRunnerGroupMapOutputWithContext(context.Context) EnterpriseActionsRunnerGroupMapOutput
+}
+
+type EnterpriseActionsRunnerGroupMap map[string]EnterpriseActionsRunnerGroupInput
+
+func (EnterpriseActionsRunnerGroupMap) ElementType() reflect.Type {
+ return reflect.TypeOf((*map[string]*EnterpriseActionsRunnerGroup)(nil)).Elem()
+}
+
+func (i EnterpriseActionsRunnerGroupMap) ToEnterpriseActionsRunnerGroupMapOutput() EnterpriseActionsRunnerGroupMapOutput {
+ return i.ToEnterpriseActionsRunnerGroupMapOutputWithContext(context.Background())
+}
+
+func (i EnterpriseActionsRunnerGroupMap) ToEnterpriseActionsRunnerGroupMapOutputWithContext(ctx context.Context) EnterpriseActionsRunnerGroupMapOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(EnterpriseActionsRunnerGroupMapOutput)
+}
+
+type EnterpriseActionsRunnerGroupOutput struct{ *pulumi.OutputState }
+
+func (EnterpriseActionsRunnerGroupOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((**EnterpriseActionsRunnerGroup)(nil)).Elem()
+}
+
+func (o EnterpriseActionsRunnerGroupOutput) ToEnterpriseActionsRunnerGroupOutput() EnterpriseActionsRunnerGroupOutput {
+ return o
+}
+
+func (o EnterpriseActionsRunnerGroupOutput) ToEnterpriseActionsRunnerGroupOutputWithContext(ctx context.Context) EnterpriseActionsRunnerGroupOutput {
+ return o
+}
+
+// Whether public repositories can be added to the runner group. Defaults to false.
+func (o EnterpriseActionsRunnerGroupOutput) AllowsPublicRepositories() pulumi.BoolPtrOutput {
+ return o.ApplyT(func(v *EnterpriseActionsRunnerGroup) pulumi.BoolPtrOutput { return v.AllowsPublicRepositories }).(pulumi.BoolPtrOutput)
+}
+
+// Whether this is the default runner group
+func (o EnterpriseActionsRunnerGroupOutput) Default() pulumi.BoolOutput {
+ return o.ApplyT(func(v *EnterpriseActionsRunnerGroup) pulumi.BoolOutput { return v.Default }).(pulumi.BoolOutput)
+}
+
+// The slug of the enterprise.
+func (o EnterpriseActionsRunnerGroupOutput) EnterpriseSlug() pulumi.StringOutput {
+ return o.ApplyT(func(v *EnterpriseActionsRunnerGroup) pulumi.StringOutput { return v.EnterpriseSlug }).(pulumi.StringOutput)
+}
+
+// An etag representing the runner group object
+func (o EnterpriseActionsRunnerGroupOutput) Etag() pulumi.StringOutput {
+ return o.ApplyT(func(v *EnterpriseActionsRunnerGroup) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput)
+}
+
+// Name of the runner group
+func (o EnterpriseActionsRunnerGroupOutput) Name() pulumi.StringOutput {
+ return o.ApplyT(func(v *EnterpriseActionsRunnerGroup) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
+}
+
+// If true, the runner group will be restricted to running only the workflows specified in the selectedWorkflows array. Defaults to false.
+func (o EnterpriseActionsRunnerGroupOutput) RestrictedToWorkflows() pulumi.BoolPtrOutput {
+ return o.ApplyT(func(v *EnterpriseActionsRunnerGroup) pulumi.BoolPtrOutput { return v.RestrictedToWorkflows }).(pulumi.BoolPtrOutput)
+}
+
+// The GitHub API URL for the runner group's runners
+func (o EnterpriseActionsRunnerGroupOutput) RunnersUrl() pulumi.StringOutput {
+ return o.ApplyT(func(v *EnterpriseActionsRunnerGroup) pulumi.StringOutput { return v.RunnersUrl }).(pulumi.StringOutput)
+}
+
+// IDs of the organizations which should be added to the runner group
+func (o EnterpriseActionsRunnerGroupOutput) SelectedOrganizationIds() pulumi.IntArrayOutput {
+ return o.ApplyT(func(v *EnterpriseActionsRunnerGroup) pulumi.IntArrayOutput { return v.SelectedOrganizationIds }).(pulumi.IntArrayOutput)
+}
+
+// The GitHub API URL for the runner group's selected organizations
+func (o EnterpriseActionsRunnerGroupOutput) SelectedOrganizationsUrl() pulumi.StringOutput {
+ return o.ApplyT(func(v *EnterpriseActionsRunnerGroup) pulumi.StringOutput { return v.SelectedOrganizationsUrl }).(pulumi.StringOutput)
+}
+
+// List of workflows the runner group should be allowed to run. This setting will be ignored unless restrictedToWorkflows is set to true.
+func (o EnterpriseActionsRunnerGroupOutput) SelectedWorkflows() pulumi.StringArrayOutput {
+ return o.ApplyT(func(v *EnterpriseActionsRunnerGroup) pulumi.StringArrayOutput { return v.SelectedWorkflows }).(pulumi.StringArrayOutput)
+}
+
+// Visibility of a runner group to enterprise organizations. Whether the runner group can include `all` or `selected`
+func (o EnterpriseActionsRunnerGroupOutput) Visibility() pulumi.StringOutput {
+ return o.ApplyT(func(v *EnterpriseActionsRunnerGroup) pulumi.StringOutput { return v.Visibility }).(pulumi.StringOutput)
+}
+
+type EnterpriseActionsRunnerGroupArrayOutput struct{ *pulumi.OutputState }
+
+func (EnterpriseActionsRunnerGroupArrayOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*[]*EnterpriseActionsRunnerGroup)(nil)).Elem()
+}
+
+func (o EnterpriseActionsRunnerGroupArrayOutput) ToEnterpriseActionsRunnerGroupArrayOutput() EnterpriseActionsRunnerGroupArrayOutput {
+ return o
+}
+
+func (o EnterpriseActionsRunnerGroupArrayOutput) ToEnterpriseActionsRunnerGroupArrayOutputWithContext(ctx context.Context) EnterpriseActionsRunnerGroupArrayOutput {
+ return o
+}
+
+func (o EnterpriseActionsRunnerGroupArrayOutput) Index(i pulumi.IntInput) EnterpriseActionsRunnerGroupOutput {
+ return pulumi.All(o, i).ApplyT(func(vs []interface{}) *EnterpriseActionsRunnerGroup {
+ return vs[0].([]*EnterpriseActionsRunnerGroup)[vs[1].(int)]
+ }).(EnterpriseActionsRunnerGroupOutput)
+}
+
+type EnterpriseActionsRunnerGroupMapOutput struct{ *pulumi.OutputState }
+
+func (EnterpriseActionsRunnerGroupMapOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*map[string]*EnterpriseActionsRunnerGroup)(nil)).Elem()
+}
+
+func (o EnterpriseActionsRunnerGroupMapOutput) ToEnterpriseActionsRunnerGroupMapOutput() EnterpriseActionsRunnerGroupMapOutput {
+ return o
+}
+
+func (o EnterpriseActionsRunnerGroupMapOutput) ToEnterpriseActionsRunnerGroupMapOutputWithContext(ctx context.Context) EnterpriseActionsRunnerGroupMapOutput {
+ return o
+}
+
+func (o EnterpriseActionsRunnerGroupMapOutput) MapIndex(k pulumi.StringInput) EnterpriseActionsRunnerGroupOutput {
+ return pulumi.All(o, k).ApplyT(func(vs []interface{}) *EnterpriseActionsRunnerGroup {
+ return vs[0].(map[string]*EnterpriseActionsRunnerGroup)[vs[1].(string)]
+ }).(EnterpriseActionsRunnerGroupOutput)
+}
+
+func init() {
+ pulumi.RegisterInputType(reflect.TypeOf((*EnterpriseActionsRunnerGroupInput)(nil)).Elem(), &EnterpriseActionsRunnerGroup{})
+ pulumi.RegisterInputType(reflect.TypeOf((*EnterpriseActionsRunnerGroupArrayInput)(nil)).Elem(), EnterpriseActionsRunnerGroupArray{})
+ pulumi.RegisterInputType(reflect.TypeOf((*EnterpriseActionsRunnerGroupMapInput)(nil)).Elem(), EnterpriseActionsRunnerGroupMap{})
+ pulumi.RegisterOutputType(EnterpriseActionsRunnerGroupOutput{})
+ pulumi.RegisterOutputType(EnterpriseActionsRunnerGroupArrayOutput{})
+ pulumi.RegisterOutputType(EnterpriseActionsRunnerGroupMapOutput{})
+}
diff --git a/sdk/go/github/enterpriseOrganization.go b/sdk/go/github/enterpriseOrganization.go
index 5144d67d..70cac19e 100644
--- a/sdk/go/github/enterpriseOrganization.go
+++ b/sdk/go/github/enterpriseOrganization.go
@@ -62,6 +62,8 @@ type EnterpriseOrganization struct {
AdminLogins pulumi.StringArrayOutput `pulumi:"adminLogins"`
// The billing email address.
BillingEmail pulumi.StringOutput `pulumi:"billingEmail"`
+ // The ID of the organization.
+ DatabaseId pulumi.IntOutput `pulumi:"databaseId"`
// The description of the organization.
Description pulumi.StringPtrOutput `pulumi:"description"`
// The display name of the organization.
@@ -115,6 +117,8 @@ type enterpriseOrganizationState struct {
AdminLogins []string `pulumi:"adminLogins"`
// The billing email address.
BillingEmail *string `pulumi:"billingEmail"`
+ // The ID of the organization.
+ DatabaseId *int `pulumi:"databaseId"`
// The description of the organization.
Description *string `pulumi:"description"`
// The display name of the organization.
@@ -130,6 +134,8 @@ type EnterpriseOrganizationState struct {
AdminLogins pulumi.StringArrayInput
// The billing email address.
BillingEmail pulumi.StringPtrInput
+ // The ID of the organization.
+ DatabaseId pulumi.IntPtrInput
// The description of the organization.
Description pulumi.StringPtrInput
// The display name of the organization.
@@ -272,6 +278,11 @@ func (o EnterpriseOrganizationOutput) BillingEmail() pulumi.StringOutput {
return o.ApplyT(func(v *EnterpriseOrganization) pulumi.StringOutput { return v.BillingEmail }).(pulumi.StringOutput)
}
+// The ID of the organization.
+func (o EnterpriseOrganizationOutput) DatabaseId() pulumi.IntOutput {
+ return o.ApplyT(func(v *EnterpriseOrganization) pulumi.IntOutput { return v.DatabaseId }).(pulumi.IntOutput)
+}
+
// The description of the organization.
func (o EnterpriseOrganizationOutput) Description() pulumi.StringPtrOutput {
return o.ApplyT(func(v *EnterpriseOrganization) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput)
diff --git a/sdk/go/github/getEnterprise.go b/sdk/go/github/getEnterprise.go
index af673ba4..721f2438 100644
--- a/sdk/go/github/getEnterprise.go
+++ b/sdk/go/github/getEnterprise.go
@@ -60,6 +60,8 @@ type GetEnterpriseArgs struct {
type GetEnterpriseResult struct {
// The time the enterprise was created.
CreatedAt string `pulumi:"createdAt"`
+ // The database ID of the enterprise.
+ DatabaseId int `pulumi:"databaseId"`
// The description of the enterprise.
Description string `pulumi:"description"`
// The provider-assigned unique ID for this managed resource.
@@ -115,6 +117,11 @@ func (o GetEnterpriseResultOutput) CreatedAt() pulumi.StringOutput {
return o.ApplyT(func(v GetEnterpriseResult) string { return v.CreatedAt }).(pulumi.StringOutput)
}
+// The database ID of the enterprise.
+func (o GetEnterpriseResultOutput) DatabaseId() pulumi.IntOutput {
+ return o.ApplyT(func(v GetEnterpriseResult) int { return v.DatabaseId }).(pulumi.IntOutput)
+}
+
// The description of the enterprise.
func (o GetEnterpriseResultOutput) Description() pulumi.StringOutput {
return o.ApplyT(func(v GetEnterpriseResult) string { return v.Description }).(pulumi.StringOutput)
diff --git a/sdk/go/github/init.go b/sdk/go/github/init.go
index 5f4eab0a..4a6863cc 100644
--- a/sdk/go/github/init.go
+++ b/sdk/go/github/init.go
@@ -77,6 +77,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi
r = &EmuGroupMapping{}
case "github:index/enterpriseActionsPermissions:EnterpriseActionsPermissions":
r = &EnterpriseActionsPermissions{}
+ case "github:index/enterpriseActionsRunnerGroup:EnterpriseActionsRunnerGroup":
+ r = &EnterpriseActionsRunnerGroup{}
case "github:index/enterpriseOrganization:EnterpriseOrganization":
r = &EnterpriseOrganization{}
case "github:index/issue:Issue":
@@ -330,6 +332,11 @@ func init() {
"index/enterpriseActionsPermissions",
&module{version},
)
+ pulumi.RegisterResourceModule(
+ "github",
+ "index/enterpriseActionsRunnerGroup",
+ &module{version},
+ )
pulumi.RegisterResourceModule(
"github",
"index/enterpriseOrganization",
diff --git a/sdk/go/github/pulumiTypes.go b/sdk/go/github/pulumiTypes.go
index d121e3f4..f2161329 100644
--- a/sdk/go/github/pulumiTypes.go
+++ b/sdk/go/github/pulumiTypes.go
@@ -897,6 +897,8 @@ type BranchProtectionV3RequiredPullRequestReviews struct {
IncludeAdmins *bool `pulumi:"includeAdmins"`
// Require an approved review in pull requests including files with a designated code owner. Defaults to `false`.
RequireCodeOwnerReviews *bool `pulumi:"requireCodeOwnerReviews"`
+ // Require that the most recent push must be approved by someone other than the last pusher. Defaults to `false`
+ RequireLastPushApproval *bool `pulumi:"requireLastPushApproval"`
// Require x number of approvals to satisfy branch protection requirements. If this is specified it must be a number between 0-6. This requirement matches GitHub's API, see the upstream [documentation](https://developer.github.com/v3/repos/branches/#parameters-1) for more information.
RequiredApprovingReviewCount *int `pulumi:"requiredApprovingReviewCount"`
}
@@ -928,6 +930,8 @@ type BranchProtectionV3RequiredPullRequestReviewsArgs struct {
IncludeAdmins pulumi.BoolPtrInput `pulumi:"includeAdmins"`
// Require an approved review in pull requests including files with a designated code owner. Defaults to `false`.
RequireCodeOwnerReviews pulumi.BoolPtrInput `pulumi:"requireCodeOwnerReviews"`
+ // Require that the most recent push must be approved by someone other than the last pusher. Defaults to `false`
+ RequireLastPushApproval pulumi.BoolPtrInput `pulumi:"requireLastPushApproval"`
// Require x number of approvals to satisfy branch protection requirements. If this is specified it must be a number between 0-6. This requirement matches GitHub's API, see the upstream [documentation](https://developer.github.com/v3/repos/branches/#parameters-1) for more information.
RequiredApprovingReviewCount pulumi.IntPtrInput `pulumi:"requiredApprovingReviewCount"`
}
@@ -1047,6 +1051,11 @@ func (o BranchProtectionV3RequiredPullRequestReviewsOutput) RequireCodeOwnerRevi
return o.ApplyT(func(v BranchProtectionV3RequiredPullRequestReviews) *bool { return v.RequireCodeOwnerReviews }).(pulumi.BoolPtrOutput)
}
+// Require that the most recent push must be approved by someone other than the last pusher. Defaults to `false`
+func (o BranchProtectionV3RequiredPullRequestReviewsOutput) RequireLastPushApproval() pulumi.BoolPtrOutput {
+ return o.ApplyT(func(v BranchProtectionV3RequiredPullRequestReviews) *bool { return v.RequireLastPushApproval }).(pulumi.BoolPtrOutput)
+}
+
// Require x number of approvals to satisfy branch protection requirements. If this is specified it must be a number between 0-6. This requirement matches GitHub's API, see the upstream [documentation](https://developer.github.com/v3/repos/branches/#parameters-1) for more information.
func (o BranchProtectionV3RequiredPullRequestReviewsOutput) RequiredApprovingReviewCount() pulumi.IntPtrOutput {
return o.ApplyT(func(v BranchProtectionV3RequiredPullRequestReviews) *int { return v.RequiredApprovingReviewCount }).(pulumi.IntPtrOutput)
@@ -1147,6 +1156,16 @@ func (o BranchProtectionV3RequiredPullRequestReviewsPtrOutput) RequireCodeOwnerR
}).(pulumi.BoolPtrOutput)
}
+// Require that the most recent push must be approved by someone other than the last pusher. Defaults to `false`
+func (o BranchProtectionV3RequiredPullRequestReviewsPtrOutput) RequireLastPushApproval() pulumi.BoolPtrOutput {
+ return o.ApplyT(func(v *BranchProtectionV3RequiredPullRequestReviews) *bool {
+ if v == nil {
+ return nil
+ }
+ return v.RequireLastPushApproval
+ }).(pulumi.BoolPtrOutput)
+}
+
// Require x number of approvals to satisfy branch protection requirements. If this is specified it must be a number between 0-6. This requirement matches GitHub's API, see the upstream [documentation](https://developer.github.com/v3/repos/branches/#parameters-1) for more information.
func (o BranchProtectionV3RequiredPullRequestReviewsPtrOutput) RequiredApprovingReviewCount() pulumi.IntPtrOutput {
return o.ApplyT(func(v *BranchProtectionV3RequiredPullRequestReviews) *int {
diff --git a/sdk/java/src/main/java/com/pulumi/github/EnterpriseActionsRunnerGroup.java b/sdk/java/src/main/java/com/pulumi/github/EnterpriseActionsRunnerGroup.java
new file mode 100644
index 00000000..91f7ea85
--- /dev/null
+++ b/sdk/java/src/main/java/com/pulumi/github/EnterpriseActionsRunnerGroup.java
@@ -0,0 +1,290 @@
+// *** WARNING: this file was generated by pulumi-java-gen. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+package com.pulumi.github;
+
+import com.pulumi.core.Output;
+import com.pulumi.core.annotations.Export;
+import com.pulumi.core.annotations.ResourceType;
+import com.pulumi.core.internal.Codegen;
+import com.pulumi.github.EnterpriseActionsRunnerGroupArgs;
+import com.pulumi.github.Utilities;
+import com.pulumi.github.inputs.EnterpriseActionsRunnerGroupState;
+import java.lang.Boolean;
+import java.lang.Integer;
+import java.lang.String;
+import java.util.List;
+import java.util.Optional;
+import javax.annotation.Nullable;
+
+/**
+ * This resource allows you to create and manage GitHub Actions runner groups within your GitHub enterprise.
+ * You must have admin access to an enterprise to use this resource.
+ *
+ * ## Example Usage
+ *
+ * <!--Start PulumiCodeChooser -->
+ * ```java
+ * package generated_program;
+ *
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.github.GithubFunctions;
+ * import com.pulumi.github.inputs.GetEnterpriseArgs;
+ * import com.pulumi.github.EnterpriseOrganization;
+ * import com.pulumi.github.EnterpriseOrganizationArgs;
+ * import com.pulumi.github.EnterpriseActionsRunnerGroup;
+ * import com.pulumi.github.EnterpriseActionsRunnerGroupArgs;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ *
+ * public class App {
+ * public static void main(String[] args) {
+ * Pulumi.run(App::stack);
+ * }
+ *
+ * public static void stack(Context ctx) {
+ * final var enterprise = GithubFunctions.getEnterprise(GetEnterpriseArgs.builder()
+ * .slug("my-enterprise")
+ * .build());
+ *
+ * var enterpriseOrganization = new EnterpriseOrganization("enterpriseOrganization", EnterpriseOrganizationArgs.builder()
+ * .enterpriseId(enterprise.applyValue(getEnterpriseResult -> getEnterpriseResult.id()))
+ * .billingEmail("octocat@octo.cat")
+ * .adminLogins("octocat")
+ * .build());
+ *
+ * var example = new EnterpriseActionsRunnerGroup("example", EnterpriseActionsRunnerGroupArgs.builder()
+ * .enterpriseSlug(enterprise.applyValue(getEnterpriseResult -> getEnterpriseResult.slug()))
+ * .allowsPublicRepositories(true)
+ * .visibility("selected")
+ * .selectedOrganizationIds(enterpriseOrganization.databaseId())
+ * .restrictedToWorkflows(true)
+ * .selectedWorkflows("my-organization/my-repo/.github/workflows/cool-workflow.yaml@refs/tags/v1")
+ * .build());
+ *
+ * }
+ * }
+ * ```
+ * <!--End PulumiCodeChooser -->
+ *
+ * ## Import
+ *
+ * This resource can be imported using the enterprise slug and the ID of the runner group:
+ *
+ * ```sh
+ * $ pulumi import github:index/enterpriseActionsRunnerGroup:EnterpriseActionsRunnerGroup test enterprise-slug/42
+ * ```
+ *
+ */
+@ResourceType(type="github:index/enterpriseActionsRunnerGroup:EnterpriseActionsRunnerGroup")
+public class EnterpriseActionsRunnerGroup extends com.pulumi.resources.CustomResource {
+ /**
+ * Whether public repositories can be added to the runner group. Defaults to false.
+ *
+ */
+ @Export(name="allowsPublicRepositories", refs={Boolean.class}, tree="[0]")
+ private Output* @Nullable */ Boolean> allowsPublicRepositories;
+
+ /**
+ * @return Whether public repositories can be added to the runner group. Defaults to false.
+ *
+ */
+ public Output> allowsPublicRepositories() {
+ return Codegen.optional(this.allowsPublicRepositories);
+ }
+ /**
+ * Whether this is the default runner group
+ *
+ */
+ @Export(name="default", refs={Boolean.class}, tree="[0]")
+ private Output default_;
+
+ /**
+ * @return Whether this is the default runner group
+ *
+ */
+ public Output default_() {
+ return this.default_;
+ }
+ /**
+ * The slug of the enterprise.
+ *
+ */
+ @Export(name="enterpriseSlug", refs={String.class}, tree="[0]")
+ private Output enterpriseSlug;
+
+ /**
+ * @return The slug of the enterprise.
+ *
+ */
+ public Output enterpriseSlug() {
+ return this.enterpriseSlug;
+ }
+ /**
+ * An etag representing the runner group object
+ *
+ */
+ @Export(name="etag", refs={String.class}, tree="[0]")
+ private Output etag;
+
+ /**
+ * @return An etag representing the runner group object
+ *
+ */
+ public Output etag() {
+ return this.etag;
+ }
+ /**
+ * Name of the runner group
+ *
+ */
+ @Export(name="name", refs={String.class}, tree="[0]")
+ private Output name;
+
+ /**
+ * @return Name of the runner group
+ *
+ */
+ public Output name() {
+ return this.name;
+ }
+ /**
+ * If true, the runner group will be restricted to running only the workflows specified in the selected_workflows array. Defaults to false.
+ *
+ */
+ @Export(name="restrictedToWorkflows", refs={Boolean.class}, tree="[0]")
+ private Output* @Nullable */ Boolean> restrictedToWorkflows;
+
+ /**
+ * @return If true, the runner group will be restricted to running only the workflows specified in the selected_workflows array. Defaults to false.
+ *
+ */
+ public Output> restrictedToWorkflows() {
+ return Codegen.optional(this.restrictedToWorkflows);
+ }
+ /**
+ * The GitHub API URL for the runner group's runners
+ *
+ */
+ @Export(name="runnersUrl", refs={String.class}, tree="[0]")
+ private Output runnersUrl;
+
+ /**
+ * @return The GitHub API URL for the runner group's runners
+ *
+ */
+ public Output runnersUrl() {
+ return this.runnersUrl;
+ }
+ /**
+ * IDs of the organizations which should be added to the runner group
+ *
+ */
+ @Export(name="selectedOrganizationIds", refs={List.class,Integer.class}, tree="[0,1]")
+ private Output* @Nullable */ List> selectedOrganizationIds;
+
+ /**
+ * @return IDs of the organizations which should be added to the runner group
+ *
+ */
+ public Output>> selectedOrganizationIds() {
+ return Codegen.optional(this.selectedOrganizationIds);
+ }
+ /**
+ * The GitHub API URL for the runner group's selected organizations
+ *
+ */
+ @Export(name="selectedOrganizationsUrl", refs={String.class}, tree="[0]")
+ private Output selectedOrganizationsUrl;
+
+ /**
+ * @return The GitHub API URL for the runner group's selected organizations
+ *
+ */
+ public Output selectedOrganizationsUrl() {
+ return this.selectedOrganizationsUrl;
+ }
+ /**
+ * List of workflows the runner group should be allowed to run. This setting will be ignored unless restricted_to_workflows is set to true.
+ *
+ */
+ @Export(name="selectedWorkflows", refs={List.class,String.class}, tree="[0,1]")
+ private Output* @Nullable */ List> selectedWorkflows;
+
+ /**
+ * @return List of workflows the runner group should be allowed to run. This setting will be ignored unless restricted_to_workflows is set to true.
+ *
+ */
+ public Output>> selectedWorkflows() {
+ return Codegen.optional(this.selectedWorkflows);
+ }
+ /**
+ * Visibility of a runner group to enterprise organizations. Whether the runner group can include `all` or `selected`
+ *
+ */
+ @Export(name="visibility", refs={String.class}, tree="[0]")
+ private Output visibility;
+
+ /**
+ * @return Visibility of a runner group to enterprise organizations. Whether the runner group can include `all` or `selected`
+ *
+ */
+ public Output visibility() {
+ return this.visibility;
+ }
+
+ /**
+ *
+ * @param name The _unique_ name of the resulting resource.
+ */
+ public EnterpriseActionsRunnerGroup(String name) {
+ this(name, EnterpriseActionsRunnerGroupArgs.Empty);
+ }
+ /**
+ *
+ * @param name The _unique_ name of the resulting resource.
+ * @param args The arguments to use to populate this resource's properties.
+ */
+ public EnterpriseActionsRunnerGroup(String name, EnterpriseActionsRunnerGroupArgs args) {
+ this(name, args, null);
+ }
+ /**
+ *
+ * @param name The _unique_ name of the resulting resource.
+ * @param args The arguments to use to populate this resource's properties.
+ * @param options A bag of options that control this resource's behavior.
+ */
+ public EnterpriseActionsRunnerGroup(String name, EnterpriseActionsRunnerGroupArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+ super("github:index/enterpriseActionsRunnerGroup:EnterpriseActionsRunnerGroup", name, args == null ? EnterpriseActionsRunnerGroupArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+ }
+
+ private EnterpriseActionsRunnerGroup(String name, Output id, @Nullable EnterpriseActionsRunnerGroupState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+ super("github:index/enterpriseActionsRunnerGroup:EnterpriseActionsRunnerGroup", name, state, makeResourceOptions(options, id));
+ }
+
+ private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
+ var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
+ .version(Utilities.getVersion())
+ .build();
+ return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id);
+ }
+
+ /**
+ * Get an existing Host resource's state with the given name, ID, and optional extra
+ * properties used to qualify the lookup.
+ *
+ * @param name The _unique_ name of the resulting resource.
+ * @param id The _unique_ provider ID of the resource to lookup.
+ * @param state
+ * @param options Optional settings to control the behavior of the CustomResource.
+ */
+ public static EnterpriseActionsRunnerGroup get(String name, Output id, @Nullable EnterpriseActionsRunnerGroupState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+ return new EnterpriseActionsRunnerGroup(name, id, state, options);
+ }
+}
diff --git a/sdk/java/src/main/java/com/pulumi/github/EnterpriseActionsRunnerGroupArgs.java b/sdk/java/src/main/java/com/pulumi/github/EnterpriseActionsRunnerGroupArgs.java
new file mode 100644
index 00000000..5e01c72b
--- /dev/null
+++ b/sdk/java/src/main/java/com/pulumi/github/EnterpriseActionsRunnerGroupArgs.java
@@ -0,0 +1,335 @@
+// *** WARNING: this file was generated by pulumi-java-gen. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+package com.pulumi.github;
+
+import com.pulumi.core.Output;
+import com.pulumi.core.annotations.Import;
+import com.pulumi.exceptions.MissingRequiredPropertyException;
+import java.lang.Boolean;
+import java.lang.Integer;
+import java.lang.String;
+import java.util.List;
+import java.util.Objects;
+import java.util.Optional;
+import javax.annotation.Nullable;
+
+
+public final class EnterpriseActionsRunnerGroupArgs extends com.pulumi.resources.ResourceArgs {
+
+ public static final EnterpriseActionsRunnerGroupArgs Empty = new EnterpriseActionsRunnerGroupArgs();
+
+ /**
+ * Whether public repositories can be added to the runner group. Defaults to false.
+ *
+ */
+ @Import(name="allowsPublicRepositories")
+ private @Nullable Output allowsPublicRepositories;
+
+ /**
+ * @return Whether public repositories can be added to the runner group. Defaults to false.
+ *
+ */
+ public Optional