Skip to main content

Repository

Struct Repository 

Source
pub struct Repository {
    pub root: PathBuf,
    pub repository: String,
    /* private fields */
}
Expand description

A NAP repository.

Fields§

§root: PathBuf

Filesystem path to the repository root.

§repository: String

The repository name (derived from directory name).

Implementations§

Source§

impl Repository

Source

pub fn open(path: &Path, vcs: Box<dyn VcsBackend>) -> Result<Self, NapError>

Open an existing NAP repository at the given path with a VCS backend.

Source

pub fn open_optional( path: &Path, vcs: Option<Box<dyn VcsBackend>>, ) -> Result<Self, NapError>

Open an existing NAP repository at the given path.

vcs may be None to operate in unversioned mode.

Source

pub fn read_resolve_config(&self) -> ResolveConfig

Read the resolve configuration from repository.yaml (or repository.yaml) metadata.

Source

pub fn init( path: &Path, repository: &str, vcs: Box<dyn VcsBackend>, ) -> Result<Self, NapError>

Initialize a new NAP repository with a VCS backend.

Source

pub fn init_optional( path: &Path, repository: &str, vcs: Option<Box<dyn VcsBackend>>, ) -> Result<Self, NapError>

Initialize a new NAP repository.

vcs may be None to initialize in unversioned mode — the repository structure is created and an initial filesystem state is written, but no version-control workspace or initial commit is created.

Source

pub fn bootstrap_vcs( &self, message: &str, author: &str, ) -> Result<String, NapError>

Bootstrap a VCS backend for an already-initialized repository that was created in unversioned mode.

Initializes the backend at the repository root and creates an initial commit capturing the current filesystem state. Used by nap backend configure when a backend is configured after the fact.

Errors if no backend is available (unversioned mode).

Source

pub fn manifest_path( &self, entity_type: &EntityType, entity_id: &str, ) -> PathBuf

Get the full filesystem path to an entity’s manifest file.

Source

pub fn read_manifest( &self, entity_type: &EntityType, entity_id: &str, ) -> Result<Manifest, NapError>

Read a manifest from the repository.

Source

pub fn read_manifest_at_ref( &self, entity_type: &EntityType, entity_id: &str, reference: &str, ) -> Result<Manifest, NapError>

Read a manifest at a specific VCS ref (commit, branch, tag).

Source

pub fn write_manifest(&self, manifest: &Manifest) -> Result<PathBuf, NapError>

Write a manifest to the repository (does NOT commit).

Source

pub fn create_entity( &self, entity_type: &EntityType, entity_id: &str, name: &str, author: &str, ) -> Result<(Manifest, String), NapError>

Create a new entity manifest and commit it.

Source

pub fn commit_manifest( &self, manifest: &mut Manifest, message: &str, author: &str, changes: Vec<Change>, ) -> Result<Commit, NapError>

Update an existing manifest and commit the changes.

Source

pub fn history( &self, entity_type: &EntityType, entity_id: &str, limit: usize, ) -> Result<Vec<CommitInfo>, NapError>

Get the commit history for a specific entity.

Source

pub fn list_entities( &self, entity_type: &EntityType, ) -> Result<Vec<String>, NapError>

List all entity IDs of a given type in the repository.

Source

pub fn list_entity_types(&self) -> Result<Vec<EntityType>, NapError>

Discover all entity types in this repository.

Scans the repository root for directories containing a .entity-type marker file OR directories containing at least one .yaml file (implicit discovery for backward compatibility).

Source

pub fn delete_entity( &self, entity_type: &EntityType, entity_id: &str, author: &str, ) -> Result<String, NapError>

Delete an entity manifest and commit the deletion.

Source

pub fn create_branch(&self, name: &str) -> Result<(), NapError>

Create a branch in the underlying VCS.

Source

pub fn switch_branch(&self, name: &str) -> Result<(), NapError>

Switch to a branch.

Source

pub fn list_branches(&self) -> Result<Vec<String>, NapError>

List branches.

Source

pub fn revert_commit( &self, commit_hash: &str, author: &str, ) -> Result<String, NapError>

Revert a commit by creating a new VCS commit that undoes the specified one.

Source

pub fn head_hash(&self) -> Result<String, NapError>

Get current HEAD hash.

Source

pub fn resolve_branch_head(&self, branch: &str) -> Result<String, NapError>

Resolve the most recent commit hash on a given branch.

Source

pub fn add_remote(&self, name: &str, url: &str) -> Result<(), NapError>

Add a remote to the repository.

Source

pub fn remove_remote(&self, name: &str) -> Result<(), NapError>

Remove a remote from the repository.

Source

pub fn list_remotes(&self) -> Result<Vec<(String, String)>, NapError>

List remotes as (name, url) pairs.

Source

pub fn push( &self, remote: Option<&str>, branch: Option<&str>, ) -> Result<(), NapError>

Push the current branch to a remote.

Source

pub fn pull( &self, remote: Option<&str>, branch: Option<&str>, ) -> Result<(), NapError>

Pull the current branch from a remote.

Source

pub fn vcs(&self) -> Option<&dyn VcsBackend>

Access the VCS backend (for the resolver to read files at specific refs).

Returns None when no version-control backend is configured (unversioned mode).

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more