projen-modules 3.2.1 → 3.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.jsii CHANGED
@@ -99,7 +99,7 @@
99
99
  },
100
100
  "name": "projen-modules",
101
101
  "readme": {
102
- "markdown": "# projen-modules\n\nA collection of custom projen modules, that can be used to bootstrap and maintain consistent project configuration, tooling, dependencies, and builds.\n\n## Getting Started\n\n```sh\nyarn install\nnpx projen build\n```\n\nThis will:\n* Install the dependencies\n* Apply any projen changes\n* Run tests\n* Package project locally\n\nAny files changed by projen should be committed to git.\n\nRunning the tests like this will update any snapshot files, this should be reviewed and committed to git.\n\n## Testing\n\nTypes of testing:\n* Snapshot - projen project outputs are stored as a snapshot in the corresponding `__snapshots__` directory. When the project changes then it is expected that these snapshots change too and should be reviewed committed alongside the project.\n* Unit tests - these assert on specific functionality of the project and should be written for any new functionality added.\n\n\n## GitHub Configuration\n\nAll pull requests are merged by the [Mergify](https://mergify.com) merge queue, configured in `.mergify.yml`. Once a pull request's checks pass, Mergify queues it, brings it up to date with the default branch, waits for the checks again and squash merges it. Draft pull requests and those labelled `do-not-merge` are not merged.\n\nThe repository must be configured as below so that nothing can be merged without going through the queue.\n\n### Mergify\n\nInstall the [Mergify GitHub App](https://github.com/apps/mergify) and give it access to this repository.\n\n### Pull request settings\n\nIn **Settings → General → Pull Requests**:\n* Allow squash merging only (untick merge commits and rebase merging), matching the queue's merge method.\n* Untick **Allow auto-merge**, because GitHub's own auto-merge merges outside the queue.\n* Tick **Automatically delete head branches**.\n\n### Code scanning\n\nCodeQL runs from `.github/workflows/codeql.yml`, which is managed by projen. In **Settings → Advanced Security**, leave CodeQL **Default setup** off, because it cannot run alongside this workflow. Under **Protection rules**, keep the **Check run failure threshold** at **High or higher** for security alerts and **Errors** for other alerts, as this decides whether the `CodeQL` check fails. Private repositories also need GitHub Code Security enabled there for code scanning results to be uploaded.\n\n### Branch ruleset\n\nIn **Settings → Rules → Rulesets**, create a branch ruleset with enforcement **Active** that targets the default branch, and set:\n* **Bypass list**: the **Mergify** app only, in **Exempt** mode. Do not add admins or other roles, as anyone on this list can merge without the queue.\n* **Restrict updates**: only bypass actors can update the branch, so pull requests cannot be merged from the GitHub UI or CLI and commits cannot be pushed directly.\n* **Restrict deletions** and **Block force pushes**.\n* **Require a pull request before merging**, with 0 required approvals.\n* **Require status checks to pass**, listing the checks that `.mergify.yml` waits for: `build`, `package-js`, `package-python`. Leave **Require branches to be up to date before merging** unticked, as the queue already updates and retests each pull request.\n* **Require code scanning results**, with the tool **CodeQL**, security alerts set to **High or higher** and alerts set to **Errors**. Mergify is exempt from this rule, so `.mergify.yml` also waits for the `CodeQL` check instead.\n\nDo not enable GitHub's own **Require merge queue** rule, as it competes with Mergify.\n\nIf the queue is unavailable and a change has to be merged, add yourself to the bypass list temporarily and remove yourself afterwards.\n\n## Creating a New Project\n\n\n```\nnpx projen new {project} --from projen-modules\n```\n\nSome projects may have required fields that need to be specified as part of this command, review any errors for details what needs to be specified.\n\n### Project Types\n\n| Project type | Description |\n| ---------------------------------------------- | -------------------------- |\n| [cdk-typescript-app](API.md#cdktypescriptapp-) | A typescript CDK app |\n| [npm-package](API.md#npmpackage-) | A typescript npm package |\n| [python-package](API.md#pythonpackage-) | A python package |\n| [jsii-package](API.md#jsiiproject-) | A typescript JSII package |\n\n## Project Structure\n\nAll source is located in `src` and is grouped by:\n* `components` - these are common building blocks that can be used by projects to implement specific project functionality.\n* `projects` - these are projects that can be built from this project (see #something)\n* `utils` - these are helper functions that are often reused\n\n`test` contains tests, and mirrors the `src` directory structure. Within here there are `__snapshots__` which contain snapshots of project tests (see #section)."
102
+ "markdown": "# projen-modules\n\nA collection of custom projen modules, that can be used to bootstrap and maintain consistent project configuration, tooling, dependencies, and builds.\n\n## Getting Started\n\n```sh\nyarn install\nnpx projen build\n```\n\nThis will:\n* Install the dependencies\n* Apply any projen changes\n* Run tests\n* Package project locally\n\nAny files changed by projen should be committed to git.\n\nRunning the tests like this will update any snapshot files, this should be reviewed and committed to git.\n\n## Testing\n\nTypes of testing:\n* Snapshot - projen project outputs are stored as a snapshot in the corresponding `__snapshots__` directory. When the project changes then it is expected that these snapshots change too and should be reviewed committed alongside the project.\n* Unit tests - these assert on specific functionality of the project and should be written for any new functionality added.\n\n\n## GitHub Configuration\n\nAll pull requests are merged by the [Mergify](https://mergify.com) merge queue, configured in `.mergify.yml`. Once a pull request is approved, or is opened by `daveshepherd`, and its checks pass, Mergify queues it, brings it up to date with the default branch, waits for the checks again and squash merges it. Draft pull requests and those labelled `do-not-merge` are not merged.\n\nThe repository must be configured as below so that nothing can be merged without going through the queue.\n\n### Mergify\n\nInstall the [Mergify GitHub App](https://github.com/apps/mergify) and give it access to this repository.\n\n### Pull request settings\n\nIn **Settings → General → Pull Requests**:\n* Allow squash merging only (untick merge commits and rebase merging), matching the queue's merge method.\n* Untick **Allow auto-merge**, because GitHub's own auto-merge merges outside the queue.\n* Tick **Automatically delete head branches**.\n\n### Actions settings\n\nIn **Settings → Actions → General**, set **Approval for running fork pull request workflows from contributors** to **Require approval for all external contributors**. A pull request from a fork runs its own copy of the workflows, so it can change how the required checks pass.\n\n### Code scanning\n\nCodeQL runs from `.github/workflows/codeql.yml`, which is managed by projen. In **Settings → Advanced Security**, leave CodeQL **Default setup** off, because it cannot run alongside this workflow. Under **Protection rules**, keep the **Check run failure threshold** at **High or higher** for security alerts and **Errors** for other alerts, as this decides whether the `CodeQL` check fails. Private repositories also need GitHub Code Security enabled there for code scanning results to be uploaded.\n\n### Branch ruleset\n\nIn **Settings → Rules → Rulesets**, create a branch ruleset with enforcement **Active** that targets the default branch, and set:\n* **Bypass list**: the **Mergify** app only, in **Exempt** mode. Do not add admins or other roles, as anyone on this list can merge without the queue.\n* **Restrict updates**: only bypass actors can update the branch, so pull requests cannot be merged from the GitHub UI or CLI and commits cannot be pushed directly.\n* **Restrict deletions** and **Block force pushes**.\n* **Require a pull request before merging**, with 0 required approvals, because Mergify requires approvals itself for authors other than `daveshepherd` and is exempt from this rule. Tick **Dismiss stale pull request approvals when new commits are pushed**, so that commits pushed after an approval need approving again before the queue merges them.\n* **Require status checks to pass**, listing the checks that `.mergify.yml` waits for: `build`, `package-js`, `package-python`. Leave **Require branches to be up to date before merging** unticked, as the queue already updates and retests each pull request.\n* **Require code scanning results**, with the tool **CodeQL**, security alerts set to **High or higher** and alerts set to **Errors**. Mergify is exempt from this rule, so `.mergify.yml` also waits for the `CodeQL` check instead.\n\nDo not enable GitHub's own **Require merge queue** rule, as it competes with Mergify.\n\nIf the queue is unavailable and a change has to be merged, add yourself to the bypass list temporarily and remove yourself afterwards.\n\n## Creating a New Project\n\n\n```\nnpx projen new {project} --from projen-modules\n```\n\nSome projects may have required fields that need to be specified as part of this command, review any errors for details what needs to be specified.\n\n### Project Types\n\n| Project type | Description |\n| ---------------------------------------------- | -------------------------- |\n| [cdk-typescript-app](API.md#cdktypescriptapp-) | A typescript CDK app |\n| [npm-package](API.md#npmpackage-) | A typescript npm package |\n| [python-package](API.md#pythonpackage-) | A python package |\n| [jsii-package](API.md#jsiiproject-) | A typescript JSII package |\n\n## Project Structure\n\nAll source is located in `src` and is grouped by:\n* `components` - these are common building blocks that can be used by projects to implement specific project functionality.\n* `projects` - these are projects that can be built from this project (see #something)\n* `utils` - these are helper functions that are often reused\n\n`test` contains tests, and mirrors the `src` directory structure. Within here there are `__snapshots__` which contain snapshots of project tests (see #section)."
103
103
  },
104
104
  "repository": {
105
105
  "type": "git",
@@ -133,7 +133,7 @@
133
133
  },
134
134
  "locationInModule": {
135
135
  "filename": "src/projects/cdk-ts/index.ts",
136
- "line": 36
136
+ "line": 39
137
137
  },
138
138
  "parameters": [
139
139
  {
@@ -147,7 +147,7 @@
147
147
  "kind": "class",
148
148
  "locationInModule": {
149
149
  "filename": "src/projects/cdk-ts/index.ts",
150
- "line": 33
150
+ "line": 36
151
151
  },
152
152
  "name": "CdkTypeScriptApp",
153
153
  "properties": [
@@ -157,7 +157,7 @@
157
157
  },
158
158
  "locationInModule": {
159
159
  "filename": "src/projects/cdk-ts/index.ts",
160
- "line": 34
160
+ "line": 37
161
161
  },
162
162
  "name": "readme",
163
163
  "type": {
@@ -208,7 +208,7 @@
208
208
  "immutable": true,
209
209
  "locationInModule": {
210
210
  "filename": "src/projects/cdk-ts/cdk-typescript-app-options.ts",
211
- "line": 1275
211
+ "line": 1280
212
212
  },
213
213
  "name": "codeOwners",
214
214
  "type": {
@@ -933,7 +933,7 @@
933
933
  "immutable": true,
934
934
  "locationInModule": {
935
935
  "filename": "src/projects/cdk-ts/cdk-typescript-app-options.ts",
936
- "line": 1271
936
+ "line": 1276
937
937
  },
938
938
  "name": "codeql",
939
939
  "optional": true,
@@ -3151,6 +3151,29 @@
3151
3151
  "primitive": "string"
3152
3152
  }
3153
3153
  },
3154
+ {
3155
+ "abstract": true,
3156
+ "docs": {
3157
+ "default": "[]",
3158
+ "stability": "stable",
3159
+ "summary": "Authors whose pull requests the merge queue merges without an approval, such as the single maintainer of a repository, who cannot approve their own pull requests."
3160
+ },
3161
+ "immutable": true,
3162
+ "locationInModule": {
3163
+ "filename": "src/projects/cdk-ts/cdk-typescript-app-options.ts",
3164
+ "line": 1271
3165
+ },
3166
+ "name": "trustedAuthors",
3167
+ "optional": true,
3168
+ "type": {
3169
+ "collection": {
3170
+ "elementtype": {
3171
+ "primitive": "string"
3172
+ },
3173
+ "kind": "array"
3174
+ }
3175
+ }
3176
+ },
3154
3177
  {
3155
3178
  "abstract": true,
3156
3179
  "docs": {
@@ -3578,7 +3601,7 @@
3578
3601
  },
3579
3602
  "locationInModule": {
3580
3603
  "filename": "src/projects/jsii/index.ts",
3581
- "line": 34
3604
+ "line": 37
3582
3605
  },
3583
3606
  "parameters": [
3584
3607
  {
@@ -3592,7 +3615,7 @@
3592
3615
  "kind": "class",
3593
3616
  "locationInModule": {
3594
3617
  "filename": "src/projects/jsii/index.ts",
3595
- "line": 31
3618
+ "line": 34
3596
3619
  },
3597
3620
  "name": "JsiiProject",
3598
3621
  "properties": [
@@ -3602,7 +3625,7 @@
3602
3625
  },
3603
3626
  "locationInModule": {
3604
3627
  "filename": "src/projects/jsii/index.ts",
3605
- "line": 32
3628
+ "line": 35
3606
3629
  },
3607
3630
  "name": "readme",
3608
3631
  "type": {
@@ -3670,7 +3693,7 @@
3670
3693
  "immutable": true,
3671
3694
  "locationInModule": {
3672
3695
  "filename": "src/projects/jsii/jsii-project-options.ts",
3673
- "line": 1244
3696
+ "line": 1249
3674
3697
  },
3675
3698
  "name": "codeOwners",
3676
3699
  "type": {
@@ -4303,7 +4326,7 @@
4303
4326
  "immutable": true,
4304
4327
  "locationInModule": {
4305
4328
  "filename": "src/projects/jsii/jsii-project-options.ts",
4306
- "line": 1240
4329
+ "line": 1245
4307
4330
  },
4308
4331
  "name": "codeql",
4309
4332
  "optional": true,
@@ -6525,6 +6548,29 @@
6525
6548
  "primitive": "string"
6526
6549
  }
6527
6550
  },
6551
+ {
6552
+ "abstract": true,
6553
+ "docs": {
6554
+ "default": "[]",
6555
+ "stability": "stable",
6556
+ "summary": "Authors whose pull requests the merge queue merges without an approval, such as the single maintainer of a repository, who cannot approve their own pull requests."
6557
+ },
6558
+ "immutable": true,
6559
+ "locationInModule": {
6560
+ "filename": "src/projects/jsii/jsii-project-options.ts",
6561
+ "line": 1240
6562
+ },
6563
+ "name": "trustedAuthors",
6564
+ "optional": true,
6565
+ "type": {
6566
+ "collection": {
6567
+ "elementtype": {
6568
+ "primitive": "string"
6569
+ },
6570
+ "kind": "array"
6571
+ }
6572
+ }
6573
+ },
6528
6574
  {
6529
6575
  "abstract": true,
6530
6576
  "docs": {
@@ -6881,7 +6927,7 @@
6881
6927
  },
6882
6928
  "locationInModule": {
6883
6929
  "filename": "src/projects/npm/index.ts",
6884
- "line": 36
6930
+ "line": 39
6885
6931
  },
6886
6932
  "parameters": [
6887
6933
  {
@@ -6895,7 +6941,7 @@
6895
6941
  "kind": "class",
6896
6942
  "locationInModule": {
6897
6943
  "filename": "src/projects/npm/index.ts",
6898
- "line": 33
6944
+ "line": 36
6899
6945
  },
6900
6946
  "name": "NpmPackage",
6901
6947
  "properties": [
@@ -6905,7 +6951,7 @@
6905
6951
  },
6906
6952
  "locationInModule": {
6907
6953
  "filename": "src/projects/npm/index.ts",
6908
- "line": 34
6954
+ "line": 37
6909
6955
  },
6910
6956
  "name": "readme",
6911
6957
  "type": {
@@ -6939,7 +6985,7 @@
6939
6985
  "immutable": true,
6940
6986
  "locationInModule": {
6941
6987
  "filename": "src/projects/npm/npm-package-options.ts",
6942
- "line": 1135
6988
+ "line": 1140
6943
6989
  },
6944
6990
  "name": "codeOwners",
6945
6991
  "type": {
@@ -9552,6 +9598,29 @@
9552
9598
  "primitive": "string"
9553
9599
  }
9554
9600
  },
9601
+ {
9602
+ "abstract": true,
9603
+ "docs": {
9604
+ "default": "[]",
9605
+ "stability": "stable",
9606
+ "summary": "Authors whose pull requests the merge queue merges without an approval, such as the single maintainer of a repository, who cannot approve their own pull requests."
9607
+ },
9608
+ "immutable": true,
9609
+ "locationInModule": {
9610
+ "filename": "src/projects/npm/npm-package-options.ts",
9611
+ "line": 1136
9612
+ },
9613
+ "name": "trustedAuthors",
9614
+ "optional": true,
9615
+ "type": {
9616
+ "collection": {
9617
+ "elementtype": {
9618
+ "primitive": "string"
9619
+ },
9620
+ "kind": "array"
9621
+ }
9622
+ }
9623
+ },
9555
9624
  {
9556
9625
  "abstract": true,
9557
9626
  "docs": {
@@ -9889,7 +9958,7 @@
9889
9958
  },
9890
9959
  "locationInModule": {
9891
9960
  "filename": "src/projects/python/index.ts",
9892
- "line": 33
9961
+ "line": 36
9893
9962
  },
9894
9963
  "parameters": [
9895
9964
  {
@@ -9903,7 +9972,7 @@
9903
9972
  "kind": "class",
9904
9973
  "locationInModule": {
9905
9974
  "filename": "src/projects/python/index.ts",
9906
- "line": 29
9975
+ "line": 32
9907
9976
  },
9908
9977
  "name": "PythonPackage",
9909
9978
  "properties": [
@@ -9914,7 +9983,7 @@
9914
9983
  "immutable": true,
9915
9984
  "locationInModule": {
9916
9985
  "filename": "src/projects/python/index.ts",
9917
- "line": 30
9986
+ "line": 33
9918
9987
  },
9919
9988
  "name": "autoMerge",
9920
9989
  "optional": true,
@@ -9928,7 +9997,7 @@
9928
9997
  },
9929
9998
  "locationInModule": {
9930
9999
  "filename": "src/projects/python/index.ts",
9931
- "line": 31
10000
+ "line": 34
9932
10001
  },
9933
10002
  "name": "readme",
9934
10003
  "type": {
@@ -9996,7 +10065,7 @@
9996
10065
  "immutable": true,
9997
10066
  "locationInModule": {
9998
10067
  "filename": "src/projects/python/python-package-options.ts",
9999
- "line": 391
10068
+ "line": 396
10000
10069
  },
10001
10070
  "name": "codeOwners",
10002
10071
  "type": {
@@ -10172,7 +10241,7 @@
10172
10241
  "immutable": true,
10173
10242
  "locationInModule": {
10174
10243
  "filename": "src/projects/python/python-package-options.ts",
10175
- "line": 387
10244
+ "line": 392
10176
10245
  },
10177
10246
  "name": "codeql",
10178
10247
  "optional": true,
@@ -10756,7 +10825,7 @@
10756
10825
  "immutable": true,
10757
10826
  "locationInModule": {
10758
10827
  "filename": "src/projects/python/python-package-options.ts",
10759
- "line": 396
10828
+ "line": 401
10760
10829
  },
10761
10830
  "name": "pullRequestTemplate",
10762
10831
  "optional": true,
@@ -10774,7 +10843,7 @@
10774
10843
  "immutable": true,
10775
10844
  "locationInModule": {
10776
10845
  "filename": "src/projects/python/python-package-options.ts",
10777
- "line": 401
10846
+ "line": 406
10778
10847
  },
10779
10848
  "name": "pullRequestTemplateContents",
10780
10849
  "optional": true,
@@ -11015,6 +11084,29 @@
11015
11084
  "fqn": "projen.github.StaleOptions"
11016
11085
  }
11017
11086
  },
11087
+ {
11088
+ "abstract": true,
11089
+ "docs": {
11090
+ "default": "[]",
11091
+ "stability": "stable",
11092
+ "summary": "Authors whose pull requests the merge queue merges without an approval, such as the single maintainer of a repository, who cannot approve their own pull requests."
11093
+ },
11094
+ "immutable": true,
11095
+ "locationInModule": {
11096
+ "filename": "src/projects/python/python-package-options.ts",
11097
+ "line": 387
11098
+ },
11099
+ "name": "trustedAuthors",
11100
+ "optional": true,
11101
+ "type": {
11102
+ "collection": {
11103
+ "elementtype": {
11104
+ "primitive": "string"
11105
+ },
11106
+ "kind": "array"
11107
+ }
11108
+ }
11109
+ },
11018
11110
  {
11019
11111
  "abstract": true,
11020
11112
  "docs": {
@@ -11339,6 +11431,6 @@
11339
11431
  "symbolId": "src/components/readme/elements/section:Section"
11340
11432
  }
11341
11433
  },
11342
- "version": "3.2.1",
11343
- "fingerprint": "xYrTNM/TuzOK3VXmUrrhK8DdjQDExtvzEK87kM2c5zQ="
11434
+ "version": "3.2.3",
11435
+ "fingerprint": "LuGnubIoL1IhFnfdvVXi34r6KOCve17MM+TvfhK6+ss="
11344
11436
  }
package/API.md CHANGED
@@ -5802,6 +5802,7 @@ const cdkTypeScriptAppOptions: CdkTypeScriptAppOptions = { ... }
5802
5802
  | <code><a href="#projen-modules.CdkTypeScriptAppOptions.property.stale">stale</a></code> | <code>boolean</code> | Auto-close of stale issues and pull request. |
5803
5803
  | <code><a href="#projen-modules.CdkTypeScriptAppOptions.property.staleOptions">staleOptions</a></code> | <code>projen.github.StaleOptions</code> | Auto-close stale issues and pull requests. |
5804
5804
  | <code><a href="#projen-modules.CdkTypeScriptAppOptions.property.testdir">testdir</a></code> | <code>string</code> | Jest tests directory. |
5805
+ | <code><a href="#projen-modules.CdkTypeScriptAppOptions.property.trustedAuthors">trustedAuthors</a></code> | <code>string[]</code> | Authors whose pull requests the merge queue merges without an approval, such as the single maintainer of a repository, who cannot approve their own pull requests. |
5805
5806
  | <code><a href="#projen-modules.CdkTypeScriptAppOptions.property.tsconfig">tsconfig</a></code> | <code>projen.javascript.TypescriptConfigOptions</code> | Custom TSConfig. |
5806
5807
  | <code><a href="#projen-modules.CdkTypeScriptAppOptions.property.tsconfigDev">tsconfigDev</a></code> | <code>projen.javascript.TypescriptConfigOptions</code> | Custom tsconfig options for the development tsconfig.json file (used for testing). |
5807
5808
  | <code><a href="#projen-modules.CdkTypeScriptAppOptions.property.tsconfigDevFile">tsconfigDevFile</a></code> | <code>string</code> | The name (and path) of the development tsconfig file. |
@@ -8107,6 +8108,19 @@ compile the code in-memory.
8107
8108
 
8108
8109
  ---
8109
8110
 
8111
+ ##### `trustedAuthors`<sup>Optional</sup> <a name="trustedAuthors" id="projen-modules.CdkTypeScriptAppOptions.property.trustedAuthors"></a>
8112
+
8113
+ ```typescript
8114
+ public readonly trustedAuthors: string[];
8115
+ ```
8116
+
8117
+ - *Type:* string[]
8118
+ - *Default:* []
8119
+
8120
+ Authors whose pull requests the merge queue merges without an approval, such as the single maintainer of a repository, who cannot approve their own pull requests.
8121
+
8122
+ ---
8123
+
8110
8124
  ##### `tsconfig`<sup>Optional</sup> <a name="tsconfig" id="projen-modules.CdkTypeScriptAppOptions.property.tsconfig"></a>
8111
8125
 
8112
8126
  ```typescript
@@ -8528,6 +8542,7 @@ const jsiiProjectOptions: JsiiProjectOptions = { ... }
8528
8542
  | <code><a href="#projen-modules.JsiiProjectOptions.property.stale">stale</a></code> | <code>boolean</code> | Auto-close of stale issues and pull request. |
8529
8543
  | <code><a href="#projen-modules.JsiiProjectOptions.property.staleOptions">staleOptions</a></code> | <code>projen.github.StaleOptions</code> | Auto-close stale issues and pull requests. |
8530
8544
  | <code><a href="#projen-modules.JsiiProjectOptions.property.testdir">testdir</a></code> | <code>string</code> | Jest tests directory. |
8545
+ | <code><a href="#projen-modules.JsiiProjectOptions.property.trustedAuthors">trustedAuthors</a></code> | <code>string[]</code> | Authors whose pull requests the merge queue merges without an approval, such as the single maintainer of a repository, who cannot approve their own pull requests. |
8531
8546
  | <code><a href="#projen-modules.JsiiProjectOptions.property.tsconfig">tsconfig</a></code> | <code>projen.javascript.TypescriptConfigOptions</code> | Custom TSConfig. |
8532
8547
  | <code><a href="#projen-modules.JsiiProjectOptions.property.tsconfigDev">tsconfigDev</a></code> | <code>projen.javascript.TypescriptConfigOptions</code> | Custom tsconfig options for the development tsconfig.json file (used for testing). |
8533
8548
  | <code><a href="#projen-modules.JsiiProjectOptions.property.tsconfigDevFile">tsconfigDevFile</a></code> | <code>string</code> | The name (and path) of the development tsconfig file. |
@@ -10777,6 +10792,19 @@ compile the code in-memory.
10777
10792
 
10778
10793
  ---
10779
10794
 
10795
+ ##### `trustedAuthors`<sup>Optional</sup> <a name="trustedAuthors" id="projen-modules.JsiiProjectOptions.property.trustedAuthors"></a>
10796
+
10797
+ ```typescript
10798
+ public readonly trustedAuthors: string[];
10799
+ ```
10800
+
10801
+ - *Type:* string[]
10802
+ - *Default:* []
10803
+
10804
+ Authors whose pull requests the merge queue merges without an approval, such as the single maintainer of a repository, who cannot approve their own pull requests.
10805
+
10806
+ ---
10807
+
10780
10808
  ##### `tsconfig`<sup>Optional</sup> <a name="tsconfig" id="projen-modules.JsiiProjectOptions.property.tsconfig"></a>
10781
10809
 
10782
10810
  ```typescript
@@ -11173,6 +11201,7 @@ const npmPackageOptions: NpmPackageOptions = { ... }
11173
11201
  | <code><a href="#projen-modules.NpmPackageOptions.property.stale">stale</a></code> | <code>boolean</code> | Auto-close of stale issues and pull request. |
11174
11202
  | <code><a href="#projen-modules.NpmPackageOptions.property.staleOptions">staleOptions</a></code> | <code>projen.github.StaleOptions</code> | Auto-close stale issues and pull requests. |
11175
11203
  | <code><a href="#projen-modules.NpmPackageOptions.property.testdir">testdir</a></code> | <code>string</code> | Jest tests directory. |
11204
+ | <code><a href="#projen-modules.NpmPackageOptions.property.trustedAuthors">trustedAuthors</a></code> | <code>string[]</code> | Authors whose pull requests the merge queue merges without an approval, such as the single maintainer of a repository, who cannot approve their own pull requests. |
11176
11205
  | <code><a href="#projen-modules.NpmPackageOptions.property.tsconfig">tsconfig</a></code> | <code>projen.javascript.TypescriptConfigOptions</code> | Custom TSConfig. |
11177
11206
  | <code><a href="#projen-modules.NpmPackageOptions.property.tsconfigDev">tsconfigDev</a></code> | <code>projen.javascript.TypescriptConfigOptions</code> | Custom tsconfig options for the development tsconfig.json file (used for testing). |
11178
11207
  | <code><a href="#projen-modules.NpmPackageOptions.property.tsconfigDevFile">tsconfigDevFile</a></code> | <code>string</code> | The name (and path) of the development tsconfig file. |
@@ -13215,6 +13244,19 @@ compile the code in-memory.
13215
13244
 
13216
13245
  ---
13217
13246
 
13247
+ ##### `trustedAuthors`<sup>Optional</sup> <a name="trustedAuthors" id="projen-modules.NpmPackageOptions.property.trustedAuthors"></a>
13248
+
13249
+ ```typescript
13250
+ public readonly trustedAuthors: string[];
13251
+ ```
13252
+
13253
+ - *Type:* string[]
13254
+ - *Default:* []
13255
+
13256
+ Authors whose pull requests the merge queue merges without an approval, such as the single maintainer of a repository, who cannot approve their own pull requests.
13257
+
13258
+ ---
13259
+
13218
13260
  ##### `tsconfig`<sup>Optional</sup> <a name="tsconfig" id="projen-modules.NpmPackageOptions.property.tsconfig"></a>
13219
13261
 
13220
13262
  ```typescript
@@ -13512,6 +13554,7 @@ const pythonPackageOptions: PythonPackageOptions = { ... }
13512
13554
  | <code><a href="#projen-modules.PythonPackageOptions.property.setuptools">setuptools</a></code> | <code>boolean</code> | Use setuptools with a setup.py script for packaging and publishing. |
13513
13555
  | <code><a href="#projen-modules.PythonPackageOptions.property.stale">stale</a></code> | <code>boolean</code> | Auto-close of stale issues and pull request. |
13514
13556
  | <code><a href="#projen-modules.PythonPackageOptions.property.staleOptions">staleOptions</a></code> | <code>projen.github.StaleOptions</code> | Auto-close stale issues and pull requests. |
13557
+ | <code><a href="#projen-modules.PythonPackageOptions.property.trustedAuthors">trustedAuthors</a></code> | <code>string[]</code> | Authors whose pull requests the merge queue merges without an approval, such as the single maintainer of a repository, who cannot approve their own pull requests. |
13515
13558
  | <code><a href="#projen-modules.PythonPackageOptions.property.uv">uv</a></code> | <code>boolean</code> | Use uv to manage your project dependencies, virtual environment, and (optional) packaging/publishing. |
13516
13559
  | <code><a href="#projen-modules.PythonPackageOptions.property.uvOptions">uvOptions</a></code> | <code>projen.python.UvOptions</code> | Additional options to set for uv if using uv. |
13517
13560
  | <code><a href="#projen-modules.PythonPackageOptions.property.venv">venv</a></code> | <code>boolean</code> | Use venv to manage a virtual environment for installing dependencies inside. |
@@ -14278,6 +14321,19 @@ To disable set `stale` to `false`.
14278
14321
 
14279
14322
  ---
14280
14323
 
14324
+ ##### `trustedAuthors`<sup>Optional</sup> <a name="trustedAuthors" id="projen-modules.PythonPackageOptions.property.trustedAuthors"></a>
14325
+
14326
+ ```typescript
14327
+ public readonly trustedAuthors: string[];
14328
+ ```
14329
+
14330
+ - *Type:* string[]
14331
+ - *Default:* []
14332
+
14333
+ Authors whose pull requests the merge queue merges without an approval, such as the single maintainer of a repository, who cannot approve their own pull requests.
14334
+
14335
+ ---
14336
+
14281
14337
  ##### `uv`<sup>Optional</sup> <a name="uv" id="projen-modules.PythonPackageOptions.property.uv"></a>
14282
14338
 
14283
14339
  ```typescript
package/README.md CHANGED
@@ -28,7 +28,7 @@ Types of testing:
28
28
 
29
29
  ## GitHub Configuration
30
30
 
31
- All pull requests are merged by the [Mergify](https://mergify.com) merge queue, configured in `.mergify.yml`. Once a pull request's checks pass, Mergify queues it, brings it up to date with the default branch, waits for the checks again and squash merges it. Draft pull requests and those labelled `do-not-merge` are not merged.
31
+ All pull requests are merged by the [Mergify](https://mergify.com) merge queue, configured in `.mergify.yml`. Once a pull request is approved, or is opened by `daveshepherd`, and its checks pass, Mergify queues it, brings it up to date with the default branch, waits for the checks again and squash merges it. Draft pull requests and those labelled `do-not-merge` are not merged.
32
32
 
33
33
  The repository must be configured as below so that nothing can be merged without going through the queue.
34
34
 
@@ -43,6 +43,10 @@ In **Settings → General → Pull Requests**:
43
43
  * Untick **Allow auto-merge**, because GitHub's own auto-merge merges outside the queue.
44
44
  * Tick **Automatically delete head branches**.
45
45
 
46
+ ### Actions settings
47
+
48
+ In **Settings → Actions → General**, set **Approval for running fork pull request workflows from contributors** to **Require approval for all external contributors**. A pull request from a fork runs its own copy of the workflows, so it can change how the required checks pass.
49
+
46
50
  ### Code scanning
47
51
 
48
52
  CodeQL runs from `.github/workflows/codeql.yml`, which is managed by projen. In **Settings → Advanced Security**, leave CodeQL **Default setup** off, because it cannot run alongside this workflow. Under **Protection rules**, keep the **Check run failure threshold** at **High or higher** for security alerts and **Errors** for other alerts, as this decides whether the `CodeQL` check fails. Private repositories also need GitHub Code Security enabled there for code scanning results to be uploaded.
@@ -53,7 +57,7 @@ In **Settings → Rules → Rulesets**, create a branch ruleset with enforcement
53
57
  * **Bypass list**: the **Mergify** app only, in **Exempt** mode. Do not add admins or other roles, as anyone on this list can merge without the queue.
54
58
  * **Restrict updates**: only bypass actors can update the branch, so pull requests cannot be merged from the GitHub UI or CLI and commits cannot be pushed directly.
55
59
  * **Restrict deletions** and **Block force pushes**.
56
- * **Require a pull request before merging**, with 0 required approvals.
60
+ * **Require a pull request before merging**, with 0 required approvals, because Mergify requires approvals itself for authors other than `daveshepherd` and is exempt from this rule. Tick **Dismiss stale pull request approvals when new commits are pushed**, so that commits pushed after an approval need approving again before the queue merges them.
57
61
  * **Require status checks to pass**, listing the checks that `.mergify.yml` waits for: `build`, `package-js`, `package-python`. Leave **Require branches to be up to date before merging** unticked, as the queue already updates and retests each pull request.
58
62
  * **Require code scanning results**, with the tool **CodeQL**, security alerts set to **High or higher** and alerts set to **Errors**. Mergify is exempt from this rule, so `.mergify.yml` also waits for the `CodeQL` check instead.
59
63
 
@@ -3,14 +3,21 @@ import { Readme } from '../readme';
3
3
  export interface MergifyOptions {
4
4
  /**
5
5
  * Number of approving reviews the merge queue waits for, which should match
6
- * `autoMergeOptions.approvedReviews`. Use 0 for a repository with a single
7
- * maintainer, who cannot approve their own pull requests.
6
+ * `autoMergeOptions.approvedReviews`
8
7
  *
9
8
  * @default 1
10
9
  */
11
10
  readonly approvedReviews?: number;
12
11
  readonly assignUsers?: Array<string>;
13
12
  readonly reportingMethod?: string;
13
+ /**
14
+ * Authors whose pull requests the merge queue merges without an approval, such
15
+ * as the single maintainer of a repository, who cannot approve their own pull
16
+ * requests. Pull requests from anyone else still need `approvedReviews`.
17
+ *
18
+ * @default []
19
+ */
20
+ readonly trustedAuthors?: Array<string>;
14
21
  /**
15
22
  * Author of the projen upgrade pull requests that are automatically approved
16
23
  *
@@ -26,5 +33,13 @@ type MergifyProject = Project & {
26
33
  };
27
34
  readonly readme?: Readme;
28
35
  };
36
+ /**
37
+ * Options for projen's auto merge, which requires its approvals from every
38
+ * author, so with trusted authors `configureMergify` requires them instead
39
+ */
40
+ export declare function autoMergeOptions(options: {
41
+ readonly autoMergeOptions?: github.AutoMergeOptions;
42
+ readonly trustedAuthors?: Array<string>;
43
+ }): github.AutoMergeOptions | undefined;
29
44
  export declare function configureMergify(project: MergifyProject, options?: MergifyOptions): void;
30
45
  export {};