gito_core 1.0.9

offering tiny easy-use api about git info
Documentation
pub mod utils;
use napi_derive::napi;
pub use utils::*;

#[derive(Debug)]
#[napi(object)]
pub struct GitConfig {
  pub username: String,
  pub email: String,
}

#[derive(Debug)]
#[napi(object)]
pub struct GitInfo {
  pub username: String,
  pub email: String,
  pub ssh_url: String,
  pub user_repo: String,
  pub current_branch: String,
}

pub fn get_git_user() -> GitConfig {
  let username = get_stdout(&run_git(vec!["config", "user.name"])).unwrap();
  let email = get_stdout(&run_git(vec!["config", "user.email"])).unwrap();
  GitConfig { username, email }
}

#[napi]
pub fn get_git_info() -> GitInfo {
  let git_config = get_git_user();
  let current_branch = get_stdout(&run_git(vec!["branch", "--show-current"])).unwrap();
  let ssh_url = get_stdout(&run_git(vec!["config", "remote.origin.url"])).unwrap();

  GitInfo {
    user_repo: get_user_repo(&ssh_url),
    ssh_url,
    username: git_config.username,
    email: git_config.email,
    current_branch,
  }
}