pub struct GitJournal {
pub config: Config,
// some fields omitted
}
The main structure of git-journal.
The configuration structure
Constructs a new GitJournal
. Searches upwards if the given path does
not contain the .git
directory.
use gitjournal::GitJournal;
let journal = GitJournal::new(".").unwrap();
When not providing a path with a valid git repository ('.git' folder or
the initial parsing of the git tags failed.
Does the setup on the target git repository.
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.
- When the writing of the default configuration fails.
- When installation of the commit message (preparation) hook fails.
Prepare a commit message before the user edits it. This includes also a
verification of the commit message, e.g. for amended commits.
use gitjournal::GitJournal;
let journal = GitJournal::new(".").unwrap();
journal
.prepare("./tests/commit_messages/success_1", None)
.expect("Commit message preparation error");
When the path is not available or writing the commit message fails.
Verify a given commit message against the parsing rules of
RFC0001
use gitjournal::GitJournal;
let journal = GitJournal::new(".").unwrap();
journal
.verify("tests/commit_messages/success_1")
.expect("Commit message verification error");
When the commit message is not valid due to RFC0001 or opening of the
given file failed.
Parses a revision range for a GitJournal
.
use gitjournal::GitJournal;
let mut journal = GitJournal::new(".").unwrap();
journal.parse_log("HEAD", "rc", &1, &false, &false, None);
When something during the parsing fails, for example if the revision
range is invalid.
Generates an output template from the current parsing results.
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.");
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.
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.");
If some commit message could not be print.
🔬 This is a nightly-only experimental API. (try_from
)
The type returned in the event of a conversion error.
🔬 This is a nightly-only experimental API. (try_from
)
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
🔬 This is a nightly-only experimental API. (try_from
)
The type returned in the event of a conversion error.
🔬 This is a nightly-only experimental API. (try_from
)
🔬 This is a nightly-only experimental API. (get_type_id
)
this method will likely be replaced by an associated static