@metasession.co/devaudit-cli 0.3.27 → 0.3.29
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/dist/index.js +152 -11
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/sdlc/files/_common/scripts/close-out-release.sh +10 -13
- package/sdlc/files/_common/scripts/evaluate-npm-audit.sh +103 -66
- package/sdlc/files/_common/scripts/evaluate-npm-audit.test.sh +108 -3
- package/sdlc/files/_common/scripts/markdown-table.sh +126 -0
- package/sdlc/files/_common/scripts/markdown-table.test.sh +36 -0
- package/sdlc/files/_common/scripts/validate-compliance-artifacts.sh +15 -6
- package/sdlc/files/_common/skills/sdlc-implementer/SKILL.md +1 -1
- package/sdlc/files/ci/check-release-approval.yml.template +4 -0
- package/sdlc/files/ci/ci.yml.template +10 -2
- package/sdlc/files/ci/close-out-release.yml.template +3 -0
- package/sdlc/files/ci/compliance-evidence.yml.template +8 -5
- package/sdlc/files/ci/feature-e2e.yml.template +3 -2
- package/sdlc/files/ci/post-deploy-prod.yml.template +3 -0
- package/sdlc/files/ci/python/ci.yml.template +8 -5
- package/sdlc/files/ci/reconcile-deployment.yml.template +3 -0
- package/sdlc/package.json +1 -1
|
@@ -22,6 +22,10 @@ on:
|
|
|
22
22
|
pull_request:
|
|
23
23
|
branches: [main]
|
|
24
24
|
workflow_dispatch:
|
|
25
|
+
inputs:
|
|
26
|
+
runner_label:
|
|
27
|
+
description: 'Optional one-run runner label override. Blank uses repository CI_RUNNER_LABEL.'
|
|
28
|
+
required: false
|
|
25
29
|
repository_dispatch:
|
|
26
30
|
types: [release-approved]
|
|
27
31
|
|
|
@@ -15,6 +15,10 @@ name: CI Pipeline
|
|
|
15
15
|
|
|
16
16
|
on:
|
|
17
17
|
workflow_dispatch:
|
|
18
|
+
inputs:
|
|
19
|
+
runner_label:
|
|
20
|
+
description: 'Optional one-run runner label override. Blank uses repository CI_RUNNER_LABEL.'
|
|
21
|
+
required: false
|
|
18
22
|
pull_request:
|
|
19
23
|
branches: [{{INTEGRATION_BRANCH}}]
|
|
20
24
|
push:
|
|
@@ -178,7 +182,9 @@ jobs:
|
|
|
178
182
|
{{E2E_DEV_SERVER_STEP}}
|
|
179
183
|
|
|
180
184
|
- name: Wait for dev server
|
|
181
|
-
|
|
185
|
+
# The inner wait-on timeout is diagnostic; the outer deadline keeps a
|
|
186
|
+
# hung child from consuming the entire quality-gates job budget.
|
|
187
|
+
run: timeout --signal=TERM --kill-after=15s 150s npx wait-on http://localhost:3000 --timeout 120000
|
|
182
188
|
|
|
183
189
|
# Compute the set of e2e spec files added on this branch (relative
|
|
184
190
|
# to the merge base). The evidenceShot helper in the consumer's
|
|
@@ -352,8 +358,10 @@ jobs:
|
|
|
352
358
|
fi
|
|
353
359
|
chmod +x scripts/standalone-housekeeping-release.sh scripts/upload-evidence.sh 2>/dev/null || true
|
|
354
360
|
bash scripts/standalone-housekeeping-release.sh validate "$VERSION" "$DECLARATION"
|
|
361
|
+
# A bare-date version identifies the release, not a requirement. Use
|
|
362
|
+
# the portal's common evidence scope while preserving release ownership.
|
|
355
363
|
bash scripts/upload-evidence.sh \
|
|
356
|
-
{{PROJECT_SLUG}}
|
|
364
|
+
{{PROJECT_SLUG}} _compliance-docs release_ticket "$DECLARATION" \
|
|
357
365
|
--release "$VERSION" --create-release-if-missing \
|
|
358
366
|
--environment uat --category release_artifact --sdlc-stage 2 \
|
|
359
367
|
--git-sha ${{ github.sha }} --branch ${{ github.ref_name }}
|
|
@@ -28,6 +28,9 @@ on:
|
|
|
28
28
|
release_pr:
|
|
29
29
|
description: 'Release PR number or URL to backlink (optional)'
|
|
30
30
|
required: false
|
|
31
|
+
runner_label:
|
|
32
|
+
description: 'Optional one-run runner label override. Blank uses repository CI_RUNNER_LABEL.'
|
|
33
|
+
required: false
|
|
31
34
|
repository_dispatch:
|
|
32
35
|
types: [release-closed]
|
|
33
36
|
|
|
@@ -21,6 +21,10 @@ name: Compliance Evidence Upload
|
|
|
21
21
|
|
|
22
22
|
on:
|
|
23
23
|
workflow_dispatch:
|
|
24
|
+
inputs:
|
|
25
|
+
runner_label:
|
|
26
|
+
description: 'Optional one-run runner label override. Blank uses repository CI_RUNNER_LABEL.'
|
|
27
|
+
required: false
|
|
24
28
|
push:
|
|
25
29
|
branches: [develop]
|
|
26
30
|
paths:
|
|
@@ -443,16 +447,15 @@ jobs:
|
|
|
443
447
|
DERIVED_RELEASE="${REQS[0]}"
|
|
444
448
|
fi
|
|
445
449
|
|
|
446
|
-
if [ "$PRIOR_EVENT" = "deployment_status" ] && [ "${#REQS[@]}" -eq 0 ]; then
|
|
447
|
-
echo "::error::Deployment-origin E2E evidence requires tagged or in-scope REQ attribution; refusing _compliance-docs fallback."
|
|
448
|
-
exit 1
|
|
449
|
-
fi
|
|
450
|
-
|
|
451
450
|
if [ "${#REQS[@]}" -eq 0 ]; then
|
|
452
451
|
if echo "$DERIVED_RELEASE" | grep -qE '^v[0-9]{4}\.[0-9]{2}\.[0-9]{2}([.][0-9]+)?$'; then
|
|
453
452
|
echo "No tracked REQ was executed for standalone/integration housekeeping ${DERIVED_RELEASE}; preserving this as GitHub historical CI without portal approval evidence."
|
|
454
453
|
exit 0
|
|
455
454
|
fi
|
|
455
|
+
if [ "$PRIOR_EVENT" = "deployment_status" ]; then
|
|
456
|
+
echo "::error::Deployment-origin E2E evidence requires tagged or in-scope REQ attribution; refusing _compliance-docs fallback."
|
|
457
|
+
exit 1
|
|
458
|
+
fi
|
|
456
459
|
REQS=(_compliance-docs)
|
|
457
460
|
fi
|
|
458
461
|
# A bounded Playwright process exits the workflow with `failure`
|
|
@@ -61,7 +61,7 @@ jobs:
|
|
|
61
61
|
- uses: actions/checkout@v6
|
|
62
62
|
with:
|
|
63
63
|
fetch-depth: 0
|
|
64
|
-
- uses: actions/setup-node@
|
|
64
|
+
- uses: actions/setup-node@v6
|
|
65
65
|
with:
|
|
66
66
|
node-version: {{NODE_VERSION}}
|
|
67
67
|
- name: Install dependencies (skip if lockfile unchanged)
|
|
@@ -84,7 +84,8 @@ jobs:
|
|
|
84
84
|
{{E2E_DEV_SERVER_STEP}}
|
|
85
85
|
|
|
86
86
|
- name: Wait for dev server
|
|
87
|
-
|
|
87
|
+
# Keep a process-level bound in addition to wait-on's internal timer.
|
|
88
|
+
run: timeout --signal=TERM --kill-after=15s 150s npx wait-on http://localhost:3000 --timeout 120000
|
|
88
89
|
|
|
89
90
|
# Compute the set of e2e spec files added on this branch (relative
|
|
90
91
|
# to the merge base). The evidenceShot helper reads E2E_NEW_SPECS
|
|
@@ -29,6 +29,9 @@ on:
|
|
|
29
29
|
release:
|
|
30
30
|
description: 'Optional REQ-XXX / version to promote (blank = all in-scope from pending release tickets).'
|
|
31
31
|
required: false
|
|
32
|
+
runner_label:
|
|
33
|
+
description: 'Optional one-run runner label override. Blank uses repository CI_RUNNER_LABEL.'
|
|
34
|
+
required: false
|
|
32
35
|
deployment_status:
|
|
33
36
|
types: [created]
|
|
34
37
|
|
|
@@ -14,6 +14,10 @@ name: CI Pipeline
|
|
|
14
14
|
|
|
15
15
|
on:
|
|
16
16
|
workflow_dispatch:
|
|
17
|
+
inputs:
|
|
18
|
+
runner_label:
|
|
19
|
+
description: 'Optional one-run runner label override. Blank uses repository CI_RUNNER_LABEL.'
|
|
20
|
+
required: false
|
|
17
21
|
pull_request:
|
|
18
22
|
branches: [{{INTEGRATION_BRANCH}}]
|
|
19
23
|
push:
|
|
@@ -311,11 +315,10 @@ jobs:
|
|
|
311
315
|
name: Upload Evidence
|
|
312
316
|
runs-on: {{RUNNER}}
|
|
313
317
|
needs: [quality-gates, register-release]
|
|
314
|
-
#
|
|
315
|
-
#
|
|
316
|
-
#
|
|
317
|
-
|
|
318
|
-
if: ${{ always() && !cancelled() && github.ref_name == '{{INTEGRATION_BRANCH}}' && needs.register-release.result == 'success' }}
|
|
318
|
+
# Pull requests do not register or upload release evidence. Keeping this
|
|
319
|
+
# intentionally inapplicable job out of `always()` avoids a cancelled
|
|
320
|
+
# aggregate workflow when Register Release is correctly skipped (#500).
|
|
321
|
+
if: ${{ !cancelled() && github.event_name != 'pull_request' && github.ref_name == '{{INTEGRATION_BRANCH}}' && needs.register-release.result == 'success' }}
|
|
319
322
|
env:
|
|
320
323
|
DEVAUDIT_BASE_URL_VAR: ${{ vars.DEVAUDIT_BASE_URL }}
|
|
321
324
|
DEVAUDIT_API_KEY: ${{ secrets.DEVAUDIT_API_KEY }}
|
package/sdlc/package.json
CHANGED