Skip to main content

GitCommitService

Struct GitCommitService 

Source
pub struct GitCommitService { /* private fields */ }
Expand description

Service for performing git commit operations

This service handles:

  • Creating commits with optional hook verification
  • Pre-commit hook execution
  • Remote repository detection

It does NOT handle:

  • LLM operations (handled by IrisAgentService)
  • Context gathering (handled by agents)
  • Message generation (handled by agents)

Implementations§

Source§

impl GitCommitService

Source

pub fn new(repo: Arc<GitRepo>, _use_gitmoji: bool, verify: bool) -> Self

Create a new GitCommitService

§Arguments
  • repo - The git repository to operate on
  • _use_gitmoji - Retained for API compatibility; commit messages are stored exactly as provided
  • verify - Whether to run pre/post-commit hooks
Source

pub fn from_repo(repo: GitRepo, use_gitmoji: bool, verify: bool) -> Self

Create from an existing GitRepo (convenience constructor)

Source

pub fn is_remote(&self) -> bool

Check if the repository is a remote repository

Source

pub fn pre_commit(&self) -> Result<()>

Execute the pre-commit hook if verification is enabled

Returns Ok(()) if:

  • verify is false (hooks disabled)
  • repository is remote (hooks don’t apply)
  • pre-commit hook succeeds
§Errors

Returns an error when hook verification is enabled and the pre-commit hook fails.

Source

pub fn perform_commit(&self, message: &str) -> Result<CommitResult>

Perform a commit with the given message

This method:

  1. Validates the repository is not remote
  2. Uses the exact message provided
  3. Runs pre-commit hook (if verify is enabled)
  4. Creates the commit
  5. Runs post-commit hook (if verify is enabled)
§Arguments
  • message - The commit message to use
§Returns

The result of the commit operation

§Errors

Returns an error when the repository is remote, hooks fail, or Git cannot create the commit.

Source

pub fn perform_amend(&self, message: &str) -> Result<CommitResult>

Amend the previous commit with staged changes and a new message

This method:

  1. Validates the repository is not remote
  2. Uses the exact message provided
  3. Runs pre-commit hook (if verify is enabled)
  4. Amends the commit (replaces HEAD)
  5. Runs post-commit hook (if verify is enabled)
§Arguments
  • message - The new commit message
§Returns

The result of the amend operation

§Errors

Returns an error when the repository is remote, hooks fail, or Git cannot amend the commit.

Source

pub fn get_head_commit_message(&self) -> Result<String>

Get the message of the HEAD commit

Useful for amend operations to provide original context

§Errors

Returns an error when the HEAD commit cannot be read.

Source

pub fn repo(&self) -> &GitRepo

Get a reference to the underlying repository

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<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> 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> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

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

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: 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: 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> 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 = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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
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
Source§

impl<T> WasmCompatSend for T
where T: Send,

Source§

impl<T> WasmCompatSync for T
where T: Sync,