@xpertss/projen-types 0.0.21 → 0.0.23

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 +445 -309
  2. package/API.md +1453 -385
  3. package/README.md +40 -16
  4. package/lib/actions/action-build-workflow.js +11 -4
  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 +5 -22
  9. package/lib/actions/github-action-project.js +16 -12
  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 +14 -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 +2 -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 +18 -14
  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 +2 -3
  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,6 +15578,11 @@ 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.* |
15291
15588
  | <code><a href="#@xpertss/projen-types.CdkAppProjectOptions.property.copyrightOwner">copyrightOwner</a></code> | <code>string</code> | Copyright owner named in the `LICENSE`. |
@@ -15302,6 +15599,68 @@ const cdkAppProjectOptions: CdkAppProjectOptions = { ... }
15302
15599
 
15303
15600
  ---
15304
15601
 
15602
+ ##### `sonarHostUrl`<sup>Optional</sup> <a name="sonarHostUrl" id="@xpertss/projen-types.CdkAppProjectOptions.property.sonarHostUrl"></a>
15603
+
15604
+ ```typescript
15605
+ public readonly sonarHostUrl: string;
15606
+ ```
15607
+
15608
+ - *Type:* string
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
+
15612
+ ---
15613
+
15614
+ ##### `sonarOrganization`<sup>Optional</sup> <a name="sonarOrganization" id="@xpertss/projen-types.CdkAppProjectOptions.property.sonarOrganization"></a>
15615
+
15616
+ ```typescript
15617
+ public readonly sonarOrganization: string;
15618
+ ```
15619
+
15620
+ - *Type:* string
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.
15624
+
15625
+ ---
15626
+
15627
+ ##### `sonarProjectKey`<sup>Optional</sup> <a name="sonarProjectKey" id="@xpertss/projen-types.CdkAppProjectOptions.property.sonarProjectKey"></a>
15628
+
15629
+ ```typescript
15630
+ public readonly sonarProjectKey: string;
15631
+ ```
15632
+
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
+
15305
15664
  ##### `name`<sup>Required</sup> <a name="name" id="@xpertss/projen-types.CdkAppProjectOptions.property.name"></a>
15306
15665
 
15307
15666
  ```typescript
@@ -15504,6 +15863,11 @@ const cdkInfraProjectOptions: CdkInfraProjectOptions = { ... }
15504
15863
 
15505
15864
  | **Name** | **Type** | **Description** |
15506
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.* |
15507
15871
  | <code><a href="#@xpertss/projen-types.CdkInfraProjectOptions.property.name">name</a></code> | <code>string</code> | *No description.* |
15508
15872
  | <code><a href="#@xpertss/projen-types.CdkInfraProjectOptions.property.cdkVersion">cdkVersion</a></code> | <code>string</code> | *No description.* |
15509
15873
  | <code><a href="#@xpertss/projen-types.CdkInfraProjectOptions.property.copyrightOwner">copyrightOwner</a></code> | <code>string</code> | Copyright owner named in the `LICENSE`. |
@@ -15518,6 +15882,68 @@ const cdkInfraProjectOptions: CdkInfraProjectOptions = { ... }
15518
15882
 
15519
15883
  ---
15520
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
+
15521
15947
  ##### `name`<sup>Required</sup> <a name="name" id="@xpertss/projen-types.CdkInfraProjectOptions.property.name"></a>
15522
15948
 
15523
15949
  ```typescript
@@ -15668,6 +16094,11 @@ const cdkTypescriptProjectOptions: CdkTypescriptProjectOptions = { ... }
15668
16094
 
15669
16095
  | **Name** | **Type** | **Description** |
15670
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.* |
15671
16102
  | <code><a href="#@xpertss/projen-types.CdkTypescriptProjectOptions.property.name">name</a></code> | <code>string</code> | *No description.* |
15672
16103
  | <code><a href="#@xpertss/projen-types.CdkTypescriptProjectOptions.property.cdkVersion">cdkVersion</a></code> | <code>string</code> | *No description.* |
15673
16104
  | <code><a href="#@xpertss/projen-types.CdkTypescriptProjectOptions.property.copyrightOwner">copyrightOwner</a></code> | <code>string</code> | Copyright owner named in the `LICENSE`. |
@@ -15680,6 +16111,68 @@ const cdkTypescriptProjectOptions: CdkTypescriptProjectOptions = { ... }
15680
16111
 
15681
16112
  ---
15682
16113
 
16114
+ ##### `sonarHostUrl`<sup>Optional</sup> <a name="sonarHostUrl" id="@xpertss/projen-types.CdkTypescriptProjectOptions.property.sonarHostUrl"></a>
16115
+
16116
+ ```typescript
16117
+ public readonly sonarHostUrl: string;
16118
+ ```
16119
+
16120
+ - *Type:* string
16121
+
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).
16123
+
16124
+ ---
16125
+
16126
+ ##### `sonarOrganization`<sup>Optional</sup> <a name="sonarOrganization" id="@xpertss/projen-types.CdkTypescriptProjectOptions.property.sonarOrganization"></a>
16127
+
16128
+ ```typescript
16129
+ public readonly sonarOrganization: string;
16130
+ ```
16131
+
16132
+ - *Type:* string
16133
+ - *Default:* "xpertss"
16134
+
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.
16136
+
16137
+ ---
16138
+
16139
+ ##### `sonarProjectKey`<sup>Optional</sup> <a name="sonarProjectKey" id="@xpertss/projen-types.CdkTypescriptProjectOptions.property.sonarProjectKey"></a>
16140
+
16141
+ ```typescript
16142
+ public readonly sonarProjectKey: string;
16143
+ ```
16144
+
16145
+ - *Type:* string
16146
+ - *Default:* `${sonarOrganization}_${name}` (the org + project key SonarCloud uses, e.g. `xpertss_create-pull-request`)
16147
+
16148
+ `sonar.projectKey`.
16149
+
16150
+ ---
16151
+
16152
+ ##### `sonarPullRequestGate`<sup>Optional</sup> <a name="sonarPullRequestGate" id="@xpertss/projen-types.CdkTypescriptProjectOptions.property.sonarPullRequestGate"></a>
16153
+
16154
+ ```typescript
16155
+ public readonly sonarPullRequestGate: boolean;
16156
+ ```
16157
+
16158
+ - *Type:* boolean
16159
+ - *Default:* true
16160
+
16161
+ Whether `sonar.yml` also runs on `pull_request` as a pass/fail gate.
16162
+
16163
+ ---
16164
+
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
+
15683
16176
  ##### `name`<sup>Required</sup> <a name="name" id="@xpertss/projen-types.CdkTypescriptProjectOptions.property.name"></a>
15684
16177
 
15685
16178
  ```typescript
@@ -15764,51 +16257,118 @@ SPDX identifier for the generated `LICENSE`.
15764
16257
 
15765
16258
  ---
15766
16259
 
15767
- ##### `licensed`<sup>Optional</sup> <a name="licensed" id="@xpertss/projen-types.CdkTypescriptProjectOptions.property.licensed"></a>
16260
+ ##### `licensed`<sup>Optional</sup> <a name="licensed" id="@xpertss/projen-types.CdkTypescriptProjectOptions.property.licensed"></a>
16261
+
16262
+ ```typescript
16263
+ public readonly licensed: boolean;
16264
+ ```
16265
+
16266
+ - *Type:* boolean
16267
+ - *Default:* true
16268
+
16269
+ Write a `LICENSE`.
16270
+
16271
+ ---
16272
+
16273
+ ##### `environments`<sup>Optional</sup> <a name="environments" id="@xpertss/projen-types.CdkTypescriptProjectOptions.property.environments"></a>
16274
+
16275
+ ```typescript
16276
+ public readonly environments: (string | EnvironmentOptions)[];
16277
+ ```
16278
+
16279
+ - *Type:* string | <a href="#@xpertss/projen-types.EnvironmentOptions">EnvironmentOptions</a>[]
16280
+
16281
+ ---
16282
+
16283
+ ### CommonCdkOptions <a name="CommonCdkOptions" id="@xpertss/projen-types.CommonCdkOptions"></a>
16284
+
16285
+ #### Initializer <a name="Initializer" id="@xpertss/projen-types.CommonCdkOptions.Initializer"></a>
16286
+
16287
+ ```typescript
16288
+ import { CommonCdkOptions } from '@xpertss/projen-types'
16289
+
16290
+ const commonCdkOptions: CommonCdkOptions = { ... }
16291
+ ```
16292
+
16293
+ #### Properties <a name="Properties" id="Properties"></a>
16294
+
16295
+ | **Name** | **Type** | **Description** |
16296
+ | --- | --- | --- |
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`. |
16310
+
16311
+ ---
16312
+
16313
+ ##### `sonarHostUrl`<sup>Optional</sup> <a name="sonarHostUrl" id="@xpertss/projen-types.CommonCdkOptions.property.sonarHostUrl"></a>
16314
+
16315
+ ```typescript
16316
+ public readonly sonarHostUrl: string;
16317
+ ```
16318
+
16319
+ - *Type:* string
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
+
16323
+ ---
16324
+
16325
+ ##### `sonarOrganization`<sup>Optional</sup> <a name="sonarOrganization" id="@xpertss/projen-types.CommonCdkOptions.property.sonarOrganization"></a>
16326
+
16327
+ ```typescript
16328
+ public readonly sonarOrganization: string;
16329
+ ```
16330
+
16331
+ - *Type:* string
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.
16335
+
16336
+ ---
16337
+
16338
+ ##### `sonarProjectKey`<sup>Optional</sup> <a name="sonarProjectKey" id="@xpertss/projen-types.CommonCdkOptions.property.sonarProjectKey"></a>
15768
16339
 
15769
16340
  ```typescript
15770
- public readonly licensed: boolean;
16341
+ public readonly sonarProjectKey: string;
15771
16342
  ```
15772
16343
 
15773
- - *Type:* boolean
15774
- - *Default:* true
16344
+ - *Type:* string
16345
+ - *Default:* `${sonarOrganization}_${name}` (the org + project key SonarCloud uses, e.g. `xpertss_create-pull-request`)
15775
16346
 
15776
- Write a `LICENSE`.
16347
+ `sonar.projectKey`.
15777
16348
 
15778
16349
  ---
15779
16350
 
15780
- ##### `environments`<sup>Optional</sup> <a name="environments" id="@xpertss/projen-types.CdkTypescriptProjectOptions.property.environments"></a>
16351
+ ##### `sonarPullRequestGate`<sup>Optional</sup> <a name="sonarPullRequestGate" id="@xpertss/projen-types.CommonCdkOptions.property.sonarPullRequestGate"></a>
15781
16352
 
15782
16353
  ```typescript
15783
- public readonly environments: (string | EnvironmentOptions)[];
16354
+ public readonly sonarPullRequestGate: boolean;
15784
16355
  ```
15785
16356
 
15786
- - *Type:* string | <a href="#@xpertss/projen-types.EnvironmentOptions">EnvironmentOptions</a>[]
16357
+ - *Type:* boolean
16358
+ - *Default:* true
15787
16359
 
15788
- ---
16360
+ Whether `sonar.yml` also runs on `pull_request` as a pass/fail gate.
15789
16361
 
15790
- ### CommonCdkOptions <a name="CommonCdkOptions" id="@xpertss/projen-types.CommonCdkOptions"></a>
16362
+ ---
15791
16363
 
15792
- #### Initializer <a name="Initializer" id="@xpertss/projen-types.CommonCdkOptions.Initializer"></a>
16364
+ ##### `sonarTokenSecret`<sup>Optional</sup> <a name="sonarTokenSecret" id="@xpertss/projen-types.CommonCdkOptions.property.sonarTokenSecret"></a>
15793
16365
 
15794
16366
  ```typescript
15795
- import { CommonCdkOptions } from '@xpertss/projen-types'
15796
-
15797
- const commonCdkOptions: CommonCdkOptions = { ... }
16367
+ public readonly sonarTokenSecret: string;
15798
16368
  ```
15799
16369
 
15800
- #### Properties <a name="Properties" id="Properties"></a>
15801
-
15802
- | **Name** | **Type** | **Description** |
15803
- | --- | --- | --- |
15804
- | <code><a href="#@xpertss/projen-types.CommonCdkOptions.property.name">name</a></code> | <code>string</code> | *No description.* |
15805
- | <code><a href="#@xpertss/projen-types.CommonCdkOptions.property.cdkVersion">cdkVersion</a></code> | <code>string</code> | *No description.* |
15806
- | <code><a href="#@xpertss/projen-types.CommonCdkOptions.property.copyrightOwner">copyrightOwner</a></code> | <code>string</code> | Copyright owner named in the `LICENSE`. |
15807
- | <code><a href="#@xpertss/projen-types.CommonCdkOptions.property.copyrightPeriod">copyrightPeriod</a></code> | <code>string</code> | Copyright period named in the `LICENSE`. |
15808
- | <code><a href="#@xpertss/projen-types.CommonCdkOptions.property.editorconfig">editorconfig</a></code> | <code>boolean</code> | Write a projen-managed `.editorconfig`. |
15809
- | <code><a href="#@xpertss/projen-types.CommonCdkOptions.property.gheTokenSecret">gheTokenSecret</a></code> | <code>string</code> | *No description.* |
15810
- | <code><a href="#@xpertss/projen-types.CommonCdkOptions.property.license">license</a></code> | <code>string</code> | SPDX identifier for the generated `LICENSE`. |
15811
- | <code><a href="#@xpertss/projen-types.CommonCdkOptions.property.licensed">licensed</a></code> | <code>boolean</code> | Write a `LICENSE`. |
16370
+ - *Type:* string
16371
+ - *Default:* "SONAR_TOKEN"
15812
16372
 
15813
16373
  ---
15814
16374
 
@@ -15923,6 +16483,11 @@ const commonJavaOptions: CommonJavaOptions = { ... }
15923
16483
 
15924
16484
  | **Name** | **Type** | **Description** |
15925
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.* |
15926
16491
  | <code><a href="#@xpertss/projen-types.CommonJavaOptions.property.artifactId">artifactId</a></code> | <code>string</code> | *No description.* |
15927
16492
  | <code><a href="#@xpertss/projen-types.CommonJavaOptions.property.groupId">groupId</a></code> | <code>string</code> | *No description.* |
15928
16493
  | <code><a href="#@xpertss/projen-types.CommonJavaOptions.property.name">name</a></code> | <code>string</code> | *No description.* |
@@ -15940,13 +16505,74 @@ const commonJavaOptions: CommonJavaOptions = { ... }
15940
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. |
15941
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. |
15942
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. |
15943
- | <code><a href="#@xpertss/projen-types.CommonJavaOptions.property.sonarProjectKey">sonarProjectKey</a></code> | <code>string</code> | SonarCloud project key. |
15944
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`). |
15945
16509
  | <code><a href="#@xpertss/projen-types.CommonJavaOptions.property.url">url</a></code> | <code>string</code> | Project URL, written to the root pom. |
15946
16510
  | <code><a href="#@xpertss/projen-types.CommonJavaOptions.property.version">version</a></code> | <code>string</code> | *No description.* |
15947
16511
 
15948
16512
  ---
15949
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
+
15950
16576
  ##### `artifactId`<sup>Required</sup> <a name="artifactId" id="@xpertss/projen-types.CommonJavaOptions.property.artifactId"></a>
15951
16577
 
15952
16578
  ```typescript
@@ -16174,20 +16800,6 @@ Never written for a multi-module project.
16174
16800
 
16175
16801
  ---
16176
16802
 
16177
- ##### `sonarProjectKey`<sup>Optional</sup> <a name="sonarProjectKey" id="@xpertss/projen-types.CommonJavaOptions.property.sonarProjectKey"></a>
16178
-
16179
- ```typescript
16180
- public readonly sonarProjectKey: string;
16181
- ```
16182
-
16183
- - *Type:* string
16184
-
16185
- SonarCloud project key.
16186
-
16187
- If unset, the sonar scan step is skipped.
16188
-
16189
- ---
16190
-
16191
16803
  ##### `upgradeWorkflow`<sup>Optional</sup> <a name="upgradeWorkflow" id="@xpertss/projen-types.CommonJavaOptions.property.upgradeWorkflow"></a>
16192
16804
 
16193
16805
  ```typescript
@@ -16451,7 +17063,11 @@ const gitHubActionProjectOptions: GitHubActionProjectOptions = { ... }
16451
17063
  | <code><a href="#@xpertss/projen-types.GitHubActionProjectOptions.property.stale">stale</a></code> | <code>boolean</code> | Auto-close of stale issues and pull request. |
16452
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. |
16453
17065
  | <code><a href="#@xpertss/projen-types.GitHubActionProjectOptions.property.vscode">vscode</a></code> | <code>boolean</code> | Enable VSCode integration. |
16454
- | <code><a href="#@xpertss/projen-types.GitHubActionProjectOptions.property.sonarHostUrl">sonarHostUrl</a></code> | <code>string</code> | URL of the org's SonarCloud instance (e.g. `https://sonarcloud.io`). MUST be reachable from github.com-hosted (public) runners (AD-001). Required, no default: a guessed server is worse than a loud failure. |
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.* |
16455
17071
  | <code><a href="#@xpertss/projen-types.GitHubActionProjectOptions.property.copyrightOwner">copyrightOwner</a></code> | <code>string</code> | Copyright owner named in the `LICENSE`. |
16456
17072
  | <code><a href="#@xpertss/projen-types.GitHubActionProjectOptions.property.copyrightPeriod">copyrightPeriod</a></code> | <code>string</code> | Copyright period named in the `LICENSE`. |
16457
17073
  | <code><a href="#@xpertss/projen-types.GitHubActionProjectOptions.property.description">description</a></code> | <code>string</code> | One-line description of the action. |
@@ -16459,9 +17075,6 @@ const gitHubActionProjectOptions: GitHubActionProjectOptions = { ... }
16459
17075
  | <code><a href="#@xpertss/projen-types.GitHubActionProjectOptions.property.editorconfig">editorconfig</a></code> | <code>boolean</code> | Write a projen-managed `.editorconfig`. |
16460
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. |
16461
17077
  | <code><a href="#@xpertss/projen-types.GitHubActionProjectOptions.property.license">license</a></code> | <code>string</code> | SPDX identifier for the generated `LICENSE`. |
16462
- | <code><a href="#@xpertss/projen-types.GitHubActionProjectOptions.property.sonarOrganization">sonarOrganization</a></code> | <code>string</code> | SonarCloud organization key (`sonar.organization`), required by the Scanner CLI on SonarCloud. |
16463
- | <code><a href="#@xpertss/projen-types.GitHubActionProjectOptions.property.sonarPullRequestGate">sonarPullRequestGate</a></code> | <code>boolean</code> | Whether `sonar.yml` also runs on `pull_request` as a pass/fail gate. |
16464
- | <code><a href="#@xpertss/projen-types.GitHubActionProjectOptions.property.sonarTokenSecret">sonarTokenSecret</a></code> | <code>string</code> | *No description.* |
16465
17078
 
16466
17079
  ---
16467
17080
 
@@ -16833,7 +17446,7 @@ Enabled by default for root projects. Disabled for non-root projects.
16833
17446
 
16834
17447
  ---
16835
17448
 
16836
- ##### `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>
16837
17450
 
16838
17451
  ```typescript
16839
17452
  public readonly sonarHostUrl: string;
@@ -16841,7 +17454,57 @@ public readonly sonarHostUrl: string;
16841
17454
 
16842
17455
  - *Type:* string
16843
17456
 
16844
- 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"
16845
17508
 
16846
17509
  ---
16847
17510
 
@@ -16953,108 +17616,137 @@ SPDX identifier for the generated `LICENSE`.
16953
17616
 
16954
17617
  ---
16955
17618
 
16956
- ##### `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>
16957
17622
 
16958
17623
  ```typescript
16959
- public readonly sonarOrganization: string;
17624
+ import { GitHubPackagesPublishOptions } from '@xpertss/projen-types'
17625
+
17626
+ const gitHubPackagesPublishOptions: GitHubPackagesPublishOptions = { ... }
16960
17627
  ```
16961
17628
 
16962
- - *Type:* string
16963
- - *Default:* "xpertss"
17629
+ #### Properties <a name="Properties" id="Properties"></a>
16964
17630
 
16965
- 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.* |
16966
17634
 
16967
17635
  ---
16968
17636
 
16969
- ##### `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>
16970
17638
 
16971
17639
  ```typescript
16972
- public readonly sonarPullRequestGate: boolean;
17640
+ public readonly ghPackagesRegistry: string;
16973
17641
  ```
16974
17642
 
16975
- - *Type:* boolean
16976
- - *Default:* true
17643
+ - *Type:* string
17644
+ - *Default:* derived from the repository URL
16977
17645
 
16978
- 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.* |
16979
17688
 
16980
17689
  ---
16981
17690
 
16982
- ##### `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>
16983
17692
 
16984
17693
  ```typescript
16985
- public readonly sonarTokenSecret: string;
17694
+ public readonly sonarHostUrl: string;
16986
17695
  ```
16987
17696
 
16988
17697
  - *Type:* string
16989
- - *Default:* "SONAR_TOKEN"
16990
17698
 
16991
- ---
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).
16992
17700
 
16993
- ### GitHubPackagesPublishOptions <a name="GitHubPackagesPublishOptions" id="@xpertss/projen-types.GitHubPackagesPublishOptions"></a>
17701
+ ---
16994
17702
 
16995
- #### 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>
16996
17704
 
16997
17705
  ```typescript
16998
- import { GitHubPackagesPublishOptions } from '@xpertss/projen-types'
16999
-
17000
- const gitHubPackagesPublishOptions: GitHubPackagesPublishOptions = { ... }
17706
+ public readonly sonarOrganization: string;
17001
17707
  ```
17002
17708
 
17003
- #### Properties <a name="Properties" id="Properties"></a>
17709
+ - *Type:* string
17710
+ - *Default:* "xpertss"
17004
17711
 
17005
- | **Name** | **Type** | **Description** |
17006
- | --- | --- | --- |
17007
- | <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.
17008
17713
 
17009
17714
  ---
17010
17715
 
17011
- ##### `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>
17012
17717
 
17013
17718
  ```typescript
17014
- public readonly ghPackagesRegistry: string;
17719
+ public readonly sonarProjectKey: string;
17015
17720
  ```
17016
17721
 
17017
17722
  - *Type:* string
17018
- - *Default:* derived from the repository URL
17723
+ - *Default:* `${sonarOrganization}_${name}` (the org + project key SonarCloud uses, e.g. `xpertss_create-pull-request`)
17019
17724
 
17020
- ---
17725
+ `sonar.projectKey`.
17021
17726
 
17022
- ### JavaAppProjectOptions <a name="JavaAppProjectOptions" id="@xpertss/projen-types.JavaAppProjectOptions"></a>
17727
+ ---
17023
17728
 
17024
- #### 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>
17025
17730
 
17026
17731
  ```typescript
17027
- import { JavaAppProjectOptions } from '@xpertss/projen-types'
17732
+ public readonly sonarPullRequestGate: boolean;
17733
+ ```
17028
17734
 
17029
- 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;
17030
17746
  ```
17031
17747
 
17032
- #### Properties <a name="Properties" id="Properties"></a>
17033
-
17034
- | **Name** | **Type** | **Description** |
17035
- | --- | --- | --- |
17036
- | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.artifactId">artifactId</a></code> | <code>string</code> | *No description.* |
17037
- | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.groupId">groupId</a></code> | <code>string</code> | *No description.* |
17038
- | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.name">name</a></code> | <code>string</code> | *No description.* |
17039
- | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.copyrightOwner">copyrightOwner</a></code> | <code>string</code> | Copyright owner named in the `LICENSE`. |
17040
- | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.copyrightPeriod">copyrightPeriod</a></code> | <code>string</code> | Copyright period named in the `LICENSE`. |
17041
- | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.description">description</a></code> | <code>string</code> | Project description, written to the root pom. |
17042
- | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.editorconfig">editorconfig</a></code> | <code>boolean</code> | Write a projen-managed `.editorconfig`. |
17043
- | <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). |
17044
- | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.gheTokenSecret">gheTokenSecret</a></code> | <code>string</code> | *No description.* |
17045
- | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.javaDistribution">javaDistribution</a></code> | <code>string</code> | `actions/setup-java` distribution CI installs the JDK from. |
17046
- | <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`. |
17047
- | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.license">license</a></code> | <code>string</code> | SPDX identifier for the generated `LICENSE`. |
17048
- | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.licensed">licensed</a></code> | <code>boolean</code> | Write a `LICENSE` file. |
17049
- | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.minMavenVersion">minMavenVersion</a></code> | <code>string</code> | Lowest Maven version the enforcer accepts (`requireMavenVersion [<this>,)`). |
17050
- | <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. |
17051
- | <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. |
17052
- | <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. |
17053
- | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.sonarProjectKey">sonarProjectKey</a></code> | <code>string</code> | SonarCloud project key. |
17054
- | <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`). |
17055
- | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.url">url</a></code> | <code>string</code> | Project URL, written to the root pom. |
17056
- | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.version">version</a></code> | <code>string</code> | *No description.* |
17057
- | <code><a href="#@xpertss/projen-types.JavaAppProjectOptions.property.ghPackagesRegistry">ghPackagesRegistry</a></code> | <code>string</code> | *No description.* |
17748
+ - *Type:* string
17749
+ - *Default:* "SONAR_TOKEN"
17058
17750
 
17059
17751
  ---
17060
17752
 
@@ -17285,20 +17977,6 @@ Never written for a multi-module project.
17285
17977
 
17286
17978
  ---
17287
17979
 
17288
- ##### `sonarProjectKey`<sup>Optional</sup> <a name="sonarProjectKey" id="@xpertss/projen-types.JavaAppProjectOptions.property.sonarProjectKey"></a>
17289
-
17290
- ```typescript
17291
- public readonly sonarProjectKey: string;
17292
- ```
17293
-
17294
- - *Type:* string
17295
-
17296
- SonarCloud project key.
17297
-
17298
- If unset, the sonar scan step is skipped.
17299
-
17300
- ---
17301
-
17302
17980
  ##### `upgradeWorkflow`<sup>Optional</sup> <a name="upgradeWorkflow" id="@xpertss/projen-types.JavaAppProjectOptions.property.upgradeWorkflow"></a>
17303
17981
 
17304
17982
  ```typescript
@@ -17361,6 +18039,11 @@ const javaLibraryProjectOptions: JavaLibraryProjectOptions = { ... }
17361
18039
 
17362
18040
  | **Name** | **Type** | **Description** |
17363
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.* |
17364
18047
  | <code><a href="#@xpertss/projen-types.JavaLibraryProjectOptions.property.artifactId">artifactId</a></code> | <code>string</code> | *No description.* |
17365
18048
  | <code><a href="#@xpertss/projen-types.JavaLibraryProjectOptions.property.groupId">groupId</a></code> | <code>string</code> | *No description.* |
17366
18049
  | <code><a href="#@xpertss/projen-types.JavaLibraryProjectOptions.property.name">name</a></code> | <code>string</code> | *No description.* |
@@ -17378,7 +18061,6 @@ const javaLibraryProjectOptions: JavaLibraryProjectOptions = { ... }
17378
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. |
17379
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. |
17380
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. |
17381
- | <code><a href="#@xpertss/projen-types.JavaLibraryProjectOptions.property.sonarProjectKey">sonarProjectKey</a></code> | <code>string</code> | SonarCloud project key. |
17382
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`). |
17383
18065
  | <code><a href="#@xpertss/projen-types.JavaLibraryProjectOptions.property.url">url</a></code> | <code>string</code> | Project URL, written to the root pom. |
17384
18066
  | <code><a href="#@xpertss/projen-types.JavaLibraryProjectOptions.property.version">version</a></code> | <code>string</code> | *No description.* |
@@ -17387,6 +18069,68 @@ const javaLibraryProjectOptions: JavaLibraryProjectOptions = { ... }
17387
18069
 
17388
18070
  ---
17389
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
+
17390
18134
  ##### `artifactId`<sup>Required</sup> <a name="artifactId" id="@xpertss/projen-types.JavaLibraryProjectOptions.property.artifactId"></a>
17391
18135
 
17392
18136
  ```typescript
@@ -17614,20 +18358,6 @@ Never written for a multi-module project.
17614
18358
 
17615
18359
  ---
17616
18360
 
17617
- ##### `sonarProjectKey`<sup>Optional</sup> <a name="sonarProjectKey" id="@xpertss/projen-types.JavaLibraryProjectOptions.property.sonarProjectKey"></a>
17618
-
17619
- ```typescript
17620
- public readonly sonarProjectKey: string;
17621
- ```
17622
-
17623
- - *Type:* string
17624
-
17625
- SonarCloud project key.
17626
-
17627
- If unset, the sonar scan step is skipped.
17628
-
17629
- ---
17630
-
17631
18361
  ##### `upgradeWorkflow`<sup>Optional</sup> <a name="upgradeWorkflow" id="@xpertss/projen-types.JavaLibraryProjectOptions.property.upgradeWorkflow"></a>
17632
18362
 
17633
18363
  ```typescript
@@ -17704,6 +18434,11 @@ const javaMavenProjectOptions: JavaMavenProjectOptions = { ... }
17704
18434
 
17705
18435
  | **Name** | **Type** | **Description** |
17706
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.* |
17707
18442
  | <code><a href="#@xpertss/projen-types.JavaMavenProjectOptions.property.artifactId">artifactId</a></code> | <code>string</code> | *No description.* |
17708
18443
  | <code><a href="#@xpertss/projen-types.JavaMavenProjectOptions.property.groupId">groupId</a></code> | <code>string</code> | *No description.* |
17709
18444
  | <code><a href="#@xpertss/projen-types.JavaMavenProjectOptions.property.name">name</a></code> | <code>string</code> | *No description.* |
@@ -17721,13 +18456,74 @@ const javaMavenProjectOptions: JavaMavenProjectOptions = { ... }
17721
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. |
17722
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. |
17723
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. |
17724
- | <code><a href="#@xpertss/projen-types.JavaMavenProjectOptions.property.sonarProjectKey">sonarProjectKey</a></code> | <code>string</code> | SonarCloud project key. |
17725
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`). |
17726
18460
  | <code><a href="#@xpertss/projen-types.JavaMavenProjectOptions.property.url">url</a></code> | <code>string</code> | Project URL, written to the root pom. |
17727
18461
  | <code><a href="#@xpertss/projen-types.JavaMavenProjectOptions.property.version">version</a></code> | <code>string</code> | *No description.* |
17728
18462
 
17729
18463
  ---
17730
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
+
17731
18527
  ##### `artifactId`<sup>Required</sup> <a name="artifactId" id="@xpertss/projen-types.JavaMavenProjectOptions.property.artifactId"></a>
17732
18528
 
17733
18529
  ```typescript
@@ -17955,20 +18751,6 @@ Never written for a multi-module project.
17955
18751
 
17956
18752
  ---
17957
18753
 
17958
- ##### `sonarProjectKey`<sup>Optional</sup> <a name="sonarProjectKey" id="@xpertss/projen-types.JavaMavenProjectOptions.property.sonarProjectKey"></a>
17959
-
17960
- ```typescript
17961
- public readonly sonarProjectKey: string;
17962
- ```
17963
-
17964
- - *Type:* string
17965
-
17966
- SonarCloud project key.
17967
-
17968
- If unset, the sonar scan step is skipped.
17969
-
17970
- ---
17971
-
17972
18754
  ##### `upgradeWorkflow`<sup>Optional</sup> <a name="upgradeWorkflow" id="@xpertss/projen-types.JavaMavenProjectOptions.property.upgradeWorkflow"></a>
17973
18755
 
17974
18756
  ```typescript
@@ -18016,37 +18798,103 @@ import { JavaServiceProjectOptions } from '@xpertss/projen-types'
18016
18798
  const javaServiceProjectOptions: JavaServiceProjectOptions = { ... }
18017
18799
  ```
18018
18800
 
18019
- #### Properties <a name="Properties" id="Properties"></a>
18020
-
18021
- | **Name** | **Type** | **Description** |
18022
- | --- | --- | --- |
18023
- | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.artifactId">artifactId</a></code> | <code>string</code> | *No description.* |
18024
- | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.groupId">groupId</a></code> | <code>string</code> | *No description.* |
18025
- | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.name">name</a></code> | <code>string</code> | *No description.* |
18026
- | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.copyrightOwner">copyrightOwner</a></code> | <code>string</code> | Copyright owner named in the `LICENSE`. |
18027
- | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.copyrightPeriod">copyrightPeriod</a></code> | <code>string</code> | Copyright period named in the `LICENSE`. |
18028
- | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.description">description</a></code> | <code>string</code> | Project description, written to the root pom. |
18029
- | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.editorconfig">editorconfig</a></code> | <code>boolean</code> | Write a projen-managed `.editorconfig`. |
18030
- | <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). |
18031
- | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.gheTokenSecret">gheTokenSecret</a></code> | <code>string</code> | *No description.* |
18032
- | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.javaDistribution">javaDistribution</a></code> | <code>string</code> | `actions/setup-java` distribution CI installs the JDK from. |
18033
- | <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`. |
18034
- | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.license">license</a></code> | <code>string</code> | SPDX identifier for the generated `LICENSE`. |
18035
- | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.licensed">licensed</a></code> | <code>boolean</code> | Write a `LICENSE` file. |
18036
- | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.minMavenVersion">minMavenVersion</a></code> | <code>string</code> | Lowest Maven version the enforcer accepts (`requireMavenVersion [<this>,)`). |
18037
- | <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. |
18038
- | <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. |
18039
- | <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. |
18040
- | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.sonarProjectKey">sonarProjectKey</a></code> | <code>string</code> | SonarCloud project key. |
18041
- | <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`). |
18042
- | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.url">url</a></code> | <code>string</code> | Project URL, written to the root pom. |
18043
- | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.version">version</a></code> | <code>string</code> | *No description.* |
18044
- | <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`. |
18045
- | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.cdkDeployHook">cdkDeployHook</a></code> | <code>boolean</code> | Whether to generate the `deploy-cdk` workflow at all. |
18046
- | <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. |
18047
- | <code><a href="#@xpertss/projen-types.JavaServiceProjectOptions.property.dockerRegistry">dockerRegistry</a></code> | <code>string</code> | *No description.* |
18048
- | <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. |
18049
- | <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"
18050
18898
 
18051
18899
  ---
18052
18900
 
@@ -18277,20 +19125,6 @@ Never written for a multi-module project.
18277
19125
 
18278
19126
  ---
18279
19127
 
18280
- ##### `sonarProjectKey`<sup>Optional</sup> <a name="sonarProjectKey" id="@xpertss/projen-types.JavaServiceProjectOptions.property.sonarProjectKey"></a>
18281
-
18282
- ```typescript
18283
- public readonly sonarProjectKey: string;
18284
- ```
18285
-
18286
- - *Type:* string
18287
-
18288
- SonarCloud project key.
18289
-
18290
- If unset, the sonar scan step is skipped.
18291
-
18292
- ---
18293
-
18294
19128
  ##### `upgradeWorkflow`<sup>Optional</sup> <a name="upgradeWorkflow" id="@xpertss/projen-types.JavaServiceProjectOptions.property.upgradeWorkflow"></a>
18295
19129
 
18296
19130
  ```typescript
@@ -18425,6 +19259,11 @@ const javaSpringBootProjectOptions: JavaSpringBootProjectOptions = { ... }
18425
19259
 
18426
19260
  | **Name** | **Type** | **Description** |
18427
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.* |
18428
19267
  | <code><a href="#@xpertss/projen-types.JavaSpringBootProjectOptions.property.artifactId">artifactId</a></code> | <code>string</code> | *No description.* |
18429
19268
  | <code><a href="#@xpertss/projen-types.JavaSpringBootProjectOptions.property.groupId">groupId</a></code> | <code>string</code> | *No description.* |
18430
19269
  | <code><a href="#@xpertss/projen-types.JavaSpringBootProjectOptions.property.name">name</a></code> | <code>string</code> | *No description.* |
@@ -18442,7 +19281,6 @@ const javaSpringBootProjectOptions: JavaSpringBootProjectOptions = { ... }
18442
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. |
18443
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. |
18444
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. |
18445
- | <code><a href="#@xpertss/projen-types.JavaSpringBootProjectOptions.property.sonarProjectKey">sonarProjectKey</a></code> | <code>string</code> | SonarCloud project key. |
18446
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`). |
18447
19285
  | <code><a href="#@xpertss/projen-types.JavaSpringBootProjectOptions.property.url">url</a></code> | <code>string</code> | Project URL, written to the root pom. |
18448
19286
  | <code><a href="#@xpertss/projen-types.JavaSpringBootProjectOptions.property.version">version</a></code> | <code>string</code> | *No description.* |
@@ -18450,6 +19288,68 @@ const javaSpringBootProjectOptions: JavaSpringBootProjectOptions = { ... }
18450
19288
 
18451
19289
  ---
18452
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
+
18453
19353
  ##### `artifactId`<sup>Required</sup> <a name="artifactId" id="@xpertss/projen-types.JavaSpringBootProjectOptions.property.artifactId"></a>
18454
19354
 
18455
19355
  ```typescript
@@ -18677,20 +19577,6 @@ Never written for a multi-module project.
18677
19577
 
18678
19578
  ---
18679
19579
 
18680
- ##### `sonarProjectKey`<sup>Optional</sup> <a name="sonarProjectKey" id="@xpertss/projen-types.JavaSpringBootProjectOptions.property.sonarProjectKey"></a>
18681
-
18682
- ```typescript
18683
- public readonly sonarProjectKey: string;
18684
- ```
18685
-
18686
- - *Type:* string
18687
-
18688
- SonarCloud project key.
18689
-
18690
- If unset, the sonar scan step is skipped.
18691
-
18692
- ---
18693
-
18694
19580
  ##### `upgradeWorkflow`<sup>Optional</sup> <a name="upgradeWorkflow" id="@xpertss/projen-types.JavaSpringBootProjectOptions.property.upgradeWorkflow"></a>
18695
19581
 
18696
19582
  ```typescript
@@ -19158,6 +20044,188 @@ public readonly workflowName: string;
19158
20044
 
19159
20045
  ---
19160
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
+
19161
20229
  ### WorkflowChangeNoticeWorkflowOptions <a name="WorkflowChangeNoticeWorkflowOptions" id="@xpertss/projen-types.WorkflowChangeNoticeWorkflowOptions"></a>
19162
20230
 
19163
20231
  PR-triggered, tamper-proof notice that a PR touches GitHub Actions workflow or action files.