Class Reference¶
GenerateChangelog¶
This is the class you are most likely to use if you want to generate a changelog from your own Python script.
-
class
samsgeneratechangelog.
GenerateChangelog
(start_ref, end_ref, git_path='.', template_variables=None, custom_attributes=None, template_file=None, template_name='author_by_change_type')¶ Bases:
object
Generate a changelog by rendering a simple but flexible CommitFile object using jinja2.
- Parameters
start_ref (string) – The commit sha or git ref (tag/head/etc) that the comparison will start from
end_ref (string) – The commit sha or git ref (tag/head/etc) that the comparison will end at
template_variables (dict) – A dict of variables to pass to Jinja’s Template
git_path (string) – The path (relative to the cwd or absolute) that contains the .git folder
template_file (string) – The path (relative to the cwd or absolute) to a custom jinja2 template file
template_name (string) – The name of one of the templates bundled with the SamsGenerateChangelog package
custom_attributes (dict) – A dictionary of of custom attributes to make available under each file object in the template
-
classmethod
get_template_names
()¶ Returns a list of valid template names.
-
render_markdown
()¶ Return the rendered markdown provided by the template.
-
render_markdown_to_file
(file_path, entry_id)¶ Render the markdown provided by the template and prepend it to a file.
If an entry already exists pertaining to the current entry_id it will be overwritten.
GitHelper¶
You will only need to interact with this class if you’re creating your own template builder.
-
class
samsgeneratechangelog.
GitHelper
(path, custom_attributes=None)¶ Bases:
object
Helper class to facilitate in diffing and organising commits.
- Parameters
path (string) – Path to the folder containing the git repo
custom_attributes (dict) – A dictionary of custom attributes with the attribute name as the key, and subkeys of pattern and derived_from
-
commit_log
(rev_a, rev_b)¶ Get commit objects for every commit between rev_a and rev_b.
-
generate_file_commits_from_commit
(commit)¶ Returns a list of FileCommit objects from a given commit.
FileCommit¶
This is the class from which the file_commits objects in the templates are instantiated. Look here for attributes which you can use directly in your Jinja2 template.
-
class
samsgeneratechangelog.
FileCommit
(commit, file_path, change_type, repo, custom_attributes=None)¶ Bases:
object
A single file changed by a commit.
- Parameters
commit (Commit) – The
Commit
that this file was changed infile_path (str) – The path of the file that was changed relative to the root of the repo
change_type (str) – The single character change type
repo (Repo) – The
Repo
that the commit is fromcustom_attributes (dict) – A dictionary of custom attributes with the attribute name as the key, and subkeys of pattern and derived_from
-
commit
¶ The
Commit
object for this commit- Type
Commit
The
Actor
object that authored the commit. Containsemail
andname
attributes- Type
Actor
-
committer
¶ Committer
- Type
str
-
hexsha
¶ Long form commit sha
- Type
str
-
message
¶ The commit message
- Type
str
-
file_path
¶ The path to the file which was changed (relative to the root of the repo)
- Type
str
-
friendly_change_type
¶ The type of change that happend to this file.
- Type
str
-
property
committed_date
¶ Python datetime object of the committed date.
- Returns
datetime
-
property
hexsha_short
¶ Short version of the commit sha.
- Returns
str