Skip to content

Changelog

6.3.0 (2025-04-13)

✨ Features

  • entrypoint: archive and unarchive input project during export (a6236b6)

6.2.1 (2025-03-03)

🐛 Bug Fixes

  • gitlab: resolve 'container_registry_enabled: null' corruptions (0141125)

🚜 Code Refactoring

  • cli: handle 'rename_project_positional' in 'main' sources (f192f09)

6.2.0 (2025-02-28)

✨ Features

  • entrypoint: minor outputs codestyle improvements (e4c7938)
  • entrypoint: archive migrated project if source is archived (d416ee5)
  • entrypoint: improve migration progress output logs (2eada02)
  • entrypoint: add existing subgroup update header log (5ca1f9f)
  • entrypoint, gitlab: validate migrated project items counts (71bf9f4)
  • gitlab: ignore unavailable input pipelines differences (a1678b6)
  • gitlab: ignore unavailable input packages differences (aadabff)
  • gitlab: ignore unavailable input snippets differences (731185b)

🐛 Bug Fixes

  • entrypoint: avoid group as user runtime error issue (ecf25f0)
  • gitlab: enforce support for old webhooks GitLab API (2cd1042)

6.1.0 (2025-02-10)

✨ Features

  • cli: implement '--flatten-group' parameter to flatten projects (4d395f3)
  • cli: implement '--migrate-packages' to migrate GitLab Packages (8e5343f)
  • entrypoint: show GitLab username upon authentication (29cecda)
  • entrypoint: exit project migration normally if already existing (b132727)
  • entrypoint, gitlab: show already valid settings in green (c694447)
  • entrypoint, gitlab: implement GitLab limitations warning level (5bb3054)
  • gitlab: ignore 'key not found: nil' from old GitLab exports (ce43c6d)

🐛 Bug Fixes

  • entrypoint: prevent acces to projects shared with groups (b4f82ce)
  • entrypoint: resolve support for group input to user output (e2ed784)
  • entrypoint: prevent repeated '.', '-' or '_' in project names (b6dad94)
  • entrypoint: resolve personal projects migration with sudo permissions (f4b5054)

📚 Documentation

  • docs: use '<span class=page-break>' instead of '<div>' (6619a4c)
  • prepare: avoid 'TOC' injection if 'hide: - toc' is used (491f649)

🎨 Styling

  • colors: ignore 'Colored' import 'Incompatible import' warning (d83c875)

⚙️ Cleanups

  • entrypoint, gitlab: minor Python codestyle improvements (66e8953)
  • sonar-project: configure coverage checks in SonarCloud (8cfad86)

🚀 CI

  • gitlab-ci: run coverage jobs if 'sonar-project.properties' changes (cf87482)
  • gitlab-ci: watch for 'docs/.*' changes in 'pages' jobs (50e2874)

6.0.0 (2025-01-01)

✨ Features

  • cli: implement input project archive exports only mode (cc02639)
  • entrypoint: show projects description after '# ...' (1fa46ca)
  • entrypoint: allow empty description and custom indent in 'confirm' (c852df3)
  • entrypoint: use '...' quotes in 'confirm' function (123132b)
  • entrypoint: list limited features per line, then confirm (bf06d06)
  • entrypoint, gitlab: show limited features items for analysis (f9ac6ef)
  • main: support '--update-description[s]' parameter (98be116)

🐛 Bug Fixes

  • cli: use package name for 'Updates' checks (ef7dc06)
  • cli, gitlab: synchronize repository default branch after migration (fcc204a)
  • cli, gitlab: indent configurations under input / output items (c307c3b)
  • entrypoint: prevent name conflicts upon same namespaces migration (16ffc28)
  • entrypoint: add missing '--archive-sources' handlings for groups (6ce6af0)
  • gitlab: wait 1 second before group or project deletion checks (204b654)
  • gitlab: wait 60 seconds for large groups creation (a496990)
  • gitlab: wait 300 seconds for a successful export download (4033c37)
  • gitlab: support GitLab Premium delayed project/group deletions (7af95fe)
  • main: ensure 'FORCE_COLOR=0' if using '--no-color' flag (29eaa67)

📚 Documentation

  • assets: prepare mkdocs to generate mermaid diagrams (084f652)
  • cliff: improve 'Unreleased' and refactor to 'Development' (61970f0)
  • covers: resolve broken page header / footer titles (18c659a)
  • custom: change to custom header darker blue header bar (829af84)
  • docs: improve documentation PDF outputs with page breaks (994bbdf)
  • mkdocs: enable 'git-revision-date-localized' plugin (bbacff0)
  • mkdocs: change web pages themes colors to 'blue' (5a681da)
  • mkdocs: fix 'git-revision-date-localized' syntax (40c6434)
  • mkdocs: migrate to 'awesome-pages' pages navigation (30a4593)
  • mkdocs: change 'auto / light / dark' themes toggle icons (e22175d)
  • mkdocs: enable and configure 'minify' plugin (4edff1d)
  • mkdocs: install 'mkdocs-macros-plugin' for Jinja2 templates (0c9106b)
  • mkdocs: enable 'pymdownx.emoji' extension for Markdown (123eec2)
  • mkdocs: implement 'mkdocs-exporter' and customize PDF style (e743ce1)
  • mkdocs: set documentation pages logo to 'solid/code' ('</>') (e88b4d3)
  • mkdocs: enable 'permalink' headers anchors for table of contents (57c540c)
  • mkdocs: prepare 'privacy' and 'offline' plugins for future usage (e2ce00a)
  • mkdocs: disable Google fonts to comply with GDPR data privacy (942ded7)
  • mkdocs: implement 'Table of contents' injection for PDF results (68a8138)
  • mkdocs: enable 'Created' date feature for pages footer (fef4993)
  • mkdocs: add website favicon image and configuration (38660e3)
  • mkdocs: implement 'book' covers to have 'limits' + 'fronts' (bda76e2)
  • mkdocs: isolate assets to 'docs/assets/' subfolder (dd8553a)
  • mkdocs: exclude '.git' from watched documentation sources (b1c3420)
  • mkdocs: minor '(prefers-color-scheme...)' syntax improvements (483cfff)
  • mkdocs: remove 'preview.py' and 'template.svg' files exclusions (711dac4)
  • mkdocs, pages: use 'MKDOCS_EXPORTER_PDF_OUTPUT' for PDF file (23c4165)
  • mkdocs, prepare: resolve Markdown support in hidden '<details>' (3e666b9)
  • pages: rename index page title to '‣ Usage' (defa9fb)
  • pages: rename PDF link title to 'Export as PDF' (752e41d)
  • pdf: simplify PDF pages copyright footer (1bc1589)
  • pdf: migrate to custom state pseudo class 'state(...)' (7be21f7)
  • pdf: avoid header / footer lines on front / back pages (b075999)
  • pdf: minor stylesheets codestyle improvements (20c0466)
  • pdf: reverse PDF front / back cover pages colors for printers (6ec5a93)
  • prepare: regenerate development 'CHANGELOG' with 'git-cliff' (dae8d4c)
  • prepare: avoid 'md_in_html' changes to 'changelog' and 'license' (ef17a50)
  • prepare: fix '<' and '>' changelog handlings and files list (6d8ca34)
  • prepare: implement 'About / Quality' badges page (bc0b823)
  • prepare: improve 'Quality' project badges to GitLab (8fface0)
  • prepare: use 'docs' sources rather than '.cache' duplicates (63bb28f)
  • prepare: resolve 'docs/about' intermediates cleanup (a4a9e9e)
  • prepare: add PyPI badges and license badge to 'quality' page (35820d6)
  • prepare: avoid adding TOC to generated and 'no-toc' files (5b80769)
  • prepare: use 'mkdocs.yml' to get project name value (144e542)
  • readme: add 'gcil:enabled' documentation badge (5abc43d)
  • readme: add pypi, python versions, downloads and license badges (3726476)
  • readme: add '~/.python-gitlab.cfg' section title (411f8b7)
  • robots: configure 'robots.txt' for pages robots exploration (9bb91ed)
  • stylesheets: resolve lines and arrows visibility in dark mode (ac19dde)
  • templates: add 'Author' and 'Description' to PDF front page (26c49d1)
  • templates: add 'Date' detail on PDF front page (1545a26)
  • templates: use Git commit SHA1 as version if no Git tag found (2174692)

🧪 Test

  • test: fix daily updates coverage test syntax (7e305e8)

⚙️ Cleanups

  • gitignore: exclude only 'build' folder from sources root (f90614c)
  • gitignore: exclude '/build' folder or symlink too (b507a47)
  • sonar: wait for SonarCloud Quality Gate status (d1e2f56)
  • src: resolve 'too-many-positional-arguments' new lint warnings (6544a3d)
  • vscode: use 'yzhang.markdown-all-in-one' for Markdown formatter (eebd0fe)

🚀 CI

  • gitlab-ci: prevent 'sonarcloud' job launch upon 'gcil' local use (0ae3920)
  • gitlab-ci: run SonarCloud analysis on merge request pipelines (1d8596f)
  • gitlab-ci: watch for 'config/*' changes in 'serve' job (92c604a)
  • gitlab-ci: fetch Git tags history in 'pages' job execution (77a53c2)
  • gitlab-ci: fetch with '--unshallow' for full history in 'pages' (48849e4)
  • gitlab-ci: enforce 'requirements/pages.txt' in 'serve' job (9f5279b)
  • gitlab-ci: add 'python:3.12-slim' image mirror (42baf94)
  • gitlab-ci: inject only 'mkdocs-*' packages in 'serve' job (e921142)
  • gitlab-ci: install 'playwright' with chromium in 'serve' job (ce2f709)
  • gitlab-ci: find files only for 'entr' in 'serve' (a43e0c9)
  • gitlab-ci: improve GitLab CI job outputs for readability (58115a1)
  • gitlab-ci: deploy GitLab Pages on 'CI_DEFAULT_BRANCH' branch (97205a9)
  • gitlab-ci: ignore 'variables.scss' in 'serve' watcher (5434b1b)
  • gitlab-ci: preserve only existing Docker images after 'images' (7dafbce)
  • gitlab-ci: use 'MKDOCS_EXPORTER_PDF_ENABLED' to disable PDF exports (d0679b6)
  • gitlab-ci: run 'pages' job on GitLab CI tags pipelines (0f3eecc)
  • gitlab-ci: isolate 'pages: rules: changes' for reuse (300d463)
  • gitlab-ci: allow manual launch of 'pages' on protected branches (249a187)
  • gitlab-ci: create 'pdf' job to export PDF on tags and branches (d45f4e3)
  • gitlab-ci: implement local pages serve in 'pages' job (1b6c9ad)
  • gitlab-ci: raise minimal 'gcil' version to '11.0' (8067971)
  • gitlab-ci: enable local host network on 'pages' job (353fade)
  • gitlab-ci: detect failures from 'mkdocs serve' executions (c81b44a)
  • gitlab-ci: refactor images containers into 'registry:*' jobs (4a52c3a)
  • gitlab-ci: bind 'registry:' dependencies to 'requirements/.txt' (4238a86)
  • gitlab-ci: avoid PDF slow generation locally outside 'pdf' job (37ecf85)
  • gitlab-ci: validate host network interfaces support (af12837)
  • gitlab-ci: enable '.local: no_regex' feature (89f7cd8)
  • gitlab-ci: append Git version to PDF output file name (fd446f9)
  • gitlab-ci: rename PDF to 'gitlab-projects-migrate' (3f82c91)
  • gitlab-ci: migrate to 'pre-commit-crocodile/commits@4.0.0' (bb6ae39)
  • gitlab-ci: ensure 'pages' job does not block pipeline if manual (963f703)
  • gitlab-ci: change release title to include tag version (e174cf2)

📦 Build

  • build: import missing 'build' container sources (2c0051e)
  • containers: use 'apk add --no-cache' for lighter images (9caf832)
  • pages: add 'git-cliff' to the ':pages' image (d4b495b)
  • pages: migrate to 'python:3.12-slim' Ubuntu base image (a050260)
  • pages: install 'playwright' dependencies for 'mkdocs-exporter' (60216a7)
  • pages: install 'entr' in the image (dc49e78)
  • requirements: install 'mkdocs-git-revision-date-localized-plugin' (cd1245a)
  • requirements: install 'mkdocs-awesome-pages-plugin' plugin (8e0a6d8)
  • requirements: install 'mkdocs-minify-plugin' for ':pages' (ecb9486)
  • requirements: install 'mkdocs-exporter' in ':pages' (2c04dc2)
  • requirements: migrate to 'mkdocs-exporter' with PR#35 (d98f294)
  • requirements: upgrade to 'playwright' 1.48.0 (eca8f8c)
  • requirements: migrate to 'mkdocs-exporter' with PR#42/PR#41 (fb0f873)

5.3.1 (2024-08-25)

✨ Features

  • updates: migrate from deprecated 'pkg_resources' to 'packaging' (a04cd3f)

📚 Documentation

  • mkdocs: implement GitLab Pages initial documentation and jobs (4077cf2)
  • readme: link against 'gcil' documentation pages (4d192ae)

⚙️ Cleanups

  • commitizen: migrate to new 'filter' syntax (commitizen#1207) (f09adcc)
  • pre-commit: add 'python-check-blanket-type-ignore' and 'python-no-eval' (db8336b)
  • pre-commit: fail 'gcil' jobs if 'PRE_COMMIT' is defined (658d2cd)
  • pre-commit: simplify and unify 'local-gcil' hooks syntax (2fc9cdb)
  • pre-commit: improve syntax for 'args' arguments (75cdc0b)
  • pre-commit: migrate to 'run-gcil-*' template 'gcil' hooks (f81d11c)
  • pre-commit: update against 'run-gcil-push' hook template (505b5b5)
  • pre-commit: migrate to 'pre-commit-crocodile' 3.0.0 (a7a93ac)

🚀 CI

  • containers: implement ':pages' image with 'mkdocs-material' (623c9bb)
  • gitlab-ci: avoid failures of 'codestyle' upon local launches (9872de6)
  • gitlab-ci: migrate to 'pre-commit-crocodile/commits@2.1.0' component (88d8ab1)
  • gitlab-ci: migrate to 'pre-commit-crocodile/commits@3.0.0' component (cd1e3be)

5.3.0 (2024-08-21)

🐛 Bug Fixes

  • package: fix package name for 'importlib' version detection (4310eeb)
  • platform: always flush on Windows hosts without stdout TTY (336fd2d)

📚 Documentation

  • readme: add 'pre-commit enabled' badges (3ae46f3)
  • readme: add SonarCloud analysis project badges (79f0c09)
  • readme: link 'gcil' back to 'gitlabci-local' PyPI package (84f65e2)

⚙️ Cleanups

  • commitizen: migrate to 'pre-commit-crocodile' 2.0.1 (1ed854f)
  • gitattributes: always checkout Shell scripts with '\n' EOL (d48e1ac)
  • gitignore: ignore '.*.swp' intermediates 'nano' files (e87a978)
  • hooks: implement evaluators and matchers priority parser (7e48cc8)
  • pre-commit: run 'codestyle', 'lint' and 'typings' jobs (f8796e8)
  • pre-commit: migrate to 'pre-commit-crocodile' 2.0.0 (f425805)

🚀 CI

  • gitlab-ci: show fetched merge request branches in 'commits' (7af39e4)
  • gitlab-ci: fix 'image' of 'commits' job (2af9e4f)
  • gitlab-ci: always run 'commits' job on merge request pipelines (c36657f)
  • gitlab-ci: make 'needs' jobs for 'build' optional (ed18d14)
  • gitlab-ci: validate 'pre-commit' checks in 'commits' job (ce816ea)
  • gitlab-ci: refactor images into 'containers/*/Dockerfile' (f0cb573)
  • gitlab-ci: use 'HEAD~1' instead of 'HEAD^' for Windows compatibility (2c7cb24)
  • gitlab-ci: check only Python files in 'typings' job (a7434b9)
  • gitlab-ci: implement SonarCloud quality analysis (1ec376a)
  • gitlab-ci: detect and refuse '^wip|^WIP' commits (3cd6108)
  • gitlab-ci: isolate 'commits' job to 'templates/commit.yml' (08e9717)
  • gitlab-ci: migrate to 'pre-commit-crocodile/commits@2.0.0' component (9bbe33e)
  • gitlab-ci: create 'hooks' local job for maintenance (ab13810)
  • gitlab-ci, tests: implement coverage initial jobs and tests (81c5bad)

📦 Build

  • pre-commit: migrate to 'pre-commit-crocodile' 1.1.0 (91138ae)

5.2.0 (2024-08-15)

🐛 Bug Fixes

  • setup: refactor 'python_requires' versions syntax (1313d2e)
  • 🚨 BREAKING CHANGE 🚨 | setup: drop support for Python 3.7 due to 'questionary>=2.0.0' (c35db2f)
  • setup: resolve project package and name usage (e247e21)
  • updates: ensure 'DEBUG_UPDATES_DISABLE' has non-empty value (721c199)
  • updates: fix offline mode and SemVer versions comparisons (947dfbc)

📚 Documentation

  • cliff: use '|' to separate breaking changes in 'CHANGELOG' (f4b9a7e)
  • license: update copyright details for 2024 (87d3a30)
  • readme: add 'Commitizen friendly' badge (6cfd434)

🎨 Styling

  • cli: improve Python arguments codestyle syntax (4aedfed)
  • commitizen, pre-commit: implement 'commitizen' custom configurations (12c4300)
  • pre-commit: implement 'pre-commit' configurations (7300bde)

⚙️ Cleanups

  • cli, package: minor Python codestyle improvements (50f3a98)
  • pre-commit: disable 'check-xml' unused hook (be305d3)
  • pre-commit: fix 'commitizen-branch' for same commits ranges (456a108)
  • setup: refactor with more project configurations (197125e)
  • updates: ignore coverage of online updates message (9f273d9)
  • vscode: remove illegal comments in 'extensions.json' (a691dbc)

🚀 CI

  • gitlab-ci: watch for 'codestyle', 'lint' and 'typings' jobs success (a9425db)
  • gitlab-ci: create 'commits' job to validate with 'commitizen' (b2c8d00)
  • gitlab-ci: fix 'commits' job for non-default branches pipelines (4e3402e)

📦 Build

  • hooks: create './.hooks/manage' hooks manager for developers (048b9f6)
  • hooks: implement 'prepare-commit-msg' template generator (a16f1ce)
  • pre-commit: enable 'check-hooks-apply' and 'check-useless-excludes' (5fd439c)

5.1.0 (2024-08-11)

✨ Features

  • cli: implement '--no-color' to disable colors (294fd18)

🐛 Bug Fixes

  • package: check empty 'environ' values before usage (42b25d4)
  • updates: remove unused 'recommended' feature (201ca49)

📚 Documentation

  • readme: migrate from 'gitlabci-local' to 'gcil' package (9c81cd8)

⚙️ Cleanups

  • cli: resolve unused variable value initialization (c6f99cd)
  • colors: resolve 'pragma: no cover' detection (64c028e)
  • platform: disable coverage of 'SUDO' without write access (6c1d314)
  • setup: remove faulty '# pragma: exclude file' flag (03bb970)

5.0.3 (2024-08-10)

✨ Features

  • setup: add support for Python 3.12 (b72e9a1)

🎨 Styling

  • main: declare 'subgroup' variable as '_MutuallyExclusiveGroup' (3e1842c)

🧪 Test

  • setup: disable sources coverage of the build script (8e7ce06)

🚀 CI

  • gitlab-ci: raise latest Python test images from 3.11 to 3.12 (47da8d5)
  • gitlab-ci: deprecate outdated and unsafe 'unify' tool (2a890ac)

5.0.2 (2024-08-10)

✨ Features

  • gitlab-projects-migrate: migrate under 'RadianDevCore/tools' group (50ed087)

🐛 Bug Fixes

  • settings: ensure 'Settings' class initializes settings file (beb96ff)
  • src: use relative module paths in 'init' and 'main' (79e567e)

5.0.1 (2024-08-08)

🐛 Bug Fixes

  • cli: fix syntax of '--reset-entities' argument variable (5bb61f0)

5.0.0 (2024-08-08)

🛡️ Security

  • 🚨 BREAKING CHANGE 🚨 | cli: acquire tokens only from environment variables (1cca6b8)

✨ Features

  • 🚨 BREAKING CHANGE 🚨 | cli: refactor CLI into simpler GitLab URL bound parameters (495ccf3)
  • cli: implement '--confirm' to bypass interactive user confirmations (640109c)
  • cli: support 3rd positional argument for '--rename-project' (23a4e94)
  • cli: add tool identifier header with name and version (8dfd23f)
  • cli: implement '.python-gitlab.cfg' GitLab configurations files (0782032)
  • cli, argparse: implement environment variables helpers (f660b3f)
  • cli, gitlab: implement '--available-entities' for migration (c52056a)
  • 🚨 BREAKING CHANGE 🚨 | cli, gitlab: migrate from '--keep-members' to '--exclude-entities' (fff8a55)
  • cli, gitlab: implement CI job token and public authentications (c9a78f8)
  • cli, gitlab: migrate to '--reset-entities' parameter name (c8d3b19)
  • entrypoint, gitlab: implement 'Remove:' and 'Template:' entities (6d90592)
  • gitlab: migrate entities to 'Remove/' and 'Template/' (91e1942)

🐛 Bug Fixes

  • environments: add missing ':' to the README help description (3ae5b5d)

📚 Documentation

  • cliff: document 'security(...)' first in changelog (e8499a9)
  • readme: document '~/.python-gitlab.cfg' configuration file (07c1d6b)
  • readme: document projects copy and project renaming (32107fd)
  • readme: document projects as templates copy and entities cleanups (e525ca3)

⚙️ Cleanups

  • cli/main: minor codestyle improvement of 'import argparse' (fcd1716)
  • gitlab: remove unused 'type: ignore' and resolved TODO 'fixme' (2905f9f)
  • types: cleanup inconsistent '()' over base classes (c0150d6)

🚀 CI

  • gitlab-ci: migrate from 'git-chglog' to 'git-cliff' (77bc35b)

4.1.2 (2024-08-06)

🐛 Bug Fixes

  • entrypoint: fix already existing checks if renaming project (20c8268)
  • entrypoint: fix already existing removal if renaming project (303a798)
  • gitlab: wait 3 seconds after group and project deletions (9957021)

4.1.0 (2024-08-04)

✨ Features

  • gitlab: warn about 'Pipeline triggers', 'Webhooks', 'Project Access Tokens' (760884f)

🐛 Bug Fixes

  • entrypoint: fix project checks by path rather than by name (98f4577)

4.0.3 (2024-06-11)

🐛 Bug Fixes

  • gitlab: fix namespace detections upon '--dry-run' executions (a331fb8)

4.0.2 (2024-06-10)

📚 Documentation

  • chglog: add 'ci' as 'CI' configuration for 'CHANGELOG.md' (f2231d3)

🚀 CI

  • gitlab-ci: support docker pull and push without remote (9118e38)
  • gitlab-ci: use 'CI_DEFAULT_BRANCH' to access 'develop' branch (ffca219)
  • gitlab-ci: change commit messages to tag name (35b9df0)
  • setup: update Python package keywords hints (5f36462)

4.0.1 (2024-05-27)

🐛 Bug Fixes

  • entrypoint: resolve already existing nested subgroups check (bf656d0)
  • gitlab: resolve '.variables.list' on old GitLab instances (483823e)

4.0.0 (2024-05-26)

✨ Features

  • entrypoint: improve outputs logs upon delections (8da3ae1)
  • entrypoint: identify already existing project, group, subgroup (7baf7b3)
  • entrypoint, gitlab: detect and confirm export limitations (797e469)
  • entrypoint, main: implement '--rename-project' to rename project (fdf447f)
  • main: show newer updates message upon incompatible arguments (5561849)
  • main, entrypoint: implement '--archive-sources' mode (64dc73a)

🐛 Bug Fixes

  • gitlab: fix project import 'path_with_namespace' in dry run (e4bf8e2)
  • main: exclusive '--archive-sources' and '--delete-sources' (f29389e)

📚 Documentation

  • readme: add '--archive-sources' and '--delete-sources' examples (59779ca)

⚙️ Cleanups

  • entrypoint: turn 'confirm' function into generic handler (5151afa)

3.1.0 (2024-05-17)

✨ Features

  • entrypoint: implement '--archive-exports FOLDER' to keep exports (2c47fb7)
  • entrypoint: implement prompt confirmation upon deletions (3430da0)
  • requirements: prepare 'questionary' library integration (1a2877c)

🐛 Bug Fixes

  • gitlab: raise runtime error upon failed project imports (38ffbb6)
  • gitlab: restore 'import_project' file argument as BufferedReader (d2a6eaa)

⚙️ Cleanups

  • gitlab: ignore 'import_project' file argument typing (edd0867)

3.0.1 (2024-05-15)

🐛 Bug Fixes

  • entrypoint: resolve 'output_namespace' assertion tests (a7e48c9)

3.0.0 (2024-05-15)

✨ Features

  • entrypoint: always flush progress output logs (e8067f2)
  • entrypoint, gitlab: adapt name for '--update-description' (f3fe725)
  • entrypoint, gitlab: add support for user namespace projects (e5118a4)
  • gitlab: automatically wait for group and project deletions (c998605)
  • main: document optional '--' positional arguments separator (aff6a17)
  • main, entrypoint: implement '--delete-sources' final actions (140ff3a)
  • main, settings: implement 'Settings' from 'gitlabci-local' (dc36932)
  • main, upgrades: implement 'Upgrades' from 'gitlabci-local' (3a1ae89)
  • namespaces: migrate 'Helper' class to 'Namespaces' class (5a82589)

🐛 Bug Fixes

  • entrypoint: enforce against missing '.description' values (9db9037)
  • entrypoint: detect if GitLab actions can continue (c1a8d2c)
  • entrypoint: minor Python codestyle improvement (2e138e3)
  • entrypoint: use full paths instead of 'id' integer fields (524eb14)
  • entrypoint: refactor to return no error upon final actions (6367e89)
  • entrypoint, gitlab: resolve Python typings new warnings (393e239)
  • entrypoint, namespaces: add 'text' to handle empty descriptions (005b50c)
  • gitlab: get all members in 'project_reset_members' (f2834a2)
  • gitlab: fix 'Any' and 'Optional' typings imports (4af24ba)
  • gitlab: try to get real group before faking in '--dry-run' (70ea00d)
  • gitlab: add 'description' field to fake project in '--dry-run' (9b7bca1)
  • gitlab: accept deletion denials in 'project_reset_members' (be12ff0)

🧪 Test

  • version: add 'DEBUG_VERSION_FAKE' for debugging purposes (ae75971)

🚀 CI

  • gitlab-ci: move 'readme' job after 'build' and local 'install' (97d3ed0)
  • gitlab-ci: handle optional parameters and multiline in 'readme' (a720e9c)
  • gitlab-ci: detect 'README.md' issues in 'readme' job (f817eef)
  • gitlab-ci: implement 'images' and use project specific images (5475393)
  • gitlab-ci: deprecate requirements install in 'lint' job (4e03a36)
  • gitlab-ci: support multiple 'METAVAR' words in 'readme' job (2c571f6)

2.1.0 (2024-04-28)

✨ Features

  • entrypoint: keep description if already contains group (4c50766)
  • entrypoint: sort groups and projects recursively (90e59a4)

🐛 Bug Fixes

  • entrypoint: resolve input group for single project migration (ce5c66e)
  • entrypoint: resolve input group detection for projects (96ccad9)

2.0.0 (2024-04-28)

✨ Features

  • cli: isolate 'features/migration.py' to 'cli/entrypoint.py' (b54de48)
  • entrypoint: isolate 'group' function to 'subgroup' (5436398)
  • entrypoint, gitlab: isolate 'GitLabFeature.Helper.subpath' (a3d9f28)
  • entrypoint, gitlab: isolate 'GitLabFeature.Helper.capitalize' (7a745e4)
  • entrypoint, gitlab: implement output parent group creation (c9218c3)
  • entrypoint, gitlab: implement groups export/import handlings (a2e6989)
  • gitlab: prepare group settings functions for future usage (167962a)
  • gitlab, migration: refactor into GitLabFeature functions (41436ec)
  • main: isolate CLI argument into specific sections (95ec817)
  • main: enforce 'output_group' value is always passed by CLI (701c335)
  • main: align 'RawTextHelpFormatter' to 30 chars columns (c15bf79)
  • main: limit '--help' width to terminal width or 120 chars (3fcaac0)
  • main: add support for 'GITLAB_TOKEN' environment variable (a8cae39)
  • main, entrypoint: implement '--exclude-subgroups' filter (377bff5)
  • main, entrypoint: implement '--exclude-projects' filter (7c09032)
  • main, entrypoint: implement '--exclude-group' filter (21a513c)
  • main, gitlab, migration: refactor and add '--dry-run' (afe7a8d)
  • migration: sort group projects in ascending 'path' order (23232de)
  • migration: implement support for input project along group (cd51b98)
  • migration: implement nested projects migration support (5639fca)
  • migration: implement GitLab subgroups creation (549f600)
  • settings: change project/group descriptions color (fb41f6c)

🐛 Bug Fixes

  • entrypoint: safeguard group handlings for '--dry-run' (8202026)
  • entrypoint, gitlab: implement description to name fallbacks (5524af7)
  • gitlab: resolve '--dry-run' usage upon projects migration (65c0cdb)
  • main: ensure GitLab token has been defined (5f9cd0a)

🚜 Code Refactoring

  • entrypoint, gitlab: isolate 'GitLabFeature.Helper.split_namespace' (ffd519b)
  • migration: refactor into 'entrypoint' main function (ac9990f)
  • migration: isolate project migration feature sources (330fbe4)
  • src: isolate all sources under 'src/' (7f97146)

📚 Documentation

  • readme: regenerate '--help' details in 'README.md' (0209976)
  • readme, cli: minor project description improvements (fbbb80a)

🎨 Styling

  • main,migration: minor Python codestyle improvements (8f4ece8)

⚙️ Cleanups

  • src: ignore 'import-error' over 'init' and 'main' (fce4b15)

🚀 CI

  • gitlab-ci: implement 'readme' local job to update README details (02c6fad)
  • gitlab-ci: disable 'typing' mypy caching with 'MYPY_CACHE_DIR' (e9ce388)
  • gitlab-ci, setup: migrate to 'src' sources management (65dac94)

1.1.0 (2024-04-22)

✨ Features

  • features, prints: implement 'colored' outputs colors (dfdb3bf)
  • migration: implement '--overwrite' to delete and reimport (34a2af5)

🐛 Bug Fixes

  • migration: prevent '--set-avatar' already closed input file (ef2583f)

⚙️ Cleanups

  • migration: minor output flush improvements (ece017a)

1.0.0 (2024-04-21)

✨ Features

  • gitlab-projects-migrate: initial sources implementation (89ed62b)