Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/actions.lock
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down Expand Up @@ -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':
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/dogfood-gate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down
19 changes: 12 additions & 7 deletions lib/hypatia/cli.ex
Original file line number Diff line number Diff line change
Expand Up @@ -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 = []

Expand Down