@xpertss/projen-types 0.0.19 → 0.0.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/.jsii +193 -46
  2. package/API.md +302 -10
  3. package/README.md +10 -3
  4. package/lib/actions/action-build-workflow.js +1 -1
  5. package/lib/actions/action-dogfood-workflow.d.ts +12 -2
  6. package/lib/actions/action-dogfood-workflow.js +3 -3
  7. package/lib/actions/action-sonar-workflow.d.ts +7 -0
  8. package/lib/actions/action-sonar-workflow.js +4 -2
  9. package/lib/actions/github-action-project.d.ts +20 -2
  10. package/lib/actions/github-action-project.js +5 -3
  11. package/lib/cdk/app-runtime-scaffold.js +1 -1
  12. package/lib/cdk/cdk-app-project.js +1 -1
  13. package/lib/cdk/cdk-infra-project.js +1 -1
  14. package/lib/cdk/cdk-typescript-base.js +13 -2
  15. package/lib/cdk/components/ecr-ecs-constructs.js +1 -1
  16. package/lib/cdk/components/edge-networking-constructs.js +1 -1
  17. package/lib/cdk/database-component.js +1 -1
  18. package/lib/cdk/options.d.ts +20 -0
  19. package/lib/cdk/options.js +1 -1
  20. package/lib/common/projen-drift-check-workflow.js +1 -1
  21. package/lib/common/workflow-change-notice-workflow.js +1 -1
  22. package/lib/java/components/cdk-deploy-hook.js +1 -1
  23. package/lib/java/components/code-index-workflow.js +1 -1
  24. package/lib/java/components/docker-publish.js +1 -1
  25. package/lib/java/components/flyway-migration.js +1 -1
  26. package/lib/java/components/github-packages-publish.js +1 -1
  27. package/lib/java/components/maven-central-publish.js +1 -1
  28. package/lib/java/components/maven-upgrade-report.js +1 -1
  29. package/lib/java/java-app-project.js +1 -1
  30. package/lib/java/java-library-project.js +1 -1
  31. package/lib/java/java-maven-base.js +3 -3
  32. package/lib/java/java-service-project.js +1 -1
  33. package/lib/java/java-spring-boot-project.js +1 -1
  34. package/lib/java/maven/maven-module.js +1 -1
  35. package/lib/java/maven/maven-pom.js +1 -1
  36. package/lib/java/options.d.ts +1 -1
  37. package/lib/java/options.js +1 -1
  38. package/package.json +1 -1
package/API.md CHANGED
@@ -15078,7 +15078,7 @@ const actionDogfoodOptions: ActionDogfoodOptions = { ... }
15078
15078
 
15079
15079
  | **Name** | **Type** | **Description** |
15080
15080
  | --- | --- | --- |
15081
- | <code><a href="#@xpertss/projen-types.ActionDogfoodOptions.property.cleanup">cleanup</a></code> | <code>string[]</code> | Shell cleanup, run once at the end with `if: always()`, so repeated runs start clean. |
15081
+ | <code><a href="#@xpertss/projen-types.ActionDogfoodOptions.property.cleanup">cleanup</a></code> | <code>string[]</code> | Shell cleanup, run once at the end with `if: always()` so repeated runs start clean. |
15082
15082
  | <code><a href="#@xpertss/projen-types.ActionDogfoodOptions.property.scenario">scenario</a></code> | <code><a href="#@xpertss/projen-types.ActionDogfoodStep">ActionDogfoodStep</a>[]</code> | One or more scenario steps, run in order, in the dogfood job. |
15083
15083
 
15084
15084
  ---
@@ -15091,7 +15091,11 @@ public readonly cleanup: string[];
15091
15091
 
15092
15092
  - *Type:* string[]
15093
15093
 
15094
- Shell cleanup, run once at the end with `if: always()`, so repeated runs start clean.
15094
+ Shell cleanup, run once at the end with `if: always()` so repeated runs start clean.
15095
+
15096
+ Intentionally **best-effort**: unlike the assert step it does
15097
+ *not* run under `set -e`, so a failing line (e.g. deleting an already
15098
+ deleted ref) does not fail the job.
15095
15099
 
15096
15100
  ---
15097
15101
 
@@ -15141,6 +15145,10 @@ public readonly assertions: string[];
15141
15145
 
15142
15146
  Shell assertions after this invocation - the job fails unless every one exits 0.
15143
15147
 
15148
+ The generated step runs under `set -euo pipefail`, so a failing
15149
+ assertion fails the step immediately rather than being masked by a later,
15150
+ passing one.
15151
+
15144
15152
  ---
15145
15153
 
15146
15154
  ##### `name`<sup>Required</sup> <a name="name" id="@xpertss/projen-types.ActionDogfoodStep.property.name"></a>
@@ -15209,6 +15217,7 @@ const actionSonarWorkflowOptions: ActionSonarWorkflowOptions = { ... }
15209
15217
  | **Name** | **Type** | **Description** |
15210
15218
  | --- | --- | --- |
15211
15219
  | <code><a href="#@xpertss/projen-types.ActionSonarWorkflowOptions.property.sonarHostUrl">sonarHostUrl</a></code> | <code>string</code> | URL of the org's SonarCloud instance (e.g. `https://sonarcloud.io`). Required, no default - a guessed server is worse than a loud failure. |
15220
+ | <code><a href="#@xpertss/projen-types.ActionSonarWorkflowOptions.property.sonarOrganization">sonarOrganization</a></code> | <code>string</code> | SonarCloud organization key (`sonar.organization`). Mandatory for the Scanner CLI on SonarCloud - it is not derived from the token, so a scan without it always fails. |
15212
15221
  | <code><a href="#@xpertss/projen-types.ActionSonarWorkflowOptions.property.sonarPullRequestGate">sonarPullRequestGate</a></code> | <code>boolean</code> | Whether `sonar.yml` also runs on `pull_request` as a pass/fail gate. |
15213
15222
  | <code><a href="#@xpertss/projen-types.ActionSonarWorkflowOptions.property.sonarTokenSecret">sonarTokenSecret</a></code> | <code>string</code> | *No description.* |
15214
15223
 
@@ -15226,6 +15235,19 @@ URL of the org's SonarCloud instance (e.g. `https://sonarcloud.io`). Required, n
15226
15235
 
15227
15236
  ---
15228
15237
 
15238
+ ##### `sonarOrganization`<sup>Optional</sup> <a name="sonarOrganization" id="@xpertss/projen-types.ActionSonarWorkflowOptions.property.sonarOrganization"></a>
15239
+
15240
+ ```typescript
15241
+ public readonly sonarOrganization: string;
15242
+ ```
15243
+
15244
+ - *Type:* string
15245
+ - *Default:* "xpertss"
15246
+
15247
+ SonarCloud organization key (`sonar.organization`). Mandatory for the Scanner CLI on SonarCloud - it is not derived from the token, so a scan without it always fails.
15248
+
15249
+ ---
15250
+
15229
15251
  ##### `sonarPullRequestGate`<sup>Optional</sup> <a name="sonarPullRequestGate" id="@xpertss/projen-types.ActionSonarWorkflowOptions.property.sonarPullRequestGate"></a>
15230
15252
 
15231
15253
  ```typescript
@@ -15266,8 +15288,12 @@ const cdkAppProjectOptions: CdkAppProjectOptions = { ... }
15266
15288
  | --- | --- | --- |
15267
15289
  | <code><a href="#@xpertss/projen-types.CdkAppProjectOptions.property.name">name</a></code> | <code>string</code> | *No description.* |
15268
15290
  | <code><a href="#@xpertss/projen-types.CdkAppProjectOptions.property.cdkVersion">cdkVersion</a></code> | <code>string</code> | *No description.* |
15291
+ | <code><a href="#@xpertss/projen-types.CdkAppProjectOptions.property.copyrightOwner">copyrightOwner</a></code> | <code>string</code> | Copyright owner named in the `LICENSE`. |
15292
+ | <code><a href="#@xpertss/projen-types.CdkAppProjectOptions.property.copyrightPeriod">copyrightPeriod</a></code> | <code>string</code> | Copyright period named in the `LICENSE`. |
15269
15293
  | <code><a href="#@xpertss/projen-types.CdkAppProjectOptions.property.editorconfig">editorconfig</a></code> | <code>boolean</code> | Write a projen-managed `.editorconfig`. |
15270
15294
  | <code><a href="#@xpertss/projen-types.CdkAppProjectOptions.property.gheTokenSecret">gheTokenSecret</a></code> | <code>string</code> | *No description.* |
15295
+ | <code><a href="#@xpertss/projen-types.CdkAppProjectOptions.property.license">license</a></code> | <code>string</code> | SPDX identifier for the generated `LICENSE`. |
15296
+ | <code><a href="#@xpertss/projen-types.CdkAppProjectOptions.property.licensed">licensed</a></code> | <code>boolean</code> | Write a `LICENSE`. |
15271
15297
  | <code><a href="#@xpertss/projen-types.CdkAppProjectOptions.property.ecrEcs">ecrEcs</a></code> | <code><a href="#@xpertss/projen-types.EcrEcsOptions">EcrEcsOptions</a></code> | *No description.* |
15272
15298
  | <code><a href="#@xpertss/projen-types.CdkAppProjectOptions.property.edgeResources">edgeResources</a></code> | <code>string[]</code> | *No description.* |
15273
15299
  | <code><a href="#@xpertss/projen-types.CdkAppProjectOptions.property.environments">environments</a></code> | <code>string \| <a href="#@xpertss/projen-types.EnvironmentOptions">EnvironmentOptions</a>[]</code> | Deploy targets for the manual-dispatch deploy workflow, e.g. ["dev", "stage", "prod"]. No `deploy` workflow is generated when this is empty or omitted. |
@@ -15297,6 +15323,32 @@ public readonly cdkVersion: string;
15297
15323
 
15298
15324
  ---
15299
15325
 
15326
+ ##### `copyrightOwner`<sup>Optional</sup> <a name="copyrightOwner" id="@xpertss/projen-types.CdkAppProjectOptions.property.copyrightOwner"></a>
15327
+
15328
+ ```typescript
15329
+ public readonly copyrightOwner: string;
15330
+ ```
15331
+
15332
+ - *Type:* string
15333
+ - *Default:* "Xpert Software"
15334
+
15335
+ Copyright owner named in the `LICENSE`.
15336
+
15337
+ ---
15338
+
15339
+ ##### `copyrightPeriod`<sup>Optional</sup> <a name="copyrightPeriod" id="@xpertss/projen-types.CdkAppProjectOptions.property.copyrightPeriod"></a>
15340
+
15341
+ ```typescript
15342
+ public readonly copyrightPeriod: string;
15343
+ ```
15344
+
15345
+ - *Type:* string
15346
+ - *Default:* the current year
15347
+
15348
+ Copyright period named in the `LICENSE`.
15349
+
15350
+ ---
15351
+
15300
15352
  ##### `editorconfig`<sup>Optional</sup> <a name="editorconfig" id="@xpertss/projen-types.CdkAppProjectOptions.property.editorconfig"></a>
15301
15353
 
15302
15354
  ```typescript
@@ -15321,6 +15373,32 @@ public readonly gheTokenSecret: string;
15321
15373
 
15322
15374
  ---
15323
15375
 
15376
+ ##### `license`<sup>Optional</sup> <a name="license" id="@xpertss/projen-types.CdkAppProjectOptions.property.license"></a>
15377
+
15378
+ ```typescript
15379
+ public readonly license: string;
15380
+ ```
15381
+
15382
+ - *Type:* string
15383
+ - *Default:* "MIT"
15384
+
15385
+ SPDX identifier for the generated `LICENSE`.
15386
+
15387
+ ---
15388
+
15389
+ ##### `licensed`<sup>Optional</sup> <a name="licensed" id="@xpertss/projen-types.CdkAppProjectOptions.property.licensed"></a>
15390
+
15391
+ ```typescript
15392
+ public readonly licensed: boolean;
15393
+ ```
15394
+
15395
+ - *Type:* boolean
15396
+ - *Default:* true
15397
+
15398
+ Write a `LICENSE`.
15399
+
15400
+ ---
15401
+
15324
15402
  ##### `ecrEcs`<sup>Optional</sup> <a name="ecrEcs" id="@xpertss/projen-types.CdkAppProjectOptions.property.ecrEcs"></a>
15325
15403
 
15326
15404
  ```typescript
@@ -15428,8 +15506,12 @@ const cdkInfraProjectOptions: CdkInfraProjectOptions = { ... }
15428
15506
  | --- | --- | --- |
15429
15507
  | <code><a href="#@xpertss/projen-types.CdkInfraProjectOptions.property.name">name</a></code> | <code>string</code> | *No description.* |
15430
15508
  | <code><a href="#@xpertss/projen-types.CdkInfraProjectOptions.property.cdkVersion">cdkVersion</a></code> | <code>string</code> | *No description.* |
15509
+ | <code><a href="#@xpertss/projen-types.CdkInfraProjectOptions.property.copyrightOwner">copyrightOwner</a></code> | <code>string</code> | Copyright owner named in the `LICENSE`. |
15510
+ | <code><a href="#@xpertss/projen-types.CdkInfraProjectOptions.property.copyrightPeriod">copyrightPeriod</a></code> | <code>string</code> | Copyright period named in the `LICENSE`. |
15431
15511
  | <code><a href="#@xpertss/projen-types.CdkInfraProjectOptions.property.editorconfig">editorconfig</a></code> | <code>boolean</code> | Write a projen-managed `.editorconfig`. |
15432
15512
  | <code><a href="#@xpertss/projen-types.CdkInfraProjectOptions.property.gheTokenSecret">gheTokenSecret</a></code> | <code>string</code> | *No description.* |
15513
+ | <code><a href="#@xpertss/projen-types.CdkInfraProjectOptions.property.license">license</a></code> | <code>string</code> | SPDX identifier for the generated `LICENSE`. |
15514
+ | <code><a href="#@xpertss/projen-types.CdkInfraProjectOptions.property.licensed">licensed</a></code> | <code>boolean</code> | Write a `LICENSE`. |
15433
15515
  | <code><a href="#@xpertss/projen-types.CdkInfraProjectOptions.property.ecrEcs">ecrEcs</a></code> | <code><a href="#@xpertss/projen-types.EcrEcsOptions">EcrEcsOptions</a></code> | *No description.* |
15434
15516
  | <code><a href="#@xpertss/projen-types.CdkInfraProjectOptions.property.edgeResources">edgeResources</a></code> | <code>string[]</code> | *No description.* |
15435
15517
  | <code><a href="#@xpertss/projen-types.CdkInfraProjectOptions.property.environments">environments</a></code> | <code>string \| <a href="#@xpertss/projen-types.EnvironmentOptions">EnvironmentOptions</a>[]</code> | Deploy targets for the manual-dispatch deploy workflow, e.g. ["dev", "stage", "prod"]. No `deploy` workflow is generated when this is empty or omitted. |
@@ -15457,6 +15539,32 @@ public readonly cdkVersion: string;
15457
15539
 
15458
15540
  ---
15459
15541
 
15542
+ ##### `copyrightOwner`<sup>Optional</sup> <a name="copyrightOwner" id="@xpertss/projen-types.CdkInfraProjectOptions.property.copyrightOwner"></a>
15543
+
15544
+ ```typescript
15545
+ public readonly copyrightOwner: string;
15546
+ ```
15547
+
15548
+ - *Type:* string
15549
+ - *Default:* "Xpert Software"
15550
+
15551
+ Copyright owner named in the `LICENSE`.
15552
+
15553
+ ---
15554
+
15555
+ ##### `copyrightPeriod`<sup>Optional</sup> <a name="copyrightPeriod" id="@xpertss/projen-types.CdkInfraProjectOptions.property.copyrightPeriod"></a>
15556
+
15557
+ ```typescript
15558
+ public readonly copyrightPeriod: string;
15559
+ ```
15560
+
15561
+ - *Type:* string
15562
+ - *Default:* the current year
15563
+
15564
+ Copyright period named in the `LICENSE`.
15565
+
15566
+ ---
15567
+
15460
15568
  ##### `editorconfig`<sup>Optional</sup> <a name="editorconfig" id="@xpertss/projen-types.CdkInfraProjectOptions.property.editorconfig"></a>
15461
15569
 
15462
15570
  ```typescript
@@ -15481,6 +15589,32 @@ public readonly gheTokenSecret: string;
15481
15589
 
15482
15590
  ---
15483
15591
 
15592
+ ##### `license`<sup>Optional</sup> <a name="license" id="@xpertss/projen-types.CdkInfraProjectOptions.property.license"></a>
15593
+
15594
+ ```typescript
15595
+ public readonly license: string;
15596
+ ```
15597
+
15598
+ - *Type:* string
15599
+ - *Default:* "MIT"
15600
+
15601
+ SPDX identifier for the generated `LICENSE`.
15602
+
15603
+ ---
15604
+
15605
+ ##### `licensed`<sup>Optional</sup> <a name="licensed" id="@xpertss/projen-types.CdkInfraProjectOptions.property.licensed"></a>
15606
+
15607
+ ```typescript
15608
+ public readonly licensed: boolean;
15609
+ ```
15610
+
15611
+ - *Type:* boolean
15612
+ - *Default:* true
15613
+
15614
+ Write a `LICENSE`.
15615
+
15616
+ ---
15617
+
15484
15618
  ##### `ecrEcs`<sup>Optional</sup> <a name="ecrEcs" id="@xpertss/projen-types.CdkInfraProjectOptions.property.ecrEcs"></a>
15485
15619
 
15486
15620
  ```typescript
@@ -15536,8 +15670,12 @@ const cdkTypescriptProjectOptions: CdkTypescriptProjectOptions = { ... }
15536
15670
  | --- | --- | --- |
15537
15671
  | <code><a href="#@xpertss/projen-types.CdkTypescriptProjectOptions.property.name">name</a></code> | <code>string</code> | *No description.* |
15538
15672
  | <code><a href="#@xpertss/projen-types.CdkTypescriptProjectOptions.property.cdkVersion">cdkVersion</a></code> | <code>string</code> | *No description.* |
15673
+ | <code><a href="#@xpertss/projen-types.CdkTypescriptProjectOptions.property.copyrightOwner">copyrightOwner</a></code> | <code>string</code> | Copyright owner named in the `LICENSE`. |
15674
+ | <code><a href="#@xpertss/projen-types.CdkTypescriptProjectOptions.property.copyrightPeriod">copyrightPeriod</a></code> | <code>string</code> | Copyright period named in the `LICENSE`. |
15539
15675
  | <code><a href="#@xpertss/projen-types.CdkTypescriptProjectOptions.property.editorconfig">editorconfig</a></code> | <code>boolean</code> | Write a projen-managed `.editorconfig`. |
15540
15676
  | <code><a href="#@xpertss/projen-types.CdkTypescriptProjectOptions.property.gheTokenSecret">gheTokenSecret</a></code> | <code>string</code> | *No description.* |
15677
+ | <code><a href="#@xpertss/projen-types.CdkTypescriptProjectOptions.property.license">license</a></code> | <code>string</code> | SPDX identifier for the generated `LICENSE`. |
15678
+ | <code><a href="#@xpertss/projen-types.CdkTypescriptProjectOptions.property.licensed">licensed</a></code> | <code>boolean</code> | Write a `LICENSE`. |
15541
15679
  | <code><a href="#@xpertss/projen-types.CdkTypescriptProjectOptions.property.environments">environments</a></code> | <code>string \| <a href="#@xpertss/projen-types.EnvironmentOptions">EnvironmentOptions</a>[]</code> | *No description.* |
15542
15680
 
15543
15681
  ---
@@ -15563,6 +15701,32 @@ public readonly cdkVersion: string;
15563
15701
 
15564
15702
  ---
15565
15703
 
15704
+ ##### `copyrightOwner`<sup>Optional</sup> <a name="copyrightOwner" id="@xpertss/projen-types.CdkTypescriptProjectOptions.property.copyrightOwner"></a>
15705
+
15706
+ ```typescript
15707
+ public readonly copyrightOwner: string;
15708
+ ```
15709
+
15710
+ - *Type:* string
15711
+ - *Default:* "Xpert Software"
15712
+
15713
+ Copyright owner named in the `LICENSE`.
15714
+
15715
+ ---
15716
+
15717
+ ##### `copyrightPeriod`<sup>Optional</sup> <a name="copyrightPeriod" id="@xpertss/projen-types.CdkTypescriptProjectOptions.property.copyrightPeriod"></a>
15718
+
15719
+ ```typescript
15720
+ public readonly copyrightPeriod: string;
15721
+ ```
15722
+
15723
+ - *Type:* string
15724
+ - *Default:* the current year
15725
+
15726
+ Copyright period named in the `LICENSE`.
15727
+
15728
+ ---
15729
+
15566
15730
  ##### `editorconfig`<sup>Optional</sup> <a name="editorconfig" id="@xpertss/projen-types.CdkTypescriptProjectOptions.property.editorconfig"></a>
15567
15731
 
15568
15732
  ```typescript
@@ -15587,6 +15751,32 @@ public readonly gheTokenSecret: string;
15587
15751
 
15588
15752
  ---
15589
15753
 
15754
+ ##### `license`<sup>Optional</sup> <a name="license" id="@xpertss/projen-types.CdkTypescriptProjectOptions.property.license"></a>
15755
+
15756
+ ```typescript
15757
+ public readonly license: string;
15758
+ ```
15759
+
15760
+ - *Type:* string
15761
+ - *Default:* "MIT"
15762
+
15763
+ SPDX identifier for the generated `LICENSE`.
15764
+
15765
+ ---
15766
+
15767
+ ##### `licensed`<sup>Optional</sup> <a name="licensed" id="@xpertss/projen-types.CdkTypescriptProjectOptions.property.licensed"></a>
15768
+
15769
+ ```typescript
15770
+ public readonly licensed: boolean;
15771
+ ```
15772
+
15773
+ - *Type:* boolean
15774
+ - *Default:* true
15775
+
15776
+ Write a `LICENSE`.
15777
+
15778
+ ---
15779
+
15590
15780
  ##### `environments`<sup>Optional</sup> <a name="environments" id="@xpertss/projen-types.CdkTypescriptProjectOptions.property.environments"></a>
15591
15781
 
15592
15782
  ```typescript
@@ -15613,8 +15803,12 @@ const commonCdkOptions: CommonCdkOptions = { ... }
15613
15803
  | --- | --- | --- |
15614
15804
  | <code><a href="#@xpertss/projen-types.CommonCdkOptions.property.name">name</a></code> | <code>string</code> | *No description.* |
15615
15805
  | <code><a href="#@xpertss/projen-types.CommonCdkOptions.property.cdkVersion">cdkVersion</a></code> | <code>string</code> | *No description.* |
15806
+ | <code><a href="#@xpertss/projen-types.CommonCdkOptions.property.copyrightOwner">copyrightOwner</a></code> | <code>string</code> | Copyright owner named in the `LICENSE`. |
15807
+ | <code><a href="#@xpertss/projen-types.CommonCdkOptions.property.copyrightPeriod">copyrightPeriod</a></code> | <code>string</code> | Copyright period named in the `LICENSE`. |
15616
15808
  | <code><a href="#@xpertss/projen-types.CommonCdkOptions.property.editorconfig">editorconfig</a></code> | <code>boolean</code> | Write a projen-managed `.editorconfig`. |
15617
15809
  | <code><a href="#@xpertss/projen-types.CommonCdkOptions.property.gheTokenSecret">gheTokenSecret</a></code> | <code>string</code> | *No description.* |
15810
+ | <code><a href="#@xpertss/projen-types.CommonCdkOptions.property.license">license</a></code> | <code>string</code> | SPDX identifier for the generated `LICENSE`. |
15811
+ | <code><a href="#@xpertss/projen-types.CommonCdkOptions.property.licensed">licensed</a></code> | <code>boolean</code> | Write a `LICENSE`. |
15618
15812
 
15619
15813
  ---
15620
15814
 
@@ -15639,6 +15833,32 @@ public readonly cdkVersion: string;
15639
15833
 
15640
15834
  ---
15641
15835
 
15836
+ ##### `copyrightOwner`<sup>Optional</sup> <a name="copyrightOwner" id="@xpertss/projen-types.CommonCdkOptions.property.copyrightOwner"></a>
15837
+
15838
+ ```typescript
15839
+ public readonly copyrightOwner: string;
15840
+ ```
15841
+
15842
+ - *Type:* string
15843
+ - *Default:* "Xpert Software"
15844
+
15845
+ Copyright owner named in the `LICENSE`.
15846
+
15847
+ ---
15848
+
15849
+ ##### `copyrightPeriod`<sup>Optional</sup> <a name="copyrightPeriod" id="@xpertss/projen-types.CommonCdkOptions.property.copyrightPeriod"></a>
15850
+
15851
+ ```typescript
15852
+ public readonly copyrightPeriod: string;
15853
+ ```
15854
+
15855
+ - *Type:* string
15856
+ - *Default:* the current year
15857
+
15858
+ Copyright period named in the `LICENSE`.
15859
+
15860
+ ---
15861
+
15642
15862
  ##### `editorconfig`<sup>Optional</sup> <a name="editorconfig" id="@xpertss/projen-types.CommonCdkOptions.property.editorconfig"></a>
15643
15863
 
15644
15864
  ```typescript
@@ -15663,6 +15883,32 @@ public readonly gheTokenSecret: string;
15663
15883
 
15664
15884
  ---
15665
15885
 
15886
+ ##### `license`<sup>Optional</sup> <a name="license" id="@xpertss/projen-types.CommonCdkOptions.property.license"></a>
15887
+
15888
+ ```typescript
15889
+ public readonly license: string;
15890
+ ```
15891
+
15892
+ - *Type:* string
15893
+ - *Default:* "MIT"
15894
+
15895
+ SPDX identifier for the generated `LICENSE`.
15896
+
15897
+ ---
15898
+
15899
+ ##### `licensed`<sup>Optional</sup> <a name="licensed" id="@xpertss/projen-types.CommonCdkOptions.property.licensed"></a>
15900
+
15901
+ ```typescript
15902
+ public readonly licensed: boolean;
15903
+ ```
15904
+
15905
+ - *Type:* boolean
15906
+ - *Default:* true
15907
+
15908
+ Write a `LICENSE`.
15909
+
15910
+ ---
15911
+
15666
15912
  ### CommonJavaOptions <a name="CommonJavaOptions" id="@xpertss/projen-types.CommonJavaOptions"></a>
15667
15913
 
15668
15914
  #### Initializer <a name="Initializer" id="@xpertss/projen-types.CommonJavaOptions.Initializer"></a>
@@ -15738,7 +15984,7 @@ public readonly copyrightOwner: string;
15738
15984
  ```
15739
15985
 
15740
15986
  - *Type:* string
15741
- - *Default:* "xpertss" (same as `GitHubActionProject`)
15987
+ - *Default:* "Xpert Software"
15742
15988
 
15743
15989
  Copyright owner named in the `LICENSE`.
15744
15990
 
@@ -16206,11 +16452,14 @@ const gitHubActionProjectOptions: GitHubActionProjectOptions = { ... }
16206
16452
  | <code><a href="#@xpertss/projen-types.GitHubActionProjectOptions.property.staleOptions">staleOptions</a></code> | <code>projen.github.StaleOptions</code> | Auto-close stale issues and pull requests. |
16207
16453
  | <code><a href="#@xpertss/projen-types.GitHubActionProjectOptions.property.vscode">vscode</a></code> | <code>boolean</code> | Enable VSCode integration. |
16208
16454
  | <code><a href="#@xpertss/projen-types.GitHubActionProjectOptions.property.sonarHostUrl">sonarHostUrl</a></code> | <code>string</code> | URL of the org's SonarCloud instance (e.g. `https://sonarcloud.io`). MUST be reachable from github.com-hosted (public) runners (AD-001). Required, no default: a guessed server is worse than a loud failure. |
16455
+ | <code><a href="#@xpertss/projen-types.GitHubActionProjectOptions.property.copyrightOwner">copyrightOwner</a></code> | <code>string</code> | Copyright owner named in the `LICENSE`. |
16456
+ | <code><a href="#@xpertss/projen-types.GitHubActionProjectOptions.property.copyrightPeriod">copyrightPeriod</a></code> | <code>string</code> | Copyright period named in the `LICENSE`. |
16209
16457
  | <code><a href="#@xpertss/projen-types.GitHubActionProjectOptions.property.description">description</a></code> | <code>string</code> | One-line description of the action. |
16210
16458
  | <code><a href="#@xpertss/projen-types.GitHubActionProjectOptions.property.dogfood">dogfood</a></code> | <code><a href="#@xpertss/projen-types.ActionDogfoodOptions">ActionDogfoodOptions</a></code> | The dogfood scenario (AD-001). |
16211
16459
  | <code><a href="#@xpertss/projen-types.GitHubActionProjectOptions.property.editorconfig">editorconfig</a></code> | <code>boolean</code> | Write a projen-managed `.editorconfig`. |
16212
- | <code><a href="#@xpertss/projen-types.GitHubActionProjectOptions.property.gheTokenSecret">gheTokenSecret</a></code> | <code>string</code> | Name of the GitHub Actions secret holding the PAT used for projen-automation PR comments (F003) and, when the action has a `token` input, the dogfood's invocation of it. |
16460
+ | <code><a href="#@xpertss/projen-types.GitHubActionProjectOptions.property.gheTokenSecret">gheTokenSecret</a></code> | <code>string</code> | Name of the GitHub Actions secret holding the PAT used for projen-automation PR comments (F003) and the drift-check's PR comments. |
16213
16461
  | <code><a href="#@xpertss/projen-types.GitHubActionProjectOptions.property.license">license</a></code> | <code>string</code> | SPDX identifier for the generated `LICENSE`. |
16462
+ | <code><a href="#@xpertss/projen-types.GitHubActionProjectOptions.property.sonarOrganization">sonarOrganization</a></code> | <code>string</code> | SonarCloud organization key (`sonar.organization`), required by the Scanner CLI on SonarCloud. |
16214
16463
  | <code><a href="#@xpertss/projen-types.GitHubActionProjectOptions.property.sonarPullRequestGate">sonarPullRequestGate</a></code> | <code>boolean</code> | Whether `sonar.yml` also runs on `pull_request` as a pass/fail gate. |
16215
16464
  | <code><a href="#@xpertss/projen-types.GitHubActionProjectOptions.property.sonarTokenSecret">sonarTokenSecret</a></code> | <code>string</code> | *No description.* |
16216
16465
 
@@ -16596,6 +16845,32 @@ URL of the org's SonarCloud instance (e.g. `https://sonarcloud.io`). MUST be rea
16596
16845
 
16597
16846
  ---
16598
16847
 
16848
+ ##### `copyrightOwner`<sup>Optional</sup> <a name="copyrightOwner" id="@xpertss/projen-types.GitHubActionProjectOptions.property.copyrightOwner"></a>
16849
+
16850
+ ```typescript
16851
+ public readonly copyrightOwner: string;
16852
+ ```
16853
+
16854
+ - *Type:* string
16855
+ - *Default:* "Xpert Software"
16856
+
16857
+ Copyright owner named in the `LICENSE`.
16858
+
16859
+ ---
16860
+
16861
+ ##### `copyrightPeriod`<sup>Optional</sup> <a name="copyrightPeriod" id="@xpertss/projen-types.GitHubActionProjectOptions.property.copyrightPeriod"></a>
16862
+
16863
+ ```typescript
16864
+ public readonly copyrightPeriod: string;
16865
+ ```
16866
+
16867
+ - *Type:* string
16868
+ - *Default:* the current year
16869
+
16870
+ Copyright period named in the `LICENSE`.
16871
+
16872
+ ---
16873
+
16599
16874
  ##### `description`<sup>Optional</sup> <a name="description" id="@xpertss/projen-types.GitHubActionProjectOptions.property.description"></a>
16600
16875
 
16601
16876
  ```typescript
@@ -16657,7 +16932,11 @@ public readonly gheTokenSecret: string;
16657
16932
  - *Type:* string
16658
16933
  - *Default:* "PROJEN_GITHUB_TOKEN"
16659
16934
 
16660
- Name of the GitHub Actions secret holding the PAT used for projen-automation PR comments (F003) and, when the action has a `token` input, the dogfood's invocation of it.
16935
+ Name of the GitHub Actions secret holding the PAT used for projen-automation PR comments (F003) and the drift-check's PR comments.
16936
+
16937
+ It is **not** wired into the dogfood automatically: a dogfood that invokes
16938
+ an action with a `token` input must reference this secret in the step's
16939
+ `inputs` (e.g. `token: '${{ secrets.PROJEN_GITHUB_TOKEN }}'`).
16661
16940
 
16662
16941
  ---
16663
16942
 
@@ -16674,6 +16953,19 @@ SPDX identifier for the generated `LICENSE`.
16674
16953
 
16675
16954
  ---
16676
16955
 
16956
+ ##### `sonarOrganization`<sup>Optional</sup> <a name="sonarOrganization" id="@xpertss/projen-types.GitHubActionProjectOptions.property.sonarOrganization"></a>
16957
+
16958
+ ```typescript
16959
+ public readonly sonarOrganization: string;
16960
+ ```
16961
+
16962
+ - *Type:* string
16963
+ - *Default:* "xpertss"
16964
+
16965
+ SonarCloud organization key (`sonar.organization`), required by the Scanner CLI on SonarCloud.
16966
+
16967
+ ---
16968
+
16677
16969
  ##### `sonarPullRequestGate`<sup>Optional</sup> <a name="sonarPullRequestGate" id="@xpertss/projen-types.GitHubActionProjectOptions.property.sonarPullRequestGate"></a>
16678
16970
 
16679
16971
  ```typescript
@@ -16803,7 +17095,7 @@ public readonly copyrightOwner: string;
16803
17095
  ```
16804
17096
 
16805
17097
  - *Type:* string
16806
- - *Default:* "xpertss" (same as `GitHubActionProject`)
17098
+ - *Default:* "Xpert Software"
16807
17099
 
16808
17100
  Copyright owner named in the `LICENSE`.
16809
17101
 
@@ -17132,7 +17424,7 @@ public readonly copyrightOwner: string;
17132
17424
  ```
17133
17425
 
17134
17426
  - *Type:* string
17135
- - *Default:* "xpertss" (same as `GitHubActionProject`)
17427
+ - *Default:* "Xpert Software"
17136
17428
 
17137
17429
  Copyright owner named in the `LICENSE`.
17138
17430
 
@@ -17473,7 +17765,7 @@ public readonly copyrightOwner: string;
17473
17765
  ```
17474
17766
 
17475
17767
  - *Type:* string
17476
- - *Default:* "xpertss" (same as `GitHubActionProject`)
17768
+ - *Default:* "Xpert Software"
17477
17769
 
17478
17770
  Copyright owner named in the `LICENSE`.
17479
17771
 
@@ -17795,7 +18087,7 @@ public readonly copyrightOwner: string;
17795
18087
  ```
17796
18088
 
17797
18089
  - *Type:* string
17798
- - *Default:* "xpertss" (same as `GitHubActionProject`)
18090
+ - *Default:* "Xpert Software"
17799
18091
 
17800
18092
  Copyright owner named in the `LICENSE`.
17801
18093
 
@@ -18195,7 +18487,7 @@ public readonly copyrightOwner: string;
18195
18487
  ```
18196
18488
 
18197
18489
  - *Type:* string
18198
- - *Default:* "xpertss" (same as `GitHubActionProject`)
18490
+ - *Default:* "Xpert Software"
18199
18491
 
18200
18492
  Copyright owner named in the `LICENSE`.
18201
18493
 
package/README.md CHANGED
@@ -214,6 +214,7 @@ You get:
214
214
  - `cdk.json`, `cdk synth` / `cdk diff` / `cdk deploy` tasks, and the standard `AwsCdkTypeScriptApp` layout (CDK 2.189.1 by default).
215
215
  - `.github/workflows/build.yml` - PR build that hard-fails on projen drift.
216
216
  - `.github/workflows/deploy.yml` - manual dispatch with one `deploy-<env>` job per environment (runs `cdk deploy --all` with `--context environment=<env>`); `requiresApproval` environments get a GitHub Environment approval gate.
217
+ - `LICENSE` (MIT by default), `.editorconfig`, and the projen drift check.
217
218
  - `src/constructs/edge-networking.ts` - helper constructs only for the requested `edgeResources` (`cloudfront`, `route53`, `apigateway`, `cognito`, `sqs`).
218
219
  - `src/constructs/ecr-ecs.ts` when `ecrEcs.enabled` - ECR repo + Fargate service; `externalImageSource: true` (default) means the service pulls an image built outside this repo.
219
220
 
@@ -491,6 +492,7 @@ const project = new GitHubActionProject({
491
492
  name: 'auto-commit',
492
493
  description: 'Stage a folder and, only if it changed, commit and push it',
493
494
  sonarHostUrl: 'https://sonarcloud.io', // required, no default - your SonarCloud URL
495
+ sonarOrganization: 'xpertss', // default - your SonarCloud org key
494
496
  dogfood: {
495
497
  // Two scenario steps: the "changed" path and the "no-op" path are both
496
498
  // load-bearing behavior for this action (a double-commit or a
@@ -608,6 +610,9 @@ CDK project types (`CdkInfraProjectOptions` / `CdkAppProjectOptions`):
608
610
  | `name` | - (required) | Project name; must match `package.json` |
609
611
  | `cdkVersion` | `2.189.1` | AWS CDK version |
610
612
  | `gheTokenSecret` | `PROJEN_GITHUB_TOKEN` | GitHub secret holding projen's PAT |
613
+ | `licensed` | `true` | Write a `LICENSE` |
614
+ | `license` | `MIT` | SPDX identifier for the `LICENSE` |
615
+ | `copyrightOwner` / `copyrightPeriod` | `Xpert Software` / current year | Named in the `LICENSE` |
611
616
  | `environments` | - (no `deploy` workflow) | Deploy targets for the `deploy` workflow; strings or `EnvironmentOptions` |
612
617
  | `ecrEcs` | - | `EcrEcsOptions` - `enabled`, `externalImageSource` (default `true`) |
613
618
  | `edgeResources` | - | Subset of `cloudfront`, `route53`, `apigateway`, `cognito`, `sqs` |
@@ -632,7 +637,7 @@ Java project types (`JavaMavenProjectOptions` and everything built on it - `Java
632
637
  | `pluginVersions` | - | Exact-version overrides for this package's defaults, keyed by `groupId/artifactId` |
633
638
  | `licensed` | `true` | Write a `LICENSE` |
634
639
  | `license` | `MIT` | SPDX identifier for the `LICENSE` |
635
- | `copyrightOwner` / `copyrightPeriod` | `xpertss` / current year | Named in the `LICENSE` |
640
+ | `copyrightOwner` / `copyrightPeriod` | `Xpert Software` / current year | Named in the `LICENSE` |
636
641
  | `editorconfig` | `true` | Write a projen-managed `.editorconfig` (also on the CDK and action types) |
637
642
  | `upgradeWorkflow` | `true` | Generate the nightly update report (`upgrade.yml`) |
638
643
  | `sonarProjectKey` | - | SonarQube project key; the sonar step is skipped when unset |
@@ -688,11 +693,13 @@ Plain strings (`'dev'`) are shorthand for `{ name: 'dev' }`.
688
693
  | `name` | - (required) | Project name |
689
694
  | `description` | - | One-line description; used in the default README template and recorded in the private `package.json` |
690
695
  | `sonarHostUrl` | - (required) | URL of your SonarCloud instance (e.g. `https://sonarcloud.io`); must be reachable from github.com-hosted runners |
696
+ | `sonarOrganization` | `xpertss` | SonarCloud org key (`sonar.organization`); required by the Scanner CLI, not derived from the token |
691
697
  | `sonarTokenSecret` | `SONAR_TOKEN` | GitHub secret holding the Sonar token |
692
698
  | `sonarPullRequestGate` | `true` | Whether `sonar.yml` also runs on `pull_request` as a pass/fail gate |
693
699
  | `dogfood` | - (a `test-dogfood.yml` that fails until you declare one) | `ActionDogfoodOptions` - the scenario that exercises the action end-to-end via `uses: ./` |
694
700
  | `license` | `MIT` | SPDX identifier for the generated `LICENSE` |
695
- | `gheTokenSecret` | `PROJEN_GITHUB_TOKEN` | GitHub secret holding projen's PAT |
701
+ | `copyrightOwner` / `copyrightPeriod` | `Xpert Software` / current year | Named in the `LICENSE` |
702
+ | `gheTokenSecret` | `PROJEN_GITHUB_TOKEN` | GitHub secret holding projen's PAT (drift-check PR comments); a dogfood that passes a `token` input must reference this secret in the step's `inputs` |
696
703
 
697
704
  `ActionDogfoodOptions`/`ActionDogfoodStep` - the dogfood scenario (`test-dogfood.yml`):
698
705
 
@@ -707,7 +714,7 @@ interface ActionDogfoodStep {
707
714
  readonly id?: string; // step id for the `uses: ./` call; default: a slug of `name`
708
715
  readonly fixtureSteps?: string[]; // shell, before the invocation (default: none)
709
716
  readonly inputs?: Record<string, string>; // `with:` for this invocation (default: none)
710
- readonly assertions: string[]; // shell, after the invocation - required, job fails unless all exit 0
717
+ readonly assertions: string[]; // shell, after the invocation - required; the step runs under set -euo pipefail so any failing line fails the job
711
718
  }
712
719
  ```
713
720
 
@@ -20,7 +20,7 @@ const ACTIONLINT_SHA256 = '8aca8db96f1b94770f1b0d72b6dddcb1ebb8123cb3712530b08cc
20
20
  * the release build job, so the lint commands exist in exactly one place.
21
21
  */
22
22
  class ActionBuildWorkflow extends projen_1.Component {
23
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.ActionBuildWorkflow", version: "0.0.19" };
23
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.ActionBuildWorkflow", version: "0.0.21" };
24
24
  task;
25
25
  workflow;
26
26
  constructor(scope) {
@@ -26,13 +26,23 @@ export interface ActionDogfoodStep {
26
26
  * @default {}
27
27
  */
28
28
  readonly inputs?: Record<string, string>;
29
- /** Shell assertions after this invocation - the job fails unless every one exits 0. */
29
+ /**
30
+ * Shell assertions after this invocation - the job fails unless every one
31
+ * exits 0. The generated step runs under `set -euo pipefail`, so a failing
32
+ * assertion fails the step immediately rather than being masked by a later,
33
+ * passing one.
34
+ */
30
35
  readonly assertions: string[];
31
36
  }
32
37
  export interface ActionDogfoodOptions {
33
38
  /** One or more scenario steps, run in order, in the dogfood job. */
34
39
  readonly scenario: ActionDogfoodStep[];
35
- /** Shell cleanup, run once at the end with `if: always()`, so repeated runs start clean. */
40
+ /**
41
+ * Shell cleanup, run once at the end with `if: always()` so repeated runs
42
+ * start clean. Intentionally **best-effort**: unlike the assert step it does
43
+ * *not* run under `set -e`, so a failing line (e.g. deleting an already
44
+ * deleted ref) does not fail the job.
45
+ */
36
46
  readonly cleanup: string[];
37
47
  }
38
48
  /**