Skip to main content

Local no-token scanner for GitHub repository hygiene and CI risk signals.

Project description

Repository Hygiene / CI Risk Preflight

Local no-token scanner for GitHub repository hygiene and CI risk signals before they become release blockers.

This is the bridge product in the Engineering Risk Preflight suite: it starts as a CLI, can be used in GitHub Actions, and can later inform a GitHub App/SaaS only after demand is validated.

What it checks

The scanner reads only files in a checked-out repository. It does not use the GitHub API, tokens, network calls, SaaS accounts, private repo integrations, or source uploads.

Current rule categories:

  • ci-deprecation: stale GitHub Actions majors such as upload-artifact@v3, download-artifact@v3, cache@v3, checkout@v3, setup-node@v3.
  • ci-runtime: local JavaScript actions using old Node runtimes.
  • ci-permissions: broad workflow permissions such as write-all, contents: write, and pull_request_target review prompts.
  • repo-hygiene: missing CODEOWNERS, SECURITY.md, CONTRIBUTING.md, and changelog/release history.
  • dependency-hygiene: missing Dependabot/Renovate config.
  • ci-observability: missing test report artifacts/summaries and artifact upload steps without if: always().
  • release-safety: release/publish workflows without visible guardrails.
  • ci-cost: jobs without visible timeout-minutes.

Try locally

python3 scanner.py examples
python3 scanner.py examples --format json
python3 scanner.py examples --format annotations
python3 scanner.py examples --min-severity medium
python3 scanner.py examples --fail-on-severity high
python3 scanner.py --list-rules

Config and baselines

Auto-load .repo-hygiene-preflight.json or pass --config:

{
  "ignore_rules": ["workflow-without-timeout"],
  "only_rules": [],
  "ignore_paths": ["docs/generated/**"],
  "severity_overrides": {"missing-contributing": "info"},
  "baseline_fingerprints": []
}

Baseline existing findings for gradual rollout:

python3 scanner.py . --format json --output report.json --write-baseline repo-hygiene-baseline.json
python3 scanner.py . --baseline repo-hygiene-baseline.json --fail-on-severity high

Outputs

  • Markdown report for local review or $GITHUB_STEP_SUMMARY.
  • JSON report for CI artifacts or later policy processing.
  • GitHub workflow annotation commands via --format annotations.
  • Stable finding fingerprints for suppressions and baselines.

Docs

  • docs/RULE_INVENTORY.md — current rule inventory.
  • docs/CONFIGURATION.md — config and baseline behavior.
  • docs/CI_USAGE.md — GitHub Actions usage patterns.
  • docs/GITHUB_ACTION_DRAFT.md — local design artifact for a future wrapper action.
  • docs/PYPI_TESTPYPI_READINESS.md — package readiness checklist.

Privacy posture

  • Local files only.
  • No GitHub token required.
  • No source upload.
  • Findings include file paths and matching lines; review before sharing publicly.
  • Rules are conservative preflight signals, not compliance/security guarantees.

Monetization hypothesis

Free CLI/GitHub Action first. Paid add-ons later only after demand validation: team policy packs, release-readiness rule bundles, scheduled org reports, or an org dashboard.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

repo_hygiene_ci_risk_preflight-0.1.0.tar.gz (12.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

repo_hygiene_ci_risk_preflight-0.1.0-py3-none-any.whl (11.3 kB view details)

Uploaded Python 3

File details

Details for the file repo_hygiene_ci_risk_preflight-0.1.0.tar.gz.

File metadata

File hashes

Hashes for repo_hygiene_ci_risk_preflight-0.1.0.tar.gz
Algorithm Hash digest
SHA256 6eca678626b844fd32efca879b5545ce10173ed08d7d2e819920734a9f04209e
MD5 6a0bfa597d5c59f11f9d0c30bcfb0f93
BLAKE2b-256 aeb3a77b9888f1dfcca550f9e6d28a6bdea9d7bd53338593efa0fb8ceae7e909

See more details on using hashes here.

Provenance

The following attestation bundles were made for repo_hygiene_ci_risk_preflight-0.1.0.tar.gz:

Publisher: publish.yml on vasiliy0/repo-hygiene-ci-risk-preflight

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file repo_hygiene_ci_risk_preflight-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for repo_hygiene_ci_risk_preflight-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9da8d5957092fe8091b4180cb250295547c716f0ab2de0f96423b699f2f6fca9
MD5 c94dd0db311681cb5e43b57969524b0a
BLAKE2b-256 981dea1e41fc0835d7cce67925774d418da878afac128e31cfbde96721de6bd5

See more details on using hashes here.

Provenance

The following attestation bundles were made for repo_hygiene_ci_risk_preflight-0.1.0-py3-none-any.whl:

Publisher: publish.yml on vasiliy0/repo-hygiene-ci-risk-preflight

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page