diff --git a/.github/workflows/actions.lock b/.github/workflows/actions.lock index 759c3445..04da3687 100644 --- a/.github/workflows/actions.lock +++ b/.github/workflows/actions.lock @@ -35,7 +35,7 @@ workflows: - 'dependabot/fetch-metadata@v3.1.0' '.github/workflows/dogfood-gate.yml': - 'actions/checkout@v7.0.1' - - 'hyperpolymath/a2ml-ecosystem@main' + - 'hyperpolymath/deed-ecosystem@main' - 'hyperpolymath/k9-ecosystem@main' '.github/workflows/estate-rescan.yml': - 'actions/cache@v6.1.0' @@ -294,14 +294,14 @@ dependencies: commit: 'sha1-6037f33647c3f17758a2356c80fc4a53d7e0685d' owner_id: 75048950 repo_id: 623796603 - 'hyperpolymath/a2ml-ecosystem@main': + 'hyperpolymath/deed-ecosystem@main': ref: 'main' - commit: 'sha1-c992d2882ee1e62bf5c78b5f9a1893a6a16730e4' + commit: 'sha1-f7a40a4d5cc82b2e73f861119baa6818d77a448d' owner_id: 6759885 repo_id: 1275649586 'hyperpolymath/k9-ecosystem@main': ref: 'main' - commit: 'sha1-3f250fba42e432c7ff47b48f59525bec3357136b' + commit: 'sha1-2155aa26a21758f2ba119f61bc7e0e1981c106fb' owner_id: 6759885 repo_id: 1275650185 'ruby/setup-ruby@v1.321.0': diff --git a/.github/workflows/dogfood-gate.yml b/.github/workflows/dogfood-gate.yml index 43b9a0cb..f2a1f0a0 100644 --- a/.github/workflows/dogfood-gate.yml +++ b/.github/workflows/dogfood-gate.yml @@ -47,7 +47,7 @@ jobs: - name: Validate A2ML manifests if: steps.detect.outputs.count > 0 - uses: hyperpolymath/a2ml-ecosystem/validate-action@main + uses: hyperpolymath/deed-ecosystem/validate-action@main with: path: '.' strict: 'false' diff --git a/lib/hypatia/cli.ex b/lib/hypatia/cli.ex index 72f4c7f0..4f4d182a 100644 --- a/lib/hypatia/cli.ex +++ b/lib/hypatia/cli.ex @@ -301,14 +301,19 @@ defmodule Hypatia.CLI do # ─── Finding collection across rule modules ────────────────────────── @doc """ - Run the named rule modules against `repo_path` and return normalized findings - (`%{rule_module, type, severity, file, reason, action}`). Public so the RSR - conformance oracle can delegate content-scan criteria to the live scanners - rather than reimplement per-file detection. `rules` is a list of module atoms - (e.g. `[:cicd_rules, :structural_drift]`); GitHub-API modules - (`:dependabot_alerts`, `:secret_scanning_alerts`, `:code_scanning_alerts`, - `:scorecard`) require network + token and return nothing offline. + Runs the selected rule modules against a repository and produces findings in a + common map format. Findings covered by configured suppressions are excluded. + + ## Parameters + + - repo_path: Path to the repository to scan. + - rules: Rule module identifiers to run. + + ## Returns + + A list of normalized finding maps. """ + @spec collect_findings(String.t(), [atom()]) :: [map()] def collect_findings(repo_path, rules) do results = []