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.

@@ -51,6 +51,7 @@ from ..github.workflows import (
51
51
  jsii_struct_bases=[],
52
52
  name_mapping={
53
53
  "major_version": "majorVersion",
54
+ "environment": "environment",
54
55
  "min_major_version": "minMajorVersion",
55
56
  "minor_version": "minorVersion",
56
57
  "npm_dist_tag": "npmDistTag",
@@ -64,6 +65,7 @@ class BranchOptions:
64
65
  self,
65
66
  *,
66
67
  major_version: jsii.Number,
68
+ environment: typing.Optional[builtins.str] = None,
67
69
  min_major_version: typing.Optional[jsii.Number] = None,
68
70
  minor_version: typing.Optional[jsii.Number] = None,
69
71
  npm_dist_tag: typing.Optional[builtins.str] = None,
@@ -74,6 +76,7 @@ class BranchOptions:
74
76
  '''(experimental) Options for a release branch.
75
77
 
76
78
  :param major_version: (experimental) The major versions released from this branch.
79
+ :param 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
77
80
  :param min_major_version: (experimental) The minimum major version to release.
78
81
  :param minor_version: (experimental) The minor versions released from this branch.
79
82
  :param npm_dist_tag: (experimental) The npm distribution tag to use for this branch. Default: "latest"
@@ -86,6 +89,7 @@ class BranchOptions:
86
89
  if __debug__:
87
90
  type_hints = typing.get_type_hints(_typecheckingstub__6f62eb98000deee3820f046309b2262c5063c0cb9581232fd1a44731f86986d7)
88
91
  check_type(argname="argument major_version", value=major_version, expected_type=type_hints["major_version"])
92
+ check_type(argname="argument environment", value=environment, expected_type=type_hints["environment"])
89
93
  check_type(argname="argument min_major_version", value=min_major_version, expected_type=type_hints["min_major_version"])
90
94
  check_type(argname="argument minor_version", value=minor_version, expected_type=type_hints["minor_version"])
91
95
  check_type(argname="argument npm_dist_tag", value=npm_dist_tag, expected_type=type_hints["npm_dist_tag"])
@@ -95,6 +99,8 @@ class BranchOptions:
95
99
  self._values: typing.Dict[builtins.str, typing.Any] = {
96
100
  "major_version": major_version,
97
101
  }
102
+ if environment is not None:
103
+ self._values["environment"] = environment
98
104
  if min_major_version is not None:
99
105
  self._values["min_major_version"] = min_major_version
100
106
  if minor_version is not None:
@@ -118,6 +124,23 @@ class BranchOptions:
118
124
  assert result is not None, "Required property 'major_version' is missing"
119
125
  return typing.cast(jsii.Number, result)
120
126
 
127
+ @builtins.property
128
+ def environment(self) -> typing.Optional[builtins.str]:
129
+ '''(experimental) The GitHub Actions environment used for the release.
130
+
131
+ This can be used to add an explicit approval step to the release
132
+ or limit who can initiate a release through environment protection rules.
133
+
134
+ When multiple artifacts are released, the environment can be overwritten
135
+ on a per artifact basis.
136
+
137
+ :default: - no environment used, unless set at the artifact level
138
+
139
+ :stability: experimental
140
+ '''
141
+ result = self._values.get("environment")
142
+ return typing.cast(typing.Optional[builtins.str], result)
143
+
121
144
  @builtins.property
122
145
  def min_major_version(self) -> typing.Optional[jsii.Number]:
123
146
  '''(experimental) The minimum major version to release.
@@ -340,6 +363,7 @@ class CodeArtifactOptions:
340
363
  jsii_type="projen.release.CommonPublishOptions",
341
364
  jsii_struct_bases=[],
342
365
  name_mapping={
366
+ "github_environment": "githubEnvironment",
343
367
  "post_publish_steps": "postPublishSteps",
344
368
  "pre_publish_steps": "prePublishSteps",
345
369
  "publish_tools": "publishTools",
@@ -349,12 +373,14 @@ class CommonPublishOptions:
349
373
  def __init__(
350
374
  self,
351
375
  *,
376
+ github_environment: typing.Optional[builtins.str] = None,
352
377
  post_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
353
378
  pre_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
354
379
  publish_tools: typing.Optional[typing.Union[_Tools_75b93a2a, typing.Dict[builtins.str, typing.Any]]] = None,
355
380
  ) -> None:
356
381
  '''(experimental) Common publishing options.
357
382
 
383
+ :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
358
384
  :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``.
359
385
  :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``.
360
386
  :param publish_tools: (experimental) Additional tools to install in the publishing job. Default: - no additional tools are installed
@@ -365,10 +391,13 @@ class CommonPublishOptions:
365
391
  publish_tools = _Tools_75b93a2a(**publish_tools)
366
392
  if __debug__:
367
393
  type_hints = typing.get_type_hints(_typecheckingstub__9603f09b67279d5ef3dc921367168d873983210161b1d6382c369d0b9ec13b0a)
394
+ check_type(argname="argument github_environment", value=github_environment, expected_type=type_hints["github_environment"])
368
395
  check_type(argname="argument post_publish_steps", value=post_publish_steps, expected_type=type_hints["post_publish_steps"])
369
396
  check_type(argname="argument pre_publish_steps", value=pre_publish_steps, expected_type=type_hints["pre_publish_steps"])
370
397
  check_type(argname="argument publish_tools", value=publish_tools, expected_type=type_hints["publish_tools"])
371
398
  self._values: typing.Dict[builtins.str, typing.Any] = {}
399
+ if github_environment is not None:
400
+ self._values["github_environment"] = github_environment
372
401
  if post_publish_steps is not None:
373
402
  self._values["post_publish_steps"] = post_publish_steps
374
403
  if pre_publish_steps is not None:
@@ -376,6 +405,22 @@ class CommonPublishOptions:
376
405
  if publish_tools is not None:
377
406
  self._values["publish_tools"] = publish_tools
378
407
 
408
+ @builtins.property
409
+ def github_environment(self) -> typing.Optional[builtins.str]:
410
+ '''(experimental) The GitHub Actions environment used for publishing.
411
+
412
+ This can be used to add an explicit approval step to the release
413
+ or limit who can initiate a release through environment protection rules.
414
+
415
+ Set this to overwrite a package level publishing environment just for this artifact.
416
+
417
+ :default: - no environment used, unless set at the package level
418
+
419
+ :stability: experimental
420
+ '''
421
+ result = self._values.get("github_environment")
422
+ return typing.cast(typing.Optional[builtins.str], result)
423
+
379
424
  @builtins.property
380
425
  def post_publish_steps(self) -> typing.Optional[typing.List[_JobStep_c3287c05]]:
381
426
  '''(experimental) Steps to execute after executing the publishing command.
@@ -475,6 +520,7 @@ class ContinuousReleaseOptions:
475
520
  jsii_type="projen.release.GitHubReleasesPublishOptions",
476
521
  jsii_struct_bases=[CommonPublishOptions],
477
522
  name_mapping={
523
+ "github_environment": "githubEnvironment",
478
524
  "post_publish_steps": "postPublishSteps",
479
525
  "pre_publish_steps": "prePublishSteps",
480
526
  "publish_tools": "publishTools",
@@ -487,6 +533,7 @@ class GitHubReleasesPublishOptions(CommonPublishOptions):
487
533
  def __init__(
488
534
  self,
489
535
  *,
536
+ github_environment: typing.Optional[builtins.str] = None,
490
537
  post_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
491
538
  pre_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
492
539
  publish_tools: typing.Optional[typing.Union[_Tools_75b93a2a, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -496,6 +543,7 @@ class GitHubReleasesPublishOptions(CommonPublishOptions):
496
543
  ) -> None:
497
544
  '''(experimental) Publishing options for GitHub releases.
498
545
 
546
+ :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
499
547
  :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``.
500
548
  :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``.
501
549
  :param publish_tools: (experimental) Additional tools to install in the publishing job. Default: - no additional tools are installed
@@ -509,6 +557,7 @@ class GitHubReleasesPublishOptions(CommonPublishOptions):
509
557
  publish_tools = _Tools_75b93a2a(**publish_tools)
510
558
  if __debug__:
511
559
  type_hints = typing.get_type_hints(_typecheckingstub__c7008ba35b00dedc375d87db7a317e8f077475b6a4e334303337c92bb77171fb)
560
+ check_type(argname="argument github_environment", value=github_environment, expected_type=type_hints["github_environment"])
512
561
  check_type(argname="argument post_publish_steps", value=post_publish_steps, expected_type=type_hints["post_publish_steps"])
513
562
  check_type(argname="argument pre_publish_steps", value=pre_publish_steps, expected_type=type_hints["pre_publish_steps"])
514
563
  check_type(argname="argument publish_tools", value=publish_tools, expected_type=type_hints["publish_tools"])
@@ -520,6 +569,8 @@ class GitHubReleasesPublishOptions(CommonPublishOptions):
520
569
  "release_tag_file": release_tag_file,
521
570
  "version_file": version_file,
522
571
  }
572
+ if github_environment is not None:
573
+ self._values["github_environment"] = github_environment
523
574
  if post_publish_steps is not None:
524
575
  self._values["post_publish_steps"] = post_publish_steps
525
576
  if pre_publish_steps is not None:
@@ -527,6 +578,22 @@ class GitHubReleasesPublishOptions(CommonPublishOptions):
527
578
  if publish_tools is not None:
528
579
  self._values["publish_tools"] = publish_tools
529
580
 
581
+ @builtins.property
582
+ def github_environment(self) -> typing.Optional[builtins.str]:
583
+ '''(experimental) The GitHub Actions environment used for publishing.
584
+
585
+ This can be used to add an explicit approval step to the release
586
+ or limit who can initiate a release through environment protection rules.
587
+
588
+ Set this to overwrite a package level publishing environment just for this artifact.
589
+
590
+ :default: - no environment used, unless set at the package level
591
+
592
+ :stability: experimental
593
+ '''
594
+ result = self._values.get("github_environment")
595
+ return typing.cast(typing.Optional[builtins.str], result)
596
+
530
597
  @builtins.property
531
598
  def post_publish_steps(self) -> typing.Optional[typing.List[_JobStep_c3287c05]]:
532
599
  '''(experimental) Steps to execute after executing the publishing command.
@@ -763,6 +830,7 @@ class GitPublishOptions:
763
830
  jsii_type="projen.release.GoPublishOptions",
764
831
  jsii_struct_bases=[CommonPublishOptions],
765
832
  name_mapping={
833
+ "github_environment": "githubEnvironment",
766
834
  "post_publish_steps": "postPublishSteps",
767
835
  "pre_publish_steps": "prePublishSteps",
768
836
  "publish_tools": "publishTools",
@@ -779,6 +847,7 @@ class GoPublishOptions(CommonPublishOptions):
779
847
  def __init__(
780
848
  self,
781
849
  *,
850
+ github_environment: typing.Optional[builtins.str] = None,
782
851
  post_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
783
852
  pre_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
784
853
  publish_tools: typing.Optional[typing.Union[_Tools_75b93a2a, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -792,6 +861,7 @@ class GoPublishOptions(CommonPublishOptions):
792
861
  ) -> None:
793
862
  '''(experimental) Options for Go releases.
794
863
 
864
+ :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
795
865
  :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``.
796
866
  :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``.
797
867
  :param publish_tools: (experimental) Additional tools to install in the publishing job. Default: - no additional tools are installed
@@ -809,6 +879,7 @@ class GoPublishOptions(CommonPublishOptions):
809
879
  publish_tools = _Tools_75b93a2a(**publish_tools)
810
880
  if __debug__:
811
881
  type_hints = typing.get_type_hints(_typecheckingstub__81a5b8a4f17bcea99089b42477d5b778fd3a9066d3d1126736ccf21a9c44bfbc)
882
+ check_type(argname="argument github_environment", value=github_environment, expected_type=type_hints["github_environment"])
812
883
  check_type(argname="argument post_publish_steps", value=post_publish_steps, expected_type=type_hints["post_publish_steps"])
813
884
  check_type(argname="argument pre_publish_steps", value=pre_publish_steps, expected_type=type_hints["pre_publish_steps"])
814
885
  check_type(argname="argument publish_tools", value=publish_tools, expected_type=type_hints["publish_tools"])
@@ -820,6 +891,8 @@ class GoPublishOptions(CommonPublishOptions):
820
891
  check_type(argname="argument git_user_email", value=git_user_email, expected_type=type_hints["git_user_email"])
821
892
  check_type(argname="argument git_user_name", value=git_user_name, expected_type=type_hints["git_user_name"])
822
893
  self._values: typing.Dict[builtins.str, typing.Any] = {}
894
+ if github_environment is not None:
895
+ self._values["github_environment"] = github_environment
823
896
  if post_publish_steps is not None:
824
897
  self._values["post_publish_steps"] = post_publish_steps
825
898
  if pre_publish_steps is not None:
@@ -841,6 +914,22 @@ class GoPublishOptions(CommonPublishOptions):
841
914
  if git_user_name is not None:
842
915
  self._values["git_user_name"] = git_user_name
843
916
 
917
+ @builtins.property
918
+ def github_environment(self) -> typing.Optional[builtins.str]:
919
+ '''(experimental) The GitHub Actions environment used for publishing.
920
+
921
+ This can be used to add an explicit approval step to the release
922
+ or limit who can initiate a release through environment protection rules.
923
+
924
+ Set this to overwrite a package level publishing environment just for this artifact.
925
+
926
+ :default: - no environment used, unless set at the package level
927
+
928
+ :stability: experimental
929
+ '''
930
+ result = self._values.get("github_environment")
931
+ return typing.cast(typing.Optional[builtins.str], result)
932
+
844
933
  @builtins.property
845
934
  def post_publish_steps(self) -> typing.Optional[typing.List[_JobStep_c3287c05]]:
846
935
  '''(experimental) Steps to execute after executing the publishing command.
@@ -977,6 +1066,7 @@ class GoPublishOptions(CommonPublishOptions):
977
1066
  jsii_type="projen.release.JsiiReleaseGo",
978
1067
  jsii_struct_bases=[GoPublishOptions],
979
1068
  name_mapping={
1069
+ "github_environment": "githubEnvironment",
980
1070
  "post_publish_steps": "postPublishSteps",
981
1071
  "pre_publish_steps": "prePublishSteps",
982
1072
  "publish_tools": "publishTools",
@@ -993,6 +1083,7 @@ class JsiiReleaseGo(GoPublishOptions):
993
1083
  def __init__(
994
1084
  self,
995
1085
  *,
1086
+ github_environment: typing.Optional[builtins.str] = None,
996
1087
  post_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
997
1088
  pre_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
998
1089
  publish_tools: typing.Optional[typing.Union[_Tools_75b93a2a, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -1005,6 +1096,7 @@ class JsiiReleaseGo(GoPublishOptions):
1005
1096
  git_user_name: typing.Optional[builtins.str] = None,
1006
1097
  ) -> None:
1007
1098
  '''
1099
+ :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
1008
1100
  :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``.
1009
1101
  :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``.
1010
1102
  :param publish_tools: (experimental) Additional tools to install in the publishing job. Default: - no additional tools are installed
@@ -1024,6 +1116,7 @@ class JsiiReleaseGo(GoPublishOptions):
1024
1116
  publish_tools = _Tools_75b93a2a(**publish_tools)
1025
1117
  if __debug__:
1026
1118
  type_hints = typing.get_type_hints(_typecheckingstub__44bae65cd3313afa37ada6dbaab99141ff7744458e985bc9c53faa021220e167)
1119
+ check_type(argname="argument github_environment", value=github_environment, expected_type=type_hints["github_environment"])
1027
1120
  check_type(argname="argument post_publish_steps", value=post_publish_steps, expected_type=type_hints["post_publish_steps"])
1028
1121
  check_type(argname="argument pre_publish_steps", value=pre_publish_steps, expected_type=type_hints["pre_publish_steps"])
1029
1122
  check_type(argname="argument publish_tools", value=publish_tools, expected_type=type_hints["publish_tools"])
@@ -1035,6 +1128,8 @@ class JsiiReleaseGo(GoPublishOptions):
1035
1128
  check_type(argname="argument git_user_email", value=git_user_email, expected_type=type_hints["git_user_email"])
1036
1129
  check_type(argname="argument git_user_name", value=git_user_name, expected_type=type_hints["git_user_name"])
1037
1130
  self._values: typing.Dict[builtins.str, typing.Any] = {}
1131
+ if github_environment is not None:
1132
+ self._values["github_environment"] = github_environment
1038
1133
  if post_publish_steps is not None:
1039
1134
  self._values["post_publish_steps"] = post_publish_steps
1040
1135
  if pre_publish_steps is not None:
@@ -1056,6 +1151,22 @@ class JsiiReleaseGo(GoPublishOptions):
1056
1151
  if git_user_name is not None:
1057
1152
  self._values["git_user_name"] = git_user_name
1058
1153
 
1154
+ @builtins.property
1155
+ def github_environment(self) -> typing.Optional[builtins.str]:
1156
+ '''(experimental) The GitHub Actions environment used for publishing.
1157
+
1158
+ This can be used to add an explicit approval step to the release
1159
+ or limit who can initiate a release through environment protection rules.
1160
+
1161
+ Set this to overwrite a package level publishing environment just for this artifact.
1162
+
1163
+ :default: - no environment used, unless set at the package level
1164
+
1165
+ :stability: experimental
1166
+ '''
1167
+ result = self._values.get("github_environment")
1168
+ return typing.cast(typing.Optional[builtins.str], result)
1169
+
1059
1170
  @builtins.property
1060
1171
  def post_publish_steps(self) -> typing.Optional[typing.List[_JobStep_c3287c05]]:
1061
1172
  '''(experimental) Steps to execute after executing the publishing command.
@@ -1276,6 +1387,7 @@ class ManualReleaseOptions:
1276
1387
  jsii_type="projen.release.MavenPublishOptions",
1277
1388
  jsii_struct_bases=[CommonPublishOptions],
1278
1389
  name_mapping={
1390
+ "github_environment": "githubEnvironment",
1279
1391
  "post_publish_steps": "postPublishSteps",
1280
1392
  "pre_publish_steps": "prePublishSteps",
1281
1393
  "publish_tools": "publishTools",
@@ -1293,6 +1405,7 @@ class MavenPublishOptions(CommonPublishOptions):
1293
1405
  def __init__(
1294
1406
  self,
1295
1407
  *,
1408
+ github_environment: typing.Optional[builtins.str] = None,
1296
1409
  post_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
1297
1410
  pre_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
1298
1411
  publish_tools: typing.Optional[typing.Union[_Tools_75b93a2a, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -1307,6 +1420,7 @@ class MavenPublishOptions(CommonPublishOptions):
1307
1420
  ) -> None:
1308
1421
  '''(experimental) Options for Maven releases.
1309
1422
 
1423
+ :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
1310
1424
  :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``.
1311
1425
  :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``.
1312
1426
  :param publish_tools: (experimental) Additional tools to install in the publishing job. Default: - no additional tools are installed
@@ -1325,6 +1439,7 @@ class MavenPublishOptions(CommonPublishOptions):
1325
1439
  publish_tools = _Tools_75b93a2a(**publish_tools)
1326
1440
  if __debug__:
1327
1441
  type_hints = typing.get_type_hints(_typecheckingstub__da2d55bfa47dd9e6869b7f55b573dea54539ab2e9b833766e4140d6d4c4c3d7e)
1442
+ check_type(argname="argument github_environment", value=github_environment, expected_type=type_hints["github_environment"])
1328
1443
  check_type(argname="argument post_publish_steps", value=post_publish_steps, expected_type=type_hints["post_publish_steps"])
1329
1444
  check_type(argname="argument pre_publish_steps", value=pre_publish_steps, expected_type=type_hints["pre_publish_steps"])
1330
1445
  check_type(argname="argument publish_tools", value=publish_tools, expected_type=type_hints["publish_tools"])
@@ -1337,6 +1452,8 @@ class MavenPublishOptions(CommonPublishOptions):
1337
1452
  check_type(argname="argument maven_staging_profile_id", value=maven_staging_profile_id, expected_type=type_hints["maven_staging_profile_id"])
1338
1453
  check_type(argname="argument maven_username", value=maven_username, expected_type=type_hints["maven_username"])
1339
1454
  self._values: typing.Dict[builtins.str, typing.Any] = {}
1455
+ if github_environment is not None:
1456
+ self._values["github_environment"] = github_environment
1340
1457
  if post_publish_steps is not None:
1341
1458
  self._values["post_publish_steps"] = post_publish_steps
1342
1459
  if pre_publish_steps is not None:
@@ -1360,6 +1477,22 @@ class MavenPublishOptions(CommonPublishOptions):
1360
1477
  if maven_username is not None:
1361
1478
  self._values["maven_username"] = maven_username
1362
1479
 
1480
+ @builtins.property
1481
+ def github_environment(self) -> typing.Optional[builtins.str]:
1482
+ '''(experimental) The GitHub Actions environment used for publishing.
1483
+
1484
+ This can be used to add an explicit approval step to the release
1485
+ or limit who can initiate a release through environment protection rules.
1486
+
1487
+ Set this to overwrite a package level publishing environment just for this artifact.
1488
+
1489
+ :default: - no environment used, unless set at the package level
1490
+
1491
+ :stability: experimental
1492
+ '''
1493
+ result = self._values.get("github_environment")
1494
+ return typing.cast(typing.Optional[builtins.str], result)
1495
+
1363
1496
  @builtins.property
1364
1497
  def post_publish_steps(self) -> typing.Optional[typing.List[_JobStep_c3287c05]]:
1365
1498
  '''(experimental) Steps to execute after executing the publishing command.
@@ -1522,6 +1655,7 @@ class MavenPublishOptions(CommonPublishOptions):
1522
1655
  jsii_type="projen.release.NpmPublishOptions",
1523
1656
  jsii_struct_bases=[CommonPublishOptions],
1524
1657
  name_mapping={
1658
+ "github_environment": "githubEnvironment",
1525
1659
  "post_publish_steps": "postPublishSteps",
1526
1660
  "pre_publish_steps": "prePublishSteps",
1527
1661
  "publish_tools": "publishTools",
@@ -1530,12 +1664,14 @@ class MavenPublishOptions(CommonPublishOptions):
1530
1664
  "npm_provenance": "npmProvenance",
1531
1665
  "npm_token_secret": "npmTokenSecret",
1532
1666
  "registry": "registry",
1667
+ "trusted_publishing": "trustedPublishing",
1533
1668
  },
1534
1669
  )
1535
1670
  class NpmPublishOptions(CommonPublishOptions):
1536
1671
  def __init__(
1537
1672
  self,
1538
1673
  *,
1674
+ github_environment: typing.Optional[builtins.str] = None,
1539
1675
  post_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
1540
1676
  pre_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
1541
1677
  publish_tools: typing.Optional[typing.Union[_Tools_75b93a2a, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -1544,17 +1680,20 @@ class NpmPublishOptions(CommonPublishOptions):
1544
1680
  npm_provenance: typing.Optional[builtins.bool] = None,
1545
1681
  npm_token_secret: typing.Optional[builtins.str] = None,
1546
1682
  registry: typing.Optional[builtins.str] = None,
1683
+ trusted_publishing: typing.Optional[builtins.bool] = None,
1547
1684
  ) -> None:
1548
1685
  '''(experimental) Options for npm release.
1549
1686
 
1687
+ :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
1550
1688
  :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``.
1551
1689
  :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``.
1552
1690
  :param publish_tools: (experimental) Additional tools to install in the publishing job. Default: - no additional tools are installed
1553
- :param code_artifact_options: (experimental) Options for publishing npm package to AWS CodeArtifact. Default: - undefined
1691
+ :param code_artifact_options: (experimental) Options for publishing npm package to AWS CodeArtifact. Default: - package is not published to
1554
1692
  :param dist_tag: (deprecated) Tags can be used to provide an alias instead of version numbers. For example, a project might choose to have multiple streams of development and use a different tag for each stream, e.g., stable, beta, dev, canary. By default, the ``latest`` tag is used by npm to identify the current version of a package, and ``npm install <pkg>`` (without any ``@<version>`` or ``@<tag>`` specifier) installs the latest tag. Typically, projects only use the ``latest`` tag for stable release versions, and use other tags for unstable versions such as prereleases. The ``next`` tag is used by some projects to identify the upcoming version. Default: "latest"
1555
- :param npm_provenance: (experimental) Should provenance statements be generated when package is published. Note that this component is using ``publib`` to publish packages, which is using npm internally and supports provenance statements independently of the package manager used. Default: - undefined
1556
- :param npm_token_secret: (experimental) GitHub secret which contains the NPM token to use when publishing packages. Default: - "NPM_TOKEN" or "GITHUB_TOKEN" if ``registry`` is set to ``npm.pkg.github.com``.
1693
+ :param npm_provenance: (experimental) Should provenance statements be generated when package is published. Note that this component is using ``publib`` to publish packages, which is using npm internally and supports provenance statements independently of the package manager used. Only works in supported CI/CD environments. Default: - enabled for for public packages using trusted publishing, disabled otherwise
1694
+ :param npm_token_secret: (experimental) GitHub secret which contains the NPM token to use for publishing packages. Default: - "NPM_TOKEN" or "GITHUB_TOKEN" if ``registry`` is set to ``npm.pkg.github.com``.
1557
1695
  :param registry: (experimental) The domain name of the npm package registry. To publish to GitHub Packages, set this value to ``"npm.pkg.github.com"``. In this if ``npmTokenSecret`` is not specified, it will default to ``GITHUB_TOKEN`` which means that you will be able to publish to the repository's package store. In this case, make sure ``repositoryUrl`` is correctly defined. Default: "registry.npmjs.org"
1696
+ :param trusted_publishing: (experimental) Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on npm.js to work. Requires npm CLI version 11.5.1 or later, this is NOT ensured automatically. When used, ``npmTokenSecret`` will be ignored. Default: - false
1558
1697
 
1559
1698
  :stability: experimental
1560
1699
  '''
@@ -1564,6 +1703,7 @@ class NpmPublishOptions(CommonPublishOptions):
1564
1703
  code_artifact_options = CodeArtifactOptions(**code_artifact_options)
1565
1704
  if __debug__:
1566
1705
  type_hints = typing.get_type_hints(_typecheckingstub__458289050585e6e895f9ee709ee4e102166b0f71e3c8b2a0617efa2d24e990fb)
1706
+ check_type(argname="argument github_environment", value=github_environment, expected_type=type_hints["github_environment"])
1567
1707
  check_type(argname="argument post_publish_steps", value=post_publish_steps, expected_type=type_hints["post_publish_steps"])
1568
1708
  check_type(argname="argument pre_publish_steps", value=pre_publish_steps, expected_type=type_hints["pre_publish_steps"])
1569
1709
  check_type(argname="argument publish_tools", value=publish_tools, expected_type=type_hints["publish_tools"])
@@ -1572,7 +1712,10 @@ class NpmPublishOptions(CommonPublishOptions):
1572
1712
  check_type(argname="argument npm_provenance", value=npm_provenance, expected_type=type_hints["npm_provenance"])
1573
1713
  check_type(argname="argument npm_token_secret", value=npm_token_secret, expected_type=type_hints["npm_token_secret"])
1574
1714
  check_type(argname="argument registry", value=registry, expected_type=type_hints["registry"])
1715
+ check_type(argname="argument trusted_publishing", value=trusted_publishing, expected_type=type_hints["trusted_publishing"])
1575
1716
  self._values: typing.Dict[builtins.str, typing.Any] = {}
1717
+ if github_environment is not None:
1718
+ self._values["github_environment"] = github_environment
1576
1719
  if post_publish_steps is not None:
1577
1720
  self._values["post_publish_steps"] = post_publish_steps
1578
1721
  if pre_publish_steps is not None:
@@ -1589,6 +1732,24 @@ class NpmPublishOptions(CommonPublishOptions):
1589
1732
  self._values["npm_token_secret"] = npm_token_secret
1590
1733
  if registry is not None:
1591
1734
  self._values["registry"] = registry
1735
+ if trusted_publishing is not None:
1736
+ self._values["trusted_publishing"] = trusted_publishing
1737
+
1738
+ @builtins.property
1739
+ def github_environment(self) -> typing.Optional[builtins.str]:
1740
+ '''(experimental) The GitHub Actions environment used for publishing.
1741
+
1742
+ This can be used to add an explicit approval step to the release
1743
+ or limit who can initiate a release through environment protection rules.
1744
+
1745
+ Set this to overwrite a package level publishing environment just for this artifact.
1746
+
1747
+ :default: - no environment used, unless set at the package level
1748
+
1749
+ :stability: experimental
1750
+ '''
1751
+ result = self._values.get("github_environment")
1752
+ return typing.cast(typing.Optional[builtins.str], result)
1592
1753
 
1593
1754
  @builtins.property
1594
1755
  def post_publish_steps(self) -> typing.Optional[typing.List[_JobStep_c3287c05]]:
@@ -1633,7 +1794,7 @@ class NpmPublishOptions(CommonPublishOptions):
1633
1794
  def code_artifact_options(self) -> typing.Optional[CodeArtifactOptions]:
1634
1795
  '''(experimental) Options for publishing npm package to AWS CodeArtifact.
1635
1796
 
1636
- :default: - undefined
1797
+ :default: - package is not published to
1637
1798
 
1638
1799
  :stability: experimental
1639
1800
  '''
@@ -1671,7 +1832,9 @@ class NpmPublishOptions(CommonPublishOptions):
1671
1832
  Note that this component is using ``publib`` to publish packages,
1672
1833
  which is using npm internally and supports provenance statements independently of the package manager used.
1673
1834
 
1674
- :default: - undefined
1835
+ Only works in supported CI/CD environments.
1836
+
1837
+ :default: - enabled for for public packages using trusted publishing, disabled otherwise
1675
1838
 
1676
1839
  :see: https://docs.npmjs.com/generating-provenance-statements
1677
1840
  :stability: experimental
@@ -1681,7 +1844,7 @@ class NpmPublishOptions(CommonPublishOptions):
1681
1844
 
1682
1845
  @builtins.property
1683
1846
  def npm_token_secret(self) -> typing.Optional[builtins.str]:
1684
- '''(experimental) GitHub secret which contains the NPM token to use when publishing packages.
1847
+ '''(experimental) GitHub secret which contains the NPM token to use for publishing packages.
1685
1848
 
1686
1849
  :default: - "NPM_TOKEN" or "GITHUB_TOKEN" if ``registry`` is set to ``npm.pkg.github.com``.
1687
1850
 
@@ -1711,6 +1874,21 @@ class NpmPublishOptions(CommonPublishOptions):
1711
1874
  result = self._values.get("registry")
1712
1875
  return typing.cast(typing.Optional[builtins.str], result)
1713
1876
 
1877
+ @builtins.property
1878
+ def trusted_publishing(self) -> typing.Optional[builtins.bool]:
1879
+ '''(experimental) Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on npm.js to work.
1880
+
1881
+ Requires npm CLI version 11.5.1 or later, this is NOT ensured automatically.
1882
+ When used, ``npmTokenSecret`` will be ignored.
1883
+
1884
+ :default: - false
1885
+
1886
+ :see: https://docs.npmjs.com/trusted-publishers
1887
+ :stability: experimental
1888
+ '''
1889
+ result = self._values.get("trusted_publishing")
1890
+ return typing.cast(typing.Optional[builtins.bool], result)
1891
+
1714
1892
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
1715
1893
  return isinstance(rhs, self.__class__) and rhs._values == self._values
1716
1894
 
@@ -1727,6 +1905,7 @@ class NpmPublishOptions(CommonPublishOptions):
1727
1905
  jsii_type="projen.release.NugetPublishOptions",
1728
1906
  jsii_struct_bases=[CommonPublishOptions],
1729
1907
  name_mapping={
1908
+ "github_environment": "githubEnvironment",
1730
1909
  "post_publish_steps": "postPublishSteps",
1731
1910
  "pre_publish_steps": "prePublishSteps",
1732
1911
  "publish_tools": "publishTools",
@@ -1738,6 +1917,7 @@ class NugetPublishOptions(CommonPublishOptions):
1738
1917
  def __init__(
1739
1918
  self,
1740
1919
  *,
1920
+ github_environment: typing.Optional[builtins.str] = None,
1741
1921
  post_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
1742
1922
  pre_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
1743
1923
  publish_tools: typing.Optional[typing.Union[_Tools_75b93a2a, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -1746,6 +1926,7 @@ class NugetPublishOptions(CommonPublishOptions):
1746
1926
  ) -> None:
1747
1927
  '''(experimental) Options for NuGet releases.
1748
1928
 
1929
+ :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
1749
1930
  :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``.
1750
1931
  :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``.
1751
1932
  :param publish_tools: (experimental) Additional tools to install in the publishing job. Default: - no additional tools are installed
@@ -1758,12 +1939,15 @@ class NugetPublishOptions(CommonPublishOptions):
1758
1939
  publish_tools = _Tools_75b93a2a(**publish_tools)
1759
1940
  if __debug__:
1760
1941
  type_hints = typing.get_type_hints(_typecheckingstub__584d4125e43e970396e9062b357de30ef32a6d1b30bd3a0f00fc7db041ea0bec)
1942
+ check_type(argname="argument github_environment", value=github_environment, expected_type=type_hints["github_environment"])
1761
1943
  check_type(argname="argument post_publish_steps", value=post_publish_steps, expected_type=type_hints["post_publish_steps"])
1762
1944
  check_type(argname="argument pre_publish_steps", value=pre_publish_steps, expected_type=type_hints["pre_publish_steps"])
1763
1945
  check_type(argname="argument publish_tools", value=publish_tools, expected_type=type_hints["publish_tools"])
1764
1946
  check_type(argname="argument nuget_api_key_secret", value=nuget_api_key_secret, expected_type=type_hints["nuget_api_key_secret"])
1765
1947
  check_type(argname="argument nuget_server", value=nuget_server, expected_type=type_hints["nuget_server"])
1766
1948
  self._values: typing.Dict[builtins.str, typing.Any] = {}
1949
+ if github_environment is not None:
1950
+ self._values["github_environment"] = github_environment
1767
1951
  if post_publish_steps is not None:
1768
1952
  self._values["post_publish_steps"] = post_publish_steps
1769
1953
  if pre_publish_steps is not None:
@@ -1775,6 +1959,22 @@ class NugetPublishOptions(CommonPublishOptions):
1775
1959
  if nuget_server is not None:
1776
1960
  self._values["nuget_server"] = nuget_server
1777
1961
 
1962
+ @builtins.property
1963
+ def github_environment(self) -> typing.Optional[builtins.str]:
1964
+ '''(experimental) The GitHub Actions environment used for publishing.
1965
+
1966
+ This can be used to add an explicit approval step to the release
1967
+ or limit who can initiate a release through environment protection rules.
1968
+
1969
+ Set this to overwrite a package level publishing environment just for this artifact.
1970
+
1971
+ :default: - no environment used, unless set at the package level
1972
+
1973
+ :stability: experimental
1974
+ '''
1975
+ result = self._values.get("github_environment")
1976
+ return typing.cast(typing.Optional[builtins.str], result)
1977
+
1778
1978
  @builtins.property
1779
1979
  def post_publish_steps(self) -> typing.Optional[typing.List[_JobStep_c3287c05]]:
1780
1980
  '''(experimental) Steps to execute after executing the publishing command.
@@ -1983,6 +2183,7 @@ class Publisher(
1983
2183
  changelog_file: builtins.str,
1984
2184
  release_tag_file: builtins.str,
1985
2185
  version_file: builtins.str,
2186
+ github_environment: typing.Optional[builtins.str] = None,
1986
2187
  post_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
1987
2188
  pre_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
1988
2189
  publish_tools: typing.Optional[typing.Union[_Tools_75b93a2a, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -1992,6 +2193,7 @@ class Publisher(
1992
2193
  :param changelog_file: (experimental) The location of an .md file (relative to ``dist/``) that includes the changelog for the release.
1993
2194
  :param release_tag_file: (experimental) The location of a text file (relative to ``dist/``) that contains the release tag.
1994
2195
  :param version_file: (experimental) The location of a text file (relative to ``dist/``) that contains the version number.
2196
+ :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
1995
2197
  :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``.
1996
2198
  :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``.
1997
2199
  :param publish_tools: (experimental) Additional tools to install in the publishing job. Default: - no additional tools are installed
@@ -2002,6 +2204,7 @@ class Publisher(
2002
2204
  changelog_file=changelog_file,
2003
2205
  release_tag_file=release_tag_file,
2004
2206
  version_file=version_file,
2207
+ github_environment=github_environment,
2005
2208
  post_publish_steps=post_publish_steps,
2006
2209
  pre_publish_steps=pre_publish_steps,
2007
2210
  publish_tools=publish_tools,
@@ -2020,6 +2223,7 @@ class Publisher(
2020
2223
  github_use_ssh: typing.Optional[builtins.bool] = None,
2021
2224
  git_user_email: typing.Optional[builtins.str] = None,
2022
2225
  git_user_name: typing.Optional[builtins.str] = None,
2226
+ github_environment: typing.Optional[builtins.str] = None,
2023
2227
  post_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
2024
2228
  pre_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
2025
2229
  publish_tools: typing.Optional[typing.Union[_Tools_75b93a2a, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -2033,6 +2237,7 @@ class Publisher(
2033
2237
  :param github_use_ssh: (experimental) Use SSH to push to GitHub instead of a personal accses token. Default: false
2034
2238
  :param git_user_email: (experimental) The email to use in the release git commit. Default: "github-actions@github.com"
2035
2239
  :param git_user_name: (experimental) The user name to use for the release git commit. Default: "github-actions"
2240
+ :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
2036
2241
  :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``.
2037
2242
  :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``.
2038
2243
  :param publish_tools: (experimental) Additional tools to install in the publishing job. Default: - no additional tools are installed
@@ -2047,6 +2252,7 @@ class Publisher(
2047
2252
  github_use_ssh=github_use_ssh,
2048
2253
  git_user_email=git_user_email,
2049
2254
  git_user_name=git_user_name,
2255
+ github_environment=github_environment,
2050
2256
  post_publish_steps=post_publish_steps,
2051
2257
  pre_publish_steps=pre_publish_steps,
2052
2258
  publish_tools=publish_tools,
@@ -2066,6 +2272,7 @@ class Publisher(
2066
2272
  maven_server_id: typing.Optional[builtins.str] = None,
2067
2273
  maven_staging_profile_id: typing.Optional[builtins.str] = None,
2068
2274
  maven_username: typing.Optional[builtins.str] = None,
2275
+ github_environment: typing.Optional[builtins.str] = None,
2069
2276
  post_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
2070
2277
  pre_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
2071
2278
  publish_tools: typing.Optional[typing.Union[_Tools_75b93a2a, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -2080,6 +2287,7 @@ class Publisher(
2080
2287
  :param maven_server_id: (experimental) Used in maven settings for credential lookup (e.g. use github when publishing to GitHub). Set to ``central-ossrh`` to publish to Maven Central. Default: "ossrh" (Maven Central) or "github" when using GitHub Packages
2081
2288
  :param maven_staging_profile_id: (experimental) GitHub secret name which contains the Maven Central (sonatype) staging profile ID (e.g. 68a05363083174). Staging profile ID can be found in the URL of the "Releases" staging profile under "Staging Profiles" in https://oss.sonatype.org (e.g. https://oss.sonatype.org/#stagingProfiles;11a33451234521). Default: "MAVEN_STAGING_PROFILE_ID" or not set when using GitHub Packages
2082
2289
  :param maven_username: (experimental) GitHub secret name which contains the Username for maven repository. For Maven Central, you will need to Create JIRA account and then request a new project (see links). Default: "MAVEN_USERNAME" or the GitHub Actor when using GitHub Packages
2290
+ :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
2083
2291
  :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``.
2084
2292
  :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``.
2085
2293
  :param publish_tools: (experimental) Additional tools to install in the publishing job. Default: - no additional tools are installed
@@ -2095,6 +2303,7 @@ class Publisher(
2095
2303
  maven_server_id=maven_server_id,
2096
2304
  maven_staging_profile_id=maven_staging_profile_id,
2097
2305
  maven_username=maven_username,
2306
+ github_environment=github_environment,
2098
2307
  post_publish_steps=post_publish_steps,
2099
2308
  pre_publish_steps=pre_publish_steps,
2100
2309
  publish_tools=publish_tools,
@@ -2111,17 +2320,21 @@ class Publisher(
2111
2320
  npm_provenance: typing.Optional[builtins.bool] = None,
2112
2321
  npm_token_secret: typing.Optional[builtins.str] = None,
2113
2322
  registry: typing.Optional[builtins.str] = None,
2323
+ trusted_publishing: typing.Optional[builtins.bool] = None,
2324
+ github_environment: typing.Optional[builtins.str] = None,
2114
2325
  post_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
2115
2326
  pre_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
2116
2327
  publish_tools: typing.Optional[typing.Union[_Tools_75b93a2a, typing.Dict[builtins.str, typing.Any]]] = None,
2117
2328
  ) -> None:
2118
2329
  '''(experimental) Publishes artifacts from ``js/**`` to npm.
2119
2330
 
2120
- :param code_artifact_options: (experimental) Options for publishing npm package to AWS CodeArtifact. Default: - undefined
2331
+ :param code_artifact_options: (experimental) Options for publishing npm package to AWS CodeArtifact. Default: - package is not published to
2121
2332
  :param dist_tag: (deprecated) Tags can be used to provide an alias instead of version numbers. For example, a project might choose to have multiple streams of development and use a different tag for each stream, e.g., stable, beta, dev, canary. By default, the ``latest`` tag is used by npm to identify the current version of a package, and ``npm install <pkg>`` (without any ``@<version>`` or ``@<tag>`` specifier) installs the latest tag. Typically, projects only use the ``latest`` tag for stable release versions, and use other tags for unstable versions such as prereleases. The ``next`` tag is used by some projects to identify the upcoming version. Default: "latest"
2122
- :param npm_provenance: (experimental) Should provenance statements be generated when package is published. Note that this component is using ``publib`` to publish packages, which is using npm internally and supports provenance statements independently of the package manager used. Default: - undefined
2123
- :param npm_token_secret: (experimental) GitHub secret which contains the NPM token to use when publishing packages. Default: - "NPM_TOKEN" or "GITHUB_TOKEN" if ``registry`` is set to ``npm.pkg.github.com``.
2333
+ :param npm_provenance: (experimental) Should provenance statements be generated when package is published. Note that this component is using ``publib`` to publish packages, which is using npm internally and supports provenance statements independently of the package manager used. Only works in supported CI/CD environments. Default: - enabled for for public packages using trusted publishing, disabled otherwise
2334
+ :param npm_token_secret: (experimental) GitHub secret which contains the NPM token to use for publishing packages. Default: - "NPM_TOKEN" or "GITHUB_TOKEN" if ``registry`` is set to ``npm.pkg.github.com``.
2124
2335
  :param registry: (experimental) The domain name of the npm package registry. To publish to GitHub Packages, set this value to ``"npm.pkg.github.com"``. In this if ``npmTokenSecret`` is not specified, it will default to ``GITHUB_TOKEN`` which means that you will be able to publish to the repository's package store. In this case, make sure ``repositoryUrl`` is correctly defined. Default: "registry.npmjs.org"
2336
+ :param trusted_publishing: (experimental) Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on npm.js to work. Requires npm CLI version 11.5.1 or later, this is NOT ensured automatically. When used, ``npmTokenSecret`` will be ignored. Default: - false
2337
+ :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
2125
2338
  :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``.
2126
2339
  :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``.
2127
2340
  :param publish_tools: (experimental) Additional tools to install in the publishing job. Default: - no additional tools are installed
@@ -2134,6 +2347,8 @@ class Publisher(
2134
2347
  npm_provenance=npm_provenance,
2135
2348
  npm_token_secret=npm_token_secret,
2136
2349
  registry=registry,
2350
+ trusted_publishing=trusted_publishing,
2351
+ github_environment=github_environment,
2137
2352
  post_publish_steps=post_publish_steps,
2138
2353
  pre_publish_steps=pre_publish_steps,
2139
2354
  publish_tools=publish_tools,
@@ -2147,6 +2362,7 @@ class Publisher(
2147
2362
  *,
2148
2363
  nuget_api_key_secret: typing.Optional[builtins.str] = None,
2149
2364
  nuget_server: typing.Optional[builtins.str] = None,
2365
+ github_environment: typing.Optional[builtins.str] = None,
2150
2366
  post_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
2151
2367
  pre_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
2152
2368
  publish_tools: typing.Optional[typing.Union[_Tools_75b93a2a, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -2155,6 +2371,7 @@ class Publisher(
2155
2371
 
2156
2372
  :param nuget_api_key_secret: (experimental) GitHub secret which contains the API key for NuGet. Default: "NUGET_API_KEY"
2157
2373
  :param nuget_server: (experimental) NuGet Server URL (defaults to nuget.org).
2374
+ :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
2158
2375
  :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``.
2159
2376
  :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``.
2160
2377
  :param publish_tools: (experimental) Additional tools to install in the publishing job. Default: - no additional tools are installed
@@ -2164,6 +2381,7 @@ class Publisher(
2164
2381
  options = NugetPublishOptions(
2165
2382
  nuget_api_key_secret=nuget_api_key_secret,
2166
2383
  nuget_server=nuget_server,
2384
+ github_environment=github_environment,
2167
2385
  post_publish_steps=post_publish_steps,
2168
2386
  pre_publish_steps=pre_publish_steps,
2169
2387
  publish_tools=publish_tools,
@@ -2175,20 +2393,26 @@ class Publisher(
2175
2393
  def publish_to_py_pi(
2176
2394
  self,
2177
2395
  *,
2396
+ attestations: typing.Optional[builtins.bool] = None,
2178
2397
  code_artifact_options: typing.Optional[typing.Union[CodeArtifactOptions, typing.Dict[builtins.str, typing.Any]]] = None,
2398
+ trusted_publishing: typing.Optional[builtins.bool] = None,
2179
2399
  twine_password_secret: typing.Optional[builtins.str] = None,
2180
2400
  twine_registry_url: typing.Optional[builtins.str] = None,
2181
2401
  twine_username_secret: typing.Optional[builtins.str] = None,
2402
+ github_environment: typing.Optional[builtins.str] = None,
2182
2403
  post_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
2183
2404
  pre_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
2184
2405
  publish_tools: typing.Optional[typing.Union[_Tools_75b93a2a, typing.Dict[builtins.str, typing.Any]]] = None,
2185
2406
  ) -> None:
2186
2407
  '''(experimental) Publishes wheel artifacts from ``python`` to PyPI.
2187
2408
 
2409
+ :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
2188
2410
  :param code_artifact_options: (experimental) Options for publishing to AWS CodeArtifact. Default: - undefined
2411
+ :param trusted_publishing: (experimental) Use PyPI trusted publishing instead of tokens or username & password. Needs to be setup in PyPI.
2189
2412
  :param twine_password_secret: (experimental) The GitHub secret which contains PyPI password. Default: "TWINE_PASSWORD"
2190
2413
  :param twine_registry_url: (experimental) The registry url to use when releasing packages. Default: - twine default
2191
2414
  :param twine_username_secret: (experimental) The GitHub secret which contains PyPI user name. Default: "TWINE_USERNAME"
2415
+ :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
2192
2416
  :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``.
2193
2417
  :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``.
2194
2418
  :param publish_tools: (experimental) Additional tools to install in the publishing job. Default: - no additional tools are installed
@@ -2196,10 +2420,13 @@ class Publisher(
2196
2420
  :stability: experimental
2197
2421
  '''
2198
2422
  options = PyPiPublishOptions(
2423
+ attestations=attestations,
2199
2424
  code_artifact_options=code_artifact_options,
2425
+ trusted_publishing=trusted_publishing,
2200
2426
  twine_password_secret=twine_password_secret,
2201
2427
  twine_registry_url=twine_registry_url,
2202
2428
  twine_username_secret=twine_username_secret,
2429
+ github_environment=github_environment,
2203
2430
  post_publish_steps=post_publish_steps,
2204
2431
  pre_publish_steps=pre_publish_steps,
2205
2432
  publish_tools=publish_tools,
@@ -2530,10 +2757,13 @@ class PublisherOptions:
2530
2757
  jsii_type="projen.release.PyPiPublishOptions",
2531
2758
  jsii_struct_bases=[CommonPublishOptions],
2532
2759
  name_mapping={
2760
+ "github_environment": "githubEnvironment",
2533
2761
  "post_publish_steps": "postPublishSteps",
2534
2762
  "pre_publish_steps": "prePublishSteps",
2535
2763
  "publish_tools": "publishTools",
2764
+ "attestations": "attestations",
2536
2765
  "code_artifact_options": "codeArtifactOptions",
2766
+ "trusted_publishing": "trustedPublishing",
2537
2767
  "twine_password_secret": "twinePasswordSecret",
2538
2768
  "twine_registry_url": "twineRegistryUrl",
2539
2769
  "twine_username_secret": "twineUsernameSecret",
@@ -2543,20 +2773,26 @@ class PyPiPublishOptions(CommonPublishOptions):
2543
2773
  def __init__(
2544
2774
  self,
2545
2775
  *,
2776
+ github_environment: typing.Optional[builtins.str] = None,
2546
2777
  post_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
2547
2778
  pre_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
2548
2779
  publish_tools: typing.Optional[typing.Union[_Tools_75b93a2a, typing.Dict[builtins.str, typing.Any]]] = None,
2780
+ attestations: typing.Optional[builtins.bool] = None,
2549
2781
  code_artifact_options: typing.Optional[typing.Union[CodeArtifactOptions, typing.Dict[builtins.str, typing.Any]]] = None,
2782
+ trusted_publishing: typing.Optional[builtins.bool] = None,
2550
2783
  twine_password_secret: typing.Optional[builtins.str] = None,
2551
2784
  twine_registry_url: typing.Optional[builtins.str] = None,
2552
2785
  twine_username_secret: typing.Optional[builtins.str] = None,
2553
2786
  ) -> None:
2554
2787
  '''(experimental) Options for PyPI release.
2555
2788
 
2789
+ :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
2556
2790
  :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``.
2557
2791
  :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``.
2558
2792
  :param publish_tools: (experimental) Additional tools to install in the publishing job. Default: - no additional tools are installed
2793
+ :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
2559
2794
  :param code_artifact_options: (experimental) Options for publishing to AWS CodeArtifact. Default: - undefined
2795
+ :param trusted_publishing: (experimental) Use PyPI trusted publishing instead of tokens or username & password. Needs to be setup in PyPI.
2560
2796
  :param twine_password_secret: (experimental) The GitHub secret which contains PyPI password. Default: "TWINE_PASSWORD"
2561
2797
  :param twine_registry_url: (experimental) The registry url to use when releasing packages. Default: - twine default
2562
2798
  :param twine_username_secret: (experimental) The GitHub secret which contains PyPI user name. Default: "TWINE_USERNAME"
@@ -2569,22 +2805,31 @@ class PyPiPublishOptions(CommonPublishOptions):
2569
2805
  code_artifact_options = CodeArtifactOptions(**code_artifact_options)
2570
2806
  if __debug__:
2571
2807
  type_hints = typing.get_type_hints(_typecheckingstub__f90cd44def59be822b686bcd759d7f0a910b9936ca8acc0ef3e69cda5ddc21d2)
2808
+ check_type(argname="argument github_environment", value=github_environment, expected_type=type_hints["github_environment"])
2572
2809
  check_type(argname="argument post_publish_steps", value=post_publish_steps, expected_type=type_hints["post_publish_steps"])
2573
2810
  check_type(argname="argument pre_publish_steps", value=pre_publish_steps, expected_type=type_hints["pre_publish_steps"])
2574
2811
  check_type(argname="argument publish_tools", value=publish_tools, expected_type=type_hints["publish_tools"])
2812
+ check_type(argname="argument attestations", value=attestations, expected_type=type_hints["attestations"])
2575
2813
  check_type(argname="argument code_artifact_options", value=code_artifact_options, expected_type=type_hints["code_artifact_options"])
2814
+ check_type(argname="argument trusted_publishing", value=trusted_publishing, expected_type=type_hints["trusted_publishing"])
2576
2815
  check_type(argname="argument twine_password_secret", value=twine_password_secret, expected_type=type_hints["twine_password_secret"])
2577
2816
  check_type(argname="argument twine_registry_url", value=twine_registry_url, expected_type=type_hints["twine_registry_url"])
2578
2817
  check_type(argname="argument twine_username_secret", value=twine_username_secret, expected_type=type_hints["twine_username_secret"])
2579
2818
  self._values: typing.Dict[builtins.str, typing.Any] = {}
2819
+ if github_environment is not None:
2820
+ self._values["github_environment"] = github_environment
2580
2821
  if post_publish_steps is not None:
2581
2822
  self._values["post_publish_steps"] = post_publish_steps
2582
2823
  if pre_publish_steps is not None:
2583
2824
  self._values["pre_publish_steps"] = pre_publish_steps
2584
2825
  if publish_tools is not None:
2585
2826
  self._values["publish_tools"] = publish_tools
2827
+ if attestations is not None:
2828
+ self._values["attestations"] = attestations
2586
2829
  if code_artifact_options is not None:
2587
2830
  self._values["code_artifact_options"] = code_artifact_options
2831
+ if trusted_publishing is not None:
2832
+ self._values["trusted_publishing"] = trusted_publishing
2588
2833
  if twine_password_secret is not None:
2589
2834
  self._values["twine_password_secret"] = twine_password_secret
2590
2835
  if twine_registry_url is not None:
@@ -2592,6 +2837,22 @@ class PyPiPublishOptions(CommonPublishOptions):
2592
2837
  if twine_username_secret is not None:
2593
2838
  self._values["twine_username_secret"] = twine_username_secret
2594
2839
 
2840
+ @builtins.property
2841
+ def github_environment(self) -> typing.Optional[builtins.str]:
2842
+ '''(experimental) The GitHub Actions environment used for publishing.
2843
+
2844
+ This can be used to add an explicit approval step to the release
2845
+ or limit who can initiate a release through environment protection rules.
2846
+
2847
+ Set this to overwrite a package level publishing environment just for this artifact.
2848
+
2849
+ :default: - no environment used, unless set at the package level
2850
+
2851
+ :stability: experimental
2852
+ '''
2853
+ result = self._values.get("github_environment")
2854
+ return typing.cast(typing.Optional[builtins.str], result)
2855
+
2595
2856
  @builtins.property
2596
2857
  def post_publish_steps(self) -> typing.Optional[typing.List[_JobStep_c3287c05]]:
2597
2858
  '''(experimental) Steps to execute after executing the publishing command.
@@ -2631,6 +2892,21 @@ class PyPiPublishOptions(CommonPublishOptions):
2631
2892
  result = self._values.get("publish_tools")
2632
2893
  return typing.cast(typing.Optional[_Tools_75b93a2a], result)
2633
2894
 
2895
+ @builtins.property
2896
+ def attestations(self) -> typing.Optional[builtins.bool]:
2897
+ '''(experimental) Generate and publish cryptographic attestations for files uploaded to PyPI.
2898
+
2899
+ Attestations provide package provenance and integrity an can be viewed on PyPI.
2900
+ They are only available when using a Trusted Publisher for publishing.
2901
+
2902
+ :default: - enabled when using trusted publishing, otherwise not applicable
2903
+
2904
+ :see: https://docs.pypi.org/attestations/producing-attestations/
2905
+ :stability: experimental
2906
+ '''
2907
+ result = self._values.get("attestations")
2908
+ return typing.cast(typing.Optional[builtins.bool], result)
2909
+
2634
2910
  @builtins.property
2635
2911
  def code_artifact_options(self) -> typing.Optional[CodeArtifactOptions]:
2636
2912
  '''(experimental) Options for publishing to AWS CodeArtifact.
@@ -2642,6 +2918,18 @@ class PyPiPublishOptions(CommonPublishOptions):
2642
2918
  result = self._values.get("code_artifact_options")
2643
2919
  return typing.cast(typing.Optional[CodeArtifactOptions], result)
2644
2920
 
2921
+ @builtins.property
2922
+ def trusted_publishing(self) -> typing.Optional[builtins.bool]:
2923
+ '''(experimental) Use PyPI trusted publishing instead of tokens or username & password.
2924
+
2925
+ Needs to be setup in PyPI.
2926
+
2927
+ :see: https://docs.pypi.org/trusted-publishers/adding-a-publisher/
2928
+ :stability: experimental
2929
+ '''
2930
+ result = self._values.get("trusted_publishing")
2931
+ return typing.cast(typing.Optional[builtins.bool], result)
2932
+
2645
2933
  @builtins.property
2646
2934
  def twine_password_secret(self) -> typing.Optional[builtins.str]:
2647
2935
  '''(experimental) The GitHub secret which contains PyPI password.
@@ -2722,6 +3010,7 @@ class Release(
2722
3010
  publish_tasks: typing.Optional[builtins.bool] = None,
2723
3011
  releasable_commits: typing.Optional[_ReleasableCommits_d481ce10] = None,
2724
3012
  release_branches: typing.Optional[typing.Mapping[builtins.str, typing.Union[BranchOptions, typing.Dict[builtins.str, typing.Any]]]] = None,
3013
+ release_environment: typing.Optional[builtins.str] = None,
2725
3014
  release_every_commit: typing.Optional[builtins.bool] = None,
2726
3015
  release_failure_issue: typing.Optional[builtins.bool] = None,
2727
3016
  release_failure_issue_label: typing.Optional[builtins.str] = None,
@@ -2756,6 +3045,7 @@ class Release(
2756
3045
  :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
2757
3046
  :param releasable_commits: (experimental) Find commits that should be considered releasable Used to decide if a release is required. Default: ReleasableCommits.everyCommit()
2758
3047
  :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.
3048
+ :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
2759
3049
  :param release_every_commit: (deprecated) Automatically release new versions every commit to one of branches in ``releaseBranches``. Default: true
2760
3050
  :param release_failure_issue: (experimental) Create a github issue on every failed publishing task. Default: false
2761
3051
  :param release_failure_issue_label: (experimental) The label to apply to issues indicating publish failures. Only applies if ``releaseFailureIssue`` is true. Default: "failed-release"
@@ -2794,6 +3084,7 @@ class Release(
2794
3084
  publish_tasks=publish_tasks,
2795
3085
  releasable_commits=releasable_commits,
2796
3086
  release_branches=release_branches,
3087
+ release_environment=release_environment,
2797
3088
  release_every_commit=release_every_commit,
2798
3089
  release_failure_issue=release_failure_issue,
2799
3090
  release_failure_issue_label=release_failure_issue_label,
@@ -2830,6 +3121,7 @@ class Release(
2830
3121
  branch: builtins.str,
2831
3122
  *,
2832
3123
  major_version: jsii.Number,
3124
+ environment: typing.Optional[builtins.str] = None,
2833
3125
  min_major_version: typing.Optional[jsii.Number] = None,
2834
3126
  minor_version: typing.Optional[jsii.Number] = None,
2835
3127
  npm_dist_tag: typing.Optional[builtins.str] = None,
@@ -2845,6 +3137,7 @@ class Release(
2845
3137
 
2846
3138
  :param branch: The branch to monitor (e.g. ``main``, ``v2.x``).
2847
3139
  :param major_version: (experimental) The major versions released from this branch.
3140
+ :param 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
2848
3141
  :param min_major_version: (experimental) The minimum major version to release.
2849
3142
  :param minor_version: (experimental) The minor versions released from this branch.
2850
3143
  :param npm_dist_tag: (experimental) The npm distribution tag to use for this branch. Default: "latest"
@@ -2859,6 +3152,7 @@ class Release(
2859
3152
  check_type(argname="argument branch", value=branch, expected_type=type_hints["branch"])
2860
3153
  options = BranchOptions(
2861
3154
  major_version=major_version,
3155
+ environment=environment,
2862
3156
  min_major_version=min_major_version,
2863
3157
  minor_version=minor_version,
2864
3158
  npm_dist_tag=npm_dist_tag,
@@ -2945,6 +3239,7 @@ class Release(
2945
3239
  "publish_tasks": "publishTasks",
2946
3240
  "releasable_commits": "releasableCommits",
2947
3241
  "release_branches": "releaseBranches",
3242
+ "release_environment": "releaseEnvironment",
2948
3243
  "release_every_commit": "releaseEveryCommit",
2949
3244
  "release_failure_issue": "releaseFailureIssue",
2950
3245
  "release_failure_issue_label": "releaseFailureIssueLabel",
@@ -2975,6 +3270,7 @@ class ReleaseProjectOptions:
2975
3270
  publish_tasks: typing.Optional[builtins.bool] = None,
2976
3271
  releasable_commits: typing.Optional[_ReleasableCommits_d481ce10] = None,
2977
3272
  release_branches: typing.Optional[typing.Mapping[builtins.str, typing.Union[BranchOptions, typing.Dict[builtins.str, typing.Any]]]] = None,
3273
+ release_environment: typing.Optional[builtins.str] = None,
2978
3274
  release_every_commit: typing.Optional[builtins.bool] = None,
2979
3275
  release_failure_issue: typing.Optional[builtins.bool] = None,
2980
3276
  release_failure_issue_label: typing.Optional[builtins.str] = None,
@@ -3002,6 +3298,7 @@ class ReleaseProjectOptions:
3002
3298
  :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
3003
3299
  :param releasable_commits: (experimental) Find commits that should be considered releasable Used to decide if a release is required. Default: ReleasableCommits.everyCommit()
3004
3300
  :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.
3301
+ :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
3005
3302
  :param release_every_commit: (deprecated) Automatically release new versions every commit to one of branches in ``releaseBranches``. Default: true
3006
3303
  :param release_failure_issue: (experimental) Create a github issue on every failed publishing task. Default: false
3007
3304
  :param release_failure_issue_label: (experimental) The label to apply to issues indicating publish failures. Only applies if ``releaseFailureIssue`` is true. Default: "failed-release"
@@ -3033,6 +3330,7 @@ class ReleaseProjectOptions:
3033
3330
  check_type(argname="argument publish_tasks", value=publish_tasks, expected_type=type_hints["publish_tasks"])
3034
3331
  check_type(argname="argument releasable_commits", value=releasable_commits, expected_type=type_hints["releasable_commits"])
3035
3332
  check_type(argname="argument release_branches", value=release_branches, expected_type=type_hints["release_branches"])
3333
+ check_type(argname="argument release_environment", value=release_environment, expected_type=type_hints["release_environment"])
3036
3334
  check_type(argname="argument release_every_commit", value=release_every_commit, expected_type=type_hints["release_every_commit"])
3037
3335
  check_type(argname="argument release_failure_issue", value=release_failure_issue, expected_type=type_hints["release_failure_issue"])
3038
3336
  check_type(argname="argument release_failure_issue_label", value=release_failure_issue_label, expected_type=type_hints["release_failure_issue_label"])
@@ -3070,6 +3368,8 @@ class ReleaseProjectOptions:
3070
3368
  self._values["releasable_commits"] = releasable_commits
3071
3369
  if release_branches is not None:
3072
3370
  self._values["release_branches"] = release_branches
3371
+ if release_environment is not None:
3372
+ self._values["release_environment"] = release_environment
3073
3373
  if release_every_commit is not None:
3074
3374
  self._values["release_every_commit"] = release_every_commit
3075
3375
  if release_failure_issue is not None:
@@ -3274,6 +3574,23 @@ class ReleaseProjectOptions:
3274
3574
  result = self._values.get("release_branches")
3275
3575
  return typing.cast(typing.Optional[typing.Mapping[builtins.str, BranchOptions]], result)
3276
3576
 
3577
+ @builtins.property
3578
+ def release_environment(self) -> typing.Optional[builtins.str]:
3579
+ '''(experimental) The GitHub Actions environment used for the release.
3580
+
3581
+ This can be used to add an explicit approval step to the release
3582
+ or limit who can initiate a release through environment protection rules.
3583
+
3584
+ When multiple artifacts are released, the environment can be overwritten
3585
+ on a per artifact basis.
3586
+
3587
+ :default: - no environment used, unless set at the artifact level
3588
+
3589
+ :stability: experimental
3590
+ '''
3591
+ result = self._values.get("release_environment")
3592
+ return typing.cast(typing.Optional[builtins.str], result)
3593
+
3277
3594
  @builtins.property
3278
3595
  def release_every_commit(self) -> typing.Optional[builtins.bool]:
3279
3596
  '''(deprecated) Automatically release new versions every commit to one of branches in ``releaseBranches``.
@@ -3643,6 +3960,7 @@ class ScheduledReleaseOptions:
3643
3960
  jsii_type="projen.release.JsiiReleaseMaven",
3644
3961
  jsii_struct_bases=[MavenPublishOptions],
3645
3962
  name_mapping={
3963
+ "github_environment": "githubEnvironment",
3646
3964
  "post_publish_steps": "postPublishSteps",
3647
3965
  "pre_publish_steps": "prePublishSteps",
3648
3966
  "publish_tools": "publishTools",
@@ -3660,6 +3978,7 @@ class JsiiReleaseMaven(MavenPublishOptions):
3660
3978
  def __init__(
3661
3979
  self,
3662
3980
  *,
3981
+ github_environment: typing.Optional[builtins.str] = None,
3663
3982
  post_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
3664
3983
  pre_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
3665
3984
  publish_tools: typing.Optional[typing.Union[_Tools_75b93a2a, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -3673,6 +3992,7 @@ class JsiiReleaseMaven(MavenPublishOptions):
3673
3992
  maven_username: typing.Optional[builtins.str] = None,
3674
3993
  ) -> None:
3675
3994
  '''
3995
+ :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
3676
3996
  :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``.
3677
3997
  :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``.
3678
3998
  :param publish_tools: (experimental) Additional tools to install in the publishing job. Default: - no additional tools are installed
@@ -3693,6 +4013,7 @@ class JsiiReleaseMaven(MavenPublishOptions):
3693
4013
  publish_tools = _Tools_75b93a2a(**publish_tools)
3694
4014
  if __debug__:
3695
4015
  type_hints = typing.get_type_hints(_typecheckingstub__370b478ebba8352e12c41a67b57d5954055dba8a6ceae59144e72607fdc6df41)
4016
+ check_type(argname="argument github_environment", value=github_environment, expected_type=type_hints["github_environment"])
3696
4017
  check_type(argname="argument post_publish_steps", value=post_publish_steps, expected_type=type_hints["post_publish_steps"])
3697
4018
  check_type(argname="argument pre_publish_steps", value=pre_publish_steps, expected_type=type_hints["pre_publish_steps"])
3698
4019
  check_type(argname="argument publish_tools", value=publish_tools, expected_type=type_hints["publish_tools"])
@@ -3705,6 +4026,8 @@ class JsiiReleaseMaven(MavenPublishOptions):
3705
4026
  check_type(argname="argument maven_staging_profile_id", value=maven_staging_profile_id, expected_type=type_hints["maven_staging_profile_id"])
3706
4027
  check_type(argname="argument maven_username", value=maven_username, expected_type=type_hints["maven_username"])
3707
4028
  self._values: typing.Dict[builtins.str, typing.Any] = {}
4029
+ if github_environment is not None:
4030
+ self._values["github_environment"] = github_environment
3708
4031
  if post_publish_steps is not None:
3709
4032
  self._values["post_publish_steps"] = post_publish_steps
3710
4033
  if pre_publish_steps is not None:
@@ -3728,6 +4051,22 @@ class JsiiReleaseMaven(MavenPublishOptions):
3728
4051
  if maven_username is not None:
3729
4052
  self._values["maven_username"] = maven_username
3730
4053
 
4054
+ @builtins.property
4055
+ def github_environment(self) -> typing.Optional[builtins.str]:
4056
+ '''(experimental) The GitHub Actions environment used for publishing.
4057
+
4058
+ This can be used to add an explicit approval step to the release
4059
+ or limit who can initiate a release through environment protection rules.
4060
+
4061
+ Set this to overwrite a package level publishing environment just for this artifact.
4062
+
4063
+ :default: - no environment used, unless set at the package level
4064
+
4065
+ :stability: experimental
4066
+ '''
4067
+ result = self._values.get("github_environment")
4068
+ return typing.cast(typing.Optional[builtins.str], result)
4069
+
3731
4070
  @builtins.property
3732
4071
  def post_publish_steps(self) -> typing.Optional[typing.List[_JobStep_c3287c05]]:
3733
4072
  '''(experimental) Steps to execute after executing the publishing command.
@@ -3890,6 +4229,7 @@ class JsiiReleaseMaven(MavenPublishOptions):
3890
4229
  jsii_type="projen.release.JsiiReleaseNpm",
3891
4230
  jsii_struct_bases=[NpmPublishOptions],
3892
4231
  name_mapping={
4232
+ "github_environment": "githubEnvironment",
3893
4233
  "post_publish_steps": "postPublishSteps",
3894
4234
  "pre_publish_steps": "prePublishSteps",
3895
4235
  "publish_tools": "publishTools",
@@ -3898,12 +4238,14 @@ class JsiiReleaseMaven(MavenPublishOptions):
3898
4238
  "npm_provenance": "npmProvenance",
3899
4239
  "npm_token_secret": "npmTokenSecret",
3900
4240
  "registry": "registry",
4241
+ "trusted_publishing": "trustedPublishing",
3901
4242
  },
3902
4243
  )
3903
4244
  class JsiiReleaseNpm(NpmPublishOptions):
3904
4245
  def __init__(
3905
4246
  self,
3906
4247
  *,
4248
+ github_environment: typing.Optional[builtins.str] = None,
3907
4249
  post_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
3908
4250
  pre_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
3909
4251
  publish_tools: typing.Optional[typing.Union[_Tools_75b93a2a, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -3912,16 +4254,19 @@ class JsiiReleaseNpm(NpmPublishOptions):
3912
4254
  npm_provenance: typing.Optional[builtins.bool] = None,
3913
4255
  npm_token_secret: typing.Optional[builtins.str] = None,
3914
4256
  registry: typing.Optional[builtins.str] = None,
4257
+ trusted_publishing: typing.Optional[builtins.bool] = None,
3915
4258
  ) -> None:
3916
4259
  '''
4260
+ :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
3917
4261
  :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``.
3918
4262
  :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``.
3919
4263
  :param publish_tools: (experimental) Additional tools to install in the publishing job. Default: - no additional tools are installed
3920
- :param code_artifact_options: (experimental) Options for publishing npm package to AWS CodeArtifact. Default: - undefined
4264
+ :param code_artifact_options: (experimental) Options for publishing npm package to AWS CodeArtifact. Default: - package is not published to
3921
4265
  :param dist_tag: (deprecated) Tags can be used to provide an alias instead of version numbers. For example, a project might choose to have multiple streams of development and use a different tag for each stream, e.g., stable, beta, dev, canary. By default, the ``latest`` tag is used by npm to identify the current version of a package, and ``npm install <pkg>`` (without any ``@<version>`` or ``@<tag>`` specifier) installs the latest tag. Typically, projects only use the ``latest`` tag for stable release versions, and use other tags for unstable versions such as prereleases. The ``next`` tag is used by some projects to identify the upcoming version. Default: "latest"
3922
- :param npm_provenance: (experimental) Should provenance statements be generated when package is published. Note that this component is using ``publib`` to publish packages, which is using npm internally and supports provenance statements independently of the package manager used. Default: - undefined
3923
- :param npm_token_secret: (experimental) GitHub secret which contains the NPM token to use when publishing packages. Default: - "NPM_TOKEN" or "GITHUB_TOKEN" if ``registry`` is set to ``npm.pkg.github.com``.
4266
+ :param npm_provenance: (experimental) Should provenance statements be generated when package is published. Note that this component is using ``publib`` to publish packages, which is using npm internally and supports provenance statements independently of the package manager used. Only works in supported CI/CD environments. Default: - enabled for for public packages using trusted publishing, disabled otherwise
4267
+ :param npm_token_secret: (experimental) GitHub secret which contains the NPM token to use for publishing packages. Default: - "NPM_TOKEN" or "GITHUB_TOKEN" if ``registry`` is set to ``npm.pkg.github.com``.
3924
4268
  :param registry: (experimental) The domain name of the npm package registry. To publish to GitHub Packages, set this value to ``"npm.pkg.github.com"``. In this if ``npmTokenSecret`` is not specified, it will default to ``GITHUB_TOKEN`` which means that you will be able to publish to the repository's package store. In this case, make sure ``repositoryUrl`` is correctly defined. Default: "registry.npmjs.org"
4269
+ :param trusted_publishing: (experimental) Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on npm.js to work. Requires npm CLI version 11.5.1 or later, this is NOT ensured automatically. When used, ``npmTokenSecret`` will be ignored. Default: - false
3925
4270
 
3926
4271
  :deprecated: Use ``NpmPublishOptions`` instead.
3927
4272
 
@@ -3933,6 +4278,7 @@ class JsiiReleaseNpm(NpmPublishOptions):
3933
4278
  code_artifact_options = CodeArtifactOptions(**code_artifact_options)
3934
4279
  if __debug__:
3935
4280
  type_hints = typing.get_type_hints(_typecheckingstub__a34680d3cf9e2cc6374987796717402a524a0bb377e9172f0707da67450b3239)
4281
+ check_type(argname="argument github_environment", value=github_environment, expected_type=type_hints["github_environment"])
3936
4282
  check_type(argname="argument post_publish_steps", value=post_publish_steps, expected_type=type_hints["post_publish_steps"])
3937
4283
  check_type(argname="argument pre_publish_steps", value=pre_publish_steps, expected_type=type_hints["pre_publish_steps"])
3938
4284
  check_type(argname="argument publish_tools", value=publish_tools, expected_type=type_hints["publish_tools"])
@@ -3941,7 +4287,10 @@ class JsiiReleaseNpm(NpmPublishOptions):
3941
4287
  check_type(argname="argument npm_provenance", value=npm_provenance, expected_type=type_hints["npm_provenance"])
3942
4288
  check_type(argname="argument npm_token_secret", value=npm_token_secret, expected_type=type_hints["npm_token_secret"])
3943
4289
  check_type(argname="argument registry", value=registry, expected_type=type_hints["registry"])
4290
+ check_type(argname="argument trusted_publishing", value=trusted_publishing, expected_type=type_hints["trusted_publishing"])
3944
4291
  self._values: typing.Dict[builtins.str, typing.Any] = {}
4292
+ if github_environment is not None:
4293
+ self._values["github_environment"] = github_environment
3945
4294
  if post_publish_steps is not None:
3946
4295
  self._values["post_publish_steps"] = post_publish_steps
3947
4296
  if pre_publish_steps is not None:
@@ -3958,6 +4307,24 @@ class JsiiReleaseNpm(NpmPublishOptions):
3958
4307
  self._values["npm_token_secret"] = npm_token_secret
3959
4308
  if registry is not None:
3960
4309
  self._values["registry"] = registry
4310
+ if trusted_publishing is not None:
4311
+ self._values["trusted_publishing"] = trusted_publishing
4312
+
4313
+ @builtins.property
4314
+ def github_environment(self) -> typing.Optional[builtins.str]:
4315
+ '''(experimental) The GitHub Actions environment used for publishing.
4316
+
4317
+ This can be used to add an explicit approval step to the release
4318
+ or limit who can initiate a release through environment protection rules.
4319
+
4320
+ Set this to overwrite a package level publishing environment just for this artifact.
4321
+
4322
+ :default: - no environment used, unless set at the package level
4323
+
4324
+ :stability: experimental
4325
+ '''
4326
+ result = self._values.get("github_environment")
4327
+ return typing.cast(typing.Optional[builtins.str], result)
3961
4328
 
3962
4329
  @builtins.property
3963
4330
  def post_publish_steps(self) -> typing.Optional[typing.List[_JobStep_c3287c05]]:
@@ -4002,7 +4369,7 @@ class JsiiReleaseNpm(NpmPublishOptions):
4002
4369
  def code_artifact_options(self) -> typing.Optional[CodeArtifactOptions]:
4003
4370
  '''(experimental) Options for publishing npm package to AWS CodeArtifact.
4004
4371
 
4005
- :default: - undefined
4372
+ :default: - package is not published to
4006
4373
 
4007
4374
  :stability: experimental
4008
4375
  '''
@@ -4040,7 +4407,9 @@ class JsiiReleaseNpm(NpmPublishOptions):
4040
4407
  Note that this component is using ``publib`` to publish packages,
4041
4408
  which is using npm internally and supports provenance statements independently of the package manager used.
4042
4409
 
4043
- :default: - undefined
4410
+ Only works in supported CI/CD environments.
4411
+
4412
+ :default: - enabled for for public packages using trusted publishing, disabled otherwise
4044
4413
 
4045
4414
  :see: https://docs.npmjs.com/generating-provenance-statements
4046
4415
  :stability: experimental
@@ -4050,7 +4419,7 @@ class JsiiReleaseNpm(NpmPublishOptions):
4050
4419
 
4051
4420
  @builtins.property
4052
4421
  def npm_token_secret(self) -> typing.Optional[builtins.str]:
4053
- '''(experimental) GitHub secret which contains the NPM token to use when publishing packages.
4422
+ '''(experimental) GitHub secret which contains the NPM token to use for publishing packages.
4054
4423
 
4055
4424
  :default: - "NPM_TOKEN" or "GITHUB_TOKEN" if ``registry`` is set to ``npm.pkg.github.com``.
4056
4425
 
@@ -4080,6 +4449,21 @@ class JsiiReleaseNpm(NpmPublishOptions):
4080
4449
  result = self._values.get("registry")
4081
4450
  return typing.cast(typing.Optional[builtins.str], result)
4082
4451
 
4452
+ @builtins.property
4453
+ def trusted_publishing(self) -> typing.Optional[builtins.bool]:
4454
+ '''(experimental) Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on npm.js to work.
4455
+
4456
+ Requires npm CLI version 11.5.1 or later, this is NOT ensured automatically.
4457
+ When used, ``npmTokenSecret`` will be ignored.
4458
+
4459
+ :default: - false
4460
+
4461
+ :see: https://docs.npmjs.com/trusted-publishers
4462
+ :stability: experimental
4463
+ '''
4464
+ result = self._values.get("trusted_publishing")
4465
+ return typing.cast(typing.Optional[builtins.bool], result)
4466
+
4083
4467
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
4084
4468
  return isinstance(rhs, self.__class__) and rhs._values == self._values
4085
4469
 
@@ -4096,6 +4480,7 @@ class JsiiReleaseNpm(NpmPublishOptions):
4096
4480
  jsii_type="projen.release.JsiiReleaseNuget",
4097
4481
  jsii_struct_bases=[NugetPublishOptions],
4098
4482
  name_mapping={
4483
+ "github_environment": "githubEnvironment",
4099
4484
  "post_publish_steps": "postPublishSteps",
4100
4485
  "pre_publish_steps": "prePublishSteps",
4101
4486
  "publish_tools": "publishTools",
@@ -4107,6 +4492,7 @@ class JsiiReleaseNuget(NugetPublishOptions):
4107
4492
  def __init__(
4108
4493
  self,
4109
4494
  *,
4495
+ github_environment: typing.Optional[builtins.str] = None,
4110
4496
  post_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
4111
4497
  pre_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
4112
4498
  publish_tools: typing.Optional[typing.Union[_Tools_75b93a2a, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -4114,6 +4500,7 @@ class JsiiReleaseNuget(NugetPublishOptions):
4114
4500
  nuget_server: typing.Optional[builtins.str] = None,
4115
4501
  ) -> None:
4116
4502
  '''
4503
+ :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
4117
4504
  :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``.
4118
4505
  :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``.
4119
4506
  :param publish_tools: (experimental) Additional tools to install in the publishing job. Default: - no additional tools are installed
@@ -4128,12 +4515,15 @@ class JsiiReleaseNuget(NugetPublishOptions):
4128
4515
  publish_tools = _Tools_75b93a2a(**publish_tools)
4129
4516
  if __debug__:
4130
4517
  type_hints = typing.get_type_hints(_typecheckingstub__14abe6d299c2354a8f22a08788f088aafaa8acf2b85b20f297416346274a9b96)
4518
+ check_type(argname="argument github_environment", value=github_environment, expected_type=type_hints["github_environment"])
4131
4519
  check_type(argname="argument post_publish_steps", value=post_publish_steps, expected_type=type_hints["post_publish_steps"])
4132
4520
  check_type(argname="argument pre_publish_steps", value=pre_publish_steps, expected_type=type_hints["pre_publish_steps"])
4133
4521
  check_type(argname="argument publish_tools", value=publish_tools, expected_type=type_hints["publish_tools"])
4134
4522
  check_type(argname="argument nuget_api_key_secret", value=nuget_api_key_secret, expected_type=type_hints["nuget_api_key_secret"])
4135
4523
  check_type(argname="argument nuget_server", value=nuget_server, expected_type=type_hints["nuget_server"])
4136
4524
  self._values: typing.Dict[builtins.str, typing.Any] = {}
4525
+ if github_environment is not None:
4526
+ self._values["github_environment"] = github_environment
4137
4527
  if post_publish_steps is not None:
4138
4528
  self._values["post_publish_steps"] = post_publish_steps
4139
4529
  if pre_publish_steps is not None:
@@ -4145,6 +4535,22 @@ class JsiiReleaseNuget(NugetPublishOptions):
4145
4535
  if nuget_server is not None:
4146
4536
  self._values["nuget_server"] = nuget_server
4147
4537
 
4538
+ @builtins.property
4539
+ def github_environment(self) -> typing.Optional[builtins.str]:
4540
+ '''(experimental) The GitHub Actions environment used for publishing.
4541
+
4542
+ This can be used to add an explicit approval step to the release
4543
+ or limit who can initiate a release through environment protection rules.
4544
+
4545
+ Set this to overwrite a package level publishing environment just for this artifact.
4546
+
4547
+ :default: - no environment used, unless set at the package level
4548
+
4549
+ :stability: experimental
4550
+ '''
4551
+ result = self._values.get("github_environment")
4552
+ return typing.cast(typing.Optional[builtins.str], result)
4553
+
4148
4554
  @builtins.property
4149
4555
  def post_publish_steps(self) -> typing.Optional[typing.List[_JobStep_c3287c05]]:
4150
4556
  '''(experimental) Steps to execute after executing the publishing command.
@@ -4220,10 +4626,13 @@ class JsiiReleaseNuget(NugetPublishOptions):
4220
4626
  jsii_type="projen.release.JsiiReleasePyPi",
4221
4627
  jsii_struct_bases=[PyPiPublishOptions],
4222
4628
  name_mapping={
4629
+ "github_environment": "githubEnvironment",
4223
4630
  "post_publish_steps": "postPublishSteps",
4224
4631
  "pre_publish_steps": "prePublishSteps",
4225
4632
  "publish_tools": "publishTools",
4633
+ "attestations": "attestations",
4226
4634
  "code_artifact_options": "codeArtifactOptions",
4635
+ "trusted_publishing": "trustedPublishing",
4227
4636
  "twine_password_secret": "twinePasswordSecret",
4228
4637
  "twine_registry_url": "twineRegistryUrl",
4229
4638
  "twine_username_secret": "twineUsernameSecret",
@@ -4233,19 +4642,25 @@ class JsiiReleasePyPi(PyPiPublishOptions):
4233
4642
  def __init__(
4234
4643
  self,
4235
4644
  *,
4645
+ github_environment: typing.Optional[builtins.str] = None,
4236
4646
  post_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
4237
4647
  pre_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
4238
4648
  publish_tools: typing.Optional[typing.Union[_Tools_75b93a2a, typing.Dict[builtins.str, typing.Any]]] = None,
4649
+ attestations: typing.Optional[builtins.bool] = None,
4239
4650
  code_artifact_options: typing.Optional[typing.Union[CodeArtifactOptions, typing.Dict[builtins.str, typing.Any]]] = None,
4651
+ trusted_publishing: typing.Optional[builtins.bool] = None,
4240
4652
  twine_password_secret: typing.Optional[builtins.str] = None,
4241
4653
  twine_registry_url: typing.Optional[builtins.str] = None,
4242
4654
  twine_username_secret: typing.Optional[builtins.str] = None,
4243
4655
  ) -> None:
4244
4656
  '''
4657
+ :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
4245
4658
  :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``.
4246
4659
  :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``.
4247
4660
  :param publish_tools: (experimental) Additional tools to install in the publishing job. Default: - no additional tools are installed
4661
+ :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
4248
4662
  :param code_artifact_options: (experimental) Options for publishing to AWS CodeArtifact. Default: - undefined
4663
+ :param trusted_publishing: (experimental) Use PyPI trusted publishing instead of tokens or username & password. Needs to be setup in PyPI.
4249
4664
  :param twine_password_secret: (experimental) The GitHub secret which contains PyPI password. Default: "TWINE_PASSWORD"
4250
4665
  :param twine_registry_url: (experimental) The registry url to use when releasing packages. Default: - twine default
4251
4666
  :param twine_username_secret: (experimental) The GitHub secret which contains PyPI user name. Default: "TWINE_USERNAME"
@@ -4260,22 +4675,31 @@ class JsiiReleasePyPi(PyPiPublishOptions):
4260
4675
  code_artifact_options = CodeArtifactOptions(**code_artifact_options)
4261
4676
  if __debug__:
4262
4677
  type_hints = typing.get_type_hints(_typecheckingstub__0fa7c01cc40634bf771011bf4e8ddb9e3be28efd1b3f15b5d0768a4e810d37bc)
4678
+ check_type(argname="argument github_environment", value=github_environment, expected_type=type_hints["github_environment"])
4263
4679
  check_type(argname="argument post_publish_steps", value=post_publish_steps, expected_type=type_hints["post_publish_steps"])
4264
4680
  check_type(argname="argument pre_publish_steps", value=pre_publish_steps, expected_type=type_hints["pre_publish_steps"])
4265
4681
  check_type(argname="argument publish_tools", value=publish_tools, expected_type=type_hints["publish_tools"])
4682
+ check_type(argname="argument attestations", value=attestations, expected_type=type_hints["attestations"])
4266
4683
  check_type(argname="argument code_artifact_options", value=code_artifact_options, expected_type=type_hints["code_artifact_options"])
4684
+ check_type(argname="argument trusted_publishing", value=trusted_publishing, expected_type=type_hints["trusted_publishing"])
4267
4685
  check_type(argname="argument twine_password_secret", value=twine_password_secret, expected_type=type_hints["twine_password_secret"])
4268
4686
  check_type(argname="argument twine_registry_url", value=twine_registry_url, expected_type=type_hints["twine_registry_url"])
4269
4687
  check_type(argname="argument twine_username_secret", value=twine_username_secret, expected_type=type_hints["twine_username_secret"])
4270
4688
  self._values: typing.Dict[builtins.str, typing.Any] = {}
4689
+ if github_environment is not None:
4690
+ self._values["github_environment"] = github_environment
4271
4691
  if post_publish_steps is not None:
4272
4692
  self._values["post_publish_steps"] = post_publish_steps
4273
4693
  if pre_publish_steps is not None:
4274
4694
  self._values["pre_publish_steps"] = pre_publish_steps
4275
4695
  if publish_tools is not None:
4276
4696
  self._values["publish_tools"] = publish_tools
4697
+ if attestations is not None:
4698
+ self._values["attestations"] = attestations
4277
4699
  if code_artifact_options is not None:
4278
4700
  self._values["code_artifact_options"] = code_artifact_options
4701
+ if trusted_publishing is not None:
4702
+ self._values["trusted_publishing"] = trusted_publishing
4279
4703
  if twine_password_secret is not None:
4280
4704
  self._values["twine_password_secret"] = twine_password_secret
4281
4705
  if twine_registry_url is not None:
@@ -4283,6 +4707,22 @@ class JsiiReleasePyPi(PyPiPublishOptions):
4283
4707
  if twine_username_secret is not None:
4284
4708
  self._values["twine_username_secret"] = twine_username_secret
4285
4709
 
4710
+ @builtins.property
4711
+ def github_environment(self) -> typing.Optional[builtins.str]:
4712
+ '''(experimental) The GitHub Actions environment used for publishing.
4713
+
4714
+ This can be used to add an explicit approval step to the release
4715
+ or limit who can initiate a release through environment protection rules.
4716
+
4717
+ Set this to overwrite a package level publishing environment just for this artifact.
4718
+
4719
+ :default: - no environment used, unless set at the package level
4720
+
4721
+ :stability: experimental
4722
+ '''
4723
+ result = self._values.get("github_environment")
4724
+ return typing.cast(typing.Optional[builtins.str], result)
4725
+
4286
4726
  @builtins.property
4287
4727
  def post_publish_steps(self) -> typing.Optional[typing.List[_JobStep_c3287c05]]:
4288
4728
  '''(experimental) Steps to execute after executing the publishing command.
@@ -4322,6 +4762,21 @@ class JsiiReleasePyPi(PyPiPublishOptions):
4322
4762
  result = self._values.get("publish_tools")
4323
4763
  return typing.cast(typing.Optional[_Tools_75b93a2a], result)
4324
4764
 
4765
+ @builtins.property
4766
+ def attestations(self) -> typing.Optional[builtins.bool]:
4767
+ '''(experimental) Generate and publish cryptographic attestations for files uploaded to PyPI.
4768
+
4769
+ Attestations provide package provenance and integrity an can be viewed on PyPI.
4770
+ They are only available when using a Trusted Publisher for publishing.
4771
+
4772
+ :default: - enabled when using trusted publishing, otherwise not applicable
4773
+
4774
+ :see: https://docs.pypi.org/attestations/producing-attestations/
4775
+ :stability: experimental
4776
+ '''
4777
+ result = self._values.get("attestations")
4778
+ return typing.cast(typing.Optional[builtins.bool], result)
4779
+
4325
4780
  @builtins.property
4326
4781
  def code_artifact_options(self) -> typing.Optional[CodeArtifactOptions]:
4327
4782
  '''(experimental) Options for publishing to AWS CodeArtifact.
@@ -4333,6 +4788,18 @@ class JsiiReleasePyPi(PyPiPublishOptions):
4333
4788
  result = self._values.get("code_artifact_options")
4334
4789
  return typing.cast(typing.Optional[CodeArtifactOptions], result)
4335
4790
 
4791
+ @builtins.property
4792
+ def trusted_publishing(self) -> typing.Optional[builtins.bool]:
4793
+ '''(experimental) Use PyPI trusted publishing instead of tokens or username & password.
4794
+
4795
+ Needs to be setup in PyPI.
4796
+
4797
+ :see: https://docs.pypi.org/trusted-publishers/adding-a-publisher/
4798
+ :stability: experimental
4799
+ '''
4800
+ result = self._values.get("trusted_publishing")
4801
+ return typing.cast(typing.Optional[builtins.bool], result)
4802
+
4336
4803
  @builtins.property
4337
4804
  def twine_password_secret(self) -> typing.Optional[builtins.str]:
4338
4805
  '''(experimental) The GitHub secret which contains PyPI password.
@@ -4394,6 +4861,7 @@ class JsiiReleasePyPi(PyPiPublishOptions):
4394
4861
  "publish_tasks": "publishTasks",
4395
4862
  "releasable_commits": "releasableCommits",
4396
4863
  "release_branches": "releaseBranches",
4864
+ "release_environment": "releaseEnvironment",
4397
4865
  "release_every_commit": "releaseEveryCommit",
4398
4866
  "release_failure_issue": "releaseFailureIssue",
4399
4867
  "release_failure_issue_label": "releaseFailureIssueLabel",
@@ -4431,6 +4899,7 @@ class ReleaseOptions(ReleaseProjectOptions):
4431
4899
  publish_tasks: typing.Optional[builtins.bool] = None,
4432
4900
  releasable_commits: typing.Optional[_ReleasableCommits_d481ce10] = None,
4433
4901
  release_branches: typing.Optional[typing.Mapping[builtins.str, typing.Union[BranchOptions, typing.Dict[builtins.str, typing.Any]]]] = None,
4902
+ release_environment: typing.Optional[builtins.str] = None,
4434
4903
  release_every_commit: typing.Optional[builtins.bool] = None,
4435
4904
  release_failure_issue: typing.Optional[builtins.bool] = None,
4436
4905
  release_failure_issue_label: typing.Optional[builtins.str] = None,
@@ -4465,6 +4934,7 @@ class ReleaseOptions(ReleaseProjectOptions):
4465
4934
  :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
4466
4935
  :param releasable_commits: (experimental) Find commits that should be considered releasable Used to decide if a release is required. Default: ReleasableCommits.everyCommit()
4467
4936
  :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.
4937
+ :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
4468
4938
  :param release_every_commit: (deprecated) Automatically release new versions every commit to one of branches in ``releaseBranches``. Default: true
4469
4939
  :param release_failure_issue: (experimental) Create a github issue on every failed publishing task. Default: false
4470
4940
  :param release_failure_issue_label: (experimental) The label to apply to issues indicating publish failures. Only applies if ``releaseFailureIssue`` is true. Default: "failed-release"
@@ -4505,6 +4975,7 @@ class ReleaseOptions(ReleaseProjectOptions):
4505
4975
  check_type(argname="argument publish_tasks", value=publish_tasks, expected_type=type_hints["publish_tasks"])
4506
4976
  check_type(argname="argument releasable_commits", value=releasable_commits, expected_type=type_hints["releasable_commits"])
4507
4977
  check_type(argname="argument release_branches", value=release_branches, expected_type=type_hints["release_branches"])
4978
+ check_type(argname="argument release_environment", value=release_environment, expected_type=type_hints["release_environment"])
4508
4979
  check_type(argname="argument release_every_commit", value=release_every_commit, expected_type=type_hints["release_every_commit"])
4509
4980
  check_type(argname="argument release_failure_issue", value=release_failure_issue, expected_type=type_hints["release_failure_issue"])
4510
4981
  check_type(argname="argument release_failure_issue_label", value=release_failure_issue_label, expected_type=type_hints["release_failure_issue_label"])
@@ -4554,6 +5025,8 @@ class ReleaseOptions(ReleaseProjectOptions):
4554
5025
  self._values["releasable_commits"] = releasable_commits
4555
5026
  if release_branches is not None:
4556
5027
  self._values["release_branches"] = release_branches
5028
+ if release_environment is not None:
5029
+ self._values["release_environment"] = release_environment
4557
5030
  if release_every_commit is not None:
4558
5031
  self._values["release_every_commit"] = release_every_commit
4559
5032
  if release_failure_issue is not None:
@@ -4764,6 +5237,23 @@ class ReleaseOptions(ReleaseProjectOptions):
4764
5237
  result = self._values.get("release_branches")
4765
5238
  return typing.cast(typing.Optional[typing.Mapping[builtins.str, BranchOptions]], result)
4766
5239
 
5240
+ @builtins.property
5241
+ def release_environment(self) -> typing.Optional[builtins.str]:
5242
+ '''(experimental) The GitHub Actions environment used for the release.
5243
+
5244
+ This can be used to add an explicit approval step to the release
5245
+ or limit who can initiate a release through environment protection rules.
5246
+
5247
+ When multiple artifacts are released, the environment can be overwritten
5248
+ on a per artifact basis.
5249
+
5250
+ :default: - no environment used, unless set at the artifact level
5251
+
5252
+ :stability: experimental
5253
+ '''
5254
+ result = self._values.get("release_environment")
5255
+ return typing.cast(typing.Optional[builtins.str], result)
5256
+
4767
5257
  @builtins.property
4768
5258
  def release_every_commit(self) -> typing.Optional[builtins.bool]:
4769
5259
  '''(deprecated) Automatically release new versions every commit to one of branches in ``releaseBranches``.
@@ -5049,6 +5539,7 @@ publication.publish()
5049
5539
  def _typecheckingstub__6f62eb98000deee3820f046309b2262c5063c0cb9581232fd1a44731f86986d7(
5050
5540
  *,
5051
5541
  major_version: jsii.Number,
5542
+ environment: typing.Optional[builtins.str] = None,
5052
5543
  min_major_version: typing.Optional[jsii.Number] = None,
5053
5544
  minor_version: typing.Optional[jsii.Number] = None,
5054
5545
  npm_dist_tag: typing.Optional[builtins.str] = None,
@@ -5071,6 +5562,7 @@ def _typecheckingstub__9a328fe64db40633fedae889a7376e6885e1983f57d171d4f4ef85af6
5071
5562
 
5072
5563
  def _typecheckingstub__9603f09b67279d5ef3dc921367168d873983210161b1d6382c369d0b9ec13b0a(
5073
5564
  *,
5565
+ github_environment: typing.Optional[builtins.str] = None,
5074
5566
  post_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
5075
5567
  pre_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
5076
5568
  publish_tools: typing.Optional[typing.Union[_Tools_75b93a2a, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -5087,6 +5579,7 @@ def _typecheckingstub__95b36779f92c5190c3ac9d8a636a537bfe6ebc844a55942ee5dfc0a96
5087
5579
 
5088
5580
  def _typecheckingstub__c7008ba35b00dedc375d87db7a317e8f077475b6a4e334303337c92bb77171fb(
5089
5581
  *,
5582
+ github_environment: typing.Optional[builtins.str] = None,
5090
5583
  post_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
5091
5584
  pre_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
5092
5585
  publish_tools: typing.Optional[typing.Union[_Tools_75b93a2a, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -5111,6 +5604,7 @@ def _typecheckingstub__d5537e1435c9eea568279fa140de950e1b7275db307b3741959861863
5111
5604
 
5112
5605
  def _typecheckingstub__81a5b8a4f17bcea99089b42477d5b778fd3a9066d3d1126736ccf21a9c44bfbc(
5113
5606
  *,
5607
+ github_environment: typing.Optional[builtins.str] = None,
5114
5608
  post_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
5115
5609
  pre_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
5116
5610
  publish_tools: typing.Optional[typing.Union[_Tools_75b93a2a, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -5127,6 +5621,7 @@ def _typecheckingstub__81a5b8a4f17bcea99089b42477d5b778fd3a9066d3d1126736ccf21a9
5127
5621
 
5128
5622
  def _typecheckingstub__44bae65cd3313afa37ada6dbaab99141ff7744458e985bc9c53faa021220e167(
5129
5623
  *,
5624
+ github_environment: typing.Optional[builtins.str] = None,
5130
5625
  post_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
5131
5626
  pre_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
5132
5627
  publish_tools: typing.Optional[typing.Union[_Tools_75b93a2a, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -5152,6 +5647,7 @@ def _typecheckingstub__2492d83058b766179e85fd785d08928e38b53ce70b0f2dc9a1c5edccb
5152
5647
 
5153
5648
  def _typecheckingstub__da2d55bfa47dd9e6869b7f55b573dea54539ab2e9b833766e4140d6d4c4c3d7e(
5154
5649
  *,
5650
+ github_environment: typing.Optional[builtins.str] = None,
5155
5651
  post_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
5156
5652
  pre_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
5157
5653
  publish_tools: typing.Optional[typing.Union[_Tools_75b93a2a, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -5169,6 +5665,7 @@ def _typecheckingstub__da2d55bfa47dd9e6869b7f55b573dea54539ab2e9b833766e4140d6d4
5169
5665
 
5170
5666
  def _typecheckingstub__458289050585e6e895f9ee709ee4e102166b0f71e3c8b2a0617efa2d24e990fb(
5171
5667
  *,
5668
+ github_environment: typing.Optional[builtins.str] = None,
5172
5669
  post_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
5173
5670
  pre_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
5174
5671
  publish_tools: typing.Optional[typing.Union[_Tools_75b93a2a, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -5177,12 +5674,14 @@ def _typecheckingstub__458289050585e6e895f9ee709ee4e102166b0f71e3c8b2a0617efa2d2
5177
5674
  npm_provenance: typing.Optional[builtins.bool] = None,
5178
5675
  npm_token_secret: typing.Optional[builtins.str] = None,
5179
5676
  registry: typing.Optional[builtins.str] = None,
5677
+ trusted_publishing: typing.Optional[builtins.bool] = None,
5180
5678
  ) -> None:
5181
5679
  """Type checking stubs"""
5182
5680
  pass
5183
5681
 
5184
5682
  def _typecheckingstub__584d4125e43e970396e9062b357de30ef32a6d1b30bd3a0f00fc7db041ea0bec(
5185
5683
  *,
5684
+ github_environment: typing.Optional[builtins.str] = None,
5186
5685
  post_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
5187
5686
  pre_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
5188
5687
  publish_tools: typing.Optional[typing.Union[_Tools_75b93a2a, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -5245,10 +5744,13 @@ def _typecheckingstub__4e430972b008e5968049196f964ee9dfa036c68b2195f125119bc2629
5245
5744
 
5246
5745
  def _typecheckingstub__f90cd44def59be822b686bcd759d7f0a910b9936ca8acc0ef3e69cda5ddc21d2(
5247
5746
  *,
5747
+ github_environment: typing.Optional[builtins.str] = None,
5248
5748
  post_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
5249
5749
  pre_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
5250
5750
  publish_tools: typing.Optional[typing.Union[_Tools_75b93a2a, typing.Dict[builtins.str, typing.Any]]] = None,
5751
+ attestations: typing.Optional[builtins.bool] = None,
5251
5752
  code_artifact_options: typing.Optional[typing.Union[CodeArtifactOptions, typing.Dict[builtins.str, typing.Any]]] = None,
5753
+ trusted_publishing: typing.Optional[builtins.bool] = None,
5252
5754
  twine_password_secret: typing.Optional[builtins.str] = None,
5253
5755
  twine_registry_url: typing.Optional[builtins.str] = None,
5254
5756
  twine_username_secret: typing.Optional[builtins.str] = None,
@@ -5278,6 +5780,7 @@ def _typecheckingstub__b447ecb34d36869391ee159467e6c78b74da704722d4c6a517e05bbae
5278
5780
  publish_tasks: typing.Optional[builtins.bool] = None,
5279
5781
  releasable_commits: typing.Optional[_ReleasableCommits_d481ce10] = None,
5280
5782
  release_branches: typing.Optional[typing.Mapping[builtins.str, typing.Union[BranchOptions, typing.Dict[builtins.str, typing.Any]]]] = None,
5783
+ release_environment: typing.Optional[builtins.str] = None,
5281
5784
  release_every_commit: typing.Optional[builtins.bool] = None,
5282
5785
  release_failure_issue: typing.Optional[builtins.bool] = None,
5283
5786
  release_failure_issue_label: typing.Optional[builtins.str] = None,
@@ -5304,6 +5807,7 @@ def _typecheckingstub__e0f66d9106b15a88644bb5efb62c4d4d18bb7c7b73bb22b904010a8a6
5304
5807
  branch: builtins.str,
5305
5808
  *,
5306
5809
  major_version: jsii.Number,
5810
+ environment: typing.Optional[builtins.str] = None,
5307
5811
  min_major_version: typing.Optional[jsii.Number] = None,
5308
5812
  minor_version: typing.Optional[jsii.Number] = None,
5309
5813
  npm_dist_tag: typing.Optional[builtins.str] = None,
@@ -5334,6 +5838,7 @@ def _typecheckingstub__cc5e99254de9f29d2ac3b86e193164816e1ed36e491e602128e7d16fb
5334
5838
  publish_tasks: typing.Optional[builtins.bool] = None,
5335
5839
  releasable_commits: typing.Optional[_ReleasableCommits_d481ce10] = None,
5336
5840
  release_branches: typing.Optional[typing.Mapping[builtins.str, typing.Union[BranchOptions, typing.Dict[builtins.str, typing.Any]]]] = None,
5841
+ release_environment: typing.Optional[builtins.str] = None,
5337
5842
  release_every_commit: typing.Optional[builtins.bool] = None,
5338
5843
  release_failure_issue: typing.Optional[builtins.bool] = None,
5339
5844
  release_failure_issue_label: typing.Optional[builtins.str] = None,
@@ -5359,6 +5864,7 @@ def _typecheckingstub__629cc7488dbd6e87168962d964694e088625a8e208d09e45c120eac7e
5359
5864
 
5360
5865
  def _typecheckingstub__370b478ebba8352e12c41a67b57d5954055dba8a6ceae59144e72607fdc6df41(
5361
5866
  *,
5867
+ github_environment: typing.Optional[builtins.str] = None,
5362
5868
  post_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
5363
5869
  pre_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
5364
5870
  publish_tools: typing.Optional[typing.Union[_Tools_75b93a2a, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -5376,6 +5882,7 @@ def _typecheckingstub__370b478ebba8352e12c41a67b57d5954055dba8a6ceae59144e72607f
5376
5882
 
5377
5883
  def _typecheckingstub__a34680d3cf9e2cc6374987796717402a524a0bb377e9172f0707da67450b3239(
5378
5884
  *,
5885
+ github_environment: typing.Optional[builtins.str] = None,
5379
5886
  post_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
5380
5887
  pre_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
5381
5888
  publish_tools: typing.Optional[typing.Union[_Tools_75b93a2a, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -5384,12 +5891,14 @@ def _typecheckingstub__a34680d3cf9e2cc6374987796717402a524a0bb377e9172f0707da674
5384
5891
  npm_provenance: typing.Optional[builtins.bool] = None,
5385
5892
  npm_token_secret: typing.Optional[builtins.str] = None,
5386
5893
  registry: typing.Optional[builtins.str] = None,
5894
+ trusted_publishing: typing.Optional[builtins.bool] = None,
5387
5895
  ) -> None:
5388
5896
  """Type checking stubs"""
5389
5897
  pass
5390
5898
 
5391
5899
  def _typecheckingstub__14abe6d299c2354a8f22a08788f088aafaa8acf2b85b20f297416346274a9b96(
5392
5900
  *,
5901
+ github_environment: typing.Optional[builtins.str] = None,
5393
5902
  post_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
5394
5903
  pre_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
5395
5904
  publish_tools: typing.Optional[typing.Union[_Tools_75b93a2a, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -5401,10 +5910,13 @@ def _typecheckingstub__14abe6d299c2354a8f22a08788f088aafaa8acf2b85b20f2974163462
5401
5910
 
5402
5911
  def _typecheckingstub__0fa7c01cc40634bf771011bf4e8ddb9e3be28efd1b3f15b5d0768a4e810d37bc(
5403
5912
  *,
5913
+ github_environment: typing.Optional[builtins.str] = None,
5404
5914
  post_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
5405
5915
  pre_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
5406
5916
  publish_tools: typing.Optional[typing.Union[_Tools_75b93a2a, typing.Dict[builtins.str, typing.Any]]] = None,
5917
+ attestations: typing.Optional[builtins.bool] = None,
5407
5918
  code_artifact_options: typing.Optional[typing.Union[CodeArtifactOptions, typing.Dict[builtins.str, typing.Any]]] = None,
5919
+ trusted_publishing: typing.Optional[builtins.bool] = None,
5408
5920
  twine_password_secret: typing.Optional[builtins.str] = None,
5409
5921
  twine_registry_url: typing.Optional[builtins.str] = None,
5410
5922
  twine_username_secret: typing.Optional[builtins.str] = None,
@@ -5426,6 +5938,7 @@ def _typecheckingstub__abcbb9106f2fe858c4efa7a5934906e63b00b56fa33c47c5f910dac2a
5426
5938
  publish_tasks: typing.Optional[builtins.bool] = None,
5427
5939
  releasable_commits: typing.Optional[_ReleasableCommits_d481ce10] = None,
5428
5940
  release_branches: typing.Optional[typing.Mapping[builtins.str, typing.Union[BranchOptions, typing.Dict[builtins.str, typing.Any]]]] = None,
5941
+ release_environment: typing.Optional[builtins.str] = None,
5429
5942
  release_every_commit: typing.Optional[builtins.bool] = None,
5430
5943
  release_failure_issue: typing.Optional[builtins.bool] = None,
5431
5944
  release_failure_issue_label: typing.Optional[builtins.str] = None,