copier-python 0.26.2__tar.gz → 0.27.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. {copier_python-0.26.2 → copier_python-0.27.0}/PKG-INFO +1 -1
  2. {copier_python-0.26.2 → copier_python-0.27.0}/tests/template/__snapshots__/test_mise_toml.ambr +16 -0
  3. {copier_python-0.26.2 → copier_python-0.27.0}/tests/template/__snapshots__/test_pre_commit.ambr +21 -0
  4. {copier_python-0.26.2 → copier_python-0.27.0}/tests/template/__snapshots__/test_workflows.ambr +172 -54
  5. {copier_python-0.26.2 → copier_python-0.27.0}/.gitignore +0 -0
  6. {copier_python-0.26.2 → copier_python-0.27.0}/AGENTS.md +0 -0
  7. {copier_python-0.26.2 → copier_python-0.27.0}/CONTRIBUTING.md +0 -0
  8. {copier_python-0.26.2 → copier_python-0.27.0}/LICENSE +0 -0
  9. {copier_python-0.26.2 → copier_python-0.27.0}/README.md +0 -0
  10. {copier_python-0.26.2 → copier_python-0.27.0}/copier_python/__init__.py +0 -0
  11. {copier_python-0.26.2 → copier_python-0.27.0}/copier_python/__main__.py +0 -0
  12. {copier_python-0.26.2 → copier_python-0.27.0}/copier_python/py.typed +0 -0
  13. {copier_python-0.26.2 → copier_python-0.27.0}/copier_python/repo.py +0 -0
  14. {copier_python-0.26.2 → copier_python-0.27.0}/copier_python/update.py +0 -0
  15. {copier_python-0.26.2 → copier_python-0.27.0}/docs/contributing.md +0 -0
  16. {copier_python-0.26.2 → copier_python-0.27.0}/docs/development/requirements.md +0 -0
  17. {copier_python-0.26.2 → copier_python-0.27.0}/docs/development/updates.md +0 -0
  18. {copier_python-0.26.2 → copier_python-0.27.0}/docs/development/workflow.md +0 -0
  19. {copier_python-0.26.2 → copier_python-0.27.0}/docs/index.md +0 -0
  20. {copier_python-0.26.2 → copier_python-0.27.0}/docs/license.md +0 -0
  21. {copier_python-0.26.2 → copier_python-0.27.0}/docs/project-creation.md +0 -0
  22. {copier_python-0.26.2 → copier_python-0.27.0}/docs/project-development.md +0 -0
  23. {copier_python-0.26.2 → copier_python-0.27.0}/docs/project-release.md +0 -0
  24. {copier_python-0.26.2 → copier_python-0.27.0}/docs/project-setup.md +0 -0
  25. {copier_python-0.26.2 → copier_python-0.27.0}/docs/project-updates.md +0 -0
  26. {copier_python-0.26.2 → copier_python-0.27.0}/docs/releasing.md +0 -0
  27. {copier_python-0.26.2 → copier_python-0.27.0}/docs/requirements.md +0 -0
  28. {copier_python-0.26.2 → copier_python-0.27.0}/docs/setup.md +0 -0
  29. {copier_python-0.26.2 → copier_python-0.27.0}/pyproject.toml +0 -0
  30. {copier_python-0.26.2 → copier_python-0.27.0}/tests/__init__.py +0 -0
  31. {copier_python-0.26.2 → copier_python-0.27.0}/tests/conftest.py +0 -0
  32. {copier_python-0.26.2 → copier_python-0.27.0}/tests/template/__init__.py +0 -0
  33. {copier_python-0.26.2 → copier_python-0.27.0}/tests/template/__snapshots__/test_agents.ambr +0 -0
  34. {copier_python-0.26.2 → copier_python-0.27.0}/tests/template/__snapshots__/test_commit_check.ambr +0 -0
  35. {copier_python-0.26.2 → copier_python-0.27.0}/tests/template/__snapshots__/test_compose.ambr +0 -0
  36. {copier_python-0.26.2 → copier_python-0.27.0}/tests/template/__snapshots__/test_contributing.ambr +0 -0
  37. {copier_python-0.26.2 → copier_python-0.27.0}/tests/template/__snapshots__/test_dockerfile.ambr +0 -0
  38. {copier_python-0.26.2 → copier_python-0.27.0}/tests/template/__snapshots__/test_docs.ambr +0 -0
  39. {copier_python-0.26.2 → copier_python-0.27.0}/tests/template/__snapshots__/test_license.ambr +0 -0
  40. {copier_python-0.26.2 → copier_python-0.27.0}/tests/template/__snapshots__/test_pyproject.ambr +0 -0
  41. {copier_python-0.26.2 → copier_python-0.27.0}/tests/template/__snapshots__/test_readme.ambr +0 -0
  42. {copier_python-0.26.2 → copier_python-0.27.0}/tests/template/__snapshots__/test_zensical.ambr +0 -0
  43. {copier_python-0.26.2 → copier_python-0.27.0}/tests/template/test_agents.py +0 -0
  44. {copier_python-0.26.2 → copier_python-0.27.0}/tests/template/test_commit_check.py +0 -0
  45. {copier_python-0.26.2 → copier_python-0.27.0}/tests/template/test_compose.py +0 -0
  46. {copier_python-0.26.2 → copier_python-0.27.0}/tests/template/test_contributing.py +0 -0
  47. {copier_python-0.26.2 → copier_python-0.27.0}/tests/template/test_dockerfile.py +0 -0
  48. {copier_python-0.26.2 → copier_python-0.27.0}/tests/template/test_docs.py +0 -0
  49. {copier_python-0.26.2 → copier_python-0.27.0}/tests/template/test_license.py +0 -0
  50. {copier_python-0.26.2 → copier_python-0.27.0}/tests/template/test_mise_toml.py +0 -0
  51. {copier_python-0.26.2 → copier_python-0.27.0}/tests/template/test_pre_commit.py +0 -0
  52. {copier_python-0.26.2 → copier_python-0.27.0}/tests/template/test_pyproject.py +0 -0
  53. {copier_python-0.26.2 → copier_python-0.27.0}/tests/template/test_readme.py +0 -0
  54. {copier_python-0.26.2 → copier_python-0.27.0}/tests/template/test_structure.py +0 -0
  55. {copier_python-0.26.2 → copier_python-0.27.0}/tests/template/test_template.py +0 -0
  56. {copier_python-0.26.2 → copier_python-0.27.0}/tests/template/test_workflows.py +0 -0
  57. {copier_python-0.26.2 → copier_python-0.27.0}/tests/template/test_zensical.py +0 -0
  58. {copier_python-0.26.2 → copier_python-0.27.0}/tests/test_update.py +0 -0
  59. {copier_python-0.26.2 → copier_python-0.27.0}/tests/test_version.py +0 -0
  60. {copier_python-0.26.2 → copier_python-0.27.0}/tests/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: copier-python
3
- Version: 0.26.2
3
+ Version: 0.27.0
4
4
  Summary: Copier template for Python projects with modern tooling
5
5
  Project-URL: Homepage, https://smkent.github.io/copier-python
6
6
  Project-URL: Repository, https://github.com/smkent/copier-python
@@ -11,6 +11,7 @@
11
11
 
12
12
  [tools]
13
13
  betterleaks = "latest"
14
+ jactionlint = "latest"
14
15
  "pipx:copier" = "latest"
15
16
  prek = "latest"
16
17
  taplo = "latest"
@@ -128,6 +129,7 @@
128
129
 
129
130
  [tools]
130
131
  betterleaks = "latest"
132
+ jactionlint = "latest"
131
133
  "pipx:copier" = "latest"
132
134
  prek = "latest"
133
135
  taplo = "latest"
@@ -252,6 +254,7 @@
252
254
 
253
255
  [tools]
254
256
  betterleaks = "latest"
257
+ jactionlint = "latest"
255
258
  "pipx:copier" = "latest"
256
259
  prek = "latest"
257
260
  taplo = "latest"
@@ -355,6 +358,7 @@
355
358
 
356
359
  [tools]
357
360
  betterleaks = "latest"
361
+ jactionlint = "latest"
358
362
  "pipx:copier" = "latest"
359
363
  prek = "latest"
360
364
  taplo = "latest"
@@ -465,6 +469,7 @@
465
469
 
466
470
  [tools]
467
471
  betterleaks = "latest"
472
+ jactionlint = "latest"
468
473
  "pipx:copier" = "latest"
469
474
  prek = "latest"
470
475
  taplo = "latest"
@@ -587,6 +592,7 @@
587
592
 
588
593
  [tools]
589
594
  betterleaks = "latest"
595
+ jactionlint = "latest"
590
596
  "pipx:copier" = "latest"
591
597
  prek = "latest"
592
598
  taplo = "latest"
@@ -716,6 +722,7 @@
716
722
 
717
723
  [tools]
718
724
  betterleaks = "latest"
725
+ jactionlint = "latest"
719
726
  "pipx:copier" = "latest"
720
727
  prek = "latest"
721
728
  taplo = "latest"
@@ -824,6 +831,7 @@
824
831
 
825
832
  [tools]
826
833
  betterleaks = "latest"
834
+ jactionlint = "latest"
827
835
  "pipx:copier" = "latest"
828
836
  prek = "latest"
829
837
  taplo = "latest"
@@ -939,6 +947,7 @@
939
947
 
940
948
  [tools]
941
949
  betterleaks = "latest"
950
+ jactionlint = "latest"
942
951
  "pipx:copier" = "latest"
943
952
  prek = "latest"
944
953
  taplo = "latest"
@@ -1056,6 +1065,7 @@
1056
1065
 
1057
1066
  [tools]
1058
1067
  betterleaks = "latest"
1068
+ jactionlint = "latest"
1059
1069
  "pipx:copier" = "latest"
1060
1070
  prek = "latest"
1061
1071
  taplo = "latest"
@@ -1180,6 +1190,7 @@
1180
1190
 
1181
1191
  [tools]
1182
1192
  betterleaks = "latest"
1193
+ jactionlint = "latest"
1183
1194
  "pipx:copier" = "latest"
1184
1195
  prek = "latest"
1185
1196
  taplo = "latest"
@@ -1283,6 +1294,7 @@
1283
1294
 
1284
1295
  [tools]
1285
1296
  betterleaks = "latest"
1297
+ jactionlint = "latest"
1286
1298
  "pipx:copier" = "latest"
1287
1299
  prek = "latest"
1288
1300
  taplo = "latest"
@@ -1393,6 +1405,7 @@
1393
1405
 
1394
1406
  [tools]
1395
1407
  betterleaks = "latest"
1408
+ jactionlint = "latest"
1396
1409
  "pipx:copier" = "latest"
1397
1410
  prek = "latest"
1398
1411
  taplo = "latest"
@@ -1515,6 +1528,7 @@
1515
1528
 
1516
1529
  [tools]
1517
1530
  betterleaks = "latest"
1531
+ jactionlint = "latest"
1518
1532
  "pipx:copier" = "latest"
1519
1533
  prek = "latest"
1520
1534
  taplo = "latest"
@@ -1644,6 +1658,7 @@
1644
1658
 
1645
1659
  [tools]
1646
1660
  betterleaks = "latest"
1661
+ jactionlint = "latest"
1647
1662
  "pipx:copier" = "latest"
1648
1663
  prek = "latest"
1649
1664
  taplo = "latest"
@@ -1752,6 +1767,7 @@
1752
1767
 
1753
1768
  [tools]
1754
1769
  betterleaks = "latest"
1770
+ jactionlint = "latest"
1755
1771
  "pipx:copier" = "latest"
1756
1772
  prek = "latest"
1757
1773
  taplo = "latest"
@@ -29,6 +29,13 @@
29
29
  entry: betterleaks git . --pre-commit --staged --redact
30
30
  language: system
31
31
  pass_filenames: false
32
+ - id: jactionlint
33
+ name: jactionlint
34
+ entry: jactionlint --fix
35
+ language: system
36
+ types:
37
+ - yaml
38
+ files: ^\.github/workflows/
32
39
  - id: ruff
33
40
  name: ruff
34
41
  entry: uv run ruff check --fix
@@ -86,6 +93,13 @@
86
93
  entry: betterleaks git . --pre-commit --staged --redact
87
94
  language: system
88
95
  pass_filenames: false
96
+ - id: jactionlint
97
+ name: jactionlint
98
+ entry: jactionlint --fix
99
+ language: system
100
+ types:
101
+ - yaml
102
+ files: ^\.github/workflows/
89
103
  - id: ruff
90
104
  name: ruff
91
105
  entry: uv run ruff check --fix
@@ -140,6 +154,13 @@
140
154
  entry: betterleaks git . --pre-commit --staged --redact
141
155
  language: system
142
156
  pass_filenames: false
157
+ - id: jactionlint
158
+ name: jactionlint
159
+ entry: jactionlint --fix
160
+ language: system
161
+ types:
162
+ - yaml
163
+ files: ^\.github/workflows/
143
164
  - id: ruff
144
165
  name: ruff
145
166
  entry: uv run ruff check --fix
@@ -13,15 +13,25 @@
13
13
  paths:
14
14
  - uv.lock
15
15
 
16
+ concurrency:
17
+ group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
18
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
19
+
20
+ permissions:
21
+ contents: read
22
+
16
23
  jobs:
17
24
  audit:
18
25
  name: Dependencies
19
26
  runs-on: ubuntu-latest
27
+ timeout-minutes: 15
20
28
  env:
21
29
  UV_PYTHON: '3.15'
22
30
  steps:
23
31
  - name: 💾 Check out repository
24
32
  uses: actions/checkout@v7
33
+ with:
34
+ persist-credentials: false
25
35
 
26
36
  - name: 📦 Cache uv managed packages
27
37
  uses: actions/cache@v6
@@ -52,6 +62,9 @@
52
62
  - main
53
63
  pull_request:
54
64
 
65
+ permissions:
66
+ contents: read
67
+
55
68
  concurrency:
56
69
  group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
57
70
  cancel-in-progress: ${{ github.event_name == 'pull_request' }}
@@ -60,6 +73,7 @@
60
73
  ci:
61
74
  name: Test (Python ${{ matrix.python-version }})
62
75
  runs-on: ubuntu-latest
76
+ timeout-minutes: 15
63
77
  env:
64
78
  UV_PYTHON: ${{ matrix.python-version }}
65
79
  strategy:
@@ -74,6 +88,8 @@
74
88
  steps:
75
89
  - name: 💾 Check out repository
76
90
  uses: actions/checkout@v7
91
+ with:
92
+ persist-credentials: false
77
93
 
78
94
  - name: 📦 Cache uv managed packages
79
95
  uses: actions/cache@v6
@@ -110,6 +126,7 @@
110
126
  docs:
111
127
  name: Documentation
112
128
  runs-on: ubuntu-latest
129
+ timeout-minutes: 15
113
130
  env:
114
131
  UV_PYTHON: '3.15'
115
132
  steps:
@@ -117,6 +134,7 @@
117
134
  uses: actions/checkout@v7
118
135
  with:
119
136
  fetch-depth: 0
137
+ persist-credentials: false
120
138
 
121
139
  - name: 📦 Cache uv managed packages
122
140
  uses: actions/cache@v6
@@ -138,13 +156,13 @@
138
156
  betterleaks:
139
157
  name: Secret scan
140
158
  runs-on: ubuntu-latest
141
- permissions:
142
- contents: read
159
+ timeout-minutes: 15
143
160
  steps:
144
161
  - name: 💾 Check out repository
145
162
  uses: actions/checkout@v7
146
163
  with:
147
164
  fetch-depth: 0
165
+ persist-credentials: false
148
166
 
149
167
  - name: 📦 Cache uv managed packages
150
168
  uses: actions/cache@v6
@@ -167,13 +185,13 @@
167
185
  name: Commit messages
168
186
  if: ${{ github.event_name == 'pull_request' }}
169
187
  runs-on: ubuntu-latest
170
- permissions:
171
- contents: read
188
+ timeout-minutes: 15
172
189
  steps:
173
190
  - name: 💾 Check out repository
174
191
  uses: actions/checkout@v7
175
192
  with:
176
193
  fetch-depth: 0
194
+ persist-credentials: false
177
195
 
178
196
  - name: ✉️ Check commit messages
179
197
  uses: commit-check/commit-check-action@v2
@@ -192,6 +210,9 @@
192
210
  - main
193
211
  pull_request:
194
212
 
213
+ permissions:
214
+ contents: read
215
+
195
216
  concurrency:
196
217
  group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
197
218
  cancel-in-progress: ${{ github.event_name == 'pull_request' }}
@@ -200,6 +221,7 @@
200
221
  ci:
201
222
  name: Test (Python ${{ matrix.python-version }})
202
223
  runs-on: ubuntu-latest
224
+ timeout-minutes: 15
203
225
  env:
204
226
  UV_PYTHON: ${{ matrix.python-version }}
205
227
  strategy:
@@ -214,6 +236,8 @@
214
236
  steps:
215
237
  - name: 💾 Check out repository
216
238
  uses: actions/checkout@v7
239
+ with:
240
+ persist-credentials: false
217
241
 
218
242
  - name: 📦 Cache uv managed packages
219
243
  uses: actions/cache@v6
@@ -238,6 +262,7 @@
238
262
  docs:
239
263
  name: Documentation
240
264
  runs-on: ubuntu-latest
265
+ timeout-minutes: 15
241
266
  env:
242
267
  UV_PYTHON: '3.15'
243
268
  steps:
@@ -245,6 +270,7 @@
245
270
  uses: actions/checkout@v7
246
271
  with:
247
272
  fetch-depth: 0
273
+ persist-credentials: false
248
274
 
249
275
  - name: 📦 Cache uv managed packages
250
276
  uses: actions/cache@v6
@@ -266,13 +292,13 @@
266
292
  betterleaks:
267
293
  name: Secret scan
268
294
  runs-on: ubuntu-latest
269
- permissions:
270
- contents: read
295
+ timeout-minutes: 15
271
296
  steps:
272
297
  - name: 💾 Check out repository
273
298
  uses: actions/checkout@v7
274
299
  with:
275
300
  fetch-depth: 0
301
+ persist-credentials: false
276
302
 
277
303
  - name: 📦 Cache uv managed packages
278
304
  uses: actions/cache@v6
@@ -295,13 +321,13 @@
295
321
  name: Commit messages
296
322
  if: ${{ github.event_name == 'pull_request' }}
297
323
  runs-on: ubuntu-latest
298
- permissions:
299
- contents: read
324
+ timeout-minutes: 15
300
325
  steps:
301
326
  - name: 💾 Check out repository
302
327
  uses: actions/checkout@v7
303
328
  with:
304
329
  fetch-depth: 0
330
+ persist-credentials: false
305
331
 
306
332
  - name: ✉️ Check commit messages
307
333
  uses: commit-check/commit-check-action@v2
@@ -320,6 +346,9 @@
320
346
  - main
321
347
  pull_request:
322
348
 
349
+ permissions:
350
+ contents: read
351
+
323
352
  concurrency:
324
353
  group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
325
354
  cancel-in-progress: ${{ github.event_name == 'pull_request' }}
@@ -328,6 +357,7 @@
328
357
  ci:
329
358
  name: Test (Python ${{ matrix.python-version }})
330
359
  runs-on: ubuntu-latest
360
+ timeout-minutes: 15
331
361
  env:
332
362
  UV_PYTHON: ${{ matrix.python-version }}
333
363
  strategy:
@@ -342,6 +372,8 @@
342
372
  steps:
343
373
  - name: 💾 Check out repository
344
374
  uses: actions/checkout@v7
375
+ with:
376
+ persist-credentials: false
345
377
 
346
378
  - name: 📦 Cache uv managed packages
347
379
  uses: actions/cache@v6
@@ -379,13 +411,13 @@
379
411
  betterleaks:
380
412
  name: Secret scan
381
413
  runs-on: ubuntu-latest
382
- permissions:
383
- contents: read
414
+ timeout-minutes: 15
384
415
  steps:
385
416
  - name: 💾 Check out repository
386
417
  uses: actions/checkout@v7
387
418
  with:
388
419
  fetch-depth: 0
420
+ persist-credentials: false
389
421
 
390
422
  - name: 📦 Cache uv managed packages
391
423
  uses: actions/cache@v6
@@ -408,13 +440,13 @@
408
440
  name: Commit messages
409
441
  if: ${{ github.event_name == 'pull_request' }}
410
442
  runs-on: ubuntu-latest
411
- permissions:
412
- contents: read
443
+ timeout-minutes: 15
413
444
  steps:
414
445
  - name: 💾 Check out repository
415
446
  uses: actions/checkout@v7
416
447
  with:
417
448
  fetch-depth: 0
449
+ persist-credentials: false
418
450
 
419
451
  - name: ✉️ Check commit messages
420
452
  uses: commit-check/commit-check-action@v2
@@ -433,6 +465,9 @@
433
465
  - main
434
466
  pull_request:
435
467
 
468
+ permissions:
469
+ contents: read
470
+
436
471
  concurrency:
437
472
  group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
438
473
  cancel-in-progress: ${{ github.event_name == 'pull_request' }}
@@ -441,6 +476,7 @@
441
476
  ci:
442
477
  name: Test (Python ${{ matrix.python-version }})
443
478
  runs-on: ubuntu-latest
479
+ timeout-minutes: 15
444
480
  env:
445
481
  UV_PYTHON: ${{ matrix.python-version }}
446
482
  strategy:
@@ -455,6 +491,8 @@
455
491
  steps:
456
492
  - name: 💾 Check out repository
457
493
  uses: actions/checkout@v7
494
+ with:
495
+ persist-credentials: false
458
496
 
459
497
  - name: 📦 Cache uv managed packages
460
498
  uses: actions/cache@v6
@@ -480,13 +518,13 @@
480
518
  betterleaks:
481
519
  name: Secret scan
482
520
  runs-on: ubuntu-latest
483
- permissions:
484
- contents: read
521
+ timeout-minutes: 15
485
522
  steps:
486
523
  - name: 💾 Check out repository
487
524
  uses: actions/checkout@v7
488
525
  with:
489
526
  fetch-depth: 0
527
+ persist-credentials: false
490
528
 
491
529
  - name: 📦 Cache uv managed packages
492
530
  uses: actions/cache@v6
@@ -509,13 +547,13 @@
509
547
  name: Commit messages
510
548
  if: ${{ github.event_name == 'pull_request' }}
511
549
  runs-on: ubuntu-latest
512
- permissions:
513
- contents: read
550
+ timeout-minutes: 15
514
551
  steps:
515
552
  - name: 💾 Check out repository
516
553
  uses: actions/checkout@v7
517
554
  with:
518
555
  fetch-depth: 0
556
+ persist-credentials: false
519
557
 
520
558
  - name: ✉️ Check commit messages
521
559
  uses: commit-check/commit-check-action@v2
@@ -534,6 +572,9 @@
534
572
  - main
535
573
  pull_request:
536
574
 
575
+ permissions:
576
+ contents: read
577
+
537
578
  concurrency:
538
579
  group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
539
580
  cancel-in-progress: ${{ github.event_name == 'pull_request' }}
@@ -542,6 +583,7 @@
542
583
  ci:
543
584
  name: Test (Python ${{ matrix.python-version }})
544
585
  runs-on: ubuntu-latest
586
+ timeout-minutes: 15
545
587
  env:
546
588
  UV_PYTHON: ${{ matrix.python-version }}
547
589
  strategy:
@@ -554,6 +596,8 @@
554
596
  steps:
555
597
  - name: 💾 Check out repository
556
598
  uses: actions/checkout@v7
599
+ with:
600
+ persist-credentials: false
557
601
 
558
602
  - name: 📦 Cache uv managed packages
559
603
  uses: actions/cache@v6
@@ -590,6 +634,7 @@
590
634
  docs:
591
635
  name: Documentation
592
636
  runs-on: ubuntu-latest
637
+ timeout-minutes: 15
593
638
  env:
594
639
  UV_PYTHON: '3.13'
595
640
  steps:
@@ -597,6 +642,7 @@
597
642
  uses: actions/checkout@v7
598
643
  with:
599
644
  fetch-depth: 0
645
+ persist-credentials: false
600
646
 
601
647
  - name: 📦 Cache uv managed packages
602
648
  uses: actions/cache@v6
@@ -618,13 +664,13 @@
618
664
  betterleaks:
619
665
  name: Secret scan
620
666
  runs-on: ubuntu-latest
621
- permissions:
622
- contents: read
667
+ timeout-minutes: 15
623
668
  steps:
624
669
  - name: 💾 Check out repository
625
670
  uses: actions/checkout@v7
626
671
  with:
627
672
  fetch-depth: 0
673
+ persist-credentials: false
628
674
 
629
675
  - name: 📦 Cache uv managed packages
630
676
  uses: actions/cache@v6
@@ -647,13 +693,13 @@
647
693
  name: Commit messages
648
694
  if: ${{ github.event_name == 'pull_request' }}
649
695
  runs-on: ubuntu-latest
650
- permissions:
651
- contents: read
696
+ timeout-minutes: 15
652
697
  steps:
653
698
  - name: 💾 Check out repository
654
699
  uses: actions/checkout@v7
655
700
  with:
656
701
  fetch-depth: 0
702
+ persist-credentials: false
657
703
 
658
704
  - name: ✉️ Check commit messages
659
705
  uses: commit-check/commit-check-action@v2
@@ -672,6 +718,9 @@
672
718
  - main
673
719
  pull_request:
674
720
 
721
+ permissions:
722
+ contents: read
723
+
675
724
  concurrency:
676
725
  group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
677
726
  cancel-in-progress: ${{ github.event_name == 'pull_request' }}
@@ -680,6 +729,7 @@
680
729
  ci:
681
730
  name: Test (Python ${{ matrix.python-version }})
682
731
  runs-on: ubuntu-latest
732
+ timeout-minutes: 15
683
733
  env:
684
734
  UV_PYTHON: ${{ matrix.python-version }}
685
735
  strategy:
@@ -690,6 +740,8 @@
690
740
  steps:
691
741
  - name: 💾 Check out repository
692
742
  uses: actions/checkout@v7
743
+ with:
744
+ persist-credentials: false
693
745
 
694
746
  - name: 📦 Cache uv managed packages
695
747
  uses: actions/cache@v6
@@ -726,6 +778,7 @@
726
778
  docs:
727
779
  name: Documentation
728
780
  runs-on: ubuntu-latest
781
+ timeout-minutes: 15
729
782
  env:
730
783
  UV_PYTHON: '3.13'
731
784
  steps:
@@ -733,6 +786,7 @@
733
786
  uses: actions/checkout@v7
734
787
  with:
735
788
  fetch-depth: 0
789
+ persist-credentials: false
736
790
 
737
791
  - name: 📦 Cache uv managed packages
738
792
  uses: actions/cache@v6
@@ -754,13 +808,13 @@
754
808
  betterleaks:
755
809
  name: Secret scan
756
810
  runs-on: ubuntu-latest
757
- permissions:
758
- contents: read
811
+ timeout-minutes: 15
759
812
  steps:
760
813
  - name: 💾 Check out repository
761
814
  uses: actions/checkout@v7
762
815
  with:
763
816
  fetch-depth: 0
817
+ persist-credentials: false
764
818
 
765
819
  - name: 📦 Cache uv managed packages
766
820
  uses: actions/cache@v6
@@ -783,13 +837,13 @@
783
837
  name: Commit messages
784
838
  if: ${{ github.event_name == 'pull_request' }}
785
839
  runs-on: ubuntu-latest
786
- permissions:
787
- contents: read
840
+ timeout-minutes: 15
788
841
  steps:
789
842
  - name: 💾 Check out repository
790
843
  uses: actions/checkout@v7
791
844
  with:
792
845
  fetch-depth: 0
846
+ persist-credentials: false
793
847
 
794
848
  - name: ✉️ Check commit messages
795
849
  uses: commit-check/commit-check-action@v2
@@ -808,6 +862,9 @@
808
862
  - main
809
863
  pull_request:
810
864
 
865
+ permissions:
866
+ contents: read
867
+
811
868
  concurrency:
812
869
  group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
813
870
  cancel-in-progress: ${{ github.event_name == 'pull_request' }}
@@ -816,6 +873,7 @@
816
873
  ci:
817
874
  name: Test (Python ${{ matrix.python-version }})
818
875
  runs-on: ubuntu-latest
876
+ timeout-minutes: 15
819
877
  env:
820
878
  UV_PYTHON: ${{ matrix.python-version }}
821
879
  strategy:
@@ -830,6 +888,8 @@
830
888
  steps:
831
889
  - name: 💾 Check out repository
832
890
  uses: actions/checkout@v7
891
+ with:
892
+ persist-credentials: false
833
893
 
834
894
  - name: 📦 Cache uv managed packages
835
895
  uses: actions/cache@v6
@@ -866,6 +926,7 @@
866
926
  docs:
867
927
  name: Documentation
868
928
  runs-on: ubuntu-latest
929
+ timeout-minutes: 15
869
930
  env:
870
931
  UV_PYTHON: '3.15'
871
932
  steps:
@@ -873,6 +934,7 @@
873
934
  uses: actions/checkout@v7
874
935
  with:
875
936
  fetch-depth: 0
937
+ persist-credentials: false
876
938
 
877
939
  - name: 📦 Cache uv managed packages
878
940
  uses: actions/cache@v6
@@ -894,13 +956,13 @@
894
956
  betterleaks:
895
957
  name: Secret scan
896
958
  runs-on: ubuntu-latest
897
- permissions:
898
- contents: read
959
+ timeout-minutes: 15
899
960
  steps:
900
961
  - name: 💾 Check out repository
901
962
  uses: actions/checkout@v7
902
963
  with:
903
964
  fetch-depth: 0
965
+ persist-credentials: false
904
966
 
905
967
  - name: 📦 Cache uv managed packages
906
968
  uses: actions/cache@v6
@@ -923,13 +985,13 @@
923
985
  name: Commit messages
924
986
  if: ${{ github.event_name == 'pull_request' }}
925
987
  runs-on: ubuntu-latest
926
- permissions:
927
- contents: read
988
+ timeout-minutes: 15
928
989
  steps:
929
990
  - name: 💾 Check out repository
930
991
  uses: actions/checkout@v7
931
992
  with:
932
993
  fetch-depth: 0
994
+ persist-credentials: false
933
995
 
934
996
  - name: ✉️ Check commit messages
935
997
  uses: commit-check/commit-check-action@v2
@@ -948,6 +1010,9 @@
948
1010
  - main
949
1011
  pull_request:
950
1012
 
1013
+ permissions:
1014
+ contents: read
1015
+
951
1016
  concurrency:
952
1017
  group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
953
1018
  cancel-in-progress: ${{ github.event_name == 'pull_request' }}
@@ -956,6 +1021,7 @@
956
1021
  ci:
957
1022
  name: Test (Python ${{ matrix.python-version }})
958
1023
  runs-on: ubuntu-latest
1024
+ timeout-minutes: 15
959
1025
  env:
960
1026
  UV_PYTHON: ${{ matrix.python-version }}
961
1027
  strategy:
@@ -968,6 +1034,8 @@
968
1034
  steps:
969
1035
  - name: 💾 Check out repository
970
1036
  uses: actions/checkout@v7
1037
+ with:
1038
+ persist-credentials: false
971
1039
 
972
1040
  - name: 📦 Cache uv managed packages
973
1041
  uses: actions/cache@v6
@@ -1004,6 +1072,7 @@
1004
1072
  docs:
1005
1073
  name: Documentation
1006
1074
  runs-on: ubuntu-latest
1075
+ timeout-minutes: 15
1007
1076
  env:
1008
1077
  UV_PYTHON: '3.15'
1009
1078
  steps:
@@ -1011,6 +1080,7 @@
1011
1080
  uses: actions/checkout@v7
1012
1081
  with:
1013
1082
  fetch-depth: 0
1083
+ persist-credentials: false
1014
1084
 
1015
1085
  - name: 📦 Cache uv managed packages
1016
1086
  uses: actions/cache@v6
@@ -1032,13 +1102,13 @@
1032
1102
  betterleaks:
1033
1103
  name: Secret scan
1034
1104
  runs-on: ubuntu-latest
1035
- permissions:
1036
- contents: read
1105
+ timeout-minutes: 15
1037
1106
  steps:
1038
1107
  - name: 💾 Check out repository
1039
1108
  uses: actions/checkout@v7
1040
1109
  with:
1041
1110
  fetch-depth: 0
1111
+ persist-credentials: false
1042
1112
 
1043
1113
  - name: 📦 Cache uv managed packages
1044
1114
  uses: actions/cache@v6
@@ -1061,13 +1131,13 @@
1061
1131
  name: Commit messages
1062
1132
  if: ${{ github.event_name == 'pull_request' }}
1063
1133
  runs-on: ubuntu-latest
1064
- permissions:
1065
- contents: read
1134
+ timeout-minutes: 15
1066
1135
  steps:
1067
1136
  - name: 💾 Check out repository
1068
1137
  uses: actions/checkout@v7
1069
1138
  with:
1070
1139
  fetch-depth: 0
1140
+ persist-credentials: false
1071
1141
 
1072
1142
  - name: ✉️ Check commit messages
1073
1143
  uses: commit-check/commit-check-action@v2
@@ -1086,6 +1156,9 @@
1086
1156
  - main
1087
1157
  pull_request:
1088
1158
 
1159
+ permissions:
1160
+ contents: read
1161
+
1089
1162
  concurrency:
1090
1163
  group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
1091
1164
  cancel-in-progress: ${{ github.event_name == 'pull_request' }}
@@ -1094,6 +1167,7 @@
1094
1167
  ci:
1095
1168
  name: Test (Python ${{ matrix.python-version }})
1096
1169
  runs-on: ubuntu-latest
1170
+ timeout-minutes: 15
1097
1171
  env:
1098
1172
  UV_PYTHON: ${{ matrix.python-version }}
1099
1173
  strategy:
@@ -1108,6 +1182,8 @@
1108
1182
  steps:
1109
1183
  - name: 💾 Check out repository
1110
1184
  uses: actions/checkout@v7
1185
+ with:
1186
+ persist-credentials: false
1111
1187
 
1112
1188
  - name: 📦 Cache uv managed packages
1113
1189
  uses: actions/cache@v6
@@ -1144,6 +1220,7 @@
1144
1220
  docs:
1145
1221
  name: Documentation
1146
1222
  runs-on: ubuntu-latest
1223
+ timeout-minutes: 15
1147
1224
  env:
1148
1225
  UV_PYTHON: '3.15'
1149
1226
  steps:
@@ -1151,6 +1228,7 @@
1151
1228
  uses: actions/checkout@v7
1152
1229
  with:
1153
1230
  fetch-depth: 0
1231
+ persist-credentials: false
1154
1232
 
1155
1233
  - name: 📦 Cache uv managed packages
1156
1234
  uses: actions/cache@v6
@@ -1172,13 +1250,13 @@
1172
1250
  betterleaks:
1173
1251
  name: Secret scan
1174
1252
  runs-on: ubuntu-latest
1175
- permissions:
1176
- contents: read
1253
+ timeout-minutes: 15
1177
1254
  steps:
1178
1255
  - name: 💾 Check out repository
1179
1256
  uses: actions/checkout@v7
1180
1257
  with:
1181
1258
  fetch-depth: 0
1259
+ persist-credentials: false
1182
1260
 
1183
1261
  - name: 📦 Cache uv managed packages
1184
1262
  uses: actions/cache@v6
@@ -1201,13 +1279,13 @@
1201
1279
  name: Commit messages
1202
1280
  if: ${{ github.event_name == 'pull_request' }}
1203
1281
  runs-on: ubuntu-latest
1204
- permissions:
1205
- contents: read
1282
+ timeout-minutes: 15
1206
1283
  steps:
1207
1284
  - name: 💾 Check out repository
1208
1285
  uses: actions/checkout@v7
1209
1286
  with:
1210
1287
  fetch-depth: 0
1288
+ persist-credentials: false
1211
1289
 
1212
1290
  - name: ✉️ Check commit messages
1213
1291
  uses: commit-check/commit-check-action@v2
@@ -1226,6 +1304,9 @@
1226
1304
  - main
1227
1305
  pull_request:
1228
1306
 
1307
+ permissions:
1308
+ contents: read
1309
+
1229
1310
  concurrency:
1230
1311
  group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
1231
1312
  cancel-in-progress: ${{ github.event_name == 'pull_request' }}
@@ -1234,6 +1315,7 @@
1234
1315
  ci:
1235
1316
  name: Test (Python ${{ matrix.python-version }})
1236
1317
  runs-on: ubuntu-latest
1318
+ timeout-minutes: 15
1237
1319
  env:
1238
1320
  UV_PYTHON: ${{ matrix.python-version }}
1239
1321
  strategy:
@@ -1246,6 +1328,8 @@
1246
1328
  steps:
1247
1329
  - name: 💾 Check out repository
1248
1330
  uses: actions/checkout@v7
1331
+ with:
1332
+ persist-credentials: false
1249
1333
 
1250
1334
  - name: 📦 Cache uv managed packages
1251
1335
  uses: actions/cache@v6
@@ -1282,6 +1366,7 @@
1282
1366
  docs:
1283
1367
  name: Documentation
1284
1368
  runs-on: ubuntu-latest
1369
+ timeout-minutes: 15
1285
1370
  env:
1286
1371
  UV_PYTHON: '3.15'
1287
1372
  steps:
@@ -1289,6 +1374,7 @@
1289
1374
  uses: actions/checkout@v7
1290
1375
  with:
1291
1376
  fetch-depth: 0
1377
+ persist-credentials: false
1292
1378
 
1293
1379
  - name: 📦 Cache uv managed packages
1294
1380
  uses: actions/cache@v6
@@ -1310,13 +1396,13 @@
1310
1396
  betterleaks:
1311
1397
  name: Secret scan
1312
1398
  runs-on: ubuntu-latest
1313
- permissions:
1314
- contents: read
1399
+ timeout-minutes: 15
1315
1400
  steps:
1316
1401
  - name: 💾 Check out repository
1317
1402
  uses: actions/checkout@v7
1318
1403
  with:
1319
1404
  fetch-depth: 0
1405
+ persist-credentials: false
1320
1406
 
1321
1407
  - name: 📦 Cache uv managed packages
1322
1408
  uses: actions/cache@v6
@@ -1339,13 +1425,13 @@
1339
1425
  name: Commit messages
1340
1426
  if: ${{ github.event_name == 'pull_request' }}
1341
1427
  runs-on: ubuntu-latest
1342
- permissions:
1343
- contents: read
1428
+ timeout-minutes: 15
1344
1429
  steps:
1345
1430
  - name: 💾 Check out repository
1346
1431
  uses: actions/checkout@v7
1347
1432
  with:
1348
1433
  fetch-depth: 0
1434
+ persist-credentials: false
1349
1435
 
1350
1436
  - name: ✉️ Check commit messages
1351
1437
  uses: commit-check/commit-check-action@v2
@@ -1366,10 +1452,18 @@
1366
1452
  tags:
1367
1453
  - v[0-9]*.[0-9]*
1368
1454
 
1455
+ concurrency:
1456
+ group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
1457
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
1458
+
1459
+ permissions:
1460
+ contents: read
1461
+
1369
1462
  jobs:
1370
1463
  build-push:
1371
1464
  name: Build and push image
1372
1465
  runs-on: ubuntu-latest
1466
+ timeout-minutes: 15
1373
1467
  permissions:
1374
1468
  packages: write
1375
1469
  contents: read
@@ -1378,9 +1472,13 @@
1378
1472
  steps:
1379
1473
  - name: 💾 Check out repository
1380
1474
  uses: actions/checkout@v7
1475
+ with:
1476
+ persist-credentials: false
1381
1477
 
1382
1478
  - name: 🛠️ Set up buildx
1383
1479
  uses: docker/setup-buildx-action@v4
1480
+ with:
1481
+ cache-binary: ${{ !startsWith(github.ref, 'refs/tags/') }}
1384
1482
 
1385
1483
  - name: 🔑 Log in to the container registry
1386
1484
  uses: docker/login-action@v4
@@ -1411,7 +1509,7 @@
1411
1509
  platforms: linux/amd64,linux/arm64
1412
1510
  tags: ${{ steps.meta.outputs.tags }}
1413
1511
  labels: ${{ steps.meta.outputs.labels }}
1414
- cache-from: type=gha
1512
+ cache-from: ${{ !startsWith(github.ref, 'refs/tags/') && 'type=gha' || '' }}
1415
1513
  cache-to: type=gha,mode=max
1416
1514
 
1417
1515
  - name: 🔒 Attest build provenance
@@ -1435,10 +1533,18 @@
1435
1533
  - cron: 0 3 * * 0
1436
1534
  workflow_dispatch:
1437
1535
 
1536
+ concurrency:
1537
+ group: ghcr-cleanup
1538
+ cancel-in-progress: false
1539
+
1540
+ permissions:
1541
+ contents: read
1542
+
1438
1543
  jobs:
1439
1544
  cleanup:
1440
1545
  name: Clean up images
1441
1546
  runs-on: ubuntu-latest
1547
+ timeout-minutes: 15
1442
1548
  permissions:
1443
1549
  packages: write
1444
1550
 
@@ -1470,17 +1576,16 @@
1470
1576
 
1471
1577
  permissions:
1472
1578
  contents: read
1473
- pages: write
1474
- id-token: write
1475
1579
 
1476
1580
  concurrency:
1477
- group: pages
1581
+ group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
1478
1582
  cancel-in-progress: false
1479
1583
 
1480
1584
  jobs:
1481
1585
  build:
1482
1586
  name: Build Documentation
1483
1587
  runs-on: ubuntu-latest
1588
+ timeout-minutes: 15
1484
1589
  env:
1485
1590
  UV_PYTHON: '3.15'
1486
1591
  steps:
@@ -1488,6 +1593,7 @@
1488
1593
  uses: actions/checkout@v7
1489
1594
  with:
1490
1595
  fetch-depth: 0
1596
+ persist-credentials: false
1491
1597
 
1492
1598
  - name: 📦 Cache uv managed packages
1493
1599
  uses: actions/cache@v6
@@ -1515,9 +1621,16 @@
1515
1621
  name: Deploy Documentation
1516
1622
  needs: build
1517
1623
  runs-on: ubuntu-latest
1624
+ timeout-minutes: 15
1518
1625
  environment:
1519
1626
  name: github-pages
1520
1627
  url: ${{ steps.deployment.outputs.page_url }}
1628
+ permissions:
1629
+ pages: write
1630
+ id-token: write
1631
+ concurrency:
1632
+ group: pages
1633
+ cancel-in-progress: false
1521
1634
  steps:
1522
1635
  - name: 🚀 Deploy site
1523
1636
  uses: actions/deploy-pages@v5
@@ -1534,10 +1647,19 @@
1534
1647
  tags:
1535
1648
  - v[0-9]*.[0-9]*
1536
1649
 
1650
+ concurrency:
1651
+ group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
1652
+ cancel-in-progress: false
1653
+
1654
+ permissions:
1655
+ contents: read
1656
+
1537
1657
  jobs:
1538
1658
  build:
1539
1659
  name: Build distribution
1540
1660
  runs-on: ubuntu-latest
1661
+ cache-mode: none
1662
+ timeout-minutes: 15
1541
1663
  env:
1542
1664
  UV_PYTHON: '3.15'
1543
1665
  steps:
@@ -1545,19 +1667,11 @@
1545
1667
  uses: actions/checkout@v7
1546
1668
  with:
1547
1669
  fetch-depth: 0
1548
-
1549
- - name: 📦 Cache uv managed packages
1550
- uses: actions/cache@v6
1551
- with:
1552
- path: ~/.cache/uv
1553
- key: uv-${{ runner.os }}-${{ hashFiles('pyproject.toml', 'uv.lock') }}
1554
- restore-keys: |
1555
- uv-${{ runner.os }}-
1670
+ persist-credentials: false
1556
1671
 
1557
1672
  - name: 🍳 Set up mise
1558
1673
  uses: jdx/mise-action@v5
1559
1674
  with:
1560
- cache: true
1561
1675
  install: true
1562
1676
 
1563
1677
  - name: 📦 Build package
@@ -1566,6 +1680,7 @@
1566
1680
  - name: 🔼 Upload artifact
1567
1681
  uses: actions/upload-artifact@v7
1568
1682
  with:
1683
+ if-no-files-found: error
1569
1684
  name: dist
1570
1685
  path: dist/
1571
1686
 
@@ -1573,6 +1688,7 @@
1573
1688
  name: Create GitHub release
1574
1689
  needs: build
1575
1690
  runs-on: ubuntu-latest
1691
+ timeout-minutes: 15
1576
1692
  permissions:
1577
1693
  contents: write
1578
1694
  steps:
@@ -1583,15 +1699,17 @@
1583
1699
  path: dist/
1584
1700
 
1585
1701
  - name: 🏷️ Create GitHub release
1586
- run: gh release create ${{ github.ref_name }} dist/* --generate-notes
1702
+ run: gh release create "${REF_NAME}" dist/* --generate-notes
1587
1703
  env:
1588
1704
  GH_REPO: ${{ github.repository }}
1589
1705
  GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
1706
+ REF_NAME: ${{ github.ref_name }}
1590
1707
 
1591
1708
  publish:
1592
1709
  name: Publish to PyPI
1593
1710
  needs: build
1594
1711
  runs-on: ubuntu-latest
1712
+ timeout-minutes: 15
1595
1713
  environment:
1596
1714
  name: pypi
1597
1715
  url: https://pypi.org/project/PKFire/
File without changes
File without changes
File without changes