declapract-typescript-ehmpathy 0.49.8 → 0.49.10

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 (38) hide show
  1. package/dist/__snapshots__/actionPins.declapract.integration.test.ts.snap +70 -0
  2. package/dist/actionPins.declapract.integration.test.ts +785 -0
  3. package/dist/practices/cicd-app-react-native-expo/best-practice/.declapract.readme.md +27 -0
  4. package/dist/practices/cicd-app-react-native-expo/best-practice/.github/workflows/.deploy-expo.yml +10 -10
  5. package/dist/practices/cicd-app-react-native-expo/best-practice/.github/workflows/deploy.yml +4 -0
  6. package/dist/practices/cicd-app-react-native-expo/best-practice/.github/workflows/test.yml +4 -0
  7. package/dist/practices/cicd-app-react-native-expo/best-practice/.gitignore.declapract.ts +18 -11
  8. package/dist/practices/cicd-common/.declapract.integration.test.ts +572 -0
  9. package/dist/practices/cicd-common/.test/assets/repo-with-unpinned-workflow/.github/workflows/.test.yml +19 -0
  10. package/dist/practices/cicd-common/.test/assets/repo-with-unpinned-workflow/.github/workflows/consumer-owned.yml +21 -0
  11. package/dist/practices/cicd-common/.test/assets/repo-with-unpinned-workflow/.github/workflows/review.yml +26 -0
  12. package/dist/practices/cicd-common/.test/assets/repo-with-unpinned-workflow/declapract.use.yml +6 -0
  13. package/dist/practices/cicd-common/.test/assets/repo-with-unpinned-workflow/package.json +4 -0
  14. package/dist/practices/cicd-common/__snapshots__/.declapract.integration.test.ts.snap +550 -0
  15. package/dist/practices/cicd-common/best-practice/.declapract.readme.md +5 -0
  16. package/dist/practices/cicd-common/best-practice/.github/workflows/.declastruct.yml +12 -12
  17. package/dist/practices/cicd-common/best-practice/.github/workflows/.install.yml +5 -5
  18. package/dist/practices/cicd-common/best-practice/.github/workflows/.test.yml +25 -25
  19. package/dist/practices/cicd-common/best-practice/.github/workflows/release.yml +2 -2
  20. package/dist/practices/cicd-common/best-practice/.github/workflows/review.yml +1 -1
  21. package/dist/practices/cicd-package/best-practice/.github/workflows/.publish-npm.yml +3 -3
  22. package/dist/practices/cicd-package/best-practice/.github/workflows/provision.yml +4 -0
  23. package/dist/practices/cicd-service/best-practice/.github/workflows/.deploy-sls.yml +13 -13
  24. package/dist/practices/cicd-service/best-practice/.github/workflows/.sql-schema-control.yml +8 -8
  25. package/dist/practices/cicd-service/best-practice/.github/workflows/.terraform.yml +6 -6
  26. package/dist/practices/cicd-service/best-practice/.github/workflows/provision.yml +4 -0
  27. package/dist/practices/git/.declapract.integration.test.ts +950 -0
  28. package/dist/practices/git/.test/assets/repo-with-rhachet-only/declapract.use.yml +6 -0
  29. package/dist/practices/git/.test/assets/repo-with-rhachet-only/package.json +4 -0
  30. package/dist/practices/git/.test/assets/repo-without-cache-ignores/declapract.use.yml +9 -0
  31. package/dist/practices/git/.test/assets/repo-without-cache-ignores/package.json +4 -0
  32. package/dist/practices/git/__snapshots__/.declapract.integration.test.ts.snap +51 -0
  33. package/dist/practices/git/best-practice/.declapract.readme.md +23 -0
  34. package/dist/practices/git/best-practice/.gitignore.declapract.ts +59 -33
  35. package/dist/practices/rhachet/best-practice/.declapract.readme.md +32 -0
  36. package/dist/practices/rhachet/best-practice/.gitignore.declapract.ts +64 -0
  37. package/dist/utils/defineExpectedGitignoreContents.ts +84 -0
  38. package/package.json +7 -7
@@ -28,17 +28,17 @@ jobs:
28
28
  needs: [install, test-shards-omit]
29
29
  steps:
30
30
  - name: checkout
31
- uses: actions/checkout@v4
31
+ uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
32
32
  with:
33
33
  fetch-depth: 0 # we need all commits to test:commits
34
34
 
35
35
  - name: set node-version
36
- uses: actions/setup-node@v4
36
+ uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
37
37
  with:
38
38
  node-version-file: ".nvmrc"
39
39
 
40
40
  - name: get node-modules from cache
41
- uses: actions/cache/restore@v4
41
+ uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
42
42
  with:
43
43
  path: ./node_modules
44
44
  key: ${{ needs.install.outputs.node-modules-cache-key }}
@@ -51,15 +51,15 @@ jobs:
51
51
  needs: [install, test-shards-omit]
52
52
  steps:
53
53
  - name: checkout
54
- uses: actions/checkout@v4
54
+ uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
55
55
 
56
56
  - name: set node-version
57
- uses: actions/setup-node@v4
57
+ uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
58
58
  with:
59
59
  node-version-file: ".nvmrc"
60
60
 
61
61
  - name: get node-modules from cache
62
- uses: actions/cache/restore@v4
62
+ uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
63
63
  with:
64
64
  path: ./node_modules
65
65
  key: ${{ needs.install.outputs.node-modules-cache-key }}
@@ -75,18 +75,18 @@ jobs:
75
75
  needs: [install, test-shards-omit]
76
76
  steps:
77
77
  - name: checkout
78
- uses: actions/checkout@v4
78
+ uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
79
79
 
80
80
  - name: set node version
81
- uses: actions/setup-node@v4
81
+ uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
82
82
  with:
83
83
  node-version-file: ".nvmrc"
84
84
 
85
85
  - name: set terraform version
86
- uses: hashicorp/setup-terraform@v3
86
+ uses: hashicorp/setup-terraform@b9cd54a3c349d3f38e8881555d616ced269862dd # v3
87
87
 
88
88
  - name: get node-modules from cache
89
- uses: actions/cache/restore@v4
89
+ uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
90
90
  with:
91
91
  path: ./node_modules
92
92
  key: ${{ needs.install.outputs.node-modules-cache-key }}
@@ -99,15 +99,15 @@ jobs:
99
99
  needs: [install, test-shards-omit]
100
100
  steps:
101
101
  - name: checkout
102
- uses: actions/checkout@v4
102
+ uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
103
103
 
104
104
  - name: set node-version
105
- uses: actions/setup-node@v4
105
+ uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
106
106
  with:
107
107
  node-version-file: ".nvmrc"
108
108
 
109
109
  - name: get node-modules from cache
110
- uses: actions/cache/restore@v4
110
+ uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
111
111
  with:
112
112
  path: ./node_modules
113
113
  key: ${{ needs.install.outputs.node-modules-cache-key }}
@@ -120,15 +120,15 @@ jobs:
120
120
  needs: [install, test-shards-omit]
121
121
  steps:
122
122
  - name: checkout
123
- uses: actions/checkout@v4
123
+ uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
124
124
 
125
125
  - name: set node-version
126
- uses: actions/setup-node@v4
126
+ uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
127
127
  with:
128
128
  node-version-file: ".nvmrc"
129
129
 
130
130
  - name: get node-modules from cache
131
- uses: actions/cache/restore@v4
131
+ uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
132
132
  with:
133
133
  path: ./node_modules
134
134
  key: ${{ needs.install.outputs.node-modules-cache-key }}
@@ -147,7 +147,7 @@ jobs:
147
147
  acceptance-patterns: ${{ steps.acceptance.outputs.patterns }}
148
148
  steps:
149
149
  - name: checkout
150
- uses: actions/checkout@v4
150
+ uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
151
151
  with:
152
152
  sparse-checkout: |
153
153
  jest.integration.shards.jsonc
@@ -188,15 +188,15 @@ jobs:
188
188
  shard: ${{ fromJson(needs.enshard.outputs.integration-matrix) }}
189
189
  steps:
190
190
  - name: checkout
191
- uses: actions/checkout@v4
191
+ uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
192
192
 
193
193
  - name: set node-version
194
- uses: actions/setup-node@v4
194
+ uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
195
195
  with:
196
196
  node-version-file: ".nvmrc"
197
197
 
198
198
  - name: get node-modules from cache
199
- uses: actions/cache/restore@v4
199
+ uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
200
200
  with:
201
201
  path: ./node_modules
202
202
  key: ${{ needs.install.outputs.node-modules-cache-key }}
@@ -218,7 +218,7 @@ jobs:
218
218
 
219
219
  - name: get aws auth, if creds supplied
220
220
  if: ${{ inputs.creds-aws-role-arn }}
221
- uses: aws-actions/configure-aws-credentials@v4
221
+ uses: aws-actions/configure-aws-credentials@7474bc4690e29a8392af63c5b98e7449536d5c3a # v4
222
222
  with:
223
223
  role-to-assume: ${{ inputs.creds-aws-role-arn }}
224
224
  aws-region: ${{ inputs.creds-aws-region }}
@@ -272,15 +272,15 @@ jobs:
272
272
  shard: ${{ fromJson(needs.enshard.outputs.acceptance-matrix) }}
273
273
  steps:
274
274
  - name: checkout
275
- uses: actions/checkout@v4
275
+ uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
276
276
 
277
277
  - name: set node-version
278
- uses: actions/setup-node@v4
278
+ uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
279
279
  with:
280
280
  node-version-file: ".nvmrc"
281
281
 
282
282
  - name: get node-modules from cache
283
- uses: actions/cache/restore@v4
283
+ uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
284
284
  with:
285
285
  path: ./node_modules
286
286
  key: ${{ needs.install.outputs.node-modules-cache-key }}
@@ -302,7 +302,7 @@ jobs:
302
302
 
303
303
  - name: get aws auth, if creds supplied
304
304
  if: ${{ inputs.creds-aws-role-arn }}
305
- uses: aws-actions/configure-aws-credentials@v4
305
+ uses: aws-actions/configure-aws-credentials@7474bc4690e29a8392af63c5b98e7449536d5c3a # v4
306
306
  with:
307
307
  role-to-assume: ${{ inputs.creds-aws-role-arn }}
308
308
  aws-region: ${{ inputs.creds-aws-region }}
@@ -11,14 +11,14 @@ jobs:
11
11
  steps:
12
12
  - name: get github token
13
13
  id: github-token
14
- uses: actions/create-github-app-token@v2
14
+ uses: actions/create-github-app-token@fee1f7d63c2ff003460e3d139729b119787bc349 # v2
15
15
  with:
16
16
  owner: ${{ github.repository_owner }}
17
17
  repositories: ${{ github.event.repository.name }}
18
18
  app-id: ${{ vars.RHELEASE_APP_ID }}
19
19
  private-key: ${{ secrets.RHELEASE_APP_PRIVATE_KEY }}
20
20
 
21
- - uses: actions/checkout@v4
21
+ - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
22
22
  with:
23
23
  fetch-depth: 0
24
24
  token: ${{ steps.github-token.outputs.token }} # enables git push with app token
@@ -15,7 +15,7 @@ jobs:
15
15
  runs-on: ubuntu-24.04
16
16
  steps:
17
17
  - name: test:pullreq:title
18
- uses: amannn/action-semantic-pull-request@v5
18
+ uses: amannn/action-semantic-pull-request@e32d7e603df1aa1ba07e981f2a23455dee596825 # v5
19
19
  env:
20
20
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
21
21
  with:
@@ -15,16 +15,16 @@ jobs:
15
15
  needs: [install]
16
16
  steps:
17
17
  - name: checkout
18
- uses: actions/checkout@v4
18
+ uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
19
19
 
20
20
  - name: set node-version
21
- uses: actions/setup-node@v4
21
+ uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
22
22
  with:
23
23
  registry-url: "https://registry.npmjs.org/" # required to publish
24
24
  node-version-file: ".nvmrc"
25
25
 
26
26
  - name: node-modules cache get
27
- uses: actions/cache/restore@v4
27
+ uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
28
28
  id: cache
29
29
  with:
30
30
  path: ./node_modules
@@ -14,6 +14,10 @@ concurrency:
14
14
  group: ${{ github.workflow }}-${{ github.ref }} # per [workflow] x [branch, tag]
15
15
  cancel-in-progress: true # cancel workflows for non-latest commits
16
16
 
17
+ permissions:
18
+ id-token: write # required for oidc; a called workflow cannot exceed its caller's grant
19
+ contents: read
20
+
17
21
  jobs:
18
22
  github:
19
23
  uses: ./.github/workflows/.declastruct.yml
@@ -42,21 +42,21 @@ jobs:
42
42
  needs: [install]
43
43
  steps:
44
44
  - name: checkout
45
- uses: actions/checkout@v4
45
+ uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
46
46
 
47
47
  - name: set node-version
48
- uses: actions/setup-node@v4
48
+ uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
49
49
  with:
50
50
  node-version-file: ".nvmrc"
51
51
 
52
52
  - name: configure aws credentials (oidc)
53
- uses: aws-actions/configure-aws-credentials@v4
53
+ uses: aws-actions/configure-aws-credentials@7474bc4690e29a8392af63c5b98e7449536d5c3a # v4
54
54
  with:
55
55
  role-to-assume: ${{ inputs.creds-aws-role-arn-apply }}
56
56
  aws-region: ${{ inputs.creds-aws-region }}
57
57
 
58
58
  - name: node-modules cache get
59
- uses: actions/cache/restore@v4
59
+ uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
60
60
  with:
61
61
  path: ./node_modules
62
62
  key: ${{ needs.install.outputs.node-modules-cache-key }}
@@ -71,21 +71,21 @@ jobs:
71
71
  needs: [install, deploy]
72
72
  steps:
73
73
  - name: checkout
74
- uses: actions/checkout@v4
74
+ uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
75
75
 
76
76
  - name: set node-version
77
- uses: actions/setup-node@v4
77
+ uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
78
78
  with:
79
79
  node-version-file: ".nvmrc"
80
80
 
81
81
  - name: configure aws credentials (oidc)
82
- uses: aws-actions/configure-aws-credentials@v4
82
+ uses: aws-actions/configure-aws-credentials@7474bc4690e29a8392af63c5b98e7449536d5c3a # v4
83
83
  with:
84
84
  role-to-assume: ${{ inputs.creds-aws-role-arn-apply }}
85
85
  aws-region: ${{ inputs.creds-aws-region }}
86
86
 
87
87
  - name: node-modules cache get
88
- uses: actions/cache/restore@v4
88
+ uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
89
89
  with:
90
90
  path: ./node_modules
91
91
  key: ${{ needs.install.outputs.node-modules-cache-key }}
@@ -107,7 +107,7 @@ jobs:
107
107
  env:
108
108
  PAGERDUTY_INTEGRATION_KEY: ${{ secrets.pagerduty-integration-key }}
109
109
  if: failure() && env.PAGERDUTY_INTEGRATION_KEY
110
- uses: Entle/action-pagerduty-alert@0.2.0 # https://github.com/marketplace/actions/pagerduty-alert
110
+ uses: Entle/action-pagerduty-alert@e6ca54cd88948b8a50f5bb1071dfa5bdb149ce7e # 0.2.0 — https://github.com/marketplace/actions/pagerduty-alert
111
111
  with:
112
112
  pagerduty-integration-key: "${{ secrets.pagerduty-integration-key }}"
113
113
  pagerduty-dedup-key: github_workflow_failed
@@ -118,21 +118,21 @@ jobs:
118
118
  needs: [install, deploy]
119
119
  steps:
120
120
  - name: checkout
121
- uses: actions/checkout@v4
121
+ uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
122
122
 
123
123
  - name: set node-version
124
- uses: actions/setup-node@v4
124
+ uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
125
125
  with:
126
126
  node-version-file: ".nvmrc"
127
127
 
128
128
  - name: configure aws credentials (oidc)
129
- uses: aws-actions/configure-aws-credentials@v4
129
+ uses: aws-actions/configure-aws-credentials@7474bc4690e29a8392af63c5b98e7449536d5c3a # v4
130
130
  with:
131
131
  role-to-assume: ${{ inputs.creds-aws-role-arn-apply }}
132
132
  aws-region: ${{ inputs.creds-aws-region }}
133
133
 
134
134
  - name: node-modules cache get
135
- uses: actions/cache/restore@v4
135
+ uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
136
136
  with:
137
137
  path: ./node_modules
138
138
  key: ${{ needs.install.outputs.node-modules-cache-key }}
@@ -51,15 +51,15 @@ jobs:
51
51
  has-changes-planned: ${{ steps.evaluate-plan.outputs.has-changes-planned }}
52
52
  steps:
53
53
  - name: checkout
54
- uses: actions/checkout@v4
54
+ uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
55
55
 
56
56
  - name: set node-version
57
- uses: actions/setup-node@v4
57
+ uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
58
58
  with:
59
59
  node-version-file: ".nvmrc"
60
60
 
61
61
  - name: node-modules cache get
62
- uses: actions/cache/restore@v4
62
+ uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
63
63
  with:
64
64
  path: ./node_modules
65
65
  key: ${{ needs.install.outputs.node-modules-cache-key }}
@@ -67,7 +67,7 @@ jobs:
67
67
 
68
68
  - name: get aws auth
69
69
  if: ${{ inputs.creds-aws-role-arn-plan }}
70
- uses: aws-actions/configure-aws-credentials@v4
70
+ uses: aws-actions/configure-aws-credentials@7474bc4690e29a8392af63c5b98e7449536d5c3a # v4
71
71
  with:
72
72
  role-to-assume: ${{ inputs.creds-aws-role-arn-plan }}
73
73
  aws-region: ${{ inputs.creds-aws-region }}
@@ -112,15 +112,15 @@ jobs:
112
112
  if: ${{ inputs.allow-apply == true && needs.plan.outputs.has-changes-planned == 'true' }}
113
113
  steps:
114
114
  - name: checkout
115
- uses: actions/checkout@v4
115
+ uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
116
116
 
117
117
  - name: set node-version
118
- uses: actions/setup-node@v4
118
+ uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
119
119
  with:
120
120
  node-version-file: ".nvmrc"
121
121
 
122
122
  - name: node-modules cache get
123
- uses: actions/cache/restore@v4
123
+ uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
124
124
  with:
125
125
  path: ./node_modules
126
126
  key: ${{ needs.install.outputs.node-modules-cache-key }}
@@ -128,7 +128,7 @@ jobs:
128
128
 
129
129
  - name: get aws auth
130
130
  if: ${{ inputs.creds-aws-role-arn-apply }}
131
- uses: aws-actions/configure-aws-credentials@v4
131
+ uses: aws-actions/configure-aws-credentials@7474bc4690e29a8392af63c5b98e7449536d5c3a # v4
132
132
  with:
133
133
  role-to-assume: ${{ inputs.creds-aws-role-arn-apply }}
134
134
  aws-region: ${{ inputs.creds-aws-region }}
@@ -44,17 +44,17 @@ jobs:
44
44
  has-changes-planned: ${{ steps.evaluate-plan.outputs.has-changes-planned }}
45
45
  steps:
46
46
  - name: checkout
47
- uses: actions/checkout@v4
47
+ uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
48
48
 
49
49
  - name: get aws auth
50
50
  if: ${{ inputs.creds-aws-role-arn-plan }}
51
- uses: aws-actions/configure-aws-credentials@v4
51
+ uses: aws-actions/configure-aws-credentials@7474bc4690e29a8392af63c5b98e7449536d5c3a # v4
52
52
  with:
53
53
  role-to-assume: ${{ inputs.creds-aws-role-arn-plan }}
54
54
  aws-region: ${{ inputs.creds-aws-region }}
55
55
 
56
56
  - name: setup terraform
57
- uses: hashicorp/setup-terraform@v3
57
+ uses: hashicorp/setup-terraform@b9cd54a3c349d3f38e8881555d616ced269862dd # v3
58
58
 
59
59
  - name: terraform init
60
60
  run: terraform init
@@ -89,17 +89,17 @@ jobs:
89
89
  working-directory: ${{ inputs.working-directory }}
90
90
  steps:
91
91
  - name: checkout
92
- uses: actions/checkout@v4
92
+ uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
93
93
 
94
94
  - name: get aws auth
95
95
  if: ${{ inputs.creds-aws-role-arn-apply }}
96
- uses: aws-actions/configure-aws-credentials@v4
96
+ uses: aws-actions/configure-aws-credentials@7474bc4690e29a8392af63c5b98e7449536d5c3a # v4
97
97
  with:
98
98
  role-to-assume: ${{ inputs.creds-aws-role-arn-apply }}
99
99
  aws-region: ${{ inputs.creds-aws-region }}
100
100
 
101
101
  - name: setup terraform
102
- uses: hashicorp/setup-terraform@v3
102
+ uses: hashicorp/setup-terraform@b9cd54a3c349d3f38e8881555d616ced269862dd # v3
103
103
 
104
104
  - name: terraform init
105
105
  run: terraform init
@@ -14,6 +14,10 @@ concurrency:
14
14
  group: ${{ github.workflow }}-${{ github.ref }} # per [workflow] x [branch, tag]
15
15
  cancel-in-progress: true # cancel workflows for non-latest commits
16
16
 
17
+ permissions:
18
+ id-token: write # required for oidc; a called workflow cannot exceed its caller's grant
19
+ contents: read
20
+
17
21
  jobs:
18
22
  aws-test-terraform:
19
23
  uses: ./.github/workflows/.terraform.yml