pub struct Facts {Show 17 fields
pub repo_root: String,
pub is_git: bool,
pub has_commits: bool,
pub ecosystems: Vec<Ecosystem>,
pub packages: Vec<Package>,
pub committers_total: usize,
pub committers_recent_year: usize,
pub tags: Vec<String>,
pub has_semver_tag: bool,
pub has_ge_1_0_release: bool,
pub has_ci: bool,
pub dependency_bot: Option<String>,
pub has_issues_dir: bool,
pub readme_self_label: Option<String>,
pub description: Option<String>,
pub maturity_signals: MaturitySignals,
pub inferred_maturity: Maturity,
}Expand description
The deterministic repo-fact report — a pure function of (repo tree, git HEAD), emitted by ossctl facts and consumed by /oss-init and audit.
Every field is always present (an empty/unborn repo still gets a defined value for each), mirroring the Python detector’s “exit 0 even for an empty repo” contract.
Fields§
§repo_root: StringThe canonicalized repository root the facts were gathered from.
is_git: boolWhether the root is inside a git work tree.
has_commits: boolWhether the repository has at least one commit (HEAD resolves).
ecosystems: Vec<Ecosystem>Detected packaging ecosystems, in canonical order. [binary] when no
package manifest is found (a compiled-artifact-only repo).
packages: Vec<Package>One entry per root-level package manifest that names a package (plus
Cargo.toml/go.mod always, even as a virtual workspace).
committers_total: usizeDistinct committers across all history (git shortlog -sne --all).
committers_recent_year: usizeDistinct committers within the last year — a production signal.
All tag names in the repository.
has_semver_tag: boolWhether any tag parses as a SemVer version (a release signal).
has_ge_1_0_release: boolWhether a >=1.0 release exists — a >=1.0 SemVer tag or a manifest
version >=1.0. Never probes a registry (that would need the network and
break reproducibility).
has_ci: boolWhether a CI configuration is present (.github/workflows holding at
least one entry, or a known single-file CI config).
dependency_bot: Option<String>The detected dependency-update bot (dependabot / renovate), or null.
has_issues_dir: boolWhether an issues/ directory is present.
readme_self_label: Option<String>"spike" when the README self-labels as pre-release/WIP, else null.
description: Option<String>A short project description: the first manifest description, else the
first non-heading README line (both truncated to 120 characters).
maturity_signals: MaturitySignalsThe raw truth-table signals behind Self::inferred_maturity.
inferred_maturity: MaturityThe inferred maturity (SCHEMA.md §4 truth table, tie → mvp).
Trait Implementations§
impl Eq for Facts
impl StructuralPartialEq for Facts
Auto Trait Implementations§
impl Freeze for Facts
impl RefUnwindSafe for Facts
impl Send for Facts
impl Sync for Facts
impl Unpin for Facts
impl UnsafeUnpin for Facts
impl UnwindSafe for Facts
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.