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, Error>
Constructs a new GitJournal<Result<GitJournal, Error>>
. 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<(), 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:
# 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 = []
# Show or hide the commit message prefix, e.g. JIRA-1234
show_prefix = false
# 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<(), 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.
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.
fn parse_log(&mut self, revision_range: &str, tag_skip_pattern: &str, max_tags_count: &u32, all: &bool, skip_unreleased: &bool) -> Result<(), Error>
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 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); 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.