gitlab-projects-settings 6.4.0__tar.gz → 6.5.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 (90) hide show
  1. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/.gitlab-ci.yml +12 -17
  2. gitlab_projects_settings-6.5.0/.mise/tasks/menu/gcil +8 -0
  3. gitlab_projects_settings-6.5.0/.mise/tasks/sources/changelog +54 -0
  4. gitlab_projects_settings-6.5.0/.mise/tasks/sources/pull +8 -0
  5. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/.pre-commit-config.yaml +11 -5
  6. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/CHANGELOG.md +49 -0
  7. {gitlab_projects_settings-6.4.0/gitlab_projects_settings.egg-info → gitlab_projects_settings-6.5.0}/PKG-INFO +4 -2
  8. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/README.md +2 -1
  9. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/containers/pages/Dockerfile +8 -3
  10. gitlab_projects_settings-6.5.0/containers/rehost/images.txt +6 -0
  11. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/docs/prepare.sh +2 -5
  12. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0/gitlab_projects_settings.egg-info}/PKG-INFO +4 -2
  13. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/gitlab_projects_settings.egg-info/SOURCES.txt +7 -1
  14. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/gitlab_projects_settings.egg-info/scm_file_list.json +7 -1
  15. gitlab_projects_settings-6.5.0/gitlab_projects_settings.egg-info/scm_version.json +8 -0
  16. gitlab_projects_settings-6.5.0/mise.toml +12 -0
  17. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/mkdocs.yml +3 -0
  18. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/setup.py +1 -0
  19. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/sonar-project.properties +1 -1
  20. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/src/cli/entrypoint.py +21 -2
  21. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/src/features/gitlab.py +37 -11
  22. gitlab_projects_settings-6.5.0/src/features/mise.py +244 -0
  23. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/src/package/updates.py +43 -18
  24. gitlab_projects_settings-6.5.0/src/system/commands.py +140 -0
  25. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/src/types/environments.py +1 -1
  26. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/src/types/gitlab.py +8 -7
  27. gitlab_projects_settings-6.4.0/containers/rehost/images.txt +0 -6
  28. gitlab_projects_settings-6.4.0/gitlab_projects_settings.egg-info/scm_version.json +0 -8
  29. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/.coveragerc +0 -0
  30. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/.cz.yaml +0 -0
  31. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/.gitattributes +0 -0
  32. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/.gitignore +0 -0
  33. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/.gitmodules +0 -0
  34. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/.markdownlint.json +0 -0
  35. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/.style.yapf +0 -0
  36. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/.vscode/extensions.json +0 -0
  37. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/.vscode/settings.json +0 -0
  38. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/LICENSE +0 -0
  39. {gitlab_projects_settings-6.4.0/config → gitlab_projects_settings-6.5.0/conf/git-cliff}/cliff.toml +0 -0
  40. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/containers/build/Dockerfile +0 -0
  41. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/containers/codestyle/Dockerfile +0 -0
  42. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/containers/deploy/Dockerfile +0 -0
  43. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/containers/test-coverage-linux/Dockerfile +0 -0
  44. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/containers/test-coverage-windows/Dockerfile +0 -0
  45. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/containers/test-linux/Dockerfile +0 -0
  46. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/docs/.pages.in +0 -0
  47. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/docs/assets/images/favicon.png +0 -0
  48. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/docs/assets/scripts/mkdocs-exporter.js +0 -0
  49. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/docs/assets/stylesheets/custom.css +0 -0
  50. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/docs/assets/stylesheets/pdf.scss +0 -0
  51. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/docs/robots.txt +0 -0
  52. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/docs/templates/covers/back.html.j2 +0 -0
  53. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/docs/templates/covers/front.html.j2 +0 -0
  54. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/gitlab_projects_settings.egg-info/dependency_links.txt +0 -0
  55. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/gitlab_projects_settings.egg-info/entry_points.txt +0 -0
  56. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/gitlab_projects_settings.egg-info/requires.txt +0 -0
  57. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/gitlab_projects_settings.egg-info/top_level.txt +0 -0
  58. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/mypy.ini +0 -0
  59. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/requirements/build.txt +0 -0
  60. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/requirements/coverage.txt +0 -0
  61. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/requirements/deploy.txt +0 -0
  62. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/requirements/pages.txt +0 -0
  63. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/requirements/quality.txt +0 -0
  64. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/requirements/runtime.txt +0 -0
  65. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/requirements/tests.txt +0 -0
  66. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/setup.cfg +0 -0
  67. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/src/__init__.py +0 -0
  68. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/src/__main__.py +0 -0
  69. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/src/cli/__init__.py +0 -0
  70. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/src/cli/main.py +0 -0
  71. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/src/features/__init__.py +0 -0
  72. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/src/package/__init__.py +0 -0
  73. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/src/package/bundle.py +0 -0
  74. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/src/package/settings.py +0 -0
  75. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/src/package/version.py +0 -0
  76. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/src/prints/__init__.py +0 -0
  77. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/src/prints/boxes.py +0 -0
  78. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/src/prints/colors.py +0 -0
  79. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/src/prints/themes.py +0 -0
  80. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/src/system/__init__.py +0 -0
  81. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/src/system/platform.py +0 -0
  82. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/src/types/__init__.py +0 -0
  83. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/src/types/namespaces.py +0 -0
  84. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/src/types/strings.py +0 -0
  85. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/tests/arguments/test.sh +0 -0
  86. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/tests/colors/test.sh +0 -0
  87. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/tests/macos/test.sh +0 -0
  88. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/tests/settings/test.sh +0 -0
  89. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/tests/versions/test.sh +0 -0
  90. {gitlab_projects_settings-6.4.0 → gitlab_projects_settings-6.5.0}/tests/windows/test.sh +0 -0
@@ -1,5 +1,5 @@
1
1
  include:
2
- - component: gitlab.com/RadianDevCore/tools/pre-commit-crocodile/commits@8.2.0
2
+ - component: gitlab.com/RadianDevCore/tools/pre-commit-crocodile/commits@9.0.0
3
3
  inputs:
4
4
  stage: prepare
5
5
  - project: RadianDevCore/gitlab-ci/components
@@ -8,11 +8,6 @@ include:
8
8
  inputs:
9
9
  stage: development
10
10
  paths: ./build ./dist ./*.egg-info ./.eggs
11
- - project: RadianDevCore/gitlab-ci/components
12
- file: /templates/changelog.yml
13
- ref: main
14
- inputs:
15
- stage: development
16
11
  - project: RadianDevCore/gitlab-ci/components
17
12
  file: /templates/gitlab-protections.yml
18
13
  ref: main
@@ -98,7 +93,7 @@ include:
98
93
  stage: deploy
99
94
  image: registry.gitlab.com/radiandevcore/tools/gitlab-projects-settings/gitlab-projects-settings:pages
100
95
  pdf: gitlab-projects-settings
101
- watch: ./config/* ./docs/.* ./docs/* ./mkdocs.yml ./README.md
96
+ watch: ./conf/git-cliff/* ./docs/.* ./docs/* ./mkdocs.yml ./README.md
102
97
 
103
98
  stages:
104
99
  - development
@@ -129,7 +124,7 @@ registry:build:
129
124
  extends:
130
125
  - .registry:container
131
126
  variables:
132
- BASEIMAGE_NAME: python:3.13-alpine
127
+ BASEIMAGE_NAME: python:3.14-alpine
133
128
  CONTAINER_FOLDER: build
134
129
  CONTAINER_IMAGE_TAG: build
135
130
  rules:
@@ -144,7 +139,7 @@ registry:codestyle:
144
139
  extends:
145
140
  - .registry:container
146
141
  variables:
147
- BASEIMAGE_NAME: python:3.13-alpine
142
+ BASEIMAGE_NAME: python:3.14-alpine
148
143
  CONTAINER_FOLDER: codestyle
149
144
  CONTAINER_IMAGE_TAG: codestyle
150
145
  rules:
@@ -160,7 +155,7 @@ registry:deploy:
160
155
  extends:
161
156
  - .registry:container
162
157
  variables:
163
- BASEIMAGE_NAME: python:3.13-alpine
158
+ BASEIMAGE_NAME: python:3.14-alpine
164
159
  CONTAINER_FOLDER: deploy
165
160
  CONTAINER_IMAGE_TAG: deploy
166
161
  rules:
@@ -174,7 +169,7 @@ registry:pages:
174
169
  extends:
175
170
  - .registry:container
176
171
  variables:
177
- BASEIMAGE_NAME: python:3.13-slim
172
+ BASEIMAGE_NAME: python:3.14-slim
178
173
  CONTAINER_FOLDER: pages
179
174
  CONTAINER_IMAGE_TAG: pages
180
175
  rules:
@@ -189,7 +184,7 @@ registry:test-coverage-linux:
189
184
  extends:
190
185
  - .registry:container
191
186
  variables:
192
- BASEIMAGE_NAME: python:3.13
187
+ BASEIMAGE_NAME: python:3.14
193
188
  CONTAINER_FOLDER: test-coverage-linux
194
189
  CONTAINER_IMAGE_TAG: test-coverage-linux
195
190
  rules:
@@ -235,7 +230,7 @@ registry:test-latest:
235
230
  extends:
236
231
  - .registry:container
237
232
  variables:
238
- BASEIMAGE_NAME: python:3.13
233
+ BASEIMAGE_NAME: python:3.14
239
234
  CONTAINER_FOLDER: test-linux
240
235
  CONTAINER_IMAGE_TAG: test-latest
241
236
  rules:
@@ -377,7 +372,7 @@ py3.10:
377
372
  - .test:rules
378
373
  image: registry.gitlab.com/radiandevcore/tools/gitlab-projects-settings/gitlab-projects-settings:test-oldest
379
374
 
380
- py3.13:
375
+ py3.14:
381
376
  extends:
382
377
  - .test:template
383
378
  - .test:rules
@@ -431,7 +426,7 @@ deploy:release:
431
426
  artifacts: false
432
427
  - job: py3.10
433
428
  artifacts: false
434
- - job: py3.13
429
+ - job: py3.14
435
430
  artifacts: false
436
431
 
437
432
  deploy:trial:
@@ -446,7 +441,7 @@ deploy:trial:
446
441
  artifacts: false
447
442
  - job: py3.10
448
443
  artifacts: false
449
- - job: py3.13
444
+ - job: py3.14
450
445
  artifacts: false
451
446
 
452
447
  .pages:rules:
@@ -473,7 +468,7 @@ pages:
473
468
  - job: py3.10
474
469
  artifacts: false
475
470
  optional: true
476
- - job: py3.13
471
+ - job: py3.14
477
472
  artifacts: false
478
473
  optional: true
479
474
  - job: quality:coverage
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+
3
+ # Mise
4
+ #MISE alias=["interactive", "gcil"]
5
+ #MISE description="Interactive menu with gcil"
6
+
7
+ # Action
8
+ gcil "${@}"
@@ -0,0 +1,54 @@
1
+ #!/usr/bin/env bash
2
+
3
+ # Mise
4
+ #MISE alias="changelog"
5
+ #MISE description="Generate sources changelog"
6
+
7
+ # Arguments
8
+ release_tag="${1:-${RELEASE_TAG}}"
9
+
10
+ # Request release tag
11
+ echo ' '
12
+ echo -n ' > Current commit : '
13
+ git describe --always
14
+ echo ' '
15
+ if [ ! -z "${release_tag:-}" ]; then
16
+ tag="${release_tag}"
17
+ else
18
+ read -p ' > Release tag [ENTER to skip tag]: ' -r tag
19
+ fi
20
+ echo ' '
21
+
22
+ # Prepare release tag
23
+ if [ ! -z "${tag}" ]; then
24
+ git tag -f -m "${tag}" "${tag}"
25
+ fi
26
+
27
+ # Detect configuration
28
+ config='./conf/git-cliff/cliff.toml'
29
+ for path in ./conf/git-cliff/cliff.toml ./config/cliff.toml ./conf/cliff.toml; do
30
+ if [ -e "${path}" ]; then
31
+ config="${path}"
32
+ break
33
+ fi
34
+ done
35
+
36
+ # Generate changelog
37
+ git-cliff --no-exec --config "${config}" --output ./CHANGELOG.md
38
+ if [ ! -z "${tag}" ]; then
39
+ sed -i "s#raw/[^/]*/docs#raw/${tag}/docs#g" ./README.md
40
+ fi
41
+ git add -v ./CHANGELOG.md ./README.md
42
+ echo ' '
43
+ if [ ! -z "${tag}" ]; then
44
+ git commit -m "docs(changelog): release version ${tag} and refresh changes history" -s
45
+ else
46
+ version=$(git describe --abbrev=7 --always --long --tags)
47
+ git commit -m "docs(changelog): update to ${version} and refresh changes history" -s
48
+ fi
49
+ echo ' '
50
+
51
+ # Create release tag
52
+ if [ ! -z "${tag}" ]; then
53
+ git tag -f -m "${tag}" "${tag}"
54
+ fi
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+
3
+ # Mise
4
+ #MISE alias="pull"
5
+ #MISE description="Pull latest changes"
6
+
7
+ # Action
8
+ git pull -r
@@ -9,8 +9,8 @@ default_stages:
9
9
  - pre-commit
10
10
  - pre-push
11
11
  - prepare-commit-msg
12
- minimum_pre_commit_version: 3.8.0
13
- minimum_prek_version: 0.2.1
12
+ minimum_pre_commit_version: 4.6.2
13
+ minimum_prek_version: 0.5.2
14
14
 
15
15
  # pre-commit exclusions
16
16
  exclude: >
@@ -44,6 +44,12 @@ repos:
44
44
  hooks:
45
45
  - id: check-added-large-files
46
46
  args: ['--maxkb=500']
47
+ # exclude: >
48
+ # (?x)(
49
+ # package-lock\.json$|
50
+ # pnpm-lock\.yaml$|
51
+ # yarn\.lock$
52
+ # )
47
53
  - id: check-case-conflict
48
54
  # exclude: >
49
55
  # (?x)(
@@ -78,7 +84,7 @@ repos:
78
84
 
79
85
  # Repository: commitizen
80
86
  - repo: https://github.com/commitizen-tools/commitizen
81
- rev: v4.9.1
87
+ rev: v4.19.3
82
88
  hooks:
83
89
  - id: commitizen
84
90
  stages:
@@ -91,14 +97,14 @@ repos:
91
97
 
92
98
  # Repository: pre-commit-crocodile
93
99
  - repo: https://gitlab.com/RadianDevCore/tools/pre-commit-crocodile
94
- rev: 8.2.0
100
+ rev: 9.0.0
95
101
  hooks:
96
102
  - id: check-yaml-ruamel-pure
97
103
  - id: prepare-commit-message
98
104
 
99
105
  # Repository: gcil
100
106
  - repo: https://gitlab.com/RadianDevCore/tools/gcil
101
- rev: 13.0.1
107
+ rev: 13.2.0
102
108
  hooks:
103
109
  - id: run-gcil-push
104
110
  name: Run GitLab CI job with gcil (codestyle)
@@ -1,5 +1,54 @@
1
1
  # Changelog
2
2
 
3
+ <a name="6.5.0"></a>
4
+ ## [6.5.0](https://gitlab.com/RadianDevCore/tools/gitlab-projects-settings/compare/6.4.0...6.5.0) (2026-11-07)
5
+
6
+ ### ✨ Features
7
+
8
+ - **entrypoint, gitlab:** skip merge pipelines settings without CI/CD ([79a57c3](https://gitlab.com/RadianDevCore/tools/gitlab-projects-settings/commit/79a57c3dd0ab97e6c7427190840c45055bae759a))
9
+ - **mise:** avoid '--path' if already the default 'mise use' configuration ([9fecd3d](https://gitlab.com/RadianDevCore/tools/gitlab-projects-settings/commit/9fecd3db006dac42a8d47c8c61265fa0f0c2f9ea))
10
+ - **updates:** show 'mise use' update command if running from 'mise' ([0f064c1](https://gitlab.com/RadianDevCore/tools/gitlab-projects-settings/commit/0f064c1b01cb3ba02ffcbf88991ebdceb3fc1906))
11
+ - **updates:** show 'mise use' update in the 'mise' configuration of the tool ([08911bc](https://gitlab.com/RadianDevCore/tools/gitlab-projects-settings/commit/08911bc2b58fb8e10e04ff00647b345a007bfd68))
12
+
13
+ ### 🐛 Bug Fixes
14
+
15
+ - **gitlab:** resolve W0102 'dangerous-default-value' linter warnings ([7f2ce89](https://gitlab.com/RadianDevCore/tools/gitlab-projects-settings/commit/7f2ce896035d0af37ed8904c1751446c5ca89b7b))
16
+
17
+ ### 📚 Documentation
18
+
19
+ - **mkdocs:** exclude generated pages from 'git-revision-date-localized' ([bca6343](https://gitlab.com/RadianDevCore/tools/gitlab-projects-settings/commit/bca6343d60dbcc6ca641ebdea10fea7762893438))
20
+ - **readme:** add 'mise-en-place' badge header ([348780f](https://gitlab.com/RadianDevCore/tools/gitlab-projects-settings/commit/348780f982e8645574b486ba55768334937abb3d))
21
+ - **readme, prepare:** link 'pipeline' badges to GitLab CI pipelines page ([90c3d22](https://gitlab.com/RadianDevCore/tools/gitlab-projects-settings/commit/90c3d22506941bb5e288a13c2647aab33b448036))
22
+
23
+ ### 🎨 Styling
24
+
25
+ - **environments:** resolve dictionary values iterator (python:S7512) ([f9d0168](https://gitlab.com/RadianDevCore/tools/gitlab-projects-settings/commit/f9d0168427b5bec0a28e46a5d88f94755e1fc32e))
26
+ - **gitlab:** resolve 'key' variables shadowning (python:S8510) ([75c3bf8](https://gitlab.com/RadianDevCore/tools/gitlab-projects-settings/commit/75c3bf8f3662d38369e7b025cc67c4ecad313ac7))
27
+
28
+ ### ⚙️ Cleanups
29
+
30
+ - **cliff:** migrate 'cliff.toml' to 'conf/git-cliff/' folder ([ea0b377](https://gitlab.com/RadianDevCore/tools/gitlab-projects-settings/commit/ea0b377d9ad0852ad40f5bb84108f5c958e33ccb))
31
+ - **mise:** initial empty mise-en-place configuration ([8ab68f4](https://gitlab.com/RadianDevCore/tools/gitlab-projects-settings/commit/8ab68f478b51cecb415b8fe59e3dc2c8aa5f8539))
32
+ - **mise:** create 'mise-en-place' configuration for 'gcil' ([9d4cfd8](https://gitlab.com/RadianDevCore/tools/gitlab-projects-settings/commit/9d4cfd88f250f7fd5bf19ec9976513179ec7e907))
33
+ - **mise:** require 'pre-commit-crocodile' dependency and activation ([ce92597](https://gitlab.com/RadianDevCore/tools/gitlab-projects-settings/commit/ce925975f298c1c6943151245a0870bd3255b2dc))
34
+ - **mise:** alias 'make' to 'mise run' for generic use cases ([a1b1103](https://gitlab.com/RadianDevCore/tools/gitlab-projects-settings/commit/a1b110365426b9abeddfef026a8f236f6cd0723f))
35
+ - **mise:** create 'menu:gcil' task for 'gcil' use cases ([0f8a437](https://gitlab.com/RadianDevCore/tools/gitlab-projects-settings/commit/0f8a43793b252bb279fd3d6c9b105dcb8380bf88))
36
+ - **mise:** create 'changelog' task to generate with 'git-cliff' ([e038ae5](https://gitlab.com/RadianDevCore/tools/gitlab-projects-settings/commit/e038ae519c9b8a35e063b9b7210a01c0e3472700))
37
+ - **mise:** create 'pull' task to pull upstream sources ([fef8a41](https://gitlab.com/RadianDevCore/tools/gitlab-projects-settings/commit/fef8a41c8be8d85c60828f1d75541e5e43aa2205))
38
+ - **pre-commit:** migrate to 'pre-commit-crocodile' 8.4.0 ([fd30524](https://gitlab.com/RadianDevCore/tools/gitlab-projects-settings/commit/fd3052489814555afaf69a33b2bc0cff20d0a95a))
39
+ - **pre-commit:** migrate to 'pre-commit-crocodile' 9.0.0 ([a76e56a](https://gitlab.com/RadianDevCore/tools/gitlab-projects-settings/commit/a76e56a8acf475f5c8b5d45ea113075f86714715))
40
+
41
+ ### 🚀 CI
42
+
43
+ - **gitlab-ci:** remove 'changelog' job as generated with 'git-cliff' mise task ([397d68f](https://gitlab.com/RadianDevCore/tools/gitlab-projects-settings/commit/397d68f2ddd23417274237d45c94d27e9c629efc))
44
+ - **gitlab-ci:** migrate to 'RadianDevCore/gitlab-ci/components' 2.0.0 ([638a2b2](https://gitlab.com/RadianDevCore/tools/gitlab-projects-settings/commit/638a2b2a12ed6ca47e90f702cae0f0a79ac1be0a))
45
+
46
+ ### 📦 Build
47
+
48
+ - **🚨 BREAKING CHANGE 🚨 |** **gitlab-ci, setup:** raise latest Python from 3.13 to 3.14 ([585ba5e](https://gitlab.com/RadianDevCore/tools/gitlab-projects-settings/commit/585ba5e1307df7aa1a881416078601ca9657b90e))
49
+ - **pages:** install 'git-cliff' 2.14.1 through 'mise' from 'extrepo' ([8b3b52f](https://gitlab.com/RadianDevCore/tools/gitlab-projects-settings/commit/8b3b52facddf208ef2e93dea1f774e9fbec43be0))
50
+
51
+
3
52
  <a name="6.4.0"></a>
4
53
  ## [6.4.0](https://gitlab.com/RadianDevCore/tools/gitlab-projects-settings/compare/6.3.0...6.4.0) (2026-08-20)
5
54
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gitlab-projects-settings
3
- Version: 6.4.0
3
+ Version: 6.5.0
4
4
  Summary: Configure GitLab groups and projects settings automatically
5
5
  Home-page: https://gitlab.com/RadianDevCore/tools/gitlab-projects-settings
6
6
  Author: Adrian DC
@@ -21,6 +21,7 @@ Classifier: Programming Language :: Python :: 3.10
21
21
  Classifier: Programming Language :: Python :: 3.11
22
22
  Classifier: Programming Language :: Python :: 3.12
23
23
  Classifier: Programming Language :: Python :: 3.13
24
+ Classifier: Programming Language :: Python :: 3.14
24
25
  Classifier: Topic :: Software Development
25
26
  Classifier: Topic :: Utilities
26
27
  Requires-Python: >=3,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,!=3.7.*
@@ -56,7 +57,7 @@ Dynamic: summary
56
57
  [![Downloads](https://img.shields.io/pypi/dm/gitlab-projects-settings?color=blue)](https://pypi.org/project/gitlab-projects-settings)
57
58
  [![License](https://img.shields.io/gitlab/license/RadianDevCore/tools/gitlab-projects-settings?color=blue)](https://gitlab.com/RadianDevCore/tools/gitlab-projects-settings/-/blob/main/LICENSE)
58
59
  <br />
59
- [![Build](https://gitlab.com/RadianDevCore/tools/gitlab-projects-settings/badges/main/pipeline.svg)](https://gitlab.com/RadianDevCore/tools/gitlab-projects-settings/-/commits/main/)
60
+ [![Build](https://gitlab.com/RadianDevCore/tools/gitlab-projects-settings/badges/main/pipeline.svg)](https://gitlab.com/RadianDevCore/tools/gitlab-projects-settings/-/pipelines?ref=main)
60
61
  [![Bugs](https://sonarcloud.io/api/project_badges/measure?project=RadianDevCore_gitlab-projects-settings&metric=bugs)](https://sonarcloud.io/dashboard?id=RadianDevCore_gitlab-projects-settings)
61
62
  [![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=RadianDevCore_gitlab-projects-settings&metric=code_smells)](https://sonarcloud.io/dashboard?id=RadianDevCore_gitlab-projects-settings)
62
63
  [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=RadianDevCore_gitlab-projects-settings&metric=coverage)](https://sonarcloud.io/dashboard?id=RadianDevCore_gitlab-projects-settings)
@@ -66,6 +67,7 @@ Dynamic: summary
66
67
  [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit)](https://github.com/pre-commit/pre-commit)
67
68
  [![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](https://commitizen-tools.github.io/commitizen/)
68
69
  [![gcil](https://img.shields.io/badge/gcil-enabled-brightgreen?logo=gitlab)](https://radiandevcore.gitlab.io/tools/gcil)
70
+ [![mise](https://mise-versions.jdx.dev/badge.svg)](https://mise.jdx.dev)
69
71
  [![pre-commit-crocodile](https://img.shields.io/badge/pre--commit--crocodile-enabled-brightgreen?logo=gitlab)](https://radiandevcore.gitlab.io/tools/pre-commit-crocodile)
70
72
  [![guidelines](https://img.shields.io/badge/radiandevcore-guidelines-brightgreen?logo=gitlab)](https://radiandevcore.gitlab.io/wiki/guidelines)
71
73
 
@@ -7,7 +7,7 @@
7
7
  [![Downloads](https://img.shields.io/pypi/dm/gitlab-projects-settings?color=blue)](https://pypi.org/project/gitlab-projects-settings)
8
8
  [![License](https://img.shields.io/gitlab/license/RadianDevCore/tools/gitlab-projects-settings?color=blue)](https://gitlab.com/RadianDevCore/tools/gitlab-projects-settings/-/blob/main/LICENSE)
9
9
  <br />
10
- [![Build](https://gitlab.com/RadianDevCore/tools/gitlab-projects-settings/badges/main/pipeline.svg)](https://gitlab.com/RadianDevCore/tools/gitlab-projects-settings/-/commits/main/)
10
+ [![Build](https://gitlab.com/RadianDevCore/tools/gitlab-projects-settings/badges/main/pipeline.svg)](https://gitlab.com/RadianDevCore/tools/gitlab-projects-settings/-/pipelines?ref=main)
11
11
  [![Bugs](https://sonarcloud.io/api/project_badges/measure?project=RadianDevCore_gitlab-projects-settings&metric=bugs)](https://sonarcloud.io/dashboard?id=RadianDevCore_gitlab-projects-settings)
12
12
  [![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=RadianDevCore_gitlab-projects-settings&metric=code_smells)](https://sonarcloud.io/dashboard?id=RadianDevCore_gitlab-projects-settings)
13
13
  [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=RadianDevCore_gitlab-projects-settings&metric=coverage)](https://sonarcloud.io/dashboard?id=RadianDevCore_gitlab-projects-settings)
@@ -17,6 +17,7 @@
17
17
  [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit)](https://github.com/pre-commit/pre-commit)
18
18
  [![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](https://commitizen-tools.github.io/commitizen/)
19
19
  [![gcil](https://img.shields.io/badge/gcil-enabled-brightgreen?logo=gitlab)](https://radiandevcore.gitlab.io/tools/gcil)
20
+ [![mise](https://mise-versions.jdx.dev/badge.svg)](https://mise.jdx.dev)
20
21
  [![pre-commit-crocodile](https://img.shields.io/badge/pre--commit--crocodile-enabled-brightgreen?logo=gitlab)](https://radiandevcore.gitlab.io/tools/pre-commit-crocodile)
21
22
  [![guidelines](https://img.shields.io/badge/radiandevcore-guidelines-brightgreen?logo=gitlab)](https://radiandevcore.gitlab.io/wiki/guidelines)
22
23
 
@@ -3,13 +3,18 @@ FROM $IMAGE_BASE
3
3
 
4
4
  # Install dependencies
5
5
  RUN apt update \
6
+ && apt install -y --no-install-recommends \
7
+ extrepo \
8
+ && extrepo enable mise \
9
+ && apt update \
6
10
  && apt install -y --no-install-recommends \
7
11
  entr \
8
12
  git \
13
+ mise \
9
14
  wget \
10
- && wget -O ./git-cliff.deb -q https://github.com/orhun/git-cliff/releases/download/v2.5.0/git-cliff-2.5.0.deb \
11
- && apt install -y --no-install-recommends ./git-cliff.deb \
12
- && rm -f ./git-cliff.deb \
15
+ && export MISE_DATA_DIR=/opt/mise \
16
+ && mise use --global git-cliff@2.14.1 \
17
+ && ln -s "$(mise which git-cliff)" /usr/local/bin/git-cliff \
13
18
  && rm -rf /var/lib/apt/lists/*
14
19
 
15
20
  # Install requirements
@@ -0,0 +1,6 @@
1
+ python:3.10
2
+ python:3.14
3
+ python:3.14-alpine
4
+ python:3.14-slim-bookworm|python:3.14-slim
5
+ sonarsource/sonar-scanner-cli:latest
6
+ tobix/pywine:3.10
@@ -89,15 +89,12 @@ find "${docs_path}/" -name '*.md' \
89
89
  # Export about/changelog
90
90
  rm -rf "${docs_path}/about"
91
91
  mkdir -p "${docs_path}/about/"
92
- if ! type git-cliff >/dev/null 2>&1; then
93
- alias git-cliff='./.tmp/git-cliff'
94
- fi
95
92
  {
96
93
  echo '---'
97
94
  echo 'pdf: false'
98
95
  echo '---'
99
96
  echo ''
100
- git-cliff --no-exec --config "${root_path}/config/cliff.toml" \
97
+ git-cliff --no-exec --config "${root_path}/conf/git-cliff/cliff.toml" \
101
98
  | sed '/^- /{ s/</\&lt;/g; s/>/\&gt;/g; }'
102
99
  } >"${docs_path}/about/changelog.md"
103
100
  diff -u "${root_path}/CHANGELOG.md" "${docs_path}/about/changelog.md" || true
@@ -192,7 +189,7 @@ diff -u "${root_path}/CHANGELOG.md" "${docs_path}/about/changelog.md" || true
192
189
  echo ' <b>GitLab</b>'
193
190
  echo ' </td>'
194
191
  echo ' <td>'
195
- echo " <a href=\"${projectUrl}/-/commits/${branch}/\">"
192
+ echo " <a href=\"${projectUrl}/-/pipelines?ref=${branch}\">"
196
193
  echo " <img src=\"${projectUrl}/badges/${branch}/pipeline.svg\" alt=\"Build\" style=\"max-width: 100%;\">"
197
194
  echo ' </a>'
198
195
  echo " <a href=\"${projectUrl}/-/network/${branch}/\">"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gitlab-projects-settings
3
- Version: 6.4.0
3
+ Version: 6.5.0
4
4
  Summary: Configure GitLab groups and projects settings automatically
5
5
  Home-page: https://gitlab.com/RadianDevCore/tools/gitlab-projects-settings
6
6
  Author: Adrian DC
@@ -21,6 +21,7 @@ Classifier: Programming Language :: Python :: 3.10
21
21
  Classifier: Programming Language :: Python :: 3.11
22
22
  Classifier: Programming Language :: Python :: 3.12
23
23
  Classifier: Programming Language :: Python :: 3.13
24
+ Classifier: Programming Language :: Python :: 3.14
24
25
  Classifier: Topic :: Software Development
25
26
  Classifier: Topic :: Utilities
26
27
  Requires-Python: >=3,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,!=3.7.*
@@ -56,7 +57,7 @@ Dynamic: summary
56
57
  [![Downloads](https://img.shields.io/pypi/dm/gitlab-projects-settings?color=blue)](https://pypi.org/project/gitlab-projects-settings)
57
58
  [![License](https://img.shields.io/gitlab/license/RadianDevCore/tools/gitlab-projects-settings?color=blue)](https://gitlab.com/RadianDevCore/tools/gitlab-projects-settings/-/blob/main/LICENSE)
58
59
  <br />
59
- [![Build](https://gitlab.com/RadianDevCore/tools/gitlab-projects-settings/badges/main/pipeline.svg)](https://gitlab.com/RadianDevCore/tools/gitlab-projects-settings/-/commits/main/)
60
+ [![Build](https://gitlab.com/RadianDevCore/tools/gitlab-projects-settings/badges/main/pipeline.svg)](https://gitlab.com/RadianDevCore/tools/gitlab-projects-settings/-/pipelines?ref=main)
60
61
  [![Bugs](https://sonarcloud.io/api/project_badges/measure?project=RadianDevCore_gitlab-projects-settings&metric=bugs)](https://sonarcloud.io/dashboard?id=RadianDevCore_gitlab-projects-settings)
61
62
  [![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=RadianDevCore_gitlab-projects-settings&metric=code_smells)](https://sonarcloud.io/dashboard?id=RadianDevCore_gitlab-projects-settings)
62
63
  [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=RadianDevCore_gitlab-projects-settings&metric=coverage)](https://sonarcloud.io/dashboard?id=RadianDevCore_gitlab-projects-settings)
@@ -66,6 +67,7 @@ Dynamic: summary
66
67
  [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit)](https://github.com/pre-commit/pre-commit)
67
68
  [![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](https://commitizen-tools.github.io/commitizen/)
68
69
  [![gcil](https://img.shields.io/badge/gcil-enabled-brightgreen?logo=gitlab)](https://radiandevcore.gitlab.io/tools/gcil)
70
+ [![mise](https://mise-versions.jdx.dev/badge.svg)](https://mise.jdx.dev)
69
71
  [![pre-commit-crocodile](https://img.shields.io/badge/pre--commit--crocodile-enabled-brightgreen?logo=gitlab)](https://radiandevcore.gitlab.io/tools/pre-commit-crocodile)
70
72
  [![guidelines](https://img.shields.io/badge/radiandevcore-guidelines-brightgreen?logo=gitlab)](https://radiandevcore.gitlab.io/wiki/guidelines)
71
73
 
@@ -10,13 +10,17 @@
10
10
  CHANGELOG.md
11
11
  LICENSE
12
12
  README.md
13
+ mise.toml
13
14
  mkdocs.yml
14
15
  mypy.ini
15
16
  setup.py
16
17
  sonar-project.properties
18
+ .mise/tasks/menu/gcil
19
+ .mise/tasks/sources/changelog
20
+ .mise/tasks/sources/pull
17
21
  .vscode/extensions.json
18
22
  .vscode/settings.json
19
- config/cliff.toml
23
+ conf/git-cliff/cliff.toml
20
24
  containers/build/Dockerfile
21
25
  containers/codestyle/Dockerfile
22
26
  containers/deploy/Dockerfile
@@ -56,6 +60,7 @@ src/cli/entrypoint.py
56
60
  src/cli/main.py
57
61
  src/features/__init__.py
58
62
  src/features/gitlab.py
63
+ src/features/mise.py
59
64
  src/package/__init__.py
60
65
  src/package/bundle.py
61
66
  src/package/settings.py
@@ -66,6 +71,7 @@ src/prints/boxes.py
66
71
  src/prints/colors.py
67
72
  src/prints/themes.py
68
73
  src/system/__init__.py
74
+ src/system/commands.py
69
75
  src/system/platform.py
70
76
  src/types/__init__.py
71
77
  src/types/environments.py
@@ -7,6 +7,9 @@
7
7
  ".gitlab-ci.yml",
8
8
  ".gitmodules",
9
9
  ".markdownlint.json",
10
+ ".mise/tasks/menu/gcil",
11
+ ".mise/tasks/sources/changelog",
12
+ ".mise/tasks/sources/pull",
10
13
  ".pre-commit-config.yaml",
11
14
  ".style.yapf",
12
15
  ".vscode/extensions.json",
@@ -14,7 +17,7 @@
14
17
  "CHANGELOG.md",
15
18
  "LICENSE",
16
19
  "README.md",
17
- "config/cliff.toml",
20
+ "conf/git-cliff/cliff.toml",
18
21
  "containers/build/Dockerfile",
19
22
  "containers/codestyle/Dockerfile",
20
23
  "containers/deploy/Dockerfile",
@@ -32,6 +35,7 @@
32
35
  "docs/robots.txt",
33
36
  "docs/templates/covers/back.html.j2",
34
37
  "docs/templates/covers/front.html.j2",
38
+ "mise.toml",
35
39
  "mkdocs.yml",
36
40
  "mypy.ini",
37
41
  "requirements/build.txt",
@@ -50,6 +54,7 @@
50
54
  "src/cli/main.py",
51
55
  "src/features/__init__.py",
52
56
  "src/features/gitlab.py",
57
+ "src/features/mise.py",
53
58
  "src/package/__init__.py",
54
59
  "src/package/bundle.py",
55
60
  "src/package/settings.py",
@@ -60,6 +65,7 @@
60
65
  "src/prints/colors.py",
61
66
  "src/prints/themes.py",
62
67
  "src/system/__init__.py",
68
+ "src/system/commands.py",
63
69
  "src/system/platform.py",
64
70
  "src/types/__init__.py",
65
71
  "src/types/environments.py",
@@ -0,0 +1,8 @@
1
+ {
2
+ "tag": "6.5.0",
3
+ "distance": 0,
4
+ "node": "gcbb35f69d89a5775f484ae08864a190bf33f47e5",
5
+ "dirty": false,
6
+ "branch": "HEAD",
7
+ "node_date": "2026-11-07"
8
+ }
@@ -0,0 +1,12 @@
1
+ [tools]
2
+ git-cliff = "latest"
3
+ "pipx:gitlabci-local" = "latest"
4
+ "pipx:pre-commit-crocodile" = "latest"
5
+
6
+ [hooks]
7
+ postinstall = '''
8
+ pre-commit-crocodile --enable
9
+ '''
10
+
11
+ [shell_alias]
12
+ make = 'mise run'
@@ -80,6 +80,9 @@ plugins:
80
80
  html_report_dir: coverage-reports/html
81
81
  - git-revision-date-localized:
82
82
  enable_creation_date: true
83
+ exclude:
84
+ - about/*
85
+ - index.md
83
86
  fallback_to_build_date: true
84
87
  strict: false
85
88
  type: timeago
@@ -72,6 +72,7 @@ setup(
72
72
  'Programming Language :: Python :: 3.11',
73
73
  'Programming Language :: Python :: 3.12',
74
74
  'Programming Language :: Python :: 3.13',
75
+ 'Programming Language :: Python :: 3.14',
75
76
  'Topic :: Software Development',
76
77
  'Topic :: Utilities',
77
78
  ],
@@ -15,7 +15,7 @@ sonar.sources=src
15
15
  #sonar.sourceEncoding=UTF-8
16
16
 
17
17
  # Python versions
18
- sonar.python.version=3.10, 3.11, 3.12, 3.13
18
+ sonar.python.version=3.10, 3.11, 3.12, 3.13, 3.14
19
19
 
20
20
  # Patterns used to exclude some files from coverage report.
21
21
  sonar.coverage.exclusions=setup.py
@@ -502,6 +502,7 @@ class Entrypoint:
502
502
 
503
503
  # Variables
504
504
  changed: Optional[bool]
505
+ cicd_enabled: bool = False
505
506
 
506
507
  # Acquire project
507
508
  project = gitlab.project(criteria)
@@ -764,8 +765,19 @@ class Entrypoint:
764
765
  f'{Colors.RESET}')
765
766
  Platform.flush()
766
767
 
768
+ # Detect project CI/CD feature
769
+ if options.set_merge_pipelines is not None or options.set_merge_skipped is not None:
770
+ cicd_enabled = gitlab.project_feature_enabled(criteria, 'CI_CD')
771
+
772
+ # Skip project merge pipelines without CI/CD
773
+ if options.set_merge_pipelines is not None and not cicd_enabled:
774
+ print(f'{Colors.BOLD} - Set merge pipelines: '
775
+ f'{Colors.YELLOW}Skipped (CI/CD disabled)'
776
+ f'{Colors.RESET}')
777
+ Platform.flush()
778
+
767
779
  # Set project merge pipelines
768
- if options.set_merge_pipelines is not None:
780
+ elif options.set_merge_pipelines is not None:
769
781
  changed = gitlab.project_set_attribute(
770
782
  criteria,
771
783
  MergeRequestsPipelines.ATTRIBUTE,
@@ -782,8 +794,15 @@ class Entrypoint:
782
794
  f'{Colors.RESET}')
783
795
  Platform.flush()
784
796
 
797
+ # Skip project merge skipped without CI/CD
798
+ if options.set_merge_skipped is not None and not cicd_enabled:
799
+ print(f'{Colors.BOLD} - Set merge skipped: '
800
+ f'{Colors.YELLOW}Skipped (CI/CD disabled)'
801
+ f'{Colors.RESET}')
802
+ Platform.flush()
803
+
785
804
  # Set project merge skipped
786
- if options.set_merge_skipped is not None:
805
+ elif options.set_merge_skipped is not None:
787
806
  changed = gitlab.project_set_attribute(
788
807
  criteria,
789
808
  MergeRequestsSkipped.ATTRIBUTE,