nmk_base.git ============ .. py:module:: nmk_base.git .. autoapi-nested-parse:: Python module for **nmk-base** git related resolvers and builders. Classes ------- .. autoapisummary:: nmk_base.git.GitVersionRefresh nmk_base.git.GitClean nmk_base.git.GitVersionResolver nmk_base.git.GitFileFragmentUpdater nmk_base.git.GitIgnore nmk_base.git.GitAttributes nmk_base.git.GitIsDirty nmk_base.git.CIResolver Module Contents --------------- .. py:class:: GitVersionRefresh(model: nmk.model.model.NmkModel) Bases: :py:obj:`nmk.model.builder.NmkTaskBuilder` Builder for **git.version** task .. py:method:: build(version: str) Build logic for **git.version** task: update .gitversion only if it doesn't exist or if its content doesn't match current version. :param version: Current build version .. py:class:: GitClean(model: nmk.model.model.NmkModel) Bases: :py:obj:`nmk.model.builder.NmkTaskBuilder` Builder for **git.clean** task .. py:method:: build() Build logic for **git.clean** task: simply run **git clean -fdX** command, and stop build :throw: NmkStopHereError to interrupt current build now .. py:class:: GitVersionResolver(model: nmk.model.model.NmkModel) Bases: :py:obj:`nmk.model.resolver.NmkStrConfigResolver` Resolver for **gitVersion** config item .. py:method:: get_value(name: str) -> str Resolution logic for **gitVersion** config item: call commands to deduce version from last git tag :param name: Config item name :returns: Config item value .. py:class:: GitFileFragmentUpdater(model: nmk.model.model.NmkModel) Bases: :py:obj:`nmk_base.common.TemplateBuilder` Abstract builder for git-related files .. py:method:: allow_missing_input(missing_input: pathlib.Path) -> bool Tells nmk that project root .gitignore/.gitattributes can be missing :param missing_input: path to missing input :returns: True if this is the task main input (e.g. .gitIgnore) .. py:method:: build_fragment(kwargs: dict[str, str], template: str) Build fragment to be inserted in file that can be also manually edited :param kwargs: keywords for template rendering :param template: Path to generated file template .. py:class:: GitIgnore(model: nmk.model.model.NmkModel) Bases: :py:obj:`GitFileFragmentUpdater` Builder for **git.ignore** task .. py:method:: prepare_ignored_file(ignored_file: str) -> str Prepare ignored file path by making it relative to project path (is possible) :param ignored_file: Path to ignored file :returns: Projet relative path if possible, unchanged input value otherwise .. py:method:: build(ignored_files: list[str], template: str) Generate .gitignore file fragment from template :param ignored_files: List of files to be ignored :param template: Path to generated file template .. py:class:: GitAttributes(model: nmk.model.model.NmkModel) Bases: :py:obj:`GitFileFragmentUpdater` Builder for **git.attributes** task .. py:method:: build(template: str) Generate .gitattributes file fragment from template :param template: Path to generated file template .. py:class:: GitIsDirty(model: nmk.model.model.NmkModel) Bases: :py:obj:`nmk.model.builder.NmkTaskBuilder` Builder for **git.dirty** task .. py:method:: build() Build logic for **git.dirty** task: verifies if **git status --porcelain** output is empty .. py:class:: CIResolver(model: nmk.model.model.NmkModel) Bases: :py:obj:`nmk.model.resolver.NmkBoolConfigResolver` Resolver for **isLocalBuild**/**isCIBuild** config items .. py:method:: get_value(name: str, invert: bool = False) -> bool Resolution logic for **isLocalBuild**/**isCIBuild** config items: check if **CI** env var is defined :param name: Config item name :param invert: True to invert logic (e.g. for **isLocalBuild**)