mirror of
https://github.com/deepseek-ai/deepseek-harness
synced 2026-08-15 21:04:50 +00:00
Regenerate THIRD_PARTY_NOTICES.md from a pre-commit job whenever a manifest, lock file, vendor manifest, or pyproject is staged, and assert the committed bytes inside the generator spec the test lane already runs. Drops the separate doc-sync gate: no extra CI process, and a dependency edit no longer bounces back from CI to rerun a generator.
37 lines
1.3 KiB
YAML
37 lines
1.3 KiB
YAML
# Git hooks (lefthook). Keep these local checkpoints fast; CI owns the full
|
|
# repository-wide gate matrix.
|
|
# Install: `node scripts/install-lefthook.mjs` (runs automatically via postinstall).
|
|
|
|
pre-commit:
|
|
jobs:
|
|
- name: format (staged)
|
|
glob: '*.{ts,tsx,mts,cts,mjs}'
|
|
exclude:
|
|
- 'vendor/*/src/**'
|
|
run: node_modules/.bin/eslint --config eslint.format.config.mjs --fix --no-warn-ignored {staged_files}
|
|
stage_fixed: true
|
|
|
|
- name: lint (staged)
|
|
glob: '*.{ts,tsx,mts,cts,mjs}'
|
|
exclude:
|
|
- 'vendor/*/src/**'
|
|
run: node_modules/.bin/tsx scripts/run-oxlint.ts --fix --no-error-on-unmatched-pattern {staged_files}
|
|
stage_fixed: true
|
|
|
|
# Regenerate rather than reject: a dependency edit that forgot the notices
|
|
# would otherwise fail the test lane long after the commit.
|
|
- name: third-party notices (staged)
|
|
glob: '{package.json,*/package.json,*/*/package.json,*/*/*/package.json,pnpm-workspace.yaml,pnpm-lock.yaml,vendor/README.md,python/*/pyproject.toml}'
|
|
run: node_modules/.bin/tsx scripts/gen-third-party-notices.ts && git add THIRD_PARTY_NOTICES.md
|
|
|
|
- name: whitespace (staged)
|
|
run: git diff --cached --check
|
|
|
|
- name: vendor manifest guard
|
|
run: scripts/check-vendor-manifest.sh
|
|
|
|
pre-push:
|
|
jobs:
|
|
- name: typecheck
|
|
run: node_modules/.bin/tsc -b --pretty false
|