Changelog
6.1.1 (2025-02-28)
✨ Features
- gitlab: detect 'pages' jobs to preserve 'Pages' GitLab feature (8ff360c)
6.1.0 (2025-02-10)
✨ Features
- entrypoint, gitlab: show already valid settings in green (ed29b3a)
- entrypoint, gitlab: show GitLab username upon authentication (6beea96)
🐛 Bug Fixes
- entrypoint: prevent acces to projects shared with groups (c2308cd)
📚 Documentation
- docs: use '<span class=page-break>' instead of '<div>' (fe38e5e)
- prepare: avoid 'TOC' injection if 'hide: - toc' is used (b05111b)
🎨 Styling
- colors: ignore 'Colored' import 'Incompatible import' warning (56cb0df)
⚙️ Cleanups
- sonar-project: configure coverage checks in SonarCloud (0a23f99)
🚀 CI
- gitlab-ci: run coverage jobs if 'sonar-project.properties' changes (b3efefc)
- gitlab-ci: watch for 'docs/.*' changes in 'pages' jobs (a4c1b0d)
6.0.1 (2025-01-01)
🐛 Bug Fixes
- gitlab: catch 'StopIteration' exceptions upon missing boards (e200557)
6.0.0 (2025-01-01)
✨ Features
- cli: implement '--{get,set}-project-issues-boards' features (0a88810)
- cli, gitlab: implement '--set-roles-create-{projects,subgroups}' (56f7aba)
- entrypoint: show projects description after '# ...' (fbd6678)
- entrypoint: allow empty description and custom indent in 'confirm' (03fb17c)
- entrypoint: use '...' quotes in 'confirm' function (6e77117)
🐛 Bug Fixes
- cli: use package name for 'Updates' checks (06d795e)
- entrypoint: show '# /' if no description is set (fbf2a28)
- gitlab: support GitLab Premium delayed project/group deletions (0ebc2c1)
📚 Documentation
- mkdocs: minor '(prefers-color-scheme...)' syntax improvements (3964c8f)
- mkdocs: remove 'preview.py' and 'template.svg' files exclusions (8caccf0)
- mkdocs, pages: use 'MKDOCS_EXPORTER_PDF_OUTPUT' for PDF file (e05833d)
- pages: rename PDF link title to 'Export as PDF' (f0b2b58)
- pdf: avoid header / footer lines on front / back pages (84ed713)
- pdf: minor stylesheets codestyle improvements (7373bd6)
- pdf: reverse PDF front / back cover pages colors for printers (7505256)
- prepare: use 'mkdocs.yml' to get project name value (837d15b)
- readme: add missing '--' separator after '--reset-features' (bd038df)
- stylesheets: resolve lines and arrows visibility in dark mode (89b16f6)
- templates: add 'Author' and 'Description' to PDF front page (eff3014)
- templates: add 'Date' detail on PDF front page (f1042d9)
- templates: use Git commit SHA1 as version if no Git tag found (37e1080)
🧪 Test
- test: fix daily updates coverage test syntax (0eac0ac)
🚀 CI
- gitlab-ci: avoid PDF slow generation locally outside 'pdf' job (77fc8e8)
- gitlab-ci: validate host network interfaces support (d706e44)
- gitlab-ci: enable '.local: no_regex' feature (9235ece)
- gitlab-ci: append Git version to PDF output file name (6e8cd69)
- gitlab-ci: rename PDF to 'gitlab-projects-settings' (63344bd)
- gitlab-ci: migrate to 'pre-commit-crocodile/commits@4.0.0' (708acf7)
- gitlab-ci: ensure 'pages' job does not block pipeline if manual (077e41f)
- gitlab-ci: change release title to include tag version (51b8089)
5.4.0 (2024-10-28)
✨ Features
- cli: implement '--[add,remove]-jobs-token-allowlist' for CI job tokens (96aea14)
- main: support '--update-description[s]' parameter (0adb104)
- main: support '---project[s]' and '---group[s]' parameters (55210bf)
🐛 Bug Fixes
- main: ensure 'FORCE_COLOR=0' if using '--no-color' flag (b38f7e1)
📚 Documentation
- assets: prepare mkdocs to generate mermaid diagrams (1787a67)
- cliff: improve 'Unreleased' and refactor to 'Development' (2829e95)
- covers: resolve broken page header / footer titles (4419933)
- custom: change to custom header darker blue header bar (6fcc006)
- docs: improve documentation PDF outputs with page breaks (bb43490)
- mkdocs: enable 'git-revision-date-localized' plugin (525b346)
- mkdocs: change web pages themes colors to 'blue' (7335cda)
- mkdocs: fix 'git-revision-date-localized' syntax (106dce0)
- mkdocs: migrate to 'awesome-pages' pages navigation (6d94b4f)
- mkdocs: change 'auto / light / dark' themes toggle icons (4729e7e)
- mkdocs: enable and configure 'minify' plugin (ae98410)
- mkdocs: install 'mkdocs-macros-plugin' for Jinja2 templates (b81f17b)
- mkdocs: enable 'pymdownx.emoji' extension for Markdown (c14a469)
- mkdocs: implement 'mkdocs-exporter' and customize PDF style (6afafa1)
- mkdocs: set documentation pages logo to 'solid/code' ('</>') (5d7144b)
- mkdocs: enable 'permalink' headers anchors for table of contents (40904cc)
- mkdocs: prepare 'privacy' and 'offline' plugins for future usage (39ab0e8)
- mkdocs: disable Google fonts to comply with GDPR data privacy (192266f)
- mkdocs: implement 'Table of contents' injection for PDF results (40a2ca7)
- mkdocs: enable 'Created' date feature for pages footer (22c27a8)
- mkdocs: add website favicon image and configuration (58d0e7c)
- mkdocs: implement 'book' covers to have 'limits' + 'fronts' (f8881d9)
- mkdocs: isolate assets to 'docs/assets/' subfolder (486ae75)
- mkdocs: exclude '.git' from watched documentation sources (a6ac5c2)
- mkdocs, prepare: resolve Markdown support in hidden '<details>' (648d940)
- pages: rename index page title to '‣ Usage' (5e42421)
- pdf: simplify PDF pages copyright footer (7feda91)
- pdf: migrate to custom state pseudo class 'state(...)' (74187aa)
- prepare: regenerate development 'CHANGELOG' with 'git-cliff' (b990232)
- prepare: avoid 'md_in_html' changes to 'changelog' and 'license' (3d02e03)
- prepare: fix '<' and '>' changelog handlings and files list (3de52a2)
- prepare: implement 'About / Quality' badges page (3ae64e7)
- prepare: improve 'Quality' project badges to GitLab (10d7bbf)
- prepare: use 'docs' sources rather than '.cache' duplicates (4b9bf71)
- prepare: resolve 'docs/about' intermediates cleanup (5f7b6ce)
- prepare: add PyPI badges and license badge to 'quality' page (3fdea38)
- prepare: avoid adding TOC to generated and 'no-toc' files (dc572e2)
- readme: add 'gcil:enabled' documentation badge (5fd8354)
- readme: add pypi, python versions, downloads and license badges (4e0e234)
- readme: add '~/.python-gitlab.cfg' section title (f640412)
- robots: configure 'robots.txt' for pages robots exploration (c9a7bd8)
⚙️ Cleanups
- gitignore: exclude only 'build' folder from sources root (203338f)
- gitignore: exclude '/build' folder or symlink too (2a9473c)
- gitlab: resolve 'too-many-positional-arguments' new lint warnings (4d5e9d2)
- sonar: wait for SonarCloud Quality Gate status (767d52b)
- vscode: use 'yzhang.markdown-all-in-one' for Markdown formatter (facc6b8)
🚀 CI
- gitlab-ci: prevent 'sonarcloud' job launch upon 'gcil' local use (f606bbb)
- gitlab-ci: run SonarCloud analysis on merge request pipelines (73f8c59)
- gitlab-ci: watch for 'config/*' changes in 'serve' job (e5c8491)
- gitlab-ci: fetch Git tags history in 'pages' job execution (9f2235c)
- gitlab-ci: fetch with '--unshallow' for full history in 'pages' (4cc19f3)
- gitlab-ci: enforce 'requirements/pages.txt' in 'serve' job (e61d8da)
- gitlab-ci: add 'python:3.12-slim' image mirror (428ae8b)
- gitlab-ci: inject only 'mkdocs-*' packages in 'serve' job (f7abea0)
- gitlab-ci: install 'playwright' with chromium in 'serve' job (a3b788f)
- gitlab-ci: find files only for 'entr' in 'serve' (35ebc15)
- gitlab-ci: improve GitLab CI job outputs for readability (21673ff)
- gitlab-ci: deploy GitLab Pages on 'CI_DEFAULT_BRANCH' branch (9d55a72)
- gitlab-ci: ignore 'variables.scss' in 'serve' watcher (60d37d3)
- gitlab-ci: preserve only existing Docker images after 'images' (eea9afc)
- gitlab-ci: use 'MKDOCS_EXPORTER_PDF_ENABLED' to disable PDF exports (aba6c50)
- gitlab-ci: run 'pages' job on GitLab CI tags pipelines (4cd9ea0)
- gitlab-ci: isolate 'pages: rules: changes' for reuse (2919d37)
- gitlab-ci: allow manual launch of 'pages' on protected branches (7fdd535)
- gitlab-ci: create 'pdf' job to export PDF on tags and branches (2ee62f7)
- gitlab-ci: implement local pages serve in 'pages' job (39741d7)
- gitlab-ci: raise minimal 'gcil' version to '11.0' (0881a14)
- gitlab-ci: enable local host network on 'pages' job (b23017f)
- gitlab-ci: detect failures from 'mkdocs serve' executions (64dba9f)
- gitlab-ci: refactor images containers into 'registry:*' jobs (2cbce86)
- gitlab-ci: bind 'registry:' dependencies to 'requirements/.txt' (18a5b25)
📦 Build
- build: import missing 'build' container sources (a075797)
- containers: use 'apk add --no-cache' for lighter images (b7bb58c)
- pages: add 'git-cliff' to the ':pages' image (696a812)
- pages: migrate to 'python:3.12-slim' Ubuntu base image (4c1bb56)
- pages: install 'playwright' dependencies for 'mkdocs-exporter' (688388e)
- pages: install 'entr' in the image (6a3d40a)
- requirements: install 'mkdocs-git-revision-date-localized-plugin' (73f1d7f)
- requirements: install 'mkdocs-awesome-pages-plugin' plugin (d5715db)
- requirements: install 'mkdocs-minify-plugin' for ':pages' (bd8316a)
- requirements: install 'mkdocs-exporter' in ':pages' (abb114b)
- requirements: migrate to 'mkdocs-exporter' with PR#35 (ab1c1d7)
- requirements: upgrade to 'playwright' 1.48.0 (8e9f081)
- requirements: migrate to 'mkdocs-exporter' with PR#42/PR#41 (156dd4d)
5.3.1 (2024-08-25)
✨ Features
- updates: migrate from deprecated 'pkg_resources' to 'packaging' (103ef37)
📚 Documentation
- mkdocs: implement GitLab Pages initial documentation and jobs (8643bbc)
- readme: link against 'gcil' documentation pages (022f572)
⚙️ Cleanups
- commitizen: migrate to new 'filter' syntax (commitizen#1207) (fddd134)
- pre-commit: add 'python-check-blanket-type-ignore' and 'python-no-eval' (5dc3e17)
- pre-commit: fail 'gcil' jobs if 'PRE_COMMIT' is defined (5b508ba)
- pre-commit: simplify and unify 'local-gcil' hooks syntax (f1b7c10)
- pre-commit: improve syntax for 'args' arguments (29ed782)
- pre-commit: migrate to 'run-gcil-*' template 'gcil' hooks (1242370)
- pre-commit: update against 'run-gcil-push' hook template (28e3bc8)
- pre-commit: migrate to 'pre-commit-crocodile' 3.0.0 (0167d46)
🚀 CI
- containers: implement ':pages' image with 'mkdocs-material' (ab8bdde)
- gitlab-ci: avoid failures of 'codestyle' upon local launches (62f9d86)
- gitlab-ci: migrate to 'pre-commit-crocodile/commits@2.1.0' component (46515c9)
- gitlab-ci: migrate to 'pre-commit-crocodile/commits@3.0.0' component (412f468)
5.3.0 (2024-08-21)
🐛 Bug Fixes
- gitlab: fix support for Python 3.8 types union (b83320e)
- platform: always flush on Windows hosts without stdout TTY (78bcaaa)
📚 Documentation
- readme: add 'pre-commit enabled' badges (c4ea26a)
- readme: add SonarCloud analysis project badges (8cf30fb)
- readme: link 'gcil' back to 'gitlabci-local' PyPI package (135a40c)
⚙️ Cleanups
- commitizen: migrate to 'pre-commit-crocodile' 2.0.1 (c35c1e7)
- gitattributes: always checkout Shell scripts with '\n' EOL (f1917c2)
- gitignore: ignore '.*.swp' intermediates 'nano' files (4e2a305)
- pre-commit: run 'codestyle', 'lint' and 'typings' jobs (276de41)
- pre-commit: migrate to 'pre-commit-crocodile' 2.0.0 (9807569)
🚀 CI
- gitlab-ci: show fetched merge request branches in 'commits' (23cc27f)
- gitlab-ci: fix 'image' of 'commits' job (f3165b2)
- gitlab-ci: always run 'commits' job on merge request pipelines (0aaac37)
- gitlab-ci: make 'needs' jobs for 'build' optional (1c61dc0)
- gitlab-ci: validate 'pre-commit' checks in 'commits' job (561ad01)
- gitlab-ci: refactor images into 'containers/*/Dockerfile' (2f90140)
- gitlab-ci: use 'HEAD~1' instead of 'HEAD^' for Windows compatibility (3b4ec64)
- gitlab-ci: check only Python files in 'typings' job (a7661f0)
- gitlab-ci: implement SonarCloud quality analysis (6b1518b)
- gitlab-ci: detect and refuse '^wip|^WIP' commits (34a1aa8)
- gitlab-ci: isolate 'commits' job to 'templates/commit.yml' (265a9b4)
- gitlab-ci: migrate to 'pre-commit-crocodile/commits@2.0.0' component (78576fe)
- gitlab-ci: create 'hooks' local job for maintenance (f9b9d40)
- gitlab-ci, tests: implement coverage initial jobs and tests (acd1dc2)
📦 Build
- pre-commit: migrate to 'pre-commit-crocodile' 1.1.0 (d52d778)
5.2.1 (2024-08-16)
🐛 Bug Fixes
- gitlab: fix '--protect-tags' unknown protection level error (f745f7e)
- package: fix package name for 'importlib' version detection (b5bf779)
⚙️ Cleanups
- hooks: implement evaluators and matchers priority parser (c59fa17)
5.2.0 (2024-08-15)
🐛 Bug Fixes
- entrypoint: prevent project labels changes if project is archived (8289e24)
- setup: refactor 'python_requires' versions syntax (549a0e5)
- 🚨 BREAKING CHANGE 🚨 | setup: drop support for Python 3.7 due to 'questionary>=2.0.0' (2b849ca)
- setup: resolve project package and name usage (07f56ca)
- updates: ensure 'DEBUG_UPDATES_DISABLE' has non-empty value (055804a)
- updates: fix offline mode and SemVer versions comparisons (8f34bba)
📚 Documentation
- cliff: use '|' to separate breaking changes in 'CHANGELOG' (83697bf)
- license: update copyright details for 2024 (040d401)
- readme: add 'Commitizen friendly' badge (c178093)
🎨 Styling
- cli: improve Python arguments codestyle syntax (3f168ab)
- commitizen, pre-commit: implement 'commitizen' custom configurations (651c1d9)
- pre-commit: implement 'pre-commit' configurations (cc00f76)
⚙️ Cleanups
- cli, package: minor Python codestyle improvements (cfb3636)
- pre-commit: disable 'check-xml' unused hook (69c3c15)
- pre-commit: fix 'commitizen-branch' for same commits ranges (c521c8a)
- setup: refactor with more project configurations (7248730)
- updates: ignore coverage of online updates message (9da21ab)
- vscode: remove illegal comments in 'extensions.json' (6b6edf7)
🚀 CI
- gitlab-ci: watch for 'codestyle', 'lint' and 'typings' jobs success (26e5585)
- gitlab-ci: create 'commits' job to validate with 'commitizen' (35db900)
- gitlab-ci: fix 'commits' job for non-default branches pipelines (6928467)
📦 Build
- hooks: create './.hooks/manage' hooks manager for developers (633661b)
- hooks: implement 'prepare-commit-msg' template generator (67c8541)
- pre-commit: enable 'check-hooks-apply' and 'check-useless-excludes' (69a8746)
5.1.0 (2024-08-11)
✨ Features
- cli: implement '--no-color' to disable colors (a3b2534)
🐛 Bug Fixes
- package: check empty 'environ' values before usage (78c029c)
- updates: remove unused 'recommended' feature (9de050d)
📚 Documentation
- readme: migrate from 'gitlabci-local' to 'gcil' package (80b42e9)
⚙️ Cleanups
- cli: resolve unused variable value initialization (6381f03)
- colors: resolve 'pragma: no cover' detection (17e38e5)
- platform: disable coverage of 'SUDO' without write access (7f5a35f)
- setup: remove faulty '# pragma: exclude file' flag (1635dbc)
5.0.2 (2024-08-10)
✨ Features
- setup: add support for Python 3.12 (1fd8ed2)
🧪 Test
- setup: disable sources coverage of the build script (ea25fba)
🚀 CI
- gitlab-ci: raise latest Python test images from 3.11 to 3.12 (83c6dd9)
- gitlab-ci: deprecate outdated and unsafe 'unify' tool (365a9e9)
5.0.1 (2024-08-10)
✨ Features
- gitlab-projects-settings: migrate under 'RadianDevCore/tools' group (6c618dd)
🐛 Bug Fixes
- settings: ensure 'Settings' class initializes settings file (2ec90d6)
- src: use relative module paths in 'init' and 'main' (220c444)
5.0.0 (2024-08-08)
🛡️ Security
- 🚨 BREAKING CHANGE 🚨 | cli: acquire tokens only from environment variables (3f211bd)
✨ Features
- 🚨 BREAKING CHANGE 🚨 | cli: refactor CLI into simpler GitLab URL bound parameters (1aa72a4)
- cli: implement '--confirm' to bypass interactive user confirmations (1bf9b99)
- cli: add tool identifier header with name and version (4362101)
- cli: implement '.python-gitlab.cfg' GitLab configurations files (271c7c8)
- cli, argparse: implement environment variables helpers (7f4caec)
- cli, gitlab: implement '--prune-unreachable-objects' feature (d07b179)
- cli, gitlab: implement '--erase-jobs-artifacts' to erase jobs artifacts (75109f3)
- cli, gitlab: implement '--erase-jobs-contents' to erase jobs contents (24b82bc)
- cli, gitlab: implement CI job token and public authentications (291777c)
- cli, gitlab: implement '--{get,set}-project-labels' with JSON (f1bf888)
- cli, gitlab: implement '--{get,set}-group-labels' with JSON (24305b5)
- cli, gtlab: implement '--set-merge-method' for merge requests (969e9ec)
- cli, gtlab: implement '--set-merge-squash' for merge requests (6d50073)
- cli, gtlab: implement '--set-merge-pipelines' for merge requests (13f150d)
- cli, gtlab: implement '--set-merge-skipped' for merge requests (d65d112)
- cli, gtlab: implement '--set-merge-resolved' for merge requests (9d3c51c)
- entrypoint: wrap '--available-features' outputs with ' (09cd008)
🐛 Bug Fixes
- environments: add missing ':' to the README help description (48b947b)
- gitlab: wait 3 seconds after group and project deletions (9a273bb)
📚 Documentation
- cliff: document 'security(...)' first in changelog (eced346)
- readme: document '~/.python-gitlab.cfg' configuration file (c62ae1e)
⚙️ Cleanups
- cli/main: minor codestyle improvement of 'import argparse' (1b84f36)
- entrypoint: refactor 'confirm' against 'gitlab-projects-migrate' (35f5139)
- entrypoint, gitlab: bind 'ProjectFeatures' names directly (39d0d07)
- gitlab: acquire project and group despite '--dry-run' use (462041d)
- types: cleanup inconsistent '()' over base classes (ef60d62)
🚀 CI
- gitlab-ci: migrate from 'git-chglog' to 'git-cliff' (99fad86)
4.2.1 (2024-06-10)
🐛 Bug Fixes
- gitlab: restore support for old GitLab 13.12 instances (de82a80)
📚 Documentation
- chglog: add 'ci' as 'CI' configuration for 'CHANGELOG.md' (440c1ed)
🚀 CI
- gitlab-ci: support docker pull and push without remote (c0becd7)
- gitlab-ci: use 'CI_DEFAULT_BRANCH' to access 'develop' branch (c0fc6dd)
- gitlab-ci: change commit messages to tag name (264dc2e)
- setup: update Python package keywords hints (3f5d7d1)
4.2.0 (2024-05-26)
✨ Features
- entrypoint: improve outputs logs upon delections (fd25605)
- main: show newer updates message upon incompatible arguments (2ca5244)
- main, entrypoint: implement '--dump' to dump JSON objects (dc98c05)
📚 Documentation
- readme: add 'gitlab-projects-settings' examples documentation (4614846)
4.1.0 (2024-05-17)
✨ Features
- entrypoint: implement prompt confirmation upon deletions (539ccf8)
- gitlab: isolate 'ProtectionLevels' enumeration (18abccf)
- main, gitlab: handle '--protect-tags' default to 'no-one' (6607c87)
- requirements: prepare 'questionary' library integration (5007320)
4.0.0 (2024-05-15)
✨ Features
- entrypoint, gitlab: implement '--{disable,enable}-features' (19791ac)
- gitlab: automatically wait for group and project deletions (7f02512)
- gitlab: isolate GitLab project features enumeration (fae4640)
- gitlab: prepare future access levels in 'project_reset_features' (a42e515)
- gitlab: parse input features list and accept similar texts (3df67d7)
- main: document optional '--' positional arguments separator (878c719)
- main, gitlab: implement '--reset-features [KEEP_FEATURES]' (592a08c)
- main, gitlab: implement '--available-features' for user help (5c90151)
- main, settings: implement 'Settings' from 'gitlabci-local' (29cac8b)
- main, upgrades: implement 'Upgrades' from 'gitlabci-local' (80665f0)
🐛 Bug Fixes
- entrypoint: use full paths instead of 'id' integer fields (d06b36e)
- entrypoint: avoid missing 'namespace_id' in 'User' responses (17889e9)
- entrypoint: refactor to return no error upon final actions (4d379ba)
- entrypoint, gitlab: resolve Python typings new warnings (51b4f44)
- gitlab: accept deletion denials in 'project_reset_members' (3b261f2)
- gitlab: disable 'Repository' group feature after its members (939c303)
- gitlab: disable all 'Repository' member features too (42f3d18)
🚜 Code Refactoring
- gitlab: isolate 'GitLabFeature.AccessLevels' constants (9ba30b6)
- gitlab: isolate GitLab types to 'types/gitlab.py' (7a5f5eb)
- gitlab: optimize and centralize GitLab features handlings (2c52366)
🧪 Test
- version: add 'DEBUG_VERSION_FAKE' for debugging purposes (fe3acdf)
⚙️ Cleanups
- entrypoint: minor Python codestyle improvement (66ddb28)
🚀 CI
- gitlab-ci: handle optional parameters and multiline in 'readme' (394f670)
- gitlab-ci: detect 'README.md' issues in 'readme' job (094e565)
- gitlab-ci: implement 'images' and use project specific images (dd08c4a)
- gitlab-ci: deprecate requirements install in 'lint' job (b7b7aa7)
- gitlab-ci: support multiple 'METAVAR' words in 'readme' job (2b6da44)
3.0.0 (2024-05-06)
✨ Features
- cli, gitlab: implement '--{archive,unarchive}-project' (be6c241)
- cli, gitlab: implement '--delete-{group,project}' (3184259)
- cli, gitlab: implement '--run-housekeeping' (2824960)
- entrypoint: always flush progress output logs (d170a82)
- entrypoint: preserve main group description if exists (f6f8a21)
- entrypoint, gitlab: adapt name for '--update-description' (2a5b165)
- entrypoint, gitlab: add support for user namespace projects (1629e28)
- gitlab: detect 'Token Access' usage for 'CI/CD' features (24fb65a)
- gitlab: detect multiple branches to keep 'Merge requests' (2130b2a)
- namespaces: migrate 'Helper' class to 'Namespaces' class (81dbd95)
🐛 Bug Fixes
- entrypoint: enforce against missing '.description' values (85e6d91)
- entrypoint: detect if GitLab actions can continue (3074446)
- entrypoint: resolve support for private user namespaces (ec9092a)
- gitlab: get all members in 'project_reset_members' (7db707c)
- gitlab: get all branches and tags upon 'list()' calls (5a46bf2)
- gitlab: delay groups deletion by 10s and projects by 5s (e56e054)
- gitlab: enforce 'group_delete' usage in '--dry-run' mode (29bdd98)
⚙️ Cleanups
- gitlab: minor comments changes in 'project_reset_features' (3470932)
🚀 CI
- gitlab-ci: move 'readme' job after 'build' and local 'install' (cc44651)
2.1.0 (2024-04-28)
✨ Features
- entrypoint: keep description if already contains group (abe2d34)
- entrypoint: sort groups and projects recursively (d2fa32c)
🐛 Bug Fixes
- entrypoint: fix project '--update-description' logs output (3861e78)
2.0.2 (2024-04-28)
✨ Features
- main: limit '--help' width to terminal width or 120 chars (53916fd)
📚 Documentation
- readme: document GitLab tokens' creation instructions (5253faa)
🚀 CI
- gitlab-ci: disable 'typing' mypy caching with 'MYPY_CACHE_DIR' (efeca44)
2.0.1 (2024-04-27)
✨ Features
- entrypoint, gitlab: isolate 'GitLabFeature.Helper.capitalize' (7e25627)
🐛 Bug Fixes
- entrypoint: fix description updates faulty descriptions (98a6e75)
- entrypoint, gitlab: implement description to name fallbacks (11c931f)
2.0.0 (2024-04-27)
✨ Features
- cli: isolate 'features/settings.py' to 'cli/entrypoint.py' (97b1214)
- main: change '--set-description' metavar to 'TEXT' (9640f6f)
- main: align 'RawTextHelpFormatter' to 30 chars columns (d9e6273)
- settings: change project/group descriptions color (7dfaea1)
🐛 Bug Fixes
- gitlab: enforce '--dry-run' usage and improve Python codestyle (bc1203a)
- settings: apply 'subgroup' feature to subgroup groups (977596e)
🚜 Code Refactoring
- entrypoint: minor Python codestyle improvements (3b559f4)
- src: isolate all sources under 'src/' (48f5d40)
📚 Documentation
- readme: regenerate '--help' details in 'README.md' (784121b)
⚙️ Cleanups
- gitlab: minor Python codestyle improvements (b32f815)
- settings: minor Python codestyle improvements (f1c179d)
- src: ignore 'import-error' over 'init' and 'main' (2fad230)
🚀 CI
- gitlab-ci: implement 'readme' local job to update README details (3ba2118)
- gitlab-ci, setup: migrate to 'src' sources management (388187f)
1.1.0 (2024-04-25)
✨ Features
- main: rename '--avoid-' parameters to '--exclude-' (f70ae44)
🚜 Code Refactoring
- settings: minor functions codestyle improvement (e22206e)
1.0.1 (2024-04-24)
📚 Documentation
- setup: fix PyPI 'gitlab-projects-settings' documentation (66f2f97)
1.0.0 (2024-04-24)
✨ Features
- gitlab-projects-settings: initial sources implementation (13a723f)