Skip to main content

RepoLens

RepoLens statically assesses Python Git repositories and language-independent repository hygiene and GitHub Actions signals. It produces deterministic findings with relative file/line evidence, recommendations and transparent score deductions. RepoLens 0.1.1 is a packaging-only follow-up to the first GitHub release, 0.1.0. GitHub source remains the distribution channel; no PyPI upload has occurred.

Current status

The implemented CLI/configuration/reporting product passed Phase 13 dogfooding and all four hosted Windows/Linux Python 3.13/3.14 jobs through Phase 14 commit be672b2. Engineering roadmap 0–14 is complete; see readiness and dogfooding. RepoLens is a public GitHub source repository licensed under Apache-2.0. The licensed public baseline bb3c0c0 passed all four hosted jobs. The software remains version 0.1.1. The original v0.1.0 tag/release remains unchanged. The PyPI distribution is now named repolens-engineering; the Python import package and CLI command remain repolens. Analysis behavior and compatibility identifiers are unchanged. The prepared Trusted Publishing workflow is manual-only; uploading requires a separate owner-authorized run after the exact patch commit is green.

Implemented assessment scope

  • Local Git repositories and public HTTPS GitHub repositories.
  • Python-specific static analysis and language-independent repository checks.
  • Root ignore-policy path and ASCII case-collision observations.
  • Python bare-except/wildcard-import observations, conventional testing advisories, optional Bandit 1.9.4 security observations and three static GitHub Actions rules.
  • Evidence-based category scores that distinguish failed, skipped, and unavailable checks.
  • Console, versioned JSON, and standalone HTML reports from one typed report model.
  • Validated TOML configuration and severity-based CI quality gates.

Private repositories, target-code execution, other language-specific analyzers, AI services, web servers, and databases are outside v1. Documentation and Maintainability analysis and target dependency vulnerability auditing are not implemented assessment capabilities. Target tests/coverage are not executed or measured; GitHub Actions checks are not comprehensive validation. Earlier planned documentation-analysis wording is superseded by this implemented scope; Phase 14 will not invent missing analyzers to fill categories.

Development setup (Git Bash on Windows)

Python 3.13+ and Git are required. Use the latest security patch of your Python minor version. Install uv once in a bootstrap environment:

python -m venv .venv-bootstrap
source .venv-bootstrap/Scripts/activate
python -m pip install uv==0.12.23
uv sync --locked --group dev
uv run --locked pytest --cov --cov-report=term-missing
uv run --locked repolens --help
uv run --locked repolens --version

See development for all gates and Git recommendations, architecture for boundaries and safety, and roadmap for milestones. After setup, scan an inert or trusted-to-remain-stable local Git working tree:

uv run --locked repolens scan "C:/projects/example" --fail-under 85.50

Target code is never executed. Normal findings do not fail a complete assessment without a requested gate; incomplete work always returns exit 1.

Local/public acquisition and report choices after setup:

uv run --locked repolens scan .
uv run --locked repolens scan . --format json
uv run --locked repolens scan . --format html --output repolens-report.html
uv run --locked repolens scan https://github.com/pallets/itsdangerous --format json

HTML requires a new output path; existing files are never overwritten. Incomplete and gate-failed scans still emit the requested report and return exit 1. JSON overall values are exact decimal strings or null, with explicit availability. See reporting for schema, safety and output compatibility. Explicit --config now supports bounded literal exclusions, exact rule disabling and score/severity gates. Target config is never auto-loaded. CLI gate values override their corresponding file values; all formats disclose effective settings with additive optional metadata under JSON schema 1. See configuration for the complete schema and trust model.

uv run --locked repolens scan "C:/projects/example" --config policy.toml --fail-on-severity high --format json

See scoring for outcome states, scope, arithmetic and limitations. The unchanged repolens-python-static-v1 policy weights code quality/testing/ security/hygiene/CI as 2/1/3/1/1, with INFO/LOW/MEDIUM/HIGH/CRITICAL penalties 0/5/15/30/60. Each rule deducts once at its highest observed severity. Unavailable planned work blocks a numeric overall score; non-applicable work leaves the denominator. A score of 100 means no deductive findings in completed supported scope, not a correctness/security certification. Configuration changes disclosed scope, so differently configured scores must be interpreted accordingly. See acquisition for source lifetime, exclusions, Git isolation and practical safety limitations. The acquisition API is not an OS sandbox. See orchestration for registration, execution, failure isolation and explicit-policy report composition. See repository data for the analyzer-safe snapshot and hygiene rules for exact signals and limitations. See Python source and Python rules for source limits, encoding, grammar, lifecycle and evidence semantics.

Safety and limitations

RepoLens will analyze potentially hostile input statically. It will not install target dependencies, import target modules, run tests, or execute repository scripts. Detected tests are not executed coverage. Static evidence cannot establish runtime correctness or prove a repository is secure.

Development and contributing

See CONTRIBUTING.md and SECURITY.md. See release changes and the owner-action checklist. Intentionally submitted contributions follow the project's Apache-2.0 terms and engineering requirements.

License

RepoLens is licensed under the Apache License 2.0. See LICENSE. The original software release is 0.1.0 on GitHub. Packaging patch 0.1.1 prepares the distinct distribution name without renaming imports/commands. PyPI installation is not advertised until publication succeeds. See publishing.

Metadata

Release files for repolens-engineering 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for repolens-engineering 0.1.1
File Size Uploaded
repolens_engineering-0.1.1.tar.gz 54.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for repolens-engineering 0.1.1
File Interpreter ABI Platform
repolens_engineering-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 128.8 kB

Release files / repolens_engineering-0.1.1.tar.gz

Download URL repolens_engineering-0.1.1.tar.gz
Size 54.5 kB
Tags Source
SHA-256 checksum
How to use checksums
23b6aa0a9d65bd08896132c07ed5fee06e719f4f2d52f783ad0cb82d941e0a8c
BLAKE2b-256 checksum
How to use checksums
0cc50cf093ffad0da369a0cfe7c3dc7b5b0888b4fbd3ed9b8ed0b10460c733e2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release files / repolens_engineering-0.1.1-py3-none-any.whl

Download URL repolens_engineering-0.1.1-py3-none-any.whl
Size 74.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1e37364ce909fcedb64305f424040dd87546a08c4b4e7d813a650bd891ce5863
BLAKE2b-256 checksum
How to use checksums
70fd7ae270e314853baff364993bdfc5b77421a443aa29c511a5e5ba1361da28
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page