projen 0.95.1__py3-none-any.whl → 0.95.3__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.

Potentially problematic release.


This version of projen might be problematic. Click here for more details.

projen/cdk/__init__.py CHANGED
@@ -615,6 +615,7 @@ class JsiiDocgenOptions:
615
615
  jsii_type="projen.cdk.JsiiDotNetTarget",
616
616
  jsii_struct_bases=[_NugetPublishOptions_32e8bf09],
617
617
  name_mapping={
618
+ "github_environment": "githubEnvironment",
618
619
  "post_publish_steps": "postPublishSteps",
619
620
  "pre_publish_steps": "prePublishSteps",
620
621
  "publish_tools": "publishTools",
@@ -629,6 +630,7 @@ class JsiiDotNetTarget(_NugetPublishOptions_32e8bf09):
629
630
  def __init__(
630
631
  self,
631
632
  *,
633
+ github_environment: typing.Optional[builtins.str] = None,
632
634
  post_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
633
635
  pre_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
634
636
  publish_tools: typing.Optional[typing.Union[_Tools_75b93a2a, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -639,6 +641,7 @@ class JsiiDotNetTarget(_NugetPublishOptions_32e8bf09):
639
641
  icon_url: typing.Optional[builtins.str] = None,
640
642
  ) -> None:
641
643
  '''
644
+ :param github_environment: (experimental) The GitHub Actions environment used for publishing. This can be used to add an explicit approval step to the release or limit who can initiate a release through environment protection rules. Set this to overwrite a package level publishing environment just for this artifact. Default: - no environment used, unless set at the package level
642
645
  :param post_publish_steps: (experimental) Steps to execute after executing the publishing command. These can be used to add/update the release artifacts ot any other tasks needed. Note that when using this in ``publishToGitHubReleases`` this will override steps added via ``addGitHubPostPublishingSteps``.
643
646
  :param pre_publish_steps: (experimental) Steps to execute before executing the publishing command. These can be used to prepare the artifact for publishing if needed. These steps are executed after ``dist/`` has been populated with the build output. Note that when using this in ``publishToGitHubReleases`` this will override steps added via ``addGitHubPrePublishingSteps``.
644
647
  :param publish_tools: (experimental) Additional tools to install in the publishing job. Default: - no additional tools are installed
@@ -654,6 +657,7 @@ class JsiiDotNetTarget(_NugetPublishOptions_32e8bf09):
654
657
  publish_tools = _Tools_75b93a2a(**publish_tools)
655
658
  if __debug__:
656
659
  type_hints = typing.get_type_hints(_typecheckingstub__e809c6916d6d93bf1e91d05e4a79f49eb72f74bccaceeb6a508a3005bb5ec7b5)
660
+ check_type(argname="argument github_environment", value=github_environment, expected_type=type_hints["github_environment"])
657
661
  check_type(argname="argument post_publish_steps", value=post_publish_steps, expected_type=type_hints["post_publish_steps"])
658
662
  check_type(argname="argument pre_publish_steps", value=pre_publish_steps, expected_type=type_hints["pre_publish_steps"])
659
663
  check_type(argname="argument publish_tools", value=publish_tools, expected_type=type_hints["publish_tools"])
@@ -666,6 +670,8 @@ class JsiiDotNetTarget(_NugetPublishOptions_32e8bf09):
666
670
  "dot_net_namespace": dot_net_namespace,
667
671
  "package_id": package_id,
668
672
  }
673
+ if github_environment is not None:
674
+ self._values["github_environment"] = github_environment
669
675
  if post_publish_steps is not None:
670
676
  self._values["post_publish_steps"] = post_publish_steps
671
677
  if pre_publish_steps is not None:
@@ -679,6 +685,22 @@ class JsiiDotNetTarget(_NugetPublishOptions_32e8bf09):
679
685
  if icon_url is not None:
680
686
  self._values["icon_url"] = icon_url
681
687
 
688
+ @builtins.property
689
+ def github_environment(self) -> typing.Optional[builtins.str]:
690
+ '''(experimental) The GitHub Actions environment used for publishing.
691
+
692
+ This can be used to add an explicit approval step to the release
693
+ or limit who can initiate a release through environment protection rules.
694
+
695
+ Set this to overwrite a package level publishing environment just for this artifact.
696
+
697
+ :default: - no environment used, unless set at the package level
698
+
699
+ :stability: experimental
700
+ '''
701
+ result = self._values.get("github_environment")
702
+ return typing.cast(typing.Optional[builtins.str], result)
703
+
682
704
  @builtins.property
683
705
  def post_publish_steps(self) -> typing.Optional[typing.List[_JobStep_c3287c05]]:
684
706
  '''(experimental) Steps to execute after executing the publishing command.
@@ -780,6 +802,7 @@ class JsiiDotNetTarget(_NugetPublishOptions_32e8bf09):
780
802
  jsii_type="projen.cdk.JsiiGoTarget",
781
803
  jsii_struct_bases=[_GoPublishOptions_d6430d61],
782
804
  name_mapping={
805
+ "github_environment": "githubEnvironment",
783
806
  "post_publish_steps": "postPublishSteps",
784
807
  "pre_publish_steps": "prePublishSteps",
785
808
  "publish_tools": "publishTools",
@@ -799,6 +822,7 @@ class JsiiGoTarget(_GoPublishOptions_d6430d61):
799
822
  def __init__(
800
823
  self,
801
824
  *,
825
+ github_environment: typing.Optional[builtins.str] = None,
802
826
  post_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
803
827
  pre_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
804
828
  publish_tools: typing.Optional[typing.Union[_Tools_75b93a2a, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -815,6 +839,7 @@ class JsiiGoTarget(_GoPublishOptions_d6430d61):
815
839
  ) -> None:
816
840
  '''(experimental) Go target configuration.
817
841
 
842
+ :param github_environment: (experimental) The GitHub Actions environment used for publishing. This can be used to add an explicit approval step to the release or limit who can initiate a release through environment protection rules. Set this to overwrite a package level publishing environment just for this artifact. Default: - no environment used, unless set at the package level
818
843
  :param post_publish_steps: (experimental) Steps to execute after executing the publishing command. These can be used to add/update the release artifacts ot any other tasks needed. Note that when using this in ``publishToGitHubReleases`` this will override steps added via ``addGitHubPostPublishingSteps``.
819
844
  :param pre_publish_steps: (experimental) Steps to execute before executing the publishing command. These can be used to prepare the artifact for publishing if needed. These steps are executed after ``dist/`` has been populated with the build output. Note that when using this in ``publishToGitHubReleases`` this will override steps added via ``addGitHubPrePublishingSteps``.
820
845
  :param publish_tools: (experimental) Additional tools to install in the publishing job. Default: - no additional tools are installed
@@ -835,6 +860,7 @@ class JsiiGoTarget(_GoPublishOptions_d6430d61):
835
860
  publish_tools = _Tools_75b93a2a(**publish_tools)
836
861
  if __debug__:
837
862
  type_hints = typing.get_type_hints(_typecheckingstub__b0ea0b1537651364353b8d1546fea1d78af2aaded6dded156ab976119354df9a)
863
+ check_type(argname="argument github_environment", value=github_environment, expected_type=type_hints["github_environment"])
838
864
  check_type(argname="argument post_publish_steps", value=post_publish_steps, expected_type=type_hints["post_publish_steps"])
839
865
  check_type(argname="argument pre_publish_steps", value=pre_publish_steps, expected_type=type_hints["pre_publish_steps"])
840
866
  check_type(argname="argument publish_tools", value=publish_tools, expected_type=type_hints["publish_tools"])
@@ -851,6 +877,8 @@ class JsiiGoTarget(_GoPublishOptions_d6430d61):
851
877
  self._values: typing.Dict[builtins.str, typing.Any] = {
852
878
  "module_name": module_name,
853
879
  }
880
+ if github_environment is not None:
881
+ self._values["github_environment"] = github_environment
854
882
  if post_publish_steps is not None:
855
883
  self._values["post_publish_steps"] = post_publish_steps
856
884
  if pre_publish_steps is not None:
@@ -876,6 +904,22 @@ class JsiiGoTarget(_GoPublishOptions_d6430d61):
876
904
  if version_suffix is not None:
877
905
  self._values["version_suffix"] = version_suffix
878
906
 
907
+ @builtins.property
908
+ def github_environment(self) -> typing.Optional[builtins.str]:
909
+ '''(experimental) The GitHub Actions environment used for publishing.
910
+
911
+ This can be used to add an explicit approval step to the release
912
+ or limit who can initiate a release through environment protection rules.
913
+
914
+ Set this to overwrite a package level publishing environment just for this artifact.
915
+
916
+ :default: - no environment used, unless set at the package level
917
+
918
+ :stability: experimental
919
+ '''
920
+ result = self._values.get("github_environment")
921
+ return typing.cast(typing.Optional[builtins.str], result)
922
+
879
923
  @builtins.property
880
924
  def post_publish_steps(self) -> typing.Optional[typing.List[_JobStep_c3287c05]]:
881
925
  '''(experimental) Steps to execute after executing the publishing command.
@@ -1055,6 +1099,7 @@ class JsiiGoTarget(_GoPublishOptions_d6430d61):
1055
1099
  jsii_type="projen.cdk.JsiiJavaTarget",
1056
1100
  jsii_struct_bases=[_MavenPublishOptions_43a9e42a],
1057
1101
  name_mapping={
1102
+ "github_environment": "githubEnvironment",
1058
1103
  "post_publish_steps": "postPublishSteps",
1059
1104
  "pre_publish_steps": "prePublishSteps",
1060
1105
  "publish_tools": "publishTools",
@@ -1075,6 +1120,7 @@ class JsiiJavaTarget(_MavenPublishOptions_43a9e42a):
1075
1120
  def __init__(
1076
1121
  self,
1077
1122
  *,
1123
+ github_environment: typing.Optional[builtins.str] = None,
1078
1124
  post_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
1079
1125
  pre_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
1080
1126
  publish_tools: typing.Optional[typing.Union[_Tools_75b93a2a, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -1091,6 +1137,7 @@ class JsiiJavaTarget(_MavenPublishOptions_43a9e42a):
1091
1137
  maven_group_id: builtins.str,
1092
1138
  ) -> None:
1093
1139
  '''
1140
+ :param github_environment: (experimental) The GitHub Actions environment used for publishing. This can be used to add an explicit approval step to the release or limit who can initiate a release through environment protection rules. Set this to overwrite a package level publishing environment just for this artifact. Default: - no environment used, unless set at the package level
1094
1141
  :param post_publish_steps: (experimental) Steps to execute after executing the publishing command. These can be used to add/update the release artifacts ot any other tasks needed. Note that when using this in ``publishToGitHubReleases`` this will override steps added via ``addGitHubPostPublishingSteps``.
1095
1142
  :param pre_publish_steps: (experimental) Steps to execute before executing the publishing command. These can be used to prepare the artifact for publishing if needed. These steps are executed after ``dist/`` has been populated with the build output. Note that when using this in ``publishToGitHubReleases`` this will override steps added via ``addGitHubPrePublishingSteps``.
1096
1143
  :param publish_tools: (experimental) Additional tools to install in the publishing job. Default: - no additional tools are installed
@@ -1112,6 +1159,7 @@ class JsiiJavaTarget(_MavenPublishOptions_43a9e42a):
1112
1159
  publish_tools = _Tools_75b93a2a(**publish_tools)
1113
1160
  if __debug__:
1114
1161
  type_hints = typing.get_type_hints(_typecheckingstub__365483a000ed61cc1587d7ada435961b86f33fb0718cd001430497c2290e0820)
1162
+ check_type(argname="argument github_environment", value=github_environment, expected_type=type_hints["github_environment"])
1115
1163
  check_type(argname="argument post_publish_steps", value=post_publish_steps, expected_type=type_hints["post_publish_steps"])
1116
1164
  check_type(argname="argument pre_publish_steps", value=pre_publish_steps, expected_type=type_hints["pre_publish_steps"])
1117
1165
  check_type(argname="argument publish_tools", value=publish_tools, expected_type=type_hints["publish_tools"])
@@ -1131,6 +1179,8 @@ class JsiiJavaTarget(_MavenPublishOptions_43a9e42a):
1131
1179
  "maven_artifact_id": maven_artifact_id,
1132
1180
  "maven_group_id": maven_group_id,
1133
1181
  }
1182
+ if github_environment is not None:
1183
+ self._values["github_environment"] = github_environment
1134
1184
  if post_publish_steps is not None:
1135
1185
  self._values["post_publish_steps"] = post_publish_steps
1136
1186
  if pre_publish_steps is not None:
@@ -1154,6 +1204,22 @@ class JsiiJavaTarget(_MavenPublishOptions_43a9e42a):
1154
1204
  if maven_username is not None:
1155
1205
  self._values["maven_username"] = maven_username
1156
1206
 
1207
+ @builtins.property
1208
+ def github_environment(self) -> typing.Optional[builtins.str]:
1209
+ '''(experimental) The GitHub Actions environment used for publishing.
1210
+
1211
+ This can be used to add an explicit approval step to the release
1212
+ or limit who can initiate a release through environment protection rules.
1213
+
1214
+ Set this to overwrite a package level publishing environment just for this artifact.
1215
+
1216
+ :default: - no environment used, unless set at the package level
1217
+
1218
+ :stability: experimental
1219
+ '''
1220
+ result = self._values.get("github_environment")
1221
+ return typing.cast(typing.Optional[builtins.str], result)
1222
+
1157
1223
  @builtins.property
1158
1224
  def post_publish_steps(self) -> typing.Optional[typing.List[_JobStep_c3287c05]]:
1159
1225
  '''(experimental) Steps to execute after executing the publishing command.
@@ -1472,6 +1538,7 @@ class JsiiProject(
1472
1538
  npm_registry: typing.Optional[builtins.str] = None,
1473
1539
  npm_registry_url: typing.Optional[builtins.str] = None,
1474
1540
  npm_token_secret: typing.Optional[builtins.str] = None,
1541
+ npm_trusted_publishing: typing.Optional[builtins.bool] = None,
1475
1542
  package_manager: typing.Optional[_NodePackageManager_3eb53bf6] = None,
1476
1543
  package_name: typing.Optional[builtins.str] = None,
1477
1544
  peer_dependency_options: typing.Optional[typing.Union[_PeerDependencyOptions_99d7d493, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -1495,6 +1562,7 @@ class JsiiProject(
1495
1562
  publish_tasks: typing.Optional[builtins.bool] = None,
1496
1563
  releasable_commits: typing.Optional[_ReleasableCommits_d481ce10] = None,
1497
1564
  release_branches: typing.Optional[typing.Mapping[builtins.str, typing.Union[_BranchOptions_13663d08, typing.Dict[builtins.str, typing.Any]]]] = None,
1565
+ release_environment: typing.Optional[builtins.str] = None,
1498
1566
  release_every_commit: typing.Optional[builtins.bool] = None,
1499
1567
  release_failure_issue: typing.Optional[builtins.bool] = None,
1500
1568
  release_failure_issue_label: typing.Optional[builtins.str] = None,
@@ -1640,6 +1708,7 @@ class JsiiProject(
1640
1708
  :param npm_registry: (deprecated) The host name of the npm registry to publish to. Cannot be set together with ``npmRegistryUrl``.
1641
1709
  :param npm_registry_url: (experimental) The base URL of the npm package registry. Must be a URL (e.g. start with "https://" or "http://") Default: "https://registry.npmjs.org"
1642
1710
  :param npm_token_secret: (experimental) GitHub secret which contains the NPM token to use when publishing packages. Default: "NPM_TOKEN"
1711
+ :param npm_trusted_publishing: (experimental) Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on npm.js to work. Default: - false
1643
1712
  :param package_manager: (experimental) The Node Package Manager used to execute scripts. Default: NodePackageManager.YARN_CLASSIC
1644
1713
  :param package_name: (experimental) The "name" in package.json. Default: - defaults to project name
1645
1714
  :param peer_dependency_options: (experimental) Options for ``peerDeps``.
@@ -1663,6 +1732,7 @@ class JsiiProject(
1663
1732
  :param publish_tasks: (experimental) Define publishing tasks that can be executed manually as well as workflows. Normally, publishing only happens within automated workflows. Enable this in order to create a publishing task for each publishing activity. Default: false
1664
1733
  :param releasable_commits: (experimental) Find commits that should be considered releasable Used to decide if a release is required. Default: ReleasableCommits.everyCommit()
1665
1734
  :param release_branches: (experimental) Defines additional release branches. A workflow will be created for each release branch which will publish releases from commits in this branch. Each release branch *must* be assigned a major version number which is used to enforce that versions published from that branch always use that major version. If multiple branches are used, the ``majorVersion`` field must also be provided for the default branch. Default: - no additional branches are used for release. you can use ``addBranch()`` to add additional branches.
1735
+ :param release_environment: (experimental) The GitHub Actions environment used for the release. This can be used to add an explicit approval step to the release or limit who can initiate a release through environment protection rules. When multiple artifacts are released, the environment can be overwritten on a per artifact basis. Default: - no environment used, unless set at the artifact level
1666
1736
  :param release_every_commit: (deprecated) Automatically release new versions every commit to one of branches in ``releaseBranches``. Default: true
1667
1737
  :param release_failure_issue: (experimental) Create a github issue on every failed publishing task. Default: false
1668
1738
  :param release_failure_issue_label: (experimental) The label to apply to issues indicating publish failures. Only applies if ``releaseFailureIssue`` is true. Default: "failed-release"
@@ -1810,6 +1880,7 @@ class JsiiProject(
1810
1880
  npm_registry=npm_registry,
1811
1881
  npm_registry_url=npm_registry_url,
1812
1882
  npm_token_secret=npm_token_secret,
1883
+ npm_trusted_publishing=npm_trusted_publishing,
1813
1884
  package_manager=package_manager,
1814
1885
  package_name=package_name,
1815
1886
  peer_dependency_options=peer_dependency_options,
@@ -1833,6 +1904,7 @@ class JsiiProject(
1833
1904
  publish_tasks=publish_tasks,
1834
1905
  releasable_commits=releasable_commits,
1835
1906
  release_branches=release_branches,
1907
+ release_environment=release_environment,
1836
1908
  release_every_commit=release_every_commit,
1837
1909
  release_failure_issue=release_failure_issue,
1838
1910
  release_failure_issue_label=release_failure_issue_label,
@@ -1922,6 +1994,7 @@ class JsiiProject(
1922
1994
  "npm_registry": "npmRegistry",
1923
1995
  "npm_registry_url": "npmRegistryUrl",
1924
1996
  "npm_token_secret": "npmTokenSecret",
1997
+ "npm_trusted_publishing": "npmTrustedPublishing",
1925
1998
  "package_manager": "packageManager",
1926
1999
  "package_name": "packageName",
1927
2000
  "peer_dependency_options": "peerDependencyOptions",
@@ -1945,6 +2018,7 @@ class JsiiProject(
1945
2018
  "publish_tasks": "publishTasks",
1946
2019
  "releasable_commits": "releasableCommits",
1947
2020
  "release_branches": "releaseBranches",
2021
+ "release_environment": "releaseEnvironment",
1948
2022
  "release_every_commit": "releaseEveryCommit",
1949
2023
  "release_failure_issue": "releaseFailureIssue",
1950
2024
  "release_failure_issue_label": "releaseFailureIssueLabel",
@@ -2094,6 +2168,7 @@ class JsiiProjectOptions(_TypeScriptProjectOptions_d10c83f7):
2094
2168
  npm_registry: typing.Optional[builtins.str] = None,
2095
2169
  npm_registry_url: typing.Optional[builtins.str] = None,
2096
2170
  npm_token_secret: typing.Optional[builtins.str] = None,
2171
+ npm_trusted_publishing: typing.Optional[builtins.bool] = None,
2097
2172
  package_manager: typing.Optional[_NodePackageManager_3eb53bf6] = None,
2098
2173
  package_name: typing.Optional[builtins.str] = None,
2099
2174
  peer_dependency_options: typing.Optional[typing.Union[_PeerDependencyOptions_99d7d493, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -2117,6 +2192,7 @@ class JsiiProjectOptions(_TypeScriptProjectOptions_d10c83f7):
2117
2192
  publish_tasks: typing.Optional[builtins.bool] = None,
2118
2193
  releasable_commits: typing.Optional[_ReleasableCommits_d481ce10] = None,
2119
2194
  release_branches: typing.Optional[typing.Mapping[builtins.str, typing.Union[_BranchOptions_13663d08, typing.Dict[builtins.str, typing.Any]]]] = None,
2195
+ release_environment: typing.Optional[builtins.str] = None,
2120
2196
  release_every_commit: typing.Optional[builtins.bool] = None,
2121
2197
  release_failure_issue: typing.Optional[builtins.bool] = None,
2122
2198
  release_failure_issue_label: typing.Optional[builtins.str] = None,
@@ -2262,6 +2338,7 @@ class JsiiProjectOptions(_TypeScriptProjectOptions_d10c83f7):
2262
2338
  :param npm_registry: (deprecated) The host name of the npm registry to publish to. Cannot be set together with ``npmRegistryUrl``.
2263
2339
  :param npm_registry_url: (experimental) The base URL of the npm package registry. Must be a URL (e.g. start with "https://" or "http://") Default: "https://registry.npmjs.org"
2264
2340
  :param npm_token_secret: (experimental) GitHub secret which contains the NPM token to use when publishing packages. Default: "NPM_TOKEN"
2341
+ :param npm_trusted_publishing: (experimental) Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on npm.js to work. Default: - false
2265
2342
  :param package_manager: (experimental) The Node Package Manager used to execute scripts. Default: NodePackageManager.YARN_CLASSIC
2266
2343
  :param package_name: (experimental) The "name" in package.json. Default: - defaults to project name
2267
2344
  :param peer_dependency_options: (experimental) Options for ``peerDeps``.
@@ -2285,6 +2362,7 @@ class JsiiProjectOptions(_TypeScriptProjectOptions_d10c83f7):
2285
2362
  :param publish_tasks: (experimental) Define publishing tasks that can be executed manually as well as workflows. Normally, publishing only happens within automated workflows. Enable this in order to create a publishing task for each publishing activity. Default: false
2286
2363
  :param releasable_commits: (experimental) Find commits that should be considered releasable Used to decide if a release is required. Default: ReleasableCommits.everyCommit()
2287
2364
  :param release_branches: (experimental) Defines additional release branches. A workflow will be created for each release branch which will publish releases from commits in this branch. Each release branch *must* be assigned a major version number which is used to enforce that versions published from that branch always use that major version. If multiple branches are used, the ``majorVersion`` field must also be provided for the default branch. Default: - no additional branches are used for release. you can use ``addBranch()`` to add additional branches.
2365
+ :param release_environment: (experimental) The GitHub Actions environment used for the release. This can be used to add an explicit approval step to the release or limit who can initiate a release through environment protection rules. When multiple artifacts are released, the environment can be overwritten on a per artifact basis. Default: - no environment used, unless set at the artifact level
2288
2366
  :param release_every_commit: (deprecated) Automatically release new versions every commit to one of branches in ``releaseBranches``. Default: true
2289
2367
  :param release_failure_issue: (experimental) Create a github issue on every failed publishing task. Default: false
2290
2368
  :param release_failure_issue_label: (experimental) The label to apply to issues indicating publish failures. Only applies if ``releaseFailureIssue`` is true. Default: "failed-release"
@@ -2509,6 +2587,7 @@ class JsiiProjectOptions(_TypeScriptProjectOptions_d10c83f7):
2509
2587
  check_type(argname="argument npm_registry", value=npm_registry, expected_type=type_hints["npm_registry"])
2510
2588
  check_type(argname="argument npm_registry_url", value=npm_registry_url, expected_type=type_hints["npm_registry_url"])
2511
2589
  check_type(argname="argument npm_token_secret", value=npm_token_secret, expected_type=type_hints["npm_token_secret"])
2590
+ check_type(argname="argument npm_trusted_publishing", value=npm_trusted_publishing, expected_type=type_hints["npm_trusted_publishing"])
2512
2591
  check_type(argname="argument package_manager", value=package_manager, expected_type=type_hints["package_manager"])
2513
2592
  check_type(argname="argument package_name", value=package_name, expected_type=type_hints["package_name"])
2514
2593
  check_type(argname="argument peer_dependency_options", value=peer_dependency_options, expected_type=type_hints["peer_dependency_options"])
@@ -2532,6 +2611,7 @@ class JsiiProjectOptions(_TypeScriptProjectOptions_d10c83f7):
2532
2611
  check_type(argname="argument publish_tasks", value=publish_tasks, expected_type=type_hints["publish_tasks"])
2533
2612
  check_type(argname="argument releasable_commits", value=releasable_commits, expected_type=type_hints["releasable_commits"])
2534
2613
  check_type(argname="argument release_branches", value=release_branches, expected_type=type_hints["release_branches"])
2614
+ check_type(argname="argument release_environment", value=release_environment, expected_type=type_hints["release_environment"])
2535
2615
  check_type(argname="argument release_every_commit", value=release_every_commit, expected_type=type_hints["release_every_commit"])
2536
2616
  check_type(argname="argument release_failure_issue", value=release_failure_issue, expected_type=type_hints["release_failure_issue"])
2537
2617
  check_type(argname="argument release_failure_issue_label", value=release_failure_issue_label, expected_type=type_hints["release_failure_issue_label"])
@@ -2736,6 +2816,8 @@ class JsiiProjectOptions(_TypeScriptProjectOptions_d10c83f7):
2736
2816
  self._values["npm_registry_url"] = npm_registry_url
2737
2817
  if npm_token_secret is not None:
2738
2818
  self._values["npm_token_secret"] = npm_token_secret
2819
+ if npm_trusted_publishing is not None:
2820
+ self._values["npm_trusted_publishing"] = npm_trusted_publishing
2739
2821
  if package_manager is not None:
2740
2822
  self._values["package_manager"] = package_manager
2741
2823
  if package_name is not None:
@@ -2782,6 +2864,8 @@ class JsiiProjectOptions(_TypeScriptProjectOptions_d10c83f7):
2782
2864
  self._values["releasable_commits"] = releasable_commits
2783
2865
  if release_branches is not None:
2784
2866
  self._values["release_branches"] = release_branches
2867
+ if release_environment is not None:
2868
+ self._values["release_environment"] = release_environment
2785
2869
  if release_every_commit is not None:
2786
2870
  self._values["release_every_commit"] = release_every_commit
2787
2871
  if release_failure_issue is not None:
@@ -3664,6 +3748,17 @@ class JsiiProjectOptions(_TypeScriptProjectOptions_d10c83f7):
3664
3748
  result = self._values.get("npm_token_secret")
3665
3749
  return typing.cast(typing.Optional[builtins.str], result)
3666
3750
 
3751
+ @builtins.property
3752
+ def npm_trusted_publishing(self) -> typing.Optional[builtins.bool]:
3753
+ '''(experimental) Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on npm.js to work.
3754
+
3755
+ :default: - false
3756
+
3757
+ :stability: experimental
3758
+ '''
3759
+ result = self._values.get("npm_trusted_publishing")
3760
+ return typing.cast(typing.Optional[builtins.bool], result)
3761
+
3667
3762
  @builtins.property
3668
3763
  def package_manager(self) -> typing.Optional[_NodePackageManager_3eb53bf6]:
3669
3764
  '''(experimental) The Node Package Manager used to execute scripts.
@@ -3983,6 +4078,23 @@ class JsiiProjectOptions(_TypeScriptProjectOptions_d10c83f7):
3983
4078
  result = self._values.get("release_branches")
3984
4079
  return typing.cast(typing.Optional[typing.Mapping[builtins.str, _BranchOptions_13663d08]], result)
3985
4080
 
4081
+ @builtins.property
4082
+ def release_environment(self) -> typing.Optional[builtins.str]:
4083
+ '''(experimental) The GitHub Actions environment used for the release.
4084
+
4085
+ This can be used to add an explicit approval step to the release
4086
+ or limit who can initiate a release through environment protection rules.
4087
+
4088
+ When multiple artifacts are released, the environment can be overwritten
4089
+ on a per artifact basis.
4090
+
4091
+ :default: - no environment used, unless set at the artifact level
4092
+
4093
+ :stability: experimental
4094
+ '''
4095
+ result = self._values.get("release_environment")
4096
+ return typing.cast(typing.Optional[builtins.str], result)
4097
+
3986
4098
  @builtins.property
3987
4099
  def release_every_commit(self) -> typing.Optional[builtins.bool]:
3988
4100
  '''(deprecated) Automatically release new versions every commit to one of branches in ``releaseBranches``.
@@ -5014,10 +5126,13 @@ class JsiiProjectOptions(_TypeScriptProjectOptions_d10c83f7):
5014
5126
  jsii_type="projen.cdk.JsiiPythonTarget",
5015
5127
  jsii_struct_bases=[_PyPiPublishOptions_99154bcd],
5016
5128
  name_mapping={
5129
+ "github_environment": "githubEnvironment",
5017
5130
  "post_publish_steps": "postPublishSteps",
5018
5131
  "pre_publish_steps": "prePublishSteps",
5019
5132
  "publish_tools": "publishTools",
5133
+ "attestations": "attestations",
5020
5134
  "code_artifact_options": "codeArtifactOptions",
5135
+ "trusted_publishing": "trustedPublishing",
5021
5136
  "twine_password_secret": "twinePasswordSecret",
5022
5137
  "twine_registry_url": "twineRegistryUrl",
5023
5138
  "twine_username_secret": "twineUsernameSecret",
@@ -5029,10 +5144,13 @@ class JsiiPythonTarget(_PyPiPublishOptions_99154bcd):
5029
5144
  def __init__(
5030
5145
  self,
5031
5146
  *,
5147
+ github_environment: typing.Optional[builtins.str] = None,
5032
5148
  post_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
5033
5149
  pre_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
5034
5150
  publish_tools: typing.Optional[typing.Union[_Tools_75b93a2a, typing.Dict[builtins.str, typing.Any]]] = None,
5151
+ attestations: typing.Optional[builtins.bool] = None,
5035
5152
  code_artifact_options: typing.Optional[typing.Union[_CodeArtifactOptions_7236977a, typing.Dict[builtins.str, typing.Any]]] = None,
5153
+ trusted_publishing: typing.Optional[builtins.bool] = None,
5036
5154
  twine_password_secret: typing.Optional[builtins.str] = None,
5037
5155
  twine_registry_url: typing.Optional[builtins.str] = None,
5038
5156
  twine_username_secret: typing.Optional[builtins.str] = None,
@@ -5040,10 +5158,13 @@ class JsiiPythonTarget(_PyPiPublishOptions_99154bcd):
5040
5158
  module: builtins.str,
5041
5159
  ) -> None:
5042
5160
  '''
5161
+ :param github_environment: (experimental) The GitHub Actions environment used for publishing. This can be used to add an explicit approval step to the release or limit who can initiate a release through environment protection rules. Set this to overwrite a package level publishing environment just for this artifact. Default: - no environment used, unless set at the package level
5043
5162
  :param post_publish_steps: (experimental) Steps to execute after executing the publishing command. These can be used to add/update the release artifacts ot any other tasks needed. Note that when using this in ``publishToGitHubReleases`` this will override steps added via ``addGitHubPostPublishingSteps``.
5044
5163
  :param pre_publish_steps: (experimental) Steps to execute before executing the publishing command. These can be used to prepare the artifact for publishing if needed. These steps are executed after ``dist/`` has been populated with the build output. Note that when using this in ``publishToGitHubReleases`` this will override steps added via ``addGitHubPrePublishingSteps``.
5045
5164
  :param publish_tools: (experimental) Additional tools to install in the publishing job. Default: - no additional tools are installed
5165
+ :param attestations: (experimental) Generate and publish cryptographic attestations for files uploaded to PyPI. Attestations provide package provenance and integrity an can be viewed on PyPI. They are only available when using a Trusted Publisher for publishing. Default: - enabled when using trusted publishing, otherwise not applicable
5046
5166
  :param code_artifact_options: (experimental) Options for publishing to AWS CodeArtifact. Default: - undefined
5167
+ :param trusted_publishing: (experimental) Use PyPI trusted publishing instead of tokens or username & password. Needs to be setup in PyPI.
5047
5168
  :param twine_password_secret: (experimental) The GitHub secret which contains PyPI password. Default: "TWINE_PASSWORD"
5048
5169
  :param twine_registry_url: (experimental) The registry url to use when releasing packages. Default: - twine default
5049
5170
  :param twine_username_secret: (experimental) The GitHub secret which contains PyPI user name. Default: "TWINE_USERNAME"
@@ -5058,10 +5179,13 @@ class JsiiPythonTarget(_PyPiPublishOptions_99154bcd):
5058
5179
  code_artifact_options = _CodeArtifactOptions_7236977a(**code_artifact_options)
5059
5180
  if __debug__:
5060
5181
  type_hints = typing.get_type_hints(_typecheckingstub__b9ccf41e184eae5eabcd38be0ea0cb88c9d6eb3d4f60d6bb85e4a73763bfb94a)
5182
+ check_type(argname="argument github_environment", value=github_environment, expected_type=type_hints["github_environment"])
5061
5183
  check_type(argname="argument post_publish_steps", value=post_publish_steps, expected_type=type_hints["post_publish_steps"])
5062
5184
  check_type(argname="argument pre_publish_steps", value=pre_publish_steps, expected_type=type_hints["pre_publish_steps"])
5063
5185
  check_type(argname="argument publish_tools", value=publish_tools, expected_type=type_hints["publish_tools"])
5186
+ check_type(argname="argument attestations", value=attestations, expected_type=type_hints["attestations"])
5064
5187
  check_type(argname="argument code_artifact_options", value=code_artifact_options, expected_type=type_hints["code_artifact_options"])
5188
+ check_type(argname="argument trusted_publishing", value=trusted_publishing, expected_type=type_hints["trusted_publishing"])
5065
5189
  check_type(argname="argument twine_password_secret", value=twine_password_secret, expected_type=type_hints["twine_password_secret"])
5066
5190
  check_type(argname="argument twine_registry_url", value=twine_registry_url, expected_type=type_hints["twine_registry_url"])
5067
5191
  check_type(argname="argument twine_username_secret", value=twine_username_secret, expected_type=type_hints["twine_username_secret"])
@@ -5071,14 +5195,20 @@ class JsiiPythonTarget(_PyPiPublishOptions_99154bcd):
5071
5195
  "dist_name": dist_name,
5072
5196
  "module": module,
5073
5197
  }
5198
+ if github_environment is not None:
5199
+ self._values["github_environment"] = github_environment
5074
5200
  if post_publish_steps is not None:
5075
5201
  self._values["post_publish_steps"] = post_publish_steps
5076
5202
  if pre_publish_steps is not None:
5077
5203
  self._values["pre_publish_steps"] = pre_publish_steps
5078
5204
  if publish_tools is not None:
5079
5205
  self._values["publish_tools"] = publish_tools
5206
+ if attestations is not None:
5207
+ self._values["attestations"] = attestations
5080
5208
  if code_artifact_options is not None:
5081
5209
  self._values["code_artifact_options"] = code_artifact_options
5210
+ if trusted_publishing is not None:
5211
+ self._values["trusted_publishing"] = trusted_publishing
5082
5212
  if twine_password_secret is not None:
5083
5213
  self._values["twine_password_secret"] = twine_password_secret
5084
5214
  if twine_registry_url is not None:
@@ -5086,6 +5216,22 @@ class JsiiPythonTarget(_PyPiPublishOptions_99154bcd):
5086
5216
  if twine_username_secret is not None:
5087
5217
  self._values["twine_username_secret"] = twine_username_secret
5088
5218
 
5219
+ @builtins.property
5220
+ def github_environment(self) -> typing.Optional[builtins.str]:
5221
+ '''(experimental) The GitHub Actions environment used for publishing.
5222
+
5223
+ This can be used to add an explicit approval step to the release
5224
+ or limit who can initiate a release through environment protection rules.
5225
+
5226
+ Set this to overwrite a package level publishing environment just for this artifact.
5227
+
5228
+ :default: - no environment used, unless set at the package level
5229
+
5230
+ :stability: experimental
5231
+ '''
5232
+ result = self._values.get("github_environment")
5233
+ return typing.cast(typing.Optional[builtins.str], result)
5234
+
5089
5235
  @builtins.property
5090
5236
  def post_publish_steps(self) -> typing.Optional[typing.List[_JobStep_c3287c05]]:
5091
5237
  '''(experimental) Steps to execute after executing the publishing command.
@@ -5125,6 +5271,21 @@ class JsiiPythonTarget(_PyPiPublishOptions_99154bcd):
5125
5271
  result = self._values.get("publish_tools")
5126
5272
  return typing.cast(typing.Optional[_Tools_75b93a2a], result)
5127
5273
 
5274
+ @builtins.property
5275
+ def attestations(self) -> typing.Optional[builtins.bool]:
5276
+ '''(experimental) Generate and publish cryptographic attestations for files uploaded to PyPI.
5277
+
5278
+ Attestations provide package provenance and integrity an can be viewed on PyPI.
5279
+ They are only available when using a Trusted Publisher for publishing.
5280
+
5281
+ :default: - enabled when using trusted publishing, otherwise not applicable
5282
+
5283
+ :see: https://docs.pypi.org/attestations/producing-attestations/
5284
+ :stability: experimental
5285
+ '''
5286
+ result = self._values.get("attestations")
5287
+ return typing.cast(typing.Optional[builtins.bool], result)
5288
+
5128
5289
  @builtins.property
5129
5290
  def code_artifact_options(self) -> typing.Optional[_CodeArtifactOptions_7236977a]:
5130
5291
  '''(experimental) Options for publishing to AWS CodeArtifact.
@@ -5136,6 +5297,18 @@ class JsiiPythonTarget(_PyPiPublishOptions_99154bcd):
5136
5297
  result = self._values.get("code_artifact_options")
5137
5298
  return typing.cast(typing.Optional[_CodeArtifactOptions_7236977a], result)
5138
5299
 
5300
+ @builtins.property
5301
+ def trusted_publishing(self) -> typing.Optional[builtins.bool]:
5302
+ '''(experimental) Use PyPI trusted publishing instead of tokens or username & password.
5303
+
5304
+ Needs to be setup in PyPI.
5305
+
5306
+ :see: https://docs.pypi.org/trusted-publishers/adding-a-publisher/
5307
+ :stability: experimental
5308
+ '''
5309
+ result = self._values.get("trusted_publishing")
5310
+ return typing.cast(typing.Optional[builtins.bool], result)
5311
+
5139
5312
  @builtins.property
5140
5313
  def twine_password_secret(self) -> typing.Optional[builtins.str]:
5141
5314
  '''(experimental) The GitHub secret which contains PyPI password.
@@ -5352,6 +5525,7 @@ class ConstructLibrary(
5352
5525
  npm_registry: typing.Optional[builtins.str] = None,
5353
5526
  npm_registry_url: typing.Optional[builtins.str] = None,
5354
5527
  npm_token_secret: typing.Optional[builtins.str] = None,
5528
+ npm_trusted_publishing: typing.Optional[builtins.bool] = None,
5355
5529
  package_manager: typing.Optional[_NodePackageManager_3eb53bf6] = None,
5356
5530
  package_name: typing.Optional[builtins.str] = None,
5357
5531
  peer_dependency_options: typing.Optional[typing.Union[_PeerDependencyOptions_99d7d493, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -5375,6 +5549,7 @@ class ConstructLibrary(
5375
5549
  publish_tasks: typing.Optional[builtins.bool] = None,
5376
5550
  releasable_commits: typing.Optional[_ReleasableCommits_d481ce10] = None,
5377
5551
  release_branches: typing.Optional[typing.Mapping[builtins.str, typing.Union[_BranchOptions_13663d08, typing.Dict[builtins.str, typing.Any]]]] = None,
5552
+ release_environment: typing.Optional[builtins.str] = None,
5378
5553
  release_every_commit: typing.Optional[builtins.bool] = None,
5379
5554
  release_failure_issue: typing.Optional[builtins.bool] = None,
5380
5555
  release_failure_issue_label: typing.Optional[builtins.str] = None,
@@ -5521,6 +5696,7 @@ class ConstructLibrary(
5521
5696
  :param npm_registry: (deprecated) The host name of the npm registry to publish to. Cannot be set together with ``npmRegistryUrl``.
5522
5697
  :param npm_registry_url: (experimental) The base URL of the npm package registry. Must be a URL (e.g. start with "https://" or "http://") Default: "https://registry.npmjs.org"
5523
5698
  :param npm_token_secret: (experimental) GitHub secret which contains the NPM token to use when publishing packages. Default: "NPM_TOKEN"
5699
+ :param npm_trusted_publishing: (experimental) Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on npm.js to work. Default: - false
5524
5700
  :param package_manager: (experimental) The Node Package Manager used to execute scripts. Default: NodePackageManager.YARN_CLASSIC
5525
5701
  :param package_name: (experimental) The "name" in package.json. Default: - defaults to project name
5526
5702
  :param peer_dependency_options: (experimental) Options for ``peerDeps``.
@@ -5544,6 +5720,7 @@ class ConstructLibrary(
5544
5720
  :param publish_tasks: (experimental) Define publishing tasks that can be executed manually as well as workflows. Normally, publishing only happens within automated workflows. Enable this in order to create a publishing task for each publishing activity. Default: false
5545
5721
  :param releasable_commits: (experimental) Find commits that should be considered releasable Used to decide if a release is required. Default: ReleasableCommits.everyCommit()
5546
5722
  :param release_branches: (experimental) Defines additional release branches. A workflow will be created for each release branch which will publish releases from commits in this branch. Each release branch *must* be assigned a major version number which is used to enforce that versions published from that branch always use that major version. If multiple branches are used, the ``majorVersion`` field must also be provided for the default branch. Default: - no additional branches are used for release. you can use ``addBranch()`` to add additional branches.
5723
+ :param release_environment: (experimental) The GitHub Actions environment used for the release. This can be used to add an explicit approval step to the release or limit who can initiate a release through environment protection rules. When multiple artifacts are released, the environment can be overwritten on a per artifact basis. Default: - no environment used, unless set at the artifact level
5547
5724
  :param release_every_commit: (deprecated) Automatically release new versions every commit to one of branches in ``releaseBranches``. Default: true
5548
5725
  :param release_failure_issue: (experimental) Create a github issue on every failed publishing task. Default: false
5549
5726
  :param release_failure_issue_label: (experimental) The label to apply to issues indicating publish failures. Only applies if ``releaseFailureIssue`` is true. Default: "failed-release"
@@ -5692,6 +5869,7 @@ class ConstructLibrary(
5692
5869
  npm_registry=npm_registry,
5693
5870
  npm_registry_url=npm_registry_url,
5694
5871
  npm_token_secret=npm_token_secret,
5872
+ npm_trusted_publishing=npm_trusted_publishing,
5695
5873
  package_manager=package_manager,
5696
5874
  package_name=package_name,
5697
5875
  peer_dependency_options=peer_dependency_options,
@@ -5715,6 +5893,7 @@ class ConstructLibrary(
5715
5893
  publish_tasks=publish_tasks,
5716
5894
  releasable_commits=releasable_commits,
5717
5895
  release_branches=release_branches,
5896
+ release_environment=release_environment,
5718
5897
  release_every_commit=release_every_commit,
5719
5898
  release_failure_issue=release_failure_issue,
5720
5899
  release_failure_issue_label=release_failure_issue_label,
@@ -5811,6 +5990,7 @@ typing.cast(typing.Any, ConstructLibrary).__jsii_proxy_class__ = lambda : _Const
5811
5990
  "npm_registry": "npmRegistry",
5812
5991
  "npm_registry_url": "npmRegistryUrl",
5813
5992
  "npm_token_secret": "npmTokenSecret",
5993
+ "npm_trusted_publishing": "npmTrustedPublishing",
5814
5994
  "package_manager": "packageManager",
5815
5995
  "package_name": "packageName",
5816
5996
  "peer_dependency_options": "peerDependencyOptions",
@@ -5834,6 +6014,7 @@ typing.cast(typing.Any, ConstructLibrary).__jsii_proxy_class__ = lambda : _Const
5834
6014
  "publish_tasks": "publishTasks",
5835
6015
  "releasable_commits": "releasableCommits",
5836
6016
  "release_branches": "releaseBranches",
6017
+ "release_environment": "releaseEnvironment",
5837
6018
  "release_every_commit": "releaseEveryCommit",
5838
6019
  "release_failure_issue": "releaseFailureIssue",
5839
6020
  "release_failure_issue_label": "releaseFailureIssueLabel",
@@ -5984,6 +6165,7 @@ class ConstructLibraryOptions(JsiiProjectOptions):
5984
6165
  npm_registry: typing.Optional[builtins.str] = None,
5985
6166
  npm_registry_url: typing.Optional[builtins.str] = None,
5986
6167
  npm_token_secret: typing.Optional[builtins.str] = None,
6168
+ npm_trusted_publishing: typing.Optional[builtins.bool] = None,
5987
6169
  package_manager: typing.Optional[_NodePackageManager_3eb53bf6] = None,
5988
6170
  package_name: typing.Optional[builtins.str] = None,
5989
6171
  peer_dependency_options: typing.Optional[typing.Union[_PeerDependencyOptions_99d7d493, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -6007,6 +6189,7 @@ class ConstructLibraryOptions(JsiiProjectOptions):
6007
6189
  publish_tasks: typing.Optional[builtins.bool] = None,
6008
6190
  releasable_commits: typing.Optional[_ReleasableCommits_d481ce10] = None,
6009
6191
  release_branches: typing.Optional[typing.Mapping[builtins.str, typing.Union[_BranchOptions_13663d08, typing.Dict[builtins.str, typing.Any]]]] = None,
6192
+ release_environment: typing.Optional[builtins.str] = None,
6010
6193
  release_every_commit: typing.Optional[builtins.bool] = None,
6011
6194
  release_failure_issue: typing.Optional[builtins.bool] = None,
6012
6195
  release_failure_issue_label: typing.Optional[builtins.str] = None,
@@ -6153,6 +6336,7 @@ class ConstructLibraryOptions(JsiiProjectOptions):
6153
6336
  :param npm_registry: (deprecated) The host name of the npm registry to publish to. Cannot be set together with ``npmRegistryUrl``.
6154
6337
  :param npm_registry_url: (experimental) The base URL of the npm package registry. Must be a URL (e.g. start with "https://" or "http://") Default: "https://registry.npmjs.org"
6155
6338
  :param npm_token_secret: (experimental) GitHub secret which contains the NPM token to use when publishing packages. Default: "NPM_TOKEN"
6339
+ :param npm_trusted_publishing: (experimental) Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on npm.js to work. Default: - false
6156
6340
  :param package_manager: (experimental) The Node Package Manager used to execute scripts. Default: NodePackageManager.YARN_CLASSIC
6157
6341
  :param package_name: (experimental) The "name" in package.json. Default: - defaults to project name
6158
6342
  :param peer_dependency_options: (experimental) Options for ``peerDeps``.
@@ -6176,6 +6360,7 @@ class ConstructLibraryOptions(JsiiProjectOptions):
6176
6360
  :param publish_tasks: (experimental) Define publishing tasks that can be executed manually as well as workflows. Normally, publishing only happens within automated workflows. Enable this in order to create a publishing task for each publishing activity. Default: false
6177
6361
  :param releasable_commits: (experimental) Find commits that should be considered releasable Used to decide if a release is required. Default: ReleasableCommits.everyCommit()
6178
6362
  :param release_branches: (experimental) Defines additional release branches. A workflow will be created for each release branch which will publish releases from commits in this branch. Each release branch *must* be assigned a major version number which is used to enforce that versions published from that branch always use that major version. If multiple branches are used, the ``majorVersion`` field must also be provided for the default branch. Default: - no additional branches are used for release. you can use ``addBranch()`` to add additional branches.
6363
+ :param release_environment: (experimental) The GitHub Actions environment used for the release. This can be used to add an explicit approval step to the release or limit who can initiate a release through environment protection rules. When multiple artifacts are released, the environment can be overwritten on a per artifact basis. Default: - no environment used, unless set at the artifact level
6179
6364
  :param release_every_commit: (deprecated) Automatically release new versions every commit to one of branches in ``releaseBranches``. Default: true
6180
6365
  :param release_failure_issue: (experimental) Create a github issue on every failed publishing task. Default: false
6181
6366
  :param release_failure_issue_label: (experimental) The label to apply to issues indicating publish failures. Only applies if ``releaseFailureIssue`` is true. Default: "failed-release"
@@ -6403,6 +6588,7 @@ class ConstructLibraryOptions(JsiiProjectOptions):
6403
6588
  check_type(argname="argument npm_registry", value=npm_registry, expected_type=type_hints["npm_registry"])
6404
6589
  check_type(argname="argument npm_registry_url", value=npm_registry_url, expected_type=type_hints["npm_registry_url"])
6405
6590
  check_type(argname="argument npm_token_secret", value=npm_token_secret, expected_type=type_hints["npm_token_secret"])
6591
+ check_type(argname="argument npm_trusted_publishing", value=npm_trusted_publishing, expected_type=type_hints["npm_trusted_publishing"])
6406
6592
  check_type(argname="argument package_manager", value=package_manager, expected_type=type_hints["package_manager"])
6407
6593
  check_type(argname="argument package_name", value=package_name, expected_type=type_hints["package_name"])
6408
6594
  check_type(argname="argument peer_dependency_options", value=peer_dependency_options, expected_type=type_hints["peer_dependency_options"])
@@ -6426,6 +6612,7 @@ class ConstructLibraryOptions(JsiiProjectOptions):
6426
6612
  check_type(argname="argument publish_tasks", value=publish_tasks, expected_type=type_hints["publish_tasks"])
6427
6613
  check_type(argname="argument releasable_commits", value=releasable_commits, expected_type=type_hints["releasable_commits"])
6428
6614
  check_type(argname="argument release_branches", value=release_branches, expected_type=type_hints["release_branches"])
6615
+ check_type(argname="argument release_environment", value=release_environment, expected_type=type_hints["release_environment"])
6429
6616
  check_type(argname="argument release_every_commit", value=release_every_commit, expected_type=type_hints["release_every_commit"])
6430
6617
  check_type(argname="argument release_failure_issue", value=release_failure_issue, expected_type=type_hints["release_failure_issue"])
6431
6618
  check_type(argname="argument release_failure_issue_label", value=release_failure_issue_label, expected_type=type_hints["release_failure_issue_label"])
@@ -6631,6 +6818,8 @@ class ConstructLibraryOptions(JsiiProjectOptions):
6631
6818
  self._values["npm_registry_url"] = npm_registry_url
6632
6819
  if npm_token_secret is not None:
6633
6820
  self._values["npm_token_secret"] = npm_token_secret
6821
+ if npm_trusted_publishing is not None:
6822
+ self._values["npm_trusted_publishing"] = npm_trusted_publishing
6634
6823
  if package_manager is not None:
6635
6824
  self._values["package_manager"] = package_manager
6636
6825
  if package_name is not None:
@@ -6677,6 +6866,8 @@ class ConstructLibraryOptions(JsiiProjectOptions):
6677
6866
  self._values["releasable_commits"] = releasable_commits
6678
6867
  if release_branches is not None:
6679
6868
  self._values["release_branches"] = release_branches
6869
+ if release_environment is not None:
6870
+ self._values["release_environment"] = release_environment
6680
6871
  if release_every_commit is not None:
6681
6872
  self._values["release_every_commit"] = release_every_commit
6682
6873
  if release_failure_issue is not None:
@@ -7561,6 +7752,17 @@ class ConstructLibraryOptions(JsiiProjectOptions):
7561
7752
  result = self._values.get("npm_token_secret")
7562
7753
  return typing.cast(typing.Optional[builtins.str], result)
7563
7754
 
7755
+ @builtins.property
7756
+ def npm_trusted_publishing(self) -> typing.Optional[builtins.bool]:
7757
+ '''(experimental) Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on npm.js to work.
7758
+
7759
+ :default: - false
7760
+
7761
+ :stability: experimental
7762
+ '''
7763
+ result = self._values.get("npm_trusted_publishing")
7764
+ return typing.cast(typing.Optional[builtins.bool], result)
7765
+
7564
7766
  @builtins.property
7565
7767
  def package_manager(self) -> typing.Optional[_NodePackageManager_3eb53bf6]:
7566
7768
  '''(experimental) The Node Package Manager used to execute scripts.
@@ -7880,6 +8082,23 @@ class ConstructLibraryOptions(JsiiProjectOptions):
7880
8082
  result = self._values.get("release_branches")
7881
8083
  return typing.cast(typing.Optional[typing.Mapping[builtins.str, _BranchOptions_13663d08]], result)
7882
8084
 
8085
+ @builtins.property
8086
+ def release_environment(self) -> typing.Optional[builtins.str]:
8087
+ '''(experimental) The GitHub Actions environment used for the release.
8088
+
8089
+ This can be used to add an explicit approval step to the release
8090
+ or limit who can initiate a release through environment protection rules.
8091
+
8092
+ When multiple artifacts are released, the environment can be overwritten
8093
+ on a per artifact basis.
8094
+
8095
+ :default: - no environment used, unless set at the artifact level
8096
+
8097
+ :stability: experimental
8098
+ '''
8099
+ result = self._values.get("release_environment")
8100
+ return typing.cast(typing.Optional[builtins.str], result)
8101
+
7883
8102
  @builtins.property
7884
8103
  def release_every_commit(self) -> typing.Optional[builtins.bool]:
7885
8104
  '''(deprecated) Automatically release new versions every commit to one of branches in ``releaseBranches``.
@@ -9029,6 +9248,7 @@ def _typecheckingstub__2f3fb088da3cc3de21fe4de98d7c818b3cbd2a2139fba0682367f39bd
9029
9248
 
9030
9249
  def _typecheckingstub__e809c6916d6d93bf1e91d05e4a79f49eb72f74bccaceeb6a508a3005bb5ec7b5(
9031
9250
  *,
9251
+ github_environment: typing.Optional[builtins.str] = None,
9032
9252
  post_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
9033
9253
  pre_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
9034
9254
  publish_tools: typing.Optional[typing.Union[_Tools_75b93a2a, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -9043,6 +9263,7 @@ def _typecheckingstub__e809c6916d6d93bf1e91d05e4a79f49eb72f74bccaceeb6a508a3005b
9043
9263
 
9044
9264
  def _typecheckingstub__b0ea0b1537651364353b8d1546fea1d78af2aaded6dded156ab976119354df9a(
9045
9265
  *,
9266
+ github_environment: typing.Optional[builtins.str] = None,
9046
9267
  post_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
9047
9268
  pre_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
9048
9269
  publish_tools: typing.Optional[typing.Union[_Tools_75b93a2a, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -9062,6 +9283,7 @@ def _typecheckingstub__b0ea0b1537651364353b8d1546fea1d78af2aaded6dded156ab976119
9062
9283
 
9063
9284
  def _typecheckingstub__365483a000ed61cc1587d7ada435961b86f33fb0718cd001430497c2290e0820(
9064
9285
  *,
9286
+ github_environment: typing.Optional[builtins.str] = None,
9065
9287
  post_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
9066
9288
  pre_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
9067
9289
  publish_tools: typing.Optional[typing.Union[_Tools_75b93a2a, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -9138,6 +9360,7 @@ def _typecheckingstub__c8323b2edac3105e05d346954d0050d635763ca6b27825b5452fa3d2b
9138
9360
  npm_registry: typing.Optional[builtins.str] = None,
9139
9361
  npm_registry_url: typing.Optional[builtins.str] = None,
9140
9362
  npm_token_secret: typing.Optional[builtins.str] = None,
9363
+ npm_trusted_publishing: typing.Optional[builtins.bool] = None,
9141
9364
  package_manager: typing.Optional[_NodePackageManager_3eb53bf6] = None,
9142
9365
  package_name: typing.Optional[builtins.str] = None,
9143
9366
  peer_dependency_options: typing.Optional[typing.Union[_PeerDependencyOptions_99d7d493, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -9161,6 +9384,7 @@ def _typecheckingstub__c8323b2edac3105e05d346954d0050d635763ca6b27825b5452fa3d2b
9161
9384
  publish_tasks: typing.Optional[builtins.bool] = None,
9162
9385
  releasable_commits: typing.Optional[_ReleasableCommits_d481ce10] = None,
9163
9386
  release_branches: typing.Optional[typing.Mapping[builtins.str, typing.Union[_BranchOptions_13663d08, typing.Dict[builtins.str, typing.Any]]]] = None,
9387
+ release_environment: typing.Optional[builtins.str] = None,
9164
9388
  release_every_commit: typing.Optional[builtins.bool] = None,
9165
9389
  release_failure_issue: typing.Optional[builtins.bool] = None,
9166
9390
  release_failure_issue_label: typing.Optional[builtins.str] = None,
@@ -9254,10 +9478,13 @@ def _typecheckingstub__c8323b2edac3105e05d346954d0050d635763ca6b27825b5452fa3d2b
9254
9478
 
9255
9479
  def _typecheckingstub__b9ccf41e184eae5eabcd38be0ea0cb88c9d6eb3d4f60d6bb85e4a73763bfb94a(
9256
9480
  *,
9481
+ github_environment: typing.Optional[builtins.str] = None,
9257
9482
  post_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
9258
9483
  pre_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
9259
9484
  publish_tools: typing.Optional[typing.Union[_Tools_75b93a2a, typing.Dict[builtins.str, typing.Any]]] = None,
9485
+ attestations: typing.Optional[builtins.bool] = None,
9260
9486
  code_artifact_options: typing.Optional[typing.Union[_CodeArtifactOptions_7236977a, typing.Dict[builtins.str, typing.Any]]] = None,
9487
+ trusted_publishing: typing.Optional[builtins.bool] = None,
9261
9488
  twine_password_secret: typing.Optional[builtins.str] = None,
9262
9489
  twine_registry_url: typing.Optional[builtins.str] = None,
9263
9490
  twine_username_secret: typing.Optional[builtins.str] = None,
@@ -9325,6 +9552,7 @@ def _typecheckingstub__0faec4221ab7163e96a5287d81c7e28c1c8f831e5f79f595bd4a88cdd
9325
9552
  npm_registry: typing.Optional[builtins.str] = None,
9326
9553
  npm_registry_url: typing.Optional[builtins.str] = None,
9327
9554
  npm_token_secret: typing.Optional[builtins.str] = None,
9555
+ npm_trusted_publishing: typing.Optional[builtins.bool] = None,
9328
9556
  package_manager: typing.Optional[_NodePackageManager_3eb53bf6] = None,
9329
9557
  package_name: typing.Optional[builtins.str] = None,
9330
9558
  peer_dependency_options: typing.Optional[typing.Union[_PeerDependencyOptions_99d7d493, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -9348,6 +9576,7 @@ def _typecheckingstub__0faec4221ab7163e96a5287d81c7e28c1c8f831e5f79f595bd4a88cdd
9348
9576
  publish_tasks: typing.Optional[builtins.bool] = None,
9349
9577
  releasable_commits: typing.Optional[_ReleasableCommits_d481ce10] = None,
9350
9578
  release_branches: typing.Optional[typing.Mapping[builtins.str, typing.Union[_BranchOptions_13663d08, typing.Dict[builtins.str, typing.Any]]]] = None,
9579
+ release_environment: typing.Optional[builtins.str] = None,
9351
9580
  release_every_commit: typing.Optional[builtins.bool] = None,
9352
9581
  release_failure_issue: typing.Optional[builtins.bool] = None,
9353
9582
  release_failure_issue_label: typing.Optional[builtins.str] = None,