Skip to main content

GitConfig

Struct GitConfig 

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

Git configuration for Bashkit.

Controls git behavior including author identity and remote access.

§Example

use bashkit::GitConfig;

let config = GitConfig::new()
    .author("Deploy Bot", "deploy@example.com");

§Security

  • Author identity is sandboxed (never reads from host)
  • Remote URLs require explicit allowlist (Phase 2)
  • All operations confined to virtual filesystem

Implementations§

Source§

impl GitConfig

Source

pub fn new() -> Self

Create a new git configuration with default sandbox identity.

§Example
use bashkit::GitConfig;

let config = GitConfig::new();
// Uses default author: "sandbox <sandbox@bashkit.local>"
Source

pub fn author(self, name: impl Into<String>, email: impl Into<String>) -> Self

Set the author name and email for commits.

§Security (TM-GIT-002)

This is the only way to set author identity. The git builtin will never read from host ~/.gitconfig or environment variables.

§Example
use bashkit::GitConfig;

let config = GitConfig::new()
    .author("CI Bot", "ci@example.com");
Source

pub fn allow_remote(self, pattern: impl Into<String>) -> Self

Add a remote URL pattern to the allowlist (Phase 2).

Remote operations (clone, push, pull, fetch) require URLs to be in the allowlist. This method will be used in Phase 2.

§Example
use bashkit::GitConfig;

let config = GitConfig::new()
    .allow_remote("https://github.com/myorg/");
Source

pub fn allow_remotes( self, patterns: impl IntoIterator<Item = impl Into<String>>, ) -> Self

Add multiple remote URL patterns to the allowlist (Phase 2).

Source

pub fn allow_all_remotes(self) -> Self

Allow all remote URLs.

§Warning

This is dangerous and should only be used for testing or when the script is fully trusted.

Source

pub fn author_name(&self) -> &str

Get the configured author name.

Source

pub fn author_email(&self) -> &str

Get the configured author email.

Trait Implementations§

Source§

impl Clone for GitConfig

Source§

fn clone(&self) -> GitConfig

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for GitConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for GitConfig

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.