pub struct RepositoryView<C = CommitInfo> {
pub versions: Option<VersionInfo>,
pub explanation: FieldExplanation,
pub working_directory: WorkingDirectoryInfo,
pub remotes: Vec<RemoteInfo>,
pub ai: AiInfo,
pub branch_info: Option<BranchInfo>,
pub pr_template: Option<String>,
pub pr_template_location: Option<String>,
pub branch_prs: Option<Vec<PullRequest>>,
pub commits: Vec<C>,
}Expand description
Complete repository view output structure, generic over commit type.
Fields§
§versions: Option<VersionInfo>Version information for the omni-dev tool.
explanation: FieldExplanationExplanation of field meanings and structure.
working_directory: WorkingDirectoryInfoWorking directory status information.
remotes: Vec<RemoteInfo>List of remote repositories and their main branches.
ai: AiInfoAI-related information.
branch_info: Option<BranchInfo>Branch information (only present when using branch commands).
pr_template: Option<String>Pull request template content (only present in branch commands when template exists).
pr_template_location: Option<String>Location of the pull request template file (only present when pr_template exists).
branch_prs: Option<Vec<PullRequest>>Pull requests created from the current branch (only present in branch commands).
commits: Vec<C>List of analyzed commits with metadata and analysis.
Implementations§
Source§impl RepositoryView
impl RepositoryView
Sourcepub fn update_field_presence(&mut self)
pub fn update_field_presence(&mut self)
Updates the present field for all field documentation entries based on actual data.
Sourcepub fn to_yaml_output(&mut self) -> Result<String>
pub fn to_yaml_output(&mut self) -> Result<String>
Serializes this view to YAML, calling update_field_presence first.
Use this instead of calling update_field_presence followed by
crate::data::to_yaml separately. Keeping the two steps together
prevents the explanation section from being stale in the output.
Sourcepub fn single_commit_view(&self, commit: &CommitInfo) -> Self
pub fn single_commit_view(&self, commit: &CommitInfo) -> Self
Creates a minimal view containing a single commit for parallel dispatch.
Strips metadata not relevant to per-commit AI analysis (versions,
working directory status, remotes, PR templates) to reduce prompt size.
Only retains branch_info (for scope context) and the single commit.
Source§impl<C> RepositoryView<C>
impl<C> RepositoryView<C>
Sourcepub fn map_commits<D>(
self,
f: impl FnMut(C) -> Result<D>,
) -> Result<RepositoryView<D>>
pub fn map_commits<D>( self, f: impl FnMut(C) -> Result<D>, ) -> Result<RepositoryView<D>>
Transforms commits while preserving all other fields.
Source§impl RepositoryView<CommitInfoForAI>
impl RepositoryView<CommitInfoForAI>
Sourcepub fn from_repository_view(repo_view: RepositoryView) -> Result<Self>
pub fn from_repository_view(repo_view: RepositoryView) -> Result<Self>
Converts from basic RepositoryView by loading diff content for all commits.
Sourcepub fn from_repository_view_with_options(
repo_view: RepositoryView,
fresh: bool,
) -> Result<Self>
pub fn from_repository_view_with_options( repo_view: RepositoryView, fresh: bool, ) -> Result<Self>
Converts from basic RepositoryView with options.
If fresh is true, clears original commit messages to force AI to generate
new messages based solely on the diff content.
Trait Implementations§
Source§impl<C: Clone> Clone for RepositoryView<C>
impl<C: Clone> Clone for RepositoryView<C>
Source§fn clone(&self) -> RepositoryView<C>
fn clone(&self) -> RepositoryView<C>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more