Minimal repository scanning CLI.
Project description
repo-sentinel-lite
Deterministic Python CLI for repository hygiene checks, lightweight secret scanning, and baseline-backed pre-commit validation.
repo-sentinel-lite scans a repository and emits stable JSON for:
- suspicious filenames such as
.env,*.pem,id_rsa, and*.kdbx - high-entropy strings that look like secrets
- missing standard files such as
README.md,LICENSE, and.gitignore
It also supports .reposentinel.toml overrides, JSON baselines for suppressing
known findings, and a pre-commit provider for repository-local enforcement.
Install
Install from the latest tagged GitHub source release:
python -m pip install "git+https://github.com/stacknil/repo-sentinel-lite.git@v0.6.1"
Requires Python 3.14.
repo-sentinel-lite is not published on production PyPI yet.
Usage
More copy-pasteable CLI workflows are in
docs/cli-recipes.md.
Scan the current repository. This defaults to deterministic JSON output:
repo-sentinel scan
Emit deterministic JSON explicitly for a specific path:
repo-sentinel scan --format json path/to/repo
Render a concise text summary for a specific path:
repo-sentinel scan --format text path/to/repo
Scan a specific path and save a baseline:
repo-sentinel scan --write-baseline baseline.json path/to/repo
Scan with an existing baseline applied:
repo-sentinel scan --baseline baseline.json path/to/repo
If the scanned repository already contains .reposentinel-baseline.json,
repo-sentinel scan applies it automatically.
Fail with exit code 1 when unsuppressed findings remain:
repo-sentinel scan --fail-on-findings path/to/repo
Use a .reposentinel.toml config to ignore paths or adjust thresholds:
ignore_globs = ["dist/*", ".venv/*"]
entropy_threshold = 4.2
Local development
Use Python 3.14, then run:
python -m pip install --upgrade pip
python -m pip install -e ".[dev]"
python -m pytest -q
ruff check .
These commands match the GitHub Actions CI workflow:
.github/workflows/ci.yml
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 repo_sentinel_lite-0.6.2.tar.gz.
File metadata
- Download URL: repo_sentinel_lite-0.6.2.tar.gz
- Upload date:
- Size: 18.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4ae888d50762e5e5110d188a74c50de6aa254f9b6cac843fac74392db9300df7
|
|
| MD5 |
ce76390827ebe05e10e8c168942a17e4
|
|
| BLAKE2b-256 |
00c0650d989e2e8e54b80b74cd7d6d684ee3749657130e67c485cfcd58fde5dd
|
Provenance
The following attestation bundles were made for repo_sentinel_lite-0.6.2.tar.gz:
Publisher:
release.yml on stacknil/repo-sentinel-lite
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
repo_sentinel_lite-0.6.2.tar.gz -
Subject digest:
4ae888d50762e5e5110d188a74c50de6aa254f9b6cac843fac74392db9300df7 - Sigstore transparency entry: 1262559656
- Sigstore integration time:
-
Permalink:
stacknil/repo-sentinel-lite@58828df451d47be9c9d82882d224671944d84438 -
Branch / Tag:
refs/tags/v0.6.2 - Owner: https://github.com/stacknil
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@58828df451d47be9c9d82882d224671944d84438 -
Trigger Event:
release
-
Statement type:
File details
Details for the file repo_sentinel_lite-0.6.2-py3-none-any.whl.
File metadata
- Download URL: repo_sentinel_lite-0.6.2-py3-none-any.whl
- Upload date:
- Size: 12.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b33d97ad92b65298555a1487085d801ac024314f6f6fcc6d154533a0d0296f1
|
|
| MD5 |
6ac72e968eb48b4739fb55df1a47438d
|
|
| BLAKE2b-256 |
7521f1d26f194ad8c5488edadfb54c770fa9eacbd8c5200891db895e86c973bd
|
Provenance
The following attestation bundles were made for repo_sentinel_lite-0.6.2-py3-none-any.whl:
Publisher:
release.yml on stacknil/repo-sentinel-lite
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
repo_sentinel_lite-0.6.2-py3-none-any.whl -
Subject digest:
5b33d97ad92b65298555a1487085d801ac024314f6f6fcc6d154533a0d0296f1 - Sigstore transparency entry: 1262559669
- Sigstore integration time:
-
Permalink:
stacknil/repo-sentinel-lite@58828df451d47be9c9d82882d224671944d84438 -
Branch / Tag:
refs/tags/v0.6.2 - Owner: https://github.com/stacknil
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@58828df451d47be9c9d82882d224671944d84438 -
Trigger Event:
release
-
Statement type: