Skip to main content

PlatformAdapter

Trait PlatformAdapter 

Source
pub trait PlatformAdapter: Send + Sync {
    // Required methods
    fn collect_pr_evidence(
        &self,
        owner: &str,
        repo: &str,
        pr_number: u32,
    ) -> AdapterResult<EvidenceBundle>;
    fn collect_release_evidence(
        &self,
        owner: &str,
        repo: &str,
        base_tag: &str,
        head_tag: &str,
    ) -> AdapterResult<EvidenceBundle>;
    fn collect_repo_evidence(
        &self,
        owner: &str,
        repo: &str,
        reference: &str,
    ) -> AdapterResult<EvidenceBundle>;

    // Provided method
    fn collect_pr_batch_evidence(
        &self,
        owner: &str,
        repo: &str,
        pr_numbers: &[u32],
    ) -> Vec<(String, AdapterResult<EvidenceBundle>)> { ... }
}
Expand description

Platform-agnostic evidence collection interface.

Implementations translate platform-specific APIs (GitHub, GitLab, Bitbucket, etc.) into the platform-neutral EvidenceBundle that controls evaluate.

The trait covers the “expensive” evidence collection layer only. Assessment (policy evaluation) is platform-independent and handled separately by functions like assess_bundle / assess_repo_bundle.

Required Methods§

Source

fn collect_pr_evidence( &self, owner: &str, repo: &str, pr_number: u32, ) -> AdapterResult<EvidenceBundle>

Collect evidence for a single change request (PR / MR).

Source

fn collect_release_evidence( &self, owner: &str, repo: &str, base_tag: &str, head_tag: &str, ) -> AdapterResult<EvidenceBundle>

Collect evidence for a release (tag range).

Source

fn collect_repo_evidence( &self, owner: &str, repo: &str, reference: &str, ) -> AdapterResult<EvidenceBundle>

Collect evidence for repository-level posture and dependencies at a given ref.

Provided Methods§

Source

fn collect_pr_batch_evidence( &self, owner: &str, repo: &str, pr_numbers: &[u32], ) -> Vec<(String, AdapterResult<EvidenceBundle>)>

Collect evidence for a batch of change requests.

Returns (subject_id, AdapterResult<EvidenceBundle>) per item, preserving order. The default implementation calls [collect_pr_evidence] sequentially; platform adapters may override for batch-optimised API calls.

Implementors§