mirror of
https://github.com/microsoft/agent-framework.git
synced 2026-06-16 21:04:09 +08:00
8ad66637d8
* Python: fix prek runner running fmt/lint in all packages on core change When a core package file changed, run_tasks_in_changed_packages.py ran fmt, lint, and pyright in ALL 22 packages (66 tasks). Only type-checking tasks (pyright, mypy) need to propagate to all packages since type changes in core affect downstream packages. File-local tasks (fmt, lint) only need to run in packages with actual file changes. This reduces a core-only change from 66 tasks to 24 tasks (2 local + 22 pyright). Also adds no-commit-to-branch builtin hook to protect the main branch from direct commits. * Python: add agent skills extracted from AGENTS.md and coding standards Add 5 skills to python/.github/skills/ following the Agent Skills format: - python-development: coding standards, type annotations, docstrings, logging - python-testing: test structure, fixtures, running tests, async mode - python-code-quality: linting, formatting, type checking, prek hooks, CI - python-package-management: monorepo structure, lazy loading, versioning - python-samples: sample structure, PEP 723, documentation guidelines * Python: deduplicate AGENTS.md and instructions with agent skills * updated skills * fixes from review * Python: increase timeout for web search integration test
72 lines
2.2 KiB
YAML
72 lines
2.2 KiB
YAML
fail_fast: true
|
|
exclude: ^scripts/
|
|
repos:
|
|
- repo: builtin
|
|
hooks:
|
|
- id: check-toml
|
|
name: Check TOML files
|
|
files: \.toml$
|
|
exclude: ^packages/lab/cookiecutter-agent-framework-lab/
|
|
- id: check-yaml
|
|
name: Check YAML files
|
|
files: \.yaml$
|
|
- id: check-json
|
|
name: Check JSON files
|
|
files: \.json$
|
|
exclude: ^.*\.vscode\/.*|^demos/samples/chatkit-integration/frontend/(tsconfig.*\.json|package-lock\.json)$
|
|
- id: end-of-file-fixer
|
|
name: Fix End of File
|
|
files: \.py$
|
|
exclude: ^packages/lab/cookiecutter-agent-framework-lab/
|
|
- id: mixed-line-ending
|
|
name: Check Mixed Line Endings
|
|
files: \.py$
|
|
exclude: ^packages/lab/cookiecutter-agent-framework-lab/
|
|
- id: trailing-whitespace
|
|
name: Trim Trailing Whitespace
|
|
exclude: ^packages/lab/cookiecutter-agent-framework-lab/
|
|
- id: check-merge-conflict
|
|
name: Check Merge Conflicts
|
|
- id: detect-private-key
|
|
name: Detect Private Keys
|
|
- id: check-added-large-files
|
|
name: Check Added Large Files
|
|
- id: no-commit-to-branch
|
|
name: Protect main branch
|
|
args: [--branch, main]
|
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
rev: v6.0.0
|
|
hooks:
|
|
- id: check-ast
|
|
name: Check Valid Python Samples
|
|
types: ["python"]
|
|
exclude: ^packages/lab/cookiecutter-agent-framework-lab/
|
|
- repo: https://github.com/asottile/pyupgrade
|
|
rev: v3.21.2
|
|
hooks:
|
|
- id: pyupgrade
|
|
name: Upgrade Python syntax
|
|
args: [--py310-plus]
|
|
exclude: ^packages/lab/cookiecutter-agent-framework-lab/
|
|
- repo: local
|
|
hooks:
|
|
- id: poe-check
|
|
name: Run checks through Poe
|
|
entry: uv run poe prek-check
|
|
language: system
|
|
- repo: https://github.com/PyCQA/bandit
|
|
rev: 1.9.3
|
|
hooks:
|
|
- id: bandit
|
|
name: Bandit Security Checks
|
|
args: ["-c", "pyproject.toml"]
|
|
additional_dependencies: ["bandit[toml]"]
|
|
- repo: https://github.com/astral-sh/uv-pre-commit
|
|
# uv version.
|
|
rev: 0.10.0
|
|
hooks:
|
|
# Update the uv lockfile
|
|
- id: uv-lock
|
|
name: Update uv lockfile
|
|
files: pyproject.toml
|