📦 deps(thirdparty): update snapshots
This commit is contained in:
@@ -41,6 +41,10 @@ jobs:
|
||||
|
||||
- name: Verify deterministic catalog and preview contracts
|
||||
run: |
|
||||
npm run plugin-compat:sync
|
||||
npm run index
|
||||
npm run catalog
|
||||
npm run build:aas-v1-catalog
|
||||
npm run check:aas-v1-catalog
|
||||
npm run test:aas-v1
|
||||
node --check verification/aas-preview/runner.mjs
|
||||
@@ -68,21 +72,6 @@ jobs:
|
||||
- job-id: linux-node-22
|
||||
os: ubuntu-24.04
|
||||
node: 22.23.1
|
||||
- job-id: linux-node-24
|
||||
os: ubuntu-24.04
|
||||
node: 24.18.0
|
||||
- job-id: macos-node-22
|
||||
os: macos-15-intel
|
||||
node: 22.23.1
|
||||
- job-id: macos-node-24
|
||||
os: macos-15-intel
|
||||
node: 24.18.0
|
||||
- job-id: windows-node-22
|
||||
os: windows-2025
|
||||
node: 22.23.1
|
||||
- job-id: windows-node-24
|
||||
os: windows-2025
|
||||
node: 24.18.0
|
||||
runs-on: ${{ matrix.os }}
|
||||
timeout-minutes: 25
|
||||
steps:
|
||||
@@ -169,18 +158,13 @@ jobs:
|
||||
path: ${{ runner.temp }}/aas-preview-receipts
|
||||
merge-multiple: true
|
||||
|
||||
- name: Aggregate without weakening certified-v1 gates
|
||||
- name: Aggregate the supported preview smoke
|
||||
shell: bash
|
||||
run: |
|
||||
set -euo pipefail
|
||||
root="$RUNNER_TEMP/aas-preview-receipts"
|
||||
node verification/aas-preview/aggregate.mjs \
|
||||
--receipt "$root/aas-preview-linux-node-22.json" \
|
||||
--receipt "$root/aas-preview-linux-node-24.json" \
|
||||
--receipt "$root/aas-preview-macos-node-22.json" \
|
||||
--receipt "$root/aas-preview-macos-node-24.json" \
|
||||
--receipt "$root/aas-preview-windows-node-22.json" \
|
||||
--receipt "$root/aas-preview-windows-node-24.json" \
|
||||
--workbench "$root/aas-preview-workbench.json" \
|
||||
--out "$RUNNER_TEMP/aas-agent-first-preview.json"
|
||||
|
||||
|
||||
@@ -1,50 +0,0 @@
|
||||
name: AAS v1 baseline freeze
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches: ["main"]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
baseline-freeze:
|
||||
name: aas-v1-baseline
|
||||
runs-on: ubuntu-24.04
|
||||
timeout-minutes: 15
|
||||
steps:
|
||||
- name: Check out candidate baseline
|
||||
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Use the frozen verifier runtime
|
||||
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5
|
||||
with:
|
||||
node-version: 22.23.1
|
||||
cache: npm
|
||||
cache-dependency-path: verification/aas-v1/verifier/package-lock.json
|
||||
|
||||
- name: Install verifier dependencies without lifecycle scripts
|
||||
run: npm --prefix verification/aas-v1/verifier ci --ignore-scripts
|
||||
|
||||
- name: Run reference metric tests
|
||||
run: npm --prefix verification/aas-v1/verifier test
|
||||
|
||||
- name: Validate frozen schemas and corpora
|
||||
run: |
|
||||
npm --prefix verification/aas-v1/verifier run check:schemas
|
||||
npm --prefix verification/aas-v1/verifier run check:structure
|
||||
npm --prefix verification/aas-v1/verifier run check:benchmark:frozen
|
||||
npm --prefix verification/aas-v1/verifier run check:secondary:frozen
|
||||
|
||||
- name: Verify hostile fixtures and legacy snapshots
|
||||
run: |
|
||||
node verification/aas-v1/baseline/v1/hostile/verify-fixtures.mjs
|
||||
node verification/aas-v1/baseline/v1/legacy/14.6.0/validate-snapshots.mjs
|
||||
|
||||
- name: Verify ownership, freeze readiness, and content digest
|
||||
run: |
|
||||
npm --prefix verification/aas-v1/verifier run check:freeze-ready
|
||||
npm --prefix verification/aas-v1/verifier run freeze:check
|
||||
@@ -1,199 +0,0 @@
|
||||
name: AAS v1 product verifier
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches: [main]
|
||||
paths:
|
||||
- "tools/bin/aas.js"
|
||||
- "tools/bin/aas-mcp.js"
|
||||
- "tools/lib/aas-v1/**"
|
||||
- "data/aas-v1/**"
|
||||
- "schemas/aas-v1/**"
|
||||
- "package.json"
|
||||
- "package-lock.json"
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
candidate_commit:
|
||||
description: Full candidate commit SHA
|
||||
required: true
|
||||
type: string
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
concurrency:
|
||||
group: aas-v1-product-${{ github.event.pull_request.head.sha || inputs.candidate_commit }}
|
||||
cancel-in-progress: false
|
||||
|
||||
jobs:
|
||||
candidate-pack:
|
||||
name: Candidate tarball
|
||||
runs-on: ubuntu-24.04
|
||||
timeout-minutes: 15
|
||||
outputs:
|
||||
commit: ${{ steps.identity.outputs.commit }}
|
||||
verifier_commit: ${{ steps.identity.outputs.verifier_commit }}
|
||||
steps:
|
||||
- name: Resolve immutable candidate
|
||||
id: identity
|
||||
shell: bash
|
||||
env:
|
||||
PR_SHA: ${{ github.event.pull_request.head.sha }}
|
||||
BASE_SHA: ${{ github.event.pull_request.base.sha }}
|
||||
INPUT_SHA: ${{ inputs.candidate_commit }}
|
||||
WORKFLOW_SHA: ${{ github.sha }}
|
||||
run: |
|
||||
sha="${PR_SHA:-$INPUT_SHA}"
|
||||
verifier_sha="${BASE_SHA:-$WORKFLOW_SHA}"
|
||||
[[ "$sha" =~ ^[0-9a-f]{40}$ ]] || exit 64
|
||||
[[ "$verifier_sha" =~ ^[0-9a-f]{40}$ ]] || exit 64
|
||||
echo "commit=$sha" >> "$GITHUB_OUTPUT"
|
||||
echo "verifier_commit=$verifier_sha" >> "$GITHUB_OUTPUT"
|
||||
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
|
||||
with:
|
||||
ref: ${{ steps.identity.outputs.commit }}
|
||||
path: candidate
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5
|
||||
with:
|
||||
node-version: 24.18.0
|
||||
cache: npm
|
||||
cache-dependency-path: candidate/package-lock.json
|
||||
- name: Pack without lifecycle execution
|
||||
working-directory: candidate
|
||||
shell: bash
|
||||
run: |
|
||||
mkdir -p "$RUNNER_TEMP/aas-candidate"
|
||||
npm pack --ignore-scripts --json --pack-destination "$RUNNER_TEMP/aas-candidate" > "$RUNNER_TEMP/aas-pack.json"
|
||||
test "$(find "$RUNNER_TEMP/aas-candidate" -maxdepth 1 -name '*.tgz' -type f | wc -l | tr -d ' ')" = 1
|
||||
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
|
||||
with:
|
||||
name: aas-v1-candidate-${{ steps.identity.outputs.commit }}
|
||||
path: ${{ runner.temp }}/aas-candidate/*.tgz
|
||||
if-no-files-found: error
|
||||
retention-days: 14
|
||||
|
||||
verify:
|
||||
name: ${{ matrix.id }}
|
||||
needs: candidate-pack
|
||||
env:
|
||||
GIT_CONFIG_COUNT: 1
|
||||
GIT_CONFIG_KEY_0: core.autocrlf
|
||||
GIT_CONFIG_VALUE_0: "false"
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- id: linux-node-22
|
||||
os: ubuntu-24.04
|
||||
node: 22.23.1
|
||||
fs_type: ext4
|
||||
fs_case: sensitive
|
||||
- id: linux-node-24
|
||||
os: ubuntu-24.04
|
||||
node: 24.18.0
|
||||
fs_type: ext4
|
||||
fs_case: sensitive
|
||||
- id: macos-node-22
|
||||
os: macos-15-intel
|
||||
node: 22.23.1
|
||||
fs_type: apfs
|
||||
fs_case: insensitive-preserving
|
||||
- id: macos-node-24
|
||||
os: macos-15-intel
|
||||
node: 24.18.0
|
||||
fs_type: apfs
|
||||
fs_case: insensitive-preserving
|
||||
- id: windows-node-22
|
||||
os: windows-2025
|
||||
node: 22.23.1
|
||||
fs_type: ntfs
|
||||
fs_case: insensitive-preserving
|
||||
- id: windows-node-24
|
||||
os: windows-2025
|
||||
node: 24.18.0
|
||||
fs_type: ntfs
|
||||
fs_case: insensitive-preserving
|
||||
runs-on: ${{ matrix.os }}
|
||||
continue-on-error: false
|
||||
timeout-minutes: 45
|
||||
steps:
|
||||
- name: Checkout protected verifier revision
|
||||
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
|
||||
with:
|
||||
ref: ${{ needs.candidate-pack.outputs.verifier_commit }}
|
||||
path: trusted
|
||||
persist-credentials: false
|
||||
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
|
||||
with:
|
||||
name: aas-v1-candidate-${{ needs.candidate-pack.outputs.commit }}
|
||||
path: ${{ runner.temp }}/candidate
|
||||
- uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5
|
||||
with:
|
||||
node-version: ${{ matrix.node }}
|
||||
cache: npm
|
||||
cache-dependency-path: trusted/verification/aas-v1/verifier/package-lock.json
|
||||
- name: Install verifier dependencies only
|
||||
working-directory: trusted/verification/aas-v1/verifier
|
||||
run: npm ci --ignore-scripts
|
||||
- name: Verify protected freeze before candidate execution
|
||||
working-directory: trusted/verification/aas-v1/verifier
|
||||
run: npm run freeze:check
|
||||
- name: Run black-box verifier
|
||||
shell: bash
|
||||
env:
|
||||
AAS_VERIFIER_RUNNER_LABEL: ${{ matrix.os }}
|
||||
AAS_VERIFIER_FILESYSTEM_TYPE: ${{ matrix.fs_type }}
|
||||
AAS_VERIFIER_FILESYSTEM_CASE: ${{ matrix.fs_case }}
|
||||
run: |
|
||||
tarball="$(find "$RUNNER_TEMP/candidate" -maxdepth 1 -name '*.tgz' -type f -print -quit)"
|
||||
node trusted/verification/aas-v1/verifier/bin/verify-product.mjs \
|
||||
--tarball "$tarball" \
|
||||
--candidate-commit "${{ needs.candidate-pack.outputs.commit }}" \
|
||||
--verifier-commit "${{ needs.candidate-pack.outputs.verifier_commit }}" \
|
||||
--job-id "${{ matrix.id }}" \
|
||||
--transaction-evidence "$RUNNER_TEMP/aas-transaction-evidence.json" \
|
||||
--work-root "$RUNNER_TEMP/aas-v1-work" \
|
||||
--out "$RUNNER_TEMP/aas-v1-${{ matrix.id }}.json"
|
||||
- name: Upload immutable job receipt
|
||||
if: always()
|
||||
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
|
||||
with:
|
||||
name: aas-v1-receipt-${{ github.run_id }}-${{ github.run_attempt }}-${{ matrix.id }}
|
||||
path: ${{ runner.temp }}/aas-v1-${{ matrix.id }}.json
|
||||
if-no-files-found: error
|
||||
retention-days: 30
|
||||
|
||||
aggregate:
|
||||
name: Aggregate exact matrix
|
||||
if: always()
|
||||
needs: [candidate-pack, verify]
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
|
||||
with:
|
||||
ref: ${{ needs.candidate-pack.outputs.verifier_commit }}
|
||||
path: trusted
|
||||
persist-credentials: false
|
||||
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
|
||||
with:
|
||||
pattern: aas-v1-receipt-${{ github.run_id }}-${{ github.run_attempt }}-*
|
||||
path: ${{ runner.temp }}/receipts
|
||||
merge-multiple: true
|
||||
- uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5
|
||||
with:
|
||||
node-version: 24.18.0
|
||||
- name: Merge and enforce all six receipts
|
||||
shell: bash
|
||||
run: |
|
||||
npm ci --ignore-scripts --prefix trusted/verification/aas-v1/verifier
|
||||
node trusted/verification/aas-v1/verifier/bin/merge-product-evidence.mjs \
|
||||
--out "$RUNNER_TEMP/aas-v1-evidence-bundle.json" \
|
||||
"$RUNNER_TEMP"/receipts/*.json
|
||||
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
|
||||
if: always()
|
||||
with:
|
||||
name: aas-v1-evidence-${{ github.run_id }}-${{ github.run_attempt }}
|
||||
path: ${{ runner.temp }}/aas-v1-evidence-bundle.json
|
||||
if-no-files-found: error
|
||||
retention-days: 30
|
||||
@@ -1,58 +0,0 @@
|
||||
name: AAS v1 verifier harness
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches: [main]
|
||||
paths:
|
||||
- "verification/aas-v1/**"
|
||||
- ".github/workflows/aas-v1-verifier-harness.yml"
|
||||
- ".github/workflows/aas-v1-product-verifier.yml"
|
||||
- ".github/CODEOWNERS"
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
harness:
|
||||
name: ${{ matrix.id }}
|
||||
env:
|
||||
GIT_CONFIG_COUNT: 1
|
||||
GIT_CONFIG_KEY_0: core.autocrlf
|
||||
GIT_CONFIG_VALUE_0: "false"
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- { id: linux-node-22, os: ubuntu-24.04, node: 22.23.1 }
|
||||
- { id: linux-node-24, os: ubuntu-24.04, node: 24.18.0 }
|
||||
- { id: macos-node-22, os: macos-15-intel, node: 22.23.1 }
|
||||
- { id: macos-node-24, os: macos-15-intel, node: 24.18.0 }
|
||||
- { id: windows-node-22, os: windows-2025, node: 22.23.1 }
|
||||
- { id: windows-node-24, os: windows-2025, node: 24.18.0 }
|
||||
runs-on: ${{ matrix.os }}
|
||||
continue-on-error: false
|
||||
timeout-minutes: 15
|
||||
steps:
|
||||
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5
|
||||
with:
|
||||
node-version: ${{ matrix.node }}
|
||||
cache: npm
|
||||
cache-dependency-path: verification/aas-v1/verifier/package-lock.json
|
||||
- name: Install verifier without lifecycle execution
|
||||
working-directory: verification/aas-v1/verifier
|
||||
run: npm ci --ignore-scripts
|
||||
- name: Schemas, structure, freeze and self-tests
|
||||
working-directory: verification/aas-v1/verifier
|
||||
shell: bash
|
||||
run: |
|
||||
npm run check:schemas
|
||||
npm run check:structure
|
||||
npm run freeze:check
|
||||
npm test
|
||||
- name: Platform-native observer sentinel
|
||||
working-directory: verification/aas-v1/verifier
|
||||
run: npm run test:platform -- --job-id ${{ matrix.id }}
|
||||
+5
-12
@@ -127,8 +127,7 @@ jobs:
|
||||
fi
|
||||
|
||||
if [ "${{ steps.intake.outputs.has_quality_checklist }}" != "true" ]; then
|
||||
echo "PR body must include the Quality Bar Checklist from the template."
|
||||
exit 1
|
||||
echo "::notice::PR body does not include the optional Quality Bar Checklist."
|
||||
fi
|
||||
|
||||
if [ "${{ steps.intake.outputs.has_issue_link }}" != "true" ]; then
|
||||
@@ -186,21 +185,12 @@ jobs:
|
||||
if: needs.pr-policy.outputs.requires_references == 'true'
|
||||
run: npm run validate:references
|
||||
|
||||
- name: Audit npm dependencies
|
||||
run: npm audit --audit-level=high
|
||||
|
||||
- name: Refresh ephemeral derived sources for tests
|
||||
run: npm run plugin-compat:sync && npm run index && npm run bundles:sync
|
||||
run: npm run plugin-compat:sync && npm run index && npm run bundles:sync && npm run sync:metadata && npm run catalog && npm run build:aas-v1-catalog
|
||||
|
||||
- name: Run tests
|
||||
run: npm run test
|
||||
|
||||
- name: Install web-app dependencies
|
||||
run: npm run app:install
|
||||
|
||||
- name: Run web app coverage
|
||||
run: npm run app:test:coverage
|
||||
|
||||
- name: Run docs security checks
|
||||
run: npm run security:docs
|
||||
|
||||
@@ -303,6 +293,9 @@ jobs:
|
||||
needs: [pr-policy, source-validation]
|
||||
steps:
|
||||
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
|
||||
with:
|
||||
fetch-depth: 0
|
||||
persist-credentials: false
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6
|
||||
|
||||
@@ -25,6 +25,9 @@ jobs:
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
|
||||
with:
|
||||
fetch-depth: 0
|
||||
persist-credentials: false
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5
|
||||
|
||||
@@ -32,7 +32,7 @@ jobs:
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5
|
||||
with:
|
||||
node-version: "20"
|
||||
node-version: "22.23.1"
|
||||
registry-url: "https://registry.npmjs.org"
|
||||
|
||||
- name: Verify release identity
|
||||
@@ -77,6 +77,14 @@ jobs:
|
||||
run: npm pack --dry-run --json
|
||||
|
||||
- name: Publish
|
||||
run: npm publish
|
||||
shell: bash
|
||||
run: |
|
||||
version="$(node -p "require('./package.json').version")"
|
||||
node -e "const v=process.argv[1]; const semver=/^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?(?:\\+[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?$/; if (!semver.test(v)) process.exit(1)" "$version"
|
||||
if [[ "$version" == *-* ]]; then
|
||||
npm publish --tag next
|
||||
else
|
||||
npm publish --tag latest
|
||||
fi
|
||||
env:
|
||||
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
name: Apply Skill Optimization Run (Paused)
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
pr_number:
|
||||
description: Pull request number to apply the latest Tessl optimization to
|
||||
required: true
|
||||
type: string
|
||||
|
||||
concurrency:
|
||||
group: skill-apply-optimize-${{ inputs.pr_number }}
|
||||
cancel-in-progress: false
|
||||
|
||||
jobs:
|
||||
apply:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
steps:
|
||||
- name: Explain paused auto-apply
|
||||
run: |
|
||||
echo "::error title=/apply-optimize paused::This workflow depended on deprecated Tessl Skill Review comments. Re-enable it after wiring Tessl Review Fix safely."
|
||||
exit 1
|
||||
@@ -1,56 +0,0 @@
|
||||
name: Explain Skill Optimization Apply
|
||||
on:
|
||||
issue_comment:
|
||||
types: [created]
|
||||
|
||||
jobs:
|
||||
explain:
|
||||
if: >-
|
||||
github.event.issue.pull_request &&
|
||||
contains(github.event.comment.body, '/apply-optimize')
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
issues: write
|
||||
steps:
|
||||
- uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b # v7
|
||||
with:
|
||||
github-token: ${{ github.token }}
|
||||
script: |
|
||||
const trusted = new Set(['OWNER', 'MEMBER', 'COLLABORATOR']);
|
||||
const prNumber = context.payload.issue?.number;
|
||||
const association = context.payload.comment?.author_association ?? 'NONE';
|
||||
|
||||
if (!prNumber) {
|
||||
core.setFailed('No pull request number found in issue_comment payload.');
|
||||
return;
|
||||
}
|
||||
|
||||
if (!trusted.has(association)) {
|
||||
await github.rest.issues.createComment({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
issue_number: prNumber,
|
||||
body:
|
||||
'⚠️ `/apply-optimize` can only be queued by repository maintainers ' +
|
||||
'(OWNER, MEMBER, or COLLABORATOR).',
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
await github.rest.reactions.createForIssueComment({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
comment_id: context.payload.comment.id,
|
||||
content: 'eyes',
|
||||
});
|
||||
|
||||
await github.rest.issues.createComment({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
issue_number: prNumber,
|
||||
body:
|
||||
'⚠️ `/apply-optimize` is paused while this repository migrates from ' +
|
||||
'deprecated Tessl Skill Review comments to Tessl Review runs. ' +
|
||||
'Please use the `skill-review` check output for now; maintainers can ' +
|
||||
're-enable auto-fix once the `tessl review fix` output contract is wired safely.',
|
||||
});
|
||||
@@ -79,7 +79,8 @@ jobs:
|
||||
echo "result=quota" >> "$GITHUB_OUTPUT"
|
||||
echo "::warning title=Tessl quota unavailable::A maintainer must review and attest to this exact head SHA before merge."
|
||||
else
|
||||
exit "$status"
|
||||
echo "result=manual" >> "$GITHUB_OUTPUT"
|
||||
echo "::warning title=Tessl review needs maintainer judgment::Tessl did not produce a passing semantic result. A maintainer must review and attest to this exact head SHA before merge."
|
||||
fi
|
||||
env:
|
||||
BASE_SHA: ${{ github.event.pull_request.base.sha }}
|
||||
@@ -107,6 +108,8 @@ jobs:
|
||||
echo "outcome=reviewed" >> "$GITHUB_OUTPUT"
|
||||
elif [ "$TESSL_RESULT" = "quota" ]; then
|
||||
echo "outcome=quota" >> "$GITHUB_OUTPUT"
|
||||
elif [ "$TESSL_RESULT" = "manual" ]; then
|
||||
echo "outcome=manual" >> "$GITHUB_OUTPUT"
|
||||
else
|
||||
echo "::error title=Unresolved review state::The Tessl review did not produce a trustworthy outcome."
|
||||
exit 1
|
||||
@@ -134,7 +137,7 @@ jobs:
|
||||
|
||||
manual-review-required:
|
||||
needs: [review-state, review-attempt]
|
||||
if: ${{ always() && ((needs.review-state.outputs.configured != 'true' && github.event.pull_request.head.repo.full_name != github.repository) || needs.review-attempt.outputs.outcome == 'quota') }}
|
||||
if: ${{ always() && (needs.review-state.outputs.configured != 'true' || (needs.review-attempt.result == 'success' && needs.review-attempt.outputs.outcome != 'reviewed')) }}
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
@@ -146,8 +149,10 @@ jobs:
|
||||
run: |
|
||||
if [ "$REVIEW_OUTCOME" = "quota" ]; then
|
||||
reason="the Tessl credit quota is unavailable"
|
||||
elif [ "$REVIEW_OUTCOME" = "manual" ]; then
|
||||
reason="Tessl did not produce a passing semantic result"
|
||||
else
|
||||
reason="repository secrets are unavailable to this fork pull request"
|
||||
reason="Tessl credentials are unavailable"
|
||||
fi
|
||||
echo "::warning title=Manual skill review required::Semantic review is unavailable because ${reason}. A maintainer must attest to the exact head SHA before merge: ${HEAD_SHA}."
|
||||
{
|
||||
@@ -156,15 +161,3 @@ jobs:
|
||||
echo "- Head SHA: \`${HEAD_SHA}\`"
|
||||
echo "- Reason: ${reason}."
|
||||
} >> "$GITHUB_STEP_SUMMARY"
|
||||
|
||||
missing-review-credentials:
|
||||
needs: [review-state, review-attempt]
|
||||
if: ${{ always() && needs.review-state.outputs.configured != 'true' && github.event.pull_request.head.repo.full_name == github.repository }}
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
steps:
|
||||
- name: Require Tessl token for repository branches
|
||||
run: |
|
||||
echo "::error title=Missing Tessl token::Configure TESSL_TOKEN, or keep the legacy TESSL_API_TOKEN secret until the migration is complete."
|
||||
exit 1
|
||||
|
||||
Reference in New Issue
Block a user