Despite errors from mypy, everything seems to be working
Take from https://github.com/saritasa-nest/saritasa-invocations
import invoke
def run_pre_commit_cmd(context: invoke.Context, cmd: str, **kwargs) -> None:
"""Run a pre-commit command."""
config = _config.Config.from_context(context)
context.run(command=f"{config.pre_commit.entry} {cmd}", **kwargs)
@invoke.task
def install(
context: invoke.Context,
hooks: list[str] | None = None,
) -> None:
"""Install git hooks via pre-commit."""
printing.print_success("Installing pre-commit hooks")
hooks_str = (
" ".join(f"--hook-type {hook}" for hook in hooks) if hooks else ""
)
run_pre_commit_cmd(context=context, cmd=f"install {hooks_str}")
@invoke.task
def setup(context: invoke.Context) -> None:
"""Set up git for working."""
printing.print_success("Setting up git and pre-commit")
pre_commit.install(context)
config = _config.Config.from_context(context)
set_git_setting(
context,
setting="merge.ff",
value=config.git.merge_ff,
)
set_git_setting(
context,
setting="pull.ff",
value=config.git.pull_ff,
)

Despite errors from mypy, everything seems to be working
Take from https://github.com/saritasa-nest/saritasa-invocations