@macedon-technologies/batman 1.17.2 → 1.18.0
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 +205 -26
- package/.swamp.yaml +6 -0
- package/API.md +164 -1
- package/CLAUDE.md +44 -0
- package/architecture-rules/README.md +42 -0
- package/architecture-rules/check.ts +162 -0
- package/architecture-rules/rules.json +3 -0
- package/architecture-rules/tsconfig.json +14 -0
- package/attestation/manifest.ts +40 -0
- package/attestation/tsconfig.json +13 -0
- package/attestation/verify.ts +142 -0
- package/build-tools/scan-generated-workflows.ts +18 -11
- package/lib/Application.js +6 -1
- package/lib/BatmanProject.js +8 -2
- package/lib/BootcampProject.js +8 -2
- package/lib/CodeOwnersFile.js +1 -1
- package/lib/ProductionDeployWorkflow.js +1 -1
- package/lib/ProjenWorkflowHardening.d.ts +18 -0
- package/lib/ProjenWorkflowHardening.js +59 -0
- package/lib/SoftwareFactoryArchitectureRules.d.ts +10 -0
- package/lib/SoftwareFactoryArchitectureRules.js +245 -0
- package/lib/SoftwareFactoryAttestation.d.ts +18 -0
- package/lib/SoftwareFactoryAttestation.js +221 -0
- package/lib/SoftwareFactoryFiles.d.ts +45 -0
- package/lib/SoftwareFactoryFiles.js +102 -0
- package/lib/SoftwareFactoryModels.d.ts +25 -0
- package/lib/SoftwareFactoryModels.js +306 -0
- package/lib/SoftwareFactoryOpenSpecGates.d.ts +8 -0
- package/lib/SoftwareFactoryOpenSpecGates.js +75 -0
- package/lib/SoftwareFactoryWorkflows.d.ts +28 -0
- package/lib/SoftwareFactoryWorkflows.js +326 -0
- package/lib/StagingDeployWorkflow.js +1 -1
- package/lib/WorkflowActionVersions.d.ts +31 -1
- package/lib/WorkflowActionVersions.js +5 -1
- package/lib/WorkflowAutoDiscover.js +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +2 -1
- package/lib/utils.js +29 -1
- package/models/@goodcraft/github/platform-common-pr.yaml +10 -0
- package/models/@swamp/software-factory/platform-common-factory.yaml +240 -0
- package/models/@webframp/github/platform-common-issues.yaml +8 -0
- package/models/command/shell/platform-common-shell-architecture.yaml +8 -0
- package/models/command/shell/platform-common-shell-manifest.yaml +8 -0
- package/models/command/shell/platform-common-shell.yaml +8 -0
- package/openspec-gates/check-tasks-complete.ts +44 -0
- package/openspec-gates/tsconfig.json +13 -0
- package/package.json +6 -1
- package/workflows/workflow-openspec-plan-verify.yaml +51 -0
- package/workflows/workflow-openspec-tasks-verify.yaml +51 -0
- package/workflows/workflow-pre-pr-verify.yaml +118 -0
package/.jsii
CHANGED
|
@@ -123,7 +123,7 @@
|
|
|
123
123
|
"kind": "interface",
|
|
124
124
|
"locationInModule": {
|
|
125
125
|
"filename": "src/Application.ts",
|
|
126
|
-
"line":
|
|
126
|
+
"line": 21
|
|
127
127
|
},
|
|
128
128
|
"name": "ApplicationEnvironmentConfig",
|
|
129
129
|
"properties": [
|
|
@@ -135,7 +135,7 @@
|
|
|
135
135
|
"immutable": true,
|
|
136
136
|
"locationInModule": {
|
|
137
137
|
"filename": "src/Application.ts",
|
|
138
|
-
"line":
|
|
138
|
+
"line": 22
|
|
139
139
|
},
|
|
140
140
|
"name": "githubActionRoleArn",
|
|
141
141
|
"type": {
|
|
@@ -158,7 +158,7 @@
|
|
|
158
158
|
},
|
|
159
159
|
"locationInModule": {
|
|
160
160
|
"filename": "src/BatmanProject.ts",
|
|
161
|
-
"line":
|
|
161
|
+
"line": 64
|
|
162
162
|
},
|
|
163
163
|
"parameters": [
|
|
164
164
|
{
|
|
@@ -172,7 +172,7 @@
|
|
|
172
172
|
"kind": "class",
|
|
173
173
|
"locationInModule": {
|
|
174
174
|
"filename": "src/BatmanProject.ts",
|
|
175
|
-
"line":
|
|
175
|
+
"line": 63
|
|
176
176
|
},
|
|
177
177
|
"name": "BatmanProject",
|
|
178
178
|
"symbolId": "src/BatmanProject:BatmanProject"
|
|
@@ -190,7 +190,7 @@
|
|
|
190
190
|
"kind": "interface",
|
|
191
191
|
"locationInModule": {
|
|
192
192
|
"filename": "src/BatmanProject.ts",
|
|
193
|
-
"line":
|
|
193
|
+
"line": 12
|
|
194
194
|
},
|
|
195
195
|
"name": "BatmanProjectOptions",
|
|
196
196
|
"properties": [
|
|
@@ -203,7 +203,7 @@
|
|
|
203
203
|
"immutable": true,
|
|
204
204
|
"locationInModule": {
|
|
205
205
|
"filename": "src/BatmanProject.ts",
|
|
206
|
-
"line":
|
|
206
|
+
"line": 17
|
|
207
207
|
},
|
|
208
208
|
"name": "dev",
|
|
209
209
|
"type": {
|
|
@@ -219,7 +219,7 @@
|
|
|
219
219
|
"immutable": true,
|
|
220
220
|
"locationInModule": {
|
|
221
221
|
"filename": "src/BatmanProject.ts",
|
|
222
|
-
"line":
|
|
222
|
+
"line": 27
|
|
223
223
|
},
|
|
224
224
|
"name": "prod",
|
|
225
225
|
"type": {
|
|
@@ -235,7 +235,7 @@
|
|
|
235
235
|
"immutable": true,
|
|
236
236
|
"locationInModule": {
|
|
237
237
|
"filename": "src/BatmanProject.ts",
|
|
238
|
-
"line":
|
|
238
|
+
"line": 22
|
|
239
239
|
},
|
|
240
240
|
"name": "staging",
|
|
241
241
|
"type": {
|
|
@@ -251,7 +251,7 @@
|
|
|
251
251
|
"immutable": true,
|
|
252
252
|
"locationInModule": {
|
|
253
253
|
"filename": "src/BatmanProject.ts",
|
|
254
|
-
"line":
|
|
254
|
+
"line": 52
|
|
255
255
|
},
|
|
256
256
|
"name": "actionVersions",
|
|
257
257
|
"optional": true,
|
|
@@ -268,7 +268,7 @@
|
|
|
268
268
|
"immutable": true,
|
|
269
269
|
"locationInModule": {
|
|
270
270
|
"filename": "src/BatmanProject.ts",
|
|
271
|
-
"line":
|
|
271
|
+
"line": 42
|
|
272
272
|
},
|
|
273
273
|
"name": "additionalCodeOwners",
|
|
274
274
|
"optional": true,
|
|
@@ -290,7 +290,7 @@
|
|
|
290
290
|
"immutable": true,
|
|
291
291
|
"locationInModule": {
|
|
292
292
|
"filename": "src/BatmanProject.ts",
|
|
293
|
-
"line":
|
|
293
|
+
"line": 32
|
|
294
294
|
},
|
|
295
295
|
"name": "additionalTags",
|
|
296
296
|
"optional": true,
|
|
@@ -313,7 +313,7 @@
|
|
|
313
313
|
"immutable": true,
|
|
314
314
|
"locationInModule": {
|
|
315
315
|
"filename": "src/BatmanProject.ts",
|
|
316
|
-
"line":
|
|
316
|
+
"line": 59
|
|
317
317
|
},
|
|
318
318
|
"name": "authorizerObjectVersion",
|
|
319
319
|
"optional": true,
|
|
@@ -330,7 +330,7 @@
|
|
|
330
330
|
"immutable": true,
|
|
331
331
|
"locationInModule": {
|
|
332
332
|
"filename": "src/BatmanProject.ts",
|
|
333
|
-
"line":
|
|
333
|
+
"line": 37
|
|
334
334
|
},
|
|
335
335
|
"name": "n8nWorkflows",
|
|
336
336
|
"optional": true,
|
|
@@ -347,7 +347,7 @@
|
|
|
347
347
|
"immutable": true,
|
|
348
348
|
"locationInModule": {
|
|
349
349
|
"filename": "src/BatmanProject.ts",
|
|
350
|
-
"line":
|
|
350
|
+
"line": 47
|
|
351
351
|
},
|
|
352
352
|
"name": "websiteDeps",
|
|
353
353
|
"optional": true,
|
|
@@ -376,7 +376,7 @@
|
|
|
376
376
|
},
|
|
377
377
|
"locationInModule": {
|
|
378
378
|
"filename": "src/BootcampProject.ts",
|
|
379
|
-
"line":
|
|
379
|
+
"line": 18
|
|
380
380
|
},
|
|
381
381
|
"parameters": [
|
|
382
382
|
{
|
|
@@ -390,7 +390,7 @@
|
|
|
390
390
|
"kind": "class",
|
|
391
391
|
"locationInModule": {
|
|
392
392
|
"filename": "src/BootcampProject.ts",
|
|
393
|
-
"line":
|
|
393
|
+
"line": 17
|
|
394
394
|
},
|
|
395
395
|
"name": "BootcampProject",
|
|
396
396
|
"symbolId": "src/BootcampProject:BootcampProject"
|
|
@@ -408,7 +408,7 @@
|
|
|
408
408
|
"kind": "interface",
|
|
409
409
|
"locationInModule": {
|
|
410
410
|
"filename": "src/BootcampProject.ts",
|
|
411
|
-
"line":
|
|
411
|
+
"line": 13
|
|
412
412
|
},
|
|
413
413
|
"name": "BootcampProjectOptions",
|
|
414
414
|
"symbolId": "src/BootcampProject:BootcampProjectOptions"
|
|
@@ -780,6 +780,113 @@
|
|
|
780
780
|
],
|
|
781
781
|
"symbolId": "src/ProductionDeployWorkflow:ProductionDeployWorkflowOptions"
|
|
782
782
|
},
|
|
783
|
+
"@macedon-technologies/batman.SoftwareFactoryFiles": {
|
|
784
|
+
"assembly": "@macedon-technologies/batman",
|
|
785
|
+
"docs": {
|
|
786
|
+
"remarks": "What swamp itself would generate (extension docs pulled via\n`swamp extension pull`, `.swamp.yaml`, the vault, and the \"swamp managed\nsection\" in CLAUDE.md) is deliberately NOT hand-templated here — those are\nproduced by the real `swamp` CLI. `swamp init` is idempotent (a no-op if\nthe repo is already initialized), so it's wired into the project's\n`install`/`install:ci` tasks and runs automatically on every install,\nguarded so it's a silent no-op on a machine without `swamp` on PATH (e.g.\nCI). The extension pulls and vault creation are one-time, not idempotent\nin a way that's safe to repeat on every install, so they stay in the\n`swamp:bootstrap` task this construct adds. Only exman's own authored\nconfig (the factory's state machine, the architecture-rule engine, the\nattestation mechanism, the OpenSpec task-completion gate, and the 3 swamp\nworkflows that wire them together) is templated.",
|
|
787
|
+
"stability": "stable",
|
|
788
|
+
"summary": "Backports exman's swamp \"software factory\" pattern (macedon-technologies/exman#13) as generated scaffolding: a `@swamp/software-factory` state machine that drives a GitHub issue from intake through an opened PR, enforcing OpenSpec usage, an architecture rule registry, and a pre-PR verification gate whose attestation is re-checked at merge time."
|
|
789
|
+
},
|
|
790
|
+
"fqn": "@macedon-technologies/batman.SoftwareFactoryFiles",
|
|
791
|
+
"initializer": {
|
|
792
|
+
"docs": {
|
|
793
|
+
"stability": "stable"
|
|
794
|
+
},
|
|
795
|
+
"locationInModule": {
|
|
796
|
+
"filename": "src/SoftwareFactoryFiles.ts",
|
|
797
|
+
"line": 55
|
|
798
|
+
},
|
|
799
|
+
"parameters": [
|
|
800
|
+
{
|
|
801
|
+
"name": "project",
|
|
802
|
+
"type": {
|
|
803
|
+
"fqn": "projen.javascript.NodeProject"
|
|
804
|
+
}
|
|
805
|
+
},
|
|
806
|
+
{
|
|
807
|
+
"name": "options",
|
|
808
|
+
"type": {
|
|
809
|
+
"fqn": "@macedon-technologies/batman.SoftwareFactoryFilesOptions"
|
|
810
|
+
}
|
|
811
|
+
}
|
|
812
|
+
]
|
|
813
|
+
},
|
|
814
|
+
"kind": "class",
|
|
815
|
+
"locationInModule": {
|
|
816
|
+
"filename": "src/SoftwareFactoryFiles.ts",
|
|
817
|
+
"line": 54
|
|
818
|
+
},
|
|
819
|
+
"name": "SoftwareFactoryFiles",
|
|
820
|
+
"symbolId": "src/SoftwareFactoryFiles:SoftwareFactoryFiles"
|
|
821
|
+
},
|
|
822
|
+
"@macedon-technologies/batman.SoftwareFactoryFilesOptions": {
|
|
823
|
+
"assembly": "@macedon-technologies/batman",
|
|
824
|
+
"datatype": true,
|
|
825
|
+
"docs": {
|
|
826
|
+
"stability": "stable"
|
|
827
|
+
},
|
|
828
|
+
"fqn": "@macedon-technologies/batman.SoftwareFactoryFilesOptions",
|
|
829
|
+
"kind": "interface",
|
|
830
|
+
"locationInModule": {
|
|
831
|
+
"filename": "src/SoftwareFactoryFiles.ts",
|
|
832
|
+
"line": 11
|
|
833
|
+
},
|
|
834
|
+
"name": "SoftwareFactoryFilesOptions",
|
|
835
|
+
"properties": [
|
|
836
|
+
{
|
|
837
|
+
"abstract": true,
|
|
838
|
+
"docs": {
|
|
839
|
+
"stability": "stable",
|
|
840
|
+
"summary": "The bare repo name (e.g. `expense-tracker`), used to derive the factory's model names (`<repoName>-factory`, `<repoName>-issues`, `<repoName>-pr`, `<repoName>-shell*`) and vault name (`<repoName>-secrets`)."
|
|
841
|
+
},
|
|
842
|
+
"immutable": true,
|
|
843
|
+
"locationInModule": {
|
|
844
|
+
"filename": "src/SoftwareFactoryFiles.ts",
|
|
845
|
+
"line": 17
|
|
846
|
+
},
|
|
847
|
+
"name": "repoName",
|
|
848
|
+
"type": {
|
|
849
|
+
"primitive": "string"
|
|
850
|
+
}
|
|
851
|
+
},
|
|
852
|
+
{
|
|
853
|
+
"abstract": true,
|
|
854
|
+
"docs": {
|
|
855
|
+
"stability": "stable",
|
|
856
|
+
"summary": "Overrides for the pinned action versions used by `verify-attestation.yml`."
|
|
857
|
+
},
|
|
858
|
+
"immutable": true,
|
|
859
|
+
"locationInModule": {
|
|
860
|
+
"filename": "src/SoftwareFactoryFiles.ts",
|
|
861
|
+
"line": 29
|
|
862
|
+
},
|
|
863
|
+
"name": "actionVersions",
|
|
864
|
+
"optional": true,
|
|
865
|
+
"type": {
|
|
866
|
+
"fqn": "@macedon-technologies/batman.WorkflowActionVersions"
|
|
867
|
+
}
|
|
868
|
+
},
|
|
869
|
+
{
|
|
870
|
+
"abstract": true,
|
|
871
|
+
"docs": {
|
|
872
|
+
"default": "'main'",
|
|
873
|
+
"stability": "stable",
|
|
874
|
+
"summary": "The branch the factory opens pull requests against."
|
|
875
|
+
},
|
|
876
|
+
"immutable": true,
|
|
877
|
+
"locationInModule": {
|
|
878
|
+
"filename": "src/SoftwareFactoryFiles.ts",
|
|
879
|
+
"line": 24
|
|
880
|
+
},
|
|
881
|
+
"name": "baseBranch",
|
|
882
|
+
"optional": true,
|
|
883
|
+
"type": {
|
|
884
|
+
"primitive": "string"
|
|
885
|
+
}
|
|
886
|
+
}
|
|
887
|
+
],
|
|
888
|
+
"symbolId": "src/SoftwareFactoryFiles:SoftwareFactoryFilesOptions"
|
|
889
|
+
},
|
|
783
890
|
"@macedon-technologies/batman.StagingDeployWorkflow": {
|
|
784
891
|
"assembly": "@macedon-technologies/batman",
|
|
785
892
|
"base": "projen.YamlFile",
|
|
@@ -918,13 +1025,13 @@
|
|
|
918
1025
|
"docs": {
|
|
919
1026
|
"remarks": "zizmor flags unpinned `uses:` references as a high-severity finding\n(https://docs.zizmor.sh/audits/#unpinned-uses) because a mutable tag can be\nrepointed to different code after review. Every field here can be\noverridden by consumers who need a different pinned SHA (e.g. to pick up a\nnewer release before this package does).",
|
|
920
1027
|
"stability": "stable",
|
|
921
|
-
"summary": "SHA-pinned action references used by the generated deploy/cleanup workflows."
|
|
1028
|
+
"summary": "SHA-pinned action references used by the generated deploy/cleanup workflows, and applied to the workflows AwsCdkTypeScriptApp generates on its own (upgrade.yml, pull-request-lint.yml) via `hardenProjenGeneratedWorkflows` — see `ProjenWorkflowHardening.ts`."
|
|
922
1029
|
},
|
|
923
1030
|
"fqn": "@macedon-technologies/batman.WorkflowActionVersions",
|
|
924
1031
|
"kind": "interface",
|
|
925
1032
|
"locationInModule": {
|
|
926
1033
|
"filename": "src/WorkflowActionVersions.ts",
|
|
927
|
-
"line":
|
|
1034
|
+
"line": 12
|
|
928
1035
|
},
|
|
929
1036
|
"name": "WorkflowActionVersions",
|
|
930
1037
|
"properties": [
|
|
@@ -938,7 +1045,7 @@
|
|
|
938
1045
|
"immutable": true,
|
|
939
1046
|
"locationInModule": {
|
|
940
1047
|
"filename": "src/WorkflowActionVersions.ts",
|
|
941
|
-
"line":
|
|
1048
|
+
"line": 18
|
|
942
1049
|
},
|
|
943
1050
|
"name": "checkout",
|
|
944
1051
|
"optional": true,
|
|
@@ -956,7 +1063,7 @@
|
|
|
956
1063
|
"immutable": true,
|
|
957
1064
|
"locationInModule": {
|
|
958
1065
|
"filename": "src/WorkflowActionVersions.ts",
|
|
959
|
-
"line":
|
|
1066
|
+
"line": 32
|
|
960
1067
|
},
|
|
961
1068
|
"name": "configureAwsCredentials",
|
|
962
1069
|
"optional": true,
|
|
@@ -964,6 +1071,42 @@
|
|
|
964
1071
|
"primitive": "string"
|
|
965
1072
|
}
|
|
966
1073
|
},
|
|
1074
|
+
{
|
|
1075
|
+
"abstract": true,
|
|
1076
|
+
"docs": {
|
|
1077
|
+
"default": "'peter-evans/create-pull-request@5f6978faf089d4d20b00c7766989d076bb2fc7f1' // v8.1.1",
|
|
1078
|
+
"stability": "stable",
|
|
1079
|
+
"summary": "The `peter-evans/create-pull-request` action reference, used by projen's built-in dependency-upgrade workflow to open the upgrade PR."
|
|
1080
|
+
},
|
|
1081
|
+
"immutable": true,
|
|
1082
|
+
"locationInModule": {
|
|
1083
|
+
"filename": "src/WorkflowActionVersions.ts",
|
|
1084
|
+
"line": 54
|
|
1085
|
+
},
|
|
1086
|
+
"name": "createPullRequest",
|
|
1087
|
+
"optional": true,
|
|
1088
|
+
"type": {
|
|
1089
|
+
"primitive": "string"
|
|
1090
|
+
}
|
|
1091
|
+
},
|
|
1092
|
+
{
|
|
1093
|
+
"abstract": true,
|
|
1094
|
+
"docs": {
|
|
1095
|
+
"default": "'actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c' // v8",
|
|
1096
|
+
"stability": "stable",
|
|
1097
|
+
"summary": "The `actions/download-artifact` action reference, used by projen's built-in dependency-upgrade workflow to pass the upgrade patch between jobs."
|
|
1098
|
+
},
|
|
1099
|
+
"immutable": true,
|
|
1100
|
+
"locationInModule": {
|
|
1101
|
+
"filename": "src/WorkflowActionVersions.ts",
|
|
1102
|
+
"line": 70
|
|
1103
|
+
},
|
|
1104
|
+
"name": "downloadArtifact",
|
|
1105
|
+
"optional": true,
|
|
1106
|
+
"type": {
|
|
1107
|
+
"primitive": "string"
|
|
1108
|
+
}
|
|
1109
|
+
},
|
|
967
1110
|
{
|
|
968
1111
|
"abstract": true,
|
|
969
1112
|
"docs": {
|
|
@@ -974,7 +1117,7 @@
|
|
|
974
1117
|
"immutable": true,
|
|
975
1118
|
"locationInModule": {
|
|
976
1119
|
"filename": "src/WorkflowActionVersions.ts",
|
|
977
|
-
"line":
|
|
1120
|
+
"line": 46
|
|
978
1121
|
},
|
|
979
1122
|
"name": "githubScript",
|
|
980
1123
|
"optional": true,
|
|
@@ -992,7 +1135,7 @@
|
|
|
992
1135
|
"immutable": true,
|
|
993
1136
|
"locationInModule": {
|
|
994
1137
|
"filename": "src/WorkflowActionVersions.ts",
|
|
995
|
-
"line":
|
|
1138
|
+
"line": 39
|
|
996
1139
|
},
|
|
997
1140
|
"name": "pnpmActionSetup",
|
|
998
1141
|
"optional": true,
|
|
@@ -1000,6 +1143,24 @@
|
|
|
1000
1143
|
"primitive": "string"
|
|
1001
1144
|
}
|
|
1002
1145
|
},
|
|
1146
|
+
{
|
|
1147
|
+
"abstract": true,
|
|
1148
|
+
"docs": {
|
|
1149
|
+
"default": "'amannn/action-semantic-pull-request@48f256284bd46cdaab1048c3721360e808335d50' // v6.1.1",
|
|
1150
|
+
"stability": "stable",
|
|
1151
|
+
"summary": "The `amannn/action-semantic-pull-request` action reference, used by projen's built-in pull-request-lint workflow to validate PR titles."
|
|
1152
|
+
},
|
|
1153
|
+
"immutable": true,
|
|
1154
|
+
"locationInModule": {
|
|
1155
|
+
"filename": "src/WorkflowActionVersions.ts",
|
|
1156
|
+
"line": 78
|
|
1157
|
+
},
|
|
1158
|
+
"name": "semanticPullRequest",
|
|
1159
|
+
"optional": true,
|
|
1160
|
+
"type": {
|
|
1161
|
+
"primitive": "string"
|
|
1162
|
+
}
|
|
1163
|
+
},
|
|
1003
1164
|
{
|
|
1004
1165
|
"abstract": true,
|
|
1005
1166
|
"docs": {
|
|
@@ -1010,13 +1171,31 @@
|
|
|
1010
1171
|
"immutable": true,
|
|
1011
1172
|
"locationInModule": {
|
|
1012
1173
|
"filename": "src/WorkflowActionVersions.ts",
|
|
1013
|
-
"line":
|
|
1174
|
+
"line": 25
|
|
1014
1175
|
},
|
|
1015
1176
|
"name": "setupNode",
|
|
1016
1177
|
"optional": true,
|
|
1017
1178
|
"type": {
|
|
1018
1179
|
"primitive": "string"
|
|
1019
1180
|
}
|
|
1181
|
+
},
|
|
1182
|
+
{
|
|
1183
|
+
"abstract": true,
|
|
1184
|
+
"docs": {
|
|
1185
|
+
"default": "'actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a' // v7",
|
|
1186
|
+
"stability": "stable",
|
|
1187
|
+
"summary": "The `actions/upload-artifact` action reference, used by projen's built-in dependency-upgrade workflow to pass the upgrade patch between jobs."
|
|
1188
|
+
},
|
|
1189
|
+
"immutable": true,
|
|
1190
|
+
"locationInModule": {
|
|
1191
|
+
"filename": "src/WorkflowActionVersions.ts",
|
|
1192
|
+
"line": 62
|
|
1193
|
+
},
|
|
1194
|
+
"name": "uploadArtifact",
|
|
1195
|
+
"optional": true,
|
|
1196
|
+
"type": {
|
|
1197
|
+
"primitive": "string"
|
|
1198
|
+
}
|
|
1020
1199
|
}
|
|
1021
1200
|
],
|
|
1022
1201
|
"symbolId": "src/WorkflowActionVersions:WorkflowActionVersions"
|
|
@@ -1068,6 +1247,6 @@
|
|
|
1068
1247
|
"symbolId": "src/WorkflowAutoDiscover:WorkflowAutoDiscover"
|
|
1069
1248
|
}
|
|
1070
1249
|
},
|
|
1071
|
-
"version": "1.
|
|
1072
|
-
"fingerprint": "
|
|
1250
|
+
"version": "1.18.0",
|
|
1251
|
+
"fingerprint": "JZfOtlClOJntadBGRkaeJ0IXkGuwwTH6CJrv4+kfKYI="
|
|
1073
1252
|
}
|
package/.swamp.yaml
ADDED
package/API.md
CHANGED
|
@@ -10572,6 +10572,63 @@ Overrides for the pinned action versions used by this workflow.
|
|
|
10572
10572
|
|
|
10573
10573
|
---
|
|
10574
10574
|
|
|
10575
|
+
### SoftwareFactoryFilesOptions <a name="SoftwareFactoryFilesOptions" id="@macedon-technologies/batman.SoftwareFactoryFilesOptions"></a>
|
|
10576
|
+
|
|
10577
|
+
#### Initializer <a name="Initializer" id="@macedon-technologies/batman.SoftwareFactoryFilesOptions.Initializer"></a>
|
|
10578
|
+
|
|
10579
|
+
```typescript
|
|
10580
|
+
import { SoftwareFactoryFilesOptions } from '@macedon-technologies/batman'
|
|
10581
|
+
|
|
10582
|
+
const softwareFactoryFilesOptions: SoftwareFactoryFilesOptions = { ... }
|
|
10583
|
+
```
|
|
10584
|
+
|
|
10585
|
+
#### Properties <a name="Properties" id="Properties"></a>
|
|
10586
|
+
|
|
10587
|
+
| **Name** | **Type** | **Description** |
|
|
10588
|
+
| --- | --- | --- |
|
|
10589
|
+
| <code><a href="#@macedon-technologies/batman.SoftwareFactoryFilesOptions.property.repoName">repoName</a></code> | <code>string</code> | The bare repo name (e.g. `expense-tracker`), used to derive the factory's model names (`<repoName>-factory`, `<repoName>-issues`, `<repoName>-pr`, `<repoName>-shell*`) and vault name (`<repoName>-secrets`). |
|
|
10590
|
+
| <code><a href="#@macedon-technologies/batman.SoftwareFactoryFilesOptions.property.actionVersions">actionVersions</a></code> | <code><a href="#@macedon-technologies/batman.WorkflowActionVersions">WorkflowActionVersions</a></code> | Overrides for the pinned action versions used by `verify-attestation.yml`. |
|
|
10591
|
+
| <code><a href="#@macedon-technologies/batman.SoftwareFactoryFilesOptions.property.baseBranch">baseBranch</a></code> | <code>string</code> | The branch the factory opens pull requests against. |
|
|
10592
|
+
|
|
10593
|
+
---
|
|
10594
|
+
|
|
10595
|
+
##### `repoName`<sup>Required</sup> <a name="repoName" id="@macedon-technologies/batman.SoftwareFactoryFilesOptions.property.repoName"></a>
|
|
10596
|
+
|
|
10597
|
+
```typescript
|
|
10598
|
+
public readonly repoName: string;
|
|
10599
|
+
```
|
|
10600
|
+
|
|
10601
|
+
- *Type:* string
|
|
10602
|
+
|
|
10603
|
+
The bare repo name (e.g. `expense-tracker`), used to derive the factory's model names (`<repoName>-factory`, `<repoName>-issues`, `<repoName>-pr`, `<repoName>-shell*`) and vault name (`<repoName>-secrets`).
|
|
10604
|
+
|
|
10605
|
+
---
|
|
10606
|
+
|
|
10607
|
+
##### `actionVersions`<sup>Optional</sup> <a name="actionVersions" id="@macedon-technologies/batman.SoftwareFactoryFilesOptions.property.actionVersions"></a>
|
|
10608
|
+
|
|
10609
|
+
```typescript
|
|
10610
|
+
public readonly actionVersions: WorkflowActionVersions;
|
|
10611
|
+
```
|
|
10612
|
+
|
|
10613
|
+
- *Type:* <a href="#@macedon-technologies/batman.WorkflowActionVersions">WorkflowActionVersions</a>
|
|
10614
|
+
|
|
10615
|
+
Overrides for the pinned action versions used by `verify-attestation.yml`.
|
|
10616
|
+
|
|
10617
|
+
---
|
|
10618
|
+
|
|
10619
|
+
##### `baseBranch`<sup>Optional</sup> <a name="baseBranch" id="@macedon-technologies/batman.SoftwareFactoryFilesOptions.property.baseBranch"></a>
|
|
10620
|
+
|
|
10621
|
+
```typescript
|
|
10622
|
+
public readonly baseBranch: string;
|
|
10623
|
+
```
|
|
10624
|
+
|
|
10625
|
+
- *Type:* string
|
|
10626
|
+
- *Default:* 'main'
|
|
10627
|
+
|
|
10628
|
+
The branch the factory opens pull requests against.
|
|
10629
|
+
|
|
10630
|
+
---
|
|
10631
|
+
|
|
10575
10632
|
### StagingDeployWorkflowOptions <a name="StagingDeployWorkflowOptions" id="@macedon-technologies/batman.StagingDeployWorkflowOptions"></a>
|
|
10576
10633
|
|
|
10577
10634
|
#### Initializer <a name="Initializer" id="@macedon-technologies/batman.StagingDeployWorkflowOptions.Initializer"></a>
|
|
@@ -10648,7 +10705,7 @@ Overrides for the pinned action versions used by this workflow.
|
|
|
10648
10705
|
|
|
10649
10706
|
### WorkflowActionVersions <a name="WorkflowActionVersions" id="@macedon-technologies/batman.WorkflowActionVersions"></a>
|
|
10650
10707
|
|
|
10651
|
-
SHA-pinned action references used by the generated deploy/cleanup workflows.
|
|
10708
|
+
SHA-pinned action references used by the generated deploy/cleanup workflows, and applied to the workflows AwsCdkTypeScriptApp generates on its own (upgrade.yml, pull-request-lint.yml) via `hardenProjenGeneratedWorkflows` — see `ProjenWorkflowHardening.ts`.
|
|
10652
10709
|
|
|
10653
10710
|
zizmor flags unpinned `uses:` references as a high-severity finding
|
|
10654
10711
|
(https://docs.zizmor.sh/audits/#unpinned-uses) because a mutable tag can be
|
|
@@ -10670,9 +10727,13 @@ const workflowActionVersions: WorkflowActionVersions = { ... }
|
|
|
10670
10727
|
| --- | --- | --- |
|
|
10671
10728
|
| <code><a href="#@macedon-technologies/batman.WorkflowActionVersions.property.checkout">checkout</a></code> | <code>string</code> | The `actions/checkout` action reference. |
|
|
10672
10729
|
| <code><a href="#@macedon-technologies/batman.WorkflowActionVersions.property.configureAwsCredentials">configureAwsCredentials</a></code> | <code>string</code> | The `aws-actions/configure-aws-credentials` action reference. |
|
|
10730
|
+
| <code><a href="#@macedon-technologies/batman.WorkflowActionVersions.property.createPullRequest">createPullRequest</a></code> | <code>string</code> | The `peter-evans/create-pull-request` action reference, used by projen's built-in dependency-upgrade workflow to open the upgrade PR. |
|
|
10731
|
+
| <code><a href="#@macedon-technologies/batman.WorkflowActionVersions.property.downloadArtifact">downloadArtifact</a></code> | <code>string</code> | The `actions/download-artifact` action reference, used by projen's built-in dependency-upgrade workflow to pass the upgrade patch between jobs. |
|
|
10673
10732
|
| <code><a href="#@macedon-technologies/batman.WorkflowActionVersions.property.githubScript">githubScript</a></code> | <code>string</code> | The `actions/github-script` action reference. |
|
|
10674
10733
|
| <code><a href="#@macedon-technologies/batman.WorkflowActionVersions.property.pnpmActionSetup">pnpmActionSetup</a></code> | <code>string</code> | The `pnpm/action-setup` action reference, used when the project's package manager is pnpm. |
|
|
10734
|
+
| <code><a href="#@macedon-technologies/batman.WorkflowActionVersions.property.semanticPullRequest">semanticPullRequest</a></code> | <code>string</code> | The `amannn/action-semantic-pull-request` action reference, used by projen's built-in pull-request-lint workflow to validate PR titles. |
|
|
10675
10735
|
| <code><a href="#@macedon-technologies/batman.WorkflowActionVersions.property.setupNode">setupNode</a></code> | <code>string</code> | The `actions/setup-node` action reference. |
|
|
10736
|
+
| <code><a href="#@macedon-technologies/batman.WorkflowActionVersions.property.uploadArtifact">uploadArtifact</a></code> | <code>string</code> | The `actions/upload-artifact` action reference, used by projen's built-in dependency-upgrade workflow to pass the upgrade patch between jobs. |
|
|
10676
10737
|
|
|
10677
10738
|
---
|
|
10678
10739
|
|
|
@@ -10702,6 +10763,32 @@ The `aws-actions/configure-aws-credentials` action reference.
|
|
|
10702
10763
|
|
|
10703
10764
|
---
|
|
10704
10765
|
|
|
10766
|
+
##### `createPullRequest`<sup>Optional</sup> <a name="createPullRequest" id="@macedon-technologies/batman.WorkflowActionVersions.property.createPullRequest"></a>
|
|
10767
|
+
|
|
10768
|
+
```typescript
|
|
10769
|
+
public readonly createPullRequest: string;
|
|
10770
|
+
```
|
|
10771
|
+
|
|
10772
|
+
- *Type:* string
|
|
10773
|
+
- *Default:* 'peter-evans/create-pull-request@5f6978faf089d4d20b00c7766989d076bb2fc7f1' // v8.1.1
|
|
10774
|
+
|
|
10775
|
+
The `peter-evans/create-pull-request` action reference, used by projen's built-in dependency-upgrade workflow to open the upgrade PR.
|
|
10776
|
+
|
|
10777
|
+
---
|
|
10778
|
+
|
|
10779
|
+
##### `downloadArtifact`<sup>Optional</sup> <a name="downloadArtifact" id="@macedon-technologies/batman.WorkflowActionVersions.property.downloadArtifact"></a>
|
|
10780
|
+
|
|
10781
|
+
```typescript
|
|
10782
|
+
public readonly downloadArtifact: string;
|
|
10783
|
+
```
|
|
10784
|
+
|
|
10785
|
+
- *Type:* string
|
|
10786
|
+
- *Default:* 'actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c' // v8
|
|
10787
|
+
|
|
10788
|
+
The `actions/download-artifact` action reference, used by projen's built-in dependency-upgrade workflow to pass the upgrade patch between jobs.
|
|
10789
|
+
|
|
10790
|
+
---
|
|
10791
|
+
|
|
10705
10792
|
##### `githubScript`<sup>Optional</sup> <a name="githubScript" id="@macedon-technologies/batman.WorkflowActionVersions.property.githubScript"></a>
|
|
10706
10793
|
|
|
10707
10794
|
```typescript
|
|
@@ -10728,6 +10815,19 @@ The `pnpm/action-setup` action reference, used when the project's package manage
|
|
|
10728
10815
|
|
|
10729
10816
|
---
|
|
10730
10817
|
|
|
10818
|
+
##### `semanticPullRequest`<sup>Optional</sup> <a name="semanticPullRequest" id="@macedon-technologies/batman.WorkflowActionVersions.property.semanticPullRequest"></a>
|
|
10819
|
+
|
|
10820
|
+
```typescript
|
|
10821
|
+
public readonly semanticPullRequest: string;
|
|
10822
|
+
```
|
|
10823
|
+
|
|
10824
|
+
- *Type:* string
|
|
10825
|
+
- *Default:* 'amannn/action-semantic-pull-request@48f256284bd46cdaab1048c3721360e808335d50' // v6.1.1
|
|
10826
|
+
|
|
10827
|
+
The `amannn/action-semantic-pull-request` action reference, used by projen's built-in pull-request-lint workflow to validate PR titles.
|
|
10828
|
+
|
|
10829
|
+
---
|
|
10830
|
+
|
|
10731
10831
|
##### `setupNode`<sup>Optional</sup> <a name="setupNode" id="@macedon-technologies/batman.WorkflowActionVersions.property.setupNode"></a>
|
|
10732
10832
|
|
|
10733
10833
|
```typescript
|
|
@@ -10741,5 +10841,68 @@ The `actions/setup-node` action reference.
|
|
|
10741
10841
|
|
|
10742
10842
|
---
|
|
10743
10843
|
|
|
10844
|
+
##### `uploadArtifact`<sup>Optional</sup> <a name="uploadArtifact" id="@macedon-technologies/batman.WorkflowActionVersions.property.uploadArtifact"></a>
|
|
10845
|
+
|
|
10846
|
+
```typescript
|
|
10847
|
+
public readonly uploadArtifact: string;
|
|
10848
|
+
```
|
|
10849
|
+
|
|
10850
|
+
- *Type:* string
|
|
10851
|
+
- *Default:* 'actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a' // v7
|
|
10852
|
+
|
|
10853
|
+
The `actions/upload-artifact` action reference, used by projen's built-in dependency-upgrade workflow to pass the upgrade patch between jobs.
|
|
10854
|
+
|
|
10855
|
+
---
|
|
10856
|
+
|
|
10857
|
+
## Classes <a name="Classes" id="Classes"></a>
|
|
10858
|
+
|
|
10859
|
+
### SoftwareFactoryFiles <a name="SoftwareFactoryFiles" id="@macedon-technologies/batman.SoftwareFactoryFiles"></a>
|
|
10860
|
+
|
|
10861
|
+
Backports exman's swamp "software factory" pattern (macedon-technologies/exman#13) as generated scaffolding: a `@swamp/software-factory` state machine that drives a GitHub issue from intake through an opened PR, enforcing OpenSpec usage, an architecture rule registry, and a pre-PR verification gate whose attestation is re-checked at merge time.
|
|
10862
|
+
|
|
10863
|
+
What swamp itself would generate (extension docs pulled via
|
|
10864
|
+
`swamp extension pull`, `.swamp.yaml`, the vault, and the "swamp managed
|
|
10865
|
+
section" in CLAUDE.md) is deliberately NOT hand-templated here — those are
|
|
10866
|
+
produced by the real `swamp` CLI. `swamp init` is idempotent (a no-op if
|
|
10867
|
+
the repo is already initialized), so it's wired into the project's
|
|
10868
|
+
`install`/`install:ci` tasks and runs automatically on every install,
|
|
10869
|
+
guarded so it's a silent no-op on a machine without `swamp` on PATH (e.g.
|
|
10870
|
+
CI). The extension pulls and vault creation are one-time, not idempotent
|
|
10871
|
+
in a way that's safe to repeat on every install, so they stay in the
|
|
10872
|
+
`swamp:bootstrap` task this construct adds. Only exman's own authored
|
|
10873
|
+
config (the factory's state machine, the architecture-rule engine, the
|
|
10874
|
+
attestation mechanism, the OpenSpec task-completion gate, and the 3 swamp
|
|
10875
|
+
workflows that wire them together) is templated.
|
|
10876
|
+
|
|
10877
|
+
#### Initializers <a name="Initializers" id="@macedon-technologies/batman.SoftwareFactoryFiles.Initializer"></a>
|
|
10878
|
+
|
|
10879
|
+
```typescript
|
|
10880
|
+
import { SoftwareFactoryFiles } from '@macedon-technologies/batman'
|
|
10881
|
+
|
|
10882
|
+
new SoftwareFactoryFiles(project: NodeProject, options: SoftwareFactoryFilesOptions)
|
|
10883
|
+
```
|
|
10884
|
+
|
|
10885
|
+
| **Name** | **Type** | **Description** |
|
|
10886
|
+
| --- | --- | --- |
|
|
10887
|
+
| <code><a href="#@macedon-technologies/batman.SoftwareFactoryFiles.Initializer.parameter.project">project</a></code> | <code>projen.javascript.NodeProject</code> | *No description.* |
|
|
10888
|
+
| <code><a href="#@macedon-technologies/batman.SoftwareFactoryFiles.Initializer.parameter.options">options</a></code> | <code><a href="#@macedon-technologies/batman.SoftwareFactoryFilesOptions">SoftwareFactoryFilesOptions</a></code> | *No description.* |
|
|
10889
|
+
|
|
10890
|
+
---
|
|
10891
|
+
|
|
10892
|
+
##### `project`<sup>Required</sup> <a name="project" id="@macedon-technologies/batman.SoftwareFactoryFiles.Initializer.parameter.project"></a>
|
|
10893
|
+
|
|
10894
|
+
- *Type:* projen.javascript.NodeProject
|
|
10895
|
+
|
|
10896
|
+
---
|
|
10897
|
+
|
|
10898
|
+
##### `options`<sup>Required</sup> <a name="options" id="@macedon-technologies/batman.SoftwareFactoryFiles.Initializer.parameter.options"></a>
|
|
10899
|
+
|
|
10900
|
+
- *Type:* <a href="#@macedon-technologies/batman.SoftwareFactoryFilesOptions">SoftwareFactoryFilesOptions</a>
|
|
10901
|
+
|
|
10902
|
+
---
|
|
10903
|
+
|
|
10904
|
+
|
|
10905
|
+
|
|
10906
|
+
|
|
10744
10907
|
|
|
10745
10908
|
|