Repo metadata hygiene scanner — catch version drift, stale changelogs, missing PEP 621 fields, broken README links, and leaked secret files before they ship.
Project description
MetaGuard
Repo metadata hygiene scanner for Python packages. Catches the boring,
shippable-but-broken mistakes that slip past pytest and build:
- Version drift —
pyproject.tomlversion vssrc/<pkg>/__init__.__version__vs the latest git tag. Mismatches are flagged as errors. - Stale CHANGELOG — top entry doesn't match the declared version.
- Missing PEP 621 fields —
description,authors,license,requires-python,readme… - License declared, file missing —
[project].licensebut noLICENSEat root. - Committed secret files —
.env,*.pem,*.key,credentials*,.pypirc,*.tfstate… (respects.gitignoreso intentional secrets don't false-positive). - Dead README links — optional network probe (
--check-links).
Install
pip install kryptorious-metaguard
Usage
# Scan current dir
metaguard check
# Scan a path, emit JSON for CI
metaguard check ./my-package --json
# Also probe README URLs
metaguard check . --check-links
Exit code is 1 if any error-severity issue is found (CI gate), 0 otherwise.
Example output
Metadata Health: 75/100
Checks run: 6
Errors: 1 Warnings: 1
ERROR VERSION_DRIFT pyproject='1.2.3' but init:demo='9.9.9'
/repo
WARN NO_CHANGELOG No CHANGELOG file found
CI integration
- name: Metadata hygiene
run: metaguard check . --check-links
Part of the Kryptorious developer toolkit. Built for the 32-package fleet and shipped so you can use it too.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kryptorious_metaguard-1.0.1.tar.gz.
File metadata
- Download URL: kryptorious_metaguard-1.0.1.tar.gz
- Upload date:
- Size: 8.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6a80931b3fbb5fd8a3e3c50a3ce515f3e66f0955986a510106bf81daf3a6b035
|
|
| MD5 |
94ff70da5a860138113c0dbb4ddb8826
|
|
| BLAKE2b-256 |
adf4d7b500092cb1af427dcce91ec6ccdfd617d8142d26df58650eaa5da19d49
|
File details
Details for the file kryptorious_metaguard-1.0.1-py3-none-any.whl.
File metadata
- Download URL: kryptorious_metaguard-1.0.1-py3-none-any.whl
- Upload date:
- Size: 8.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
49aecb8cc93c47653fcb0045f49ef11aa8fe54ff56a626ef5d4d2900a2adccfc
|
|
| MD5 |
8ad74dc9c411d30184cff3c0b16451cf
|
|
| BLAKE2b-256 |
89a0f973a2444183b0d19d22978b5d7e17161cc7d2c004ad6fc5e1b6a9714161
|