pub struct GitJournal {
pub config: Config,
/* private fields */
}
Expand description
The main structure of git-journal.
Fields§
§config: Config
The configuration structure
Implementations§
Source§impl GitJournal
impl GitJournal
Sourcepub fn new(path: &str) -> Result<Self, Error>
pub fn new(path: &str) -> Result<Self, Error>
Constructs a new GitJournal
. Searches upwards if the given path does
not contain the .git
directory.
§Examples
use gitjournal::GitJournal;
let journal = GitJournal::new(".").unwrap();
§Errors
When not providing a path with a valid git repository (‘.git’ folder or the initial parsing of the git tags failed.
Sourcepub fn setup(&self) -> Result<(), Error>
pub fn setup(&self) -> Result<(), Error>
Does the setup on the target git repository.
§Examples
use gitjournal::GitJournal;
let journal = GitJournal::new(".").unwrap();
journal.setup().expect("Setup error");
Creates a .gitjournal
file with the default values inside the given
path, which looks like:
# Specifies the available categories for the commit message, allowed regular expressions.
categories = ["Added", "Changed", "Fixed", "Improved", "Removed"]
# Set the characters where the categories are wrapped in
category_delimiters = ["[", "]"]
# Set to false if the output should not be colored
colored_output = true
# Specifies the default template. Will be used for tag validation and printing. Can be
# removed from the configuration file as well.
default_template = "CHANGELOG.toml"
# Show or hide the debug messages like `[OKAY] ...` or `[INFO] ...`
enable_debug = true
# Excluded tags in an array, e.g. "internal"
excluded_commit_tags = []
# Enable or disable the output and accumulation of commit footers.
enable_footers = false
# Show or hide the commit hash for every entry
show_commit_hash = false
# Show or hide the commit message prefix, e.g. JIRA-1234
show_prefix = false
# Sort the commits during the output by "date" (default) or "name"
sort_by = "date"
# Commit message template prefix which will be added during commit preparation.
template_prefix = "JIRA-1234"
It also creates a symlinks for the commit message validation and preparation hook inside the given git repository.
§Errors
- When the writing of the default configuration fails.
- When installation of the commit message (preparation) hook fails.
Sourcepub fn prepare(
&self,
path: &str,
commit_type: Option<&str>,
) -> Result<(), Error>
pub fn prepare( &self, path: &str, commit_type: Option<&str>, ) -> Result<(), Error>
Prepare a commit message before the user edits it. This includes also a verification of the commit message, e.g. for amended commits.
§Examples
use gitjournal::GitJournal;
let journal = GitJournal::new(".").unwrap();
journal
.prepare("./tests/commit_messages/success_1", None)
.expect("Commit message preparation error");
§Errors
When the path is not available or writing the commit message fails.
Sourcepub fn verify(&self, path: &str) -> Result<(), Error>
pub fn verify(&self, path: &str) -> Result<(), Error>
Verify a given commit message against the parsing rules of RFC0001
§Examples
use gitjournal::GitJournal;
let journal = GitJournal::new(".").unwrap();
journal
.verify("tests/commit_messages/success_1")
.expect("Commit message verification error");
§Errors
When the commit message is not valid due to RFC0001 or opening of the given file failed.
Sourcepub fn parse_log(
&mut self,
revision_range: &str,
tag_skip_pattern: &str,
max_tags_count: &u32,
all: &bool,
skip_unreleased: &bool,
ignore_tags: Option<Vec<&str>>,
) -> Result<(), Error>
pub fn parse_log( &mut self, revision_range: &str, tag_skip_pattern: &str, max_tags_count: &u32, all: &bool, skip_unreleased: &bool, ignore_tags: Option<Vec<&str>>, ) -> Result<(), Error>
Sourcepub fn generate_template(&self) -> Result<(), Error>
pub fn generate_template(&self) -> Result<(), Error>
Generates an output template from the current parsing results.
§Examples
use gitjournal::GitJournal;
let mut journal = GitJournal::new(".").unwrap();
journal.parse_log("HEAD", "rc", &1, &false, &false, None);
journal
.generate_template()
.expect("Template generation failed.");
§Errors
If the generation of the template was impossible.
Sourcepub fn print_log(
&self,
compact: bool,
template: Option<&str>,
output: Option<&str>,
) -> Result<(), Error>
pub fn print_log( &self, compact: bool, template: Option<&str>, output: Option<&str>, ) -> Result<(), Error>
Prints the resulting log in a short or detailed variant. Will use the template as an output formatter if provided.
§Examples
use gitjournal::GitJournal;
let mut journal = GitJournal::new(".").unwrap();
journal.parse_log("HEAD", "rc", &1, &false, &false, None);
journal
.print_log(true, None, None)
.expect("Could not print short log.");
journal
.print_log(false, None, None)
.expect("Could not print detailed log.");
§Errors
If some commit message could not be print.
Auto Trait Implementations§
impl Freeze for GitJournal
impl RefUnwindSafe for GitJournal
impl Send for GitJournal
impl Sync for GitJournal
impl Unpin for GitJournal
impl UnwindSafe for GitJournal
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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