Skip to content

feat: support per-repository scanner profiles - #1

Merged
edgepillar merged 2 commits into
mainfrom
feat/repo-scanner-config
Aug 23, 2026
Merged

edgepillar merged 2 commits into
mainfrom
feat/repo-scanner-config

Conversation

@edgepillar

@edgepillar edgepillar commented Aug 23, 2026

Copy link
Copy Markdown
Owner

Summary

  • add --scanner-config-file support to loupectl repo add and repo update
  • persist scanner configuration updates through the protocol, server, and storage layers
  • add extra_source_paths to repository source discovery
  • allow explicitly selected extensionless operational files such as Dockerfile and Caddyfile
  • reject absolute paths, traversal, missing paths, and symlink targets outside the worktree
  • document the per-repository scanner profile workflow

Motivation

Repositories can contain security-relevant operational files outside Loupe's automatically discovered package roots. A stored per-repository profile makes that scope explicit and repeatable without discarding existing scan history when the profile changes.

The first prepared consumer is 0x3639/testnet, whose profile adds its devnet setup script, container definitions, Caddy configuration, and Vite configuration to the normal TypeScript source scope.

Validation

  • cargo fmt --all -- --check
  • cargo clippy --workspace --all-targets --all-features -- -D warnings on Linux
  • cargo check --workspace --all-targets on Linux
  • cargo test --workspace --all-targets on Linux
  • cargo test -p loupe-cli -p loupe-proto -p loupe-storage (115 local tests passed)
  • source-discovery harness, including the real testnet profile (18 local tests passed)
  • git diff --check

Safety

Configured paths are canonicalized and constrained to the checked-out worktree. Invalid, escaping, and missing entries are ignored with a warning. Explicit files still honor path exclusions and size limits.

Privacy

The change contains no credentials, repository secrets, personal identifiers, or local filesystem paths.

@edgepillar
edgepillar marked this pull request as ready for review August 23, 2026 07:34
@edgepillar
edgepillar merged commit 5c8744c into main Aug 23, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant