pulumi-github 6.11.0a1768542226__py3-none-any.whl → 6.12.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. pulumi_github/__init__.py +37 -0
  2. pulumi_github/_inputs.py +527 -34
  3. pulumi_github/actions_environment_secret.py +141 -12
  4. pulumi_github/actions_environment_variable.py +73 -39
  5. pulumi_github/actions_organization_permissions.py +50 -3
  6. pulumi_github/actions_organization_secret.py +164 -55
  7. pulumi_github/actions_organization_secret_repositories.py +44 -28
  8. pulumi_github/actions_organization_secret_repository.py +44 -28
  9. pulumi_github/actions_organization_variable.py +44 -47
  10. pulumi_github/actions_organization_variable_repositories.py +262 -0
  11. pulumi_github/actions_organization_variable_repository.py +262 -0
  12. pulumi_github/actions_organization_workflow_permissions.py +320 -0
  13. pulumi_github/actions_repository_permissions.py +50 -3
  14. pulumi_github/actions_secret.py +176 -41
  15. pulumi_github/actions_variable.py +65 -33
  16. pulumi_github/app_installation_repositories.py +6 -6
  17. pulumi_github/app_installation_repository.py +6 -6
  18. pulumi_github/dependabot_organization_secret.py +128 -59
  19. pulumi_github/dependabot_organization_secret_repositories.py +44 -36
  20. pulumi_github/dependabot_organization_secret_repository.py +262 -0
  21. pulumi_github/dependabot_secret.py +154 -41
  22. pulumi_github/emu_group_mapping.py +62 -6
  23. pulumi_github/get_ip_ranges.py +3 -0
  24. pulumi_github/get_release_asset.py +370 -0
  25. pulumi_github/get_repository.py +17 -2
  26. pulumi_github/get_team.py +29 -13
  27. pulumi_github/organization_ruleset.py +11 -17
  28. pulumi_github/outputs.py +404 -25
  29. pulumi_github/pulumi-plugin.json +1 -1
  30. pulumi_github/repository.py +88 -23
  31. pulumi_github/repository_custom_property.py +2 -2
  32. pulumi_github/repository_environment.py +11 -11
  33. pulumi_github/repository_environment_deployment_policy.py +4 -4
  34. pulumi_github/repository_ruleset.py +7 -7
  35. pulumi_github/team.py +70 -21
  36. {pulumi_github-6.11.0a1768542226.dist-info → pulumi_github-6.12.0.dist-info}/METADATA +1 -1
  37. {pulumi_github-6.11.0a1768542226.dist-info → pulumi_github-6.12.0.dist-info}/RECORD +39 -34
  38. {pulumi_github-6.11.0a1768542226.dist-info → pulumi_github-6.12.0.dist-info}/WHEEL +1 -1
  39. {pulumi_github-6.11.0a1768542226.dist-info → pulumi_github-6.12.0.dist-info}/top_level.txt +0 -0
pulumi_github/outputs.py CHANGED
@@ -41,11 +41,14 @@ __all__ = [
41
41
  'OrganizationRulesetRulesCommitAuthorEmailPattern',
42
42
  'OrganizationRulesetRulesCommitMessagePattern',
43
43
  'OrganizationRulesetRulesCommitterEmailPattern',
44
+ 'OrganizationRulesetRulesCopilotCodeReview',
44
45
  'OrganizationRulesetRulesFileExtensionRestriction',
45
46
  'OrganizationRulesetRulesFilePathRestriction',
46
47
  'OrganizationRulesetRulesMaxFilePathLength',
47
48
  'OrganizationRulesetRulesMaxFileSize',
48
49
  'OrganizationRulesetRulesPullRequest',
50
+ 'OrganizationRulesetRulesPullRequestRequiredReviewer',
51
+ 'OrganizationRulesetRulesPullRequestRequiredReviewerReviewer',
49
52
  'OrganizationRulesetRulesRequiredCodeScanning',
50
53
  'OrganizationRulesetRulesRequiredCodeScanningRequiredCodeScanningTool',
51
54
  'OrganizationRulesetRulesRequiredStatusChecks',
@@ -69,12 +72,15 @@ __all__ = [
69
72
  'RepositoryRulesetRulesCommitAuthorEmailPattern',
70
73
  'RepositoryRulesetRulesCommitMessagePattern',
71
74
  'RepositoryRulesetRulesCommitterEmailPattern',
75
+ 'RepositoryRulesetRulesCopilotCodeReview',
72
76
  'RepositoryRulesetRulesFileExtensionRestriction',
73
77
  'RepositoryRulesetRulesFilePathRestriction',
74
78
  'RepositoryRulesetRulesMaxFilePathLength',
75
79
  'RepositoryRulesetRulesMaxFileSize',
76
80
  'RepositoryRulesetRulesMergeQueue',
77
81
  'RepositoryRulesetRulesPullRequest',
82
+ 'RepositoryRulesetRulesPullRequestRequiredReviewer',
83
+ 'RepositoryRulesetRulesPullRequestRequiredReviewerReviewer',
78
84
  'RepositoryRulesetRulesRequiredCodeScanning',
79
85
  'RepositoryRulesetRulesRequiredCodeScanningRequiredCodeScanningTool',
80
86
  'RepositoryRulesetRulesRequiredDeployments',
@@ -1193,9 +1199,9 @@ class OrganizationRulesetBypassActor(dict):
1193
1199
 
1194
1200
  ~>Note: at the time of writing this, the following actor types correspond to the following actor IDs:
1195
1201
 
1196
- * `OrganizationAdmin` > `1`
1197
- * `RepositoryRole` (This is the actor type, the following are the base repository roles and their associated IDs.)
1198
- :param _builtins.int actor_id: (Number) The ID of the actor that can bypass a ruleset.
1202
+ - `OrganizationAdmin` > `1`
1203
+ - `RepositoryRole` (This is the actor type, the following are the base repository roles and their associated IDs.)
1204
+ :param _builtins.int actor_id: (Number) The ID of the actor that can bypass a ruleset. Some actor types such as `DeployKey` do not have an ID.
1199
1205
  """
1200
1206
  pulumi.set(__self__, "actor_type", actor_type)
1201
1207
  pulumi.set(__self__, "bypass_mode", bypass_mode)
@@ -1218,8 +1224,8 @@ class OrganizationRulesetBypassActor(dict):
1218
1224
 
1219
1225
  ~>Note: at the time of writing this, the following actor types correspond to the following actor IDs:
1220
1226
 
1221
- * `OrganizationAdmin` > `1`
1222
- * `RepositoryRole` (This is the actor type, the following are the base repository roles and their associated IDs.)
1227
+ - `OrganizationAdmin` > `1`
1228
+ - `RepositoryRole` (This is the actor type, the following are the base repository roles and their associated IDs.)
1223
1229
  """
1224
1230
  return pulumi.get(self, "bypass_mode")
1225
1231
 
@@ -1227,7 +1233,7 @@ class OrganizationRulesetBypassActor(dict):
1227
1233
  @pulumi.getter(name="actorId")
1228
1234
  def actor_id(self) -> Optional[_builtins.int]:
1229
1235
  """
1230
- (Number) The ID of the actor that can bypass a ruleset.
1236
+ (Number) The ID of the actor that can bypass a ruleset. Some actor types such as `DeployKey` do not have an ID.
1231
1237
  """
1232
1238
  return pulumi.get(self, "actor_id")
1233
1239
 
@@ -1256,17 +1262,20 @@ class OrganizationRulesetConditions(dict):
1256
1262
  return super().get(key, default)
1257
1263
 
1258
1264
  def __init__(__self__, *,
1259
- ref_name: 'outputs.OrganizationRulesetConditionsRefName',
1265
+ ref_name: Optional['outputs.OrganizationRulesetConditionsRefName'] = None,
1260
1266
  repository_ids: Optional[Sequence[_builtins.int]] = None,
1261
1267
  repository_name: Optional['outputs.OrganizationRulesetConditionsRepositoryName'] = None):
1262
1268
  """
1263
- :param 'OrganizationRulesetConditionsRefNameArgs' ref_name: (Block List, Min: 1, Max: 1) (see below for nested schema)
1269
+ :param 'OrganizationRulesetConditionsRefNameArgs' ref_name: (Block List, Max: 1) Required for `branch` and `tag` targets. Must NOT be set for `push` targets. (see below for nested schema)
1264
1270
  :param Sequence[_builtins.int] repository_ids: The repository IDs that the ruleset applies to. One of these IDs must match for the condition to pass. Conflicts with `repository_name`.
1265
1271
  :param 'OrganizationRulesetConditionsRepositoryNameArgs' repository_name: Conflicts with `repository_id`. (see below for nested schema)
1266
1272
 
1267
1273
  One of `repository_id` and `repository_name` must be set for the rule to target any repositories.
1274
+
1275
+ > **Note:** For `push` targets, do not include `ref_name` in conditions. Push rulesets operate on file content, not on refs.
1268
1276
  """
1269
- pulumi.set(__self__, "ref_name", ref_name)
1277
+ if ref_name is not None:
1278
+ pulumi.set(__self__, "ref_name", ref_name)
1270
1279
  if repository_ids is not None:
1271
1280
  pulumi.set(__self__, "repository_ids", repository_ids)
1272
1281
  if repository_name is not None:
@@ -1274,9 +1283,9 @@ class OrganizationRulesetConditions(dict):
1274
1283
 
1275
1284
  @_builtins.property
1276
1285
  @pulumi.getter(name="refName")
1277
- def ref_name(self) -> 'outputs.OrganizationRulesetConditionsRefName':
1286
+ def ref_name(self) -> Optional['outputs.OrganizationRulesetConditionsRefName']:
1278
1287
  """
1279
- (Block List, Min: 1, Max: 1) (see below for nested schema)
1288
+ (Block List, Max: 1) Required for `branch` and `tag` targets. Must NOT be set for `push` targets. (see below for nested schema)
1280
1289
  """
1281
1290
  return pulumi.get(self, "ref_name")
1282
1291
 
@@ -1295,6 +1304,8 @@ class OrganizationRulesetConditions(dict):
1295
1304
  Conflicts with `repository_id`. (see below for nested schema)
1296
1305
 
1297
1306
  One of `repository_id` and `repository_name` must be set for the rule to target any repositories.
1307
+
1308
+ > **Note:** For `push` targets, do not include `ref_name` in conditions. Push rulesets operate on file content, not on refs.
1298
1309
  """
1299
1310
  return pulumi.get(self, "repository_name")
1300
1311
 
@@ -1382,6 +1393,8 @@ class OrganizationRulesetRules(dict):
1382
1393
  suggest = "commit_message_pattern"
1383
1394
  elif key == "committerEmailPattern":
1384
1395
  suggest = "committer_email_pattern"
1396
+ elif key == "copilotCodeReview":
1397
+ suggest = "copilot_code_review"
1385
1398
  elif key == "fileExtensionRestriction":
1386
1399
  suggest = "file_extension_restriction"
1387
1400
  elif key == "filePathRestriction":
@@ -1423,6 +1436,7 @@ class OrganizationRulesetRules(dict):
1423
1436
  commit_author_email_pattern: Optional['outputs.OrganizationRulesetRulesCommitAuthorEmailPattern'] = None,
1424
1437
  commit_message_pattern: Optional['outputs.OrganizationRulesetRulesCommitMessagePattern'] = None,
1425
1438
  committer_email_pattern: Optional['outputs.OrganizationRulesetRulesCommitterEmailPattern'] = None,
1439
+ copilot_code_review: Optional['outputs.OrganizationRulesetRulesCopilotCodeReview'] = None,
1426
1440
  creation: Optional[_builtins.bool] = None,
1427
1441
  deletion: Optional[_builtins.bool] = None,
1428
1442
  file_extension_restriction: Optional['outputs.OrganizationRulesetRulesFileExtensionRestriction'] = None,
@@ -1443,6 +1457,7 @@ class OrganizationRulesetRules(dict):
1443
1457
  :param 'OrganizationRulesetRulesCommitAuthorEmailPatternArgs' commit_author_email_pattern: (Block List, Max: 1) Parameters to be used for the commit_author_email_pattern rule. This rule only applies to repositories within an enterprise, it cannot be applied to repositories owned by individuals or regular organizations. (see below for nested schema)
1444
1458
  :param 'OrganizationRulesetRulesCommitMessagePatternArgs' commit_message_pattern: (Block List, Max: 1) Parameters to be used for the commit_message_pattern rule. This rule only applies to repositories within an enterprise, it cannot be applied to repositories owned by individuals or regular organizations. (see below for nested schema)
1445
1459
  :param 'OrganizationRulesetRulesCommitterEmailPatternArgs' committer_email_pattern: (Block List, Max: 1) Parameters to be used for the committer_email_pattern rule. This rule only applies to repositories within an enterprise, it cannot be applied to repositories owned by individuals or regular organizations. (see below for nested schema)
1460
+ :param 'OrganizationRulesetRulesCopilotCodeReviewArgs' copilot_code_review: (Block List, Max: 1) Automatically request Copilot code review for new pull requests if the author has access to Copilot code review and their premium requests quota has not reached the limit. (see below for nested schema)
1446
1461
  :param _builtins.bool creation: (Boolean) Only allow users with bypass permission to create matching refs.
1447
1462
  :param _builtins.bool deletion: (Boolean) Only allow users with bypass permissions to delete matching refs.
1448
1463
  :param 'OrganizationRulesetRulesFileExtensionRestrictionArgs' file_extension_restriction: (Block List, Max: 1) Prevent commits that include files with specified file extensions from being pushed to the commit graph. This rule only applies to rulesets with target `push`. (see below for nested schema)
@@ -1467,6 +1482,8 @@ class OrganizationRulesetRules(dict):
1467
1482
  pulumi.set(__self__, "commit_message_pattern", commit_message_pattern)
1468
1483
  if committer_email_pattern is not None:
1469
1484
  pulumi.set(__self__, "committer_email_pattern", committer_email_pattern)
1485
+ if copilot_code_review is not None:
1486
+ pulumi.set(__self__, "copilot_code_review", copilot_code_review)
1470
1487
  if creation is not None:
1471
1488
  pulumi.set(__self__, "creation", creation)
1472
1489
  if deletion is not None:
@@ -1530,6 +1547,14 @@ class OrganizationRulesetRules(dict):
1530
1547
  """
1531
1548
  return pulumi.get(self, "committer_email_pattern")
1532
1549
 
1550
+ @_builtins.property
1551
+ @pulumi.getter(name="copilotCodeReview")
1552
+ def copilot_code_review(self) -> Optional['outputs.OrganizationRulesetRulesCopilotCodeReview']:
1553
+ """
1554
+ (Block List, Max: 1) Automatically request Copilot code review for new pull requests if the author has access to Copilot code review and their premium requests quota has not reached the limit. (see below for nested schema)
1555
+ """
1556
+ return pulumi.get(self, "copilot_code_review")
1557
+
1533
1558
  @_builtins.property
1534
1559
  @pulumi.getter
1535
1560
  def creation(self) -> Optional[_builtins.bool]:
@@ -1863,6 +1888,56 @@ class OrganizationRulesetRulesCommitterEmailPattern(dict):
1863
1888
  return pulumi.get(self, "negate")
1864
1889
 
1865
1890
 
1891
+ @pulumi.output_type
1892
+ class OrganizationRulesetRulesCopilotCodeReview(dict):
1893
+ @staticmethod
1894
+ def __key_warning(key: str):
1895
+ suggest = None
1896
+ if key == "reviewDraftPullRequests":
1897
+ suggest = "review_draft_pull_requests"
1898
+ elif key == "reviewOnPush":
1899
+ suggest = "review_on_push"
1900
+
1901
+ if suggest:
1902
+ pulumi.log.warn(f"Key '{key}' not found in OrganizationRulesetRulesCopilotCodeReview. Access the value via the '{suggest}' property getter instead.")
1903
+
1904
+ def __getitem__(self, key: str) -> Any:
1905
+ OrganizationRulesetRulesCopilotCodeReview.__key_warning(key)
1906
+ return super().__getitem__(key)
1907
+
1908
+ def get(self, key: str, default = None) -> Any:
1909
+ OrganizationRulesetRulesCopilotCodeReview.__key_warning(key)
1910
+ return super().get(key, default)
1911
+
1912
+ def __init__(__self__, *,
1913
+ review_draft_pull_requests: Optional[_builtins.bool] = None,
1914
+ review_on_push: Optional[_builtins.bool] = None):
1915
+ """
1916
+ :param _builtins.bool review_draft_pull_requests: Copilot automatically reviews draft pull requests before they are marked as ready for review. Defaults to `false`.
1917
+ :param _builtins.bool review_on_push: Copilot automatically reviews each new push to the pull request. Defaults to `false`.
1918
+ """
1919
+ if review_draft_pull_requests is not None:
1920
+ pulumi.set(__self__, "review_draft_pull_requests", review_draft_pull_requests)
1921
+ if review_on_push is not None:
1922
+ pulumi.set(__self__, "review_on_push", review_on_push)
1923
+
1924
+ @_builtins.property
1925
+ @pulumi.getter(name="reviewDraftPullRequests")
1926
+ def review_draft_pull_requests(self) -> Optional[_builtins.bool]:
1927
+ """
1928
+ Copilot automatically reviews draft pull requests before they are marked as ready for review. Defaults to `false`.
1929
+ """
1930
+ return pulumi.get(self, "review_draft_pull_requests")
1931
+
1932
+ @_builtins.property
1933
+ @pulumi.getter(name="reviewOnPush")
1934
+ def review_on_push(self) -> Optional[_builtins.bool]:
1935
+ """
1936
+ Copilot automatically reviews each new push to the pull request. Defaults to `false`.
1937
+ """
1938
+ return pulumi.get(self, "review_on_push")
1939
+
1940
+
1866
1941
  @pulumi.output_type
1867
1942
  class OrganizationRulesetRulesFileExtensionRestriction(dict):
1868
1943
  @staticmethod
@@ -2008,7 +2083,9 @@ class OrganizationRulesetRulesPullRequest(dict):
2008
2083
  @staticmethod
2009
2084
  def __key_warning(key: str):
2010
2085
  suggest = None
2011
- if key == "dismissStaleReviewsOnPush":
2086
+ if key == "allowedMergeMethods":
2087
+ suggest = "allowed_merge_methods"
2088
+ elif key == "dismissStaleReviewsOnPush":
2012
2089
  suggest = "dismiss_stale_reviews_on_push"
2013
2090
  elif key == "requireCodeOwnerReview":
2014
2091
  suggest = "require_code_owner_review"
@@ -2018,6 +2095,8 @@ class OrganizationRulesetRulesPullRequest(dict):
2018
2095
  suggest = "required_approving_review_count"
2019
2096
  elif key == "requiredReviewThreadResolution":
2020
2097
  suggest = "required_review_thread_resolution"
2098
+ elif key == "requiredReviewers":
2099
+ suggest = "required_reviewers"
2021
2100
 
2022
2101
  if suggest:
2023
2102
  pulumi.log.warn(f"Key '{key}' not found in OrganizationRulesetRulesPullRequest. Access the value via the '{suggest}' property getter instead.")
@@ -2031,18 +2110,24 @@ class OrganizationRulesetRulesPullRequest(dict):
2031
2110
  return super().get(key, default)
2032
2111
 
2033
2112
  def __init__(__self__, *,
2113
+ allowed_merge_methods: Optional[Sequence[_builtins.str]] = None,
2034
2114
  dismiss_stale_reviews_on_push: Optional[_builtins.bool] = None,
2035
2115
  require_code_owner_review: Optional[_builtins.bool] = None,
2036
2116
  require_last_push_approval: Optional[_builtins.bool] = None,
2037
2117
  required_approving_review_count: Optional[_builtins.int] = None,
2038
- required_review_thread_resolution: Optional[_builtins.bool] = None):
2118
+ required_review_thread_resolution: Optional[_builtins.bool] = None,
2119
+ required_reviewers: Optional[Sequence['outputs.OrganizationRulesetRulesPullRequestRequiredReviewer']] = None):
2039
2120
  """
2121
+ :param Sequence[_builtins.str] allowed_merge_methods: Array of allowed merge methods. Allowed values include `merge`, `squash`, and `rebase`. At least one option must be enabled.
2040
2122
  :param _builtins.bool dismiss_stale_reviews_on_push: New, reviewable commits pushed will dismiss previous pull request review approvals. Defaults to `false`.
2041
2123
  :param _builtins.bool require_code_owner_review: Require an approving review in pull requests that modify files that have a designated code owner. Defaults to `false`.
2042
2124
  :param _builtins.bool require_last_push_approval: Whether the most recent reviewable push must be approved by someone other than the person who pushed it. Defaults to `false`.
2043
2125
  :param _builtins.int required_approving_review_count: The number of approving reviews that are required before a pull request can be merged. Defaults to `0`.
2044
2126
  :param _builtins.bool required_review_thread_resolution: All conversations on code must be resolved before a pull request can be merged. Defaults to `false`.
2127
+ :param Sequence['OrganizationRulesetRulesPullRequestRequiredReviewerArgs'] required_reviewers: Require specific reviewers to approve pull requests targeting matching branches. Note: This feature is in beta and subject to change.
2045
2128
  """
2129
+ if allowed_merge_methods is not None:
2130
+ pulumi.set(__self__, "allowed_merge_methods", allowed_merge_methods)
2046
2131
  if dismiss_stale_reviews_on_push is not None:
2047
2132
  pulumi.set(__self__, "dismiss_stale_reviews_on_push", dismiss_stale_reviews_on_push)
2048
2133
  if require_code_owner_review is not None:
@@ -2053,6 +2138,16 @@ class OrganizationRulesetRulesPullRequest(dict):
2053
2138
  pulumi.set(__self__, "required_approving_review_count", required_approving_review_count)
2054
2139
  if required_review_thread_resolution is not None:
2055
2140
  pulumi.set(__self__, "required_review_thread_resolution", required_review_thread_resolution)
2141
+ if required_reviewers is not None:
2142
+ pulumi.set(__self__, "required_reviewers", required_reviewers)
2143
+
2144
+ @_builtins.property
2145
+ @pulumi.getter(name="allowedMergeMethods")
2146
+ def allowed_merge_methods(self) -> Optional[Sequence[_builtins.str]]:
2147
+ """
2148
+ Array of allowed merge methods. Allowed values include `merge`, `squash`, and `rebase`. At least one option must be enabled.
2149
+ """
2150
+ return pulumi.get(self, "allowed_merge_methods")
2056
2151
 
2057
2152
  @_builtins.property
2058
2153
  @pulumi.getter(name="dismissStaleReviewsOnPush")
@@ -2094,6 +2189,102 @@ class OrganizationRulesetRulesPullRequest(dict):
2094
2189
  """
2095
2190
  return pulumi.get(self, "required_review_thread_resolution")
2096
2191
 
2192
+ @_builtins.property
2193
+ @pulumi.getter(name="requiredReviewers")
2194
+ def required_reviewers(self) -> Optional[Sequence['outputs.OrganizationRulesetRulesPullRequestRequiredReviewer']]:
2195
+ """
2196
+ Require specific reviewers to approve pull requests targeting matching branches. Note: This feature is in beta and subject to change.
2197
+ """
2198
+ return pulumi.get(self, "required_reviewers")
2199
+
2200
+
2201
+ @pulumi.output_type
2202
+ class OrganizationRulesetRulesPullRequestRequiredReviewer(dict):
2203
+ @staticmethod
2204
+ def __key_warning(key: str):
2205
+ suggest = None
2206
+ if key == "filePatterns":
2207
+ suggest = "file_patterns"
2208
+ elif key == "minimumApprovals":
2209
+ suggest = "minimum_approvals"
2210
+
2211
+ if suggest:
2212
+ pulumi.log.warn(f"Key '{key}' not found in OrganizationRulesetRulesPullRequestRequiredReviewer. Access the value via the '{suggest}' property getter instead.")
2213
+
2214
+ def __getitem__(self, key: str) -> Any:
2215
+ OrganizationRulesetRulesPullRequestRequiredReviewer.__key_warning(key)
2216
+ return super().__getitem__(key)
2217
+
2218
+ def get(self, key: str, default = None) -> Any:
2219
+ OrganizationRulesetRulesPullRequestRequiredReviewer.__key_warning(key)
2220
+ return super().get(key, default)
2221
+
2222
+ def __init__(__self__, *,
2223
+ file_patterns: Sequence[_builtins.str],
2224
+ minimum_approvals: _builtins.int,
2225
+ reviewer: 'outputs.OrganizationRulesetRulesPullRequestRequiredReviewerReviewer'):
2226
+ """
2227
+ :param Sequence[_builtins.str] file_patterns: File patterns (fnmatch syntax) that this reviewer must approve.
2228
+ :param _builtins.int minimum_approvals: Minimum number of approvals required from this reviewer. Set to 0 to make approval optional.
2229
+ :param 'OrganizationRulesetRulesPullRequestRequiredReviewerReviewerArgs' reviewer: The reviewer that must review matching files.
2230
+ """
2231
+ pulumi.set(__self__, "file_patterns", file_patterns)
2232
+ pulumi.set(__self__, "minimum_approvals", minimum_approvals)
2233
+ pulumi.set(__self__, "reviewer", reviewer)
2234
+
2235
+ @_builtins.property
2236
+ @pulumi.getter(name="filePatterns")
2237
+ def file_patterns(self) -> Sequence[_builtins.str]:
2238
+ """
2239
+ File patterns (fnmatch syntax) that this reviewer must approve.
2240
+ """
2241
+ return pulumi.get(self, "file_patterns")
2242
+
2243
+ @_builtins.property
2244
+ @pulumi.getter(name="minimumApprovals")
2245
+ def minimum_approvals(self) -> _builtins.int:
2246
+ """
2247
+ Minimum number of approvals required from this reviewer. Set to 0 to make approval optional.
2248
+ """
2249
+ return pulumi.get(self, "minimum_approvals")
2250
+
2251
+ @_builtins.property
2252
+ @pulumi.getter
2253
+ def reviewer(self) -> 'outputs.OrganizationRulesetRulesPullRequestRequiredReviewerReviewer':
2254
+ """
2255
+ The reviewer that must review matching files.
2256
+ """
2257
+ return pulumi.get(self, "reviewer")
2258
+
2259
+
2260
+ @pulumi.output_type
2261
+ class OrganizationRulesetRulesPullRequestRequiredReviewerReviewer(dict):
2262
+ def __init__(__self__, *,
2263
+ id: _builtins.int,
2264
+ type: _builtins.str):
2265
+ """
2266
+ :param _builtins.int id: The ID of the reviewer that must review.
2267
+ :param _builtins.str type: The type of reviewer. Currently only `Team` is supported.
2268
+ """
2269
+ pulumi.set(__self__, "id", id)
2270
+ pulumi.set(__self__, "type", type)
2271
+
2272
+ @_builtins.property
2273
+ @pulumi.getter
2274
+ def id(self) -> _builtins.int:
2275
+ """
2276
+ The ID of the reviewer that must review.
2277
+ """
2278
+ return pulumi.get(self, "id")
2279
+
2280
+ @_builtins.property
2281
+ @pulumi.getter
2282
+ def type(self) -> _builtins.str:
2283
+ """
2284
+ The type of reviewer. Currently only `Team` is supported.
2285
+ """
2286
+ return pulumi.get(self, "type")
2287
+
2097
2288
 
2098
2289
  @pulumi.output_type
2099
2290
  class OrganizationRulesetRulesRequiredCodeScanning(dict):
@@ -2900,9 +3091,9 @@ class RepositoryRulesetBypassActor(dict):
2900
3091
 
2901
3092
  > Note: at the time of writing this, the following actor types correspond to the following actor IDs:
2902
3093
 
2903
- * `OrganizationAdmin` > `1`
2904
- * `RepositoryRole` (This is the actor type, the following are the base repository roles and their associated IDs.)
2905
- :param _builtins.int actor_id: 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)
3094
+ - `OrganizationAdmin` > `1`
3095
+ - `RepositoryRole` (This is the actor type, the following are the base repository roles and their associated IDs.)
3096
+ :param _builtins.int actor_id: (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.
2906
3097
  """
2907
3098
  pulumi.set(__self__, "actor_type", actor_type)
2908
3099
  pulumi.set(__self__, "bypass_mode", bypass_mode)
@@ -2925,8 +3116,8 @@ class RepositoryRulesetBypassActor(dict):
2925
3116
 
2926
3117
  > Note: at the time of writing this, the following actor types correspond to the following actor IDs:
2927
3118
 
2928
- * `OrganizationAdmin` > `1`
2929
- * `RepositoryRole` (This is the actor type, the following are the base repository roles and their associated IDs.)
3119
+ - `OrganizationAdmin` > `1`
3120
+ - `RepositoryRole` (This is the actor type, the following are the base repository roles and their associated IDs.)
2930
3121
  """
2931
3122
  return pulumi.get(self, "bypass_mode")
2932
3123
 
@@ -2934,7 +3125,7 @@ class RepositoryRulesetBypassActor(dict):
2934
3125
  @pulumi.getter(name="actorId")
2935
3126
  def actor_id(self) -> Optional[_builtins.int]:
2936
3127
  """
2937
- 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)
3128
+ (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.
2938
3129
  """
2939
3130
  return pulumi.get(self, "actor_id")
2940
3131
 
@@ -2961,7 +3152,9 @@ class RepositoryRulesetConditions(dict):
2961
3152
  def __init__(__self__, *,
2962
3153
  ref_name: 'outputs.RepositoryRulesetConditionsRefName'):
2963
3154
  """
2964
- :param 'RepositoryRulesetConditionsRefNameArgs' ref_name: (Block List, Min: 1, Max: 1) (see below for nested schema)
3155
+ :param 'RepositoryRulesetConditionsRefNameArgs' ref_name: (Block List, Max: 1) Required for `branch` and `tag` targets. Must NOT be set for `push` targets. (see below for nested schema)
3156
+
3157
+ > **Note:** For `push` targets, do not include `ref_name` in conditions. Push rulesets operate on file content, not on refs. The `conditions` block is optional for push targets.
2965
3158
  """
2966
3159
  pulumi.set(__self__, "ref_name", ref_name)
2967
3160
 
@@ -2969,7 +3162,9 @@ class RepositoryRulesetConditions(dict):
2969
3162
  @pulumi.getter(name="refName")
2970
3163
  def ref_name(self) -> 'outputs.RepositoryRulesetConditionsRefName':
2971
3164
  """
2972
- (Block List, Min: 1, Max: 1) (see below for nested schema)
3165
+ (Block List, Max: 1) Required for `branch` and `tag` targets. Must NOT be set for `push` targets. (see below for nested schema)
3166
+
3167
+ > **Note:** For `push` targets, do not include `ref_name` in conditions. Push rulesets operate on file content, not on refs. The `conditions` block is optional for push targets.
2973
3168
  """
2974
3169
  return pulumi.get(self, "ref_name")
2975
3170
 
@@ -3016,6 +3211,8 @@ class RepositoryRulesetRules(dict):
3016
3211
  suggest = "commit_message_pattern"
3017
3212
  elif key == "committerEmailPattern":
3018
3213
  suggest = "committer_email_pattern"
3214
+ elif key == "copilotCodeReview":
3215
+ suggest = "copilot_code_review"
3019
3216
  elif key == "fileExtensionRestriction":
3020
3217
  suggest = "file_extension_restriction"
3021
3218
  elif key == "filePathRestriction":
@@ -3061,6 +3258,7 @@ class RepositoryRulesetRules(dict):
3061
3258
  commit_author_email_pattern: Optional['outputs.RepositoryRulesetRulesCommitAuthorEmailPattern'] = None,
3062
3259
  commit_message_pattern: Optional['outputs.RepositoryRulesetRulesCommitMessagePattern'] = None,
3063
3260
  committer_email_pattern: Optional['outputs.RepositoryRulesetRulesCommitterEmailPattern'] = None,
3261
+ copilot_code_review: Optional['outputs.RepositoryRulesetRulesCopilotCodeReview'] = None,
3064
3262
  creation: Optional[_builtins.bool] = None,
3065
3263
  deletion: Optional[_builtins.bool] = None,
3066
3264
  file_extension_restriction: Optional['outputs.RepositoryRulesetRulesFileExtensionRestriction'] = None,
@@ -3083,6 +3281,7 @@ class RepositoryRulesetRules(dict):
3083
3281
  :param 'RepositoryRulesetRulesCommitAuthorEmailPatternArgs' commit_author_email_pattern: (Block List, Max: 1) Parameters to be used for the commit_author_email_pattern rule. This rule only applies to repositories within an enterprise, it cannot be applied to repositories owned by individuals or regular organizations. (see below for nested schema)
3084
3282
  :param 'RepositoryRulesetRulesCommitMessagePatternArgs' commit_message_pattern: (Block List, Max: 1) Parameters to be used for the commit_message_pattern rule. This rule only applies to repositories within an enterprise, it cannot be applied to repositories owned by individuals or regular organizations. (see below for nested schema)
3085
3283
  :param 'RepositoryRulesetRulesCommitterEmailPatternArgs' committer_email_pattern: (Block List, Max: 1) Parameters to be used for the committer_email_pattern rule. This rule only applies to repositories within an enterprise, it cannot be applied to repositories owned by individuals or regular organizations. (see below for nested schema)
3284
+ :param 'RepositoryRulesetRulesCopilotCodeReviewArgs' copilot_code_review: (Block List, Max: 1) Automatically request Copilot code review for new pull requests if the author has access to Copilot code review and their premium requests quota has not reached the limit. (see below for nested schema)
3086
3285
  :param _builtins.bool creation: (Boolean) Only allow users with bypass permission to create matching refs.
3087
3286
  :param _builtins.bool deletion: (Boolean) Only allow users with bypass permissions to delete matching refs.
3088
3287
  :param 'RepositoryRulesetRulesFileExtensionRestrictionArgs' file_extension_restriction: (Block List, Max: 1) Prevent commits that include files with specified file extensions from being pushed to the commit graph. This rule only applies to rulesets with target `push`. (see below for nested schema)
@@ -3109,6 +3308,8 @@ class RepositoryRulesetRules(dict):
3109
3308
  pulumi.set(__self__, "commit_message_pattern", commit_message_pattern)
3110
3309
  if committer_email_pattern is not None:
3111
3310
  pulumi.set(__self__, "committer_email_pattern", committer_email_pattern)
3311
+ if copilot_code_review is not None:
3312
+ pulumi.set(__self__, "copilot_code_review", copilot_code_review)
3112
3313
  if creation is not None:
3113
3314
  pulumi.set(__self__, "creation", creation)
3114
3315
  if deletion is not None:
@@ -3176,6 +3377,14 @@ class RepositoryRulesetRules(dict):
3176
3377
  """
3177
3378
  return pulumi.get(self, "committer_email_pattern")
3178
3379
 
3380
+ @_builtins.property
3381
+ @pulumi.getter(name="copilotCodeReview")
3382
+ def copilot_code_review(self) -> Optional['outputs.RepositoryRulesetRulesCopilotCodeReview']:
3383
+ """
3384
+ (Block List, Max: 1) Automatically request Copilot code review for new pull requests if the author has access to Copilot code review and their premium requests quota has not reached the limit. (see below for nested schema)
3385
+ """
3386
+ return pulumi.get(self, "copilot_code_review")
3387
+
3179
3388
  @_builtins.property
3180
3389
  @pulumi.getter
3181
3390
  def creation(self) -> Optional[_builtins.bool]:
@@ -3525,6 +3734,56 @@ class RepositoryRulesetRulesCommitterEmailPattern(dict):
3525
3734
  return pulumi.get(self, "negate")
3526
3735
 
3527
3736
 
3737
+ @pulumi.output_type
3738
+ class RepositoryRulesetRulesCopilotCodeReview(dict):
3739
+ @staticmethod
3740
+ def __key_warning(key: str):
3741
+ suggest = None
3742
+ if key == "reviewDraftPullRequests":
3743
+ suggest = "review_draft_pull_requests"
3744
+ elif key == "reviewOnPush":
3745
+ suggest = "review_on_push"
3746
+
3747
+ if suggest:
3748
+ pulumi.log.warn(f"Key '{key}' not found in RepositoryRulesetRulesCopilotCodeReview. Access the value via the '{suggest}' property getter instead.")
3749
+
3750
+ def __getitem__(self, key: str) -> Any:
3751
+ RepositoryRulesetRulesCopilotCodeReview.__key_warning(key)
3752
+ return super().__getitem__(key)
3753
+
3754
+ def get(self, key: str, default = None) -> Any:
3755
+ RepositoryRulesetRulesCopilotCodeReview.__key_warning(key)
3756
+ return super().get(key, default)
3757
+
3758
+ def __init__(__self__, *,
3759
+ review_draft_pull_requests: Optional[_builtins.bool] = None,
3760
+ review_on_push: Optional[_builtins.bool] = None):
3761
+ """
3762
+ :param _builtins.bool review_draft_pull_requests: Copilot automatically reviews draft pull requests before they are marked as ready for review. Defaults to `false`.
3763
+ :param _builtins.bool review_on_push: Copilot automatically reviews each new push to the pull request. Defaults to `false`.
3764
+ """
3765
+ if review_draft_pull_requests is not None:
3766
+ pulumi.set(__self__, "review_draft_pull_requests", review_draft_pull_requests)
3767
+ if review_on_push is not None:
3768
+ pulumi.set(__self__, "review_on_push", review_on_push)
3769
+
3770
+ @_builtins.property
3771
+ @pulumi.getter(name="reviewDraftPullRequests")
3772
+ def review_draft_pull_requests(self) -> Optional[_builtins.bool]:
3773
+ """
3774
+ Copilot automatically reviews draft pull requests before they are marked as ready for review. Defaults to `false`.
3775
+ """
3776
+ return pulumi.get(self, "review_draft_pull_requests")
3777
+
3778
+ @_builtins.property
3779
+ @pulumi.getter(name="reviewOnPush")
3780
+ def review_on_push(self) -> Optional[_builtins.bool]:
3781
+ """
3782
+ Copilot automatically reviews each new push to the pull request. Defaults to `false`.
3783
+ """
3784
+ return pulumi.get(self, "review_on_push")
3785
+
3786
+
3528
3787
  @pulumi.output_type
3529
3788
  class RepositoryRulesetRulesFileExtensionRestriction(dict):
3530
3789
  @staticmethod
@@ -3790,7 +4049,9 @@ class RepositoryRulesetRulesPullRequest(dict):
3790
4049
  @staticmethod
3791
4050
  def __key_warning(key: str):
3792
4051
  suggest = None
3793
- if key == "dismissStaleReviewsOnPush":
4052
+ if key == "allowedMergeMethods":
4053
+ suggest = "allowed_merge_methods"
4054
+ elif key == "dismissStaleReviewsOnPush":
3794
4055
  suggest = "dismiss_stale_reviews_on_push"
3795
4056
  elif key == "requireCodeOwnerReview":
3796
4057
  suggest = "require_code_owner_review"
@@ -3800,6 +4061,8 @@ class RepositoryRulesetRulesPullRequest(dict):
3800
4061
  suggest = "required_approving_review_count"
3801
4062
  elif key == "requiredReviewThreadResolution":
3802
4063
  suggest = "required_review_thread_resolution"
4064
+ elif key == "requiredReviewers":
4065
+ suggest = "required_reviewers"
3803
4066
 
3804
4067
  if suggest:
3805
4068
  pulumi.log.warn(f"Key '{key}' not found in RepositoryRulesetRulesPullRequest. Access the value via the '{suggest}' property getter instead.")
@@ -3813,18 +4076,24 @@ class RepositoryRulesetRulesPullRequest(dict):
3813
4076
  return super().get(key, default)
3814
4077
 
3815
4078
  def __init__(__self__, *,
4079
+ allowed_merge_methods: Optional[Sequence[_builtins.str]] = None,
3816
4080
  dismiss_stale_reviews_on_push: Optional[_builtins.bool] = None,
3817
4081
  require_code_owner_review: Optional[_builtins.bool] = None,
3818
4082
  require_last_push_approval: Optional[_builtins.bool] = None,
3819
4083
  required_approving_review_count: Optional[_builtins.int] = None,
3820
- required_review_thread_resolution: Optional[_builtins.bool] = None):
4084
+ required_review_thread_resolution: Optional[_builtins.bool] = None,
4085
+ required_reviewers: Optional[Sequence['outputs.RepositoryRulesetRulesPullRequestRequiredReviewer']] = None):
3821
4086
  """
4087
+ :param Sequence[_builtins.str] allowed_merge_methods: Array of allowed merge methods. Allowed values include `merge`, `squash`, and `rebase`. At least one option must be enabled.
3822
4088
  :param _builtins.bool dismiss_stale_reviews_on_push: New, reviewable commits pushed will dismiss previous pull request review approvals. Defaults to `false`.
3823
4089
  :param _builtins.bool require_code_owner_review: Require an approving review in pull requests that modify files that have a designated code owner. Defaults to `false`.
3824
4090
  :param _builtins.bool require_last_push_approval: Whether the most recent reviewable push must be approved by someone other than the person who pushed it. Defaults to `false`.
3825
4091
  :param _builtins.int required_approving_review_count: The number of approving reviews that are required before a pull request can be merged. Defaults to `0`.
3826
4092
  :param _builtins.bool required_review_thread_resolution: All conversations on code must be resolved before a pull request can be merged. Defaults to `false`.
4093
+ :param Sequence['RepositoryRulesetRulesPullRequestRequiredReviewerArgs'] required_reviewers: Require specific reviewers to approve pull requests targeting matching branches. Note: This feature is in beta and subject to change.
3827
4094
  """
4095
+ if allowed_merge_methods is not None:
4096
+ pulumi.set(__self__, "allowed_merge_methods", allowed_merge_methods)
3828
4097
  if dismiss_stale_reviews_on_push is not None:
3829
4098
  pulumi.set(__self__, "dismiss_stale_reviews_on_push", dismiss_stale_reviews_on_push)
3830
4099
  if require_code_owner_review is not None:
@@ -3835,6 +4104,16 @@ class RepositoryRulesetRulesPullRequest(dict):
3835
4104
  pulumi.set(__self__, "required_approving_review_count", required_approving_review_count)
3836
4105
  if required_review_thread_resolution is not None:
3837
4106
  pulumi.set(__self__, "required_review_thread_resolution", required_review_thread_resolution)
4107
+ if required_reviewers is not None:
4108
+ pulumi.set(__self__, "required_reviewers", required_reviewers)
4109
+
4110
+ @_builtins.property
4111
+ @pulumi.getter(name="allowedMergeMethods")
4112
+ def allowed_merge_methods(self) -> Optional[Sequence[_builtins.str]]:
4113
+ """
4114
+ Array of allowed merge methods. Allowed values include `merge`, `squash`, and `rebase`. At least one option must be enabled.
4115
+ """
4116
+ return pulumi.get(self, "allowed_merge_methods")
3838
4117
 
3839
4118
  @_builtins.property
3840
4119
  @pulumi.getter(name="dismissStaleReviewsOnPush")
@@ -3876,6 +4155,102 @@ class RepositoryRulesetRulesPullRequest(dict):
3876
4155
  """
3877
4156
  return pulumi.get(self, "required_review_thread_resolution")
3878
4157
 
4158
+ @_builtins.property
4159
+ @pulumi.getter(name="requiredReviewers")
4160
+ def required_reviewers(self) -> Optional[Sequence['outputs.RepositoryRulesetRulesPullRequestRequiredReviewer']]:
4161
+ """
4162
+ Require specific reviewers to approve pull requests targeting matching branches. Note: This feature is in beta and subject to change.
4163
+ """
4164
+ return pulumi.get(self, "required_reviewers")
4165
+
4166
+
4167
+ @pulumi.output_type
4168
+ class RepositoryRulesetRulesPullRequestRequiredReviewer(dict):
4169
+ @staticmethod
4170
+ def __key_warning(key: str):
4171
+ suggest = None
4172
+ if key == "filePatterns":
4173
+ suggest = "file_patterns"
4174
+ elif key == "minimumApprovals":
4175
+ suggest = "minimum_approvals"
4176
+
4177
+ if suggest:
4178
+ pulumi.log.warn(f"Key '{key}' not found in RepositoryRulesetRulesPullRequestRequiredReviewer. Access the value via the '{suggest}' property getter instead.")
4179
+
4180
+ def __getitem__(self, key: str) -> Any:
4181
+ RepositoryRulesetRulesPullRequestRequiredReviewer.__key_warning(key)
4182
+ return super().__getitem__(key)
4183
+
4184
+ def get(self, key: str, default = None) -> Any:
4185
+ RepositoryRulesetRulesPullRequestRequiredReviewer.__key_warning(key)
4186
+ return super().get(key, default)
4187
+
4188
+ def __init__(__self__, *,
4189
+ file_patterns: Sequence[_builtins.str],
4190
+ minimum_approvals: _builtins.int,
4191
+ reviewer: 'outputs.RepositoryRulesetRulesPullRequestRequiredReviewerReviewer'):
4192
+ """
4193
+ :param Sequence[_builtins.str] file_patterns: File patterns (fnmatch syntax) that this reviewer must approve.
4194
+ :param _builtins.int minimum_approvals: Minimum number of approvals required from this reviewer. Set to 0 to make approval optional.
4195
+ :param 'RepositoryRulesetRulesPullRequestRequiredReviewerReviewerArgs' reviewer: The reviewer that must review matching files.
4196
+ """
4197
+ pulumi.set(__self__, "file_patterns", file_patterns)
4198
+ pulumi.set(__self__, "minimum_approvals", minimum_approvals)
4199
+ pulumi.set(__self__, "reviewer", reviewer)
4200
+
4201
+ @_builtins.property
4202
+ @pulumi.getter(name="filePatterns")
4203
+ def file_patterns(self) -> Sequence[_builtins.str]:
4204
+ """
4205
+ File patterns (fnmatch syntax) that this reviewer must approve.
4206
+ """
4207
+ return pulumi.get(self, "file_patterns")
4208
+
4209
+ @_builtins.property
4210
+ @pulumi.getter(name="minimumApprovals")
4211
+ def minimum_approvals(self) -> _builtins.int:
4212
+ """
4213
+ Minimum number of approvals required from this reviewer. Set to 0 to make approval optional.
4214
+ """
4215
+ return pulumi.get(self, "minimum_approvals")
4216
+
4217
+ @_builtins.property
4218
+ @pulumi.getter
4219
+ def reviewer(self) -> 'outputs.RepositoryRulesetRulesPullRequestRequiredReviewerReviewer':
4220
+ """
4221
+ The reviewer that must review matching files.
4222
+ """
4223
+ return pulumi.get(self, "reviewer")
4224
+
4225
+
4226
+ @pulumi.output_type
4227
+ class RepositoryRulesetRulesPullRequestRequiredReviewerReviewer(dict):
4228
+ def __init__(__self__, *,
4229
+ id: _builtins.int,
4230
+ type: _builtins.str):
4231
+ """
4232
+ :param _builtins.int id: The ID of the reviewer that must review.
4233
+ :param _builtins.str type: The type of reviewer. Currently only `Team` is supported.
4234
+ """
4235
+ pulumi.set(__self__, "id", id)
4236
+ pulumi.set(__self__, "type", type)
4237
+
4238
+ @_builtins.property
4239
+ @pulumi.getter
4240
+ def id(self) -> _builtins.int:
4241
+ """
4242
+ The ID of the reviewer that must review.
4243
+ """
4244
+ return pulumi.get(self, "id")
4245
+
4246
+ @_builtins.property
4247
+ @pulumi.getter
4248
+ def type(self) -> _builtins.str:
4249
+ """
4250
+ The type of reviewer. Currently only `Team` is supported.
4251
+ """
4252
+ return pulumi.get(self, "type")
4253
+
3879
4254
 
3880
4255
  @pulumi.output_type
3881
4256
  class RepositoryRulesetRulesRequiredCodeScanning(dict):
@@ -4334,7 +4709,7 @@ class RepositorySecurityAndAnalysisSecretScanningAiDetection(dict):
4334
4709
  def __init__(__self__, *,
4335
4710
  status: _builtins.str):
4336
4711
  """
4337
- :param _builtins.str status: The GitHub Pages site's build status e.g. `building` or `built`.
4712
+ :param _builtins.str status: Set to `enabled` to enable secret scanning AI detection on the repository. Can be `enabled` or `disabled`. If set to `enabled`, the repository's visibility must be `public`, `security_and_analysis[0].advanced_security[0].status` must also be set to `enabled`, or your Organization must have split licensing for Advanced security.
4338
4713
  """
4339
4714
  pulumi.set(__self__, "status", status)
4340
4715
 
@@ -4342,7 +4717,7 @@ class RepositorySecurityAndAnalysisSecretScanningAiDetection(dict):
4342
4717
  @pulumi.getter
4343
4718
  def status(self) -> _builtins.str:
4344
4719
  """
4345
- The GitHub Pages site's build status e.g. `building` or `built`.
4720
+ Set to `enabled` to enable secret scanning AI detection on the repository. Can be `enabled` or `disabled`. If set to `enabled`, the repository's visibility must be `public`, `security_and_analysis[0].advanced_security[0].status` must also be set to `enabled`, or your Organization must have split licensing for Advanced security.
4346
4721
  """
4347
4722
  return pulumi.get(self, "status")
4348
4723
 
@@ -4410,6 +4785,8 @@ class RepositoryTemplate(dict):
4410
4785
  :param _builtins.str owner: The GitHub organization or user the template repository is owned by.
4411
4786
  :param _builtins.str repository: The name of the template repository.
4412
4787
  :param _builtins.bool include_all_branches: Whether the new repository should include all the branches from the template repository (defaults to false, which includes only the default branch from the template).
4788
+
4789
+ > **Note on `internal` visibility with templates**: When creating a repository from a template with `visibility = "internal"`, the provider uses a two-step process due to GitHub API limitations. The template creation API only supports a `private` boolean parameter. Therefore, repositories with `visibility = "internal"` are initially created as private and then immediately updated to internal visibility. This ensures internal repositories are never exposed publicly during creation.
4413
4790
  """
4414
4791
  pulumi.set(__self__, "owner", owner)
4415
4792
  pulumi.set(__self__, "repository", repository)
@@ -4437,6 +4814,8 @@ class RepositoryTemplate(dict):
4437
4814
  def include_all_branches(self) -> Optional[_builtins.bool]:
4438
4815
  """
4439
4816
  Whether the new repository should include all the branches from the template repository (defaults to false, which includes only the default branch from the template).
4817
+
4818
+ > **Note on `internal` visibility with templates**: When creating a repository from a template with `visibility = "internal"`, the provider uses a two-step process due to GitHub API limitations. The template creation API only supports a `private` boolean parameter. Therefore, repositories with `visibility = "internal"` are initially created as private and then immediately updated to internal visibility. This ensures internal repositories are never exposed publicly during creation.
4440
4819
  """
4441
4820
  return pulumi.get(self, "include_all_branches")
4442
4821