# Functions

CreateLogs creates a new log file and returns a logs struct with the file and file path.
ExtractBranchVersion will extract the branch version from the branch name.
GetVersionRules will check and convert the provided branch version, create the hard-coded rules for the charts repository and calculate the minimum and maximum versions according to the branch version.
InitDependencies will check the filesystem, branch version, git status, initialize the Dependencies struct and populate it.
LoadState will load the lifecycle-status state from an existing state.json file at charts repo.

# Constants

DevBranchPrefix is the official prefix for the development branch.
ProductionBranchPrefix is the official prefix for the production branch.

# Structs

Asset represents an asset with its version and path in the repository.
Dependencies holds the necessary filesystem, assets versions map, version rules and methods to apply the lifecycle rules in the target branch.
Logs is a struct that holds the file and file path of the log file.
Status struct hold the results of the assets versions comparison, this data will all be logged and saves into log files for further analysis.
VersionRules will hold all the necessary information to check which assets versions are allowed to be in the repository.

# Type aliases

AddAndCommitFunc is a function type that will be used to add and commit changes in the git tree.
MakeRemoveFunc is a function type that will be used to execute make remove.
StatusPorcelainFunc is a function type that will be used to check if the git tree is clean.
WalkDirFunc is a function type that will be used to walk through the filesystem.