






















@@ -20,6 +20,8 @@ jobs:
2020# Preflight: establish routing truth and job matrices once, then let real
2121# work fan out from a single source of truth.
2222preflight:
23+permissions:
24+contents: read
2325if: github.event_name != 'pull_request' || !github.event.pull_request.draft
2426runs-on: blacksmith-16vcpu-ubuntu-2404
2527timeout-minutes: 20
@@ -298,6 +300,8 @@ jobs:
298300 # Run the fast security/SCM checks in parallel with scope detection so the
299301# main Node jobs do not have to wait for Python/pre-commit setup.
300302security-fast:
303+permissions:
304+contents: read
301305if: github.event_name != 'pull_request' || !github.event.pull_request.draft
302306runs-on: blacksmith-16vcpu-ubuntu-2404
303307timeout-minutes: 20
@@ -396,6 +400,8 @@ jobs:
396400# Keep this overlapping with the fast correctness lanes so green PRs get heavy
397401# test/build feedback sooner instead of waiting behind a full `check` pass.
398402build-artifacts:
403+permissions:
404+contents: read
399405needs: [preflight]
400406if: needs.preflight.outputs.run_build_artifacts == 'true'
401407runs-on: blacksmith-16vcpu-ubuntu-2404
@@ -449,6 +455,8 @@ jobs:
449455retention-days: 1
450456451457checks-fast-core:
458+permissions:
459+contents: read
452460name: ${{ matrix.check_name }}
453461needs: [preflight]
454462if: needs.preflight.outputs.run_checks_fast == 'true'
@@ -493,6 +501,8 @@ jobs:
493501 esac
494502495503 checks-node-extensions-shard:
504+permissions:
505+contents: read
496506name: ${{ matrix.check_name }}
497507needs: [preflight]
498508if: needs.preflight.outputs.run_checks_fast == 'true'
@@ -520,6 +530,8 @@ jobs:
520530run: pnpm test:extensions:batch -- "$OPENCLAW_EXTENSION_BATCH"
521531522532checks-node-extensions:
533+permissions:
534+contents: read
523535name: checks-node-extensions
524536needs: [preflight, checks-node-extensions-shard]
525537if: always() && needs.preflight.outputs.run_checks_fast == 'true'
@@ -536,6 +548,8 @@ jobs:
536548 fi
537549538550 checks:
551+permissions:
552+contents: read
539553name: ${{ matrix.check_name }}
540554needs: [preflight, build-artifacts]
541555if: always() && needs.preflight.outputs.run_checks == 'true' && needs.build-artifacts.result == 'success'
@@ -622,6 +636,8 @@ jobs:
622636 esac
623637624638 checks-node-core-test-shard:
639+permissions:
640+contents: read
625641name: ${{ matrix.check_name }}
626642needs: [preflight, build-artifacts]
627643if: always() && needs.preflight.outputs.run_checks == 'true' && needs.build-artifacts.result == 'success'
@@ -711,6 +727,8 @@ jobs:
711727 EOF
712728713729 checks-node-core-test:
730+permissions:
731+contents: read
714732name: checks-node-core
715733needs: [preflight, checks-node-core-test-shard]
716734if: always() && needs.preflight.outputs.run_checks == 'true'
@@ -727,6 +745,8 @@ jobs:
727745 fi
728746729747 extension-fast:
748+permissions:
749+contents: read
730750name: "extension-fast"
731751needs: [preflight]
732752if: needs.preflight.outputs.run_extension_fast == 'true'
@@ -755,6 +775,8 @@ jobs:
755775756776# Types, lint, and format check.
757777check:
778+permissions:
779+contents: read
758780name: "check"
759781needs: [preflight]
760782if: always() && needs.preflight.outputs.run_check == 'true'
@@ -782,6 +804,8 @@ jobs:
782804run: pnpm build:strict-smoke
783805784806check-additional:
807+permissions:
808+contents: read
785809name: "check-additional"
786810needs: [preflight]
787811if: always() && needs.preflight.outputs.run_check_additional == 'true'
@@ -989,6 +1013,8 @@ jobs:
9891013 exit "$failures"
99010149911015 build-smoke:
1016+permissions:
1017+contents: read
9921018name: "build-smoke"
9931019needs: [preflight, build-artifacts]
9941020if: always() && needs.preflight.outputs.run_build_smoke == 'true' && (github.event_name != 'push' || needs.build-artifacts.result == 'success')
@@ -1043,6 +1069,8 @@ jobs:
1043106910441070# Validate docs (format, lint, broken links) only when docs files changed.
10451071check-docs:
1072+permissions:
1073+contents: read
10461074needs: [preflight]
10471075if: needs.preflight.outputs.run_check_docs == 'true'
10481076runs-on: blacksmith-16vcpu-ubuntu-2404
@@ -1064,6 +1092,8 @@ jobs:
10641092run: pnpm check:docs
1065109310661094skills-python:
1095+permissions:
1096+contents: read
10671097needs: [preflight]
10681098if: needs.preflight.outputs.run_skills_python_job == 'true'
10691099runs-on: blacksmith-16vcpu-ubuntu-2404
@@ -1092,6 +1122,8 @@ jobs:
10921122run: python -m pytest -q skills
1093112310941124checks-windows:
1125+permissions:
1126+contents: read
10951127name: ${{ matrix.check_name }}
10961128needs: [preflight, build-artifacts]
10971129if: always() && needs.preflight.outputs.run_checks_windows == 'true' && needs.build-artifacts.result == 'success'
@@ -1207,6 +1239,8 @@ jobs:
12071239 esac
1208124012091241 macos-node:
1242+permissions:
1243+contents: read
12101244name: ${{ matrix.check_name }}
12111245needs: [preflight, build-artifacts]
12121246if: always() && needs.preflight.outputs.run_macos_node == 'true' && needs.build-artifacts.result == 'success'
@@ -1260,6 +1294,8 @@ jobs:
12601294 esac
1261129512621296 macos-swift:
1297+permissions:
1298+contents: read
12631299name: "macos-swift"
12641300needs: [preflight]
12651301if: needs.preflight.outputs.run_macos_swift == 'true'
@@ -1324,6 +1360,8 @@ jobs:
13241360 exit 1
1325136113261362 android:
1363+permissions:
1364+contents: read
13271365name: ${{ matrix.check_name }}
13281366needs: [preflight]
13291367if: needs.preflight.outputs.run_android_job == 'true'
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。