From fc6f3c54a8560d53d91803c08f642701297402e8 Mon Sep 17 00:00:00 2001 From: Matej Focko Date: Mon, 2 Dec 2024 14:00:11 +0100 Subject: [PATCH] ci(pre-commit): add pre-commit and commitizen Signed-off-by: Matej Focko --- .cz.toml | 50 +++++++++++++++++++++++++++++++++++++++++ .pre-commit-config.yaml | 24 ++++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 .cz.toml create mode 100644 .pre-commit-config.yaml diff --git a/.cz.toml b/.cz.toml new file mode 100644 index 0000000..c5d2aa4 --- /dev/null +++ b/.cz.toml @@ -0,0 +1,50 @@ +[tool.commitizen] +name = "cz_customize" +tag_format = "$version" +version_scheme = "semver" +version = "0.0.1" +update_changelog_on_bump = true +major_version_zero = true + +[tool.commitizen.customize] +message_template = """\ + {{ change_type }}{% if scope %}({{ scope }}){% endif %}: {{ subject }}\ + + {% if body %}{{ body }}{% endif %} +""" +example = "day(01): solve part 1" +schema = "‹type›‹optional scope, e.g., day›: ‹message›\n\n‹body›" +schema_pattern = """\ + (?s)\ + (chore|ci|day|fix|feat)\ + (\\(\\S+\\))?!?:\ + ( [^\\n\\r]+)\ + ((\\n\\n.*)|(\\s*))?$\ +""" + +[[tool.commitizen.customize.questions]] +name = "change_type" +message = "Select the type of change you are commiting" +type = "list" +choices = ["day", "feat", "fix", "chore", "ci"] + +[[tool.commitizen.customize.questions]] +name = "scope" +message = "What is the scope of this change, e.g., day or part of the utils?" +type = "input" + +[[tool.commitizen.customize.questions]] +name = "subject" +message = """\ + Write a short and imperative summary of the code changes\ + (lower case and no period):\ +""" +type = "input" + +[[tool.commitizen.customize.questions]] +name = "body" +message = """\ + Provide additional contextual information about the code changes\ + (press [enter] to skip): +""" +type = "input" diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..fb68627 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,24 @@ +repos: +- hooks: + - id: trailing-whitespace + - id: end-of-file-fixer + - id: check-yaml + - id: check-added-large-files + repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.5.0 + +- hooks: + - args: + - --autofix + files: \.kt$ + id: pretty-format-kotlin + repo: https://github.com/macisamuele/language-formatters-pre-commit-hooks + rev: v2.12.0 + +- hooks: + - id: commitizen + - id: commitizen-branch + stages: + - push + repo: https://github.com/commitizen-tools/commitizen + rev: v3.15.0