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§
Sourcefn collect_pr_evidence(
&self,
owner: &str,
repo: &str,
pr_number: u32,
) -> AdapterResult<EvidenceBundle>
fn collect_pr_evidence( &self, owner: &str, repo: &str, pr_number: u32, ) -> AdapterResult<EvidenceBundle>
Collect evidence for a single change request (PR / MR).
Sourcefn collect_release_evidence(
&self,
owner: &str,
repo: &str,
base_tag: &str,
head_tag: &str,
) -> AdapterResult<EvidenceBundle>
fn collect_release_evidence( &self, owner: &str, repo: &str, base_tag: &str, head_tag: &str, ) -> AdapterResult<EvidenceBundle>
Collect evidence for a release (tag range).
Sourcefn collect_repo_evidence(
&self,
owner: &str,
repo: &str,
reference: &str,
) -> AdapterResult<EvidenceBundle>
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§
Sourcefn collect_pr_batch_evidence(
&self,
owner: &str,
repo: &str,
pr_numbers: &[u32],
) -> Vec<(String, AdapterResult<EvidenceBundle>)>
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.