gha-utils 4.20.0__py3-none-any.whl → 4.21.0__py3-none-any.whl
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.
- gha_utils/__init__.py +1 -1
- gha_utils/cli.py +3 -3
- gha_utils/metadata.py +108 -48
- {gha_utils-4.20.0.dist-info → gha_utils-4.21.0.dist-info}/METADATA +1 -1
- {gha_utils-4.20.0.dist-info → gha_utils-4.21.0.dist-info}/RECORD +8 -8
- {gha_utils-4.20.0.dist-info → gha_utils-4.21.0.dist-info}/WHEEL +0 -0
- {gha_utils-4.20.0.dist-info → gha_utils-4.21.0.dist-info}/entry_points.txt +0 -0
- {gha_utils-4.20.0.dist-info → gha_utils-4.21.0.dist-info}/top_level.txt +0 -0
gha_utils/__init__.py
CHANGED
gha_utils/cli.py
CHANGED
|
@@ -239,9 +239,9 @@ def changelog(ctx, source, changelog_path):
|
|
|
239
239
|
"--create-if-missing/--skip-if-missing",
|
|
240
240
|
is_flag=True,
|
|
241
241
|
default=True,
|
|
242
|
-
help="
|
|
243
|
-
"process entirely
|
|
244
|
-
f"
|
|
242
|
+
help="If not found, either create the missing destination mailmap file, or skip "
|
|
243
|
+
"the update process entirely. This option is ignored if the destination is to print "
|
|
244
|
+
f"the result to {sys.stdout.name}.",
|
|
245
245
|
)
|
|
246
246
|
@argument(
|
|
247
247
|
"destination_mailmap",
|
gha_utils/metadata.py
CHANGED
|
@@ -23,9 +23,15 @@ The following variables are `printed to the environment file
|
|
|
23
23
|
is_bot=false
|
|
24
24
|
new_commits=346ce664f055fbd042a25ee0b7e96702e95 6f27db47612aaee06fdf08744b09a9f5f6c2
|
|
25
25
|
release_commits=6f27db47612aaee06fdf08744b09a9f5f6c2
|
|
26
|
+
mailmap_exists=true
|
|
26
27
|
gitignore_exists=true
|
|
27
28
|
python_files=".github/update_mailmap.py" ".github/metadata.py" "setup.py"
|
|
29
|
+
json_files=
|
|
30
|
+
yaml_files="config.yaml" ".github/workflows/lint.yaml" ".github/workflows/test.yaml"
|
|
31
|
+
workflow_files=".github/workflows/lint.yaml" ".github/workflows/test.yaml"
|
|
28
32
|
doc_files="changelog.md" "readme.md" "docs/license.md"
|
|
33
|
+
markdown_files="changelog.md" "readme.md" "docs/license.md"
|
|
34
|
+
zsh_files=
|
|
29
35
|
is_python_project=true
|
|
30
36
|
package_name=click-extra
|
|
31
37
|
blacken_docs_params=--target-version py37 --target-version py38
|
|
@@ -80,14 +86,14 @@ build_targets=[
|
|
|
80
86
|
},
|
|
81
87
|
{
|
|
82
88
|
"target": "macos-arm64",
|
|
83
|
-
"os": "macos-
|
|
89
|
+
"os": "macos-26",
|
|
84
90
|
"platform_id": "macos",
|
|
85
91
|
"arch": "arm64",
|
|
86
92
|
"extension": "bin"
|
|
87
93
|
},
|
|
88
94
|
{
|
|
89
95
|
"target": "macos-x64",
|
|
90
|
-
"os": "macos-
|
|
96
|
+
"os": "macos-15-intel",
|
|
91
97
|
"platform_id": "macos",
|
|
92
98
|
"arch": "x64",
|
|
93
99
|
"extension": "bin"
|
|
@@ -111,8 +117,8 @@ nuitka_matrix={
|
|
|
111
117
|
"os": [
|
|
112
118
|
"ubuntu-24.04-arm",
|
|
113
119
|
"ubuntu-24.04",
|
|
114
|
-
"macos-
|
|
115
|
-
"macos-
|
|
120
|
+
"macos-26",
|
|
121
|
+
"macos-15-intel",
|
|
116
122
|
"windows-11-arm",
|
|
117
123
|
"windows-2025"
|
|
118
124
|
],
|
|
@@ -138,14 +144,14 @@ nuitka_matrix={
|
|
|
138
144
|
},
|
|
139
145
|
{
|
|
140
146
|
"target": "macos-arm64",
|
|
141
|
-
"os": "macos-
|
|
147
|
+
"os": "macos-26",
|
|
142
148
|
"platform_id": "macos",
|
|
143
149
|
"arch": "arm64",
|
|
144
150
|
"extension": "bin"
|
|
145
151
|
},
|
|
146
152
|
{
|
|
147
153
|
"target": "macos-x64",
|
|
148
|
-
"os": "macos-
|
|
154
|
+
"os": "macos-15-intel",
|
|
149
155
|
"platform_id": "macos",
|
|
150
156
|
"arch": "x64",
|
|
151
157
|
"extension": "bin"
|
|
@@ -206,25 +212,25 @@ nuitka_matrix={
|
|
|
206
212
|
"bin_name": "mpm-linux-x64-6f27db4.bin"
|
|
207
213
|
},
|
|
208
214
|
{
|
|
209
|
-
"os": "macos-
|
|
215
|
+
"os": "macos-26",
|
|
210
216
|
"entry_point": "mpm",
|
|
211
217
|
"commit": "346ce664f055fbd042a25ee0b7e96702e95",
|
|
212
218
|
"bin_name": "mpm-macos-arm64-346ce66.bin"
|
|
213
219
|
},
|
|
214
220
|
{
|
|
215
|
-
"os": "macos-
|
|
221
|
+
"os": "macos-26",
|
|
216
222
|
"entry_point": "mpm",
|
|
217
223
|
"commit": "6f27db47612aaee06fdf08744b09a9f5f6c2",
|
|
218
224
|
"bin_name": "mpm-macos-arm64-6f27db4.bin"
|
|
219
225
|
},
|
|
220
226
|
{
|
|
221
|
-
"os": "macos-
|
|
227
|
+
"os": "macos-15-intel",
|
|
222
228
|
"entry_point": "mpm",
|
|
223
229
|
"commit": "346ce664f055fbd042a25ee0b7e96702e95",
|
|
224
230
|
"bin_name": "mpm-macos-x64-346ce66.bin"
|
|
225
231
|
},
|
|
226
232
|
{
|
|
227
|
-
"os": "macos-
|
|
233
|
+
"os": "macos-15-intel",
|
|
228
234
|
"entry_point": "mpm",
|
|
229
235
|
"commit": "6f27db47612aaee06fdf08744b09a9f5f6c2",
|
|
230
236
|
"bin_name": "mpm-macos-x64-6f27db4.bin"
|
|
@@ -288,6 +294,7 @@ from extra_platforms import is_github_ci
|
|
|
288
294
|
from packaging.specifiers import SpecifierSet
|
|
289
295
|
from packaging.version import Version
|
|
290
296
|
from py_walk import get_parser_from_file
|
|
297
|
+
from py_walk.models import Parser
|
|
291
298
|
from pydriller import Commit, Git, Repository # type: ignore[import-untyped]
|
|
292
299
|
from pyproject_metadata import ConfigurationError, StandardMetadata
|
|
293
300
|
from wcmatch.glob import (
|
|
@@ -312,6 +319,8 @@ SHORT_SHA_LENGTH = 7
|
|
|
312
319
|
depends on the size of the repository.
|
|
313
320
|
"""
|
|
314
321
|
|
|
322
|
+
MAILMAP_PATH = Path(".mailmap")
|
|
323
|
+
|
|
315
324
|
GITIGNORE_PATH = Path(".gitignore")
|
|
316
325
|
|
|
317
326
|
NUITKA_BUILD_TARGETS = {
|
|
@@ -328,13 +337,13 @@ NUITKA_BUILD_TARGETS = {
|
|
|
328
337
|
"extension": "bin",
|
|
329
338
|
},
|
|
330
339
|
"macos-arm64": {
|
|
331
|
-
"os": "macos-
|
|
340
|
+
"os": "macos-26",
|
|
332
341
|
"platform_id": "macos",
|
|
333
342
|
"arch": "arm64",
|
|
334
343
|
"extension": "bin",
|
|
335
344
|
},
|
|
336
345
|
"macos-x64": {
|
|
337
|
-
"os": "macos-
|
|
346
|
+
"os": "macos-15-intel",
|
|
338
347
|
"platform_id": "macos",
|
|
339
348
|
"arch": "x64",
|
|
340
349
|
"extension": "bin",
|
|
@@ -472,6 +481,10 @@ MYPY_VERSION_MIN: Final = (3, 8)
|
|
|
472
481
|
"""
|
|
473
482
|
|
|
474
483
|
|
|
484
|
+
# Silence overly verbose debug messages from py-walk logger.
|
|
485
|
+
logging.getLogger("py_walk").setLevel(logging.WARNING)
|
|
486
|
+
|
|
487
|
+
|
|
475
488
|
class JSONMetadata(json.JSONEncoder):
|
|
476
489
|
"""Custom JSON encoder for metadata serialization."""
|
|
477
490
|
|
|
@@ -531,10 +544,15 @@ class Metadata:
|
|
|
531
544
|
logging.debug(json.dumps(context, indent=4))
|
|
532
545
|
return context # type:ignore[no-any-return]
|
|
533
546
|
|
|
534
|
-
|
|
547
|
+
@cached_property
|
|
548
|
+
def git(self) -> Git:
|
|
549
|
+
"""Return a PyDriller Git object."""
|
|
550
|
+
return Git(".")
|
|
551
|
+
|
|
552
|
+
def git_stash_count(self) -> int:
|
|
535
553
|
"""Returns the number of stashes."""
|
|
536
554
|
count = int(
|
|
537
|
-
|
|
555
|
+
self.git.repo.git.rev_list(
|
|
538
556
|
"--walk-reflogs", "--ignore-missing", "--count", "refs/stash"
|
|
539
557
|
)
|
|
540
558
|
)
|
|
@@ -579,8 +597,7 @@ class Metadata:
|
|
|
579
597
|
if not commits:
|
|
580
598
|
return None
|
|
581
599
|
|
|
582
|
-
|
|
583
|
-
current_commit = git.repo.head.commit.hexsha
|
|
600
|
+
current_commit = self.git.repo.head.commit.hexsha
|
|
584
601
|
|
|
585
602
|
# Check if we need to get back in time in the Git log and browse past commits.
|
|
586
603
|
if len(commits) == 1: # type: ignore[arg-type]
|
|
@@ -608,17 +625,17 @@ class Metadata:
|
|
|
608
625
|
# Save the initial commit reference and SHA of the repository. The
|
|
609
626
|
# reference is either the canonical active branch name (i.e. ``main``), or
|
|
610
627
|
# the commit SHA if the current HEAD commit is detached from a branch.
|
|
611
|
-
if git.repo.head.is_detached:
|
|
628
|
+
if self.git.repo.head.is_detached:
|
|
612
629
|
init_ref = current_commit
|
|
613
630
|
else:
|
|
614
|
-
init_ref = git.repo.active_branch.name
|
|
631
|
+
init_ref = self.git.repo.active_branch.name
|
|
615
632
|
logging.debug(f"Initial commit reference: {init_ref}")
|
|
616
633
|
|
|
617
634
|
# Try to stash local changes and check if we'll need to unstash them later.
|
|
618
|
-
counter_before = self.git_stash_count(
|
|
635
|
+
counter_before = self.git_stash_count()
|
|
619
636
|
logging.debug("Try to stash local changes before our series of checkouts.")
|
|
620
|
-
git.repo.git.stash()
|
|
621
|
-
counter_after = self.git_stash_count(
|
|
637
|
+
self.git.repo.git.stash()
|
|
638
|
+
counter_after = self.git_stash_count()
|
|
622
639
|
logging.debug(
|
|
623
640
|
"Stash counter changes after 'git stash' command: "
|
|
624
641
|
f"{counter_before} -> {counter_after}"
|
|
@@ -639,7 +656,7 @@ class Metadata:
|
|
|
639
656
|
for commit in commits:
|
|
640
657
|
if past_commit_lookup:
|
|
641
658
|
logging.debug(f"Checkout to commit {commit.hash}")
|
|
642
|
-
git.checkout(commit.hash)
|
|
659
|
+
self.git.checkout(commit.hash)
|
|
643
660
|
|
|
644
661
|
commit_metadata = {
|
|
645
662
|
"commit": commit.hash,
|
|
@@ -657,10 +674,10 @@ class Metadata:
|
|
|
657
674
|
# Restore the repository to its initial state.
|
|
658
675
|
if past_commit_lookup:
|
|
659
676
|
logging.debug(f"Restore repository to {init_ref}.")
|
|
660
|
-
git.checkout(init_ref)
|
|
677
|
+
self.git.checkout(init_ref)
|
|
661
678
|
if need_unstash:
|
|
662
679
|
logging.debug("Unstash local changes that were previously saved.")
|
|
663
|
-
git.repo.git.stash("pop")
|
|
680
|
+
self.git.repo.git.stash("pop")
|
|
664
681
|
|
|
665
682
|
return matrix
|
|
666
683
|
|
|
@@ -788,15 +805,34 @@ class Metadata:
|
|
|
788
805
|
if not self.commit_range:
|
|
789
806
|
return None
|
|
790
807
|
start, end = self.commit_range
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
808
|
+
|
|
809
|
+
# Sanity check: make sure the start commit exists in the repository.
|
|
810
|
+
# XXX Even if we skip the start commit later on (because the range is
|
|
811
|
+
# inclusive), we still need to make sure it exists: PyDriller stills needs to
|
|
812
|
+
# find it to be able to traverse the commit history.
|
|
813
|
+
for commit_id in (start, end):
|
|
814
|
+
try:
|
|
815
|
+
_ = self.git.get_commit(commit_id)
|
|
816
|
+
except ValueError:
|
|
817
|
+
logging.error(
|
|
818
|
+
f"Cannot find commit {commit_id} in repository. "
|
|
819
|
+
"Repository was probably not checked out with enough depth. "
|
|
820
|
+
f"Current depth is {self.git.total_commits()}. "
|
|
821
|
+
)
|
|
822
|
+
logging.warning(
|
|
823
|
+
"Skipping metadata extraction of the range of new commits."
|
|
824
|
+
)
|
|
825
|
+
return None
|
|
826
|
+
|
|
827
|
+
commit_list = []
|
|
828
|
+
for index, commit in enumerate(
|
|
829
|
+
Repository(".", from_commit=start, to_commit=end).traverse_commits()
|
|
830
|
+
):
|
|
831
|
+
# Skip the first commit because the commit range is inclusive.
|
|
832
|
+
if index == 0:
|
|
833
|
+
continue
|
|
834
|
+
commit_list.append(commit)
|
|
835
|
+
return tuple(commit_list)
|
|
800
836
|
|
|
801
837
|
@cached_property
|
|
802
838
|
def new_commits_matrix(self) -> Matrix | None:
|
|
@@ -845,10 +881,27 @@ class Metadata:
|
|
|
845
881
|
else None
|
|
846
882
|
)
|
|
847
883
|
|
|
884
|
+
@cached_property
|
|
885
|
+
def mailmap_exists(self) -> bool:
|
|
886
|
+
return MAILMAP_PATH.is_file()
|
|
887
|
+
|
|
848
888
|
@cached_property
|
|
849
889
|
def gitignore_exists(self) -> bool:
|
|
850
890
|
return GITIGNORE_PATH.is_file()
|
|
851
891
|
|
|
892
|
+
@cached_property
|
|
893
|
+
def gitignore_parser(self) -> Parser | None:
|
|
894
|
+
"""Returns a parser for the ``.gitignore`` file, if it exists."""
|
|
895
|
+
if self.gitignore_exists:
|
|
896
|
+
logging.debug(f"Parse {GITIGNORE_PATH}")
|
|
897
|
+
return get_parser_from_file(GITIGNORE_PATH)
|
|
898
|
+
return None
|
|
899
|
+
|
|
900
|
+
def gitignore_match(self, file_path: Path | str) -> bool:
|
|
901
|
+
if self.gitignore_parser and self.gitignore_parser.match(file_path):
|
|
902
|
+
return True
|
|
903
|
+
return False
|
|
904
|
+
|
|
852
905
|
def glob_files(self, *patterns: str) -> list[Path]:
|
|
853
906
|
"""Return all file path matching the ``patterns``.
|
|
854
907
|
|
|
@@ -878,12 +931,6 @@ class Metadata:
|
|
|
878
931
|
current_dir = Path.cwd()
|
|
879
932
|
seen = set()
|
|
880
933
|
|
|
881
|
-
# If the .gitignore file exists, we parse it to filter out ignored files.
|
|
882
|
-
gitignore = None
|
|
883
|
-
if self.gitignore_exists:
|
|
884
|
-
logging.debug(f"Load {GITIGNORE_PATH} to filter out ignored files.")
|
|
885
|
-
gitignore = get_parser_from_file(GITIGNORE_PATH)
|
|
886
|
-
|
|
887
934
|
for file_path in iglob(
|
|
888
935
|
patterns,
|
|
889
936
|
flags=NODIR | GLOBSTAR | DOTGLOB | GLOBTILDE | BRACE | FOLLOW | NEGATE,
|
|
@@ -913,7 +960,7 @@ class Metadata:
|
|
|
913
960
|
continue
|
|
914
961
|
|
|
915
962
|
# Skip files that are ignored by .gitignore.
|
|
916
|
-
if
|
|
963
|
+
if self.gitignore_match(file_path):
|
|
917
964
|
logging.debug(f"Skip file matching {GITIGNORE_PATH}: {file_path}")
|
|
918
965
|
continue
|
|
919
966
|
|
|
@@ -934,6 +981,16 @@ class Metadata:
|
|
|
934
981
|
"!**/package-lock.json",
|
|
935
982
|
)
|
|
936
983
|
|
|
984
|
+
@cached_property
|
|
985
|
+
def yaml_files(self) -> list[Path]:
|
|
986
|
+
"""Returns a list of YAML files."""
|
|
987
|
+
return self.glob_files("**/*.{yaml,yml}")
|
|
988
|
+
|
|
989
|
+
@cached_property
|
|
990
|
+
def workflow_files(self) -> list[Path]:
|
|
991
|
+
"""Returns a list of GitHub workflow files."""
|
|
992
|
+
return self.glob_files(".github/workflows/**/*.{yaml,yml}")
|
|
993
|
+
|
|
937
994
|
@cached_property
|
|
938
995
|
def doc_files(self) -> list[Path]:
|
|
939
996
|
"""Returns a list of doc files."""
|
|
@@ -1194,8 +1251,8 @@ class Metadata:
|
|
|
1194
1251
|
"os": [
|
|
1195
1252
|
"ubuntu-24.04-arm",
|
|
1196
1253
|
"ubuntu-24.04",
|
|
1197
|
-
"macos-
|
|
1198
|
-
"macos-
|
|
1254
|
+
"macos-26",
|
|
1255
|
+
"macos-15-intel",
|
|
1199
1256
|
"windows-11-arm",
|
|
1200
1257
|
"windows-2025",
|
|
1201
1258
|
],
|
|
@@ -1223,14 +1280,14 @@ class Metadata:
|
|
|
1223
1280
|
},
|
|
1224
1281
|
{
|
|
1225
1282
|
"target": "macos-arm64",
|
|
1226
|
-
"os": "macos-
|
|
1283
|
+
"os": "macos-26",
|
|
1227
1284
|
"platform_id": "macos",
|
|
1228
1285
|
"arch": "arm64",
|
|
1229
1286
|
"extension": "bin",
|
|
1230
1287
|
},
|
|
1231
1288
|
{
|
|
1232
1289
|
"target": "macos-x64",
|
|
1233
|
-
"os": "macos-
|
|
1290
|
+
"os": "macos-15-intel",
|
|
1234
1291
|
"platform_id": "macos",
|
|
1235
1292
|
"arch": "x64",
|
|
1236
1293
|
"extension": "bin",
|
|
@@ -1291,25 +1348,25 @@ class Metadata:
|
|
|
1291
1348
|
"bin_name": "mpm-linux-x64-6f27db4.bin",
|
|
1292
1349
|
},
|
|
1293
1350
|
{
|
|
1294
|
-
"os": "macos-
|
|
1351
|
+
"os": "macos-26",
|
|
1295
1352
|
"entry_point": "mpm",
|
|
1296
1353
|
"commit": "346ce664f055fbd042a25ee0b7e96702e95",
|
|
1297
1354
|
"bin_name": "mpm-macos-arm64-346ce66.bin",
|
|
1298
1355
|
},
|
|
1299
1356
|
{
|
|
1300
|
-
"os": "macos-
|
|
1357
|
+
"os": "macos-26",
|
|
1301
1358
|
"entry_point": "mpm",
|
|
1302
1359
|
"commit": "6f27db47612aaee06fdf08744b09a9f5f6c2",
|
|
1303
1360
|
"bin_name": "mpm-macos-arm64-6f27db4.bin",
|
|
1304
1361
|
},
|
|
1305
1362
|
{
|
|
1306
|
-
"os": "macos-
|
|
1363
|
+
"os": "macos-15-intel",
|
|
1307
1364
|
"entry_point": "mpm",
|
|
1308
1365
|
"commit": "346ce664f055fbd042a25ee0b7e96702e95",
|
|
1309
1366
|
"bin_name": "mpm-macos-x64-346ce66.bin",
|
|
1310
1367
|
},
|
|
1311
1368
|
{
|
|
1312
|
-
"os": "macos-
|
|
1369
|
+
"os": "macos-15-intel",
|
|
1313
1370
|
"entry_point": "mpm",
|
|
1314
1371
|
"commit": "6f27db47612aaee06fdf08744b09a9f5f6c2",
|
|
1315
1372
|
"bin_name": "mpm-macos-x64-6f27db4.bin",
|
|
@@ -1510,9 +1567,12 @@ class Metadata:
|
|
|
1510
1567
|
"is_bot": self.is_bot,
|
|
1511
1568
|
"new_commits": self.new_commits_hash,
|
|
1512
1569
|
"release_commits": self.release_commits_hash,
|
|
1570
|
+
"mailmap_exists": self.mailmap_exists,
|
|
1513
1571
|
"gitignore_exists": self.gitignore_exists,
|
|
1514
1572
|
"python_files": self.python_files,
|
|
1515
1573
|
"json_files": self.json_files,
|
|
1574
|
+
"yaml_files": self.yaml_files,
|
|
1575
|
+
"workflow_files": self.workflow_files,
|
|
1516
1576
|
"doc_files": self.doc_files,
|
|
1517
1577
|
"markdown_files": self.markdown_files,
|
|
1518
1578
|
"zsh_files": self.zsh_files,
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
gha_utils/__init__.py,sha256=
|
|
1
|
+
gha_utils/__init__.py,sha256=HCe5G0ysXtBmQ8s34Mi5DeYCvYLFSPYzWcV4pPfYdGw,866
|
|
2
2
|
gha_utils/__main__.py,sha256=Dck9BjpLXmIRS83k0mghAMcYVYiMiFLltQdfRuMSP_Q,1703
|
|
3
3
|
gha_utils/changelog.py,sha256=JR7iQrWjLoIOpVNe6iXQSyEii82_hM_zrYpR7QO_Uxo,5777
|
|
4
|
-
gha_utils/cli.py,sha256=
|
|
4
|
+
gha_utils/cli.py,sha256=hwvjKEUvctmtJL2aliV0dytF67uHjGVuUKv17j_lMlg,15235
|
|
5
5
|
gha_utils/mailmap.py,sha256=oQt3m0hj-mwg7WxsuJQXWeQTFjlkqTgRNjYsUv7dlYQ,7013
|
|
6
6
|
gha_utils/matrix.py,sha256=eBAU3bKrCif7FQ74EWhK_AwDcNUkGp8Om1NtlFdYJpI,12431
|
|
7
|
-
gha_utils/metadata.py,sha256=
|
|
7
|
+
gha_utils/metadata.py,sha256=hySTDkjPS2NMKvFlmEmpy4F7rwrjmST_ZiygmF9OOZk,58839
|
|
8
8
|
gha_utils/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
9
9
|
gha_utils/test_plan.py,sha256=AE8Mf1vSQG5EZTytoTts-gzMwUg2Zy21gUwkMlzXT94,13394
|
|
10
|
-
gha_utils-4.
|
|
11
|
-
gha_utils-4.
|
|
12
|
-
gha_utils-4.
|
|
13
|
-
gha_utils-4.
|
|
14
|
-
gha_utils-4.
|
|
10
|
+
gha_utils-4.21.0.dist-info/METADATA,sha256=tdjkQaFwLnJUNm-3K8lOi4crw_n_HQWn-CNtW6BaD08,21420
|
|
11
|
+
gha_utils-4.21.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
12
|
+
gha_utils-4.21.0.dist-info/entry_points.txt,sha256=8bJOwQYf9ZqsLhBR6gUCzvwLNI9f8tiiBrJ3AR0EK4o,54
|
|
13
|
+
gha_utils-4.21.0.dist-info/top_level.txt,sha256=C94Blb61YkkyPBwCdM3J_JPDjWH0lnKa5nGZeZ5M6yE,10
|
|
14
|
+
gha_utils-4.21.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|