gha-utils 4.18.1__tar.gz → 4.19.1__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.

Potentially problematic release.


This version of gha-utils might be problematic. Click here for more details.

Files changed (23) hide show
  1. {gha_utils-4.18.1 → gha_utils-4.19.1}/PKG-INFO +22 -26
  2. {gha_utils-4.18.1 → gha_utils-4.19.1}/gha_utils/__init__.py +1 -1
  3. {gha_utils-4.18.1 → gha_utils-4.19.1}/gha_utils/cli.py +1 -1
  4. {gha_utils-4.18.1 → gha_utils-4.19.1}/gha_utils/matrix.py +3 -3
  5. {gha_utils-4.18.1 → gha_utils-4.19.1}/gha_utils/metadata.py +11 -77
  6. {gha_utils-4.18.1 → gha_utils-4.19.1}/gha_utils.egg-info/PKG-INFO +22 -26
  7. {gha_utils-4.18.1 → gha_utils-4.19.1}/gha_utils.egg-info/requires.txt +5 -4
  8. {gha_utils-4.18.1 → gha_utils-4.19.1}/pyproject.toml +11 -9
  9. {gha_utils-4.18.1 → gha_utils-4.19.1}/readme.md +16 -21
  10. {gha_utils-4.18.1 → gha_utils-4.19.1}/gha_utils/__main__.py +0 -0
  11. {gha_utils-4.18.1 → gha_utils-4.19.1}/gha_utils/changelog.py +0 -0
  12. {gha_utils-4.18.1 → gha_utils-4.19.1}/gha_utils/mailmap.py +0 -0
  13. {gha_utils-4.18.1 → gha_utils-4.19.1}/gha_utils/py.typed +0 -0
  14. {gha_utils-4.18.1 → gha_utils-4.19.1}/gha_utils/test_plan.py +0 -0
  15. {gha_utils-4.18.1 → gha_utils-4.19.1}/gha_utils.egg-info/SOURCES.txt +0 -0
  16. {gha_utils-4.18.1 → gha_utils-4.19.1}/gha_utils.egg-info/dependency_links.txt +0 -0
  17. {gha_utils-4.18.1 → gha_utils-4.19.1}/gha_utils.egg-info/entry_points.txt +0 -0
  18. {gha_utils-4.18.1 → gha_utils-4.19.1}/gha_utils.egg-info/top_level.txt +0 -0
  19. {gha_utils-4.18.1 → gha_utils-4.19.1}/setup.cfg +0 -0
  20. {gha_utils-4.18.1 → gha_utils-4.19.1}/tests/test_changelog.py +0 -0
  21. {gha_utils-4.18.1 → gha_utils-4.19.1}/tests/test_mailmap.py +0 -0
  22. {gha_utils-4.18.1 → gha_utils-4.19.1}/tests/test_matrix.py +0 -0
  23. {gha_utils-4.18.1 → gha_utils-4.19.1}/tests/test_metadata.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gha-utils
3
- Version: 4.18.1
3
+ Version: 4.19.1
4
4
  Summary: ⚙️ CLI helpers for GitHub Actions + reuseable workflows
5
5
  Author-email: Kevin Deldycke <kevin@deldycke.com>
6
6
  Project-URL: Homepage, https://github.com/kdeldycke/workflows
@@ -46,9 +46,9 @@ Requires-Python: >=3.11
46
46
  Description-Content-Type: text/markdown
47
47
  Requires-Dist: boltons>=24.0.0
48
48
  Requires-Dist: bump-my-version<1.1.1,>=0.32.2
49
- Requires-Dist: click-extra~=5.0.2
49
+ Requires-Dist: click-extra~=6.0.0
50
50
  Requires-Dist: extra-platforms~=3.2.0
51
- Requires-Dist: gitignore-parser~=0.1.12
51
+ Requires-Dist: gitignore-parser~=0.1.13
52
52
  Requires-Dist: packaging~=25.0
53
53
  Requires-Dist: PyDriller~=2.6
54
54
  Requires-Dist: pyproject-metadata~=0.9.0
@@ -58,10 +58,11 @@ Provides-Extra: test
58
58
  Requires-Dist: coverage[toml]~=7.10.0; extra == "test"
59
59
  Requires-Dist: pytest~=8.4.0; extra == "test"
60
60
  Requires-Dist: pytest-cases~=3.9.1; extra == "test"
61
- Requires-Dist: pytest-cov~=6.2.1; extra == "test"
61
+ Requires-Dist: pytest-cov~=7.0.0; extra == "test"
62
62
  Requires-Dist: pytest-github-actions-annotate-failures~=0.3.0; extra == "test"
63
- Requires-Dist: pytest-randomly~=3.16.0; extra == "test"
63
+ Requires-Dist: pytest-randomly~=4.0.0; extra == "test"
64
64
  Provides-Extra: typing
65
+ Requires-Dist: types-boltons~=25.0.0.20250822; extra == "typing"
65
66
  Requires-Dist: types-PyYAML~=6.0.12.9; extra == "typing"
66
67
 
67
68
  # `gha-utils` CLI + reusable workflows
@@ -162,16 +163,11 @@ $ file ./gha-utils-*
162
163
 
163
164
  ### Development version
164
165
 
165
- To play with the latest development version of `gha-utils`, you can install it directly from the repository:
166
+ To play with the latest development version of `gha-utils`, you can run it directly from the repository:
166
167
 
167
168
  ```shell-session
168
- $ git clone https://github.com/kdeldycke/workflows
169
- $ cd workflows
170
- $ python -m pip install uv
171
- $ uv venv
172
- $ source .venv/bin/activate
173
- $ uv sync
174
- $ uv run -- gha-utils
169
+ $ uvx --from git+https://github.com/kdeldycke/workflows -- gha-utils --version
170
+ gha-utils, version 4.18.2
175
171
  ```
176
172
 
177
173
  ## Reusable workflows collection
@@ -333,19 +329,19 @@ A [detailed changelog](changelog.md) is available.
333
329
 
334
330
  Check these projects to get real-life examples of usage and inspiration:
335
331
 
336
- - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/awesome-falsehood?label=%E2%AD%90&style=flat-square) [Awesome Falsehood](https://github.com/kdeldycke/awesome-falsehood#readme) - Falsehoods Programmers Believe in.
337
- - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/awesome-engineering-team-management?label=%E2%AD%90&style=flat-square) [Awesome Engineering Team Management](https://github.com/kdeldycke/awesome-engineering-team-management#readme) - How to transition from software development to engineering management.
338
- - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/awesome-iam?label=%E2%AD%90&style=flat-square) [Awesome IAM](https://github.com/kdeldycke/awesome-iam#readme) - Identity and Access Management knowledge for cloud platforms.
339
- - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/awesome-billing?label=%E2%AD%90&style=flat-square) [Awesome Billing](https://github.com/kdeldycke/awesome-billing#readme) - Billing & Payments knowledge for cloud platforms.
340
- - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/meta-package-manager?label=%E2%AD%90&style=flat-square) [Meta Package Manager](https://github.com/kdeldycke/meta-package-manager#readme) - A unifying CLI for multiple package managers.
341
- - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/mail-deduplicate?label=%E2%AD%90&style=flat-square) [Mail Deduplicate](https://github.com/kdeldycke/mail-deduplicate#readme) - A CLI to deduplicate similar emails.
342
- - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/dotfiles?label=%E2%AD%90&style=flat-square) [dotfiles](https://github.com/kdeldycke/dotfiles#readme) - macOS dotfiles for Python developers.
343
- - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/click-extra?label=%E2%AD%90&style=flat-square) [Click Extra](https://github.com/kdeldycke/click-extra#readme) - Extra colorization and configuration loading for Click.
344
- - ![GitHub stars](https://img.shields.io/github/stars/themagicalmammal/wikibot?label=%E2%AD%90&style=flat-square) [Wiki bot](https://github.com/themagicalmammal/wikibot#readme) - A bot which provides features from Wikipedia like summary, title searches, location API etc.
345
- - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/workflows?label=%E2%AD%90&style=flat-square) [workflows](https://github.com/kdeldycke/workflows#readme) - Itself. Eat your own dog-food.
346
- - ![GitHub stars](https://img.shields.io/github/stars/themagicalmammal/stock-analyser?label=%E2%AD%90&style=flat-square) [Stock Analysis](https://github.com/themagicalmammal/stock-analyser#readme) - Simple to use interfaces for basic technical analysis of stocks.
347
- - ![GitHub stars](https://img.shields.io/github/stars/themagicalmammal/genetictabler?label=%E2%AD%90&style=flat-square) [GeneticTabler](https://github.com/themagicalmammal/genetictabler#readme) - Time Table Scheduler using Genetic Algorithms.
348
- - ![GitHub stars](https://img.shields.io/github/stars/themagicalmammal/excel-write?label=%E2%AD%90&style=flat-square) [Excel Write](https://github.com/themagicalmammal/excel-write#readme) - Optimised way to write in excel files.
332
+ - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/awesome-falsehood?label=%E2%AD%90&style=flat-square) [Awesome Falsehood](https://github.com/kdeldycke/awesome-falsehood) - Falsehoods Programmers Believe in.
333
+ - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/awesome-engineering-team-management?label=%E2%AD%90&style=flat-square) [Awesome Engineering Team Management](https://github.com/kdeldycke/awesome-engineering-team-management) - How to transition from software development to engineering management.
334
+ - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/awesome-iam?label=%E2%AD%90&style=flat-square) [Awesome IAM](https://github.com/kdeldycke/awesome-iam) - Identity and Access Management knowledge for cloud platforms.
335
+ - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/awesome-billing?label=%E2%AD%90&style=flat-square) [Awesome Billing](https://github.com/kdeldycke/awesome-billing) - Billing & Payments knowledge for cloud platforms.
336
+ - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/meta-package-manager?label=%E2%AD%90&style=flat-square) [Meta Package Manager](https://github.com/kdeldycke/meta-package-manager) - A unifying CLI for multiple package managers.
337
+ - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/mail-deduplicate?label=%E2%AD%90&style=flat-square) [Mail Deduplicate](https://github.com/kdeldycke/mail-deduplicate) - A CLI to deduplicate similar emails.
338
+ - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/dotfiles?label=%E2%AD%90&style=flat-square) [dotfiles](https://github.com/kdeldycke/dotfiles) - macOS dotfiles for Python developers.
339
+ - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/click-extra?label=%E2%AD%90&style=flat-square) [Click Extra](https://github.com/kdeldycke/click-extra) - Extra colorization and configuration loading for Click.
340
+ - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/workflows?label=%E2%AD%90&style=flat-square) [workflows](https://github.com/kdeldycke/workflows) - Itself. Eat your own dog-food.
341
+ - ![GitHub stars](https://img.shields.io/github/stars/themagicalmammal/wikibot?label=%E2%AD%90&style=flat-square) [Wiki bot](https://github.com/themagicalmammal/wikibot) - A bot which provides features from Wikipedia like summary, title searches, location API etc.
342
+ - ![GitHub stars](https://img.shields.io/github/stars/themagicalmammal/stock-analyser?label=%E2%AD%90&style=flat-square) [Stock Analysis](https://github.com/themagicalmammal/stock-analyser) - Simple to use interfaces for basic technical analysis of stocks.
343
+ - ![GitHub stars](https://img.shields.io/github/stars/themagicalmammal/genetictabler?label=%E2%AD%90&style=flat-square) [GeneticTabler](https://github.com/themagicalmammal/genetictabler) - Time Table Scheduler using Genetic Algorithms.
344
+ - ![GitHub stars](https://img.shields.io/github/stars/themagicalmammal/excel-write?label=%E2%AD%90&style=flat-square) [Excel Write](https://github.com/themagicalmammal/excel-write) - Optimised way to write in excel files.
349
345
 
350
346
  Feel free to send a PR to add your project in this list if you are relying on these scripts.
351
347
 
@@ -17,4 +17,4 @@
17
17
 
18
18
  from __future__ import annotations
19
19
 
20
- __version__ = "4.18.1"
20
+ __version__ = "4.19.1"
@@ -116,7 +116,7 @@ def gha_utils():
116
116
  )
117
117
  @option(
118
118
  "--format",
119
- type=Choice(Dialects, case_sensitive=False), # type: ignore[arg-type]
119
+ type=Choice(Dialects, case_sensitive=False),
120
120
  default=Dialects.github,
121
121
  help="Rendering format of the metadata.",
122
122
  )
@@ -47,18 +47,18 @@ class Matrix:
47
47
  matrix.
48
48
  """
49
49
 
50
- def __init__(self, *args, **kwargs):
50
+ def __init__(self, *args, **kwargs) -> None:
51
51
  self.variations: dict[str, tuple[str, ...]] = {}
52
52
 
53
53
  # Tuples are used to keep track of the insertion order and force immutability.
54
54
  self.include: tuple[dict[str, str], ...] = tuple()
55
55
  self.exclude: tuple[dict[str, str], ...] = tuple()
56
56
 
57
- self._job_counter = None
57
+ self._job_counter: int = 0
58
58
 
59
59
  def matrix(
60
60
  self, ignore_includes: bool = False, ignore_excludes: bool = False
61
- ) -> FrozenDict[str, str]:
61
+ ) -> FrozenDict[str, tuple[str, ...] | tuple[dict[str, str], ...]]:
62
62
  """Returns a copy of the matrix.
63
63
 
64
64
  The special ``include`` and ``excludes`` directives will be added by default.
@@ -156,7 +156,6 @@ import json
156
156
  import logging
157
157
  import os
158
158
  import re
159
- import sys
160
159
  import tomllib
161
160
  from collections.abc import Iterable
162
161
  from enum import StrEnum
@@ -350,62 +349,6 @@ MYPY_VERSION_MIN: Final = (3, 8)
350
349
  """
351
350
 
352
351
 
353
- # XXX Patch gitignore-parser to support Windows paths. Refs:
354
- # https://github.com/mherrmann/gitignore_parser/issues/60
355
- # https://github.com/mherrmann/gitignore_parser/pull/61
356
- # XXX In the future, replace this with wcmatch once it supports gitignore files:
357
- # https://github.com/facelessuser/wcmatch/issues/226
358
-
359
-
360
- _OriginalIgnoreRule = gitignore_parser.IgnoreRule
361
-
362
-
363
- class PatchedIgnoreRule(_OriginalIgnoreRule): # type: ignore[misc,valid-type]
364
- """Patch version of ``IgnoreRule`` to support Windows paths.
365
-
366
- Taken from: https://github.com/mherrmann/gitignore_parser/pull/61/files
367
- """
368
-
369
- @staticmethod
370
- def _count_trailing_symbol(symbol: str, text: str) -> int:
371
- """Count the number of trailing characters in a string."""
372
- count = 0
373
- for char in reversed(str(text)):
374
- if char == symbol:
375
- count += 1
376
- else:
377
- break
378
- return count
379
-
380
- def match(self, abs_path: str | Path) -> bool:
381
- matched = False
382
- if self.base_path:
383
- rel_path = (
384
- gitignore_parser._normalize_path(abs_path)
385
- .relative_to(self.base_path)
386
- .as_posix()
387
- )
388
- else:
389
- rel_path = gitignore_parser._normalize_path(abs_path).as_posix()
390
- # Path() strips the trailing following symbols on windows, so we need to
391
- # preserve it: ' ', '.'
392
- if sys.platform.startswith("win"):
393
- rel_path += " " * self._count_trailing_symbol(" ", abs_path)
394
- rel_path += "." * self._count_trailing_symbol(".", abs_path)
395
- # Path() strips the trailing slash, so we need to preserve it
396
- # in case of directory-only negation
397
- if self.negation and type(abs_path) is str and abs_path[-1] == "/":
398
- rel_path += "/"
399
- if rel_path.startswith("./"):
400
- rel_path = rel_path[2:]
401
- if re.search(self.regex, rel_path):
402
- matched = True
403
- return matched
404
-
405
-
406
- gitignore_parser.IgnoreRule = PatchedIgnoreRule
407
-
408
-
409
352
  class JSONMetadata(json.JSONEncoder):
410
353
  """Custom JSON encoder for metadata serialization."""
411
354
 
@@ -429,9 +372,6 @@ class Metadata:
429
372
  self.unstable_targets = set(unstable_targets)
430
373
  assert self.unstable_targets.issubset(NUITKA_BUILD_TARGETS)
431
374
 
432
- # None indicates the is_python_project variable has not been evaluated yet.
433
- self._is_python_project: bool | None = None
434
-
435
375
  pyproject_path = Path() / "pyproject.toml"
436
376
  sphinx_conf_path = Path() / "docs" / "conf.py"
437
377
 
@@ -842,41 +782,35 @@ class Metadata:
842
782
  """Returns a list of doc files."""
843
783
  return self.glob_files("**/*.{md,markdown,rst,tex}", "!.venv/**")
844
784
 
845
- @property
785
+ @cached_property
846
786
  def is_python_project(self):
847
787
  """Returns ``True`` if repository is a Python project.
848
788
 
849
- Presence of a ``pyproject.toml`` file is not enough, as 3rd party tools can use
850
- that file to store their own configuration.
789
+ Presence of a ``pyproject.toml`` file that respects the standards is enough
790
+ to consider the project as a Python one.
851
791
  """
852
- return self._is_python_project
853
-
854
- @is_python_project.getter
855
- def is_python_project(self):
856
- """Try to read and validate the ``pyproject.toml`` file on access to the
857
- ``is_python_project`` property.
858
- """
859
- if self._is_python_project is None:
860
- self.pyproject
861
- return self._is_python_project
792
+ return False if self.pyproject is None else True
862
793
 
863
794
  @cached_property
864
795
  def pyproject(self) -> StandardMetadata | None:
865
796
  """Returns metadata stored in the ``pyproject.toml`` file.
866
797
 
867
- Also sets the internal ``_is_python_project`` value to ``True`` if the
868
- ``pyproject.toml`` exists and respects the standards. ``False`` otherwise.
798
+ Returns ``None`` if the ``pyproject.toml`` does not exists or does not respects
799
+ the PEP standards.
800
+
801
+ .. warning::
802
+ Some third-party apps have their configuration saved into
803
+ ``pyproject.toml`` file, but that does not means the project is a Python
804
+ one. For that, the ``pyproject.toml`` needs to respect the PEPs.
869
805
  """
870
806
  if self.pyproject_path.exists() and self.pyproject_path.is_file():
871
807
  toml = tomllib.loads(self.pyproject_path.read_text(encoding="UTF-8"))
872
808
  try:
873
809
  metadata = StandardMetadata.from_pyproject(toml)
874
- self._is_python_project = True
875
810
  return metadata
876
811
  except ConfigurationError:
877
812
  pass
878
813
 
879
- self._is_python_project = False
880
814
  return None
881
815
 
882
816
  @cached_property
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gha-utils
3
- Version: 4.18.1
3
+ Version: 4.19.1
4
4
  Summary: ⚙️ CLI helpers for GitHub Actions + reuseable workflows
5
5
  Author-email: Kevin Deldycke <kevin@deldycke.com>
6
6
  Project-URL: Homepage, https://github.com/kdeldycke/workflows
@@ -46,9 +46,9 @@ Requires-Python: >=3.11
46
46
  Description-Content-Type: text/markdown
47
47
  Requires-Dist: boltons>=24.0.0
48
48
  Requires-Dist: bump-my-version<1.1.1,>=0.32.2
49
- Requires-Dist: click-extra~=5.0.2
49
+ Requires-Dist: click-extra~=6.0.0
50
50
  Requires-Dist: extra-platforms~=3.2.0
51
- Requires-Dist: gitignore-parser~=0.1.12
51
+ Requires-Dist: gitignore-parser~=0.1.13
52
52
  Requires-Dist: packaging~=25.0
53
53
  Requires-Dist: PyDriller~=2.6
54
54
  Requires-Dist: pyproject-metadata~=0.9.0
@@ -58,10 +58,11 @@ Provides-Extra: test
58
58
  Requires-Dist: coverage[toml]~=7.10.0; extra == "test"
59
59
  Requires-Dist: pytest~=8.4.0; extra == "test"
60
60
  Requires-Dist: pytest-cases~=3.9.1; extra == "test"
61
- Requires-Dist: pytest-cov~=6.2.1; extra == "test"
61
+ Requires-Dist: pytest-cov~=7.0.0; extra == "test"
62
62
  Requires-Dist: pytest-github-actions-annotate-failures~=0.3.0; extra == "test"
63
- Requires-Dist: pytest-randomly~=3.16.0; extra == "test"
63
+ Requires-Dist: pytest-randomly~=4.0.0; extra == "test"
64
64
  Provides-Extra: typing
65
+ Requires-Dist: types-boltons~=25.0.0.20250822; extra == "typing"
65
66
  Requires-Dist: types-PyYAML~=6.0.12.9; extra == "typing"
66
67
 
67
68
  # `gha-utils` CLI + reusable workflows
@@ -162,16 +163,11 @@ $ file ./gha-utils-*
162
163
 
163
164
  ### Development version
164
165
 
165
- To play with the latest development version of `gha-utils`, you can install it directly from the repository:
166
+ To play with the latest development version of `gha-utils`, you can run it directly from the repository:
166
167
 
167
168
  ```shell-session
168
- $ git clone https://github.com/kdeldycke/workflows
169
- $ cd workflows
170
- $ python -m pip install uv
171
- $ uv venv
172
- $ source .venv/bin/activate
173
- $ uv sync
174
- $ uv run -- gha-utils
169
+ $ uvx --from git+https://github.com/kdeldycke/workflows -- gha-utils --version
170
+ gha-utils, version 4.18.2
175
171
  ```
176
172
 
177
173
  ## Reusable workflows collection
@@ -333,19 +329,19 @@ A [detailed changelog](changelog.md) is available.
333
329
 
334
330
  Check these projects to get real-life examples of usage and inspiration:
335
331
 
336
- - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/awesome-falsehood?label=%E2%AD%90&style=flat-square) [Awesome Falsehood](https://github.com/kdeldycke/awesome-falsehood#readme) - Falsehoods Programmers Believe in.
337
- - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/awesome-engineering-team-management?label=%E2%AD%90&style=flat-square) [Awesome Engineering Team Management](https://github.com/kdeldycke/awesome-engineering-team-management#readme) - How to transition from software development to engineering management.
338
- - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/awesome-iam?label=%E2%AD%90&style=flat-square) [Awesome IAM](https://github.com/kdeldycke/awesome-iam#readme) - Identity and Access Management knowledge for cloud platforms.
339
- - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/awesome-billing?label=%E2%AD%90&style=flat-square) [Awesome Billing](https://github.com/kdeldycke/awesome-billing#readme) - Billing & Payments knowledge for cloud platforms.
340
- - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/meta-package-manager?label=%E2%AD%90&style=flat-square) [Meta Package Manager](https://github.com/kdeldycke/meta-package-manager#readme) - A unifying CLI for multiple package managers.
341
- - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/mail-deduplicate?label=%E2%AD%90&style=flat-square) [Mail Deduplicate](https://github.com/kdeldycke/mail-deduplicate#readme) - A CLI to deduplicate similar emails.
342
- - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/dotfiles?label=%E2%AD%90&style=flat-square) [dotfiles](https://github.com/kdeldycke/dotfiles#readme) - macOS dotfiles for Python developers.
343
- - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/click-extra?label=%E2%AD%90&style=flat-square) [Click Extra](https://github.com/kdeldycke/click-extra#readme) - Extra colorization and configuration loading for Click.
344
- - ![GitHub stars](https://img.shields.io/github/stars/themagicalmammal/wikibot?label=%E2%AD%90&style=flat-square) [Wiki bot](https://github.com/themagicalmammal/wikibot#readme) - A bot which provides features from Wikipedia like summary, title searches, location API etc.
345
- - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/workflows?label=%E2%AD%90&style=flat-square) [workflows](https://github.com/kdeldycke/workflows#readme) - Itself. Eat your own dog-food.
346
- - ![GitHub stars](https://img.shields.io/github/stars/themagicalmammal/stock-analyser?label=%E2%AD%90&style=flat-square) [Stock Analysis](https://github.com/themagicalmammal/stock-analyser#readme) - Simple to use interfaces for basic technical analysis of stocks.
347
- - ![GitHub stars](https://img.shields.io/github/stars/themagicalmammal/genetictabler?label=%E2%AD%90&style=flat-square) [GeneticTabler](https://github.com/themagicalmammal/genetictabler#readme) - Time Table Scheduler using Genetic Algorithms.
348
- - ![GitHub stars](https://img.shields.io/github/stars/themagicalmammal/excel-write?label=%E2%AD%90&style=flat-square) [Excel Write](https://github.com/themagicalmammal/excel-write#readme) - Optimised way to write in excel files.
332
+ - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/awesome-falsehood?label=%E2%AD%90&style=flat-square) [Awesome Falsehood](https://github.com/kdeldycke/awesome-falsehood) - Falsehoods Programmers Believe in.
333
+ - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/awesome-engineering-team-management?label=%E2%AD%90&style=flat-square) [Awesome Engineering Team Management](https://github.com/kdeldycke/awesome-engineering-team-management) - How to transition from software development to engineering management.
334
+ - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/awesome-iam?label=%E2%AD%90&style=flat-square) [Awesome IAM](https://github.com/kdeldycke/awesome-iam) - Identity and Access Management knowledge for cloud platforms.
335
+ - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/awesome-billing?label=%E2%AD%90&style=flat-square) [Awesome Billing](https://github.com/kdeldycke/awesome-billing) - Billing & Payments knowledge for cloud platforms.
336
+ - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/meta-package-manager?label=%E2%AD%90&style=flat-square) [Meta Package Manager](https://github.com/kdeldycke/meta-package-manager) - A unifying CLI for multiple package managers.
337
+ - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/mail-deduplicate?label=%E2%AD%90&style=flat-square) [Mail Deduplicate](https://github.com/kdeldycke/mail-deduplicate) - A CLI to deduplicate similar emails.
338
+ - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/dotfiles?label=%E2%AD%90&style=flat-square) [dotfiles](https://github.com/kdeldycke/dotfiles) - macOS dotfiles for Python developers.
339
+ - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/click-extra?label=%E2%AD%90&style=flat-square) [Click Extra](https://github.com/kdeldycke/click-extra) - Extra colorization and configuration loading for Click.
340
+ - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/workflows?label=%E2%AD%90&style=flat-square) [workflows](https://github.com/kdeldycke/workflows) - Itself. Eat your own dog-food.
341
+ - ![GitHub stars](https://img.shields.io/github/stars/themagicalmammal/wikibot?label=%E2%AD%90&style=flat-square) [Wiki bot](https://github.com/themagicalmammal/wikibot) - A bot which provides features from Wikipedia like summary, title searches, location API etc.
342
+ - ![GitHub stars](https://img.shields.io/github/stars/themagicalmammal/stock-analyser?label=%E2%AD%90&style=flat-square) [Stock Analysis](https://github.com/themagicalmammal/stock-analyser) - Simple to use interfaces for basic technical analysis of stocks.
343
+ - ![GitHub stars](https://img.shields.io/github/stars/themagicalmammal/genetictabler?label=%E2%AD%90&style=flat-square) [GeneticTabler](https://github.com/themagicalmammal/genetictabler) - Time Table Scheduler using Genetic Algorithms.
344
+ - ![GitHub stars](https://img.shields.io/github/stars/themagicalmammal/excel-write?label=%E2%AD%90&style=flat-square) [Excel Write](https://github.com/themagicalmammal/excel-write) - Optimised way to write in excel files.
349
345
 
350
346
  Feel free to send a PR to add your project in this list if you are relying on these scripts.
351
347
 
@@ -1,8 +1,8 @@
1
1
  boltons>=24.0.0
2
2
  bump-my-version<1.1.1,>=0.32.2
3
- click-extra~=5.0.2
3
+ click-extra~=6.0.0
4
4
  extra-platforms~=3.2.0
5
- gitignore-parser~=0.1.12
5
+ gitignore-parser~=0.1.13
6
6
  packaging~=25.0
7
7
  PyDriller~=2.6
8
8
  pyproject-metadata~=0.9.0
@@ -13,9 +13,10 @@ wcmatch>=8.5
13
13
  coverage[toml]~=7.10.0
14
14
  pytest~=8.4.0
15
15
  pytest-cases~=3.9.1
16
- pytest-cov~=6.2.1
16
+ pytest-cov~=7.0.0
17
17
  pytest-github-actions-annotate-failures~=0.3.0
18
- pytest-randomly~=3.16.0
18
+ pytest-randomly~=4.0.0
19
19
 
20
20
  [typing]
21
+ types-boltons~=25.0.0.20250822
21
22
  types-PyYAML~=6.0.12.9
@@ -1,7 +1,7 @@
1
1
  [project]
2
2
  # Docs: https://packaging.python.org/en/latest/guides/writing-pyproject-toml/
3
3
  name = "gha-utils"
4
- version = "4.18.1"
4
+ version = "4.19.1"
5
5
  # Python versions and their status: https://devguide.python.org/versions/
6
6
  requires-python = ">= 3.11"
7
7
  description = "⚙️ CLI helpers for GitHub Actions + reuseable workflows"
@@ -74,9 +74,12 @@ dependencies = [
74
74
  # v0.32.2 is the first fixing an issue preventing compilation with Nuitka.
75
75
  # v1.1.1 and later have some regressions: see https://github.com/callowayproject/bump-my-version/issues/331
76
76
  "bump-my-version >= 0.32.2, < 1.1.1",
77
- "click-extra ~= 5.0.2",
77
+ # Click Extra 6.0.0 fix an isue with --version option.
78
+ "click-extra ~= 6.0.0",
78
79
  "extra-platforms ~= 3.2.0",
79
- "gitignore-parser ~= 0.1.12",
80
+ # In the future, replace gitignore-parser with wcmatch once the latter supports gitignore files:
81
+ # https://github.com/facelessuser/wcmatch/issues/226
82
+ "gitignore-parser ~= 0.1.13",
80
83
  "packaging ~= 25.0",
81
84
  "PyDriller ~= 2.6",
82
85
  "pyproject-metadata ~= 0.9.0",
@@ -89,13 +92,12 @@ dependencies = [
89
92
  test = [
90
93
  "coverage [toml] ~= 7.10.0",
91
94
  "pytest ~= 8.4.0",
92
- # More pytest plugins at: https://docs.pytest.org/en/latest/reference/plugin_list.html
93
95
  "pytest-cases ~= 3.9.1",
94
- "pytest-cov ~= 6.2.1",
96
+ "pytest-cov ~= 7.0.0",
95
97
  "pytest-github-actions-annotate-failures ~= 0.3.0",
96
- "pytest-randomly ~= 3.16.0",
98
+ "pytest-randomly ~= 4.0.0",
97
99
  ]
98
- typing = ["types-PyYAML ~= 6.0.12.9"]
100
+ typing = ["types-boltons ~= 25.0.0.20250822", "types-PyYAML ~= 6.0.12.9"]
99
101
 
100
102
  [project.urls]
101
103
  "Homepage" = 'https://github.com/kdeldycke/workflows'
@@ -120,7 +122,7 @@ pretty = true
120
122
 
121
123
  [[tool.mypy.overrides]]
122
124
  ignore_missing_imports = true
123
- module = ["boltons.*", "gitignore_parser.*"]
125
+ module = ["gitignore_parser.*"]
124
126
 
125
127
  [tool.pytest.ini_options]
126
128
  # https://docs.pytest.org/en/latest/customize.html#pyproject-toml
@@ -138,7 +140,7 @@ addopts = [
138
140
  xfail_strict = true
139
141
 
140
142
  [tool.bumpversion]
141
- current_version = "4.18.1"
143
+ current_version = "4.19.1"
142
144
  allow_dirty = true
143
145
  ignore_missing_files = true
144
146
 
@@ -96,16 +96,11 @@ $ file ./gha-utils-*
96
96
 
97
97
  ### Development version
98
98
 
99
- To play with the latest development version of `gha-utils`, you can install it directly from the repository:
99
+ To play with the latest development version of `gha-utils`, you can run it directly from the repository:
100
100
 
101
101
  ```shell-session
102
- $ git clone https://github.com/kdeldycke/workflows
103
- $ cd workflows
104
- $ python -m pip install uv
105
- $ uv venv
106
- $ source .venv/bin/activate
107
- $ uv sync
108
- $ uv run -- gha-utils
102
+ $ uvx --from git+https://github.com/kdeldycke/workflows -- gha-utils --version
103
+ gha-utils, version 4.18.2
109
104
  ```
110
105
 
111
106
  ## Reusable workflows collection
@@ -267,19 +262,19 @@ A [detailed changelog](changelog.md) is available.
267
262
 
268
263
  Check these projects to get real-life examples of usage and inspiration:
269
264
 
270
- - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/awesome-falsehood?label=%E2%AD%90&style=flat-square) [Awesome Falsehood](https://github.com/kdeldycke/awesome-falsehood#readme) - Falsehoods Programmers Believe in.
271
- - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/awesome-engineering-team-management?label=%E2%AD%90&style=flat-square) [Awesome Engineering Team Management](https://github.com/kdeldycke/awesome-engineering-team-management#readme) - How to transition from software development to engineering management.
272
- - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/awesome-iam?label=%E2%AD%90&style=flat-square) [Awesome IAM](https://github.com/kdeldycke/awesome-iam#readme) - Identity and Access Management knowledge for cloud platforms.
273
- - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/awesome-billing?label=%E2%AD%90&style=flat-square) [Awesome Billing](https://github.com/kdeldycke/awesome-billing#readme) - Billing & Payments knowledge for cloud platforms.
274
- - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/meta-package-manager?label=%E2%AD%90&style=flat-square) [Meta Package Manager](https://github.com/kdeldycke/meta-package-manager#readme) - A unifying CLI for multiple package managers.
275
- - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/mail-deduplicate?label=%E2%AD%90&style=flat-square) [Mail Deduplicate](https://github.com/kdeldycke/mail-deduplicate#readme) - A CLI to deduplicate similar emails.
276
- - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/dotfiles?label=%E2%AD%90&style=flat-square) [dotfiles](https://github.com/kdeldycke/dotfiles#readme) - macOS dotfiles for Python developers.
277
- - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/click-extra?label=%E2%AD%90&style=flat-square) [Click Extra](https://github.com/kdeldycke/click-extra#readme) - Extra colorization and configuration loading for Click.
278
- - ![GitHub stars](https://img.shields.io/github/stars/themagicalmammal/wikibot?label=%E2%AD%90&style=flat-square) [Wiki bot](https://github.com/themagicalmammal/wikibot#readme) - A bot which provides features from Wikipedia like summary, title searches, location API etc.
279
- - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/workflows?label=%E2%AD%90&style=flat-square) [workflows](https://github.com/kdeldycke/workflows#readme) - Itself. Eat your own dog-food.
280
- - ![GitHub stars](https://img.shields.io/github/stars/themagicalmammal/stock-analyser?label=%E2%AD%90&style=flat-square) [Stock Analysis](https://github.com/themagicalmammal/stock-analyser#readme) - Simple to use interfaces for basic technical analysis of stocks.
281
- - ![GitHub stars](https://img.shields.io/github/stars/themagicalmammal/genetictabler?label=%E2%AD%90&style=flat-square) [GeneticTabler](https://github.com/themagicalmammal/genetictabler#readme) - Time Table Scheduler using Genetic Algorithms.
282
- - ![GitHub stars](https://img.shields.io/github/stars/themagicalmammal/excel-write?label=%E2%AD%90&style=flat-square) [Excel Write](https://github.com/themagicalmammal/excel-write#readme) - Optimised way to write in excel files.
265
+ - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/awesome-falsehood?label=%E2%AD%90&style=flat-square) [Awesome Falsehood](https://github.com/kdeldycke/awesome-falsehood) - Falsehoods Programmers Believe in.
266
+ - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/awesome-engineering-team-management?label=%E2%AD%90&style=flat-square) [Awesome Engineering Team Management](https://github.com/kdeldycke/awesome-engineering-team-management) - How to transition from software development to engineering management.
267
+ - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/awesome-iam?label=%E2%AD%90&style=flat-square) [Awesome IAM](https://github.com/kdeldycke/awesome-iam) - Identity and Access Management knowledge for cloud platforms.
268
+ - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/awesome-billing?label=%E2%AD%90&style=flat-square) [Awesome Billing](https://github.com/kdeldycke/awesome-billing) - Billing & Payments knowledge for cloud platforms.
269
+ - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/meta-package-manager?label=%E2%AD%90&style=flat-square) [Meta Package Manager](https://github.com/kdeldycke/meta-package-manager) - A unifying CLI for multiple package managers.
270
+ - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/mail-deduplicate?label=%E2%AD%90&style=flat-square) [Mail Deduplicate](https://github.com/kdeldycke/mail-deduplicate) - A CLI to deduplicate similar emails.
271
+ - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/dotfiles?label=%E2%AD%90&style=flat-square) [dotfiles](https://github.com/kdeldycke/dotfiles) - macOS dotfiles for Python developers.
272
+ - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/click-extra?label=%E2%AD%90&style=flat-square) [Click Extra](https://github.com/kdeldycke/click-extra) - Extra colorization and configuration loading for Click.
273
+ - ![GitHub stars](https://img.shields.io/github/stars/kdeldycke/workflows?label=%E2%AD%90&style=flat-square) [workflows](https://github.com/kdeldycke/workflows) - Itself. Eat your own dog-food.
274
+ - ![GitHub stars](https://img.shields.io/github/stars/themagicalmammal/wikibot?label=%E2%AD%90&style=flat-square) [Wiki bot](https://github.com/themagicalmammal/wikibot) - A bot which provides features from Wikipedia like summary, title searches, location API etc.
275
+ - ![GitHub stars](https://img.shields.io/github/stars/themagicalmammal/stock-analyser?label=%E2%AD%90&style=flat-square) [Stock Analysis](https://github.com/themagicalmammal/stock-analyser) - Simple to use interfaces for basic technical analysis of stocks.
276
+ - ![GitHub stars](https://img.shields.io/github/stars/themagicalmammal/genetictabler?label=%E2%AD%90&style=flat-square) [GeneticTabler](https://github.com/themagicalmammal/genetictabler) - Time Table Scheduler using Genetic Algorithms.
277
+ - ![GitHub stars](https://img.shields.io/github/stars/themagicalmammal/excel-write?label=%E2%AD%90&style=flat-square) [Excel Write](https://github.com/themagicalmammal/excel-write) - Optimised way to write in excel files.
283
278
 
284
279
  Feel free to send a PR to add your project in this list if you are relying on these scripts.
285
280
 
File without changes