pre-commit-crocodile 5.0.0__tar.gz → 5.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/.cz.yaml +1 -1
  2. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/.gitignore +1 -0
  3. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/.gitlab-ci.yml +3 -3
  4. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/CHANGELOG.md +18 -0
  5. {pre_commit_crocodile-5.0.0/pre_commit_crocodile.egg-info → pre_commit_crocodile-5.1.0}/PKG-INFO +5 -4
  6. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/README.md +4 -3
  7. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0/pre_commit_crocodile.egg-info}/PKG-INFO +5 -4
  8. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/pre_commit_crocodile.egg-info/SOURCES.txt +2 -0
  9. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/setup.py +3 -1
  10. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/src/assets/.cz.yaml +1 -1
  11. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/src/cli/entrypoint.py +71 -8
  12. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/src/cli/main.py +6 -0
  13. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/src/features/gcil.py +2 -1
  14. pre_commit_crocodile-5.1.0/src/features/templates.py +9 -0
  15. pre_commit_crocodile-5.1.0/templates/commits.yml +97 -0
  16. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/.coveragerc +0 -0
  17. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/.gitattributes +0 -0
  18. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/.markdownlint.json +0 -0
  19. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/.pre-commit-config.yaml +0 -0
  20. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/.pre-commit-hooks.yaml +0 -0
  21. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/.style.yapf +0 -0
  22. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/.vscode/extensions.json +0 -0
  23. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/.vscode/settings.json +0 -0
  24. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/LICENSE +0 -0
  25. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/config/cliff.toml +0 -0
  26. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/containers/build/Dockerfile +0 -0
  27. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/containers/codestyle/Dockerfile +0 -0
  28. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/containers/commits/Dockerfile +0 -0
  29. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/containers/deploy/Dockerfile +0 -0
  30. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/containers/pages/Dockerfile +0 -0
  31. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/containers/preview/Dockerfile +0 -0
  32. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/containers/rehost/images.txt +0 -0
  33. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/containers/test-coverage-linux/Dockerfile +0 -0
  34. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/containers/test-coverage-windows/Dockerfile +0 -0
  35. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/containers/test-linux/Dockerfile +0 -0
  36. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/docs/.pages.in +0 -0
  37. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/docs/assets/images/favicon.png +0 -0
  38. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/docs/assets/scripts/mkdocs-exporter.js +0 -0
  39. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/docs/assets/stylesheets/custom.css +0 -0
  40. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/docs/assets/stylesheets/pdf.scss +0 -0
  41. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/docs/commitizen.md +0 -0
  42. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/docs/commits.md +0 -0
  43. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/docs/components.md +0 -0
  44. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/docs/hooks.md +0 -0
  45. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/docs/pre-commit.md +0 -0
  46. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/docs/prepare.sh +0 -0
  47. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/docs/preview.py +0 -0
  48. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/docs/preview.svg +0 -0
  49. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/docs/robots.txt +0 -0
  50. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/docs/settings.md +0 -0
  51. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/docs/template.svg +0 -0
  52. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/docs/templates/covers/back.html.j2 +0 -0
  53. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/docs/templates/covers/front.html.j2 +0 -0
  54. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/mkdocs.yml +0 -0
  55. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/mypy.ini +0 -0
  56. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/pre_commit_crocodile.egg-info/dependency_links.txt +0 -0
  57. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/pre_commit_crocodile.egg-info/entry_points.txt +0 -0
  58. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/pre_commit_crocodile.egg-info/requires.txt +0 -0
  59. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/pre_commit_crocodile.egg-info/top_level.txt +0 -0
  60. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/requirements/build.txt +0 -0
  61. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/requirements/commits.txt +0 -0
  62. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/requirements/coverage.txt +0 -0
  63. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/requirements/deploy.txt +0 -0
  64. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/requirements/docs.txt +0 -0
  65. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/requirements/pages.txt +0 -0
  66. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/requirements/quality.txt +0 -0
  67. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/requirements/runtime.txt +0 -0
  68. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/requirements/tests.txt +0 -0
  69. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/setup.cfg +0 -0
  70. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/sonar-project.properties +0 -0
  71. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/src/__init__.py +0 -0
  72. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/src/__main__.py +0 -0
  73. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/src/assets/.pre-commit-config.yaml +0 -0
  74. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/src/assets/__init__.py +0 -0
  75. {pre_commit_crocodile-5.0.0/templates → pre_commit_crocodile-5.1.0/src/assets}/commits.yml +0 -0
  76. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/src/cli/__init__.py +0 -0
  77. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/src/features/__init__.py +0 -0
  78. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/src/features/argcomplete.py +0 -0
  79. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/src/features/commitizen.py +0 -0
  80. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/src/features/git.py +0 -0
  81. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/src/features/precommit.py +0 -0
  82. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/src/features/radiandevcore.py +0 -0
  83. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/src/features/readme.py +0 -0
  84. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/src/hooks/__init__.py +0 -0
  85. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/src/hooks/check_yaml_ruamel_pure.py +0 -0
  86. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/src/hooks/configurations.py +0 -0
  87. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/src/hooks/prepare_commit_message.py +0 -0
  88. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/src/package/__init__.py +0 -0
  89. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/src/package/bundle.py +0 -0
  90. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/src/package/settings.py +0 -0
  91. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/src/package/updates.py +0 -0
  92. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/src/package/version.py +0 -0
  93. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/src/prints/__init__.py +0 -0
  94. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/src/prints/boxes.py +0 -0
  95. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/src/prints/colors.py +0 -0
  96. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/src/system/__init__.py +0 -0
  97. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/src/system/commands.py +0 -0
  98. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/src/system/platform.py +0 -0
  99. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/src/types/__init__.py +0 -0
  100. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/src/types/environments.py +0 -0
  101. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/src/types/strings.py +0 -0
  102. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/tests/arguments/test.sh +0 -0
  103. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/tests/colors/test.sh +0 -0
  104. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/tests/macos/test.sh +0 -0
  105. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/tests/settings/test.sh +0 -0
  106. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/tests/versions/test.sh +0 -0
  107. {pre_commit_crocodile-5.0.0 → pre_commit_crocodile-5.1.0}/tests/windows/test.sh +0 -0
@@ -144,7 +144,7 @@ commitizen:
144
144
  name: body
145
145
  message: 'Additional contextual message (Empty to skip) :'
146
146
  default: 'Issue: #...'
147
- filter: 'multiple_line_breaker'
147
+ filter: 'break_multiple_line'
148
148
  - type: input
149
149
  name: footer
150
150
  message: 'Footer information and references (Empty to skip) :'
@@ -1,5 +1,6 @@
1
1
  # Assets intermediates
2
2
  src/assets/.cz.yaml
3
+ src/assets/commits.yml
3
4
 
4
5
  # Build intermediates
5
6
  /build
@@ -13,6 +13,8 @@ stages:
13
13
  - deploy
14
14
 
15
15
  variables:
16
+ CI_LOCAL_REAL_PATHS: 'true'
17
+ CI_LOCAL_SOCKETS: 'true'
16
18
  EXECUTOR_HOST: preview
17
19
  EXECUTOR_TOOL: pre-commit-crocodile
18
20
  REGISTRY_HOST: registry.gitlab.com
@@ -21,9 +23,7 @@ variables:
21
23
 
22
24
  .local:
23
25
  no_regex: true
24
- real_paths: true
25
- sockets: true
26
- version: 11.0
26
+ version: 12.0
27
27
  volumes:
28
28
  - ${HOME}/.docker/config.json:/root/.docker/config.json:ro
29
29
 
@@ -1,5 +1,23 @@
1
1
  # Changelog
2
2
 
3
+ <a name="5.1.0"></a>
4
+ ## [5.1.0](https://gitlab.com/RadianDevCore/tools/pre-commit-crocodile/compare/5.0.0...5.1.0) (2025-06-09)
5
+
6
+ ### ✨ Features
7
+
8
+ - **cli:** implement '--no-components' to import 'commits.yml' template ([c3a6999](https://gitlab.com/RadianDevCore/tools/pre-commit-crocodile/commit/c3a6999908adbc4886dc2767938c8e32c3dbf6e9))
9
+ - **gcil:** raise minimal 'gcil' version to 12.0.0 ([0ac2606](https://gitlab.com/RadianDevCore/tools/pre-commit-crocodile/commit/0ac26061767becf86d1b1e7c48b81fd676da3701))
10
+ - **templates:** refactor '--no-components' with 'spec: inputs:' ([c2f7365](https://gitlab.com/RadianDevCore/tools/pre-commit-crocodile/commit/c2f7365fb3eb9f29dc4eff575d48199ee67b10a2))
11
+
12
+ ### ⚙️ Cleanups
13
+
14
+ - **cz:** migrate from 'multiple_line_breaker' to 'break_multiple_line' ([8068901](https://gitlab.com/RadianDevCore/tools/pre-commit-crocodile/commit/8068901bb1811be110a0007b755367fb1bf62aef))
15
+
16
+ ### 🚀 CI
17
+
18
+ - **gitlab-ci:** migrate to 'CI_LOCAL_*' variables with 'gcil' 12.0.0 ([e8cdad9](https://gitlab.com/RadianDevCore/tools/pre-commit-crocodile/commit/e8cdad9589f92e7a591313a0321b0529c9874d77))
19
+
20
+
3
21
  <a name="5.0.0"></a>
4
22
  ## [5.0.0](https://gitlab.com/RadianDevCore/tools/pre-commit-crocodile/compare/4.2.1...5.0.0) (2025-06-08)
5
23
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pre-commit-crocodile
3
- Version: 5.0.0
3
+ Version: 5.1.0
4
4
  Summary: Git hooks intended for developers using pre-commit
5
5
  Home-page: https://gitlab.com/RadianDevCore/tools/pre-commit-crocodile
6
6
  Author: Adrian DC
@@ -89,7 +89,7 @@ Git hooks intended for developers using [pre-commit](https://pre-commit.com/) an
89
89
 
90
90
  ## Preview
91
91
 
92
- ![preview.svg](https://gitlab.com/RadianDevCore/tools/pre-commit-crocodile/raw/5.0.0/docs/preview.svg)
92
+ ![preview.svg](https://gitlab.com/RadianDevCore/tools/pre-commit-crocodile/raw/5.1.0/docs/preview.svg)
93
93
 
94
94
  ---
95
95
 
@@ -102,8 +102,8 @@ Git hooks intended for developers using [pre-commit](https://pre-commit.com/) an
102
102
 
103
103
  ```yaml
104
104
  usage: pre-commit-crocodile [-h] [--version] [--no-color] [--update-check] [--settings] [--set GROUP KEY VAL]
105
- [-l | -i | -c | -b | -e | -d | -a | -C | -r] [--config FOLDER | -D] [--commit] [--offline]
106
- [--stage STAGE] [--]
105
+ [-l | -i | -c | -b | -e | -d | -a | -C | -r] [--config FOLDER | -D] [--commit]
106
+ [--no-components] [--offline] [--stage STAGE] [--]
107
107
 
108
108
  pre-commit-crocodile: Git hooks intended for developers using pre-commit
109
109
 
@@ -132,6 +132,7 @@ configurations arguments:
132
132
  --config FOLDER # Use configurations from a specific folder
133
133
  -D, --default # Use global default configurations instead of sources
134
134
  --commit # Commit configurations changes automatically
135
+ --no-components # Import components templates locally instead of 'include: component:'
135
136
  --offline # Use offline mode to disable configurations autoupdate
136
137
  --stage STAGE # Run a specific pre-commit stage with --run
137
138
  # (use 'list' to list supported stages)
@@ -40,7 +40,7 @@ Git hooks intended for developers using [pre-commit](https://pre-commit.com/) an
40
40
 
41
41
  ## Preview
42
42
 
43
- ![preview.svg](https://gitlab.com/RadianDevCore/tools/pre-commit-crocodile/raw/5.0.0/docs/preview.svg)
43
+ ![preview.svg](https://gitlab.com/RadianDevCore/tools/pre-commit-crocodile/raw/5.1.0/docs/preview.svg)
44
44
 
45
45
  ---
46
46
 
@@ -53,8 +53,8 @@ Git hooks intended for developers using [pre-commit](https://pre-commit.com/) an
53
53
 
54
54
  ```yaml
55
55
  usage: pre-commit-crocodile [-h] [--version] [--no-color] [--update-check] [--settings] [--set GROUP KEY VAL]
56
- [-l | -i | -c | -b | -e | -d | -a | -C | -r] [--config FOLDER | -D] [--commit] [--offline]
57
- [--stage STAGE] [--]
56
+ [-l | -i | -c | -b | -e | -d | -a | -C | -r] [--config FOLDER | -D] [--commit]
57
+ [--no-components] [--offline] [--stage STAGE] [--]
58
58
 
59
59
  pre-commit-crocodile: Git hooks intended for developers using pre-commit
60
60
 
@@ -83,6 +83,7 @@ configurations arguments:
83
83
  --config FOLDER # Use configurations from a specific folder
84
84
  -D, --default # Use global default configurations instead of sources
85
85
  --commit # Commit configurations changes automatically
86
+ --no-components # Import components templates locally instead of 'include: component:'
86
87
  --offline # Use offline mode to disable configurations autoupdate
87
88
  --stage STAGE # Run a specific pre-commit stage with --run
88
89
  # (use 'list' to list supported stages)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pre-commit-crocodile
3
- Version: 5.0.0
3
+ Version: 5.1.0
4
4
  Summary: Git hooks intended for developers using pre-commit
5
5
  Home-page: https://gitlab.com/RadianDevCore/tools/pre-commit-crocodile
6
6
  Author: Adrian DC
@@ -89,7 +89,7 @@ Git hooks intended for developers using [pre-commit](https://pre-commit.com/) an
89
89
 
90
90
  ## Preview
91
91
 
92
- ![preview.svg](https://gitlab.com/RadianDevCore/tools/pre-commit-crocodile/raw/5.0.0/docs/preview.svg)
92
+ ![preview.svg](https://gitlab.com/RadianDevCore/tools/pre-commit-crocodile/raw/5.1.0/docs/preview.svg)
93
93
 
94
94
  ---
95
95
 
@@ -102,8 +102,8 @@ Git hooks intended for developers using [pre-commit](https://pre-commit.com/) an
102
102
 
103
103
  ```yaml
104
104
  usage: pre-commit-crocodile [-h] [--version] [--no-color] [--update-check] [--settings] [--set GROUP KEY VAL]
105
- [-l | -i | -c | -b | -e | -d | -a | -C | -r] [--config FOLDER | -D] [--commit] [--offline]
106
- [--stage STAGE] [--]
105
+ [-l | -i | -c | -b | -e | -d | -a | -C | -r] [--config FOLDER | -D] [--commit]
106
+ [--no-components] [--offline] [--stage STAGE] [--]
107
107
 
108
108
  pre-commit-crocodile: Git hooks intended for developers using pre-commit
109
109
 
@@ -132,6 +132,7 @@ configurations arguments:
132
132
  --config FOLDER # Use configurations from a specific folder
133
133
  -D, --default # Use global default configurations instead of sources
134
134
  --commit # Commit configurations changes automatically
135
+ --no-components # Import components templates locally instead of 'include: component:'
135
136
  --offline # Use offline mode to disable configurations autoupdate
136
137
  --stage STAGE # Run a specific pre-commit stage with --run
137
138
  # (use 'list' to list supported stages)
@@ -65,6 +65,7 @@ src/__main__.py
65
65
  src/assets/.cz.yaml
66
66
  src/assets/.pre-commit-config.yaml
67
67
  src/assets/__init__.py
68
+ src/assets/commits.yml
68
69
  src/cli/__init__.py
69
70
  src/cli/entrypoint.py
70
71
  src/cli/main.py
@@ -76,6 +77,7 @@ src/features/git.py
76
77
  src/features/precommit.py
77
78
  src/features/radiandevcore.py
78
79
  src/features/readme.py
80
+ src/features/templates.py
79
81
  src/hooks/__init__.py
80
82
  src/hooks/check_yaml_ruamel_pure.py
81
83
  src/hooks/configurations.py
@@ -10,9 +10,11 @@ from setuptools import find_packages, setup
10
10
  # Assets importation
11
11
  for asset in [
12
12
  '.cz.yaml',
13
+ 'templates/commits.yml',
13
14
  ]:
15
+
14
16
  # Import file to assets
15
- copyfile(asset, f'src/assets/{asset}')
17
+ copyfile(asset, f'src/assets/{asset.rsplit("/", maxsplit=1)[-1]}')
16
18
 
17
19
  # Requirements
18
20
  requirements: List[str] = []
@@ -144,7 +144,7 @@ commitizen:
144
144
  name: body
145
145
  message: 'Additional contextual message (Empty to skip) :'
146
146
  default: 'Issue: #...'
147
- filter: 'multiple_line_breaker'
147
+ filter: 'break_multiple_line'
148
148
  - type: input
149
149
  name: footer
150
150
  message: 'Footer information and references (Empty to skip) :'
@@ -18,6 +18,7 @@ from ..features.git import Git
18
18
  from ..features.precommit import PreCommit
19
19
  from ..features.radiandevcore import RadianDevCore
20
20
  from ..features.readme import Readme
21
+ from ..features.templates import Templates
21
22
  from ..package.bundle import Bundle
22
23
  from ..package.version import Version
23
24
  from ..prints.colors import Colors
@@ -43,10 +44,14 @@ class Entrypoint:
43
44
  def cli(options: Namespace, ) -> Result:
44
45
 
45
46
  # Variables
47
+ asset: str
46
48
  command_add: List[str]
47
49
  command_commit: List[str]
48
50
  configurations_existed: bool = False
49
51
  configurations_files: List[str] = []
52
+ data: str
53
+ local_ci_data: str
54
+ local_template: str
50
55
 
51
56
  # List hooks
52
57
  if options.list:
@@ -238,18 +243,16 @@ class Entrypoint:
238
243
  f'{Colors.RESET}')
239
244
  print(' ')
240
245
 
241
- # List configurations files
242
- configurations_files += [
243
- Commitizen.CONFIGURATION_FILE,
244
- PreCommit.CONFIGURATION_FILE,
245
- ]
246
-
247
246
  # Export assets files
248
- for asset in configurations_files:
247
+ for asset in [
248
+ Commitizen.CONFIGURATION_FILE,
249
+ PreCommit.CONFIGURATION_FILE,
250
+ ]:
249
251
  if Path(asset).exists():
250
252
  configurations_existed = True
251
253
  print(f'exporting configuration in {asset} configuration')
252
- data: str = resources_files(Bundle.RESOURCES_ASSETS) \
254
+ configurations_files += [asset]
255
+ data = resources_files(Bundle.RESOURCES_ASSETS) \
253
256
  .joinpath(asset) \
254
257
  .read_text(encoding='utf8') \
255
258
  .replace(PreCommit.REV_TEMPLATE, Version.revision())
@@ -274,6 +277,66 @@ class Entrypoint:
274
277
  autoupdate=not options.offline,
275
278
  )
276
279
 
280
+ # Export components templates
281
+ if options.configure and options.no_components:
282
+
283
+ # Install templates configurations
284
+ print(' ')
285
+ print(f'{Colors.GREEN} ===['
286
+ f'{Colors.YELLOW} Configure sources: '
287
+ f'{Colors.YELLOW_LIGHT}templates'
288
+ f'{Colors.GREEN} ]==='
289
+ f'{Colors.RESET}')
290
+ print(' ')
291
+
292
+ # Export templates files
293
+ for asset in [
294
+ Templates.COMMITS_FILE,
295
+ ]:
296
+
297
+ # Export template file
298
+ print(f'exporting components in {asset} local template')
299
+ Path(Templates.GITLAB_CI_LOCAL_FOLDER).mkdir(
300
+ parents=False,
301
+ exist_ok=True,
302
+ )
303
+ local_template = f'{Templates.GITLAB_CI_LOCAL_FOLDER}/{asset}'
304
+ configurations_files += [local_template]
305
+ data = resources_files(Bundle.RESOURCES_ASSETS) \
306
+ .joinpath(asset) \
307
+ .read_text(encoding='utf8')
308
+ with open(
309
+ local_template,
310
+ encoding='utf8',
311
+ mode='w',
312
+ ) as f:
313
+ f.write(data)
314
+ if Platform.IS_TTY_STDIN:
315
+ sleep(1)
316
+
317
+ # Inject template in .gitlab-ci.yml
318
+ if Path(Gcil.FILE).exists():
319
+ local_ci_data = ''
320
+ with open(Gcil.FILE, encoding='utf8') as local_ci_file:
321
+ local_ci_data = local_ci_file.read()
322
+ if asset not in local_ci_data:
323
+ with open(
324
+ Gcil.FILE,
325
+ encoding='utf8',
326
+ mode='w',
327
+ ) as f:
328
+ f.write(
329
+ Gcil.EOL.join([
330
+ 'include:',
331
+ f' - local: \'/{local_template}\'',
332
+ ' inputs:',
333
+ ' stage: test',
334
+ f' name: {asset.rsplit("/", 1)[-1].split(".", 1)[0]}',
335
+ '',
336
+ '',
337
+ ]))
338
+ f.write(local_ci_data)
339
+
277
340
  # Configure sources or badges
278
341
  if options.configure or options.badges:
279
342
 
@@ -187,6 +187,12 @@ def main() -> None:
187
187
  action='store_true',
188
188
  help='Commit configurations changes automatically',
189
189
  )
190
+ group.add_argument(
191
+ '--no-components',
192
+ dest='no_components',
193
+ action='store_true',
194
+ help='Import components templates locally instead of \'include: component:\'',
195
+ )
190
196
  group.add_argument(
191
197
  '--offline',
192
198
  dest='offline',
@@ -19,13 +19,14 @@ class Gcil:
19
19
  BADGE_URL: str = 'https://radiandevcore.gitlab.io/tools/gcil'
20
20
  BADGE_TEXT: str = 'gcil'
21
21
  BINARY: str = 'gcil'
22
+ EOL: str = '\n'
22
23
  FILE: str = '.gitlab-ci.yml'
23
24
  HOOK_DESCRIPTION: str = 'Automatically run GitLab CI job with gcil'
24
25
  HOOK_ID: str = 'run-gcil-push'
25
26
  HOOK_NAME: str = 'Run GitLab CI job with gcil'
26
27
  HOOKS_LABEL: str = 'gcil'
27
28
  HOOKS_URL: str = 'https://gitlab.com/RadianDevCore/tools/gcil'
28
- HOOKS_VERSION_MINIMAL: str = '10.2.0'
29
+ HOOKS_VERSION_MINIMAL: str = '12.0.0'
29
30
  MARKER_NODE: str = '.local:'
30
31
  MARKER_VARIABLE: str = 'CI_LOCAL'
31
32
 
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env python3
2
+
3
+ # Templates class, pylint: disable=too-few-public-methods
4
+ class Templates:
5
+
6
+ # Constants
7
+ COMMITS_FILE: str = 'commits.yml'
8
+ GITLAB_CI_LOCAL_FOLDER: str = '.gitlab-ci.d'
9
+ TEMPLATES_EOL: str = '\n'
@@ -0,0 +1,97 @@
1
+ spec:
2
+ inputs:
3
+ name:
4
+ default: commits
5
+ description: 'Defines the commits job name (Default: commits)'
6
+ stage:
7
+ default: test
8
+ description: 'Defines the commits stage (Default: test)'
9
+ image:
10
+ default: registry.gitlab.com/radiandevcore/tools/pre-commit-crocodile/pre-commit-crocodile:commits
11
+ description: 'Specify the commits image (Default: pre-commit-crocodile:commits public image)'
12
+ ---
13
+
14
+ $[[ inputs.name ]]:
15
+ image: $[[ inputs.image ]]
16
+ stage: $[[ inputs.stage ]]
17
+ needs: []
18
+ variables:
19
+ GIT_SUBMODULE_STRATEGY: none
20
+ before_script:
21
+ # Check system context
22
+ - git cz --config ./.cz.yaml version -r
23
+ # Show commits documentation
24
+ - |
25
+ (
26
+ set +x
27
+ echo ' '
28
+ for hint in 'example:33' 'info:36' 'schema:32'; do
29
+ command="${hint%%:*}"
30
+ color="${hint##*:}"
31
+ echo '---'
32
+ echo "git cz ${command}:"
33
+ echo -e "\033[1;${color}m"
34
+ git cz --config ./.cz.yaml "${command}" | sed 's#^$# #g'
35
+ echo -e '\033[0m '
36
+ done
37
+ echo '---'
38
+ )
39
+ script:
40
+ # Detect commits range
41
+ - set +x
42
+ - remote=$(git remote -v | grep '(fetch)' | awk '{print $1}' | head -n1)
43
+ - none_sha='0000000000000000000000000000000000000000'
44
+ - head_sha=$(git rev-parse "${CI_COMMIT_SHA:-HEAD}")
45
+ - |
46
+ if [ ! -z "${CI_MERGE_REQUEST_TARGET_BRANCH_NAME:-}" ]; then
47
+ git fetch "${remote}" "${CI_MERGE_REQUEST_TARGET_BRANCH_NAME}" || true
48
+ base_sha=$(git rev-parse "${remote}/${CI_MERGE_REQUEST_TARGET_BRANCH_NAME}")
49
+ base_branch=$(git rev-parse --abbrev-ref "${remote}/${CI_MERGE_REQUEST_TARGET_BRANCH_NAME}")
50
+ range_sha="${base_sha}..${head_sha}"
51
+ elif ! git log --pretty=%P -n1 'HEAD' | grep -q '.'; then
52
+ base_sha=$(git rev-parse 'HEAD')
53
+ base_branch=$(git rev-parse --abbrev-ref 'HEAD')
54
+ range_sha="${head_sha}"
55
+ elif [ ! -z "${CI_LOCAL:-}" ]; then
56
+ base_sha=$(git rev-parse "${remote}/HEAD")
57
+ base_branch=$(git rev-parse --abbrev-ref "${remote}/HEAD")
58
+ range_sha="${base_sha}..${head_sha}"
59
+ elif [ ! "${CI_COMMIT_BEFORE_SHA:-${none_sha}}" = "${none_sha}" ] && git cat-file -e "${CI_COMMIT_BEFORE_SHA}" 2>/dev/null; then
60
+ base_sha="${CI_COMMIT_BEFORE_SHA}"
61
+ base_branch="${CI_COMMIT_REF_NAME:-}"
62
+ range_sha="${base_sha}..${head_sha}"
63
+ else
64
+ base_sha=$(git rev-parse 'HEAD~1')
65
+ base_branch=$(git rev-parse --abbrev-ref 'HEAD')
66
+ range_sha="${base_sha}..${head_sha}"
67
+ fi
68
+ # Validate commits range
69
+ - |
70
+ set +x
71
+ echo ' '
72
+ echo '---'
73
+ echo -e "\033[0m\033[1mINFO: Commitizen checks from \033[1m'\033[1;36m${base_sha:0:8}\033[0m\033[1m' (\033[1;33m${base_branch}\033[0m\033[1m) to '\033[1;36m${head_sha:0:8}\033[0m\033[1m' (\033[1;33mHEAD\033[0m\033[1m)\033[0m"
74
+ echo ' '
75
+ git log --pretty=oneline --abbrev-commit "${range_sha}" | sed "s#^\([^ ]*\) #$(printf '\033[1;33m')\1$(printf '\033[0m') #g"
76
+ echo ' '
77
+ set -x
78
+ git cz --config ./.cz.yaml --no-raise 3 check --rev-range "${range_sha}"
79
+ # Validate pre-commit checks
80
+ - |
81
+ set +x
82
+ echo ' '
83
+ skip=$(grep 'id: run-gcil-' .pre-commit-config.yaml | sed 's/.* id: //g' | tr '\n' ',' | sed 's/,$//g' || true)
84
+ set -x
85
+ pre-commit install --install-hooks
86
+ SKIP="${skip}" pre-commit run --all-files --show-diff-on-failure
87
+ # Validate WIP commits
88
+ - |
89
+ set +x
90
+ if git log --pretty='%s' "${range_sha}" | grep -i '^WIP'; then
91
+ echo ' '
92
+ echo " [ERROR] Detected WIP commits in range '${range_sha}'"
93
+ echo ' '
94
+ false
95
+ fi
96
+ rules:
97
+ - when: always