57 lines
1.9 KiB
Markdown
57 lines
1.9 KiB
Markdown
|
|
# Bezalel's Devkit — Shared Tools for the Wizard Fleet
|
||
|
|
|
||
|
|
This directory contains reusable CLI tools and Python modules for CI, testing, deployment, observability, and Gitea automation. Any wizard can invoke them via `python -m devkit.<tool>`.
|
||
|
|
|
||
|
|
## Tools
|
||
|
|
|
||
|
|
### `gitea_client` — Gitea API Client
|
||
|
|
List issues/PRs, post comments, create PRs, update issues.
|
||
|
|
|
||
|
|
```bash
|
||
|
|
python -m devkit.gitea_client issues --state open --limit 20
|
||
|
|
python -m devkit.gitea_client create-comment --number 142 --body "Update from Bezalel"
|
||
|
|
python -m devkit.gitea_client prs --state open
|
||
|
|
```
|
||
|
|
|
||
|
|
### `health` — Fleet Health Monitor
|
||
|
|
Checks system load, disk, memory, running processes, and key package versions.
|
||
|
|
|
||
|
|
```bash
|
||
|
|
python -m devkit.health --threshold-load 1.0 --threshold-disk 90.0 --fail-on-critical
|
||
|
|
```
|
||
|
|
|
||
|
|
### `notebook_runner` — Notebook Execution Wrapper
|
||
|
|
Parameterizes and executes Jupyter notebooks via Papermill with structured JSON reporting.
|
||
|
|
|
||
|
|
```bash
|
||
|
|
python -m devkit.notebook_runner task.ipynb output.ipynb -p threshold=1.0 -p hostname=forge
|
||
|
|
```
|
||
|
|
|
||
|
|
### `smoke_test` — Fast Smoke Test Runner
|
||
|
|
Runs core import checks, CLI entrypoint tests, and one bare green-path E2E.
|
||
|
|
|
||
|
|
```bash
|
||
|
|
python -m devkit.smoke_test --verbose
|
||
|
|
```
|
||
|
|
|
||
|
|
### `secret_scan` — Secret Leak Scanner
|
||
|
|
Scans the repo for API keys, tokens, and private keys.
|
||
|
|
|
||
|
|
```bash
|
||
|
|
python -m devkit.secret_scan --path . --fail-on-find
|
||
|
|
```
|
||
|
|
|
||
|
|
### `wizard_env` — Environment Validator
|
||
|
|
Checks that a wizard environment has all required binaries, env vars, Python packages, and Hermes config.
|
||
|
|
|
||
|
|
```bash
|
||
|
|
python -m devkit.wizard_env --json --fail-on-incomplete
|
||
|
|
```
|
||
|
|
|
||
|
|
## Philosophy
|
||
|
|
|
||
|
|
- **CLI-first** — Every tool is runnable as `python -m devkit.<tool>`
|
||
|
|
- **JSON output** — Easy to parse from other agents and CI pipelines
|
||
|
|
- **Zero dependencies beyond stdlib** where possible; optional heavy deps are runtime-checked
|
||
|
|
- **Fail-fast** — Exit codes are meaningful for CI gating
|