Struct gitjournal::GitJournal
[−]
[src]
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]
fn new(path: &str) -> Result<Self>
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.
fn setup(&self) -> Result<()>
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.
fn prepare(&self, path: &str, commit_type: Option<&str>) -> Result<()>
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.
fn verify(&self, path: &str) -> Result<()>
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.
fn parse_log(&mut self,
revision_range: &str,
tag_skip_pattern: &str,
max_tags_count: &u32,
all: &bool,
skip_unreleased: &bool)
-> Result<()>
revision_range: &str,
tag_skip_pattern: &str,
max_tags_count: &u32,
all: &bool,
skip_unreleased: &bool)
-> Result<()>
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);
Errors
When something during the parsing fails, for example if the revision range is invalid.
fn generate_template(&self) -> Result<()>
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); journal.generate_template().expect("Template generation failed.");
Errors
If the generation of the template was impossible.
fn print_log(&self,
compact: bool,
template: Option<&str>,
output: Option<&str>)
-> Result<()>
compact: bool,
template: Option<&str>,
output: Option<&str>)
-> Result<()>
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); 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.