[][src]Struct gitjournal::GitJournal

pub struct GitJournal {
    pub config: Config,
    // some fields omitted
}

The main structure of git-journal.

Fields

config: Config

The configuration structure

Methods

impl GitJournal
[src]

pub fn new(path: &str) -> Result<Self, Error>
[src]

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.

pub fn setup(&self) -> Result<(), Error>
[src]

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.

pub fn prepare(
    &self,
    path: &str,
    commit_type: Option<&str>
) -> Result<(), Error>
[src]

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.

pub fn verify(&self, path: &str) -> Result<(), Error>
[src]

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.

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>
[src]

Parses a revision range for a GitJournal.

Examples

use gitjournal::GitJournal;

let mut journal = GitJournal::new(".").unwrap();
journal.parse_log("HEAD", "rc", &1, &false, &false, None);

Errors

When something during the parsing fails, for example if the revision range is invalid.

pub fn generate_template(&self) -> Result<(), Error>
[src]

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.

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 Send for GitJournal

impl Sync for GitJournal

Blanket Implementations

impl<T> From for T
[src]

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom for T where
    T: From<U>, 
[src]

type Error = !

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

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

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Any for T where
    T: 'static + ?Sized
[src]