robertrautenbach/rust-affected
Computes affected Cargo workspace members from a set of changed files via the Cargo dependency graph.
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Stale
- License
- None
Inputs
| name | description | required | default |
|---|---|---|---|
| changed_files | Space- or newline-separated list of changed file paths relative to the workspace root. Typically produced by a prior step such as `git diff --name-only`, `tj-actions/changed-files`, or `dorny/paths-filter`. | yes | — |
| force_triggers | Space- or newline-separated list of glob patterns that trigger a full rebuild of the entire workspace when any matching file changes. Supports *, **, and ? via globset. A bare name (e.g. "Cargo.lock") matches that exact path only. A trailing slash (e.g. "infra/") matches the directory and everything inside it. Full glob patterns are also supported (e.g. "**/*.sql", ".github/**"). If omitted, no force triggers are applied. | no | — |
| excluded_members | Space- or newline-separated list of workspace member names or path prefixes to exclude from all outputs (changed_crates, affected_library_members, affected_binary_members). A plain name (e.g. "my-tool") matches the crate name directly. An entry containing "/" is matched against the crate's directory relative to the workspace root: a trailing slash (e.g. "tools/") excludes every crate under that directory, while an exact relative path (e.g. "tools/my-tool") excludes only that crate. Useful for internal tooling or helper crates that should never be deployed. If omitted, no members are excluded. | no | — |
Outputs
| name | description |
|---|---|
| changed_crates | JSON array of crates with directly changed files |
| affected_library_members | JSON array of all affected workspace members (including transitive dependents) |
| affected_binary_members | JSON array of affected deployable binaries (services) |
| force_all | Whether a force-trigger file changed |