mrpj 0.2.4 → 0.2.6

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.
package/API.md CHANGED
@@ -5169,8 +5169,8 @@ const constructProjectOptions: ConstructProjectOptions = { ... }
5169
5169
  | <code><a href="#mrpj.ConstructProjectOptions.property.checkLicenses">checkLicenses</a></code> | <code>projen.javascript.LicenseCheckerOptions</code> | Configure which licenses should be deemed acceptable for use by dependencies. |
5170
5170
  | <code><a href="#mrpj.ConstructProjectOptions.property.clobber">clobber</a></code> | <code>boolean</code> | Add a `clobber` task which resets the repo to origin. |
5171
5171
  | <code><a href="#mrpj.ConstructProjectOptions.property.codeArtifactOptions">codeArtifactOptions</a></code> | <code>projen.javascript.CodeArtifactOptions</code> | Options for npm packages using AWS CodeArtifact. |
5172
- | <code><a href="#mrpj.ConstructProjectOptions.property.codeCov">codeCov</a></code> | <code>boolean</code> | Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v4 A secret is required for private repos. Configured with `@codeCovTokenSecret`. |
5173
- | <code><a href="#mrpj.ConstructProjectOptions.property.codeCovTokenSecret">codeCovTokenSecret</a></code> | <code>string</code> | Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories. |
5172
+ | <code><a href="#mrpj.ConstructProjectOptions.property.codeCov">codeCov</a></code> | <code>boolean</code> | Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v5 By default, OIDC auth is used. Alternatively a token can be provided via `codeCovTokenSecret`. |
5173
+ | <code><a href="#mrpj.ConstructProjectOptions.property.codeCovTokenSecret">codeCovTokenSecret</a></code> | <code>string</code> | Define the secret name for a specified https://codecov.io/ token. |
5174
5174
  | <code><a href="#mrpj.ConstructProjectOptions.property.commitGenerated">commitGenerated</a></code> | <code>boolean</code> | Whether to commit the managed files by default. |
5175
5175
  | <code><a href="#mrpj.ConstructProjectOptions.property.compat">compat</a></code> | <code>boolean</code> | Automatically run API compatibility test against the latest version published to npm after compilation. |
5176
5176
  | <code><a href="#mrpj.ConstructProjectOptions.property.compatIgnore">compatIgnore</a></code> | <code>string</code> | Name of the ignore file for API compatibility tests. |
@@ -5230,6 +5230,7 @@ const constructProjectOptions: ConstructProjectOptions = { ... }
5230
5230
  | <code><a href="#mrpj.ConstructProjectOptions.property.npmProvenance">npmProvenance</a></code> | <code>boolean</code> | Should provenance statements be generated when the package is published. |
5231
5231
  | <code><a href="#mrpj.ConstructProjectOptions.property.npmRegistryUrl">npmRegistryUrl</a></code> | <code>string</code> | The base URL of the npm package registry. |
5232
5232
  | <code><a href="#mrpj.ConstructProjectOptions.property.npmTokenSecret">npmTokenSecret</a></code> | <code>string</code> | GitHub secret which contains the NPM token to use when publishing packages. |
5233
+ | <code><a href="#mrpj.ConstructProjectOptions.property.npmTrustedPublishing">npmTrustedPublishing</a></code> | <code>boolean</code> | Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on npm.js to work. |
5233
5234
  | <code><a href="#mrpj.ConstructProjectOptions.property.outdir">outdir</a></code> | <code>string</code> | The root directory of the project. Relative to this directory, all files are synthesized. |
5234
5235
  | <code><a href="#mrpj.ConstructProjectOptions.property.package">package</a></code> | <code>boolean</code> | Defines a `package` task that will produce an npm tarball under the artifacts directory (e.g. `dist`). |
5235
5236
  | <code><a href="#mrpj.ConstructProjectOptions.property.packageManager">packageManager</a></code> | <code>projen.javascript.NodePackageManager</code> | The Node Package Manager used to execute scripts. |
@@ -5264,11 +5265,13 @@ const constructProjectOptions: ConstructProjectOptions = { ... }
5264
5265
  | <code><a href="#mrpj.ConstructProjectOptions.property.releasableCommits">releasableCommits</a></code> | <code>projen.ReleasableCommits</code> | Find commits that should be considered releasable Used to decide if a release is required. |
5265
5266
  | <code><a href="#mrpj.ConstructProjectOptions.property.release">release</a></code> | <code>boolean</code> | Add release management to this project. |
5266
5267
  | <code><a href="#mrpj.ConstructProjectOptions.property.releaseBranches">releaseBranches</a></code> | <code>{[ key: string ]: projen.release.BranchOptions}</code> | Defines additional release branches. |
5268
+ | <code><a href="#mrpj.ConstructProjectOptions.property.releaseEnvironment">releaseEnvironment</a></code> | <code>string</code> | The GitHub Actions environment used for the release. |
5267
5269
  | <code><a href="#mrpj.ConstructProjectOptions.property.releaseFailureIssue">releaseFailureIssue</a></code> | <code>boolean</code> | Create a github issue on every failed publishing task. |
5268
5270
  | <code><a href="#mrpj.ConstructProjectOptions.property.releaseFailureIssueLabel">releaseFailureIssueLabel</a></code> | <code>string</code> | The label to apply to issues indicating publish failures. |
5269
5271
  | <code><a href="#mrpj.ConstructProjectOptions.property.releaseTagPrefix">releaseTagPrefix</a></code> | <code>string</code> | Automatically add the given prefix to release tags. |
5270
5272
  | <code><a href="#mrpj.ConstructProjectOptions.property.releaseToNpm">releaseToNpm</a></code> | <code>boolean</code> | Automatically release to npm when new versions are introduced. |
5271
5273
  | <code><a href="#mrpj.ConstructProjectOptions.property.releaseTrigger">releaseTrigger</a></code> | <code>projen.release.ReleaseTrigger</code> | The release trigger to use. |
5274
+ | <code><a href="#mrpj.ConstructProjectOptions.property.releaseWorkflowEnv">releaseWorkflowEnv</a></code> | <code>{[ key: string ]: string}</code> | Build environment variables for release workflows. |
5272
5275
  | <code><a href="#mrpj.ConstructProjectOptions.property.releaseWorkflowName">releaseWorkflowName</a></code> | <code>string</code> | The name of the default release workflow. |
5273
5276
  | <code><a href="#mrpj.ConstructProjectOptions.property.releaseWorkflowSetupSteps">releaseWorkflowSetupSteps</a></code> | <code>projen.github.workflows.JobStep[]</code> | A set of workflow steps to execute in order to setup the workflow container. |
5274
5277
  | <code><a href="#mrpj.ConstructProjectOptions.property.renovatebot">renovatebot</a></code> | <code>boolean</code> | Use renovatebot to handle dependency upgrades. |
@@ -5806,7 +5809,7 @@ public readonly codeCov: boolean;
5806
5809
  - *Type:* boolean
5807
5810
  - *Default:* false
5808
5811
 
5809
- Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v4 A secret is required for private repos. Configured with `@codeCovTokenSecret`.
5812
+ Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v5 By default, OIDC auth is used. Alternatively a token can be provided via `codeCovTokenSecret`.
5810
5813
 
5811
5814
  ---
5812
5815
 
@@ -5817,9 +5820,9 @@ public readonly codeCovTokenSecret: string;
5817
5820
  ```
5818
5821
 
5819
5822
  - *Type:* string
5820
- - *Default:* if this option is not specified, only public repositories are supported
5823
+ - *Default:* OIDC auth is used
5821
5824
 
5822
- Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories.
5825
+ Define the secret name for a specified https://codecov.io/ token.
5823
5826
 
5824
5827
  ---
5825
5828
 
@@ -6156,7 +6159,7 @@ public readonly eslint: boolean;
6156
6159
  ```
6157
6160
 
6158
6161
  - *Type:* boolean
6159
- - *Default:* true
6162
+ - *Default:* true, unless biome is enabled
6160
6163
 
6161
6164
  Setup eslint.
6162
6165
 
@@ -6352,7 +6355,7 @@ public readonly jsiiVersion: string;
6352
6355
  ```
6353
6356
 
6354
6357
  - *Type:* string
6355
- - *Default:* "~5.6.0"
6358
+ - *Default:* "~5.8.0"
6356
6359
 
6357
6360
  Version of the jsii compiler to use.
6358
6361
 
@@ -6682,6 +6685,19 @@ GitHub secret which contains the NPM token to use when publishing packages.
6682
6685
 
6683
6686
  ---
6684
6687
 
6688
+ ##### `npmTrustedPublishing`<sup>Optional</sup> <a name="npmTrustedPublishing" id="mrpj.ConstructProjectOptions.property.npmTrustedPublishing"></a>
6689
+
6690
+ ```typescript
6691
+ public readonly npmTrustedPublishing: boolean;
6692
+ ```
6693
+
6694
+ - *Type:* boolean
6695
+ - *Default:* false
6696
+
6697
+ Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on npm.js to work.
6698
+
6699
+ ---
6700
+
6685
6701
  ##### `outdir`<sup>Optional</sup> <a name="outdir" id="mrpj.ConstructProjectOptions.property.outdir"></a>
6686
6702
 
6687
6703
  ```typescript
@@ -7151,6 +7167,25 @@ be provided for the default branch.
7151
7167
 
7152
7168
  ---
7153
7169
 
7170
+ ##### `releaseEnvironment`<sup>Optional</sup> <a name="releaseEnvironment" id="mrpj.ConstructProjectOptions.property.releaseEnvironment"></a>
7171
+
7172
+ ```typescript
7173
+ public readonly releaseEnvironment: string;
7174
+ ```
7175
+
7176
+ - *Type:* string
7177
+ - *Default:* no environment used, unless set at the artifact level
7178
+
7179
+ The GitHub Actions environment used for the release.
7180
+
7181
+ This can be used to add an explicit approval step to the release
7182
+ or limit who can initiate a release through environment protection rules.
7183
+
7184
+ When multiple artifacts are released, the environment can be overwritten
7185
+ on a per artifact basis.
7186
+
7187
+ ---
7188
+
7154
7189
  ##### `releaseFailureIssue`<sup>Optional</sup> <a name="releaseFailureIssue" id="mrpj.ConstructProjectOptions.property.releaseFailureIssue"></a>
7155
7190
 
7156
7191
  ```typescript
@@ -7224,6 +7259,19 @@ The release trigger to use.
7224
7259
 
7225
7260
  ---
7226
7261
 
7262
+ ##### `releaseWorkflowEnv`<sup>Optional</sup> <a name="releaseWorkflowEnv" id="mrpj.ConstructProjectOptions.property.releaseWorkflowEnv"></a>
7263
+
7264
+ ```typescript
7265
+ public readonly releaseWorkflowEnv: {[ key: string ]: string};
7266
+ ```
7267
+
7268
+ - *Type:* {[ key: string ]: string}
7269
+ - *Default:* {}
7270
+
7271
+ Build environment variables for release workflows.
7272
+
7273
+ ---
7274
+
7227
7275
  ##### `releaseWorkflowName`<sup>Optional</sup> <a name="releaseWorkflowName" id="mrpj.ConstructProjectOptions.property.releaseWorkflowName"></a>
7228
7276
 
7229
7277
  ```typescript
@@ -7542,7 +7590,7 @@ public readonly workflowGitIdentity: GitIdentity;
7542
7590
  ```
7543
7591
 
7544
7592
  - *Type:* projen.github.GitIdentity
7545
- - *Default:* GitHub Actions
7593
+ - *Default:* default GitHub Actions user
7546
7594
 
7547
7595
  The git identity to use in workflows.
7548
7596
 
@@ -8023,6 +8071,7 @@ const projenProjectOptions: ProjenProjectOptions = { ... }
8023
8071
  | <code><a href="#mrpj.ProjenProjectOptions.property.autoApproveUpgrades">autoApproveUpgrades</a></code> | <code>boolean</code> | Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). |
8024
8072
  | <code><a href="#mrpj.ProjenProjectOptions.property.autoDetectBin">autoDetectBin</a></code> | <code>boolean</code> | Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section. |
8025
8073
  | <code><a href="#mrpj.ProjenProjectOptions.property.automationAppName">automationAppName</a></code> | <code>string</code> | Use this app for workflow automation. |
8074
+ | <code><a href="#mrpj.ProjenProjectOptions.property.automationEnvironment">automationEnvironment</a></code> | <code>string</code> | Protect any automation with this environment. |
8026
8075
  | <code><a href="#mrpj.ProjenProjectOptions.property.autoMerge">autoMerge</a></code> | <code>boolean</code> | Enable automatic merging on GitHub. |
8027
8076
  | <code><a href="#mrpj.ProjenProjectOptions.property.autoMergeOptions">autoMergeOptions</a></code> | <code>projen.github.AutoMergeOptions</code> | Configure options for automatic merging on GitHub. |
8028
8077
  | <code><a href="#mrpj.ProjenProjectOptions.property.bin">bin</a></code> | <code>{[ key: string ]: string}</code> | Binary programs vended with your module. |
@@ -8039,8 +8088,8 @@ const projenProjectOptions: ProjenProjectOptions = { ... }
8039
8088
  | <code><a href="#mrpj.ProjenProjectOptions.property.checkLicenses">checkLicenses</a></code> | <code>projen.javascript.LicenseCheckerOptions</code> | Configure which licenses should be deemed acceptable for use by dependencies. |
8040
8089
  | <code><a href="#mrpj.ProjenProjectOptions.property.clobber">clobber</a></code> | <code>boolean</code> | Add a `clobber` task which resets the repo to origin. |
8041
8090
  | <code><a href="#mrpj.ProjenProjectOptions.property.codeArtifactOptions">codeArtifactOptions</a></code> | <code>projen.javascript.CodeArtifactOptions</code> | Options for npm packages using AWS CodeArtifact. |
8042
- | <code><a href="#mrpj.ProjenProjectOptions.property.codeCov">codeCov</a></code> | <code>boolean</code> | Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v4 A secret is required for private repos. Configured with `@codeCovTokenSecret`. |
8043
- | <code><a href="#mrpj.ProjenProjectOptions.property.codeCovTokenSecret">codeCovTokenSecret</a></code> | <code>string</code> | Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories. |
8091
+ | <code><a href="#mrpj.ProjenProjectOptions.property.codeCov">codeCov</a></code> | <code>boolean</code> | Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v5 By default, OIDC auth is used. Alternatively a token can be provided via `codeCovTokenSecret`. |
8092
+ | <code><a href="#mrpj.ProjenProjectOptions.property.codeCovTokenSecret">codeCovTokenSecret</a></code> | <code>string</code> | Define the secret name for a specified https://codecov.io/ token. |
8044
8093
  | <code><a href="#mrpj.ProjenProjectOptions.property.commitGenerated">commitGenerated</a></code> | <code>boolean</code> | Whether to commit the managed files by default. |
8045
8094
  | <code><a href="#mrpj.ProjenProjectOptions.property.compat">compat</a></code> | <code>boolean</code> | Automatically run API compatibility test against the latest version published to npm after compilation. |
8046
8095
  | <code><a href="#mrpj.ProjenProjectOptions.property.compatIgnore">compatIgnore</a></code> | <code>string</code> | Name of the ignore file for API compatibility tests. |
@@ -8095,6 +8144,7 @@ const projenProjectOptions: ProjenProjectOptions = { ... }
8095
8144
  | <code><a href="#mrpj.ProjenProjectOptions.property.npmProvenance">npmProvenance</a></code> | <code>boolean</code> | Should provenance statements be generated when the package is published. |
8096
8145
  | <code><a href="#mrpj.ProjenProjectOptions.property.npmRegistryUrl">npmRegistryUrl</a></code> | <code>string</code> | The base URL of the npm package registry. |
8097
8146
  | <code><a href="#mrpj.ProjenProjectOptions.property.npmTokenSecret">npmTokenSecret</a></code> | <code>string</code> | GitHub secret which contains the NPM token to use when publishing packages. |
8147
+ | <code><a href="#mrpj.ProjenProjectOptions.property.npmTrustedPublishing">npmTrustedPublishing</a></code> | <code>boolean</code> | Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on npm.js to work. |
8098
8148
  | <code><a href="#mrpj.ProjenProjectOptions.property.outdir">outdir</a></code> | <code>string</code> | The root directory of the project. Relative to this directory, all files are synthesized. |
8099
8149
  | <code><a href="#mrpj.ProjenProjectOptions.property.ownerCanSelfApprovePRs">ownerCanSelfApprovePRs</a></code> | <code>boolean</code> | Allow the repo owner to self approve PRs by putting a label on it. |
8100
8150
  | <code><a href="#mrpj.ProjenProjectOptions.property.package">package</a></code> | <code>boolean</code> | Defines a `package` task that will produce an npm tarball under the artifacts directory (e.g. `dist`). |
@@ -8129,11 +8179,13 @@ const projenProjectOptions: ProjenProjectOptions = { ... }
8129
8179
  | <code><a href="#mrpj.ProjenProjectOptions.property.releasableCommitTypes">releasableCommitTypes</a></code> | <code>string[]</code> | Which conventional commit types should be released. |
8130
8180
  | <code><a href="#mrpj.ProjenProjectOptions.property.release">release</a></code> | <code>boolean</code> | Add release management to this project. |
8131
8181
  | <code><a href="#mrpj.ProjenProjectOptions.property.releaseBranches">releaseBranches</a></code> | <code>{[ key: string ]: projen.release.BranchOptions}</code> | Defines additional release branches. |
8182
+ | <code><a href="#mrpj.ProjenProjectOptions.property.releaseEnvironment">releaseEnvironment</a></code> | <code>string</code> | The GitHub Actions environment used for the release. |
8132
8183
  | <code><a href="#mrpj.ProjenProjectOptions.property.releaseFailureIssue">releaseFailureIssue</a></code> | <code>boolean</code> | Create a github issue on every failed publishing task. |
8133
8184
  | <code><a href="#mrpj.ProjenProjectOptions.property.releaseFailureIssueLabel">releaseFailureIssueLabel</a></code> | <code>string</code> | The label to apply to issues indicating publish failures. |
8134
8185
  | <code><a href="#mrpj.ProjenProjectOptions.property.releaseTagPrefix">releaseTagPrefix</a></code> | <code>string</code> | Automatically add the given prefix to release tags. |
8135
8186
  | <code><a href="#mrpj.ProjenProjectOptions.property.releaseToNpm">releaseToNpm</a></code> | <code>boolean</code> | Automatically release to npm when new versions are introduced. |
8136
8187
  | <code><a href="#mrpj.ProjenProjectOptions.property.releaseTrigger">releaseTrigger</a></code> | <code>projen.release.ReleaseTrigger</code> | The release trigger to use. |
8188
+ | <code><a href="#mrpj.ProjenProjectOptions.property.releaseWorkflowEnv">releaseWorkflowEnv</a></code> | <code>{[ key: string ]: string}</code> | Build environment variables for release workflows. |
8137
8189
  | <code><a href="#mrpj.ProjenProjectOptions.property.releaseWorkflowName">releaseWorkflowName</a></code> | <code>string</code> | The name of the default release workflow. |
8138
8190
  | <code><a href="#mrpj.ProjenProjectOptions.property.releaseWorkflowSetupSteps">releaseWorkflowSetupSteps</a></code> | <code>projen.github.workflows.JobStep[]</code> | A set of workflow steps to execute in order to setup the workflow container. |
8139
8191
  | <code><a href="#mrpj.ProjenProjectOptions.property.renovatebot">renovatebot</a></code> | <code>boolean</code> | Use renovatebot to handle dependency upgrades. |
@@ -8315,7 +8367,7 @@ public readonly automationAppName: string;
8315
8367
  ```
8316
8368
 
8317
8369
  - *Type:* string
8318
- - *Default:* tokens will be used
8370
+ - *Default:* "automation"
8319
8371
 
8320
8372
  Use this app for workflow automation.
8321
8373
 
@@ -8323,6 +8375,21 @@ Remember to install the app and to configure credentials.
8323
8375
 
8324
8376
  ---
8325
8377
 
8378
+ ##### `automationEnvironment`<sup>Optional</sup> <a name="automationEnvironment" id="mrpj.ProjenProjectOptions.property.automationEnvironment"></a>
8379
+
8380
+ ```typescript
8381
+ public readonly automationEnvironment: string;
8382
+ ```
8383
+
8384
+ - *Type:* string
8385
+ - *Default:* none
8386
+
8387
+ Protect any automation with this environment.
8388
+
8389
+ You will need to set the environment up in GitHub. Credentials can only be used within this environment.
8390
+
8391
+ ---
8392
+
8326
8393
  ##### `autoMerge`<sup>Optional</sup> <a name="autoMerge" id="mrpj.ProjenProjectOptions.property.autoMerge"></a>
8327
8394
 
8328
8395
  ```typescript
@@ -8561,7 +8628,7 @@ public readonly codeCov: boolean;
8561
8628
  - *Type:* boolean
8562
8629
  - *Default:* false
8563
8630
 
8564
- Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v4 A secret is required for private repos. Configured with `@codeCovTokenSecret`.
8631
+ Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v5 By default, OIDC auth is used. Alternatively a token can be provided via `codeCovTokenSecret`.
8565
8632
 
8566
8633
  ---
8567
8634
 
@@ -8572,9 +8639,9 @@ public readonly codeCovTokenSecret: string;
8572
8639
  ```
8573
8640
 
8574
8641
  - *Type:* string
8575
- - *Default:* if this option is not specified, only public repositories are supported
8642
+ - *Default:* OIDC auth is used
8576
8643
 
8577
- Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories.
8644
+ Define the secret name for a specified https://codecov.io/ token.
8578
8645
 
8579
8646
  ---
8580
8647
 
@@ -8898,7 +8965,7 @@ public readonly eslint: boolean;
8898
8965
  ```
8899
8966
 
8900
8967
  - *Type:* boolean
8901
- - *Default:* true
8968
+ - *Default:* true, unless biome is enabled
8902
8969
 
8903
8970
  Setup eslint.
8904
8971
 
@@ -9366,6 +9433,19 @@ GitHub secret which contains the NPM token to use when publishing packages.
9366
9433
 
9367
9434
  ---
9368
9435
 
9436
+ ##### `npmTrustedPublishing`<sup>Optional</sup> <a name="npmTrustedPublishing" id="mrpj.ProjenProjectOptions.property.npmTrustedPublishing"></a>
9437
+
9438
+ ```typescript
9439
+ public readonly npmTrustedPublishing: boolean;
9440
+ ```
9441
+
9442
+ - *Type:* boolean
9443
+ - *Default:* false
9444
+
9445
+ Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on npm.js to work.
9446
+
9447
+ ---
9448
+
9369
9449
  ##### `outdir`<sup>Optional</sup> <a name="outdir" id="mrpj.ProjenProjectOptions.property.outdir"></a>
9370
9450
 
9371
9451
  ```typescript
@@ -9835,6 +9915,25 @@ be provided for the default branch.
9835
9915
 
9836
9916
  ---
9837
9917
 
9918
+ ##### `releaseEnvironment`<sup>Optional</sup> <a name="releaseEnvironment" id="mrpj.ProjenProjectOptions.property.releaseEnvironment"></a>
9919
+
9920
+ ```typescript
9921
+ public readonly releaseEnvironment: string;
9922
+ ```
9923
+
9924
+ - *Type:* string
9925
+ - *Default:* no environment used, unless set at the artifact level
9926
+
9927
+ The GitHub Actions environment used for the release.
9928
+
9929
+ This can be used to add an explicit approval step to the release
9930
+ or limit who can initiate a release through environment protection rules.
9931
+
9932
+ When multiple artifacts are released, the environment can be overwritten
9933
+ on a per artifact basis.
9934
+
9935
+ ---
9936
+
9838
9937
  ##### `releaseFailureIssue`<sup>Optional</sup> <a name="releaseFailureIssue" id="mrpj.ProjenProjectOptions.property.releaseFailureIssue"></a>
9839
9938
 
9840
9939
  ```typescript
@@ -9908,6 +10007,19 @@ The release trigger to use.
9908
10007
 
9909
10008
  ---
9910
10009
 
10010
+ ##### `releaseWorkflowEnv`<sup>Optional</sup> <a name="releaseWorkflowEnv" id="mrpj.ProjenProjectOptions.property.releaseWorkflowEnv"></a>
10011
+
10012
+ ```typescript
10013
+ public readonly releaseWorkflowEnv: {[ key: string ]: string};
10014
+ ```
10015
+
10016
+ - *Type:* {[ key: string ]: string}
10017
+ - *Default:* {}
10018
+
10019
+ Build environment variables for release workflows.
10020
+
10021
+ ---
10022
+
9911
10023
  ##### `releaseWorkflowName`<sup>Optional</sup> <a name="releaseWorkflowName" id="mrpj.ProjenProjectOptions.property.releaseWorkflowName"></a>
9912
10024
 
9913
10025
  ```typescript
@@ -10223,7 +10335,7 @@ public readonly workflowGitIdentity: GitIdentity;
10223
10335
  ```
10224
10336
 
10225
10337
  - *Type:* projen.github.GitIdentity
10226
- - *Default:* GitHub Actions
10338
+ - *Default:* default GitHub Actions user
10227
10339
 
10228
10340
  The git identity to use in workflows.
10229
10341
 
@@ -10295,6 +10407,39 @@ Options for Yarn Berry.
10295
10407
 
10296
10408
  ---
10297
10409
 
10410
+ ### SelfMutationOnForksOptions <a name="SelfMutationOnForksOptions" id="mrpj.components.SelfMutationOnForksOptions"></a>
10411
+
10412
+ Options for configuring self-mutation behavior on forks.
10413
+
10414
+ #### Initializer <a name="Initializer" id="mrpj.components.SelfMutationOnForksOptions.Initializer"></a>
10415
+
10416
+ ```typescript
10417
+ import { components } from 'mrpj'
10418
+
10419
+ const selfMutationOnForksOptions: components.SelfMutationOnForksOptions = { ... }
10420
+ ```
10421
+
10422
+ #### Properties <a name="Properties" id="Properties"></a>
10423
+
10424
+ | **Name** | **Type** | **Description** |
10425
+ | --- | --- | --- |
10426
+ | <code><a href="#mrpj.components.SelfMutationOnForksOptions.property.environment">environment</a></code> | <code>string</code> | Environment name to use for the workflow. |
10427
+
10428
+ ---
10429
+
10430
+ ##### `environment`<sup>Optional</sup> <a name="environment" id="mrpj.components.SelfMutationOnForksOptions.property.environment"></a>
10431
+
10432
+ ```typescript
10433
+ public readonly environment: string;
10434
+ ```
10435
+
10436
+ - *Type:* string
10437
+ - *Default:* no environment specified
10438
+
10439
+ Environment name to use for the workflow.
10440
+
10441
+ ---
10442
+
10298
10443
  ### SizeOptions <a name="SizeOptions" id="mrpj.logo.SizeOptions"></a>
10299
10444
 
10300
10445
  #### Initializer <a name="Initializer" id="mrpj.logo.SizeOptions.Initializer"></a>
@@ -10514,6 +10659,7 @@ const typeScriptProjectOptions: TypeScriptProjectOptions = { ... }
10514
10659
  | <code><a href="#mrpj.TypeScriptProjectOptions.property.autoApproveUpgrades">autoApproveUpgrades</a></code> | <code>boolean</code> | Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). |
10515
10660
  | <code><a href="#mrpj.TypeScriptProjectOptions.property.autoDetectBin">autoDetectBin</a></code> | <code>boolean</code> | Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section. |
10516
10661
  | <code><a href="#mrpj.TypeScriptProjectOptions.property.automationAppName">automationAppName</a></code> | <code>string</code> | Use this app for workflow automation. |
10662
+ | <code><a href="#mrpj.TypeScriptProjectOptions.property.automationEnvironment">automationEnvironment</a></code> | <code>string</code> | Protect any automation with this environment. |
10517
10663
  | <code><a href="#mrpj.TypeScriptProjectOptions.property.autoMerge">autoMerge</a></code> | <code>boolean</code> | Enable automatic merging on GitHub. |
10518
10664
  | <code><a href="#mrpj.TypeScriptProjectOptions.property.autoMergeOptions">autoMergeOptions</a></code> | <code>projen.github.AutoMergeOptions</code> | Configure options for automatic merging on GitHub. |
10519
10665
  | <code><a href="#mrpj.TypeScriptProjectOptions.property.bin">bin</a></code> | <code>{[ key: string ]: string}</code> | Binary programs vended with your module. |
@@ -10530,8 +10676,8 @@ const typeScriptProjectOptions: TypeScriptProjectOptions = { ... }
10530
10676
  | <code><a href="#mrpj.TypeScriptProjectOptions.property.checkLicenses">checkLicenses</a></code> | <code>projen.javascript.LicenseCheckerOptions</code> | Configure which licenses should be deemed acceptable for use by dependencies. |
10531
10677
  | <code><a href="#mrpj.TypeScriptProjectOptions.property.clobber">clobber</a></code> | <code>boolean</code> | Add a `clobber` task which resets the repo to origin. |
10532
10678
  | <code><a href="#mrpj.TypeScriptProjectOptions.property.codeArtifactOptions">codeArtifactOptions</a></code> | <code>projen.javascript.CodeArtifactOptions</code> | Options for npm packages using AWS CodeArtifact. |
10533
- | <code><a href="#mrpj.TypeScriptProjectOptions.property.codeCov">codeCov</a></code> | <code>boolean</code> | Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v4 A secret is required for private repos. Configured with `@codeCovTokenSecret`. |
10534
- | <code><a href="#mrpj.TypeScriptProjectOptions.property.codeCovTokenSecret">codeCovTokenSecret</a></code> | <code>string</code> | Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories. |
10679
+ | <code><a href="#mrpj.TypeScriptProjectOptions.property.codeCov">codeCov</a></code> | <code>boolean</code> | Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v5 By default, OIDC auth is used. Alternatively a token can be provided via `codeCovTokenSecret`. |
10680
+ | <code><a href="#mrpj.TypeScriptProjectOptions.property.codeCovTokenSecret">codeCovTokenSecret</a></code> | <code>string</code> | Define the secret name for a specified https://codecov.io/ token. |
10535
10681
  | <code><a href="#mrpj.TypeScriptProjectOptions.property.commitGenerated">commitGenerated</a></code> | <code>boolean</code> | Whether to commit the managed files by default. |
10536
10682
  | <code><a href="#mrpj.TypeScriptProjectOptions.property.copyrightOwner">copyrightOwner</a></code> | <code>string</code> | License copyright owner. |
10537
10683
  | <code><a href="#mrpj.TypeScriptProjectOptions.property.copyrightPeriod">copyrightPeriod</a></code> | <code>string</code> | The copyright years to put in the LICENSE file. |
@@ -10581,6 +10727,7 @@ const typeScriptProjectOptions: TypeScriptProjectOptions = { ... }
10581
10727
  | <code><a href="#mrpj.TypeScriptProjectOptions.property.npmProvenance">npmProvenance</a></code> | <code>boolean</code> | Should provenance statements be generated when the package is published. |
10582
10728
  | <code><a href="#mrpj.TypeScriptProjectOptions.property.npmRegistryUrl">npmRegistryUrl</a></code> | <code>string</code> | The base URL of the npm package registry. |
10583
10729
  | <code><a href="#mrpj.TypeScriptProjectOptions.property.npmTokenSecret">npmTokenSecret</a></code> | <code>string</code> | GitHub secret which contains the NPM token to use when publishing packages. |
10730
+ | <code><a href="#mrpj.TypeScriptProjectOptions.property.npmTrustedPublishing">npmTrustedPublishing</a></code> | <code>boolean</code> | Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on npm.js to work. |
10584
10731
  | <code><a href="#mrpj.TypeScriptProjectOptions.property.outdir">outdir</a></code> | <code>string</code> | The root directory of the project. Relative to this directory, all files are synthesized. |
10585
10732
  | <code><a href="#mrpj.TypeScriptProjectOptions.property.ownerCanSelfApprovePRs">ownerCanSelfApprovePRs</a></code> | <code>boolean</code> | Allow the repo owner to self approve PRs by putting a label on it. |
10586
10733
  | <code><a href="#mrpj.TypeScriptProjectOptions.property.package">package</a></code> | <code>boolean</code> | Defines a `package` task that will produce an npm tarball under the artifacts directory (e.g. `dist`). |
@@ -10611,11 +10758,13 @@ const typeScriptProjectOptions: TypeScriptProjectOptions = { ... }
10611
10758
  | <code><a href="#mrpj.TypeScriptProjectOptions.property.releasableCommitTypes">releasableCommitTypes</a></code> | <code>string[]</code> | Which conventional commit types should be released. |
10612
10759
  | <code><a href="#mrpj.TypeScriptProjectOptions.property.release">release</a></code> | <code>boolean</code> | Add release management to this project. |
10613
10760
  | <code><a href="#mrpj.TypeScriptProjectOptions.property.releaseBranches">releaseBranches</a></code> | <code>{[ key: string ]: projen.release.BranchOptions}</code> | Defines additional release branches. |
10761
+ | <code><a href="#mrpj.TypeScriptProjectOptions.property.releaseEnvironment">releaseEnvironment</a></code> | <code>string</code> | The GitHub Actions environment used for the release. |
10614
10762
  | <code><a href="#mrpj.TypeScriptProjectOptions.property.releaseFailureIssue">releaseFailureIssue</a></code> | <code>boolean</code> | Create a github issue on every failed publishing task. |
10615
10763
  | <code><a href="#mrpj.TypeScriptProjectOptions.property.releaseFailureIssueLabel">releaseFailureIssueLabel</a></code> | <code>string</code> | The label to apply to issues indicating publish failures. |
10616
10764
  | <code><a href="#mrpj.TypeScriptProjectOptions.property.releaseTagPrefix">releaseTagPrefix</a></code> | <code>string</code> | Automatically add the given prefix to release tags. |
10617
10765
  | <code><a href="#mrpj.TypeScriptProjectOptions.property.releaseToNpm">releaseToNpm</a></code> | <code>boolean</code> | Automatically release to npm when new versions are introduced. |
10618
10766
  | <code><a href="#mrpj.TypeScriptProjectOptions.property.releaseTrigger">releaseTrigger</a></code> | <code>projen.release.ReleaseTrigger</code> | The release trigger to use. |
10767
+ | <code><a href="#mrpj.TypeScriptProjectOptions.property.releaseWorkflowEnv">releaseWorkflowEnv</a></code> | <code>{[ key: string ]: string}</code> | Build environment variables for release workflows. |
10619
10768
  | <code><a href="#mrpj.TypeScriptProjectOptions.property.releaseWorkflowName">releaseWorkflowName</a></code> | <code>string</code> | The name of the default release workflow. |
10620
10769
  | <code><a href="#mrpj.TypeScriptProjectOptions.property.releaseWorkflowSetupSteps">releaseWorkflowSetupSteps</a></code> | <code>projen.github.workflows.JobStep[]</code> | A set of workflow steps to execute in order to setup the workflow container. |
10621
10770
  | <code><a href="#mrpj.TypeScriptProjectOptions.property.renovatebot">renovatebot</a></code> | <code>boolean</code> | Use renovatebot to handle dependency upgrades. |
@@ -10796,7 +10945,7 @@ public readonly automationAppName: string;
10796
10945
  ```
10797
10946
 
10798
10947
  - *Type:* string
10799
- - *Default:* tokens will be used
10948
+ - *Default:* "automation"
10800
10949
 
10801
10950
  Use this app for workflow automation.
10802
10951
 
@@ -10804,6 +10953,21 @@ Remember to install the app and to configure credentials.
10804
10953
 
10805
10954
  ---
10806
10955
 
10956
+ ##### `automationEnvironment`<sup>Optional</sup> <a name="automationEnvironment" id="mrpj.TypeScriptProjectOptions.property.automationEnvironment"></a>
10957
+
10958
+ ```typescript
10959
+ public readonly automationEnvironment: string;
10960
+ ```
10961
+
10962
+ - *Type:* string
10963
+ - *Default:* none
10964
+
10965
+ Protect any automation with this environment.
10966
+
10967
+ You will need to set the environment up in GitHub. Credentials can only be used within this environment.
10968
+
10969
+ ---
10970
+
10807
10971
  ##### `autoMerge`<sup>Optional</sup> <a name="autoMerge" id="mrpj.TypeScriptProjectOptions.property.autoMerge"></a>
10808
10972
 
10809
10973
  ```typescript
@@ -11042,7 +11206,7 @@ public readonly codeCov: boolean;
11042
11206
  - *Type:* boolean
11043
11207
  - *Default:* false
11044
11208
 
11045
- Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v4 A secret is required for private repos. Configured with `@codeCovTokenSecret`.
11209
+ Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v5 By default, OIDC auth is used. Alternatively a token can be provided via `codeCovTokenSecret`.
11046
11210
 
11047
11211
  ---
11048
11212
 
@@ -11053,9 +11217,9 @@ public readonly codeCovTokenSecret: string;
11053
11217
  ```
11054
11218
 
11055
11219
  - *Type:* string
11056
- - *Default:* if this option is not specified, only public repositories are supported
11220
+ - *Default:* OIDC auth is used
11057
11221
 
11058
- Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories.
11222
+ Define the secret name for a specified https://codecov.io/ token.
11059
11223
 
11060
11224
  ---
11061
11225
 
@@ -11324,7 +11488,7 @@ public readonly eslint: boolean;
11324
11488
  ```
11325
11489
 
11326
11490
  - *Type:* boolean
11327
- - *Default:* true
11491
+ - *Default:* true, unless biome is enabled
11328
11492
 
11329
11493
  Setup eslint.
11330
11494
 
@@ -11776,6 +11940,19 @@ GitHub secret which contains the NPM token to use when publishing packages.
11776
11940
 
11777
11941
  ---
11778
11942
 
11943
+ ##### `npmTrustedPublishing`<sup>Optional</sup> <a name="npmTrustedPublishing" id="mrpj.TypeScriptProjectOptions.property.npmTrustedPublishing"></a>
11944
+
11945
+ ```typescript
11946
+ public readonly npmTrustedPublishing: boolean;
11947
+ ```
11948
+
11949
+ - *Type:* boolean
11950
+ - *Default:* false
11951
+
11952
+ Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on npm.js to work.
11953
+
11954
+ ---
11955
+
11779
11956
  ##### `outdir`<sup>Optional</sup> <a name="outdir" id="mrpj.TypeScriptProjectOptions.property.outdir"></a>
11780
11957
 
11781
11958
  ```typescript
@@ -12193,6 +12370,25 @@ be provided for the default branch.
12193
12370
 
12194
12371
  ---
12195
12372
 
12373
+ ##### `releaseEnvironment`<sup>Optional</sup> <a name="releaseEnvironment" id="mrpj.TypeScriptProjectOptions.property.releaseEnvironment"></a>
12374
+
12375
+ ```typescript
12376
+ public readonly releaseEnvironment: string;
12377
+ ```
12378
+
12379
+ - *Type:* string
12380
+ - *Default:* no environment used, unless set at the artifact level
12381
+
12382
+ The GitHub Actions environment used for the release.
12383
+
12384
+ This can be used to add an explicit approval step to the release
12385
+ or limit who can initiate a release through environment protection rules.
12386
+
12387
+ When multiple artifacts are released, the environment can be overwritten
12388
+ on a per artifact basis.
12389
+
12390
+ ---
12391
+
12196
12392
  ##### `releaseFailureIssue`<sup>Optional</sup> <a name="releaseFailureIssue" id="mrpj.TypeScriptProjectOptions.property.releaseFailureIssue"></a>
12197
12393
 
12198
12394
  ```typescript
@@ -12266,6 +12462,19 @@ The release trigger to use.
12266
12462
 
12267
12463
  ---
12268
12464
 
12465
+ ##### `releaseWorkflowEnv`<sup>Optional</sup> <a name="releaseWorkflowEnv" id="mrpj.TypeScriptProjectOptions.property.releaseWorkflowEnv"></a>
12466
+
12467
+ ```typescript
12468
+ public readonly releaseWorkflowEnv: {[ key: string ]: string};
12469
+ ```
12470
+
12471
+ - *Type:* {[ key: string ]: string}
12472
+ - *Default:* {}
12473
+
12474
+ Build environment variables for release workflows.
12475
+
12476
+ ---
12477
+
12269
12478
  ##### `releaseWorkflowName`<sup>Optional</sup> <a name="releaseWorkflowName" id="mrpj.TypeScriptProjectOptions.property.releaseWorkflowName"></a>
12270
12479
 
12271
12480
  ```typescript
@@ -12586,7 +12795,7 @@ public readonly workflowGitIdentity: GitIdentity;
12586
12795
  ```
12587
12796
 
12588
12797
  - *Type:* projen.github.GitIdentity
12589
- - *Default:* GitHub Actions
12798
+ - *Default:* default GitHub Actions user
12590
12799
 
12591
12800
  The git identity to use in workflows.
12592
12801
 
@@ -12983,6 +13192,53 @@ Scale the logo by a factor.
12983
13192
  ---
12984
13193
 
12985
13194
 
13195
+ ### SelfMutationOnForks <a name="SelfMutationOnForks" id="mrpj.components.SelfMutationOnForks"></a>
13196
+
13197
+ Configures GitHub workflows to enable self-mutation on fork pull requests.
13198
+
13199
+ This class sets up a workflow that will automatically apply projen-generated changes
13200
+ when a build fails due to outdated generated files. The workflow:
13201
+
13202
+ 1. Runs when the build workflow fails on a PR
13203
+ 2. Downloads any patch file generated during the failed build
13204
+ 3. Authenticates using GitHub App credentials
13205
+ 4. Checks out the PR branch
13206
+ 5. Applies the patch if it exists and can be applied cleanly
13207
+ 6. Commits and pushes the changes back to the PR
13208
+
13209
+ This enables automated fixes for common projen-related issues on fork PRs.
13210
+
13211
+ #### Initializers <a name="Initializers" id="mrpj.components.SelfMutationOnForks.Initializer"></a>
13212
+
13213
+ ```typescript
13214
+ import { components } from 'mrpj'
13215
+
13216
+ new components.SelfMutationOnForks(project: Project, options?: SelfMutationOnForksOptions)
13217
+ ```
13218
+
13219
+ | **Name** | **Type** | **Description** |
13220
+ | --- | --- | --- |
13221
+ | <code><a href="#mrpj.components.SelfMutationOnForks.Initializer.parameter.project">project</a></code> | <code>projen.Project</code> | *No description.* |
13222
+ | <code><a href="#mrpj.components.SelfMutationOnForks.Initializer.parameter.options">options</a></code> | <code>mrpj.components.SelfMutationOnForksOptions</code> | *No description.* |
13223
+
13224
+ ---
13225
+
13226
+ ##### `project`<sup>Required</sup> <a name="project" id="mrpj.components.SelfMutationOnForks.Initializer.parameter.project"></a>
13227
+
13228
+ - *Type:* projen.Project
13229
+
13230
+ ---
13231
+
13232
+ ##### `options`<sup>Optional</sup> <a name="options" id="mrpj.components.SelfMutationOnForks.Initializer.parameter.options"></a>
13233
+
13234
+ - *Type:* mrpj.components.SelfMutationOnForksOptions
13235
+
13236
+ ---
13237
+
13238
+
13239
+
13240
+
13241
+
12986
13242
  ## Protocols <a name="Protocols" id="Protocols"></a>
12987
13243
 
12988
13244
  ### ILogo <a name="ILogo" id="mrpj.logo.ILogo"></a>
@@ -0,0 +1,29 @@
1
+ import type { Project } from 'projen';
2
+ /**
3
+ * Options for configuring self-mutation behavior on forks
4
+ */
5
+ export interface SelfMutationOnForksOptions {
6
+ /**
7
+ * Environment name to use for the workflow
8
+ * @default - no environment specified
9
+ */
10
+ readonly environment?: string;
11
+ }
12
+ /**
13
+ * Configures GitHub workflows to enable self-mutation on fork pull requests.
14
+ *
15
+ * This class sets up a workflow that will automatically apply projen-generated changes
16
+ * when a build fails due to outdated generated files. The workflow:
17
+ *
18
+ * 1. Runs when the build workflow fails on a PR
19
+ * 2. Downloads any patch file generated during the failed build
20
+ * 3. Authenticates using GitHub App credentials
21
+ * 4. Checks out the PR branch
22
+ * 5. Applies the patch if it exists and can be applied cleanly
23
+ * 6. Commits and pushes the changes back to the PR
24
+ *
25
+ * This enables automated fixes for common projen-related issues on fork PRs.
26
+ */
27
+ export declare class SelfMutationOnForks {
28
+ constructor(project: Project, options?: SelfMutationOnForksOptions);
29
+ }