@xpertss/projen-types 0.0.20 → 0.0.22

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 (45) hide show
  1. package/.jsii +535 -291
  2. package/API.md +1808 -488
  3. package/README.md +46 -17
  4. package/lib/actions/action-build-workflow.js +1 -1
  5. package/lib/actions/action-dogfood-workflow.js +1 -1
  6. package/lib/actions/action-sonar-workflow.d.ts +10 -29
  7. package/lib/actions/action-sonar-workflow.js +9 -58
  8. package/lib/actions/github-action-project.d.ts +15 -22
  9. package/lib/actions/github-action-project.js +18 -13
  10. package/lib/cdk/app-runtime-scaffold.js +1 -1
  11. package/lib/cdk/cdk-app-project.js +1 -1
  12. package/lib/cdk/cdk-infra-project.js +1 -1
  13. package/lib/cdk/cdk-typescript-base.d.ts +3 -0
  14. package/lib/cdk/cdk-typescript-base.js +25 -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 +22 -1
  19. package/lib/cdk/options.js +1 -1
  20. package/lib/common/projen-drift-check-workflow.js +1 -1
  21. package/lib/common/sonar-options.d.ts +29 -0
  22. package/lib/common/sonar-options.js +3 -0
  23. package/lib/common/sonar-workflow.d.ts +48 -0
  24. package/lib/common/sonar-workflow.js +75 -0
  25. package/lib/common/workflow-change-notice-workflow.js +1 -1
  26. package/lib/index.d.ts +2 -0
  27. package/lib/index.js +3 -1
  28. package/lib/java/components/cdk-deploy-hook.js +1 -1
  29. package/lib/java/components/code-index-workflow.js +1 -1
  30. package/lib/java/components/docker-publish.js +1 -1
  31. package/lib/java/components/flyway-migration.js +1 -1
  32. package/lib/java/components/github-packages-publish.js +1 -1
  33. package/lib/java/components/maven-central-publish.js +1 -1
  34. package/lib/java/components/maven-upgrade-report.js +1 -1
  35. package/lib/java/java-app-project.js +1 -1
  36. package/lib/java/java-library-project.js +1 -1
  37. package/lib/java/java-maven-base.d.ts +6 -2
  38. package/lib/java/java-maven-base.js +19 -15
  39. package/lib/java/java-service-project.js +1 -1
  40. package/lib/java/java-spring-boot-project.js +1 -1
  41. package/lib/java/maven/maven-module.js +1 -1
  42. package/lib/java/maven/maven-pom.js +1 -1
  43. package/lib/java/options.d.ts +3 -4
  44. package/lib/java/options.js +1 -1
  45. package/package.json +1 -1
package/API.md CHANGED
@@ -500,23 +500,18 @@ public readonly workflow: GithubWorkflow;
500
500
 
501
501
  ### ActionSonarWorkflow <a name="ActionSonarWorkflow" id="@xpertss/projen-types.ActionSonarWorkflow"></a>
502
502
 
503
- AD-001 Layer 2: SonarCloud via the Scanner CLI only (never `SonarSource/sonarqube-scan-action` - third-party, and it carried a security advisory).
504
-
505
- `sonar.inclusions` is set explicitly since default
506
- inclusions may skip `action.yml` outside `.github/`.
507
-
508
503
  #### Initializers <a name="Initializers" id="@xpertss/projen-types.ActionSonarWorkflow.Initializer"></a>
509
504
 
510
505
  ```typescript
511
506
  import { ActionSonarWorkflow } from '@xpertss/projen-types'
512
507
 
513
- new ActionSonarWorkflow(scope: GitHubProject, options: ActionSonarWorkflowOptions)
508
+ new ActionSonarWorkflow(scope: GitHubProject, options: SonarWorkflowOptions)
514
509
  ```
515
510
 
516
511
  | **Name** | **Type** | **Description** |
517
512
  | --- | --- | --- |
518
513
  | <code><a href="#@xpertss/projen-types.ActionSonarWorkflow.Initializer.parameter.scope">scope</a></code> | <code>projen.github.GitHubProject</code> | *No description.* |
519
- | <code><a href="#@xpertss/projen-types.ActionSonarWorkflow.Initializer.parameter.options">options</a></code> | <code><a href="#@xpertss/projen-types.ActionSonarWorkflowOptions">ActionSonarWorkflowOptions</a></code> | *No description.* |
514
+ | <code><a href="#@xpertss/projen-types.ActionSonarWorkflow.Initializer.parameter.options">options</a></code> | <code><a href="#@xpertss/projen-types.SonarWorkflowOptions">SonarWorkflowOptions</a></code> | *No description.* |
520
515
 
521
516
  ---
522
517
 
@@ -528,7 +523,7 @@ new ActionSonarWorkflow(scope: GitHubProject, options: ActionSonarWorkflowOption
528
523
 
529
524
  ##### `options`<sup>Required</sup> <a name="options" id="@xpertss/projen-types.ActionSonarWorkflow.Initializer.parameter.options"></a>
530
525
 
531
- - *Type:* <a href="#@xpertss/projen-types.ActionSonarWorkflowOptions">ActionSonarWorkflowOptions</a>
526
+ - *Type:* <a href="#@xpertss/projen-types.SonarWorkflowOptions">SonarWorkflowOptions</a>
532
527
 
533
528
  ---
534
529
 
@@ -546,7 +541,7 @@ new ActionSonarWorkflow(scope: GitHubProject, options: ActionSonarWorkflowOption
546
541
 
547
542
  ---
548
543
 
549
- ##### `toString` <a name="toString" id="@xpertss/projen-types.ActionSonarWorkflow.toString"></a>
544
+ ##### ~~`toString`~~ <a name="toString" id="@xpertss/projen-types.ActionSonarWorkflow.toString"></a>
550
545
 
551
546
  ```typescript
552
547
  public toString(): string
@@ -554,7 +549,7 @@ public toString(): string
554
549
 
555
550
  Returns a string representation of this construct.
556
551
 
557
- ##### `with` <a name="with" id="@xpertss/projen-types.ActionSonarWorkflow.with"></a>
552
+ ##### ~~`with`~~ <a name="with" id="@xpertss/projen-types.ActionSonarWorkflow.with"></a>
558
553
 
559
554
  ```typescript
560
555
  public with(mixins: ...IMixin[]): IConstruct
@@ -575,7 +570,7 @@ The mixins to apply.
575
570
 
576
571
  ---
577
572
 
578
- ##### `postProjectCreation` <a name="postProjectCreation" id="@xpertss/projen-types.ActionSonarWorkflow.postProjectCreation"></a>
573
+ ##### ~~`postProjectCreation`~~ <a name="postProjectCreation" id="@xpertss/projen-types.ActionSonarWorkflow.postProjectCreation"></a>
579
574
 
580
575
  ```typescript
581
576
  public postProjectCreation(initProject: InitProject): void
@@ -596,7 +591,7 @@ Details about how the project was created, e.g. its type and the original CLI ar
596
591
 
597
592
  ---
598
593
 
599
- ##### `postSynthesize` <a name="postSynthesize" id="@xpertss/projen-types.ActionSonarWorkflow.postSynthesize"></a>
594
+ ##### ~~`postSynthesize`~~ <a name="postSynthesize" id="@xpertss/projen-types.ActionSonarWorkflow.postSynthesize"></a>
600
595
 
601
596
  ```typescript
602
597
  public postSynthesize(): void
@@ -606,7 +601,7 @@ Called after synthesis.
606
601
 
607
602
  Order is *not* guaranteed.
608
603
 
609
- ##### `preSynthesize` <a name="preSynthesize" id="@xpertss/projen-types.ActionSonarWorkflow.preSynthesize"></a>
604
+ ##### ~~`preSynthesize`~~ <a name="preSynthesize" id="@xpertss/projen-types.ActionSonarWorkflow.preSynthesize"></a>
610
605
 
611
606
  ```typescript
612
607
  public preSynthesize(): void
@@ -614,7 +609,7 @@ public preSynthesize(): void
614
609
 
615
610
  Called before synthesis.
616
611
 
617
- ##### `projectCreation` <a name="projectCreation" id="@xpertss/projen-types.ActionSonarWorkflow.projectCreation"></a>
612
+ ##### ~~`projectCreation`~~ <a name="projectCreation" id="@xpertss/projen-types.ActionSonarWorkflow.projectCreation"></a>
618
613
 
619
614
  ```typescript
620
615
  public projectCreation(initProject: InitProject): void
@@ -633,7 +628,7 @@ Details about how the project was created, e.g. its type and the original CLI ar
633
628
 
634
629
  ---
635
630
 
636
- ##### `synthesize` <a name="synthesize" id="@xpertss/projen-types.ActionSonarWorkflow.synthesize"></a>
631
+ ##### ~~`synthesize`~~ <a name="synthesize" id="@xpertss/projen-types.ActionSonarWorkflow.synthesize"></a>
637
632
 
638
633
  ```typescript
639
634
  public synthesize(): void
@@ -650,7 +645,7 @@ Synthesizes files to the project output directory.
650
645
 
651
646
  ---
652
647
 
653
- ##### `isConstruct` <a name="isConstruct" id="@xpertss/projen-types.ActionSonarWorkflow.isConstruct"></a>
648
+ ##### ~~`isConstruct`~~ <a name="isConstruct" id="@xpertss/projen-types.ActionSonarWorkflow.isConstruct"></a>
654
649
 
655
650
  ```typescript
656
651
  import { ActionSonarWorkflow } from '@xpertss/projen-types'
@@ -682,7 +677,7 @@ Any object.
682
677
 
683
678
  ---
684
679
 
685
- ##### `isComponent` <a name="isComponent" id="@xpertss/projen-types.ActionSonarWorkflow.isComponent"></a>
680
+ ##### ~~`isComponent`~~ <a name="isComponent" id="@xpertss/projen-types.ActionSonarWorkflow.isComponent"></a>
686
681
 
687
682
  ```typescript
688
683
  import { ActionSonarWorkflow } from '@xpertss/projen-types'
@@ -708,7 +703,12 @@ Test whether the given construct is a component.
708
703
 
709
704
  ---
710
705
 
711
- ##### `node`<sup>Required</sup> <a name="node" id="@xpertss/projen-types.ActionSonarWorkflow.property.node"></a>
706
+ ##### ~~`node`~~<sup>Required</sup> <a name="node" id="@xpertss/projen-types.ActionSonarWorkflow.property.node"></a>
707
+
708
+ - *Deprecated:* Renamed to `SonarWorkflow` (now in `src/common/` and applied to
709
+ every project type, not just actions). Use `SonarWorkflow` instead; this
710
+ subclass is kept only so existing imports of `ActionSonarWorkflow` keep
711
+ compiling. It behaves identically to `SonarWorkflow`.
712
712
 
713
713
  ```typescript
714
714
  public readonly node: Node;
@@ -720,7 +720,12 @@ The tree node.
720
720
 
721
721
  ---
722
722
 
723
- ##### `project`<sup>Required</sup> <a name="project" id="@xpertss/projen-types.ActionSonarWorkflow.property.project"></a>
723
+ ##### ~~`project`~~<sup>Required</sup> <a name="project" id="@xpertss/projen-types.ActionSonarWorkflow.property.project"></a>
724
+
725
+ - *Deprecated:* Renamed to `SonarWorkflow` (now in `src/common/` and applied to
726
+ every project type, not just actions). Use `SonarWorkflow` instead; this
727
+ subclass is kept only so existing imports of `ActionSonarWorkflow` keep
728
+ compiling. It behaves identically to `SonarWorkflow`.
724
729
 
725
730
  ```typescript
726
731
  public readonly project: Project;
@@ -730,7 +735,12 @@ public readonly project: Project;
730
735
 
731
736
  ---
732
737
 
733
- ##### `workflow`<sup>Required</sup> <a name="workflow" id="@xpertss/projen-types.ActionSonarWorkflow.property.workflow"></a>
738
+ ##### ~~`workflow`~~<sup>Required</sup> <a name="workflow" id="@xpertss/projen-types.ActionSonarWorkflow.property.workflow"></a>
739
+
740
+ - *Deprecated:* Renamed to `SonarWorkflow` (now in `src/common/` and applied to
741
+ every project type, not just actions). Use `SonarWorkflow` instead; this
742
+ subclass is kept only so existing imports of `ActionSonarWorkflow` keep
743
+ compiling. It behaves identically to `SonarWorkflow`.
734
744
 
735
745
  ```typescript
736
746
  public readonly workflow: GithubWorkflow;
@@ -1634,6 +1644,7 @@ When given a project, this it the project itself.
1634
1644
  | <code><a href="#@xpertss/projen-types.CdkAppProject.property.cdkDeps">cdkDeps</a></code> | <code>projen.awscdk.AwsCdkDeps</code> | *No description.* |
1635
1645
  | <code><a href="#@xpertss/projen-types.CdkAppProject.property.cdkTasks">cdkTasks</a></code> | <code>projen.awscdk.CdkTasks</code> | Common CDK tasks. |
1636
1646
  | <code><a href="#@xpertss/projen-types.CdkAppProject.property.cdkVersion">cdkVersion</a></code> | <code>string</code> | The CDK version this app is using. |
1647
+ | <code><a href="#@xpertss/projen-types.CdkAppProject.property.sonarWorkflow">sonarWorkflow</a></code> | <code><a href="#@xpertss/projen-types.SonarWorkflow">SonarWorkflow</a></code> | Set only when `sonarHostUrl` is provided. |
1637
1648
 
1638
1649
  ---
1639
1650
 
@@ -2392,6 +2403,18 @@ The CDK version this app is using.
2392
2403
 
2393
2404
  ---
2394
2405
 
2406
+ ##### `sonarWorkflow`<sup>Optional</sup> <a name="sonarWorkflow" id="@xpertss/projen-types.CdkAppProject.property.sonarWorkflow"></a>
2407
+
2408
+ ```typescript
2409
+ public readonly sonarWorkflow: SonarWorkflow;
2410
+ ```
2411
+
2412
+ - *Type:* <a href="#@xpertss/projen-types.SonarWorkflow">SonarWorkflow</a>
2413
+
2414
+ Set only when `sonarHostUrl` is provided.
2415
+
2416
+ ---
2417
+
2395
2418
  #### Constants <a name="Constants" id="Constants"></a>
2396
2419
 
2397
2420
  | **Name** | **Type** | **Description** |
@@ -3335,6 +3358,7 @@ When given a project, this it the project itself.
3335
3358
  | <code><a href="#@xpertss/projen-types.CdkInfraProject.property.cdkDeps">cdkDeps</a></code> | <code>projen.awscdk.AwsCdkDeps</code> | *No description.* |
3336
3359
  | <code><a href="#@xpertss/projen-types.CdkInfraProject.property.cdkTasks">cdkTasks</a></code> | <code>projen.awscdk.CdkTasks</code> | Common CDK tasks. |
3337
3360
  | <code><a href="#@xpertss/projen-types.CdkInfraProject.property.cdkVersion">cdkVersion</a></code> | <code>string</code> | The CDK version this app is using. |
3361
+ | <code><a href="#@xpertss/projen-types.CdkInfraProject.property.sonarWorkflow">sonarWorkflow</a></code> | <code><a href="#@xpertss/projen-types.SonarWorkflow">SonarWorkflow</a></code> | Set only when `sonarHostUrl` is provided. |
3338
3362
 
3339
3363
  ---
3340
3364
 
@@ -4093,6 +4117,18 @@ The CDK version this app is using.
4093
4117
 
4094
4118
  ---
4095
4119
 
4120
+ ##### `sonarWorkflow`<sup>Optional</sup> <a name="sonarWorkflow" id="@xpertss/projen-types.CdkInfraProject.property.sonarWorkflow"></a>
4121
+
4122
+ ```typescript
4123
+ public readonly sonarWorkflow: SonarWorkflow;
4124
+ ```
4125
+
4126
+ - *Type:* <a href="#@xpertss/projen-types.SonarWorkflow">SonarWorkflow</a>
4127
+
4128
+ Set only when `sonarHostUrl` is provided.
4129
+
4130
+ ---
4131
+
4096
4132
  #### Constants <a name="Constants" id="Constants"></a>
4097
4133
 
4098
4134
  | **Name** | **Type** | **Description** |
@@ -4791,6 +4827,7 @@ When given a project, this it the project itself.
4791
4827
  | <code><a href="#@xpertss/projen-types.CdkTypescriptProject.property.cdkDeps">cdkDeps</a></code> | <code>projen.awscdk.AwsCdkDeps</code> | *No description.* |
4792
4828
  | <code><a href="#@xpertss/projen-types.CdkTypescriptProject.property.cdkTasks">cdkTasks</a></code> | <code>projen.awscdk.CdkTasks</code> | Common CDK tasks. |
4793
4829
  | <code><a href="#@xpertss/projen-types.CdkTypescriptProject.property.cdkVersion">cdkVersion</a></code> | <code>string</code> | The CDK version this app is using. |
4830
+ | <code><a href="#@xpertss/projen-types.CdkTypescriptProject.property.sonarWorkflow">sonarWorkflow</a></code> | <code><a href="#@xpertss/projen-types.SonarWorkflow">SonarWorkflow</a></code> | Set only when `sonarHostUrl` is provided. |
4794
4831
 
4795
4832
  ---
4796
4833
 
@@ -5549,6 +5586,18 @@ The CDK version this app is using.
5549
5586
 
5550
5587
  ---
5551
5588
 
5589
+ ##### `sonarWorkflow`<sup>Optional</sup> <a name="sonarWorkflow" id="@xpertss/projen-types.CdkTypescriptProject.property.sonarWorkflow"></a>
5590
+
5591
+ ```typescript
5592
+ public readonly sonarWorkflow: SonarWorkflow;
5593
+ ```
5594
+
5595
+ - *Type:* <a href="#@xpertss/projen-types.SonarWorkflow">SonarWorkflow</a>
5596
+
5597
+ Set only when `sonarHostUrl` is provided.
5598
+
5599
+ ---
5600
+
5552
5601
  #### Constants <a name="Constants" id="Constants"></a>
5553
5602
 
5554
5603
  | **Name** | **Type** | **Description** |
@@ -7370,7 +7419,7 @@ When given a project, this it the project itself.
7370
7419
  | <code><a href="#@xpertss/projen-types.GitHubActionProject.property.buildWorkflow">buildWorkflow</a></code> | <code><a href="#@xpertss/projen-types.ActionBuildWorkflow">ActionBuildWorkflow</a></code> | *No description.* |
7371
7420
  | <code><a href="#@xpertss/projen-types.GitHubActionProject.property.dogfoodWorkflow">dogfoodWorkflow</a></code> | <code><a href="#@xpertss/projen-types.ActionDogfoodWorkflow">ActionDogfoodWorkflow</a></code> | *No description.* |
7372
7421
  | <code><a href="#@xpertss/projen-types.GitHubActionProject.property.release">release</a></code> | <code>projen.release.Release</code> | *No description.* |
7373
- | <code><a href="#@xpertss/projen-types.GitHubActionProject.property.sonarWorkflow">sonarWorkflow</a></code> | <code><a href="#@xpertss/projen-types.ActionSonarWorkflow">ActionSonarWorkflow</a></code> | *No description.* |
7422
+ | <code><a href="#@xpertss/projen-types.GitHubActionProject.property.sonarWorkflow">sonarWorkflow</a></code> | <code><a href="#@xpertss/projen-types.SonarWorkflow">SonarWorkflow</a></code> | Set only when `sonarHostUrl` is provided. |
7374
7423
 
7375
7424
  ---
7376
7425
 
@@ -7771,13 +7820,15 @@ public readonly release: Release;
7771
7820
 
7772
7821
  ---
7773
7822
 
7774
- ##### `sonarWorkflow`<sup>Required</sup> <a name="sonarWorkflow" id="@xpertss/projen-types.GitHubActionProject.property.sonarWorkflow"></a>
7823
+ ##### `sonarWorkflow`<sup>Optional</sup> <a name="sonarWorkflow" id="@xpertss/projen-types.GitHubActionProject.property.sonarWorkflow"></a>
7775
7824
 
7776
7825
  ```typescript
7777
- public readonly sonarWorkflow: ActionSonarWorkflow;
7826
+ public readonly sonarWorkflow: SonarWorkflow;
7778
7827
  ```
7779
7828
 
7780
- - *Type:* <a href="#@xpertss/projen-types.ActionSonarWorkflow">ActionSonarWorkflow</a>
7829
+ - *Type:* <a href="#@xpertss/projen-types.SonarWorkflow">SonarWorkflow</a>
7830
+
7831
+ Set only when `sonarHostUrl` is provided.
7781
7832
 
7782
7833
  ---
7783
7834
 
@@ -8580,6 +8631,7 @@ When given a project, this it the project itself.
8580
8631
  | <code><a href="#@xpertss/projen-types.JavaAppProject.property.modules">modules</a></code> | <code><a href="#@xpertss/projen-types.MavenModule">MavenModule</a>[]</code> | The modules added with `addModule()`, in order. |
8581
8632
  | <code><a href="#@xpertss/projen-types.JavaAppProject.property.pom">pom</a></code> | <code><a href="#@xpertss/projen-types.MavenPom">MavenPom</a></code> | The root `pom.xml`. |
8582
8633
  | <code><a href="#@xpertss/projen-types.JavaAppProject.property.upgradeTask">upgradeTask</a></code> | <code>projen.Task</code> | Prints available dependency/plugin updates (`npx projen upgrade`). |
8634
+ | <code><a href="#@xpertss/projen-types.JavaAppProject.property.sonarWorkflow">sonarWorkflow</a></code> | <code><a href="#@xpertss/projen-types.SonarWorkflow">SonarWorkflow</a></code> | Set only when `sonarHostUrl` is provided. |
8583
8635
 
8584
8636
  ---
8585
8637
 
@@ -9022,6 +9074,18 @@ Prints available dependency/plugin updates (`npx projen upgrade`).
9022
9074
 
9023
9075
  ---
9024
9076
 
9077
+ ##### `sonarWorkflow`<sup>Optional</sup> <a name="sonarWorkflow" id="@xpertss/projen-types.JavaAppProject.property.sonarWorkflow"></a>
9078
+
9079
+ ```typescript
9080
+ public readonly sonarWorkflow: SonarWorkflow;
9081
+ ```
9082
+
9083
+ - *Type:* <a href="#@xpertss/projen-types.SonarWorkflow">SonarWorkflow</a>
9084
+
9085
+ Set only when `sonarHostUrl` is provided.
9086
+
9087
+ ---
9088
+
9025
9089
  #### Constants <a name="Constants" id="Constants"></a>
9026
9090
 
9027
9091
  | **Name** | **Type** | **Description** |
@@ -9593,6 +9657,7 @@ When given a project, this it the project itself.
9593
9657
  | <code><a href="#@xpertss/projen-types.JavaLibraryProject.property.modules">modules</a></code> | <code><a href="#@xpertss/projen-types.MavenModule">MavenModule</a>[]</code> | The modules added with `addModule()`, in order. |
9594
9658
  | <code><a href="#@xpertss/projen-types.JavaLibraryProject.property.pom">pom</a></code> | <code><a href="#@xpertss/projen-types.MavenPom">MavenPom</a></code> | The root `pom.xml`. |
9595
9659
  | <code><a href="#@xpertss/projen-types.JavaLibraryProject.property.upgradeTask">upgradeTask</a></code> | <code>projen.Task</code> | Prints available dependency/plugin updates (`npx projen upgrade`). |
9660
+ | <code><a href="#@xpertss/projen-types.JavaLibraryProject.property.sonarWorkflow">sonarWorkflow</a></code> | <code><a href="#@xpertss/projen-types.SonarWorkflow">SonarWorkflow</a></code> | Set only when `sonarHostUrl` is provided. |
9596
9661
 
9597
9662
  ---
9598
9663
 
@@ -10035,6 +10100,18 @@ Prints available dependency/plugin updates (`npx projen upgrade`).
10035
10100
 
10036
10101
  ---
10037
10102
 
10103
+ ##### `sonarWorkflow`<sup>Optional</sup> <a name="sonarWorkflow" id="@xpertss/projen-types.JavaLibraryProject.property.sonarWorkflow"></a>
10104
+
10105
+ ```typescript
10106
+ public readonly sonarWorkflow: SonarWorkflow;
10107
+ ```
10108
+
10109
+ - *Type:* <a href="#@xpertss/projen-types.SonarWorkflow">SonarWorkflow</a>
10110
+
10111
+ Set only when `sonarHostUrl` is provided.
10112
+
10113
+ ---
10114
+
10038
10115
  #### Constants <a name="Constants" id="Constants"></a>
10039
10116
 
10040
10117
  | **Name** | **Type** | **Description** |
@@ -10075,8 +10152,9 @@ usable on its own (`projen new ... java_maven`).
10075
10152
  modules inherit its plugins and test dependencies.
10076
10153
  - `npx projen build` synthesizes, then runs Maven once: `mvn -B verify`
10077
10154
  (unit tests via surefire, `*IT` tests via failsafe).
10078
- - CI: a PR build (with an optional SonarQube scan), the projen drift
10079
- check, and a nightly report-only update check.
10155
+ - CI: a PR build, the projen drift check, an optional SonarCloud scan
10156
+ (`sonar.yml`, when `sonarHostUrl` is set), and a nightly report-only
10157
+ update check.
10080
10158
 
10081
10159
  #### Initializers <a name="Initializers" id="@xpertss/projen-types.JavaMavenProject.Initializer"></a>
10082
10160
 
@@ -10618,6 +10696,7 @@ When given a project, this it the project itself.
10618
10696
  | <code><a href="#@xpertss/projen-types.JavaMavenProject.property.modules">modules</a></code> | <code><a href="#@xpertss/projen-types.MavenModule">MavenModule</a>[]</code> | The modules added with `addModule()`, in order. |
10619
10697
  | <code><a href="#@xpertss/projen-types.JavaMavenProject.property.pom">pom</a></code> | <code><a href="#@xpertss/projen-types.MavenPom">MavenPom</a></code> | The root `pom.xml`. |
10620
10698
  | <code><a href="#@xpertss/projen-types.JavaMavenProject.property.upgradeTask">upgradeTask</a></code> | <code>projen.Task</code> | Prints available dependency/plugin updates (`npx projen upgrade`). |
10699
+ | <code><a href="#@xpertss/projen-types.JavaMavenProject.property.sonarWorkflow">sonarWorkflow</a></code> | <code><a href="#@xpertss/projen-types.SonarWorkflow">SonarWorkflow</a></code> | Set only when `sonarHostUrl` is provided. |
10621
10700
 
10622
10701
  ---
10623
10702
 
@@ -11060,6 +11139,18 @@ Prints available dependency/plugin updates (`npx projen upgrade`).
11060
11139
 
11061
11140
  ---
11062
11141
 
11142
+ ##### `sonarWorkflow`<sup>Optional</sup> <a name="sonarWorkflow" id="@xpertss/projen-types.JavaMavenProject.property.sonarWorkflow"></a>
11143
+
11144
+ ```typescript
11145
+ public readonly sonarWorkflow: SonarWorkflow;
11146
+ ```
11147
+
11148
+ - *Type:* <a href="#@xpertss/projen-types.SonarWorkflow">SonarWorkflow</a>
11149
+
11150
+ Set only when `sonarHostUrl` is provided.
11151
+
11152
+ ---
11153
+
11063
11154
  #### Constants <a name="Constants" id="Constants"></a>
11064
11155
 
11065
11156
  | **Name** | **Type** | **Description** |
@@ -11646,6 +11737,7 @@ When given a project, this it the project itself.
11646
11737
  | <code><a href="#@xpertss/projen-types.JavaServiceProject.property.modules">modules</a></code> | <code><a href="#@xpertss/projen-types.MavenModule">MavenModule</a>[]</code> | The modules added with `addModule()`, in order. |
11647
11738
  | <code><a href="#@xpertss/projen-types.JavaServiceProject.property.pom">pom</a></code> | <code><a href="#@xpertss/projen-types.MavenPom">MavenPom</a></code> | The root `pom.xml`. |
11648
11739
  | <code><a href="#@xpertss/projen-types.JavaServiceProject.property.upgradeTask">upgradeTask</a></code> | <code>projen.Task</code> | Prints available dependency/plugin updates (`npx projen upgrade`). |
11740
+ | <code><a href="#@xpertss/projen-types.JavaServiceProject.property.sonarWorkflow">sonarWorkflow</a></code> | <code><a href="#@xpertss/projen-types.SonarWorkflow">SonarWorkflow</a></code> | Set only when `sonarHostUrl` is provided. |
11649
11741
  | <code><a href="#@xpertss/projen-types.JavaServiceProject.property.springBootVersion">springBootVersion</a></code> | <code>string</code> | The Spring Boot version (BOM and Maven plugin). |
11650
11742
 
11651
11743
  ---
@@ -12089,6 +12181,18 @@ Prints available dependency/plugin updates (`npx projen upgrade`).
12089
12181
 
12090
12182
  ---
12091
12183
 
12184
+ ##### `sonarWorkflow`<sup>Optional</sup> <a name="sonarWorkflow" id="@xpertss/projen-types.JavaServiceProject.property.sonarWorkflow"></a>
12185
+
12186
+ ```typescript
12187
+ public readonly sonarWorkflow: SonarWorkflow;
12188
+ ```
12189
+
12190
+ - *Type:* <a href="#@xpertss/projen-types.SonarWorkflow">SonarWorkflow</a>
12191
+
12192
+ Set only when `sonarHostUrl` is provided.
12193
+
12194
+ ---
12195
+
12092
12196
  ##### `springBootVersion`<sup>Required</sup> <a name="springBootVersion" id="@xpertss/projen-types.JavaServiceProject.property.springBootVersion"></a>
12093
12197
 
12094
12198
  ```typescript
@@ -12694,6 +12798,7 @@ When given a project, this it the project itself.
12694
12798
  | <code><a href="#@xpertss/projen-types.JavaSpringBootProject.property.modules">modules</a></code> | <code><a href="#@xpertss/projen-types.MavenModule">MavenModule</a>[]</code> | The modules added with `addModule()`, in order. |
12695
12799
  | <code><a href="#@xpertss/projen-types.JavaSpringBootProject.property.pom">pom</a></code> | <code><a href="#@xpertss/projen-types.MavenPom">MavenPom</a></code> | The root `pom.xml`. |
12696
12800
  | <code><a href="#@xpertss/projen-types.JavaSpringBootProject.property.upgradeTask">upgradeTask</a></code> | <code>projen.Task</code> | Prints available dependency/plugin updates (`npx projen upgrade`). |
12801
+ | <code><a href="#@xpertss/projen-types.JavaSpringBootProject.property.sonarWorkflow">sonarWorkflow</a></code> | <code><a href="#@xpertss/projen-types.SonarWorkflow">SonarWorkflow</a></code> | Set only when `sonarHostUrl` is provided. |
12697
12802
  | <code><a href="#@xpertss/projen-types.JavaSpringBootProject.property.springBootVersion">springBootVersion</a></code> | <code>string</code> | The Spring Boot version (BOM and Maven plugin). |
12698
12803
 
12699
12804
  ---
@@ -13137,6 +13242,18 @@ Prints available dependency/plugin updates (`npx projen upgrade`).
13137
13242
 
13138
13243
  ---
13139
13244
 
13245
+ ##### `sonarWorkflow`<sup>Optional</sup> <a name="sonarWorkflow" id="@xpertss/projen-types.JavaSpringBootProject.property.sonarWorkflow"></a>
13246
+
13247
+ ```typescript
13248
+ public readonly sonarWorkflow: SonarWorkflow;
13249
+ ```
13250
+
13251
+ - *Type:* <a href="#@xpertss/projen-types.SonarWorkflow">SonarWorkflow</a>
13252
+
13253
+ Set only when `sonarHostUrl` is provided.
13254
+
13255
+ ---
13256
+
13140
13257
  ##### `springBootVersion`<sup>Required</sup> <a name="springBootVersion" id="@xpertss/projen-types.JavaSpringBootProject.property.springBootVersion"></a>
13141
13258
 
13142
13259
  ```typescript
@@ -14824,32 +14941,39 @@ public readonly workflow: GithubWorkflow;
14824
14941
  ---
14825
14942
 
14826
14943
 
14827
- ### WorkflowChangeNoticeWorkflow <a name="WorkflowChangeNoticeWorkflow" id="@xpertss/projen-types.WorkflowChangeNoticeWorkflow"></a>
14944
+ ### SonarWorkflow <a name="SonarWorkflow" id="@xpertss/projen-types.SonarWorkflow"></a>
14828
14945
 
14829
- #### Initializers <a name="Initializers" id="@xpertss/projen-types.WorkflowChangeNoticeWorkflow.Initializer"></a>
14946
+ AD-001 Layer 2: SonarCloud via the Scanner CLI only (never `SonarSource/sonarqube-scan-action` - third-party, and it carried a security advisory).
14947
+
14948
+ `sonar.projectKey` defaults to
14949
+ `${sonarOrganization}_${name}` (the org + project key SonarCloud uses);
14950
+ `sonar.inclusions` is emitted only when provided, since the defaults are
14951
+ enough for default-recognized languages.
14952
+
14953
+ #### Initializers <a name="Initializers" id="@xpertss/projen-types.SonarWorkflow.Initializer"></a>
14830
14954
 
14831
14955
  ```typescript
14832
- import { WorkflowChangeNoticeWorkflow } from '@xpertss/projen-types'
14956
+ import { SonarWorkflow } from '@xpertss/projen-types'
14833
14957
 
14834
- new WorkflowChangeNoticeWorkflow(scope: GitHubProject, options?: WorkflowChangeNoticeWorkflowOptions)
14958
+ new SonarWorkflow(scope: GitHubProject, options: SonarWorkflowOptions)
14835
14959
  ```
14836
14960
 
14837
14961
  | **Name** | **Type** | **Description** |
14838
14962
  | --- | --- | --- |
14839
- | <code><a href="#@xpertss/projen-types.WorkflowChangeNoticeWorkflow.Initializer.parameter.scope">scope</a></code> | <code>projen.github.GitHubProject</code> | *No description.* |
14840
- | <code><a href="#@xpertss/projen-types.WorkflowChangeNoticeWorkflow.Initializer.parameter.options">options</a></code> | <code><a href="#@xpertss/projen-types.WorkflowChangeNoticeWorkflowOptions">WorkflowChangeNoticeWorkflowOptions</a></code> | *No description.* |
14963
+ | <code><a href="#@xpertss/projen-types.SonarWorkflow.Initializer.parameter.scope">scope</a></code> | <code>projen.github.GitHubProject</code> | *No description.* |
14964
+ | <code><a href="#@xpertss/projen-types.SonarWorkflow.Initializer.parameter.options">options</a></code> | <code><a href="#@xpertss/projen-types.SonarWorkflowOptions">SonarWorkflowOptions</a></code> | *No description.* |
14841
14965
 
14842
14966
  ---
14843
14967
 
14844
- ##### `scope`<sup>Required</sup> <a name="scope" id="@xpertss/projen-types.WorkflowChangeNoticeWorkflow.Initializer.parameter.scope"></a>
14968
+ ##### `scope`<sup>Required</sup> <a name="scope" id="@xpertss/projen-types.SonarWorkflow.Initializer.parameter.scope"></a>
14845
14969
 
14846
14970
  - *Type:* projen.github.GitHubProject
14847
14971
 
14848
14972
  ---
14849
14973
 
14850
- ##### `options`<sup>Optional</sup> <a name="options" id="@xpertss/projen-types.WorkflowChangeNoticeWorkflow.Initializer.parameter.options"></a>
14974
+ ##### `options`<sup>Required</sup> <a name="options" id="@xpertss/projen-types.SonarWorkflow.Initializer.parameter.options"></a>
14851
14975
 
14852
- - *Type:* <a href="#@xpertss/projen-types.WorkflowChangeNoticeWorkflowOptions">WorkflowChangeNoticeWorkflowOptions</a>
14976
+ - *Type:* <a href="#@xpertss/projen-types.SonarWorkflowOptions">SonarWorkflowOptions</a>
14853
14977
 
14854
14978
  ---
14855
14979
 
@@ -14857,17 +14981,17 @@ new WorkflowChangeNoticeWorkflow(scope: GitHubProject, options?: WorkflowChangeN
14857
14981
 
14858
14982
  | **Name** | **Description** |
14859
14983
  | --- | --- |
14860
- | <code><a href="#@xpertss/projen-types.WorkflowChangeNoticeWorkflow.toString">toString</a></code> | Returns a string representation of this construct. |
14861
- | <code><a href="#@xpertss/projen-types.WorkflowChangeNoticeWorkflow.with">with</a></code> | Applies one or more mixins to this construct. |
14862
- | <code><a href="#@xpertss/projen-types.WorkflowChangeNoticeWorkflow.postProjectCreation">postProjectCreation</a></code> | Called once, right after `postSynthesize()`, only when the project is created for the first time. |
14863
- | <code><a href="#@xpertss/projen-types.WorkflowChangeNoticeWorkflow.postSynthesize">postSynthesize</a></code> | Called after synthesis. |
14864
- | <code><a href="#@xpertss/projen-types.WorkflowChangeNoticeWorkflow.preSynthesize">preSynthesize</a></code> | Called before synthesis. |
14865
- | <code><a href="#@xpertss/projen-types.WorkflowChangeNoticeWorkflow.projectCreation">projectCreation</a></code> | Called once, right after `synthesize()`, only when the project is created for the first time. |
14866
- | <code><a href="#@xpertss/projen-types.WorkflowChangeNoticeWorkflow.synthesize">synthesize</a></code> | Synthesizes files to the project output directory. |
14984
+ | <code><a href="#@xpertss/projen-types.SonarWorkflow.toString">toString</a></code> | Returns a string representation of this construct. |
14985
+ | <code><a href="#@xpertss/projen-types.SonarWorkflow.with">with</a></code> | Applies one or more mixins to this construct. |
14986
+ | <code><a href="#@xpertss/projen-types.SonarWorkflow.postProjectCreation">postProjectCreation</a></code> | Called once, right after `postSynthesize()`, only when the project is created for the first time. |
14987
+ | <code><a href="#@xpertss/projen-types.SonarWorkflow.postSynthesize">postSynthesize</a></code> | Called after synthesis. |
14988
+ | <code><a href="#@xpertss/projen-types.SonarWorkflow.preSynthesize">preSynthesize</a></code> | Called before synthesis. |
14989
+ | <code><a href="#@xpertss/projen-types.SonarWorkflow.projectCreation">projectCreation</a></code> | Called once, right after `synthesize()`, only when the project is created for the first time. |
14990
+ | <code><a href="#@xpertss/projen-types.SonarWorkflow.synthesize">synthesize</a></code> | Synthesizes files to the project output directory. |
14867
14991
 
14868
14992
  ---
14869
14993
 
14870
- ##### `toString` <a name="toString" id="@xpertss/projen-types.WorkflowChangeNoticeWorkflow.toString"></a>
14994
+ ##### `toString` <a name="toString" id="@xpertss/projen-types.SonarWorkflow.toString"></a>
14871
14995
 
14872
14996
  ```typescript
14873
14997
  public toString(): string
@@ -14875,7 +14999,7 @@ public toString(): string
14875
14999
 
14876
15000
  Returns a string representation of this construct.
14877
15001
 
14878
- ##### `with` <a name="with" id="@xpertss/projen-types.WorkflowChangeNoticeWorkflow.with"></a>
15002
+ ##### `with` <a name="with" id="@xpertss/projen-types.SonarWorkflow.with"></a>
14879
15003
 
14880
15004
  ```typescript
14881
15005
  public with(mixins: ...IMixin[]): IConstruct
@@ -14888,7 +15012,7 @@ start of the call, so constructs added by a mixin will not be visited.
14888
15012
  Use multiple `with()` calls if subsequent mixins should apply to added
14889
15013
  constructs.
14890
15014
 
14891
- ###### `mixins`<sup>Required</sup> <a name="mixins" id="@xpertss/projen-types.WorkflowChangeNoticeWorkflow.with.parameter.mixins"></a>
15015
+ ###### `mixins`<sup>Required</sup> <a name="mixins" id="@xpertss/projen-types.SonarWorkflow.with.parameter.mixins"></a>
14892
15016
 
14893
15017
  - *Type:* ...constructs.IMixin[]
14894
15018
 
@@ -14896,7 +15020,7 @@ The mixins to apply.
14896
15020
 
14897
15021
  ---
14898
15022
 
14899
- ##### `postProjectCreation` <a name="postProjectCreation" id="@xpertss/projen-types.WorkflowChangeNoticeWorkflow.postProjectCreation"></a>
15023
+ ##### `postProjectCreation` <a name="postProjectCreation" id="@xpertss/projen-types.SonarWorkflow.postProjectCreation"></a>
14900
15024
 
14901
15025
  ```typescript
14902
15026
  public postProjectCreation(initProject: InitProject): void
@@ -14909,7 +15033,7 @@ It is also skipped when post-synthesis steps are disabled, e.g. `--no-post` or `
14909
15033
  Use it for one-off setup that can be turned off by the user, like running a task to give the user immediate
14910
15034
  feedback on their new project. Order across components is not guaranteed.
14911
15035
 
14912
- ###### `initProject`<sup>Required</sup> <a name="initProject" id="@xpertss/projen-types.WorkflowChangeNoticeWorkflow.postProjectCreation.parameter.initProject"></a>
15036
+ ###### `initProject`<sup>Required</sup> <a name="initProject" id="@xpertss/projen-types.SonarWorkflow.postProjectCreation.parameter.initProject"></a>
14913
15037
 
14914
15038
  - *Type:* projen.InitProject
14915
15039
 
@@ -14917,7 +15041,7 @@ Details about how the project was created, e.g. its type and the original CLI ar
14917
15041
 
14918
15042
  ---
14919
15043
 
14920
- ##### `postSynthesize` <a name="postSynthesize" id="@xpertss/projen-types.WorkflowChangeNoticeWorkflow.postSynthesize"></a>
15044
+ ##### `postSynthesize` <a name="postSynthesize" id="@xpertss/projen-types.SonarWorkflow.postSynthesize"></a>
14921
15045
 
14922
15046
  ```typescript
14923
15047
  public postSynthesize(): void
@@ -14927,7 +15051,7 @@ Called after synthesis.
14927
15051
 
14928
15052
  Order is *not* guaranteed.
14929
15053
 
14930
- ##### `preSynthesize` <a name="preSynthesize" id="@xpertss/projen-types.WorkflowChangeNoticeWorkflow.preSynthesize"></a>
15054
+ ##### `preSynthesize` <a name="preSynthesize" id="@xpertss/projen-types.SonarWorkflow.preSynthesize"></a>
14931
15055
 
14932
15056
  ```typescript
14933
15057
  public preSynthesize(): void
@@ -14935,7 +15059,7 @@ public preSynthesize(): void
14935
15059
 
14936
15060
  Called before synthesis.
14937
15061
 
14938
- ##### `projectCreation` <a name="projectCreation" id="@xpertss/projen-types.WorkflowChangeNoticeWorkflow.projectCreation"></a>
15062
+ ##### `projectCreation` <a name="projectCreation" id="@xpertss/projen-types.SonarWorkflow.projectCreation"></a>
14939
15063
 
14940
15064
  ```typescript
14941
15065
  public projectCreation(initProject: InitProject): void
@@ -14946,7 +15070,7 @@ Called once, right after `synthesize()`, only when the project is created for th
14946
15070
  It does not run on later `projen` invocations. It only fires for `projen new` (or `Projects.createProject`).
14947
15071
  Use it for deterministic, one-off file generation. Order across components is not guaranteed.
14948
15072
 
14949
- ###### `initProject`<sup>Required</sup> <a name="initProject" id="@xpertss/projen-types.WorkflowChangeNoticeWorkflow.projectCreation.parameter.initProject"></a>
15073
+ ###### `initProject`<sup>Required</sup> <a name="initProject" id="@xpertss/projen-types.SonarWorkflow.projectCreation.parameter.initProject"></a>
14950
15074
 
14951
15075
  - *Type:* projen.InitProject
14952
15076
 
@@ -14954,7 +15078,7 @@ Details about how the project was created, e.g. its type and the original CLI ar
14954
15078
 
14955
15079
  ---
14956
15080
 
14957
- ##### `synthesize` <a name="synthesize" id="@xpertss/projen-types.WorkflowChangeNoticeWorkflow.synthesize"></a>
15081
+ ##### `synthesize` <a name="synthesize" id="@xpertss/projen-types.SonarWorkflow.synthesize"></a>
14958
15082
 
14959
15083
  ```typescript
14960
15084
  public synthesize(): void
@@ -14966,17 +15090,17 @@ Synthesizes files to the project output directory.
14966
15090
 
14967
15091
  | **Name** | **Description** |
14968
15092
  | --- | --- |
14969
- | <code><a href="#@xpertss/projen-types.WorkflowChangeNoticeWorkflow.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
14970
- | <code><a href="#@xpertss/projen-types.WorkflowChangeNoticeWorkflow.isComponent">isComponent</a></code> | Test whether the given construct is a component. |
15093
+ | <code><a href="#@xpertss/projen-types.SonarWorkflow.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
15094
+ | <code><a href="#@xpertss/projen-types.SonarWorkflow.isComponent">isComponent</a></code> | Test whether the given construct is a component. |
14971
15095
 
14972
15096
  ---
14973
15097
 
14974
- ##### `isConstruct` <a name="isConstruct" id="@xpertss/projen-types.WorkflowChangeNoticeWorkflow.isConstruct"></a>
15098
+ ##### `isConstruct` <a name="isConstruct" id="@xpertss/projen-types.SonarWorkflow.isConstruct"></a>
14975
15099
 
14976
15100
  ```typescript
14977
- import { WorkflowChangeNoticeWorkflow } from '@xpertss/projen-types'
15101
+ import { SonarWorkflow } from '@xpertss/projen-types'
14978
15102
 
14979
- WorkflowChangeNoticeWorkflow.isConstruct(x: any)
15103
+ SonarWorkflow.isConstruct(x: any)
14980
15104
  ```
14981
15105
 
14982
15106
  Checks if `x` is a construct.
@@ -14995,7 +15119,7 @@ library can be accidentally installed, and `instanceof` will behave
14995
15119
  unpredictably. It is safest to avoid using `instanceof`, and using
14996
15120
  this type-testing method instead.
14997
15121
 
14998
- ###### `x`<sup>Required</sup> <a name="x" id="@xpertss/projen-types.WorkflowChangeNoticeWorkflow.isConstruct.parameter.x"></a>
15122
+ ###### `x`<sup>Required</sup> <a name="x" id="@xpertss/projen-types.SonarWorkflow.isConstruct.parameter.x"></a>
14999
15123
 
15000
15124
  - *Type:* any
15001
15125
 
@@ -15003,17 +15127,17 @@ Any object.
15003
15127
 
15004
15128
  ---
15005
15129
 
15006
- ##### `isComponent` <a name="isComponent" id="@xpertss/projen-types.WorkflowChangeNoticeWorkflow.isComponent"></a>
15130
+ ##### `isComponent` <a name="isComponent" id="@xpertss/projen-types.SonarWorkflow.isComponent"></a>
15007
15131
 
15008
15132
  ```typescript
15009
- import { WorkflowChangeNoticeWorkflow } from '@xpertss/projen-types'
15133
+ import { SonarWorkflow } from '@xpertss/projen-types'
15010
15134
 
15011
- WorkflowChangeNoticeWorkflow.isComponent(x: any)
15135
+ SonarWorkflow.isComponent(x: any)
15012
15136
  ```
15013
15137
 
15014
15138
  Test whether the given construct is a component.
15015
15139
 
15016
- ###### `x`<sup>Required</sup> <a name="x" id="@xpertss/projen-types.WorkflowChangeNoticeWorkflow.isComponent.parameter.x"></a>
15140
+ ###### `x`<sup>Required</sup> <a name="x" id="@xpertss/projen-types.SonarWorkflow.isComponent.parameter.x"></a>
15017
15141
 
15018
15142
  - *Type:* any
15019
15143
 
@@ -15023,13 +15147,13 @@ Test whether the given construct is a component.
15023
15147
 
15024
15148
  | **Name** | **Type** | **Description** |
15025
15149
  | --- | --- | --- |
15026
- | <code><a href="#@xpertss/projen-types.WorkflowChangeNoticeWorkflow.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
15027
- | <code><a href="#@xpertss/projen-types.WorkflowChangeNoticeWorkflow.property.project">project</a></code> | <code>projen.Project</code> | *No description.* |
15028
- | <code><a href="#@xpertss/projen-types.WorkflowChangeNoticeWorkflow.property.workflow">workflow</a></code> | <code>projen.github.GithubWorkflow</code> | *No description.* |
15150
+ | <code><a href="#@xpertss/projen-types.SonarWorkflow.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
15151
+ | <code><a href="#@xpertss/projen-types.SonarWorkflow.property.project">project</a></code> | <code>projen.Project</code> | *No description.* |
15152
+ | <code><a href="#@xpertss/projen-types.SonarWorkflow.property.workflow">workflow</a></code> | <code>projen.github.GithubWorkflow</code> | *No description.* |
15029
15153
 
15030
15154
  ---
15031
15155
 
15032
- ##### `node`<sup>Required</sup> <a name="node" id="@xpertss/projen-types.WorkflowChangeNoticeWorkflow.property.node"></a>
15156
+ ##### `node`<sup>Required</sup> <a name="node" id="@xpertss/projen-types.SonarWorkflow.property.node"></a>
15033
15157
 
15034
15158
  ```typescript
15035
15159
  public readonly node: Node;
@@ -15041,7 +15165,7 @@ The tree node.
15041
15165
 
15042
15166
  ---
15043
15167
 
15044
- ##### `project`<sup>Required</sup> <a name="project" id="@xpertss/projen-types.WorkflowChangeNoticeWorkflow.property.project"></a>
15168
+ ##### `project`<sup>Required</sup> <a name="project" id="@xpertss/projen-types.SonarWorkflow.property.project"></a>
15045
15169
 
15046
15170
  ```typescript
15047
15171
  public readonly project: Project;
@@ -15051,7 +15175,7 @@ public readonly project: Project;
15051
15175
 
15052
15176
  ---
15053
15177
 
15054
- ##### `workflow`<sup>Required</sup> <a name="workflow" id="@xpertss/projen-types.WorkflowChangeNoticeWorkflow.property.workflow"></a>
15178
+ ##### `workflow`<sup>Required</sup> <a name="workflow" id="@xpertss/projen-types.SonarWorkflow.property.workflow"></a>
15055
15179
 
15056
15180
  ```typescript
15057
15181
  public readonly workflow: GithubWorkflow;
@@ -15062,213 +15186,381 @@ public readonly workflow: GithubWorkflow;
15062
15186
  ---
15063
15187
 
15064
15188
 
15065
- ## Structs <a name="Structs" id="Structs"></a>
15066
-
15067
- ### ActionDogfoodOptions <a name="ActionDogfoodOptions" id="@xpertss/projen-types.ActionDogfoodOptions"></a>
15189
+ ### WorkflowChangeNoticeWorkflow <a name="WorkflowChangeNoticeWorkflow" id="@xpertss/projen-types.WorkflowChangeNoticeWorkflow"></a>
15068
15190
 
15069
- #### Initializer <a name="Initializer" id="@xpertss/projen-types.ActionDogfoodOptions.Initializer"></a>
15191
+ #### Initializers <a name="Initializers" id="@xpertss/projen-types.WorkflowChangeNoticeWorkflow.Initializer"></a>
15070
15192
 
15071
15193
  ```typescript
15072
- import { ActionDogfoodOptions } from '@xpertss/projen-types'
15194
+ import { WorkflowChangeNoticeWorkflow } from '@xpertss/projen-types'
15073
15195
 
15074
- const actionDogfoodOptions: ActionDogfoodOptions = { ... }
15196
+ new WorkflowChangeNoticeWorkflow(scope: GitHubProject, options?: WorkflowChangeNoticeWorkflowOptions)
15075
15197
  ```
15076
15198
 
15077
- #### Properties <a name="Properties" id="Properties"></a>
15078
-
15079
15199
  | **Name** | **Type** | **Description** |
15080
15200
  | --- | --- | --- |
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
- | <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. |
15201
+ | <code><a href="#@xpertss/projen-types.WorkflowChangeNoticeWorkflow.Initializer.parameter.scope">scope</a></code> | <code>projen.github.GitHubProject</code> | *No description.* |
15202
+ | <code><a href="#@xpertss/projen-types.WorkflowChangeNoticeWorkflow.Initializer.parameter.options">options</a></code> | <code><a href="#@xpertss/projen-types.WorkflowChangeNoticeWorkflowOptions">WorkflowChangeNoticeWorkflowOptions</a></code> | *No description.* |
15083
15203
 
15084
15204
  ---
15085
15205
 
15086
- ##### `cleanup`<sup>Required</sup> <a name="cleanup" id="@xpertss/projen-types.ActionDogfoodOptions.property.cleanup"></a>
15206
+ ##### `scope`<sup>Required</sup> <a name="scope" id="@xpertss/projen-types.WorkflowChangeNoticeWorkflow.Initializer.parameter.scope"></a>
15087
15207
 
15088
- ```typescript
15089
- public readonly cleanup: string[];
15090
- ```
15208
+ - *Type:* projen.github.GitHubProject
15091
15209
 
15092
- - *Type:* string[]
15210
+ ---
15093
15211
 
15094
- Shell cleanup, run once at the end with `if: always()` so repeated runs start clean.
15212
+ ##### `options`<sup>Optional</sup> <a name="options" id="@xpertss/projen-types.WorkflowChangeNoticeWorkflow.Initializer.parameter.options"></a>
15095
15213
 
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.
15214
+ - *Type:* <a href="#@xpertss/projen-types.WorkflowChangeNoticeWorkflowOptions">WorkflowChangeNoticeWorkflowOptions</a>
15099
15215
 
15100
15216
  ---
15101
15217
 
15102
- ##### `scenario`<sup>Required</sup> <a name="scenario" id="@xpertss/projen-types.ActionDogfoodOptions.property.scenario"></a>
15103
-
15104
- ```typescript
15105
- public readonly scenario: ActionDogfoodStep[];
15106
- ```
15107
-
15108
- - *Type:* <a href="#@xpertss/projen-types.ActionDogfoodStep">ActionDogfoodStep</a>[]
15218
+ #### Methods <a name="Methods" id="Methods"></a>
15109
15219
 
15110
- One or more scenario steps, run in order, in the dogfood job.
15220
+ | **Name** | **Description** |
15221
+ | --- | --- |
15222
+ | <code><a href="#@xpertss/projen-types.WorkflowChangeNoticeWorkflow.toString">toString</a></code> | Returns a string representation of this construct. |
15223
+ | <code><a href="#@xpertss/projen-types.WorkflowChangeNoticeWorkflow.with">with</a></code> | Applies one or more mixins to this construct. |
15224
+ | <code><a href="#@xpertss/projen-types.WorkflowChangeNoticeWorkflow.postProjectCreation">postProjectCreation</a></code> | Called once, right after `postSynthesize()`, only when the project is created for the first time. |
15225
+ | <code><a href="#@xpertss/projen-types.WorkflowChangeNoticeWorkflow.postSynthesize">postSynthesize</a></code> | Called after synthesis. |
15226
+ | <code><a href="#@xpertss/projen-types.WorkflowChangeNoticeWorkflow.preSynthesize">preSynthesize</a></code> | Called before synthesis. |
15227
+ | <code><a href="#@xpertss/projen-types.WorkflowChangeNoticeWorkflow.projectCreation">projectCreation</a></code> | Called once, right after `synthesize()`, only when the project is created for the first time. |
15228
+ | <code><a href="#@xpertss/projen-types.WorkflowChangeNoticeWorkflow.synthesize">synthesize</a></code> | Synthesizes files to the project output directory. |
15111
15229
 
15112
15230
  ---
15113
15231
 
15114
- ### ActionDogfoodStep <a name="ActionDogfoodStep" id="@xpertss/projen-types.ActionDogfoodStep"></a>
15115
-
15116
- One invocation of the action within the dogfood scenario: optional fixture setup, the `uses: ./` call with this step's inputs, then this step's assertions. Most actions need exactly one; actions with a re-run/no-op behavior to verify (e.g. F006's reuse-the-PR path, F007's no-op-commit path) declare two.
15117
-
15118
- #### Initializer <a name="Initializer" id="@xpertss/projen-types.ActionDogfoodStep.Initializer"></a>
15232
+ ##### `toString` <a name="toString" id="@xpertss/projen-types.WorkflowChangeNoticeWorkflow.toString"></a>
15119
15233
 
15120
15234
  ```typescript
15121
- import { ActionDogfoodStep } from '@xpertss/projen-types'
15122
-
15123
- const actionDogfoodStep: ActionDogfoodStep = { ... }
15235
+ public toString(): string
15124
15236
  ```
15125
15237
 
15126
- #### Properties <a name="Properties" id="Properties"></a>
15127
-
15128
- | **Name** | **Type** | **Description** |
15129
- | --- | --- | --- |
15130
- | <code><a href="#@xpertss/projen-types.ActionDogfoodStep.property.assertions">assertions</a></code> | <code>string[]</code> | Shell assertions after this invocation - the job fails unless every one exits 0. |
15131
- | <code><a href="#@xpertss/projen-types.ActionDogfoodStep.property.name">name</a></code> | <code>string</code> | Label used to name this step-group's generated workflow steps. |
15132
- | <code><a href="#@xpertss/projen-types.ActionDogfoodStep.property.fixtureSteps">fixtureSteps</a></code> | <code>string[]</code> | Shell steps executed before this invocation, to produce or alter fixture state. |
15133
- | <code><a href="#@xpertss/projen-types.ActionDogfoodStep.property.id">id</a></code> | <code>string</code> | Step id for the `uses: ./` invocation, so a later assertion can reference this step's outputs via `${{ steps.<id>.outputs.<name> }}`. |
15134
- | <code><a href="#@xpertss/projen-types.ActionDogfoodStep.property.inputs">inputs</a></code> | <code>{[ key: string ]: string}</code> | `with:` inputs for this invocation's local `uses: ./` call. |
15135
-
15136
- ---
15238
+ Returns a string representation of this construct.
15137
15239
 
15138
- ##### `assertions`<sup>Required</sup> <a name="assertions" id="@xpertss/projen-types.ActionDogfoodStep.property.assertions"></a>
15240
+ ##### `with` <a name="with" id="@xpertss/projen-types.WorkflowChangeNoticeWorkflow.with"></a>
15139
15241
 
15140
15242
  ```typescript
15141
- public readonly assertions: string[];
15243
+ public with(mixins: ...IMixin[]): IConstruct
15142
15244
  ```
15143
15245
 
15144
- - *Type:* string[]
15246
+ Applies one or more mixins to this construct.
15145
15247
 
15146
- Shell assertions after this invocation - the job fails unless every one exits 0.
15248
+ Mixins are applied in order. The list of constructs is captured at the
15249
+ start of the call, so constructs added by a mixin will not be visited.
15250
+ Use multiple `with()` calls if subsequent mixins should apply to added
15251
+ constructs.
15147
15252
 
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.
15253
+ ###### `mixins`<sup>Required</sup> <a name="mixins" id="@xpertss/projen-types.WorkflowChangeNoticeWorkflow.with.parameter.mixins"></a>
15254
+
15255
+ - *Type:* ...constructs.IMixin[]
15256
+
15257
+ The mixins to apply.
15151
15258
 
15152
15259
  ---
15153
15260
 
15154
- ##### `name`<sup>Required</sup> <a name="name" id="@xpertss/projen-types.ActionDogfoodStep.property.name"></a>
15261
+ ##### `postProjectCreation` <a name="postProjectCreation" id="@xpertss/projen-types.WorkflowChangeNoticeWorkflow.postProjectCreation"></a>
15155
15262
 
15156
15263
  ```typescript
15157
- public readonly name: string;
15264
+ public postProjectCreation(initProject: InitProject): void
15158
15265
  ```
15159
15266
 
15160
- - *Type:* string
15161
-
15162
- Label used to name this step-group's generated workflow steps.
15163
-
15164
- ---
15267
+ Called once, right after `postSynthesize()`, only when the project is created for the first time.
15165
15268
 
15166
- ##### `fixtureSteps`<sup>Optional</sup> <a name="fixtureSteps" id="@xpertss/projen-types.ActionDogfoodStep.property.fixtureSteps"></a>
15269
+ It does not run on later `projen` invocations. It only fires for `projen new` (or `Projects.createProject`).
15270
+ It is also skipped when post-synthesis steps are disabled, e.g. `--no-post` or `PROJEN_DISABLE_POST`.
15271
+ Use it for one-off setup that can be turned off by the user, like running a task to give the user immediate
15272
+ feedback on their new project. Order across components is not guaranteed.
15167
15273
 
15168
- ```typescript
15169
- public readonly fixtureSteps: string[];
15170
- ```
15274
+ ###### `initProject`<sup>Required</sup> <a name="initProject" id="@xpertss/projen-types.WorkflowChangeNoticeWorkflow.postProjectCreation.parameter.initProject"></a>
15171
15275
 
15172
- - *Type:* string[]
15173
- - *Default:* []
15276
+ - *Type:* projen.InitProject
15174
15277
 
15175
- Shell steps executed before this invocation, to produce or alter fixture state.
15278
+ Details about how the project was created, e.g. its type and the original CLI args.
15176
15279
 
15177
15280
  ---
15178
15281
 
15179
- ##### `id`<sup>Optional</sup> <a name="id" id="@xpertss/projen-types.ActionDogfoodStep.property.id"></a>
15282
+ ##### `postSynthesize` <a name="postSynthesize" id="@xpertss/projen-types.WorkflowChangeNoticeWorkflow.postSynthesize"></a>
15180
15283
 
15181
15284
  ```typescript
15182
- public readonly id: string;
15285
+ public postSynthesize(): void
15183
15286
  ```
15184
15287
 
15185
- - *Type:* string
15186
- - *Default:* a slug derived from `name`, disambiguated by position
15187
-
15188
- Step id for the `uses: ./` invocation, so a later assertion can reference this step's outputs via `${{ steps.<id>.outputs.<name> }}`.
15288
+ Called after synthesis.
15189
15289
 
15190
- ---
15290
+ Order is *not* guaranteed.
15191
15291
 
15192
- ##### `inputs`<sup>Optional</sup> <a name="inputs" id="@xpertss/projen-types.ActionDogfoodStep.property.inputs"></a>
15292
+ ##### `preSynthesize` <a name="preSynthesize" id="@xpertss/projen-types.WorkflowChangeNoticeWorkflow.preSynthesize"></a>
15193
15293
 
15194
15294
  ```typescript
15195
- public readonly inputs: {[ key: string ]: string};
15295
+ public preSynthesize(): void
15196
15296
  ```
15197
15297
 
15198
- - *Type:* {[ key: string ]: string}
15199
- - *Default:* {}
15200
-
15201
- `with:` inputs for this invocation's local `uses: ./` call.
15202
-
15203
- ---
15204
-
15205
- ### ActionSonarWorkflowOptions <a name="ActionSonarWorkflowOptions" id="@xpertss/projen-types.ActionSonarWorkflowOptions"></a>
15298
+ Called before synthesis.
15206
15299
 
15207
- #### Initializer <a name="Initializer" id="@xpertss/projen-types.ActionSonarWorkflowOptions.Initializer"></a>
15300
+ ##### `projectCreation` <a name="projectCreation" id="@xpertss/projen-types.WorkflowChangeNoticeWorkflow.projectCreation"></a>
15208
15301
 
15209
15302
  ```typescript
15210
- import { ActionSonarWorkflowOptions } from '@xpertss/projen-types'
15211
-
15212
- const actionSonarWorkflowOptions: ActionSonarWorkflowOptions = { ... }
15303
+ public projectCreation(initProject: InitProject): void
15213
15304
  ```
15214
15305
 
15215
- #### Properties <a name="Properties" id="Properties"></a>
15306
+ Called once, right after `synthesize()`, only when the project is created for the first time.
15307
+
15308
+ It does not run on later `projen` invocations. It only fires for `projen new` (or `Projects.createProject`).
15309
+ Use it for deterministic, one-off file generation. Order across components is not guaranteed.
15310
+
15311
+ ###### `initProject`<sup>Required</sup> <a name="initProject" id="@xpertss/projen-types.WorkflowChangeNoticeWorkflow.projectCreation.parameter.initProject"></a>
15312
+
15313
+ - *Type:* projen.InitProject
15314
+
15315
+ Details about how the project was created, e.g. its type and the original CLI args.
15316
+
15317
+ ---
15318
+
15319
+ ##### `synthesize` <a name="synthesize" id="@xpertss/projen-types.WorkflowChangeNoticeWorkflow.synthesize"></a>
15320
+
15321
+ ```typescript
15322
+ public synthesize(): void
15323
+ ```
15324
+
15325
+ Synthesizes files to the project output directory.
15326
+
15327
+ #### Static Functions <a name="Static Functions" id="Static Functions"></a>
15328
+
15329
+ | **Name** | **Description** |
15330
+ | --- | --- |
15331
+ | <code><a href="#@xpertss/projen-types.WorkflowChangeNoticeWorkflow.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
15332
+ | <code><a href="#@xpertss/projen-types.WorkflowChangeNoticeWorkflow.isComponent">isComponent</a></code> | Test whether the given construct is a component. |
15333
+
15334
+ ---
15335
+
15336
+ ##### `isConstruct` <a name="isConstruct" id="@xpertss/projen-types.WorkflowChangeNoticeWorkflow.isConstruct"></a>
15337
+
15338
+ ```typescript
15339
+ import { WorkflowChangeNoticeWorkflow } from '@xpertss/projen-types'
15340
+
15341
+ WorkflowChangeNoticeWorkflow.isConstruct(x: any)
15342
+ ```
15343
+
15344
+ Checks if `x` is a construct.
15345
+
15346
+ Use this method instead of `instanceof` to properly detect `Construct`
15347
+ instances, even when the construct library is symlinked.
15348
+
15349
+ Explanation: in JavaScript, multiple copies of the `constructs` library on
15350
+ disk are seen as independent, completely different libraries. As a
15351
+ consequence, the class `Construct` in each copy of the `constructs` library
15352
+ is seen as a different class, and an instance of one class will not test as
15353
+ `instanceof` the other class. `npm install` will not create installations
15354
+ like this, but users may manually symlink construct libraries together or
15355
+ use a monorepo tool: in those cases, multiple copies of the `constructs`
15356
+ library can be accidentally installed, and `instanceof` will behave
15357
+ unpredictably. It is safest to avoid using `instanceof`, and using
15358
+ this type-testing method instead.
15359
+
15360
+ ###### `x`<sup>Required</sup> <a name="x" id="@xpertss/projen-types.WorkflowChangeNoticeWorkflow.isConstruct.parameter.x"></a>
15361
+
15362
+ - *Type:* any
15363
+
15364
+ Any object.
15365
+
15366
+ ---
15367
+
15368
+ ##### `isComponent` <a name="isComponent" id="@xpertss/projen-types.WorkflowChangeNoticeWorkflow.isComponent"></a>
15369
+
15370
+ ```typescript
15371
+ import { WorkflowChangeNoticeWorkflow } from '@xpertss/projen-types'
15372
+
15373
+ WorkflowChangeNoticeWorkflow.isComponent(x: any)
15374
+ ```
15375
+
15376
+ Test whether the given construct is a component.
15377
+
15378
+ ###### `x`<sup>Required</sup> <a name="x" id="@xpertss/projen-types.WorkflowChangeNoticeWorkflow.isComponent.parameter.x"></a>
15379
+
15380
+ - *Type:* any
15381
+
15382
+ ---
15383
+
15384
+ #### Properties <a name="Properties" id="Properties"></a>
15216
15385
 
15217
15386
  | **Name** | **Type** | **Description** |
15218
15387
  | --- | --- | --- |
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. |
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. |
15222
- | <code><a href="#@xpertss/projen-types.ActionSonarWorkflowOptions.property.sonarTokenSecret">sonarTokenSecret</a></code> | <code>string</code> | *No description.* |
15388
+ | <code><a href="#@xpertss/projen-types.WorkflowChangeNoticeWorkflow.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
15389
+ | <code><a href="#@xpertss/projen-types.WorkflowChangeNoticeWorkflow.property.project">project</a></code> | <code>projen.Project</code> | *No description.* |
15390
+ | <code><a href="#@xpertss/projen-types.WorkflowChangeNoticeWorkflow.property.workflow">workflow</a></code> | <code>projen.github.GithubWorkflow</code> | *No description.* |
15223
15391
 
15224
15392
  ---
15225
15393
 
15226
- ##### `sonarHostUrl`<sup>Required</sup> <a name="sonarHostUrl" id="@xpertss/projen-types.ActionSonarWorkflowOptions.property.sonarHostUrl"></a>
15394
+ ##### `node`<sup>Required</sup> <a name="node" id="@xpertss/projen-types.WorkflowChangeNoticeWorkflow.property.node"></a>
15227
15395
 
15228
15396
  ```typescript
15229
- public readonly sonarHostUrl: string;
15397
+ public readonly node: Node;
15230
15398
  ```
15231
15399
 
15232
- - *Type:* string
15400
+ - *Type:* constructs.Node
15233
15401
 
15234
- URL of the org's SonarCloud instance (e.g. `https://sonarcloud.io`). Required, no default - a guessed server is worse than a loud failure.
15402
+ The tree node.
15235
15403
 
15236
15404
  ---
15237
15405
 
15238
- ##### `sonarOrganization`<sup>Optional</sup> <a name="sonarOrganization" id="@xpertss/projen-types.ActionSonarWorkflowOptions.property.sonarOrganization"></a>
15406
+ ##### `project`<sup>Required</sup> <a name="project" id="@xpertss/projen-types.WorkflowChangeNoticeWorkflow.property.project"></a>
15239
15407
 
15240
15408
  ```typescript
15241
- public readonly sonarOrganization: string;
15409
+ public readonly project: Project;
15410
+ ```
15411
+
15412
+ - *Type:* projen.Project
15413
+
15414
+ ---
15415
+
15416
+ ##### `workflow`<sup>Required</sup> <a name="workflow" id="@xpertss/projen-types.WorkflowChangeNoticeWorkflow.property.workflow"></a>
15417
+
15418
+ ```typescript
15419
+ public readonly workflow: GithubWorkflow;
15420
+ ```
15421
+
15422
+ - *Type:* projen.github.GithubWorkflow
15423
+
15424
+ ---
15425
+
15426
+
15427
+ ## Structs <a name="Structs" id="Structs"></a>
15428
+
15429
+ ### ActionDogfoodOptions <a name="ActionDogfoodOptions" id="@xpertss/projen-types.ActionDogfoodOptions"></a>
15430
+
15431
+ #### Initializer <a name="Initializer" id="@xpertss/projen-types.ActionDogfoodOptions.Initializer"></a>
15432
+
15433
+ ```typescript
15434
+ import { ActionDogfoodOptions } from '@xpertss/projen-types'
15435
+
15436
+ const actionDogfoodOptions: ActionDogfoodOptions = { ... }
15437
+ ```
15438
+
15439
+ #### Properties <a name="Properties" id="Properties"></a>
15440
+
15441
+ | **Name** | **Type** | **Description** |
15442
+ | --- | --- | --- |
15443
+ | <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. |
15444
+ | <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. |
15445
+
15446
+ ---
15447
+
15448
+ ##### `cleanup`<sup>Required</sup> <a name="cleanup" id="@xpertss/projen-types.ActionDogfoodOptions.property.cleanup"></a>
15449
+
15450
+ ```typescript
15451
+ public readonly cleanup: string[];
15452
+ ```
15453
+
15454
+ - *Type:* string[]
15455
+
15456
+ Shell cleanup, run once at the end with `if: always()` so repeated runs start clean.
15457
+
15458
+ Intentionally **best-effort**: unlike the assert step it does
15459
+ *not* run under `set -e`, so a failing line (e.g. deleting an already
15460
+ deleted ref) does not fail the job.
15461
+
15462
+ ---
15463
+
15464
+ ##### `scenario`<sup>Required</sup> <a name="scenario" id="@xpertss/projen-types.ActionDogfoodOptions.property.scenario"></a>
15465
+
15466
+ ```typescript
15467
+ public readonly scenario: ActionDogfoodStep[];
15468
+ ```
15469
+
15470
+ - *Type:* <a href="#@xpertss/projen-types.ActionDogfoodStep">ActionDogfoodStep</a>[]
15471
+
15472
+ One or more scenario steps, run in order, in the dogfood job.
15473
+
15474
+ ---
15475
+
15476
+ ### ActionDogfoodStep <a name="ActionDogfoodStep" id="@xpertss/projen-types.ActionDogfoodStep"></a>
15477
+
15478
+ One invocation of the action within the dogfood scenario: optional fixture setup, the `uses: ./` call with this step's inputs, then this step's assertions. Most actions need exactly one; actions with a re-run/no-op behavior to verify (e.g. F006's reuse-the-PR path, F007's no-op-commit path) declare two.
15479
+
15480
+ #### Initializer <a name="Initializer" id="@xpertss/projen-types.ActionDogfoodStep.Initializer"></a>
15481
+
15482
+ ```typescript
15483
+ import { ActionDogfoodStep } from '@xpertss/projen-types'
15484
+
15485
+ const actionDogfoodStep: ActionDogfoodStep = { ... }
15486
+ ```
15487
+
15488
+ #### Properties <a name="Properties" id="Properties"></a>
15489
+
15490
+ | **Name** | **Type** | **Description** |
15491
+ | --- | --- | --- |
15492
+ | <code><a href="#@xpertss/projen-types.ActionDogfoodStep.property.assertions">assertions</a></code> | <code>string[]</code> | Shell assertions after this invocation - the job fails unless every one exits 0. |
15493
+ | <code><a href="#@xpertss/projen-types.ActionDogfoodStep.property.name">name</a></code> | <code>string</code> | Label used to name this step-group's generated workflow steps. |
15494
+ | <code><a href="#@xpertss/projen-types.ActionDogfoodStep.property.fixtureSteps">fixtureSteps</a></code> | <code>string[]</code> | Shell steps executed before this invocation, to produce or alter fixture state. |
15495
+ | <code><a href="#@xpertss/projen-types.ActionDogfoodStep.property.id">id</a></code> | <code>string</code> | Step id for the `uses: ./` invocation, so a later assertion can reference this step's outputs via `${{ steps.<id>.outputs.<name> }}`. |
15496
+ | <code><a href="#@xpertss/projen-types.ActionDogfoodStep.property.inputs">inputs</a></code> | <code>{[ key: string ]: string}</code> | `with:` inputs for this invocation's local `uses: ./` call. |
15497
+
15498
+ ---
15499
+
15500
+ ##### `assertions`<sup>Required</sup> <a name="assertions" id="@xpertss/projen-types.ActionDogfoodStep.property.assertions"></a>
15501
+
15502
+ ```typescript
15503
+ public readonly assertions: string[];
15504
+ ```
15505
+
15506
+ - *Type:* string[]
15507
+
15508
+ Shell assertions after this invocation - the job fails unless every one exits 0.
15509
+
15510
+ The generated step runs under `set -euo pipefail`, so a failing
15511
+ assertion fails the step immediately rather than being masked by a later,
15512
+ passing one.
15513
+
15514
+ ---
15515
+
15516
+ ##### `name`<sup>Required</sup> <a name="name" id="@xpertss/projen-types.ActionDogfoodStep.property.name"></a>
15517
+
15518
+ ```typescript
15519
+ public readonly name: string;
15242
15520
  ```
15243
15521
 
15244
15522
  - *Type:* string
15245
- - *Default:* "xpertss"
15246
15523
 
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.
15524
+ Label used to name this step-group's generated workflow steps.
15248
15525
 
15249
15526
  ---
15250
15527
 
15251
- ##### `sonarPullRequestGate`<sup>Optional</sup> <a name="sonarPullRequestGate" id="@xpertss/projen-types.ActionSonarWorkflowOptions.property.sonarPullRequestGate"></a>
15528
+ ##### `fixtureSteps`<sup>Optional</sup> <a name="fixtureSteps" id="@xpertss/projen-types.ActionDogfoodStep.property.fixtureSteps"></a>
15252
15529
 
15253
15530
  ```typescript
15254
- public readonly sonarPullRequestGate: boolean;
15531
+ public readonly fixtureSteps: string[];
15255
15532
  ```
15256
15533
 
15257
- - *Type:* boolean
15258
- - *Default:* true
15534
+ - *Type:* string[]
15535
+ - *Default:* []
15259
15536
 
15260
- Whether `sonar.yml` also runs on `pull_request` as a pass/fail gate.
15537
+ Shell steps executed before this invocation, to produce or alter fixture state.
15261
15538
 
15262
15539
  ---
15263
15540
 
15264
- ##### `sonarTokenSecret`<sup>Optional</sup> <a name="sonarTokenSecret" id="@xpertss/projen-types.ActionSonarWorkflowOptions.property.sonarTokenSecret"></a>
15541
+ ##### `id`<sup>Optional</sup> <a name="id" id="@xpertss/projen-types.ActionDogfoodStep.property.id"></a>
15265
15542
 
15266
15543
  ```typescript
15267
- public readonly sonarTokenSecret: string;
15544
+ public readonly id: string;
15268
15545
  ```
15269
15546
 
15270
15547
  - *Type:* string
15271
- - *Default:* "SONAR_TOKEN"
15548
+ - *Default:* a slug derived from `name`, disambiguated by position
15549
+
15550
+ Step id for the `uses: ./` invocation, so a later assertion can reference this step's outputs via `${{ steps.<id>.outputs.<name> }}`.
15551
+
15552
+ ---
15553
+
15554
+ ##### `inputs`<sup>Optional</sup> <a name="inputs" id="@xpertss/projen-types.ActionDogfoodStep.property.inputs"></a>
15555
+
15556
+ ```typescript
15557
+ public readonly inputs: {[ key: string ]: string};
15558
+ ```
15559
+
15560
+ - *Type:* {[ key: string ]: string}
15561
+ - *Default:* {}
15562
+
15563
+ `with:` inputs for this invocation's local `uses: ./` call.
15272
15564
 
15273
15565
  ---
15274
15566
 
@@ -15286,10 +15578,19 @@ const cdkAppProjectOptions: CdkAppProjectOptions = { ... }
15286
15578
 
15287
15579
  | **Name** | **Type** | **Description** |
15288
15580
  | --- | --- | --- |
15581
+ | <code><a href="#@xpertss/projen-types.CdkAppProjectOptions.property.sonarHostUrl">sonarHostUrl</a></code> | <code>string</code> | URL of the org's SonarCloud instance (e.g. `https://sonarcloud.io`). When set, a `sonar.yml` SonarScanner workflow is generated; when omitted, no Sonar workflow is produced. Must be reachable from github.com-hosted (public) runners (AD-001). |
15582
+ | <code><a href="#@xpertss/projen-types.CdkAppProjectOptions.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. |
15583
+ | <code><a href="#@xpertss/projen-types.CdkAppProjectOptions.property.sonarProjectKey">sonarProjectKey</a></code> | <code>string</code> | `sonar.projectKey`. |
15584
+ | <code><a href="#@xpertss/projen-types.CdkAppProjectOptions.property.sonarPullRequestGate">sonarPullRequestGate</a></code> | <code>boolean</code> | Whether `sonar.yml` also runs on `pull_request` as a pass/fail gate. |
15585
+ | <code><a href="#@xpertss/projen-types.CdkAppProjectOptions.property.sonarTokenSecret">sonarTokenSecret</a></code> | <code>string</code> | *No description.* |
15289
15586
  | <code><a href="#@xpertss/projen-types.CdkAppProjectOptions.property.name">name</a></code> | <code>string</code> | *No description.* |
15290
15587
  | <code><a href="#@xpertss/projen-types.CdkAppProjectOptions.property.cdkVersion">cdkVersion</a></code> | <code>string</code> | *No description.* |
15588
+ | <code><a href="#@xpertss/projen-types.CdkAppProjectOptions.property.copyrightOwner">copyrightOwner</a></code> | <code>string</code> | Copyright owner named in the `LICENSE`. |
15589
+ | <code><a href="#@xpertss/projen-types.CdkAppProjectOptions.property.copyrightPeriod">copyrightPeriod</a></code> | <code>string</code> | Copyright period named in the `LICENSE`. |
15291
15590
  | <code><a href="#@xpertss/projen-types.CdkAppProjectOptions.property.editorconfig">editorconfig</a></code> | <code>boolean</code> | Write a projen-managed `.editorconfig`. |
15292
15591
  | <code><a href="#@xpertss/projen-types.CdkAppProjectOptions.property.gheTokenSecret">gheTokenSecret</a></code> | <code>string</code> | *No description.* |
15592
+ | <code><a href="#@xpertss/projen-types.CdkAppProjectOptions.property.license">license</a></code> | <code>string</code> | SPDX identifier for the generated `LICENSE`. |
15593
+ | <code><a href="#@xpertss/projen-types.CdkAppProjectOptions.property.licensed">licensed</a></code> | <code>boolean</code> | Write a `LICENSE`. |
15293
15594
  | <code><a href="#@xpertss/projen-types.CdkAppProjectOptions.property.ecrEcs">ecrEcs</a></code> | <code><a href="#@xpertss/projen-types.EcrEcsOptions">EcrEcsOptions</a></code> | *No description.* |
15294
15595
  | <code><a href="#@xpertss/projen-types.CdkAppProjectOptions.property.edgeResources">edgeResources</a></code> | <code>string[]</code> | *No description.* |
15295
15596
  | <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. |
@@ -15298,52 +15599,449 @@ const cdkAppProjectOptions: CdkAppProjectOptions = { ... }
15298
15599
 
15299
15600
  ---
15300
15601
 
15301
- ##### `name`<sup>Required</sup> <a name="name" id="@xpertss/projen-types.CdkAppProjectOptions.property.name"></a>
15602
+ ##### `sonarHostUrl`<sup>Optional</sup> <a name="sonarHostUrl" id="@xpertss/projen-types.CdkAppProjectOptions.property.sonarHostUrl"></a>
15302
15603
 
15303
15604
  ```typescript
15304
- public readonly name: string;
15605
+ public readonly sonarHostUrl: string;
15305
15606
  ```
15306
15607
 
15307
15608
  - *Type:* string
15308
15609
 
15610
+ URL of the org's SonarCloud instance (e.g. `https://sonarcloud.io`). When set, a `sonar.yml` SonarScanner workflow is generated; when omitted, no Sonar workflow is produced. Must be reachable from github.com-hosted (public) runners (AD-001).
15611
+
15309
15612
  ---
15310
15613
 
15311
- ##### `cdkVersion`<sup>Optional</sup> <a name="cdkVersion" id="@xpertss/projen-types.CdkAppProjectOptions.property.cdkVersion"></a>
15614
+ ##### `sonarOrganization`<sup>Optional</sup> <a name="sonarOrganization" id="@xpertss/projen-types.CdkAppProjectOptions.property.sonarOrganization"></a>
15312
15615
 
15313
15616
  ```typescript
15314
- public readonly cdkVersion: string;
15617
+ public readonly sonarOrganization: string;
15315
15618
  ```
15316
15619
 
15317
15620
  - *Type:* string
15318
- - *Default:* "2.189.1"
15621
+ - *Default:* "xpertss"
15622
+
15623
+ 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.
15319
15624
 
15320
15625
  ---
15321
15626
 
15322
- ##### `editorconfig`<sup>Optional</sup> <a name="editorconfig" id="@xpertss/projen-types.CdkAppProjectOptions.property.editorconfig"></a>
15627
+ ##### `sonarProjectKey`<sup>Optional</sup> <a name="sonarProjectKey" id="@xpertss/projen-types.CdkAppProjectOptions.property.sonarProjectKey"></a>
15323
15628
 
15324
15629
  ```typescript
15325
- public readonly editorconfig: boolean;
15630
+ public readonly sonarProjectKey: string;
15326
15631
  ```
15327
15632
 
15328
- - *Type:* boolean
15329
- - *Default:* true
15633
+ - *Type:* string
15634
+ - *Default:* `${sonarOrganization}_${name}` (the org + project key SonarCloud uses, e.g. `xpertss_create-pull-request`)
15635
+
15636
+ `sonar.projectKey`.
15637
+
15638
+ ---
15639
+
15640
+ ##### `sonarPullRequestGate`<sup>Optional</sup> <a name="sonarPullRequestGate" id="@xpertss/projen-types.CdkAppProjectOptions.property.sonarPullRequestGate"></a>
15641
+
15642
+ ```typescript
15643
+ public readonly sonarPullRequestGate: boolean;
15644
+ ```
15645
+
15646
+ - *Type:* boolean
15647
+ - *Default:* true
15648
+
15649
+ Whether `sonar.yml` also runs on `pull_request` as a pass/fail gate.
15650
+
15651
+ ---
15652
+
15653
+ ##### `sonarTokenSecret`<sup>Optional</sup> <a name="sonarTokenSecret" id="@xpertss/projen-types.CdkAppProjectOptions.property.sonarTokenSecret"></a>
15654
+
15655
+ ```typescript
15656
+ public readonly sonarTokenSecret: string;
15657
+ ```
15658
+
15659
+ - *Type:* string
15660
+ - *Default:* "SONAR_TOKEN"
15661
+
15662
+ ---
15663
+
15664
+ ##### `name`<sup>Required</sup> <a name="name" id="@xpertss/projen-types.CdkAppProjectOptions.property.name"></a>
15665
+
15666
+ ```typescript
15667
+ public readonly name: string;
15668
+ ```
15669
+
15670
+ - *Type:* string
15671
+
15672
+ ---
15673
+
15674
+ ##### `cdkVersion`<sup>Optional</sup> <a name="cdkVersion" id="@xpertss/projen-types.CdkAppProjectOptions.property.cdkVersion"></a>
15675
+
15676
+ ```typescript
15677
+ public readonly cdkVersion: string;
15678
+ ```
15679
+
15680
+ - *Type:* string
15681
+ - *Default:* "2.189.1"
15682
+
15683
+ ---
15684
+
15685
+ ##### `copyrightOwner`<sup>Optional</sup> <a name="copyrightOwner" id="@xpertss/projen-types.CdkAppProjectOptions.property.copyrightOwner"></a>
15686
+
15687
+ ```typescript
15688
+ public readonly copyrightOwner: string;
15689
+ ```
15690
+
15691
+ - *Type:* string
15692
+ - *Default:* "Xpert Software"
15693
+
15694
+ Copyright owner named in the `LICENSE`.
15695
+
15696
+ ---
15697
+
15698
+ ##### `copyrightPeriod`<sup>Optional</sup> <a name="copyrightPeriod" id="@xpertss/projen-types.CdkAppProjectOptions.property.copyrightPeriod"></a>
15699
+
15700
+ ```typescript
15701
+ public readonly copyrightPeriod: string;
15702
+ ```
15703
+
15704
+ - *Type:* string
15705
+ - *Default:* the current year
15706
+
15707
+ Copyright period named in the `LICENSE`.
15708
+
15709
+ ---
15710
+
15711
+ ##### `editorconfig`<sup>Optional</sup> <a name="editorconfig" id="@xpertss/projen-types.CdkAppProjectOptions.property.editorconfig"></a>
15712
+
15713
+ ```typescript
15714
+ public readonly editorconfig: boolean;
15715
+ ```
15716
+
15717
+ - *Type:* boolean
15718
+ - *Default:* true
15719
+
15720
+ Write a projen-managed `.editorconfig`.
15721
+
15722
+ ---
15723
+
15724
+ ##### `gheTokenSecret`<sup>Optional</sup> <a name="gheTokenSecret" id="@xpertss/projen-types.CdkAppProjectOptions.property.gheTokenSecret"></a>
15725
+
15726
+ ```typescript
15727
+ public readonly gheTokenSecret: string;
15728
+ ```
15729
+
15730
+ - *Type:* string
15731
+ - *Default:* "PROJEN_GITHUB_TOKEN"
15732
+
15733
+ ---
15734
+
15735
+ ##### `license`<sup>Optional</sup> <a name="license" id="@xpertss/projen-types.CdkAppProjectOptions.property.license"></a>
15736
+
15737
+ ```typescript
15738
+ public readonly license: string;
15739
+ ```
15740
+
15741
+ - *Type:* string
15742
+ - *Default:* "MIT"
15743
+
15744
+ SPDX identifier for the generated `LICENSE`.
15745
+
15746
+ ---
15747
+
15748
+ ##### `licensed`<sup>Optional</sup> <a name="licensed" id="@xpertss/projen-types.CdkAppProjectOptions.property.licensed"></a>
15749
+
15750
+ ```typescript
15751
+ public readonly licensed: boolean;
15752
+ ```
15753
+
15754
+ - *Type:* boolean
15755
+ - *Default:* true
15756
+
15757
+ Write a `LICENSE`.
15758
+
15759
+ ---
15760
+
15761
+ ##### `ecrEcs`<sup>Optional</sup> <a name="ecrEcs" id="@xpertss/projen-types.CdkAppProjectOptions.property.ecrEcs"></a>
15762
+
15763
+ ```typescript
15764
+ public readonly ecrEcs: EcrEcsOptions;
15765
+ ```
15766
+
15767
+ - *Type:* <a href="#@xpertss/projen-types.EcrEcsOptions">EcrEcsOptions</a>
15768
+
15769
+ ---
15770
+
15771
+ ##### `edgeResources`<sup>Optional</sup> <a name="edgeResources" id="@xpertss/projen-types.CdkAppProjectOptions.property.edgeResources"></a>
15772
+
15773
+ ```typescript
15774
+ public readonly edgeResources: string[];
15775
+ ```
15776
+
15777
+ - *Type:* string[]
15778
+
15779
+ ---
15780
+
15781
+ ##### `environments`<sup>Optional</sup> <a name="environments" id="@xpertss/projen-types.CdkAppProjectOptions.property.environments"></a>
15782
+
15783
+ ```typescript
15784
+ public readonly environments: (string | EnvironmentOptions)[];
15785
+ ```
15786
+
15787
+ - *Type:* string | <a href="#@xpertss/projen-types.EnvironmentOptions">EnvironmentOptions</a>[]
15788
+ - *Default:* no deploy workflow
15789
+
15790
+ Deploy targets for the manual-dispatch deploy workflow, e.g. ["dev", "stage", "prod"]. No `deploy` workflow is generated when this is empty or omitted.
15791
+
15792
+ Optional rather than required so that `projen new --from` can scaffold
15793
+ the repo: its union type (`string | EnvironmentOptions`) is not
15794
+ "JSON-like", so projen's CLI cannot render a value for it into the
15795
+ initial `.projenrc.ts` - and a *required* option it cannot render leaves
15796
+ behind a projenrc that does not type-check.
15797
+
15798
+ ---
15799
+
15800
+ ##### `appEntryPoint`<sup>Optional</sup> <a name="appEntryPoint" id="@xpertss/projen-types.CdkAppProjectOptions.property.appEntryPoint"></a>
15801
+
15802
+ ```typescript
15803
+ public readonly appEntryPoint: string;
15804
+ ```
15805
+
15806
+ - *Type:* string
15807
+ - *Default:* "src/app.ts"
15808
+
15809
+ ---
15810
+
15811
+ ##### `database`<sup>Optional</sup> <a name="database" id="@xpertss/projen-types.CdkAppProjectOptions.property.database"></a>
15812
+
15813
+ ```typescript
15814
+ public readonly database: DatabaseOptions;
15815
+ ```
15816
+
15817
+ - *Type:* <a href="#@xpertss/projen-types.DatabaseOptions">DatabaseOptions</a>
15818
+
15819
+ ---
15820
+
15821
+ ### CdkDeployHookOptions <a name="CdkDeployHookOptions" id="@xpertss/projen-types.CdkDeployHookOptions"></a>
15822
+
15823
+ #### Initializer <a name="Initializer" id="@xpertss/projen-types.CdkDeployHookOptions.Initializer"></a>
15824
+
15825
+ ```typescript
15826
+ import { CdkDeployHookOptions } from '@xpertss/projen-types'
15827
+
15828
+ const cdkDeployHookOptions: CdkDeployHookOptions = { ... }
15829
+ ```
15830
+
15831
+ #### Properties <a name="Properties" id="Properties"></a>
15832
+
15833
+ | **Name** | **Type** | **Description** |
15834
+ | --- | --- | --- |
15835
+ | <code><a href="#@xpertss/projen-types.CdkDeployHookOptions.property.targetRepo">targetRepo</a></code> | <code>string</code> | The companion CDK infra/app repo (owner/repo) that owns the actual infrastructure. |
15836
+
15837
+ ---
15838
+
15839
+ ##### `targetRepo`<sup>Optional</sup> <a name="targetRepo" id="@xpertss/projen-types.CdkDeployHookOptions.property.targetRepo"></a>
15840
+
15841
+ ```typescript
15842
+ public readonly targetRepo: string;
15843
+ ```
15844
+
15845
+ - *Type:* string
15846
+ - *Default:* the workflow is still generated, but its only step fails with instructions (see `CdkDeployHook`)
15847
+
15848
+ The companion CDK infra/app repo (owner/repo) that owns the actual infrastructure.
15849
+
15850
+ ---
15851
+
15852
+ ### CdkInfraProjectOptions <a name="CdkInfraProjectOptions" id="@xpertss/projen-types.CdkInfraProjectOptions"></a>
15853
+
15854
+ #### Initializer <a name="Initializer" id="@xpertss/projen-types.CdkInfraProjectOptions.Initializer"></a>
15855
+
15856
+ ```typescript
15857
+ import { CdkInfraProjectOptions } from '@xpertss/projen-types'
15858
+
15859
+ const cdkInfraProjectOptions: CdkInfraProjectOptions = { ... }
15860
+ ```
15861
+
15862
+ #### Properties <a name="Properties" id="Properties"></a>
15863
+
15864
+ | **Name** | **Type** | **Description** |
15865
+ | --- | --- | --- |
15866
+ | <code><a href="#@xpertss/projen-types.CdkInfraProjectOptions.property.sonarHostUrl">sonarHostUrl</a></code> | <code>string</code> | URL of the org's SonarCloud instance (e.g. `https://sonarcloud.io`). When set, a `sonar.yml` SonarScanner workflow is generated; when omitted, no Sonar workflow is produced. Must be reachable from github.com-hosted (public) runners (AD-001). |
15867
+ | <code><a href="#@xpertss/projen-types.CdkInfraProjectOptions.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. |
15868
+ | <code><a href="#@xpertss/projen-types.CdkInfraProjectOptions.property.sonarProjectKey">sonarProjectKey</a></code> | <code>string</code> | `sonar.projectKey`. |
15869
+ | <code><a href="#@xpertss/projen-types.CdkInfraProjectOptions.property.sonarPullRequestGate">sonarPullRequestGate</a></code> | <code>boolean</code> | Whether `sonar.yml` also runs on `pull_request` as a pass/fail gate. |
15870
+ | <code><a href="#@xpertss/projen-types.CdkInfraProjectOptions.property.sonarTokenSecret">sonarTokenSecret</a></code> | <code>string</code> | *No description.* |
15871
+ | <code><a href="#@xpertss/projen-types.CdkInfraProjectOptions.property.name">name</a></code> | <code>string</code> | *No description.* |
15872
+ | <code><a href="#@xpertss/projen-types.CdkInfraProjectOptions.property.cdkVersion">cdkVersion</a></code> | <code>string</code> | *No description.* |
15873
+ | <code><a href="#@xpertss/projen-types.CdkInfraProjectOptions.property.copyrightOwner">copyrightOwner</a></code> | <code>string</code> | Copyright owner named in the `LICENSE`. |
15874
+ | <code><a href="#@xpertss/projen-types.CdkInfraProjectOptions.property.copyrightPeriod">copyrightPeriod</a></code> | <code>string</code> | Copyright period named in the `LICENSE`. |
15875
+ | <code><a href="#@xpertss/projen-types.CdkInfraProjectOptions.property.editorconfig">editorconfig</a></code> | <code>boolean</code> | Write a projen-managed `.editorconfig`. |
15876
+ | <code><a href="#@xpertss/projen-types.CdkInfraProjectOptions.property.gheTokenSecret">gheTokenSecret</a></code> | <code>string</code> | *No description.* |
15877
+ | <code><a href="#@xpertss/projen-types.CdkInfraProjectOptions.property.license">license</a></code> | <code>string</code> | SPDX identifier for the generated `LICENSE`. |
15878
+ | <code><a href="#@xpertss/projen-types.CdkInfraProjectOptions.property.licensed">licensed</a></code> | <code>boolean</code> | Write a `LICENSE`. |
15879
+ | <code><a href="#@xpertss/projen-types.CdkInfraProjectOptions.property.ecrEcs">ecrEcs</a></code> | <code><a href="#@xpertss/projen-types.EcrEcsOptions">EcrEcsOptions</a></code> | *No description.* |
15880
+ | <code><a href="#@xpertss/projen-types.CdkInfraProjectOptions.property.edgeResources">edgeResources</a></code> | <code>string[]</code> | *No description.* |
15881
+ | <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. |
15882
+
15883
+ ---
15884
+
15885
+ ##### `sonarHostUrl`<sup>Optional</sup> <a name="sonarHostUrl" id="@xpertss/projen-types.CdkInfraProjectOptions.property.sonarHostUrl"></a>
15886
+
15887
+ ```typescript
15888
+ public readonly sonarHostUrl: string;
15889
+ ```
15890
+
15891
+ - *Type:* string
15892
+
15893
+ URL of the org's SonarCloud instance (e.g. `https://sonarcloud.io`). When set, a `sonar.yml` SonarScanner workflow is generated; when omitted, no Sonar workflow is produced. Must be reachable from github.com-hosted (public) runners (AD-001).
15894
+
15895
+ ---
15896
+
15897
+ ##### `sonarOrganization`<sup>Optional</sup> <a name="sonarOrganization" id="@xpertss/projen-types.CdkInfraProjectOptions.property.sonarOrganization"></a>
15898
+
15899
+ ```typescript
15900
+ public readonly sonarOrganization: string;
15901
+ ```
15902
+
15903
+ - *Type:* string
15904
+ - *Default:* "xpertss"
15905
+
15906
+ 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.
15907
+
15908
+ ---
15909
+
15910
+ ##### `sonarProjectKey`<sup>Optional</sup> <a name="sonarProjectKey" id="@xpertss/projen-types.CdkInfraProjectOptions.property.sonarProjectKey"></a>
15911
+
15912
+ ```typescript
15913
+ public readonly sonarProjectKey: string;
15914
+ ```
15915
+
15916
+ - *Type:* string
15917
+ - *Default:* `${sonarOrganization}_${name}` (the org + project key SonarCloud uses, e.g. `xpertss_create-pull-request`)
15918
+
15919
+ `sonar.projectKey`.
15920
+
15921
+ ---
15922
+
15923
+ ##### `sonarPullRequestGate`<sup>Optional</sup> <a name="sonarPullRequestGate" id="@xpertss/projen-types.CdkInfraProjectOptions.property.sonarPullRequestGate"></a>
15924
+
15925
+ ```typescript
15926
+ public readonly sonarPullRequestGate: boolean;
15927
+ ```
15928
+
15929
+ - *Type:* boolean
15930
+ - *Default:* true
15931
+
15932
+ Whether `sonar.yml` also runs on `pull_request` as a pass/fail gate.
15933
+
15934
+ ---
15935
+
15936
+ ##### `sonarTokenSecret`<sup>Optional</sup> <a name="sonarTokenSecret" id="@xpertss/projen-types.CdkInfraProjectOptions.property.sonarTokenSecret"></a>
15937
+
15938
+ ```typescript
15939
+ public readonly sonarTokenSecret: string;
15940
+ ```
15941
+
15942
+ - *Type:* string
15943
+ - *Default:* "SONAR_TOKEN"
15944
+
15945
+ ---
15946
+
15947
+ ##### `name`<sup>Required</sup> <a name="name" id="@xpertss/projen-types.CdkInfraProjectOptions.property.name"></a>
15948
+
15949
+ ```typescript
15950
+ public readonly name: string;
15951
+ ```
15952
+
15953
+ - *Type:* string
15954
+
15955
+ ---
15956
+
15957
+ ##### `cdkVersion`<sup>Optional</sup> <a name="cdkVersion" id="@xpertss/projen-types.CdkInfraProjectOptions.property.cdkVersion"></a>
15958
+
15959
+ ```typescript
15960
+ public readonly cdkVersion: string;
15961
+ ```
15962
+
15963
+ - *Type:* string
15964
+ - *Default:* "2.189.1"
15965
+
15966
+ ---
15967
+
15968
+ ##### `copyrightOwner`<sup>Optional</sup> <a name="copyrightOwner" id="@xpertss/projen-types.CdkInfraProjectOptions.property.copyrightOwner"></a>
15969
+
15970
+ ```typescript
15971
+ public readonly copyrightOwner: string;
15972
+ ```
15973
+
15974
+ - *Type:* string
15975
+ - *Default:* "Xpert Software"
15976
+
15977
+ Copyright owner named in the `LICENSE`.
15978
+
15979
+ ---
15980
+
15981
+ ##### `copyrightPeriod`<sup>Optional</sup> <a name="copyrightPeriod" id="@xpertss/projen-types.CdkInfraProjectOptions.property.copyrightPeriod"></a>
15982
+
15983
+ ```typescript
15984
+ public readonly copyrightPeriod: string;
15985
+ ```
15986
+
15987
+ - *Type:* string
15988
+ - *Default:* the current year
15989
+
15990
+ Copyright period named in the `LICENSE`.
15991
+
15992
+ ---
15993
+
15994
+ ##### `editorconfig`<sup>Optional</sup> <a name="editorconfig" id="@xpertss/projen-types.CdkInfraProjectOptions.property.editorconfig"></a>
15995
+
15996
+ ```typescript
15997
+ public readonly editorconfig: boolean;
15998
+ ```
15999
+
16000
+ - *Type:* boolean
16001
+ - *Default:* true
16002
+
16003
+ Write a projen-managed `.editorconfig`.
16004
+
16005
+ ---
16006
+
16007
+ ##### `gheTokenSecret`<sup>Optional</sup> <a name="gheTokenSecret" id="@xpertss/projen-types.CdkInfraProjectOptions.property.gheTokenSecret"></a>
16008
+
16009
+ ```typescript
16010
+ public readonly gheTokenSecret: string;
16011
+ ```
16012
+
16013
+ - *Type:* string
16014
+ - *Default:* "PROJEN_GITHUB_TOKEN"
16015
+
16016
+ ---
16017
+
16018
+ ##### `license`<sup>Optional</sup> <a name="license" id="@xpertss/projen-types.CdkInfraProjectOptions.property.license"></a>
16019
+
16020
+ ```typescript
16021
+ public readonly license: string;
16022
+ ```
16023
+
16024
+ - *Type:* string
16025
+ - *Default:* "MIT"
15330
16026
 
15331
- Write a projen-managed `.editorconfig`.
16027
+ SPDX identifier for the generated `LICENSE`.
15332
16028
 
15333
16029
  ---
15334
16030
 
15335
- ##### `gheTokenSecret`<sup>Optional</sup> <a name="gheTokenSecret" id="@xpertss/projen-types.CdkAppProjectOptions.property.gheTokenSecret"></a>
16031
+ ##### `licensed`<sup>Optional</sup> <a name="licensed" id="@xpertss/projen-types.CdkInfraProjectOptions.property.licensed"></a>
15336
16032
 
15337
16033
  ```typescript
15338
- public readonly gheTokenSecret: string;
16034
+ public readonly licensed: boolean;
15339
16035
  ```
15340
16036
 
15341
- - *Type:* string
15342
- - *Default:* "PROJEN_GITHUB_TOKEN"
16037
+ - *Type:* boolean
16038
+ - *Default:* true
16039
+
16040
+ Write a `LICENSE`.
15343
16041
 
15344
16042
  ---
15345
16043
 
15346
- ##### `ecrEcs`<sup>Optional</sup> <a name="ecrEcs" id="@xpertss/projen-types.CdkAppProjectOptions.property.ecrEcs"></a>
16044
+ ##### `ecrEcs`<sup>Optional</sup> <a name="ecrEcs" id="@xpertss/projen-types.CdkInfraProjectOptions.property.ecrEcs"></a>
15347
16045
 
15348
16046
  ```typescript
15349
16047
  public readonly ecrEcs: EcrEcsOptions;
@@ -15353,7 +16051,7 @@ public readonly ecrEcs: EcrEcsOptions;
15353
16051
 
15354
16052
  ---
15355
16053
 
15356
- ##### `edgeResources`<sup>Optional</sup> <a name="edgeResources" id="@xpertss/projen-types.CdkAppProjectOptions.property.edgeResources"></a>
16054
+ ##### `edgeResources`<sup>Optional</sup> <a name="edgeResources" id="@xpertss/projen-types.CdkInfraProjectOptions.property.edgeResources"></a>
15357
16055
 
15358
16056
  ```typescript
15359
16057
  public readonly edgeResources: string[];
@@ -15363,7 +16061,7 @@ public readonly edgeResources: string[];
15363
16061
 
15364
16062
  ---
15365
16063
 
15366
- ##### `environments`<sup>Optional</sup> <a name="environments" id="@xpertss/projen-types.CdkAppProjectOptions.property.environments"></a>
16064
+ ##### `environments`<sup>Optional</sup> <a name="environments" id="@xpertss/projen-types.CdkInfraProjectOptions.property.environments"></a>
15367
16065
 
15368
16066
  ```typescript
15369
16067
  public readonly environments: (string | EnvironmentOptions)[];
@@ -15382,83 +16080,100 @@ behind a projenrc that does not type-check.
15382
16080
 
15383
16081
  ---
15384
16082
 
15385
- ##### `appEntryPoint`<sup>Optional</sup> <a name="appEntryPoint" id="@xpertss/projen-types.CdkAppProjectOptions.property.appEntryPoint"></a>
16083
+ ### CdkTypescriptProjectOptions <a name="CdkTypescriptProjectOptions" id="@xpertss/projen-types.CdkTypescriptProjectOptions"></a>
16084
+
16085
+ #### Initializer <a name="Initializer" id="@xpertss/projen-types.CdkTypescriptProjectOptions.Initializer"></a>
15386
16086
 
15387
16087
  ```typescript
15388
- public readonly appEntryPoint: string;
16088
+ import { CdkTypescriptProjectOptions } from '@xpertss/projen-types'
16089
+
16090
+ const cdkTypescriptProjectOptions: CdkTypescriptProjectOptions = { ... }
15389
16091
  ```
15390
16092
 
15391
- - *Type:* string
15392
- - *Default:* "src/app.ts"
16093
+ #### Properties <a name="Properties" id="Properties"></a>
16094
+
16095
+ | **Name** | **Type** | **Description** |
16096
+ | --- | --- | --- |
16097
+ | <code><a href="#@xpertss/projen-types.CdkTypescriptProjectOptions.property.sonarHostUrl">sonarHostUrl</a></code> | <code>string</code> | URL of the org's SonarCloud instance (e.g. `https://sonarcloud.io`). When set, a `sonar.yml` SonarScanner workflow is generated; when omitted, no Sonar workflow is produced. Must be reachable from github.com-hosted (public) runners (AD-001). |
16098
+ | <code><a href="#@xpertss/projen-types.CdkTypescriptProjectOptions.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. |
16099
+ | <code><a href="#@xpertss/projen-types.CdkTypescriptProjectOptions.property.sonarProjectKey">sonarProjectKey</a></code> | <code>string</code> | `sonar.projectKey`. |
16100
+ | <code><a href="#@xpertss/projen-types.CdkTypescriptProjectOptions.property.sonarPullRequestGate">sonarPullRequestGate</a></code> | <code>boolean</code> | Whether `sonar.yml` also runs on `pull_request` as a pass/fail gate. |
16101
+ | <code><a href="#@xpertss/projen-types.CdkTypescriptProjectOptions.property.sonarTokenSecret">sonarTokenSecret</a></code> | <code>string</code> | *No description.* |
16102
+ | <code><a href="#@xpertss/projen-types.CdkTypescriptProjectOptions.property.name">name</a></code> | <code>string</code> | *No description.* |
16103
+ | <code><a href="#@xpertss/projen-types.CdkTypescriptProjectOptions.property.cdkVersion">cdkVersion</a></code> | <code>string</code> | *No description.* |
16104
+ | <code><a href="#@xpertss/projen-types.CdkTypescriptProjectOptions.property.copyrightOwner">copyrightOwner</a></code> | <code>string</code> | Copyright owner named in the `LICENSE`. |
16105
+ | <code><a href="#@xpertss/projen-types.CdkTypescriptProjectOptions.property.copyrightPeriod">copyrightPeriod</a></code> | <code>string</code> | Copyright period named in the `LICENSE`. |
16106
+ | <code><a href="#@xpertss/projen-types.CdkTypescriptProjectOptions.property.editorconfig">editorconfig</a></code> | <code>boolean</code> | Write a projen-managed `.editorconfig`. |
16107
+ | <code><a href="#@xpertss/projen-types.CdkTypescriptProjectOptions.property.gheTokenSecret">gheTokenSecret</a></code> | <code>string</code> | *No description.* |
16108
+ | <code><a href="#@xpertss/projen-types.CdkTypescriptProjectOptions.property.license">license</a></code> | <code>string</code> | SPDX identifier for the generated `LICENSE`. |
16109
+ | <code><a href="#@xpertss/projen-types.CdkTypescriptProjectOptions.property.licensed">licensed</a></code> | <code>boolean</code> | Write a `LICENSE`. |
16110
+ | <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.* |
15393
16111
 
15394
16112
  ---
15395
16113
 
15396
- ##### `database`<sup>Optional</sup> <a name="database" id="@xpertss/projen-types.CdkAppProjectOptions.property.database"></a>
16114
+ ##### `sonarHostUrl`<sup>Optional</sup> <a name="sonarHostUrl" id="@xpertss/projen-types.CdkTypescriptProjectOptions.property.sonarHostUrl"></a>
15397
16115
 
15398
16116
  ```typescript
15399
- public readonly database: DatabaseOptions;
16117
+ public readonly sonarHostUrl: string;
15400
16118
  ```
15401
16119
 
15402
- - *Type:* <a href="#@xpertss/projen-types.DatabaseOptions">DatabaseOptions</a>
16120
+ - *Type:* string
15403
16121
 
15404
- ---
16122
+ URL of the org's SonarCloud instance (e.g. `https://sonarcloud.io`). When set, a `sonar.yml` SonarScanner workflow is generated; when omitted, no Sonar workflow is produced. Must be reachable from github.com-hosted (public) runners (AD-001).
15405
16123
 
15406
- ### CdkDeployHookOptions <a name="CdkDeployHookOptions" id="@xpertss/projen-types.CdkDeployHookOptions"></a>
16124
+ ---
15407
16125
 
15408
- #### Initializer <a name="Initializer" id="@xpertss/projen-types.CdkDeployHookOptions.Initializer"></a>
16126
+ ##### `sonarOrganization`<sup>Optional</sup> <a name="sonarOrganization" id="@xpertss/projen-types.CdkTypescriptProjectOptions.property.sonarOrganization"></a>
15409
16127
 
15410
16128
  ```typescript
15411
- import { CdkDeployHookOptions } from '@xpertss/projen-types'
15412
-
15413
- const cdkDeployHookOptions: CdkDeployHookOptions = { ... }
16129
+ public readonly sonarOrganization: string;
15414
16130
  ```
15415
16131
 
15416
- #### Properties <a name="Properties" id="Properties"></a>
16132
+ - *Type:* string
16133
+ - *Default:* "xpertss"
15417
16134
 
15418
- | **Name** | **Type** | **Description** |
15419
- | --- | --- | --- |
15420
- | <code><a href="#@xpertss/projen-types.CdkDeployHookOptions.property.targetRepo">targetRepo</a></code> | <code>string</code> | The companion CDK infra/app repo (owner/repo) that owns the actual infrastructure. |
16135
+ 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.
15421
16136
 
15422
16137
  ---
15423
16138
 
15424
- ##### `targetRepo`<sup>Optional</sup> <a name="targetRepo" id="@xpertss/projen-types.CdkDeployHookOptions.property.targetRepo"></a>
16139
+ ##### `sonarProjectKey`<sup>Optional</sup> <a name="sonarProjectKey" id="@xpertss/projen-types.CdkTypescriptProjectOptions.property.sonarProjectKey"></a>
15425
16140
 
15426
16141
  ```typescript
15427
- public readonly targetRepo: string;
16142
+ public readonly sonarProjectKey: string;
15428
16143
  ```
15429
16144
 
15430
16145
  - *Type:* string
15431
- - *Default:* the workflow is still generated, but its only step fails with instructions (see `CdkDeployHook`)
16146
+ - *Default:* `${sonarOrganization}_${name}` (the org + project key SonarCloud uses, e.g. `xpertss_create-pull-request`)
15432
16147
 
15433
- The companion CDK infra/app repo (owner/repo) that owns the actual infrastructure.
16148
+ `sonar.projectKey`.
15434
16149
 
15435
16150
  ---
15436
16151
 
15437
- ### CdkInfraProjectOptions <a name="CdkInfraProjectOptions" id="@xpertss/projen-types.CdkInfraProjectOptions"></a>
15438
-
15439
- #### Initializer <a name="Initializer" id="@xpertss/projen-types.CdkInfraProjectOptions.Initializer"></a>
16152
+ ##### `sonarPullRequestGate`<sup>Optional</sup> <a name="sonarPullRequestGate" id="@xpertss/projen-types.CdkTypescriptProjectOptions.property.sonarPullRequestGate"></a>
15440
16153
 
15441
16154
  ```typescript
15442
- import { CdkInfraProjectOptions } from '@xpertss/projen-types'
15443
-
15444
- const cdkInfraProjectOptions: CdkInfraProjectOptions = { ... }
16155
+ public readonly sonarPullRequestGate: boolean;
15445
16156
  ```
15446
16157
 
15447
- #### Properties <a name="Properties" id="Properties"></a>
16158
+ - *Type:* boolean
16159
+ - *Default:* true
15448
16160
 
15449
- | **Name** | **Type** | **Description** |
15450
- | --- | --- | --- |
15451
- | <code><a href="#@xpertss/projen-types.CdkInfraProjectOptions.property.name">name</a></code> | <code>string</code> | *No description.* |
15452
- | <code><a href="#@xpertss/projen-types.CdkInfraProjectOptions.property.cdkVersion">cdkVersion</a></code> | <code>string</code> | *No description.* |
15453
- | <code><a href="#@xpertss/projen-types.CdkInfraProjectOptions.property.editorconfig">editorconfig</a></code> | <code>boolean</code> | Write a projen-managed `.editorconfig`. |
15454
- | <code><a href="#@xpertss/projen-types.CdkInfraProjectOptions.property.gheTokenSecret">gheTokenSecret</a></code> | <code>string</code> | *No description.* |
15455
- | <code><a href="#@xpertss/projen-types.CdkInfraProjectOptions.property.ecrEcs">ecrEcs</a></code> | <code><a href="#@xpertss/projen-types.EcrEcsOptions">EcrEcsOptions</a></code> | *No description.* |
15456
- | <code><a href="#@xpertss/projen-types.CdkInfraProjectOptions.property.edgeResources">edgeResources</a></code> | <code>string[]</code> | *No description.* |
15457
- | <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. |
16161
+ Whether `sonar.yml` also runs on `pull_request` as a pass/fail gate.
15458
16162
 
15459
16163
  ---
15460
16164
 
15461
- ##### `name`<sup>Required</sup> <a name="name" id="@xpertss/projen-types.CdkInfraProjectOptions.property.name"></a>
16165
+ ##### `sonarTokenSecret`<sup>Optional</sup> <a name="sonarTokenSecret" id="@xpertss/projen-types.CdkTypescriptProjectOptions.property.sonarTokenSecret"></a>
16166
+
16167
+ ```typescript
16168
+ public readonly sonarTokenSecret: string;
16169
+ ```
16170
+
16171
+ - *Type:* string
16172
+ - *Default:* "SONAR_TOKEN"
16173
+
16174
+ ---
16175
+
16176
+ ##### `name`<sup>Required</sup> <a name="name" id="@xpertss/projen-types.CdkTypescriptProjectOptions.property.name"></a>
15462
16177
 
15463
16178
  ```typescript
15464
16179
  public readonly name: string;
@@ -15468,7 +16183,7 @@ public readonly name: string;
15468
16183
 
15469
16184
  ---
15470
16185
 
15471
- ##### `cdkVersion`<sup>Optional</sup> <a name="cdkVersion" id="@xpertss/projen-types.CdkInfraProjectOptions.property.cdkVersion"></a>
16186
+ ##### `cdkVersion`<sup>Optional</sup> <a name="cdkVersion" id="@xpertss/projen-types.CdkTypescriptProjectOptions.property.cdkVersion"></a>
15472
16187
 
15473
16188
  ```typescript
15474
16189
  public readonly cdkVersion: string;
@@ -15479,7 +16194,33 @@ public readonly cdkVersion: string;
15479
16194
 
15480
16195
  ---
15481
16196
 
15482
- ##### `editorconfig`<sup>Optional</sup> <a name="editorconfig" id="@xpertss/projen-types.CdkInfraProjectOptions.property.editorconfig"></a>
16197
+ ##### `copyrightOwner`<sup>Optional</sup> <a name="copyrightOwner" id="@xpertss/projen-types.CdkTypescriptProjectOptions.property.copyrightOwner"></a>
16198
+
16199
+ ```typescript
16200
+ public readonly copyrightOwner: string;
16201
+ ```
16202
+
16203
+ - *Type:* string
16204
+ - *Default:* "Xpert Software"
16205
+
16206
+ Copyright owner named in the `LICENSE`.
16207
+
16208
+ ---
16209
+
16210
+ ##### `copyrightPeriod`<sup>Optional</sup> <a name="copyrightPeriod" id="@xpertss/projen-types.CdkTypescriptProjectOptions.property.copyrightPeriod"></a>
16211
+
16212
+ ```typescript
16213
+ public readonly copyrightPeriod: string;
16214
+ ```
16215
+
16216
+ - *Type:* string
16217
+ - *Default:* the current year
16218
+
16219
+ Copyright period named in the `LICENSE`.
16220
+
16221
+ ---
16222
+
16223
+ ##### `editorconfig`<sup>Optional</sup> <a name="editorconfig" id="@xpertss/projen-types.CdkTypescriptProjectOptions.property.editorconfig"></a>
15483
16224
 
15484
16225
  ```typescript
15485
16226
  public readonly editorconfig: boolean;
@@ -15492,7 +16233,7 @@ Write a projen-managed `.editorconfig`.
15492
16233
 
15493
16234
  ---
15494
16235
 
15495
- ##### `gheTokenSecret`<sup>Optional</sup> <a name="gheTokenSecret" id="@xpertss/projen-types.CdkInfraProjectOptions.property.gheTokenSecret"></a>
16236
+ ##### `gheTokenSecret`<sup>Optional</sup> <a name="gheTokenSecret" id="@xpertss/projen-types.CdkTypescriptProjectOptions.property.gheTokenSecret"></a>
15496
16237
 
15497
16238
  ```typescript
15498
16239
  public readonly gheTokenSecret: string;
@@ -15503,161 +16244,178 @@ public readonly gheTokenSecret: string;
15503
16244
 
15504
16245
  ---
15505
16246
 
15506
- ##### `ecrEcs`<sup>Optional</sup> <a name="ecrEcs" id="@xpertss/projen-types.CdkInfraProjectOptions.property.ecrEcs"></a>
16247
+ ##### `license`<sup>Optional</sup> <a name="license" id="@xpertss/projen-types.CdkTypescriptProjectOptions.property.license"></a>
15507
16248
 
15508
16249
  ```typescript
15509
- public readonly ecrEcs: EcrEcsOptions;
16250
+ public readonly license: string;
15510
16251
  ```
15511
16252
 
15512
- - *Type:* <a href="#@xpertss/projen-types.EcrEcsOptions">EcrEcsOptions</a>
16253
+ - *Type:* string
16254
+ - *Default:* "MIT"
16255
+
16256
+ SPDX identifier for the generated `LICENSE`.
15513
16257
 
15514
16258
  ---
15515
16259
 
15516
- ##### `edgeResources`<sup>Optional</sup> <a name="edgeResources" id="@xpertss/projen-types.CdkInfraProjectOptions.property.edgeResources"></a>
16260
+ ##### `licensed`<sup>Optional</sup> <a name="licensed" id="@xpertss/projen-types.CdkTypescriptProjectOptions.property.licensed"></a>
15517
16261
 
15518
16262
  ```typescript
15519
- public readonly edgeResources: string[];
16263
+ public readonly licensed: boolean;
15520
16264
  ```
15521
16265
 
15522
- - *Type:* string[]
16266
+ - *Type:* boolean
16267
+ - *Default:* true
16268
+
16269
+ Write a `LICENSE`.
15523
16270
 
15524
16271
  ---
15525
16272
 
15526
- ##### `environments`<sup>Optional</sup> <a name="environments" id="@xpertss/projen-types.CdkInfraProjectOptions.property.environments"></a>
16273
+ ##### `environments`<sup>Optional</sup> <a name="environments" id="@xpertss/projen-types.CdkTypescriptProjectOptions.property.environments"></a>
15527
16274
 
15528
16275
  ```typescript
15529
16276
  public readonly environments: (string | EnvironmentOptions)[];
15530
16277
  ```
15531
16278
 
15532
16279
  - *Type:* string | <a href="#@xpertss/projen-types.EnvironmentOptions">EnvironmentOptions</a>[]
15533
- - *Default:* no deploy workflow
15534
-
15535
- Deploy targets for the manual-dispatch deploy workflow, e.g. ["dev", "stage", "prod"]. No `deploy` workflow is generated when this is empty or omitted.
15536
-
15537
- Optional rather than required so that `projen new --from` can scaffold
15538
- the repo: its union type (`string | EnvironmentOptions`) is not
15539
- "JSON-like", so projen's CLI cannot render a value for it into the
15540
- initial `.projenrc.ts` - and a *required* option it cannot render leaves
15541
- behind a projenrc that does not type-check.
15542
16280
 
15543
16281
  ---
15544
16282
 
15545
- ### CdkTypescriptProjectOptions <a name="CdkTypescriptProjectOptions" id="@xpertss/projen-types.CdkTypescriptProjectOptions"></a>
16283
+ ### CommonCdkOptions <a name="CommonCdkOptions" id="@xpertss/projen-types.CommonCdkOptions"></a>
15546
16284
 
15547
- #### Initializer <a name="Initializer" id="@xpertss/projen-types.CdkTypescriptProjectOptions.Initializer"></a>
16285
+ #### Initializer <a name="Initializer" id="@xpertss/projen-types.CommonCdkOptions.Initializer"></a>
15548
16286
 
15549
16287
  ```typescript
15550
- import { CdkTypescriptProjectOptions } from '@xpertss/projen-types'
16288
+ import { CommonCdkOptions } from '@xpertss/projen-types'
15551
16289
 
15552
- const cdkTypescriptProjectOptions: CdkTypescriptProjectOptions = { ... }
16290
+ const commonCdkOptions: CommonCdkOptions = { ... }
15553
16291
  ```
15554
16292
 
15555
16293
  #### Properties <a name="Properties" id="Properties"></a>
15556
16294
 
15557
16295
  | **Name** | **Type** | **Description** |
15558
16296
  | --- | --- | --- |
15559
- | <code><a href="#@xpertss/projen-types.CdkTypescriptProjectOptions.property.name">name</a></code> | <code>string</code> | *No description.* |
15560
- | <code><a href="#@xpertss/projen-types.CdkTypescriptProjectOptions.property.cdkVersion">cdkVersion</a></code> | <code>string</code> | *No description.* |
15561
- | <code><a href="#@xpertss/projen-types.CdkTypescriptProjectOptions.property.editorconfig">editorconfig</a></code> | <code>boolean</code> | Write a projen-managed `.editorconfig`. |
15562
- | <code><a href="#@xpertss/projen-types.CdkTypescriptProjectOptions.property.gheTokenSecret">gheTokenSecret</a></code> | <code>string</code> | *No description.* |
15563
- | <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.* |
16297
+ | <code><a href="#@xpertss/projen-types.CommonCdkOptions.property.sonarHostUrl">sonarHostUrl</a></code> | <code>string</code> | URL of the org's SonarCloud instance (e.g. `https://sonarcloud.io`). When set, a `sonar.yml` SonarScanner workflow is generated; when omitted, no Sonar workflow is produced. Must be reachable from github.com-hosted (public) runners (AD-001). |
16298
+ | <code><a href="#@xpertss/projen-types.CommonCdkOptions.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. |
16299
+ | <code><a href="#@xpertss/projen-types.CommonCdkOptions.property.sonarProjectKey">sonarProjectKey</a></code> | <code>string</code> | `sonar.projectKey`. |
16300
+ | <code><a href="#@xpertss/projen-types.CommonCdkOptions.property.sonarPullRequestGate">sonarPullRequestGate</a></code> | <code>boolean</code> | Whether `sonar.yml` also runs on `pull_request` as a pass/fail gate. |
16301
+ | <code><a href="#@xpertss/projen-types.CommonCdkOptions.property.sonarTokenSecret">sonarTokenSecret</a></code> | <code>string</code> | *No description.* |
16302
+ | <code><a href="#@xpertss/projen-types.CommonCdkOptions.property.name">name</a></code> | <code>string</code> | *No description.* |
16303
+ | <code><a href="#@xpertss/projen-types.CommonCdkOptions.property.cdkVersion">cdkVersion</a></code> | <code>string</code> | *No description.* |
16304
+ | <code><a href="#@xpertss/projen-types.CommonCdkOptions.property.copyrightOwner">copyrightOwner</a></code> | <code>string</code> | Copyright owner named in the `LICENSE`. |
16305
+ | <code><a href="#@xpertss/projen-types.CommonCdkOptions.property.copyrightPeriod">copyrightPeriod</a></code> | <code>string</code> | Copyright period named in the `LICENSE`. |
16306
+ | <code><a href="#@xpertss/projen-types.CommonCdkOptions.property.editorconfig">editorconfig</a></code> | <code>boolean</code> | Write a projen-managed `.editorconfig`. |
16307
+ | <code><a href="#@xpertss/projen-types.CommonCdkOptions.property.gheTokenSecret">gheTokenSecret</a></code> | <code>string</code> | *No description.* |
16308
+ | <code><a href="#@xpertss/projen-types.CommonCdkOptions.property.license">license</a></code> | <code>string</code> | SPDX identifier for the generated `LICENSE`. |
16309
+ | <code><a href="#@xpertss/projen-types.CommonCdkOptions.property.licensed">licensed</a></code> | <code>boolean</code> | Write a `LICENSE`. |
15564
16310
 
15565
16311
  ---
15566
16312
 
15567
- ##### `name`<sup>Required</sup> <a name="name" id="@xpertss/projen-types.CdkTypescriptProjectOptions.property.name"></a>
16313
+ ##### `sonarHostUrl`<sup>Optional</sup> <a name="sonarHostUrl" id="@xpertss/projen-types.CommonCdkOptions.property.sonarHostUrl"></a>
15568
16314
 
15569
16315
  ```typescript
15570
- public readonly name: string;
16316
+ public readonly sonarHostUrl: string;
15571
16317
  ```
15572
16318
 
15573
16319
  - *Type:* string
15574
16320
 
16321
+ URL of the org's SonarCloud instance (e.g. `https://sonarcloud.io`). When set, a `sonar.yml` SonarScanner workflow is generated; when omitted, no Sonar workflow is produced. Must be reachable from github.com-hosted (public) runners (AD-001).
16322
+
15575
16323
  ---
15576
16324
 
15577
- ##### `cdkVersion`<sup>Optional</sup> <a name="cdkVersion" id="@xpertss/projen-types.CdkTypescriptProjectOptions.property.cdkVersion"></a>
16325
+ ##### `sonarOrganization`<sup>Optional</sup> <a name="sonarOrganization" id="@xpertss/projen-types.CommonCdkOptions.property.sonarOrganization"></a>
15578
16326
 
15579
16327
  ```typescript
15580
- public readonly cdkVersion: string;
16328
+ public readonly sonarOrganization: string;
15581
16329
  ```
15582
16330
 
15583
16331
  - *Type:* string
15584
- - *Default:* "2.189.1"
16332
+ - *Default:* "xpertss"
16333
+
16334
+ 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.
15585
16335
 
15586
16336
  ---
15587
16337
 
15588
- ##### `editorconfig`<sup>Optional</sup> <a name="editorconfig" id="@xpertss/projen-types.CdkTypescriptProjectOptions.property.editorconfig"></a>
16338
+ ##### `sonarProjectKey`<sup>Optional</sup> <a name="sonarProjectKey" id="@xpertss/projen-types.CommonCdkOptions.property.sonarProjectKey"></a>
15589
16339
 
15590
16340
  ```typescript
15591
- public readonly editorconfig: boolean;
16341
+ public readonly sonarProjectKey: string;
16342
+ ```
16343
+
16344
+ - *Type:* string
16345
+ - *Default:* `${sonarOrganization}_${name}` (the org + project key SonarCloud uses, e.g. `xpertss_create-pull-request`)
16346
+
16347
+ `sonar.projectKey`.
16348
+
16349
+ ---
16350
+
16351
+ ##### `sonarPullRequestGate`<sup>Optional</sup> <a name="sonarPullRequestGate" id="@xpertss/projen-types.CommonCdkOptions.property.sonarPullRequestGate"></a>
16352
+
16353
+ ```typescript
16354
+ public readonly sonarPullRequestGate: boolean;
15592
16355
  ```
15593
16356
 
15594
16357
  - *Type:* boolean
15595
16358
  - *Default:* true
15596
16359
 
15597
- Write a projen-managed `.editorconfig`.
16360
+ Whether `sonar.yml` also runs on `pull_request` as a pass/fail gate.
15598
16361
 
15599
16362
  ---
15600
16363
 
15601
- ##### `gheTokenSecret`<sup>Optional</sup> <a name="gheTokenSecret" id="@xpertss/projen-types.CdkTypescriptProjectOptions.property.gheTokenSecret"></a>
16364
+ ##### `sonarTokenSecret`<sup>Optional</sup> <a name="sonarTokenSecret" id="@xpertss/projen-types.CommonCdkOptions.property.sonarTokenSecret"></a>
15602
16365
 
15603
16366
  ```typescript
15604
- public readonly gheTokenSecret: string;
16367
+ public readonly sonarTokenSecret: string;
15605
16368
  ```
15606
16369
 
15607
16370
  - *Type:* string
15608
- - *Default:* "PROJEN_GITHUB_TOKEN"
16371
+ - *Default:* "SONAR_TOKEN"
15609
16372
 
15610
16373
  ---
15611
16374
 
15612
- ##### `environments`<sup>Optional</sup> <a name="environments" id="@xpertss/projen-types.CdkTypescriptProjectOptions.property.environments"></a>
16375
+ ##### `name`<sup>Required</sup> <a name="name" id="@xpertss/projen-types.CommonCdkOptions.property.name"></a>
15613
16376
 
15614
16377
  ```typescript
15615
- public readonly environments: (string | EnvironmentOptions)[];
16378
+ public readonly name: string;
15616
16379
  ```
15617
16380
 
15618
- - *Type:* string | <a href="#@xpertss/projen-types.EnvironmentOptions">EnvironmentOptions</a>[]
16381
+ - *Type:* string
15619
16382
 
15620
16383
  ---
15621
16384
 
15622
- ### CommonCdkOptions <a name="CommonCdkOptions" id="@xpertss/projen-types.CommonCdkOptions"></a>
15623
-
15624
- #### Initializer <a name="Initializer" id="@xpertss/projen-types.CommonCdkOptions.Initializer"></a>
16385
+ ##### `cdkVersion`<sup>Optional</sup> <a name="cdkVersion" id="@xpertss/projen-types.CommonCdkOptions.property.cdkVersion"></a>
15625
16386
 
15626
16387
  ```typescript
15627
- import { CommonCdkOptions } from '@xpertss/projen-types'
15628
-
15629
- const commonCdkOptions: CommonCdkOptions = { ... }
16388
+ public readonly cdkVersion: string;
15630
16389
  ```
15631
16390
 
15632
- #### Properties <a name="Properties" id="Properties"></a>
15633
-
15634
- | **Name** | **Type** | **Description** |
15635
- | --- | --- | --- |
15636
- | <code><a href="#@xpertss/projen-types.CommonCdkOptions.property.name">name</a></code> | <code>string</code> | *No description.* |
15637
- | <code><a href="#@xpertss/projen-types.CommonCdkOptions.property.cdkVersion">cdkVersion</a></code> | <code>string</code> | *No description.* |
15638
- | <code><a href="#@xpertss/projen-types.CommonCdkOptions.property.editorconfig">editorconfig</a></code> | <code>boolean</code> | Write a projen-managed `.editorconfig`. |
15639
- | <code><a href="#@xpertss/projen-types.CommonCdkOptions.property.gheTokenSecret">gheTokenSecret</a></code> | <code>string</code> | *No description.* |
16391
+ - *Type:* string
16392
+ - *Default:* "2.189.1"
15640
16393
 
15641
16394
  ---
15642
16395
 
15643
- ##### `name`<sup>Required</sup> <a name="name" id="@xpertss/projen-types.CommonCdkOptions.property.name"></a>
16396
+ ##### `copyrightOwner`<sup>Optional</sup> <a name="copyrightOwner" id="@xpertss/projen-types.CommonCdkOptions.property.copyrightOwner"></a>
15644
16397
 
15645
16398
  ```typescript
15646
- public readonly name: string;
16399
+ public readonly copyrightOwner: string;
15647
16400
  ```
15648
16401
 
15649
16402
  - *Type:* string
16403
+ - *Default:* "Xpert Software"
16404
+
16405
+ Copyright owner named in the `LICENSE`.
15650
16406
 
15651
16407
  ---
15652
16408
 
15653
- ##### `cdkVersion`<sup>Optional</sup> <a name="cdkVersion" id="@xpertss/projen-types.CommonCdkOptions.property.cdkVersion"></a>
16409
+ ##### `copyrightPeriod`<sup>Optional</sup> <a name="copyrightPeriod" id="@xpertss/projen-types.CommonCdkOptions.property.copyrightPeriod"></a>
15654
16410
 
15655
16411
  ```typescript
15656
- public readonly cdkVersion: string;
16412
+ public readonly copyrightPeriod: string;
15657
16413
  ```
15658
16414
 
15659
16415
  - *Type:* string
15660
- - *Default:* "2.189.1"
16416
+ - *Default:* the current year
16417
+
16418
+ Copyright period named in the `LICENSE`.
15661
16419
 
15662
16420
  ---
15663
16421
 
@@ -15667,21 +16425,47 @@ public readonly cdkVersion: string;
15667
16425
  public readonly editorconfig: boolean;
15668
16426
  ```
15669
16427
 
15670
- - *Type:* boolean
15671
- - *Default:* true
16428
+ - *Type:* boolean
16429
+ - *Default:* true
16430
+
16431
+ Write a projen-managed `.editorconfig`.
16432
+
16433
+ ---
16434
+
16435
+ ##### `gheTokenSecret`<sup>Optional</sup> <a name="gheTokenSecret" id="@xpertss/projen-types.CommonCdkOptions.property.gheTokenSecret"></a>
16436
+
16437
+ ```typescript
16438
+ public readonly gheTokenSecret: string;
16439
+ ```
16440
+
16441
+ - *Type:* string
16442
+ - *Default:* "PROJEN_GITHUB_TOKEN"
16443
+
16444
+ ---
16445
+
16446
+ ##### `license`<sup>Optional</sup> <a name="license" id="@xpertss/projen-types.CommonCdkOptions.property.license"></a>
16447
+
16448
+ ```typescript
16449
+ public readonly license: string;
16450
+ ```
16451
+
16452
+ - *Type:* string
16453
+ - *Default:* "MIT"
15672
16454
 
15673
- Write a projen-managed `.editorconfig`.
16455
+ SPDX identifier for the generated `LICENSE`.
15674
16456
 
15675
16457
  ---
15676
16458
 
15677
- ##### `gheTokenSecret`<sup>Optional</sup> <a name="gheTokenSecret" id="@xpertss/projen-types.CommonCdkOptions.property.gheTokenSecret"></a>
16459
+ ##### `licensed`<sup>Optional</sup> <a name="licensed" id="@xpertss/projen-types.CommonCdkOptions.property.licensed"></a>
15678
16460
 
15679
16461
  ```typescript
15680
- public readonly gheTokenSecret: string;
16462
+ public readonly licensed: boolean;
15681
16463
  ```
15682
16464
 
15683
- - *Type:* string
15684
- - *Default:* "PROJEN_GITHUB_TOKEN"
16465
+ - *Type:* boolean
16466
+ - *Default:* true
16467
+
16468
+ Write a `LICENSE`.
15685
16469
 
15686
16470
  ---
15687
16471
 
@@ -15699,6 +16483,11 @@ const commonJavaOptions: CommonJavaOptions = { ... }
15699
16483
 
15700
16484
  | **Name** | **Type** | **Description** |
15701
16485
  | --- | --- | --- |
16486
+ | <code><a href="#@xpertss/projen-types.CommonJavaOptions.property.sonarHostUrl">sonarHostUrl</a></code> | <code>string</code> | URL of the org's SonarCloud instance (e.g. `https://sonarcloud.io`). When set, a `sonar.yml` SonarScanner workflow is generated; when omitted, no Sonar workflow is produced. Must be reachable from github.com-hosted (public) runners (AD-001). |
16487
+ | <code><a href="#@xpertss/projen-types.CommonJavaOptions.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. |
16488
+ | <code><a href="#@xpertss/projen-types.CommonJavaOptions.property.sonarProjectKey">sonarProjectKey</a></code> | <code>string</code> | `sonar.projectKey`. |
16489
+ | <code><a href="#@xpertss/projen-types.CommonJavaOptions.property.sonarPullRequestGate">sonarPullRequestGate</a></code> | <code>boolean</code> | Whether `sonar.yml` also runs on `pull_request` as a pass/fail gate. |
16490
+ | <code><a href="#@xpertss/projen-types.CommonJavaOptions.property.sonarTokenSecret">sonarTokenSecret</a></code> | <code>string</code> | *No description.* |
15702
16491
  | <code><a href="#@xpertss/projen-types.CommonJavaOptions.property.artifactId">artifactId</a></code> | <code>string</code> | *No description.* |
15703
16492
  | <code><a href="#@xpertss/projen-types.CommonJavaOptions.property.groupId">groupId</a></code> | <code>string</code> | *No description.* |
15704
16493
  | <code><a href="#@xpertss/projen-types.CommonJavaOptions.property.name">name</a></code> | <code>string</code> | *No description.* |
@@ -15716,13 +16505,74 @@ const commonJavaOptions: CommonJavaOptions = { ... }
15716
16505
  | <code><a href="#@xpertss/projen-types.CommonJavaOptions.property.packaging">packaging</a></code> | <code>string</code> | Maven packaging of the root pom while the project has no modules. |
15717
16506
  | <code><a href="#@xpertss/projen-types.CommonJavaOptions.property.pluginVersions">pluginVersions</a></code> | <code>{[ key: string ]: string}</code> | Overrides for the plugin/BOM versions this package pins by default, keyed by `groupId/artifactId`, e.g. `{ 'org.apache.maven.plugins/maven-surefire-plugin': '3.5.6' }`. Values must be exact versions. |
15718
16507
  | <code><a href="#@xpertss/projen-types.CommonJavaOptions.property.sample">sample</a></code> | <code>boolean</code> | Write a starter `Main` class and test under the `groupId` package, if `src/` does not exist yet. |
15719
- | <code><a href="#@xpertss/projen-types.CommonJavaOptions.property.sonarProjectKey">sonarProjectKey</a></code> | <code>string</code> | SonarCloud project key. |
15720
16508
  | <code><a href="#@xpertss/projen-types.CommonJavaOptions.property.upgradeWorkflow">upgradeWorkflow</a></code> | <code>boolean</code> | Generate the nightly `upgrade.yml` workflow, which reports available dependency and plugin updates in the job summary (it never edits files - versions are changed in `.projenrc.ts`). |
15721
16509
  | <code><a href="#@xpertss/projen-types.CommonJavaOptions.property.url">url</a></code> | <code>string</code> | Project URL, written to the root pom. |
15722
16510
  | <code><a href="#@xpertss/projen-types.CommonJavaOptions.property.version">version</a></code> | <code>string</code> | *No description.* |
15723
16511
 
15724
16512
  ---
15725
16513
 
16514
+ ##### `sonarHostUrl`<sup>Optional</sup> <a name="sonarHostUrl" id="@xpertss/projen-types.CommonJavaOptions.property.sonarHostUrl"></a>
16515
+
16516
+ ```typescript
16517
+ public readonly sonarHostUrl: string;
16518
+ ```
16519
+
16520
+ - *Type:* string
16521
+
16522
+ URL of the org's SonarCloud instance (e.g. `https://sonarcloud.io`). When set, a `sonar.yml` SonarScanner workflow is generated; when omitted, no Sonar workflow is produced. Must be reachable from github.com-hosted (public) runners (AD-001).
16523
+
16524
+ ---
16525
+
16526
+ ##### `sonarOrganization`<sup>Optional</sup> <a name="sonarOrganization" id="@xpertss/projen-types.CommonJavaOptions.property.sonarOrganization"></a>
16527
+
16528
+ ```typescript
16529
+ public readonly sonarOrganization: string;
16530
+ ```
16531
+
16532
+ - *Type:* string
16533
+ - *Default:* "xpertss"
16534
+
16535
+ 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.
16536
+
16537
+ ---
16538
+
16539
+ ##### `sonarProjectKey`<sup>Optional</sup> <a name="sonarProjectKey" id="@xpertss/projen-types.CommonJavaOptions.property.sonarProjectKey"></a>
16540
+
16541
+ ```typescript
16542
+ public readonly sonarProjectKey: string;
16543
+ ```
16544
+
16545
+ - *Type:* string
16546
+ - *Default:* `${sonarOrganization}_${name}` (the org + project key SonarCloud uses, e.g. `xpertss_create-pull-request`)
16547
+
16548
+ `sonar.projectKey`.
16549
+
16550
+ ---
16551
+
16552
+ ##### `sonarPullRequestGate`<sup>Optional</sup> <a name="sonarPullRequestGate" id="@xpertss/projen-types.CommonJavaOptions.property.sonarPullRequestGate"></a>
16553
+
16554
+ ```typescript
16555
+ public readonly sonarPullRequestGate: boolean;
16556
+ ```
16557
+
16558
+ - *Type:* boolean
16559
+ - *Default:* true
16560
+
16561
+ Whether `sonar.yml` also runs on `pull_request` as a pass/fail gate.
16562
+
16563
+ ---
16564
+
16565
+ ##### `sonarTokenSecret`<sup>Optional</sup> <a name="sonarTokenSecret" id="@xpertss/projen-types.CommonJavaOptions.property.sonarTokenSecret"></a>
16566
+
16567
+ ```typescript
16568
+ public readonly sonarTokenSecret: string;
16569
+ ```
16570
+
16571
+ - *Type:* string
16572
+ - *Default:* "SONAR_TOKEN"
16573
+
16574
+ ---
16575
+
15726
16576
  ##### `artifactId`<sup>Required</sup> <a name="artifactId" id="@xpertss/projen-types.CommonJavaOptions.property.artifactId"></a>
15727
16577
 
15728
16578
  ```typescript
@@ -15760,7 +16610,7 @@ public readonly copyrightOwner: string;
15760
16610
  ```
15761
16611
 
15762
16612
  - *Type:* string
15763
- - *Default:* "xpertss" (same as `GitHubActionProject`)
16613
+ - *Default:* "Xpert Software"
15764
16614
 
15765
16615
  Copyright owner named in the `LICENSE`.
15766
16616
 
@@ -15950,20 +16800,6 @@ Never written for a multi-module project.
15950
16800
 
15951
16801
  ---
15952
16802
 
15953
- ##### `sonarProjectKey`<sup>Optional</sup> <a name="sonarProjectKey" id="@xpertss/projen-types.CommonJavaOptions.property.sonarProjectKey"></a>
15954
-
15955
- ```typescript
15956
- public readonly sonarProjectKey: string;
15957
- ```
15958
-
15959
- - *Type:* string
15960
-
15961
- SonarCloud project key.
15962
-
15963
- If unset, the sonar scan step is skipped.
15964
-
15965
- ---
15966
-
15967
16803
  ##### `upgradeWorkflow`<sup>Optional</sup> <a name="upgradeWorkflow" id="@xpertss/projen-types.CommonJavaOptions.property.upgradeWorkflow"></a>
15968
16804
 
15969
16805
  ```typescript
@@ -16227,15 +17063,18 @@ const gitHubActionProjectOptions: GitHubActionProjectOptions = { ... }
16227
17063
  | <code><a href="#@xpertss/projen-types.GitHubActionProjectOptions.property.stale">stale</a></code> | <code>boolean</code> | Auto-close of stale issues and pull request. |
16228
17064
  | <code><a href="#@xpertss/projen-types.GitHubActionProjectOptions.property.staleOptions">staleOptions</a></code> | <code>projen.github.StaleOptions</code> | Auto-close stale issues and pull requests. |
16229
17065
  | <code><a href="#@xpertss/projen-types.GitHubActionProjectOptions.property.vscode">vscode</a></code> | <code>boolean</code> | Enable VSCode integration. |
16230
- | <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. |
17066
+ | <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`). When set, a `sonar.yml` SonarScanner workflow is generated; when omitted, no Sonar workflow is produced. Must be reachable from github.com-hosted (public) runners (AD-001). |
17067
+ | <code><a href="#@xpertss/projen-types.GitHubActionProjectOptions.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. |
17068
+ | <code><a href="#@xpertss/projen-types.GitHubActionProjectOptions.property.sonarProjectKey">sonarProjectKey</a></code> | <code>string</code> | `sonar.projectKey`. |
17069
+ | <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. |
17070
+ | <code><a href="#@xpertss/projen-types.GitHubActionProjectOptions.property.sonarTokenSecret">sonarTokenSecret</a></code> | <code>string</code> | *No description.* |
17071
+ | <code><a href="#@xpertss/projen-types.GitHubActionProjectOptions.property.copyrightOwner">copyrightOwner</a></code> | <code>string</code> | Copyright owner named in the `LICENSE`. |
17072
+ | <code><a href="#@xpertss/projen-types.GitHubActionProjectOptions.property.copyrightPeriod">copyrightPeriod</a></code> | <code>string</code> | Copyright period named in the `LICENSE`. |
16231
17073
  | <code><a href="#@xpertss/projen-types.GitHubActionProjectOptions.property.description">description</a></code> | <code>string</code> | One-line description of the action. |
16232
17074
  | <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). |
16233
17075
  | <code><a href="#@xpertss/projen-types.GitHubActionProjectOptions.property.editorconfig">editorconfig</a></code> | <code>boolean</code> | Write a projen-managed `.editorconfig`. |
16234
17076
  | <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. |
16235
17077
  | <code><a href="#@xpertss/projen-types.GitHubActionProjectOptions.property.license">license</a></code> | <code>string</code> | SPDX identifier for the generated `LICENSE`. |
16236
- | <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. |
16237
- | <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. |
16238
- | <code><a href="#@xpertss/projen-types.GitHubActionProjectOptions.property.sonarTokenSecret">sonarTokenSecret</a></code> | <code>string</code> | *No description.* |
16239
17078
 
16240
17079
  ---
16241
17080
 
@@ -16607,7 +17446,7 @@ Enabled by default for root projects. Disabled for non-root projects.
16607
17446
 
16608
17447
  ---
16609
17448
 
16610
- ##### `sonarHostUrl`<sup>Required</sup> <a name="sonarHostUrl" id="@xpertss/projen-types.GitHubActionProjectOptions.property.sonarHostUrl"></a>
17449
+ ##### `sonarHostUrl`<sup>Optional</sup> <a name="sonarHostUrl" id="@xpertss/projen-types.GitHubActionProjectOptions.property.sonarHostUrl"></a>
16611
17450
 
16612
17451
  ```typescript
16613
17452
  public readonly sonarHostUrl: string;
@@ -16615,7 +17454,83 @@ public readonly sonarHostUrl: string;
16615
17454
 
16616
17455
  - *Type:* string
16617
17456
 
16618
- 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.
17457
+ URL of the org's SonarCloud instance (e.g. `https://sonarcloud.io`). When set, a `sonar.yml` SonarScanner workflow is generated; when omitted, no Sonar workflow is produced. Must be reachable from github.com-hosted (public) runners (AD-001).
17458
+
17459
+ ---
17460
+
17461
+ ##### `sonarOrganization`<sup>Optional</sup> <a name="sonarOrganization" id="@xpertss/projen-types.GitHubActionProjectOptions.property.sonarOrganization"></a>
17462
+
17463
+ ```typescript
17464
+ public readonly sonarOrganization: string;
17465
+ ```
17466
+
17467
+ - *Type:* string
17468
+ - *Default:* "xpertss"
17469
+
17470
+ 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.
17471
+
17472
+ ---
17473
+
17474
+ ##### `sonarProjectKey`<sup>Optional</sup> <a name="sonarProjectKey" id="@xpertss/projen-types.GitHubActionProjectOptions.property.sonarProjectKey"></a>
17475
+
17476
+ ```typescript
17477
+ public readonly sonarProjectKey: string;
17478
+ ```
17479
+
17480
+ - *Type:* string
17481
+ - *Default:* `${sonarOrganization}_${name}` (the org + project key SonarCloud uses, e.g. `xpertss_create-pull-request`)
17482
+
17483
+ `sonar.projectKey`.
17484
+
17485
+ ---
17486
+
17487
+ ##### `sonarPullRequestGate`<sup>Optional</sup> <a name="sonarPullRequestGate" id="@xpertss/projen-types.GitHubActionProjectOptions.property.sonarPullRequestGate"></a>
17488
+
17489
+ ```typescript
17490
+ public readonly sonarPullRequestGate: boolean;
17491
+ ```
17492
+
17493
+ - *Type:* boolean
17494
+ - *Default:* true
17495
+
17496
+ Whether `sonar.yml` also runs on `pull_request` as a pass/fail gate.
17497
+
17498
+ ---
17499
+
17500
+ ##### `sonarTokenSecret`<sup>Optional</sup> <a name="sonarTokenSecret" id="@xpertss/projen-types.GitHubActionProjectOptions.property.sonarTokenSecret"></a>
17501
+
17502
+ ```typescript
17503
+ public readonly sonarTokenSecret: string;
17504
+ ```
17505
+
17506
+ - *Type:* string
17507
+ - *Default:* "SONAR_TOKEN"
17508
+
17509
+ ---
17510
+
17511
+ ##### `copyrightOwner`<sup>Optional</sup> <a name="copyrightOwner" id="@xpertss/projen-types.GitHubActionProjectOptions.property.copyrightOwner"></a>
17512
+
17513
+ ```typescript
17514
+ public readonly copyrightOwner: string;
17515
+ ```
17516
+
17517
+ - *Type:* string
17518
+ - *Default:* "Xpert Software"
17519
+
17520
+ Copyright owner named in the `LICENSE`.
17521
+
17522
+ ---
17523
+
17524
+ ##### `copyrightPeriod`<sup>Optional</sup> <a name="copyrightPeriod" id="@xpertss/projen-types.GitHubActionProjectOptions.property.copyrightPeriod"></a>
17525
+
17526
+ ```typescript
17527
+ public readonly copyrightPeriod: string;
17528
+ ```
17529
+
17530
+ - *Type:* string
17531
+ - *Default:* the current year
17532
+
17533
+ Copyright period named in the `LICENSE`.
16619
17534
 
16620
17535
  ---
16621
17536
 
@@ -16701,108 +17616,137 @@ SPDX identifier for the generated `LICENSE`.
16701
17616
 
16702
17617
  ---
16703
17618
 
16704
- ##### `sonarOrganization`<sup>Optional</sup> <a name="sonarOrganization" id="@xpertss/projen-types.GitHubActionProjectOptions.property.sonarOrganization"></a>
17619
+ ### GitHubPackagesPublishOptions <a name="GitHubPackagesPublishOptions" id="@xpertss/projen-types.GitHubPackagesPublishOptions"></a>
17620
+
17621
+ #### Initializer <a name="Initializer" id="@xpertss/projen-types.GitHubPackagesPublishOptions.Initializer"></a>
16705
17622
 
16706
17623
  ```typescript
16707
- public readonly sonarOrganization: string;
17624
+ import { GitHubPackagesPublishOptions } from '@xpertss/projen-types'
17625
+
17626
+ const gitHubPackagesPublishOptions: GitHubPackagesPublishOptions = { ... }
16708
17627
  ```
16709
17628
 
16710
- - *Type:* string
16711
- - *Default:* "xpertss"
17629
+ #### Properties <a name="Properties" id="Properties"></a>
16712
17630
 
16713
- SonarCloud organization key (`sonar.organization`), required by the Scanner CLI on SonarCloud.
17631
+ | **Name** | **Type** | **Description** |
17632
+ | --- | --- | --- |
17633
+ | <code><a href="#@xpertss/projen-types.GitHubPackagesPublishOptions.property.ghPackagesRegistry">ghPackagesRegistry</a></code> | <code>string</code> | *No description.* |
16714
17634
 
16715
17635
  ---
16716
17636
 
16717
- ##### `sonarPullRequestGate`<sup>Optional</sup> <a name="sonarPullRequestGate" id="@xpertss/projen-types.GitHubActionProjectOptions.property.sonarPullRequestGate"></a>
17637
+ ##### `ghPackagesRegistry`<sup>Optional</sup> <a name="ghPackagesRegistry" id="@xpertss/projen-types.GitHubPackagesPublishOptions.property.ghPackagesRegistry"></a>
16718
17638
 
16719
17639
  ```typescript
16720
- public readonly sonarPullRequestGate: boolean;
17640
+ public readonly ghPackagesRegistry: string;
16721
17641
  ```
16722
17642
 
16723
- - *Type:* boolean
16724
- - *Default:* true
17643
+ - *Type:* string
17644
+ - *Default:* derived from the repository URL
16725
17645
 
16726
- Whether `sonar.yml` also runs on `pull_request` as a pass/fail gate.
17646
+ ---
17647
+
17648
+ ### JavaAppProjectOptions <a name="JavaAppProjectOptions" id="@xpertss/projen-types.JavaAppProjectOptions"></a>
17649
+
17650
+ #### Initializer <a name="Initializer" id="@xpertss/projen-types.JavaAppProjectOptions.Initializer"></a>
17651
+
17652
+ ```typescript
17653
+ import { JavaAppProjectOptions } from '@xpertss/projen-types'
17654
+
17655
+ const javaAppProjectOptions: JavaAppProjectOptions = { ... }
17656
+ ```
17657
+
17658
+ #### Properties <a name="Properties" id="Properties"></a>
17659
+
17660
+ | **Name** | **Type** | **Description** |
17661
+ | --- | --- | --- |
17662
+ | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.sonarHostUrl">sonarHostUrl</a></code> | <code>string</code> | URL of the org's SonarCloud instance (e.g. `https://sonarcloud.io`). When set, a `sonar.yml` SonarScanner workflow is generated; when omitted, no Sonar workflow is produced. Must be reachable from github.com-hosted (public) runners (AD-001). |
17663
+ | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.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. |
17664
+ | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.sonarProjectKey">sonarProjectKey</a></code> | <code>string</code> | `sonar.projectKey`. |
17665
+ | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.sonarPullRequestGate">sonarPullRequestGate</a></code> | <code>boolean</code> | Whether `sonar.yml` also runs on `pull_request` as a pass/fail gate. |
17666
+ | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.sonarTokenSecret">sonarTokenSecret</a></code> | <code>string</code> | *No description.* |
17667
+ | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.artifactId">artifactId</a></code> | <code>string</code> | *No description.* |
17668
+ | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.groupId">groupId</a></code> | <code>string</code> | *No description.* |
17669
+ | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.name">name</a></code> | <code>string</code> | *No description.* |
17670
+ | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.copyrightOwner">copyrightOwner</a></code> | <code>string</code> | Copyright owner named in the `LICENSE`. |
17671
+ | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.copyrightPeriod">copyrightPeriod</a></code> | <code>string</code> | Copyright period named in the `LICENSE`. |
17672
+ | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.description">description</a></code> | <code>string</code> | Project description, written to the root pom. |
17673
+ | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.editorconfig">editorconfig</a></code> | <code>boolean</code> | Write a projen-managed `.editorconfig`. |
17674
+ | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.enforcer">enforcer</a></code> | <code>boolean</code> | Add `maven-enforcer-plugin`, which fails the build up front when the JDK or Maven running it is older than the project needs (rather than later, with confusing compiler errors). |
17675
+ | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.gheTokenSecret">gheTokenSecret</a></code> | <code>string</code> | *No description.* |
17676
+ | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.javaDistribution">javaDistribution</a></code> | <code>string</code> | `actions/setup-java` distribution CI installs the JDK from. |
17677
+ | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.javaVersion">javaVersion</a></code> | <code>string</code> | Java line the build targets: `1.8` (alias `8`), `17`, `21`, or `25`. |
17678
+ | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.license">license</a></code> | <code>string</code> | SPDX identifier for the generated `LICENSE`. |
17679
+ | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.licensed">licensed</a></code> | <code>boolean</code> | Write a `LICENSE` file. |
17680
+ | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.minMavenVersion">minMavenVersion</a></code> | <code>string</code> | Lowest Maven version the enforcer accepts (`requireMavenVersion [<this>,)`). |
17681
+ | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.packaging">packaging</a></code> | <code>string</code> | Maven packaging of the root pom while the project has no modules. |
17682
+ | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.pluginVersions">pluginVersions</a></code> | <code>{[ key: string ]: string}</code> | Overrides for the plugin/BOM versions this package pins by default, keyed by `groupId/artifactId`, e.g. `{ 'org.apache.maven.plugins/maven-surefire-plugin': '3.5.6' }`. Values must be exact versions. |
17683
+ | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.sample">sample</a></code> | <code>boolean</code> | Write a starter `Main` class and test under the `groupId` package, if `src/` does not exist yet. |
17684
+ | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.upgradeWorkflow">upgradeWorkflow</a></code> | <code>boolean</code> | Generate the nightly `upgrade.yml` workflow, which reports available dependency and plugin updates in the job summary (it never edits files - versions are changed in `.projenrc.ts`). |
17685
+ | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.url">url</a></code> | <code>string</code> | Project URL, written to the root pom. |
17686
+ | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.version">version</a></code> | <code>string</code> | *No description.* |
17687
+ | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.ghPackagesRegistry">ghPackagesRegistry</a></code> | <code>string</code> | *No description.* |
16727
17688
 
16728
17689
  ---
16729
17690
 
16730
- ##### `sonarTokenSecret`<sup>Optional</sup> <a name="sonarTokenSecret" id="@xpertss/projen-types.GitHubActionProjectOptions.property.sonarTokenSecret"></a>
17691
+ ##### `sonarHostUrl`<sup>Optional</sup> <a name="sonarHostUrl" id="@xpertss/projen-types.JavaAppProjectOptions.property.sonarHostUrl"></a>
16731
17692
 
16732
17693
  ```typescript
16733
- public readonly sonarTokenSecret: string;
17694
+ public readonly sonarHostUrl: string;
16734
17695
  ```
16735
17696
 
16736
17697
  - *Type:* string
16737
- - *Default:* "SONAR_TOKEN"
16738
17698
 
16739
- ---
17699
+ URL of the org's SonarCloud instance (e.g. `https://sonarcloud.io`). When set, a `sonar.yml` SonarScanner workflow is generated; when omitted, no Sonar workflow is produced. Must be reachable from github.com-hosted (public) runners (AD-001).
16740
17700
 
16741
- ### GitHubPackagesPublishOptions <a name="GitHubPackagesPublishOptions" id="@xpertss/projen-types.GitHubPackagesPublishOptions"></a>
17701
+ ---
16742
17702
 
16743
- #### Initializer <a name="Initializer" id="@xpertss/projen-types.GitHubPackagesPublishOptions.Initializer"></a>
17703
+ ##### `sonarOrganization`<sup>Optional</sup> <a name="sonarOrganization" id="@xpertss/projen-types.JavaAppProjectOptions.property.sonarOrganization"></a>
16744
17704
 
16745
17705
  ```typescript
16746
- import { GitHubPackagesPublishOptions } from '@xpertss/projen-types'
16747
-
16748
- const gitHubPackagesPublishOptions: GitHubPackagesPublishOptions = { ... }
17706
+ public readonly sonarOrganization: string;
16749
17707
  ```
16750
17708
 
16751
- #### Properties <a name="Properties" id="Properties"></a>
17709
+ - *Type:* string
17710
+ - *Default:* "xpertss"
16752
17711
 
16753
- | **Name** | **Type** | **Description** |
16754
- | --- | --- | --- |
16755
- | <code><a href="#@xpertss/projen-types.GitHubPackagesPublishOptions.property.ghPackagesRegistry">ghPackagesRegistry</a></code> | <code>string</code> | *No description.* |
17712
+ 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.
16756
17713
 
16757
17714
  ---
16758
17715
 
16759
- ##### `ghPackagesRegistry`<sup>Optional</sup> <a name="ghPackagesRegistry" id="@xpertss/projen-types.GitHubPackagesPublishOptions.property.ghPackagesRegistry"></a>
17716
+ ##### `sonarProjectKey`<sup>Optional</sup> <a name="sonarProjectKey" id="@xpertss/projen-types.JavaAppProjectOptions.property.sonarProjectKey"></a>
16760
17717
 
16761
17718
  ```typescript
16762
- public readonly ghPackagesRegistry: string;
17719
+ public readonly sonarProjectKey: string;
16763
17720
  ```
16764
17721
 
16765
17722
  - *Type:* string
16766
- - *Default:* derived from the repository URL
17723
+ - *Default:* `${sonarOrganization}_${name}` (the org + project key SonarCloud uses, e.g. `xpertss_create-pull-request`)
16767
17724
 
16768
- ---
17725
+ `sonar.projectKey`.
16769
17726
 
16770
- ### JavaAppProjectOptions <a name="JavaAppProjectOptions" id="@xpertss/projen-types.JavaAppProjectOptions"></a>
17727
+ ---
16771
17728
 
16772
- #### Initializer <a name="Initializer" id="@xpertss/projen-types.JavaAppProjectOptions.Initializer"></a>
17729
+ ##### `sonarPullRequestGate`<sup>Optional</sup> <a name="sonarPullRequestGate" id="@xpertss/projen-types.JavaAppProjectOptions.property.sonarPullRequestGate"></a>
16773
17730
 
16774
17731
  ```typescript
16775
- import { JavaAppProjectOptions } from '@xpertss/projen-types'
17732
+ public readonly sonarPullRequestGate: boolean;
17733
+ ```
16776
17734
 
16777
- const javaAppProjectOptions: JavaAppProjectOptions = { ... }
17735
+ - *Type:* boolean
17736
+ - *Default:* true
17737
+
17738
+ Whether `sonar.yml` also runs on `pull_request` as a pass/fail gate.
17739
+
17740
+ ---
17741
+
17742
+ ##### `sonarTokenSecret`<sup>Optional</sup> <a name="sonarTokenSecret" id="@xpertss/projen-types.JavaAppProjectOptions.property.sonarTokenSecret"></a>
17743
+
17744
+ ```typescript
17745
+ public readonly sonarTokenSecret: string;
16778
17746
  ```
16779
17747
 
16780
- #### Properties <a name="Properties" id="Properties"></a>
16781
-
16782
- | **Name** | **Type** | **Description** |
16783
- | --- | --- | --- |
16784
- | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.artifactId">artifactId</a></code> | <code>string</code> | *No description.* |
16785
- | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.groupId">groupId</a></code> | <code>string</code> | *No description.* |
16786
- | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.name">name</a></code> | <code>string</code> | *No description.* |
16787
- | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.copyrightOwner">copyrightOwner</a></code> | <code>string</code> | Copyright owner named in the `LICENSE`. |
16788
- | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.copyrightPeriod">copyrightPeriod</a></code> | <code>string</code> | Copyright period named in the `LICENSE`. |
16789
- | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.description">description</a></code> | <code>string</code> | Project description, written to the root pom. |
16790
- | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.editorconfig">editorconfig</a></code> | <code>boolean</code> | Write a projen-managed `.editorconfig`. |
16791
- | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.enforcer">enforcer</a></code> | <code>boolean</code> | Add `maven-enforcer-plugin`, which fails the build up front when the JDK or Maven running it is older than the project needs (rather than later, with confusing compiler errors). |
16792
- | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.gheTokenSecret">gheTokenSecret</a></code> | <code>string</code> | *No description.* |
16793
- | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.javaDistribution">javaDistribution</a></code> | <code>string</code> | `actions/setup-java` distribution CI installs the JDK from. |
16794
- | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.javaVersion">javaVersion</a></code> | <code>string</code> | Java line the build targets: `1.8` (alias `8`), `17`, `21`, or `25`. |
16795
- | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.license">license</a></code> | <code>string</code> | SPDX identifier for the generated `LICENSE`. |
16796
- | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.licensed">licensed</a></code> | <code>boolean</code> | Write a `LICENSE` file. |
16797
- | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.minMavenVersion">minMavenVersion</a></code> | <code>string</code> | Lowest Maven version the enforcer accepts (`requireMavenVersion [<this>,)`). |
16798
- | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.packaging">packaging</a></code> | <code>string</code> | Maven packaging of the root pom while the project has no modules. |
16799
- | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.pluginVersions">pluginVersions</a></code> | <code>{[ key: string ]: string}</code> | Overrides for the plugin/BOM versions this package pins by default, keyed by `groupId/artifactId`, e.g. `{ 'org.apache.maven.plugins/maven-surefire-plugin': '3.5.6' }`. Values must be exact versions. |
16800
- | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.sample">sample</a></code> | <code>boolean</code> | Write a starter `Main` class and test under the `groupId` package, if `src/` does not exist yet. |
16801
- | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.sonarProjectKey">sonarProjectKey</a></code> | <code>string</code> | SonarCloud project key. |
16802
- | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.upgradeWorkflow">upgradeWorkflow</a></code> | <code>boolean</code> | Generate the nightly `upgrade.yml` workflow, which reports available dependency and plugin updates in the job summary (it never edits files - versions are changed in `.projenrc.ts`). |
16803
- | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.url">url</a></code> | <code>string</code> | Project URL, written to the root pom. |
16804
- | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.version">version</a></code> | <code>string</code> | *No description.* |
16805
- | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.ghPackagesRegistry">ghPackagesRegistry</a></code> | <code>string</code> | *No description.* |
17748
+ - *Type:* string
17749
+ - *Default:* "SONAR_TOKEN"
16806
17750
 
16807
17751
  ---
16808
17752
 
@@ -16843,7 +17787,7 @@ public readonly copyrightOwner: string;
16843
17787
  ```
16844
17788
 
16845
17789
  - *Type:* string
16846
- - *Default:* "xpertss" (same as `GitHubActionProject`)
17790
+ - *Default:* "Xpert Software"
16847
17791
 
16848
17792
  Copyright owner named in the `LICENSE`.
16849
17793
 
@@ -17033,20 +17977,6 @@ Never written for a multi-module project.
17033
17977
 
17034
17978
  ---
17035
17979
 
17036
- ##### `sonarProjectKey`<sup>Optional</sup> <a name="sonarProjectKey" id="@xpertss/projen-types.JavaAppProjectOptions.property.sonarProjectKey"></a>
17037
-
17038
- ```typescript
17039
- public readonly sonarProjectKey: string;
17040
- ```
17041
-
17042
- - *Type:* string
17043
-
17044
- SonarCloud project key.
17045
-
17046
- If unset, the sonar scan step is skipped.
17047
-
17048
- ---
17049
-
17050
17980
  ##### `upgradeWorkflow`<sup>Optional</sup> <a name="upgradeWorkflow" id="@xpertss/projen-types.JavaAppProjectOptions.property.upgradeWorkflow"></a>
17051
17981
 
17052
17982
  ```typescript
@@ -17109,6 +18039,11 @@ const javaLibraryProjectOptions: JavaLibraryProjectOptions = { ... }
17109
18039
 
17110
18040
  | **Name** | **Type** | **Description** |
17111
18041
  | --- | --- | --- |
18042
+ | <code><a href="#@xpertss/projen-types.JavaLibraryProjectOptions.property.sonarHostUrl">sonarHostUrl</a></code> | <code>string</code> | URL of the org's SonarCloud instance (e.g. `https://sonarcloud.io`). When set, a `sonar.yml` SonarScanner workflow is generated; when omitted, no Sonar workflow is produced. Must be reachable from github.com-hosted (public) runners (AD-001). |
18043
+ | <code><a href="#@xpertss/projen-types.JavaLibraryProjectOptions.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. |
18044
+ | <code><a href="#@xpertss/projen-types.JavaLibraryProjectOptions.property.sonarProjectKey">sonarProjectKey</a></code> | <code>string</code> | `sonar.projectKey`. |
18045
+ | <code><a href="#@xpertss/projen-types.JavaLibraryProjectOptions.property.sonarPullRequestGate">sonarPullRequestGate</a></code> | <code>boolean</code> | Whether `sonar.yml` also runs on `pull_request` as a pass/fail gate. |
18046
+ | <code><a href="#@xpertss/projen-types.JavaLibraryProjectOptions.property.sonarTokenSecret">sonarTokenSecret</a></code> | <code>string</code> | *No description.* |
17112
18047
  | <code><a href="#@xpertss/projen-types.JavaLibraryProjectOptions.property.artifactId">artifactId</a></code> | <code>string</code> | *No description.* |
17113
18048
  | <code><a href="#@xpertss/projen-types.JavaLibraryProjectOptions.property.groupId">groupId</a></code> | <code>string</code> | *No description.* |
17114
18049
  | <code><a href="#@xpertss/projen-types.JavaLibraryProjectOptions.property.name">name</a></code> | <code>string</code> | *No description.* |
@@ -17126,7 +18061,6 @@ const javaLibraryProjectOptions: JavaLibraryProjectOptions = { ... }
17126
18061
  | <code><a href="#@xpertss/projen-types.JavaLibraryProjectOptions.property.packaging">packaging</a></code> | <code>string</code> | Maven packaging of the root pom while the project has no modules. |
17127
18062
  | <code><a href="#@xpertss/projen-types.JavaLibraryProjectOptions.property.pluginVersions">pluginVersions</a></code> | <code>{[ key: string ]: string}</code> | Overrides for the plugin/BOM versions this package pins by default, keyed by `groupId/artifactId`, e.g. `{ 'org.apache.maven.plugins/maven-surefire-plugin': '3.5.6' }`. Values must be exact versions. |
17128
18063
  | <code><a href="#@xpertss/projen-types.JavaLibraryProjectOptions.property.sample">sample</a></code> | <code>boolean</code> | Write a starter `Main` class and test under the `groupId` package, if `src/` does not exist yet. |
17129
- | <code><a href="#@xpertss/projen-types.JavaLibraryProjectOptions.property.sonarProjectKey">sonarProjectKey</a></code> | <code>string</code> | SonarCloud project key. |
17130
18064
  | <code><a href="#@xpertss/projen-types.JavaLibraryProjectOptions.property.upgradeWorkflow">upgradeWorkflow</a></code> | <code>boolean</code> | Generate the nightly `upgrade.yml` workflow, which reports available dependency and plugin updates in the job summary (it never edits files - versions are changed in `.projenrc.ts`). |
17131
18065
  | <code><a href="#@xpertss/projen-types.JavaLibraryProjectOptions.property.url">url</a></code> | <code>string</code> | Project URL, written to the root pom. |
17132
18066
  | <code><a href="#@xpertss/projen-types.JavaLibraryProjectOptions.property.version">version</a></code> | <code>string</code> | *No description.* |
@@ -17135,6 +18069,68 @@ const javaLibraryProjectOptions: JavaLibraryProjectOptions = { ... }
17135
18069
 
17136
18070
  ---
17137
18071
 
18072
+ ##### `sonarHostUrl`<sup>Optional</sup> <a name="sonarHostUrl" id="@xpertss/projen-types.JavaLibraryProjectOptions.property.sonarHostUrl"></a>
18073
+
18074
+ ```typescript
18075
+ public readonly sonarHostUrl: string;
18076
+ ```
18077
+
18078
+ - *Type:* string
18079
+
18080
+ URL of the org's SonarCloud instance (e.g. `https://sonarcloud.io`). When set, a `sonar.yml` SonarScanner workflow is generated; when omitted, no Sonar workflow is produced. Must be reachable from github.com-hosted (public) runners (AD-001).
18081
+
18082
+ ---
18083
+
18084
+ ##### `sonarOrganization`<sup>Optional</sup> <a name="sonarOrganization" id="@xpertss/projen-types.JavaLibraryProjectOptions.property.sonarOrganization"></a>
18085
+
18086
+ ```typescript
18087
+ public readonly sonarOrganization: string;
18088
+ ```
18089
+
18090
+ - *Type:* string
18091
+ - *Default:* "xpertss"
18092
+
18093
+ 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.
18094
+
18095
+ ---
18096
+
18097
+ ##### `sonarProjectKey`<sup>Optional</sup> <a name="sonarProjectKey" id="@xpertss/projen-types.JavaLibraryProjectOptions.property.sonarProjectKey"></a>
18098
+
18099
+ ```typescript
18100
+ public readonly sonarProjectKey: string;
18101
+ ```
18102
+
18103
+ - *Type:* string
18104
+ - *Default:* `${sonarOrganization}_${name}` (the org + project key SonarCloud uses, e.g. `xpertss_create-pull-request`)
18105
+
18106
+ `sonar.projectKey`.
18107
+
18108
+ ---
18109
+
18110
+ ##### `sonarPullRequestGate`<sup>Optional</sup> <a name="sonarPullRequestGate" id="@xpertss/projen-types.JavaLibraryProjectOptions.property.sonarPullRequestGate"></a>
18111
+
18112
+ ```typescript
18113
+ public readonly sonarPullRequestGate: boolean;
18114
+ ```
18115
+
18116
+ - *Type:* boolean
18117
+ - *Default:* true
18118
+
18119
+ Whether `sonar.yml` also runs on `pull_request` as a pass/fail gate.
18120
+
18121
+ ---
18122
+
18123
+ ##### `sonarTokenSecret`<sup>Optional</sup> <a name="sonarTokenSecret" id="@xpertss/projen-types.JavaLibraryProjectOptions.property.sonarTokenSecret"></a>
18124
+
18125
+ ```typescript
18126
+ public readonly sonarTokenSecret: string;
18127
+ ```
18128
+
18129
+ - *Type:* string
18130
+ - *Default:* "SONAR_TOKEN"
18131
+
18132
+ ---
18133
+
17138
18134
  ##### `artifactId`<sup>Required</sup> <a name="artifactId" id="@xpertss/projen-types.JavaLibraryProjectOptions.property.artifactId"></a>
17139
18135
 
17140
18136
  ```typescript
@@ -17172,7 +18168,7 @@ public readonly copyrightOwner: string;
17172
18168
  ```
17173
18169
 
17174
18170
  - *Type:* string
17175
- - *Default:* "xpertss" (same as `GitHubActionProject`)
18171
+ - *Default:* "Xpert Software"
17176
18172
 
17177
18173
  Copyright owner named in the `LICENSE`.
17178
18174
 
@@ -17362,20 +18358,6 @@ Never written for a multi-module project.
17362
18358
 
17363
18359
  ---
17364
18360
 
17365
- ##### `sonarProjectKey`<sup>Optional</sup> <a name="sonarProjectKey" id="@xpertss/projen-types.JavaLibraryProjectOptions.property.sonarProjectKey"></a>
17366
-
17367
- ```typescript
17368
- public readonly sonarProjectKey: string;
17369
- ```
17370
-
17371
- - *Type:* string
17372
-
17373
- SonarCloud project key.
17374
-
17375
- If unset, the sonar scan step is skipped.
17376
-
17377
- ---
17378
-
17379
18361
  ##### `upgradeWorkflow`<sup>Optional</sup> <a name="upgradeWorkflow" id="@xpertss/projen-types.JavaLibraryProjectOptions.property.upgradeWorkflow"></a>
17380
18362
 
17381
18363
  ```typescript
@@ -17452,6 +18434,11 @@ const javaMavenProjectOptions: JavaMavenProjectOptions = { ... }
17452
18434
 
17453
18435
  | **Name** | **Type** | **Description** |
17454
18436
  | --- | --- | --- |
18437
+ | <code><a href="#@xpertss/projen-types.JavaMavenProjectOptions.property.sonarHostUrl">sonarHostUrl</a></code> | <code>string</code> | URL of the org's SonarCloud instance (e.g. `https://sonarcloud.io`). When set, a `sonar.yml` SonarScanner workflow is generated; when omitted, no Sonar workflow is produced. Must be reachable from github.com-hosted (public) runners (AD-001). |
18438
+ | <code><a href="#@xpertss/projen-types.JavaMavenProjectOptions.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. |
18439
+ | <code><a href="#@xpertss/projen-types.JavaMavenProjectOptions.property.sonarProjectKey">sonarProjectKey</a></code> | <code>string</code> | `sonar.projectKey`. |
18440
+ | <code><a href="#@xpertss/projen-types.JavaMavenProjectOptions.property.sonarPullRequestGate">sonarPullRequestGate</a></code> | <code>boolean</code> | Whether `sonar.yml` also runs on `pull_request` as a pass/fail gate. |
18441
+ | <code><a href="#@xpertss/projen-types.JavaMavenProjectOptions.property.sonarTokenSecret">sonarTokenSecret</a></code> | <code>string</code> | *No description.* |
17455
18442
  | <code><a href="#@xpertss/projen-types.JavaMavenProjectOptions.property.artifactId">artifactId</a></code> | <code>string</code> | *No description.* |
17456
18443
  | <code><a href="#@xpertss/projen-types.JavaMavenProjectOptions.property.groupId">groupId</a></code> | <code>string</code> | *No description.* |
17457
18444
  | <code><a href="#@xpertss/projen-types.JavaMavenProjectOptions.property.name">name</a></code> | <code>string</code> | *No description.* |
@@ -17469,13 +18456,74 @@ const javaMavenProjectOptions: JavaMavenProjectOptions = { ... }
17469
18456
  | <code><a href="#@xpertss/projen-types.JavaMavenProjectOptions.property.packaging">packaging</a></code> | <code>string</code> | Maven packaging of the root pom while the project has no modules. |
17470
18457
  | <code><a href="#@xpertss/projen-types.JavaMavenProjectOptions.property.pluginVersions">pluginVersions</a></code> | <code>{[ key: string ]: string}</code> | Overrides for the plugin/BOM versions this package pins by default, keyed by `groupId/artifactId`, e.g. `{ 'org.apache.maven.plugins/maven-surefire-plugin': '3.5.6' }`. Values must be exact versions. |
17471
18458
  | <code><a href="#@xpertss/projen-types.JavaMavenProjectOptions.property.sample">sample</a></code> | <code>boolean</code> | Write a starter `Main` class and test under the `groupId` package, if `src/` does not exist yet. |
17472
- | <code><a href="#@xpertss/projen-types.JavaMavenProjectOptions.property.sonarProjectKey">sonarProjectKey</a></code> | <code>string</code> | SonarCloud project key. |
17473
18459
  | <code><a href="#@xpertss/projen-types.JavaMavenProjectOptions.property.upgradeWorkflow">upgradeWorkflow</a></code> | <code>boolean</code> | Generate the nightly `upgrade.yml` workflow, which reports available dependency and plugin updates in the job summary (it never edits files - versions are changed in `.projenrc.ts`). |
17474
18460
  | <code><a href="#@xpertss/projen-types.JavaMavenProjectOptions.property.url">url</a></code> | <code>string</code> | Project URL, written to the root pom. |
17475
18461
  | <code><a href="#@xpertss/projen-types.JavaMavenProjectOptions.property.version">version</a></code> | <code>string</code> | *No description.* |
17476
18462
 
17477
18463
  ---
17478
18464
 
18465
+ ##### `sonarHostUrl`<sup>Optional</sup> <a name="sonarHostUrl" id="@xpertss/projen-types.JavaMavenProjectOptions.property.sonarHostUrl"></a>
18466
+
18467
+ ```typescript
18468
+ public readonly sonarHostUrl: string;
18469
+ ```
18470
+
18471
+ - *Type:* string
18472
+
18473
+ URL of the org's SonarCloud instance (e.g. `https://sonarcloud.io`). When set, a `sonar.yml` SonarScanner workflow is generated; when omitted, no Sonar workflow is produced. Must be reachable from github.com-hosted (public) runners (AD-001).
18474
+
18475
+ ---
18476
+
18477
+ ##### `sonarOrganization`<sup>Optional</sup> <a name="sonarOrganization" id="@xpertss/projen-types.JavaMavenProjectOptions.property.sonarOrganization"></a>
18478
+
18479
+ ```typescript
18480
+ public readonly sonarOrganization: string;
18481
+ ```
18482
+
18483
+ - *Type:* string
18484
+ - *Default:* "xpertss"
18485
+
18486
+ 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.
18487
+
18488
+ ---
18489
+
18490
+ ##### `sonarProjectKey`<sup>Optional</sup> <a name="sonarProjectKey" id="@xpertss/projen-types.JavaMavenProjectOptions.property.sonarProjectKey"></a>
18491
+
18492
+ ```typescript
18493
+ public readonly sonarProjectKey: string;
18494
+ ```
18495
+
18496
+ - *Type:* string
18497
+ - *Default:* `${sonarOrganization}_${name}` (the org + project key SonarCloud uses, e.g. `xpertss_create-pull-request`)
18498
+
18499
+ `sonar.projectKey`.
18500
+
18501
+ ---
18502
+
18503
+ ##### `sonarPullRequestGate`<sup>Optional</sup> <a name="sonarPullRequestGate" id="@xpertss/projen-types.JavaMavenProjectOptions.property.sonarPullRequestGate"></a>
18504
+
18505
+ ```typescript
18506
+ public readonly sonarPullRequestGate: boolean;
18507
+ ```
18508
+
18509
+ - *Type:* boolean
18510
+ - *Default:* true
18511
+
18512
+ Whether `sonar.yml` also runs on `pull_request` as a pass/fail gate.
18513
+
18514
+ ---
18515
+
18516
+ ##### `sonarTokenSecret`<sup>Optional</sup> <a name="sonarTokenSecret" id="@xpertss/projen-types.JavaMavenProjectOptions.property.sonarTokenSecret"></a>
18517
+
18518
+ ```typescript
18519
+ public readonly sonarTokenSecret: string;
18520
+ ```
18521
+
18522
+ - *Type:* string
18523
+ - *Default:* "SONAR_TOKEN"
18524
+
18525
+ ---
18526
+
17479
18527
  ##### `artifactId`<sup>Required</sup> <a name="artifactId" id="@xpertss/projen-types.JavaMavenProjectOptions.property.artifactId"></a>
17480
18528
 
17481
18529
  ```typescript
@@ -17513,7 +18561,7 @@ public readonly copyrightOwner: string;
17513
18561
  ```
17514
18562
 
17515
18563
  - *Type:* string
17516
- - *Default:* "xpertss" (same as `GitHubActionProject`)
18564
+ - *Default:* "Xpert Software"
17517
18565
 
17518
18566
  Copyright owner named in the `LICENSE`.
17519
18567
 
@@ -17703,20 +18751,6 @@ Never written for a multi-module project.
17703
18751
 
17704
18752
  ---
17705
18753
 
17706
- ##### `sonarProjectKey`<sup>Optional</sup> <a name="sonarProjectKey" id="@xpertss/projen-types.JavaMavenProjectOptions.property.sonarProjectKey"></a>
17707
-
17708
- ```typescript
17709
- public readonly sonarProjectKey: string;
17710
- ```
17711
-
17712
- - *Type:* string
17713
-
17714
- SonarCloud project key.
17715
-
17716
- If unset, the sonar scan step is skipped.
17717
-
17718
- ---
17719
-
17720
18754
  ##### `upgradeWorkflow`<sup>Optional</sup> <a name="upgradeWorkflow" id="@xpertss/projen-types.JavaMavenProjectOptions.property.upgradeWorkflow"></a>
17721
18755
 
17722
18756
  ```typescript
@@ -17764,37 +18798,103 @@ import { JavaServiceProjectOptions } from '@xpertss/projen-types'
17764
18798
  const javaServiceProjectOptions: JavaServiceProjectOptions = { ... }
17765
18799
  ```
17766
18800
 
17767
- #### Properties <a name="Properties" id="Properties"></a>
17768
-
17769
- | **Name** | **Type** | **Description** |
17770
- | --- | --- | --- |
17771
- | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.artifactId">artifactId</a></code> | <code>string</code> | *No description.* |
17772
- | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.groupId">groupId</a></code> | <code>string</code> | *No description.* |
17773
- | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.name">name</a></code> | <code>string</code> | *No description.* |
17774
- | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.copyrightOwner">copyrightOwner</a></code> | <code>string</code> | Copyright owner named in the `LICENSE`. |
17775
- | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.copyrightPeriod">copyrightPeriod</a></code> | <code>string</code> | Copyright period named in the `LICENSE`. |
17776
- | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.description">description</a></code> | <code>string</code> | Project description, written to the root pom. |
17777
- | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.editorconfig">editorconfig</a></code> | <code>boolean</code> | Write a projen-managed `.editorconfig`. |
17778
- | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.enforcer">enforcer</a></code> | <code>boolean</code> | Add `maven-enforcer-plugin`, which fails the build up front when the JDK or Maven running it is older than the project needs (rather than later, with confusing compiler errors). |
17779
- | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.gheTokenSecret">gheTokenSecret</a></code> | <code>string</code> | *No description.* |
17780
- | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.javaDistribution">javaDistribution</a></code> | <code>string</code> | `actions/setup-java` distribution CI installs the JDK from. |
17781
- | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.javaVersion">javaVersion</a></code> | <code>string</code> | Java line the build targets: `1.8` (alias `8`), `17`, `21`, or `25`. |
17782
- | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.license">license</a></code> | <code>string</code> | SPDX identifier for the generated `LICENSE`. |
17783
- | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.licensed">licensed</a></code> | <code>boolean</code> | Write a `LICENSE` file. |
17784
- | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.minMavenVersion">minMavenVersion</a></code> | <code>string</code> | Lowest Maven version the enforcer accepts (`requireMavenVersion [<this>,)`). |
17785
- | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.packaging">packaging</a></code> | <code>string</code> | Maven packaging of the root pom while the project has no modules. |
17786
- | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.pluginVersions">pluginVersions</a></code> | <code>{[ key: string ]: string}</code> | Overrides for the plugin/BOM versions this package pins by default, keyed by `groupId/artifactId`, e.g. `{ 'org.apache.maven.plugins/maven-surefire-plugin': '3.5.6' }`. Values must be exact versions. |
17787
- | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.sample">sample</a></code> | <code>boolean</code> | Write a starter `Main` class and test under the `groupId` package, if `src/` does not exist yet. |
17788
- | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.sonarProjectKey">sonarProjectKey</a></code> | <code>string</code> | SonarCloud project key. |
17789
- | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.upgradeWorkflow">upgradeWorkflow</a></code> | <code>boolean</code> | Generate the nightly `upgrade.yml` workflow, which reports available dependency and plugin updates in the job summary (it never edits files - versions are changed in `.projenrc.ts`). |
17790
- | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.url">url</a></code> | <code>string</code> | Project URL, written to the root pom. |
17791
- | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.version">version</a></code> | <code>string</code> | *No description.* |
17792
- | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.springBootVersion">springBootVersion</a></code> | <code>string</code> | Spring Boot version: imports `spring-boot-dependencies` as the first BOM, and versions `spring-boot-maven-plugin`. |
17793
- | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.cdkDeployHook">cdkDeployHook</a></code> | <code>boolean</code> | Whether to generate the `deploy-cdk` workflow at all. |
17794
- | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.cdkDeployTargetRepo">cdkDeployTargetRepo</a></code> | <code>string</code> | The companion CDK infra/app repo (`owner/repo`) whose `deploy.yml` the `deploy-cdk` workflow dispatches. |
17795
- | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.dockerRegistry">dockerRegistry</a></code> | <code>string</code> | *No description.* |
17796
- | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.environments">environments</a></code> | <code>string \| <a href="#@xpertss/projen-types.EnvironmentOptions">EnvironmentOptions</a>[]</code> | Deploy targets to offer on the `CdkDeployHook`'s manual-dispatch workflow, when the hook is enabled. |
17797
- | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.useFlyway">useFlyway</a></code> | <code>boolean</code> | *No description.* |
18801
+ #### Properties <a name="Properties" id="Properties"></a>
18802
+
18803
+ | **Name** | **Type** | **Description** |
18804
+ | --- | --- | --- |
18805
+ | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.sonarHostUrl">sonarHostUrl</a></code> | <code>string</code> | URL of the org's SonarCloud instance (e.g. `https://sonarcloud.io`). When set, a `sonar.yml` SonarScanner workflow is generated; when omitted, no Sonar workflow is produced. Must be reachable from github.com-hosted (public) runners (AD-001). |
18806
+ | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.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. |
18807
+ | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.sonarProjectKey">sonarProjectKey</a></code> | <code>string</code> | `sonar.projectKey`. |
18808
+ | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.sonarPullRequestGate">sonarPullRequestGate</a></code> | <code>boolean</code> | Whether `sonar.yml` also runs on `pull_request` as a pass/fail gate. |
18809
+ | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.sonarTokenSecret">sonarTokenSecret</a></code> | <code>string</code> | *No description.* |
18810
+ | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.artifactId">artifactId</a></code> | <code>string</code> | *No description.* |
18811
+ | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.groupId">groupId</a></code> | <code>string</code> | *No description.* |
18812
+ | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.name">name</a></code> | <code>string</code> | *No description.* |
18813
+ | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.copyrightOwner">copyrightOwner</a></code> | <code>string</code> | Copyright owner named in the `LICENSE`. |
18814
+ | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.copyrightPeriod">copyrightPeriod</a></code> | <code>string</code> | Copyright period named in the `LICENSE`. |
18815
+ | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.description">description</a></code> | <code>string</code> | Project description, written to the root pom. |
18816
+ | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.editorconfig">editorconfig</a></code> | <code>boolean</code> | Write a projen-managed `.editorconfig`. |
18817
+ | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.enforcer">enforcer</a></code> | <code>boolean</code> | Add `maven-enforcer-plugin`, which fails the build up front when the JDK or Maven running it is older than the project needs (rather than later, with confusing compiler errors). |
18818
+ | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.gheTokenSecret">gheTokenSecret</a></code> | <code>string</code> | *No description.* |
18819
+ | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.javaDistribution">javaDistribution</a></code> | <code>string</code> | `actions/setup-java` distribution CI installs the JDK from. |
18820
+ | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.javaVersion">javaVersion</a></code> | <code>string</code> | Java line the build targets: `1.8` (alias `8`), `17`, `21`, or `25`. |
18821
+ | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.license">license</a></code> | <code>string</code> | SPDX identifier for the generated `LICENSE`. |
18822
+ | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.licensed">licensed</a></code> | <code>boolean</code> | Write a `LICENSE` file. |
18823
+ | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.minMavenVersion">minMavenVersion</a></code> | <code>string</code> | Lowest Maven version the enforcer accepts (`requireMavenVersion [<this>,)`). |
18824
+ | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.packaging">packaging</a></code> | <code>string</code> | Maven packaging of the root pom while the project has no modules. |
18825
+ | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.pluginVersions">pluginVersions</a></code> | <code>{[ key: string ]: string}</code> | Overrides for the plugin/BOM versions this package pins by default, keyed by `groupId/artifactId`, e.g. `{ 'org.apache.maven.plugins/maven-surefire-plugin': '3.5.6' }`. Values must be exact versions. |
18826
+ | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.sample">sample</a></code> | <code>boolean</code> | Write a starter `Main` class and test under the `groupId` package, if `src/` does not exist yet. |
18827
+ | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.upgradeWorkflow">upgradeWorkflow</a></code> | <code>boolean</code> | Generate the nightly `upgrade.yml` workflow, which reports available dependency and plugin updates in the job summary (it never edits files - versions are changed in `.projenrc.ts`). |
18828
+ | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.url">url</a></code> | <code>string</code> | Project URL, written to the root pom. |
18829
+ | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.version">version</a></code> | <code>string</code> | *No description.* |
18830
+ | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.springBootVersion">springBootVersion</a></code> | <code>string</code> | Spring Boot version: imports `spring-boot-dependencies` as the first BOM, and versions `spring-boot-maven-plugin`. |
18831
+ | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.cdkDeployHook">cdkDeployHook</a></code> | <code>boolean</code> | Whether to generate the `deploy-cdk` workflow at all. |
18832
+ | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.cdkDeployTargetRepo">cdkDeployTargetRepo</a></code> | <code>string</code> | The companion CDK infra/app repo (`owner/repo`) whose `deploy.yml` the `deploy-cdk` workflow dispatches. |
18833
+ | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.dockerRegistry">dockerRegistry</a></code> | <code>string</code> | *No description.* |
18834
+ | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.environments">environments</a></code> | <code>string \| <a href="#@xpertss/projen-types.EnvironmentOptions">EnvironmentOptions</a>[]</code> | Deploy targets to offer on the `CdkDeployHook`'s manual-dispatch workflow, when the hook is enabled. |
18835
+ | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.useFlyway">useFlyway</a></code> | <code>boolean</code> | *No description.* |
18836
+
18837
+ ---
18838
+
18839
+ ##### `sonarHostUrl`<sup>Optional</sup> <a name="sonarHostUrl" id="@xpertss/projen-types.JavaServiceProjectOptions.property.sonarHostUrl"></a>
18840
+
18841
+ ```typescript
18842
+ public readonly sonarHostUrl: string;
18843
+ ```
18844
+
18845
+ - *Type:* string
18846
+
18847
+ URL of the org's SonarCloud instance (e.g. `https://sonarcloud.io`). When set, a `sonar.yml` SonarScanner workflow is generated; when omitted, no Sonar workflow is produced. Must be reachable from github.com-hosted (public) runners (AD-001).
18848
+
18849
+ ---
18850
+
18851
+ ##### `sonarOrganization`<sup>Optional</sup> <a name="sonarOrganization" id="@xpertss/projen-types.JavaServiceProjectOptions.property.sonarOrganization"></a>
18852
+
18853
+ ```typescript
18854
+ public readonly sonarOrganization: string;
18855
+ ```
18856
+
18857
+ - *Type:* string
18858
+ - *Default:* "xpertss"
18859
+
18860
+ 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.
18861
+
18862
+ ---
18863
+
18864
+ ##### `sonarProjectKey`<sup>Optional</sup> <a name="sonarProjectKey" id="@xpertss/projen-types.JavaServiceProjectOptions.property.sonarProjectKey"></a>
18865
+
18866
+ ```typescript
18867
+ public readonly sonarProjectKey: string;
18868
+ ```
18869
+
18870
+ - *Type:* string
18871
+ - *Default:* `${sonarOrganization}_${name}` (the org + project key SonarCloud uses, e.g. `xpertss_create-pull-request`)
18872
+
18873
+ `sonar.projectKey`.
18874
+
18875
+ ---
18876
+
18877
+ ##### `sonarPullRequestGate`<sup>Optional</sup> <a name="sonarPullRequestGate" id="@xpertss/projen-types.JavaServiceProjectOptions.property.sonarPullRequestGate"></a>
18878
+
18879
+ ```typescript
18880
+ public readonly sonarPullRequestGate: boolean;
18881
+ ```
18882
+
18883
+ - *Type:* boolean
18884
+ - *Default:* true
18885
+
18886
+ Whether `sonar.yml` also runs on `pull_request` as a pass/fail gate.
18887
+
18888
+ ---
18889
+
18890
+ ##### `sonarTokenSecret`<sup>Optional</sup> <a name="sonarTokenSecret" id="@xpertss/projen-types.JavaServiceProjectOptions.property.sonarTokenSecret"></a>
18891
+
18892
+ ```typescript
18893
+ public readonly sonarTokenSecret: string;
18894
+ ```
18895
+
18896
+ - *Type:* string
18897
+ - *Default:* "SONAR_TOKEN"
17798
18898
 
17799
18899
  ---
17800
18900
 
@@ -17835,7 +18935,7 @@ public readonly copyrightOwner: string;
17835
18935
  ```
17836
18936
 
17837
18937
  - *Type:* string
17838
- - *Default:* "xpertss" (same as `GitHubActionProject`)
18938
+ - *Default:* "Xpert Software"
17839
18939
 
17840
18940
  Copyright owner named in the `LICENSE`.
17841
18941
 
@@ -18025,20 +19125,6 @@ Never written for a multi-module project.
18025
19125
 
18026
19126
  ---
18027
19127
 
18028
- ##### `sonarProjectKey`<sup>Optional</sup> <a name="sonarProjectKey" id="@xpertss/projen-types.JavaServiceProjectOptions.property.sonarProjectKey"></a>
18029
-
18030
- ```typescript
18031
- public readonly sonarProjectKey: string;
18032
- ```
18033
-
18034
- - *Type:* string
18035
-
18036
- SonarCloud project key.
18037
-
18038
- If unset, the sonar scan step is skipped.
18039
-
18040
- ---
18041
-
18042
19128
  ##### `upgradeWorkflow`<sup>Optional</sup> <a name="upgradeWorkflow" id="@xpertss/projen-types.JavaServiceProjectOptions.property.upgradeWorkflow"></a>
18043
19129
 
18044
19130
  ```typescript
@@ -18173,6 +19259,11 @@ const javaSpringBootProjectOptions: JavaSpringBootProjectOptions = { ... }
18173
19259
 
18174
19260
  | **Name** | **Type** | **Description** |
18175
19261
  | --- | --- | --- |
19262
+ | <code><a href="#@xpertss/projen-types.JavaSpringBootProjectOptions.property.sonarHostUrl">sonarHostUrl</a></code> | <code>string</code> | URL of the org's SonarCloud instance (e.g. `https://sonarcloud.io`). When set, a `sonar.yml` SonarScanner workflow is generated; when omitted, no Sonar workflow is produced. Must be reachable from github.com-hosted (public) runners (AD-001). |
19263
+ | <code><a href="#@xpertss/projen-types.JavaSpringBootProjectOptions.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. |
19264
+ | <code><a href="#@xpertss/projen-types.JavaSpringBootProjectOptions.property.sonarProjectKey">sonarProjectKey</a></code> | <code>string</code> | `sonar.projectKey`. |
19265
+ | <code><a href="#@xpertss/projen-types.JavaSpringBootProjectOptions.property.sonarPullRequestGate">sonarPullRequestGate</a></code> | <code>boolean</code> | Whether `sonar.yml` also runs on `pull_request` as a pass/fail gate. |
19266
+ | <code><a href="#@xpertss/projen-types.JavaSpringBootProjectOptions.property.sonarTokenSecret">sonarTokenSecret</a></code> | <code>string</code> | *No description.* |
18176
19267
  | <code><a href="#@xpertss/projen-types.JavaSpringBootProjectOptions.property.artifactId">artifactId</a></code> | <code>string</code> | *No description.* |
18177
19268
  | <code><a href="#@xpertss/projen-types.JavaSpringBootProjectOptions.property.groupId">groupId</a></code> | <code>string</code> | *No description.* |
18178
19269
  | <code><a href="#@xpertss/projen-types.JavaSpringBootProjectOptions.property.name">name</a></code> | <code>string</code> | *No description.* |
@@ -18190,7 +19281,6 @@ const javaSpringBootProjectOptions: JavaSpringBootProjectOptions = { ... }
18190
19281
  | <code><a href="#@xpertss/projen-types.JavaSpringBootProjectOptions.property.packaging">packaging</a></code> | <code>string</code> | Maven packaging of the root pom while the project has no modules. |
18191
19282
  | <code><a href="#@xpertss/projen-types.JavaSpringBootProjectOptions.property.pluginVersions">pluginVersions</a></code> | <code>{[ key: string ]: string}</code> | Overrides for the plugin/BOM versions this package pins by default, keyed by `groupId/artifactId`, e.g. `{ 'org.apache.maven.plugins/maven-surefire-plugin': '3.5.6' }`. Values must be exact versions. |
18192
19283
  | <code><a href="#@xpertss/projen-types.JavaSpringBootProjectOptions.property.sample">sample</a></code> | <code>boolean</code> | Write a starter `Main` class and test under the `groupId` package, if `src/` does not exist yet. |
18193
- | <code><a href="#@xpertss/projen-types.JavaSpringBootProjectOptions.property.sonarProjectKey">sonarProjectKey</a></code> | <code>string</code> | SonarCloud project key. |
18194
19284
  | <code><a href="#@xpertss/projen-types.JavaSpringBootProjectOptions.property.upgradeWorkflow">upgradeWorkflow</a></code> | <code>boolean</code> | Generate the nightly `upgrade.yml` workflow, which reports available dependency and plugin updates in the job summary (it never edits files - versions are changed in `.projenrc.ts`). |
18195
19285
  | <code><a href="#@xpertss/projen-types.JavaSpringBootProjectOptions.property.url">url</a></code> | <code>string</code> | Project URL, written to the root pom. |
18196
19286
  | <code><a href="#@xpertss/projen-types.JavaSpringBootProjectOptions.property.version">version</a></code> | <code>string</code> | *No description.* |
@@ -18198,6 +19288,68 @@ const javaSpringBootProjectOptions: JavaSpringBootProjectOptions = { ... }
18198
19288
 
18199
19289
  ---
18200
19290
 
19291
+ ##### `sonarHostUrl`<sup>Optional</sup> <a name="sonarHostUrl" id="@xpertss/projen-types.JavaSpringBootProjectOptions.property.sonarHostUrl"></a>
19292
+
19293
+ ```typescript
19294
+ public readonly sonarHostUrl: string;
19295
+ ```
19296
+
19297
+ - *Type:* string
19298
+
19299
+ URL of the org's SonarCloud instance (e.g. `https://sonarcloud.io`). When set, a `sonar.yml` SonarScanner workflow is generated; when omitted, no Sonar workflow is produced. Must be reachable from github.com-hosted (public) runners (AD-001).
19300
+
19301
+ ---
19302
+
19303
+ ##### `sonarOrganization`<sup>Optional</sup> <a name="sonarOrganization" id="@xpertss/projen-types.JavaSpringBootProjectOptions.property.sonarOrganization"></a>
19304
+
19305
+ ```typescript
19306
+ public readonly sonarOrganization: string;
19307
+ ```
19308
+
19309
+ - *Type:* string
19310
+ - *Default:* "xpertss"
19311
+
19312
+ 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.
19313
+
19314
+ ---
19315
+
19316
+ ##### `sonarProjectKey`<sup>Optional</sup> <a name="sonarProjectKey" id="@xpertss/projen-types.JavaSpringBootProjectOptions.property.sonarProjectKey"></a>
19317
+
19318
+ ```typescript
19319
+ public readonly sonarProjectKey: string;
19320
+ ```
19321
+
19322
+ - *Type:* string
19323
+ - *Default:* `${sonarOrganization}_${name}` (the org + project key SonarCloud uses, e.g. `xpertss_create-pull-request`)
19324
+
19325
+ `sonar.projectKey`.
19326
+
19327
+ ---
19328
+
19329
+ ##### `sonarPullRequestGate`<sup>Optional</sup> <a name="sonarPullRequestGate" id="@xpertss/projen-types.JavaSpringBootProjectOptions.property.sonarPullRequestGate"></a>
19330
+
19331
+ ```typescript
19332
+ public readonly sonarPullRequestGate: boolean;
19333
+ ```
19334
+
19335
+ - *Type:* boolean
19336
+ - *Default:* true
19337
+
19338
+ Whether `sonar.yml` also runs on `pull_request` as a pass/fail gate.
19339
+
19340
+ ---
19341
+
19342
+ ##### `sonarTokenSecret`<sup>Optional</sup> <a name="sonarTokenSecret" id="@xpertss/projen-types.JavaSpringBootProjectOptions.property.sonarTokenSecret"></a>
19343
+
19344
+ ```typescript
19345
+ public readonly sonarTokenSecret: string;
19346
+ ```
19347
+
19348
+ - *Type:* string
19349
+ - *Default:* "SONAR_TOKEN"
19350
+
19351
+ ---
19352
+
18201
19353
  ##### `artifactId`<sup>Required</sup> <a name="artifactId" id="@xpertss/projen-types.JavaSpringBootProjectOptions.property.artifactId"></a>
18202
19354
 
18203
19355
  ```typescript
@@ -18235,7 +19387,7 @@ public readonly copyrightOwner: string;
18235
19387
  ```
18236
19388
 
18237
19389
  - *Type:* string
18238
- - *Default:* "xpertss" (same as `GitHubActionProject`)
19390
+ - *Default:* "Xpert Software"
18239
19391
 
18240
19392
  Copyright owner named in the `LICENSE`.
18241
19393
 
@@ -18425,20 +19577,6 @@ Never written for a multi-module project.
18425
19577
 
18426
19578
  ---
18427
19579
 
18428
- ##### `sonarProjectKey`<sup>Optional</sup> <a name="sonarProjectKey" id="@xpertss/projen-types.JavaSpringBootProjectOptions.property.sonarProjectKey"></a>
18429
-
18430
- ```typescript
18431
- public readonly sonarProjectKey: string;
18432
- ```
18433
-
18434
- - *Type:* string
18435
-
18436
- SonarCloud project key.
18437
-
18438
- If unset, the sonar scan step is skipped.
18439
-
18440
- ---
18441
-
18442
19580
  ##### `upgradeWorkflow`<sup>Optional</sup> <a name="upgradeWorkflow" id="@xpertss/projen-types.JavaSpringBootProjectOptions.property.upgradeWorkflow"></a>
18443
19581
 
18444
19582
  ```typescript
@@ -18906,6 +20044,188 @@ public readonly workflowName: string;
18906
20044
 
18907
20045
  ---
18908
20046
 
20047
+ ### SonarScanOptions <a name="SonarScanOptions" id="@xpertss/projen-types.SonarScanOptions"></a>
20048
+
20049
+ #### Initializer <a name="Initializer" id="@xpertss/projen-types.SonarScanOptions.Initializer"></a>
20050
+
20051
+ ```typescript
20052
+ import { SonarScanOptions } from '@xpertss/projen-types'
20053
+
20054
+ const sonarScanOptions: SonarScanOptions = { ... }
20055
+ ```
20056
+
20057
+ #### Properties <a name="Properties" id="Properties"></a>
20058
+
20059
+ | **Name** | **Type** | **Description** |
20060
+ | --- | --- | --- |
20061
+ | <code><a href="#@xpertss/projen-types.SonarScanOptions.property.sonarHostUrl">sonarHostUrl</a></code> | <code>string</code> | URL of the org's SonarCloud instance (e.g. `https://sonarcloud.io`). When set, a `sonar.yml` SonarScanner workflow is generated; when omitted, no Sonar workflow is produced. Must be reachable from github.com-hosted (public) runners (AD-001). |
20062
+ | <code><a href="#@xpertss/projen-types.SonarScanOptions.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. |
20063
+ | <code><a href="#@xpertss/projen-types.SonarScanOptions.property.sonarProjectKey">sonarProjectKey</a></code> | <code>string</code> | `sonar.projectKey`. |
20064
+ | <code><a href="#@xpertss/projen-types.SonarScanOptions.property.sonarPullRequestGate">sonarPullRequestGate</a></code> | <code>boolean</code> | Whether `sonar.yml` also runs on `pull_request` as a pass/fail gate. |
20065
+ | <code><a href="#@xpertss/projen-types.SonarScanOptions.property.sonarTokenSecret">sonarTokenSecret</a></code> | <code>string</code> | *No description.* |
20066
+
20067
+ ---
20068
+
20069
+ ##### `sonarHostUrl`<sup>Optional</sup> <a name="sonarHostUrl" id="@xpertss/projen-types.SonarScanOptions.property.sonarHostUrl"></a>
20070
+
20071
+ ```typescript
20072
+ public readonly sonarHostUrl: string;
20073
+ ```
20074
+
20075
+ - *Type:* string
20076
+
20077
+ URL of the org's SonarCloud instance (e.g. `https://sonarcloud.io`). When set, a `sonar.yml` SonarScanner workflow is generated; when omitted, no Sonar workflow is produced. Must be reachable from github.com-hosted (public) runners (AD-001).
20078
+
20079
+ ---
20080
+
20081
+ ##### `sonarOrganization`<sup>Optional</sup> <a name="sonarOrganization" id="@xpertss/projen-types.SonarScanOptions.property.sonarOrganization"></a>
20082
+
20083
+ ```typescript
20084
+ public readonly sonarOrganization: string;
20085
+ ```
20086
+
20087
+ - *Type:* string
20088
+ - *Default:* "xpertss"
20089
+
20090
+ 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.
20091
+
20092
+ ---
20093
+
20094
+ ##### `sonarProjectKey`<sup>Optional</sup> <a name="sonarProjectKey" id="@xpertss/projen-types.SonarScanOptions.property.sonarProjectKey"></a>
20095
+
20096
+ ```typescript
20097
+ public readonly sonarProjectKey: string;
20098
+ ```
20099
+
20100
+ - *Type:* string
20101
+ - *Default:* `${sonarOrganization}_${name}` (the org + project key SonarCloud uses, e.g. `xpertss_create-pull-request`)
20102
+
20103
+ `sonar.projectKey`.
20104
+
20105
+ ---
20106
+
20107
+ ##### `sonarPullRequestGate`<sup>Optional</sup> <a name="sonarPullRequestGate" id="@xpertss/projen-types.SonarScanOptions.property.sonarPullRequestGate"></a>
20108
+
20109
+ ```typescript
20110
+ public readonly sonarPullRequestGate: boolean;
20111
+ ```
20112
+
20113
+ - *Type:* boolean
20114
+ - *Default:* true
20115
+
20116
+ Whether `sonar.yml` also runs on `pull_request` as a pass/fail gate.
20117
+
20118
+ ---
20119
+
20120
+ ##### `sonarTokenSecret`<sup>Optional</sup> <a name="sonarTokenSecret" id="@xpertss/projen-types.SonarScanOptions.property.sonarTokenSecret"></a>
20121
+
20122
+ ```typescript
20123
+ public readonly sonarTokenSecret: string;
20124
+ ```
20125
+
20126
+ - *Type:* string
20127
+ - *Default:* "SONAR_TOKEN"
20128
+
20129
+ ---
20130
+
20131
+ ### SonarWorkflowOptions <a name="SonarWorkflowOptions" id="@xpertss/projen-types.SonarWorkflowOptions"></a>
20132
+
20133
+ #### Initializer <a name="Initializer" id="@xpertss/projen-types.SonarWorkflowOptions.Initializer"></a>
20134
+
20135
+ ```typescript
20136
+ import { SonarWorkflowOptions } from '@xpertss/projen-types'
20137
+
20138
+ const sonarWorkflowOptions: SonarWorkflowOptions = { ... }
20139
+ ```
20140
+
20141
+ #### Properties <a name="Properties" id="Properties"></a>
20142
+
20143
+ | **Name** | **Type** | **Description** |
20144
+ | --- | --- | --- |
20145
+ | <code><a href="#@xpertss/projen-types.SonarWorkflowOptions.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. |
20146
+ | <code><a href="#@xpertss/projen-types.SonarWorkflowOptions.property.sonarInclusions">sonarInclusions</a></code> | <code>string</code> | `sonar.inclusions` glob, only needed for files Sonar's default inclusions skip - e.g. a composite action's `action.yml` and `*.sh` scripts, which live outside the defaults. Omit it for default-recognized languages (Java, TypeScript, ...). |
20147
+ | <code><a href="#@xpertss/projen-types.SonarWorkflowOptions.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. |
20148
+ | <code><a href="#@xpertss/projen-types.SonarWorkflowOptions.property.sonarProjectKey">sonarProjectKey</a></code> | <code>string</code> | `sonar.projectKey`. |
20149
+ | <code><a href="#@xpertss/projen-types.SonarWorkflowOptions.property.sonarPullRequestGate">sonarPullRequestGate</a></code> | <code>boolean</code> | Whether `sonar.yml` also runs on `pull_request` as a pass/fail gate. |
20150
+ | <code><a href="#@xpertss/projen-types.SonarWorkflowOptions.property.sonarTokenSecret">sonarTokenSecret</a></code> | <code>string</code> | *No description.* |
20151
+
20152
+ ---
20153
+
20154
+ ##### `sonarHostUrl`<sup>Required</sup> <a name="sonarHostUrl" id="@xpertss/projen-types.SonarWorkflowOptions.property.sonarHostUrl"></a>
20155
+
20156
+ ```typescript
20157
+ public readonly sonarHostUrl: string;
20158
+ ```
20159
+
20160
+ - *Type:* string
20161
+
20162
+ URL of the org's SonarCloud instance (e.g. `https://sonarcloud.io`). Required, no default - a guessed server is worse than a loud failure.
20163
+
20164
+ ---
20165
+
20166
+ ##### `sonarInclusions`<sup>Optional</sup> <a name="sonarInclusions" id="@xpertss/projen-types.SonarWorkflowOptions.property.sonarInclusions"></a>
20167
+
20168
+ ```typescript
20169
+ public readonly sonarInclusions: string;
20170
+ ```
20171
+
20172
+ - *Type:* string
20173
+ - *Default:* none (Sonar's default inclusions)
20174
+
20175
+ `sonar.inclusions` glob, only needed for files Sonar's default inclusions skip - e.g. a composite action's `action.yml` and `*.sh` scripts, which live outside the defaults. Omit it for default-recognized languages (Java, TypeScript, ...).
20176
+
20177
+ ---
20178
+
20179
+ ##### `sonarOrganization`<sup>Optional</sup> <a name="sonarOrganization" id="@xpertss/projen-types.SonarWorkflowOptions.property.sonarOrganization"></a>
20180
+
20181
+ ```typescript
20182
+ public readonly sonarOrganization: string;
20183
+ ```
20184
+
20185
+ - *Type:* string
20186
+ - *Default:* "xpertss"
20187
+
20188
+ 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.
20189
+
20190
+ ---
20191
+
20192
+ ##### `sonarProjectKey`<sup>Optional</sup> <a name="sonarProjectKey" id="@xpertss/projen-types.SonarWorkflowOptions.property.sonarProjectKey"></a>
20193
+
20194
+ ```typescript
20195
+ public readonly sonarProjectKey: string;
20196
+ ```
20197
+
20198
+ - *Type:* string
20199
+ - *Default:* `${sonarOrganization}_${name}` (the org + project key SonarCloud uses, e.g. `xpertss_create-pull-request`)
20200
+
20201
+ `sonar.projectKey`.
20202
+
20203
+ ---
20204
+
20205
+ ##### `sonarPullRequestGate`<sup>Optional</sup> <a name="sonarPullRequestGate" id="@xpertss/projen-types.SonarWorkflowOptions.property.sonarPullRequestGate"></a>
20206
+
20207
+ ```typescript
20208
+ public readonly sonarPullRequestGate: boolean;
20209
+ ```
20210
+
20211
+ - *Type:* boolean
20212
+ - *Default:* true
20213
+
20214
+ Whether `sonar.yml` also runs on `pull_request` as a pass/fail gate.
20215
+
20216
+ ---
20217
+
20218
+ ##### `sonarTokenSecret`<sup>Optional</sup> <a name="sonarTokenSecret" id="@xpertss/projen-types.SonarWorkflowOptions.property.sonarTokenSecret"></a>
20219
+
20220
+ ```typescript
20221
+ public readonly sonarTokenSecret: string;
20222
+ ```
20223
+
20224
+ - *Type:* string
20225
+ - *Default:* "SONAR_TOKEN"
20226
+
20227
+ ---
20228
+
18909
20229
  ### WorkflowChangeNoticeWorkflowOptions <a name="WorkflowChangeNoticeWorkflowOptions" id="@xpertss/projen-types.WorkflowChangeNoticeWorkflowOptions"></a>
18910
20230
 
18911
20231
  PR-triggered, tamper-proof notice that a PR touches GitHub Actions workflow or action files.