projen 0.67.55 → 0.67.56

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 (132) hide show
  1. package/.jsii +123 -74
  2. package/docs/api/API.md +58 -22
  3. package/docs/github.md +43 -3
  4. package/lib/awscdk/auto-discover.js +5 -5
  5. package/lib/awscdk/awscdk-app-java.js +1 -1
  6. package/lib/awscdk/awscdk-app-py.js +1 -1
  7. package/lib/awscdk/awscdk-app-ts.js +1 -1
  8. package/lib/awscdk/awscdk-construct.js +2 -2
  9. package/lib/awscdk/awscdk-deps-java.js +1 -1
  10. package/lib/awscdk/awscdk-deps-js.js +1 -1
  11. package/lib/awscdk/awscdk-deps-py.js +1 -1
  12. package/lib/awscdk/awscdk-deps.js +1 -1
  13. package/lib/awscdk/cdk-config.js +1 -1
  14. package/lib/awscdk/cdk-tasks.js +1 -1
  15. package/lib/awscdk/integration-test.js +1 -1
  16. package/lib/awscdk/lambda-extension.js +1 -1
  17. package/lib/awscdk/lambda-function.js +2 -2
  18. package/lib/build/build-workflow.js +1 -1
  19. package/lib/cdk/auto-discover-base.js +2 -2
  20. package/lib/cdk/construct-lib.js +1 -1
  21. package/lib/cdk/integration-test-base.js +1 -1
  22. package/lib/cdk/jsii-docgen.js +1 -1
  23. package/lib/cdk/jsii-project.js +1 -1
  24. package/lib/cdk8s/auto-discover.js +2 -2
  25. package/lib/cdk8s/cdk8s-app-py.js +1 -1
  26. package/lib/cdk8s/cdk8s-app-ts.js +1 -1
  27. package/lib/cdk8s/cdk8s-construct.js +1 -1
  28. package/lib/cdk8s/cdk8s-deps-py.js +1 -1
  29. package/lib/cdk8s/cdk8s-deps.js +1 -1
  30. package/lib/cdk8s/integration-test.js +1 -1
  31. package/lib/cdktf/cdktf-construct.js +1 -1
  32. package/lib/circleci/circleci.js +1 -1
  33. package/lib/component.js +1 -1
  34. package/lib/dependencies.js +1 -1
  35. package/lib/dev-env.js +1 -1
  36. package/lib/docker-compose/docker-compose-service.js +1 -1
  37. package/lib/docker-compose/docker-compose.js +1 -1
  38. package/lib/file.js +1 -1
  39. package/lib/gitattributes.js +1 -1
  40. package/lib/github/actions-provider.d.ts +28 -0
  41. package/lib/github/actions-provider.js +45 -0
  42. package/lib/github/auto-approve.js +1 -1
  43. package/lib/github/auto-merge.js +1 -1
  44. package/lib/github/dependabot.js +1 -1
  45. package/lib/github/github-credentials.js +1 -1
  46. package/lib/github/github-project.js +1 -1
  47. package/lib/github/github.d.ts +5 -0
  48. package/lib/github/github.js +4 -2
  49. package/lib/github/index.d.ts +1 -0
  50. package/lib/github/index.js +2 -1
  51. package/lib/github/mergify.js +1 -1
  52. package/lib/github/pr-template.js +1 -1
  53. package/lib/github/pull-request-lint.js +1 -1
  54. package/lib/github/stale.js +1 -1
  55. package/lib/github/task-workflow.js +1 -1
  56. package/lib/github/workflows.d.ts +1 -6
  57. package/lib/github/workflows.js +6 -5
  58. package/lib/gitlab/configuration.js +1 -1
  59. package/lib/gitlab/gitlab-configuration.js +1 -1
  60. package/lib/gitlab/nested-configuration.js +1 -1
  61. package/lib/gitpod.js +1 -1
  62. package/lib/ignore-file.js +1 -1
  63. package/lib/ini.js +1 -1
  64. package/lib/java/java-project.js +1 -1
  65. package/lib/java/junit.js +1 -1
  66. package/lib/java/maven-compile.js +1 -1
  67. package/lib/java/maven-packaging.js +1 -1
  68. package/lib/java/maven-sample.js +1 -1
  69. package/lib/java/pom.js +1 -1
  70. package/lib/java/projenrc.js +1 -1
  71. package/lib/javascript/bundler.js +1 -1
  72. package/lib/javascript/eslint.js +1 -1
  73. package/lib/javascript/jest.js +1 -1
  74. package/lib/javascript/node-package.js +1 -1
  75. package/lib/javascript/node-project.js +1 -1
  76. package/lib/javascript/npm-config.js +1 -1
  77. package/lib/javascript/prettier.js +1 -1
  78. package/lib/javascript/projenrc.js +1 -1
  79. package/lib/javascript/typescript-config.js +1 -1
  80. package/lib/javascript/upgrade-dependencies.js +2 -2
  81. package/lib/json-patch.js +1 -1
  82. package/lib/json.js +1 -1
  83. package/lib/license.js +1 -1
  84. package/lib/logger.js +1 -1
  85. package/lib/makefile.js +1 -1
  86. package/lib/object-file.js +1 -1
  87. package/lib/project-build.js +1 -1
  88. package/lib/project.js +1 -1
  89. package/lib/projects.js +1 -1
  90. package/lib/projenrc-json.js +1 -1
  91. package/lib/python/pip.js +1 -1
  92. package/lib/python/poetry.js +2 -2
  93. package/lib/python/projenrc.js +1 -1
  94. package/lib/python/pytest-sample.js +1 -1
  95. package/lib/python/pytest.js +1 -1
  96. package/lib/python/python-project.js +1 -1
  97. package/lib/python/python-sample.js +1 -1
  98. package/lib/python/requirements-file.js +1 -1
  99. package/lib/python/setuppy.js +1 -1
  100. package/lib/python/setuptools.js +1 -1
  101. package/lib/python/venv.js +1 -1
  102. package/lib/readme.js +1 -1
  103. package/lib/release/publisher.js +1 -1
  104. package/lib/release/release-trigger.js +1 -1
  105. package/lib/release/release.js +1 -1
  106. package/lib/renovatebot.js +1 -1
  107. package/lib/run-task.js +1882 -1
  108. package/lib/sample-file.js +2 -2
  109. package/lib/semver.js +1 -1
  110. package/lib/source-code.js +1 -1
  111. package/lib/task-runtime.js +1 -1
  112. package/lib/task.js +1 -1
  113. package/lib/tasks.js +1 -1
  114. package/lib/testing.js +1 -1
  115. package/lib/textfile.js +1 -1
  116. package/lib/toml.js +1 -1
  117. package/lib/typescript/projenrc.js +1 -1
  118. package/lib/typescript/typescript-typedoc.js +1 -1
  119. package/lib/typescript/typescript.js +3 -3
  120. package/lib/version.js +1 -1
  121. package/lib/vscode/devcontainer.js +1 -1
  122. package/lib/vscode/extensions.js +1 -1
  123. package/lib/vscode/launch-config.js +1 -1
  124. package/lib/vscode/settings.js +1 -1
  125. package/lib/vscode/vscode.js +1 -1
  126. package/lib/web/next.js +3 -3
  127. package/lib/web/postcss.js +1 -1
  128. package/lib/web/react.js +4 -4
  129. package/lib/web/tailwind.js +1 -1
  130. package/lib/xmlfile.js +1 -1
  131. package/lib/yaml.js +1 -1
  132. package/package.json +1 -1
package/.jsii CHANGED
@@ -112,7 +112,7 @@
112
112
  "projen.github.workflows": {
113
113
  "locationInModule": {
114
114
  "filename": "src/github/index.ts",
115
- "line": 18
115
+ "line": 19
116
116
  },
117
117
  "symbolId": "src/github/workflows-model:"
118
118
  },
@@ -20066,7 +20066,7 @@
20066
20066
  },
20067
20067
  "locationInModule": {
20068
20068
  "filename": "src/github/github.ts",
20069
- "line": 91
20069
+ "line": 97
20070
20070
  },
20071
20071
  "parameters": [
20072
20072
  {
@@ -20087,7 +20087,7 @@
20087
20087
  "kind": "class",
20088
20088
  "locationInModule": {
20089
20089
  "filename": "src/github/github.ts",
20090
- "line": 65
20090
+ "line": 66
20091
20091
  },
20092
20092
  "methods": [
20093
20093
  {
@@ -20097,7 +20097,7 @@
20097
20097
  },
20098
20098
  "locationInModule": {
20099
20099
  "filename": "src/github/github.ts",
20100
- "line": 70
20100
+ "line": 71
20101
20101
  },
20102
20102
  "name": "of",
20103
20103
  "parameters": [
@@ -20122,7 +20122,7 @@
20122
20122
  },
20123
20123
  "locationInModule": {
20124
20124
  "filename": "src/github/github.ts",
20125
- "line": 148
20125
+ "line": 156
20126
20126
  },
20127
20127
  "name": "addDependabot",
20128
20128
  "parameters": [
@@ -20146,7 +20146,7 @@
20146
20146
  },
20147
20147
  "locationInModule": {
20148
20148
  "filename": "src/github/github.ts",
20149
- "line": 144
20149
+ "line": 152
20150
20150
  },
20151
20151
  "name": "addPullRequestTemplate",
20152
20152
  "parameters": [
@@ -20173,7 +20173,7 @@
20173
20173
  },
20174
20174
  "locationInModule": {
20175
20175
  "filename": "src/github/github.ts",
20176
- "line": 139
20176
+ "line": 147
20177
20177
  },
20178
20178
  "name": "addWorkflow",
20179
20179
  "parameters": [
@@ -20201,7 +20201,7 @@
20201
20201
  },
20202
20202
  "locationInModule": {
20203
20203
  "filename": "src/github/github.ts",
20204
- "line": 156
20204
+ "line": 164
20205
20205
  },
20206
20206
  "name": "tryFindWorkflow",
20207
20207
  "parameters": [
@@ -20226,6 +20226,20 @@
20226
20226
  "name": "GitHub",
20227
20227
  "namespace": "github",
20228
20228
  "properties": [
20229
+ {
20230
+ "docs": {
20231
+ "stability": "experimental"
20232
+ },
20233
+ "immutable": true,
20234
+ "locationInModule": {
20235
+ "filename": "src/github/github.ts",
20236
+ "line": 95
20237
+ },
20238
+ "name": "actions",
20239
+ "type": {
20240
+ "fqn": "projen.github.GitHubActionsProvider"
20241
+ }
20242
+ },
20229
20243
  {
20230
20244
  "docs": {
20231
20245
  "stability": "experimental",
@@ -20234,7 +20248,7 @@
20234
20248
  "immutable": true,
20235
20249
  "locationInModule": {
20236
20250
  "filename": "src/github/github.ts",
20237
- "line": 89
20251
+ "line": 90
20238
20252
  },
20239
20253
  "name": "projenCredentials",
20240
20254
  "type": {
@@ -20249,7 +20263,7 @@
20249
20263
  "immutable": true,
20250
20264
  "locationInModule": {
20251
20265
  "filename": "src/github/github.ts",
20252
- "line": 126
20266
+ "line": 134
20253
20267
  },
20254
20268
  "name": "workflows",
20255
20269
  "type": {
@@ -20269,7 +20283,7 @@
20269
20283
  "immutable": true,
20270
20284
  "locationInModule": {
20271
20285
  "filename": "src/github/github.ts",
20272
- "line": 84
20286
+ "line": 85
20273
20287
  },
20274
20288
  "name": "workflowsEnabled",
20275
20289
  "type": {
@@ -20285,7 +20299,7 @@
20285
20299
  "immutable": true,
20286
20300
  "locationInModule": {
20287
20301
  "filename": "src/github/github.ts",
20288
- "line": 79
20302
+ "line": 80
20289
20303
  },
20290
20304
  "name": "mergify",
20291
20305
  "optional": true,
@@ -20296,6 +20310,80 @@
20296
20310
  ],
20297
20311
  "symbolId": "src/github/github:GitHub"
20298
20312
  },
20313
+ "projen.github.GitHubActionsProvider": {
20314
+ "assembly": "projen",
20315
+ "docs": {
20316
+ "stability": "experimental",
20317
+ "summary": "Manage the versions used for GitHub Actions used in steps."
20318
+ },
20319
+ "fqn": "projen.github.GitHubActionsProvider",
20320
+ "initializer": {
20321
+ "docs": {
20322
+ "stability": "experimental"
20323
+ }
20324
+ },
20325
+ "kind": "class",
20326
+ "locationInModule": {
20327
+ "filename": "src/github/actions-provider.ts",
20328
+ "line": 4
20329
+ },
20330
+ "methods": [
20331
+ {
20332
+ "docs": {
20333
+ "stability": "experimental",
20334
+ "summary": "Resolve an action name to the version that should be used, taking into account any overrides."
20335
+ },
20336
+ "locationInModule": {
20337
+ "filename": "src/github/actions-provider.ts",
20338
+ "line": 31
20339
+ },
20340
+ "name": "get",
20341
+ "parameters": [
20342
+ {
20343
+ "name": "action",
20344
+ "type": {
20345
+ "primitive": "string"
20346
+ }
20347
+ }
20348
+ ],
20349
+ "returns": {
20350
+ "type": {
20351
+ "primitive": "string"
20352
+ }
20353
+ }
20354
+ },
20355
+ {
20356
+ "docs": {
20357
+ "example": "// Force any use of `actions/checkout` to use a pin a specific commit\nproject.github.actions.set(\"actions/checkout\", \"actions/checkout@aaaaaa\");\n\n// But pin usage of `v3` to a different commit\nproject.github.actions.set(\"actions/checkout@v3\", \"actions/checkout@ffffff\");",
20358
+ "remarks": "Specify the action name without a version to override all usages of the action.\nYou can also override a specific action version, by providing the version string.\nSpecific overrides take precedence over overrides without a version.\n\nIf an override for the same action name is set multiple times, the last override is used.",
20359
+ "stability": "experimental",
20360
+ "summary": "Define an override for a given action."
20361
+ },
20362
+ "locationInModule": {
20363
+ "filename": "src/github/actions-provider.ts",
20364
+ "line": 23
20365
+ },
20366
+ "name": "set",
20367
+ "parameters": [
20368
+ {
20369
+ "name": "action",
20370
+ "type": {
20371
+ "primitive": "string"
20372
+ }
20373
+ },
20374
+ {
20375
+ "name": "override",
20376
+ "type": {
20377
+ "primitive": "string"
20378
+ }
20379
+ }
20380
+ ]
20381
+ }
20382
+ ],
20383
+ "name": "GitHubActionsProvider",
20384
+ "namespace": "github",
20385
+ "symbolId": "src/github/actions-provider:GitHubActionsProvider"
20386
+ },
20299
20387
  "projen.github.GitHubOptions": {
20300
20388
  "assembly": "projen",
20301
20389
  "datatype": true,
@@ -20306,7 +20394,7 @@
20306
20394
  "kind": "interface",
20307
20395
  "locationInModule": {
20308
20396
  "filename": "src/github/github.ts",
20309
- "line": 10
20397
+ "line": 11
20310
20398
  },
20311
20399
  "name": "GitHubOptions",
20312
20400
  "namespace": "github",
@@ -20321,7 +20409,7 @@
20321
20409
  "immutable": true,
20322
20410
  "locationInModule": {
20323
20411
  "filename": "src/github/github.ts",
20324
- "line": 16
20412
+ "line": 17
20325
20413
  },
20326
20414
  "name": "mergify",
20327
20415
  "optional": true,
@@ -20339,7 +20427,7 @@
20339
20427
  "immutable": true,
20340
20428
  "locationInModule": {
20341
20429
  "filename": "src/github/github.ts",
20342
- "line": 23
20430
+ "line": 24
20343
20431
  },
20344
20432
  "name": "mergifyOptions",
20345
20433
  "optional": true,
@@ -20357,7 +20445,7 @@
20357
20445
  "immutable": true,
20358
20446
  "locationInModule": {
20359
20447
  "filename": "src/github/github.ts",
20360
- "line": 52
20448
+ "line": 53
20361
20449
  },
20362
20450
  "name": "projenCredentials",
20363
20451
  "optional": true,
@@ -20377,7 +20465,7 @@
20377
20465
  "immutable": true,
20378
20466
  "locationInModule": {
20379
20467
  "filename": "src/github/github.ts",
20380
- "line": 62
20468
+ "line": 63
20381
20469
  },
20382
20470
  "name": "projenTokenSecret",
20383
20471
  "optional": true,
@@ -20395,7 +20483,7 @@
20395
20483
  "immutable": true,
20396
20484
  "locationInModule": {
20397
20485
  "filename": "src/github/github.ts",
20398
- "line": 38
20486
+ "line": 39
20399
20487
  },
20400
20488
  "name": "pullRequestLint",
20401
20489
  "optional": true,
@@ -20413,7 +20501,7 @@
20413
20501
  "immutable": true,
20414
20502
  "locationInModule": {
20415
20503
  "filename": "src/github/github.ts",
20416
- "line": 45
20504
+ "line": 46
20417
20505
  },
20418
20506
  "name": "pullRequestLintOptions",
20419
20507
  "optional": true,
@@ -20432,7 +20520,7 @@
20432
20520
  "immutable": true,
20433
20521
  "locationInModule": {
20434
20522
  "filename": "src/github/github.ts",
20435
- "line": 30
20523
+ "line": 31
20436
20524
  },
20437
20525
  "name": "workflows",
20438
20526
  "optional": true,
@@ -21230,7 +21318,7 @@
21230
21318
  },
21231
21319
  "locationInModule": {
21232
21320
  "filename": "src/github/workflows.ts",
21233
- "line": 79
21321
+ "line": 81
21234
21322
  },
21235
21323
  "parameters": [
21236
21324
  {
@@ -21257,7 +21345,7 @@
21257
21345
  "kind": "class",
21258
21346
  "locationInModule": {
21259
21347
  "filename": "src/github/workflows.ts",
21260
- "line": 36
21348
+ "line": 37
21261
21349
  },
21262
21350
  "methods": [
21263
21351
  {
@@ -21267,7 +21355,7 @@
21267
21355
  },
21268
21356
  "locationInModule": {
21269
21357
  "filename": "src/github/workflows.ts",
21270
- "line": 122
21358
+ "line": 125
21271
21359
  },
21272
21360
  "name": "addJob",
21273
21361
  "parameters": [
@@ -21307,7 +21395,7 @@
21307
21395
  },
21308
21396
  "locationInModule": {
21309
21397
  "filename": "src/github/workflows.ts",
21310
- "line": 134
21398
+ "line": 137
21311
21399
  },
21312
21400
  "name": "addJobs",
21313
21401
  "parameters": [
@@ -21343,7 +21431,7 @@
21343
21431
  },
21344
21432
  "locationInModule": {
21345
21433
  "filename": "src/github/workflows.ts",
21346
- "line": 110
21434
+ "line": 113
21347
21435
  },
21348
21436
  "name": "on",
21349
21437
  "parameters": [
@@ -21370,7 +21458,7 @@
21370
21458
  "immutable": true,
21371
21459
  "locationInModule": {
21372
21460
  "filename": "src/github/workflows.ts",
21373
- "line": 40
21461
+ "line": 41
21374
21462
  },
21375
21463
  "name": "name",
21376
21464
  "type": {
@@ -21385,7 +21473,7 @@
21385
21473
  "immutable": true,
21386
21474
  "locationInModule": {
21387
21475
  "filename": "src/github/workflows.ts",
21388
- "line": 58
21476
+ "line": 59
21389
21477
  },
21390
21478
  "name": "projenCredentials",
21391
21479
  "type": {
@@ -21401,7 +21489,7 @@
21401
21489
  "immutable": true,
21402
21490
  "locationInModule": {
21403
21491
  "filename": "src/github/workflows.ts",
21404
- "line": 48
21492
+ "line": 49
21405
21493
  },
21406
21494
  "name": "concurrency",
21407
21495
  "optional": true,
@@ -21418,7 +21506,7 @@
21418
21506
  "immutable": true,
21419
21507
  "locationInModule": {
21420
21508
  "filename": "src/github/workflows.ts",
21421
- "line": 53
21509
+ "line": 54
21422
21510
  },
21423
21511
  "name": "file",
21424
21512
  "optional": true,
@@ -21434,7 +21522,7 @@
21434
21522
  },
21435
21523
  "locationInModule": {
21436
21524
  "filename": "src/github/workflows.ts",
21437
- "line": 71
21525
+ "line": 72
21438
21526
  },
21439
21527
  "name": "runName",
21440
21528
  "optional": true,
@@ -21456,7 +21544,7 @@
21456
21544
  "kind": "interface",
21457
21545
  "locationInModule": {
21458
21546
  "filename": "src/github/workflows.ts",
21459
- "line": 13
21547
+ "line": 14
21460
21548
  },
21461
21549
  "name": "GithubWorkflowOptions",
21462
21550
  "namespace": "github",
@@ -21473,7 +21561,7 @@
21473
21561
  "immutable": true,
21474
21562
  "locationInModule": {
21475
21563
  "filename": "src/github/workflows.ts",
21476
- "line": 26
21564
+ "line": 27
21477
21565
  },
21478
21566
  "name": "concurrency",
21479
21567
  "optional": true,
@@ -21491,7 +21579,7 @@
21491
21579
  "immutable": true,
21492
21580
  "locationInModule": {
21493
21581
  "filename": "src/github/workflows.ts",
21494
- "line": 19
21582
+ "line": 20
21495
21583
  },
21496
21584
  "name": "force",
21497
21585
  "optional": true,
@@ -21540,45 +21628,6 @@
21540
21628
  "namespace": "github",
21541
21629
  "symbolId": "src/github/auto-merge:IAddConditionsLater"
21542
21630
  },
21543
- "projen.github.IJobProvider": {
21544
- "assembly": "projen",
21545
- "docs": {
21546
- "stability": "experimental"
21547
- },
21548
- "fqn": "projen.github.IJobProvider",
21549
- "kind": "interface",
21550
- "locationInModule": {
21551
- "filename": "src/github/workflows.ts",
21552
- "line": 319
21553
- },
21554
- "methods": [
21555
- {
21556
- "abstract": true,
21557
- "docs": {
21558
- "stability": "experimental",
21559
- "summary": "Generates a collection of named GitHub workflow jobs."
21560
- },
21561
- "locationInModule": {
21562
- "filename": "src/github/workflows.ts",
21563
- "line": 323
21564
- },
21565
- "name": "renderJobs",
21566
- "returns": {
21567
- "type": {
21568
- "collection": {
21569
- "elementtype": {
21570
- "fqn": "projen.github.workflows.Job"
21571
- },
21572
- "kind": "map"
21573
- }
21574
- }
21575
- }
21576
- }
21577
- ],
21578
- "name": "IJobProvider",
21579
- "namespace": "github",
21580
- "symbolId": "src/github/workflows:IJobProvider"
21581
- },
21582
21631
  "projen.github.Mergify": {
21583
21632
  "assembly": "projen",
21584
21633
  "base": "projen.Component",
@@ -51783,6 +51832,6 @@
51783
51832
  "symbolId": "src/web/tailwind:TailwindConfigOptions"
51784
51833
  }
51785
51834
  },
51786
- "version": "0.67.55",
51787
- "fingerprint": "wdJHP8XIdaSQ42l2X/2nUz8ifzKkr2hLaqRyIq9EbC0="
51835
+ "version": "0.67.56",
51836
+ "fingerprint": "QsG/2umPBk2qG+CY0VWX0YWA2Q4lHTQEYobKrB3BTDQ="
51788
51837
  }
package/docs/api/API.md CHANGED
@@ -80,6 +80,7 @@ Name|Description
80
80
  [github.AutoMerge](#projen-github-automerge)|Sets up mergify to merging approved pull requests.
81
81
  [github.Dependabot](#projen-github-dependabot)|Defines dependabot configuration for node projects.
82
82
  [github.GitHub](#projen-github-github)|*No description*
83
+ [github.GitHubActionsProvider](#projen-github-githubactionsprovider)|Manage the versions used for GitHub Actions used in steps.
83
84
  [github.GitHubProject](#projen-github-githubproject)|GitHub-based project.
84
85
  [github.GithubCredentials](#projen-github-githubcredentials)|Represents a method of providing GitHub API access for projen workflows.
85
86
  [github.GithubWorkflow](#projen-github-githubworkflow)|Workflow for GitHub.
@@ -411,7 +412,6 @@ Name|Description
411
412
  [IResolvable](#projen-iresolvable)|*No description*
412
413
  [IResolver](#projen-iresolver)|API for resolving tokens when synthesizing file content.
413
414
  [github.IAddConditionsLater](#projen-github-iaddconditionslater)|*No description*
414
- [github.IJobProvider](#projen-github-ijobprovider)|*No description*
415
415
  [python.IPackageProvider](#projen-python-ipackageprovider)|*No description*
416
416
  [python.IPythonDeps](#projen-python-ipythondeps)|*No description*
417
417
  [python.IPythonEnv](#projen-python-ipythonenv)|*No description*
@@ -6555,6 +6555,7 @@ new github.GitHub(project: Project, options?: GitHubOptions)
6555
6555
 
6556
6556
  Name | Type | Description
6557
6557
  -----|------|-------------
6558
+ **actions**🔹 | <code>[github.GitHubActionsProvider](#projen-github-githubactionsprovider)</code> | <span></span>
6558
6559
  **projenCredentials**🔹 | <code>[github.GithubCredentials](#projen-github-githubcredentials)</code> | GitHub API authentication method used by projen workflows.
6559
6560
  **workflows**🔹 | <code>Array<[github.GithubWorkflow](#projen-github-githubworkflow)></code> | All workflows.
6560
6561
  **workflowsEnabled**🔹 | <code>boolean</code> | Are workflows enabled?
@@ -6638,6 +6639,62 @@ __Returns__:
6638
6639
 
6639
6640
 
6640
6641
 
6642
+ ## class GitHubActionsProvider 🔹 <a id="projen-github-githubactionsprovider"></a>
6643
+
6644
+ Manage the versions used for GitHub Actions used in steps.
6645
+
6646
+ __Submodule__: github
6647
+
6648
+
6649
+ ### Initializer
6650
+
6651
+
6652
+
6653
+
6654
+ ```ts
6655
+ new github.GitHubActionsProvider()
6656
+ ```
6657
+
6658
+
6659
+
6660
+ ### Methods
6661
+
6662
+
6663
+ #### get(action)🔹 <a id="projen-github-githubactionsprovider-get"></a>
6664
+
6665
+ Resolve an action name to the version that should be used, taking into account any overrides.
6666
+
6667
+ ```ts
6668
+ get(action: string): string
6669
+ ```
6670
+
6671
+ * **action** (<code>string</code>) *No description*
6672
+
6673
+ __Returns__:
6674
+ * <code>string</code>
6675
+
6676
+ #### set(action, override)🔹 <a id="projen-github-githubactionsprovider-set"></a>
6677
+
6678
+ Define an override for a given action.
6679
+
6680
+ Specify the action name without a version to override all usages of the action.
6681
+ You can also override a specific action version, by providing the version string.
6682
+ Specific overrides take precedence over overrides without a version.
6683
+
6684
+ If an override for the same action name is set multiple times, the last override is used.
6685
+
6686
+ ```ts
6687
+ set(action: string, override: string): void
6688
+ ```
6689
+
6690
+ * **action** (<code>string</code>) *No description*
6691
+ * **override** (<code>string</code>) *No description*
6692
+
6693
+
6694
+
6695
+
6696
+
6697
+
6641
6698
  ## class GitHubProject ⚠️ <a id="projen-github-githubproject"></a>
6642
6699
 
6643
6700
  GitHub-based project.
@@ -15504,27 +15561,6 @@ __Returns__:
15504
15561
 
15505
15562
 
15506
15563
 
15507
- ## interface IJobProvider 🔹 <a id="projen-github-ijobprovider"></a>
15508
-
15509
-
15510
-
15511
- ### Methods
15512
-
15513
-
15514
- #### renderJobs()🔹 <a id="projen-github-ijobprovider-renderjobs"></a>
15515
-
15516
- Generates a collection of named GitHub workflow jobs.
15517
-
15518
- ```ts
15519
- renderJobs(): Map<string, Job>
15520
- ```
15521
-
15522
-
15523
- __Returns__:
15524
- * <code>Map<string, [github.workflows.Job](#projen-github-workflows-job)></code>
15525
-
15526
-
15527
-
15528
15564
  ## struct MergifyConditionalOperator 🔹 <a id="projen-github-mergifyconditionaloperator"></a>
15529
15565
 
15530
15566
 
package/docs/github.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # GitHub
2
2
 
3
- By default, many projects are initialized with `GitHub` component to enabled GitHub as the default provider for CI/CD workflows. See https://docs.github.com/en/actions for more information.
3
+ By default, many projects are initialized with `GitHub` component to enabled GitHub as the default provider for CI/CD workflows. See <https://docs.github.com/en/actions> for more information.
4
4
 
5
5
  The use of GitHub (and generating corresponding files in `.github`) can be disabled by specifying `github: false` in your project options.
6
6
 
@@ -80,14 +80,54 @@ const project = new javascript.NodeProject({
80
80
 
81
81
  ## Workflows
82
82
 
83
- TODO
84
-
85
83
  See the `GitHub`, `GithubWorkflow`, and `Job` types in the [API
86
84
  reference](./api/API.md) for currently available APIs.
87
85
 
88
86
  Example code of creating a GitHub workflow:
89
87
  <https://github.com/projen/projen/blob/65b4194c163f47ba4842981b0c92dbe516be787b/src/github/auto-approve.ts#L67-L105>
90
88
 
89
+ ### Actions versions
90
+
91
+ Most workflows included with projen are constraint to a major version, in order for updates to be available immediately.
92
+ However it is a good security practice to lock versions of GitHub Actions down to explicit commit hashes.
93
+ To achieve this, you can define explicit overrides for any action used in workflows.
94
+
95
+ The replace all occurrences of an action can be overridden, irregardless of the action version:
96
+
97
+ ```ts
98
+ project.github.actions.set("actions/checkout", "actions/checkout@ac59398");
99
+ ```
100
+
101
+ Any use of `actions/checkout` is now changed to this:
102
+
103
+ ```yaml
104
+ steps:
105
+ - uses: actions/checkout@ac59398
106
+ ```
107
+
108
+ Alternatively, any specific action version can be overridden.
109
+ This can be useful when a specific version of an action must be used due to incompatible changes.
110
+ Specific overrides take precedence over overrides without a version.
111
+
112
+ ```ts
113
+ project.github.actions.set("actions/checkout@v3", "actions/checkout@ac59398");
114
+ project.github.actions.set("actions/checkout", "actions/checkout@main");
115
+ ```
116
+
117
+ Different versions of `actions/checkout` are resolved to different overrides:
118
+
119
+ ```yaml
120
+ steps:
121
+ # Was: actions/checkout@v3
122
+ - uses: actions/checkout@ac59398
123
+
124
+ # Was: actions/checkout@v2
125
+ - uses: actions/checkout@main
126
+ ```
127
+
128
+ Workflow creators are encouraged to use commit hashes and keep them updated, or major versions.
129
+ Sensitive workflow actions should always use commit hashes.
130
+
91
131
  ### Stale workflow
92
132
 
93
133
  A "stale" workflow can be added which will automatically close issues or pull