github-backup 0.50.2__tar.gz → 0.51.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.
@@ -1,9 +1,531 @@
1
1
  Changelog
2
2
  =========
3
3
 
4
- 0.50.2 (2025-06-16)
4
+ 0.51.0 (2025-11-06)
5
5
  -------------------
6
6
  ------------------------
7
+
8
+ Fix
9
+ ~~~
10
+ - Remove Python 3.8 and 3.9 from CI matrix. [Rodos]
11
+
12
+ 3.8 and 3.9 are failing because the pinned dependencies don't support them:
13
+ - autopep8==2.3.2 needs Python 3.9+
14
+ - bleach==6.3.0 needs Python 3.10+
15
+
16
+ Both are EOL now anyway (3.8 in Oct 2024, 3.9 in Oct 2025).
17
+
18
+ Just fixing CI to test 3.10-3.14 for now. Will do a separate PR to formally
19
+ drop 3.8/3.9 support with python_requires and README updates.
20
+
21
+ Other
22
+ ~~~~~
23
+ - Refactor: Add atomic writes for attachment files and manifests.
24
+ [Rodos]
25
+ - Feat: Add attachment download support for issues and pull requests.
26
+ [Rodos]
27
+
28
+ Adds new --attachments flag that downloads user-uploaded files from
29
+ issue and PR bodies and comments. Key features:
30
+
31
+ - Determines attachment URLs
32
+ - Tracks downloads in manifest.json with metadata
33
+ - Supports --skip-existing to avoid re-downloading
34
+ - Handles filename collisions with counter suffix
35
+ - Smart retry logic for transient vs permanent failures
36
+ - Uses Content-Disposition for correct file extensions
37
+ - Feat: Drop support for Python 3.8 and 3.9 (EOL) [Rodos]
38
+
39
+ Both Python 3.8 and 3.9 have reached end-of-life:
40
+ - Python 3.8: EOL October 7, 2024
41
+ - Python 3.9: EOL October 31, 2025
42
+
43
+ Changes:
44
+ - Add python_requires=">=3.10" to setup.py
45
+ - Remove Python 3.8 and 3.9 from classifiers
46
+ - Add Python 3.13 and 3.14 to classifiers
47
+ - Update README to document Python 3.10+ requirement
48
+ - Feat: Enforce Python 3.8+ requirement and add multi-version CI
49
+ testing. [Rodos]
50
+
51
+ - Add python_requires=">=3.8" to setup.py to enforce minimum version at install time
52
+ - Update README to explicitly document Python 3.8+ requirement
53
+ - Add CI matrix to test lint/build on Python 3.8-3.14 (7 versions)
54
+ - Aligns with actual usage patterns (~99% of downloads on Python 3.8+)
55
+ - Prevents future PRs from inadvertently using incompatible syntax
56
+
57
+ This change protects users by preventing installation on unsupported Python
58
+ versions and ensures contributors can see version requirements clearly.
59
+ - Chore(deps): bump bleach in the python-packages group.
60
+ [dependabot[bot]]
61
+
62
+ Bumps the python-packages group with 1 update: [bleach](https://github.com/mozilla/bleach).
63
+
64
+
65
+ Updates `bleach` from 6.2.0 to 6.3.0
66
+ - [Changelog](https://github.com/mozilla/bleach/blob/main/CHANGES)
67
+ - [Commits](https://github.com/mozilla/bleach/compare/v6.2.0...v6.3.0)
68
+
69
+ ---
70
+ updated-dependencies:
71
+ - dependency-name: bleach
72
+ dependency-version: 6.3.0
73
+ dependency-type: direct:production
74
+ update-type: version-update:semver-minor
75
+ dependency-group: python-packages
76
+ ...
77
+ - Chore(deps): bump charset-normalizer in the python-packages group.
78
+ [dependabot[bot]]
79
+
80
+ Bumps the python-packages group with 1 update: [charset-normalizer](https://github.com/jawah/charset_normalizer).
81
+
82
+
83
+ Updates `charset-normalizer` from 3.4.3 to 3.4.4
84
+ - [Release notes](https://github.com/jawah/charset_normalizer/releases)
85
+ - [Changelog](https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md)
86
+ - [Commits](https://github.com/jawah/charset_normalizer/compare/3.4.3...3.4.4)
87
+
88
+ ---
89
+ updated-dependencies:
90
+ - dependency-name: charset-normalizer
91
+ dependency-version: 3.4.4
92
+ dependency-type: direct:production
93
+ update-type: version-update:semver-patch
94
+ dependency-group: python-packages
95
+ ...
96
+ - Chore(deps): bump idna from 3.10 to 3.11 in the python-packages group.
97
+ [dependabot[bot]]
98
+
99
+ Bumps the python-packages group with 1 update: [idna](https://github.com/kjd/idna).
100
+
101
+
102
+ Updates `idna` from 3.10 to 3.11
103
+ - [Release notes](https://github.com/kjd/idna/releases)
104
+ - [Changelog](https://github.com/kjd/idna/blob/master/HISTORY.rst)
105
+ - [Commits](https://github.com/kjd/idna/compare/v3.10...v3.11)
106
+
107
+ ---
108
+ updated-dependencies:
109
+ - dependency-name: idna
110
+ dependency-version: '3.11'
111
+ dependency-type: direct:production
112
+ update-type: version-update:semver-minor
113
+ dependency-group: python-packages
114
+ ...
115
+ - Chore(deps): bump the python-packages group across 1 directory with 2
116
+ updates. [dependabot[bot]]
117
+
118
+ Bumps the python-packages group with 2 updates in the / directory: [platformdirs](https://github.com/tox-dev/platformdirs) and [rich](https://github.com/Textualize/rich).
119
+
120
+
121
+ Updates `platformdirs` from 4.4.0 to 4.5.0
122
+ - [Release notes](https://github.com/tox-dev/platformdirs/releases)
123
+ - [Changelog](https://github.com/tox-dev/platformdirs/blob/main/CHANGES.rst)
124
+ - [Commits](https://github.com/tox-dev/platformdirs/compare/4.4.0...4.5.0)
125
+
126
+ Updates `rich` from 14.1.0 to 14.2.0
127
+ - [Release notes](https://github.com/Textualize/rich/releases)
128
+ - [Changelog](https://github.com/Textualize/rich/blob/master/CHANGELOG.md)
129
+ - [Commits](https://github.com/Textualize/rich/compare/v14.1.0...v14.2.0)
130
+
131
+ ---
132
+ updated-dependencies:
133
+ - dependency-name: platformdirs
134
+ dependency-version: 4.5.0
135
+ dependency-type: direct:production
136
+ update-type: version-update:semver-minor
137
+ dependency-group: python-packages
138
+ - dependency-name: rich
139
+ dependency-version: 14.2.0
140
+ dependency-type: direct:production
141
+ update-type: version-update:semver-minor
142
+ dependency-group: python-packages
143
+ ...
144
+ - Chore(deps): bump the python-packages group with 3 updates.
145
+ [dependabot[bot]]
146
+
147
+ Bumps the python-packages group with 3 updates: [certifi](https://github.com/certifi/python-certifi), [click](https://github.com/pallets/click) and [markdown-it-py](https://github.com/executablebooks/markdown-it-py).
148
+
149
+
150
+ Updates `certifi` from 2025.8.3 to 2025.10.5
151
+ - [Commits](https://github.com/certifi/python-certifi/compare/2025.08.03...2025.10.05)
152
+
153
+ Updates `click` from 8.1.8 to 8.3.0
154
+ - [Release notes](https://github.com/pallets/click/releases)
155
+ - [Changelog](https://github.com/pallets/click/blob/main/CHANGES.rst)
156
+ - [Commits](https://github.com/pallets/click/compare/8.1.8...8.3.0)
157
+
158
+ Updates `markdown-it-py` from 3.0.0 to 4.0.0
159
+ - [Release notes](https://github.com/executablebooks/markdown-it-py/releases)
160
+ - [Changelog](https://github.com/executablebooks/markdown-it-py/blob/master/CHANGELOG.md)
161
+ - [Commits](https://github.com/executablebooks/markdown-it-py/compare/v3.0.0...v4.0.0)
162
+
163
+ ---
164
+ updated-dependencies:
165
+ - dependency-name: certifi
166
+ dependency-version: 2025.10.5
167
+ dependency-type: direct:production
168
+ update-type: version-update:semver-minor
169
+ dependency-group: python-packages
170
+ - dependency-name: click
171
+ dependency-version: 8.3.0
172
+ dependency-type: direct:production
173
+ update-type: version-update:semver-minor
174
+ dependency-group: python-packages
175
+ - dependency-name: markdown-it-py
176
+ dependency-version: 4.0.0
177
+ dependency-type: direct:production
178
+ update-type: version-update:semver-major
179
+ dependency-group: python-packages
180
+ ...
181
+ - Chore(deps): bump docutils in the python-packages group.
182
+ [dependabot[bot]]
183
+
184
+ Bumps the python-packages group with 1 update: [docutils](https://github.com/rtfd/recommonmark).
185
+
186
+
187
+ Updates `docutils` from 0.22.1 to 0.22.2
188
+ - [Changelog](https://github.com/readthedocs/recommonmark/blob/master/CHANGELOG.md)
189
+ - [Commits](https://github.com/rtfd/recommonmark/commits)
190
+
191
+ ---
192
+ updated-dependencies:
193
+ - dependency-name: docutils
194
+ dependency-version: 0.22.2
195
+ dependency-type: direct:production
196
+ update-type: version-update:semver-patch
197
+ dependency-group: python-packages
198
+ ...
199
+ - Chore(deps): bump the python-packages group across 1 directory with 2
200
+ updates. [dependabot[bot]]
201
+
202
+ Bumps the python-packages group with 2 updates in the / directory: [black](https://github.com/psf/black) and [docutils](https://github.com/rtfd/recommonmark).
203
+
204
+
205
+ Updates `black` from 25.1.0 to 25.9.0
206
+ - [Release notes](https://github.com/psf/black/releases)
207
+ - [Changelog](https://github.com/psf/black/blob/main/CHANGES.md)
208
+ - [Commits](https://github.com/psf/black/compare/25.1.0...25.9.0)
209
+
210
+ Updates `docutils` from 0.22 to 0.22.1
211
+ - [Changelog](https://github.com/readthedocs/recommonmark/blob/master/CHANGELOG.md)
212
+ - [Commits](https://github.com/rtfd/recommonmark/commits)
213
+
214
+ ---
215
+ updated-dependencies:
216
+ - dependency-name: black
217
+ dependency-version: 25.9.0
218
+ dependency-type: direct:production
219
+ update-type: version-update:semver-minor
220
+ dependency-group: python-packages
221
+ - dependency-name: docutils
222
+ dependency-version: 0.22.1
223
+ dependency-type: direct:production
224
+ update-type: version-update:semver-patch
225
+ dependency-group: python-packages
226
+ ...
227
+ - Delete .github/ISSUE_TEMPLATE.md. [Jose Diaz-Gonzalez]
228
+ - Create feature.yaml. [Jose Diaz-Gonzalez]
229
+ - Delete .github/ISSUE_TEMPLATE/bug_report.md. [Jose Diaz-Gonzalez]
230
+ - Rename bug.md to bug.yaml. [Jose Diaz-Gonzalez]
231
+ - Chore: create bug template. [Jose Diaz-Gonzalez]
232
+ - Chore: Rename PULL_REQUEST.md to .github/PULL_REQUEST.md. [Jose Diaz-
233
+ Gonzalez]
234
+ - Chore: Rename ISSUE_TEMPLATE.md to .github/ISSUE_TEMPLATE.md. [Jose
235
+ Diaz-Gonzalez]
236
+ - Chore(deps): bump actions/setup-python from 5 to 6. [dependabot[bot]]
237
+
238
+ Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5 to 6.
239
+ - [Release notes](https://github.com/actions/setup-python/releases)
240
+ - [Commits](https://github.com/actions/setup-python/compare/v5...v6)
241
+
242
+ ---
243
+ updated-dependencies:
244
+ - dependency-name: actions/setup-python
245
+ dependency-version: '6'
246
+ dependency-type: direct:production
247
+ update-type: version-update:semver-major
248
+ ...
249
+ - Chore(deps): bump twine from 6.1.0 to 6.2.0 in the python-packages
250
+ group. [dependabot[bot]]
251
+
252
+ Bumps the python-packages group with 1 update: [twine](https://github.com/pypa/twine).
253
+
254
+
255
+ Updates `twine` from 6.1.0 to 6.2.0
256
+ - [Release notes](https://github.com/pypa/twine/releases)
257
+ - [Changelog](https://github.com/pypa/twine/blob/main/docs/changelog.rst)
258
+ - [Commits](https://github.com/pypa/twine/compare/6.1.0...6.2.0)
259
+
260
+ ---
261
+ updated-dependencies:
262
+ - dependency-name: twine
263
+ dependency-version: 6.2.0
264
+ dependency-type: direct:production
265
+ update-type: version-update:semver-minor
266
+ dependency-group: python-packages
267
+ ...
268
+ - Chore(deps): bump more-itertools in the python-packages group.
269
+ [dependabot[bot]]
270
+
271
+ Bumps the python-packages group with 1 update: [more-itertools](https://github.com/more-itertools/more-itertools).
272
+
273
+
274
+ Updates `more-itertools` from 10.7.0 to 10.8.0
275
+ - [Release notes](https://github.com/more-itertools/more-itertools/releases)
276
+ - [Commits](https://github.com/more-itertools/more-itertools/compare/v10.7.0...v10.8.0)
277
+
278
+ ---
279
+ updated-dependencies:
280
+ - dependency-name: more-itertools
281
+ dependency-version: 10.8.0
282
+ dependency-type: direct:production
283
+ update-type: version-update:semver-minor
284
+ dependency-group: python-packages
285
+ ...
286
+ - Chore(deps): bump platformdirs in the python-packages group.
287
+ [dependabot[bot]]
288
+
289
+ Bumps the python-packages group with 1 update: [platformdirs](https://github.com/tox-dev/platformdirs).
290
+
291
+
292
+ Updates `platformdirs` from 4.3.8 to 4.4.0
293
+ - [Release notes](https://github.com/tox-dev/platformdirs/releases)
294
+ - [Changelog](https://github.com/tox-dev/platformdirs/blob/main/CHANGES.rst)
295
+ - [Commits](https://github.com/tox-dev/platformdirs/compare/4.3.8...4.4.0)
296
+
297
+ ---
298
+ updated-dependencies:
299
+ - dependency-name: platformdirs
300
+ dependency-version: 4.4.0
301
+ dependency-type: direct:production
302
+ update-type: version-update:semver-minor
303
+ dependency-group: python-packages
304
+ ...
305
+ - Chore(deps): bump actions/checkout from 4 to 5. [dependabot[bot]]
306
+
307
+ Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
308
+ - [Release notes](https://github.com/actions/checkout/releases)
309
+ - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
310
+ - [Commits](https://github.com/actions/checkout/compare/v4...v5)
311
+
312
+ ---
313
+ updated-dependencies:
314
+ - dependency-name: actions/checkout
315
+ dependency-version: '5'
316
+ dependency-type: direct:production
317
+ update-type: version-update:semver-major
318
+ ...
319
+ - Chore(deps): bump requests in the python-packages group.
320
+ [dependabot[bot]]
321
+
322
+ Bumps the python-packages group with 1 update: [requests](https://github.com/psf/requests).
323
+
324
+
325
+ Updates `requests` from 2.32.4 to 2.32.5
326
+ - [Release notes](https://github.com/psf/requests/releases)
327
+ - [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md)
328
+ - [Commits](https://github.com/psf/requests/compare/v2.32.4...v2.32.5)
329
+
330
+ ---
331
+ updated-dependencies:
332
+ - dependency-name: requests
333
+ dependency-version: 2.32.5
334
+ dependency-type: direct:production
335
+ update-type: version-update:semver-patch
336
+ dependency-group: python-packages
337
+ ...
338
+ - Chore: update Dockerfile to use Python 3.12 and improve dependency
339
+ installation. [Mateusz Hajder]
340
+ - Chore(deps): bump the python-packages group with 2 updates.
341
+ [dependabot[bot]]
342
+
343
+ Bumps the python-packages group with 2 updates: [certifi](https://github.com/certifi/python-certifi) and [charset-normalizer](https://github.com/jawah/charset_normalizer).
344
+
345
+
346
+ Updates `certifi` from 2025.7.14 to 2025.8.3
347
+ - [Commits](https://github.com/certifi/python-certifi/compare/2025.07.14...2025.08.03)
348
+
349
+ Updates `charset-normalizer` from 3.4.2 to 3.4.3
350
+ - [Release notes](https://github.com/jawah/charset_normalizer/releases)
351
+ - [Changelog](https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md)
352
+ - [Commits](https://github.com/jawah/charset_normalizer/compare/3.4.2...3.4.3)
353
+
354
+ ---
355
+ updated-dependencies:
356
+ - dependency-name: certifi
357
+ dependency-version: 2025.8.3
358
+ dependency-type: direct:production
359
+ update-type: version-update:semver-minor
360
+ dependency-group: python-packages
361
+ - dependency-name: charset-normalizer
362
+ dependency-version: 3.4.3
363
+ dependency-type: direct:production
364
+ update-type: version-update:semver-patch
365
+ dependency-group: python-packages
366
+ ...
367
+
368
+
369
+ 0.50.3 (2025-08-08)
370
+ -------------------
371
+ - Revert "Add conditional check for git checkout in development path"
372
+ [Eric Wheeler]
373
+
374
+ This reverts commit 1bad563e3f23d3d8b9f98721d857a660692f4847.
375
+ - Fix -R flag to allow backups of repositories not owned by user. [Eric
376
+ Wheeler]
377
+
378
+ Previously, using -R flag would show zero issues/PRs for repositories
379
+ not owned by the primary user due to incorrect pagination parameters
380
+ being added to single repository API calls.
381
+
382
+ - Remove pagination parameters for single repository requests
383
+ - Support owner/repo format in -R flag (e.g., -R owner/repo-name)
384
+ - Skip filtering when specific repository is requested
385
+ - Fix URL construction for requests without query parameters
386
+
387
+ This enables backing up any repository, not just those owned by the
388
+ primary user specified in -u flag.
389
+ - Add conditional check for git checkout in development path. [Eric
390
+ Wheeler]
391
+
392
+ Only insert development path into sys.path when running from a git checkout
393
+ (when ../.git exists). This makes the script more robust by only using the
394
+ development tree when available and falling back to installed package otherwise.
395
+ - Chore(deps): bump the python-packages group across 1 directory with 3
396
+ updates. [dependabot[bot]]
397
+
398
+ Bumps the python-packages group with 3 updates in the / directory: [certifi](https://github.com/certifi/python-certifi), [docutils](https://github.com/rtfd/recommonmark) and [rich](https://github.com/Textualize/rich).
399
+
400
+
401
+ Updates `certifi` from 2025.7.9 to 2025.7.14
402
+ - [Commits](https://github.com/certifi/python-certifi/compare/2025.07.09...2025.07.14)
403
+
404
+ Updates `docutils` from 0.21.2 to 0.22
405
+ - [Changelog](https://github.com/readthedocs/recommonmark/blob/master/CHANGELOG.md)
406
+ - [Commits](https://github.com/rtfd/recommonmark/commits)
407
+
408
+ Updates `rich` from 14.0.0 to 14.1.0
409
+ - [Release notes](https://github.com/Textualize/rich/releases)
410
+ - [Changelog](https://github.com/Textualize/rich/blob/master/CHANGELOG.md)
411
+ - [Commits](https://github.com/Textualize/rich/compare/v14.0.0...v14.1.0)
412
+
413
+ ---
414
+ updated-dependencies:
415
+ - dependency-name: certifi
416
+ dependency-version: 2025.7.14
417
+ dependency-type: direct:production
418
+ update-type: version-update:semver-patch
419
+ dependency-group: python-packages
420
+ - dependency-name: docutils
421
+ dependency-version: '0.22'
422
+ dependency-type: direct:production
423
+ update-type: version-update:semver-minor
424
+ dependency-group: python-packages
425
+ - dependency-name: rich
426
+ dependency-version: 14.1.0
427
+ dependency-type: direct:production
428
+ update-type: version-update:semver-minor
429
+ dependency-group: python-packages
430
+ ...
431
+ - Chore(deps): bump certifi in the python-packages group.
432
+ [dependabot[bot]]
433
+
434
+ Bumps the python-packages group with 1 update: [certifi](https://github.com/certifi/python-certifi).
435
+
436
+
437
+ Updates `certifi` from 2025.6.15 to 2025.7.9
438
+ - [Commits](https://github.com/certifi/python-certifi/compare/2025.06.15...2025.07.09)
439
+
440
+ ---
441
+ updated-dependencies:
442
+ - dependency-name: certifi
443
+ dependency-version: 2025.7.9
444
+ dependency-type: direct:production
445
+ update-type: version-update:semver-minor
446
+ dependency-group: python-packages
447
+ ...
448
+ - Chore(deps): bump urllib3 from 2.4.0 to 2.5.0. [dependabot[bot]]
449
+
450
+ Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.4.0 to 2.5.0.
451
+ - [Release notes](https://github.com/urllib3/urllib3/releases)
452
+ - [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
453
+ - [Commits](https://github.com/urllib3/urllib3/compare/2.4.0...2.5.0)
454
+
455
+ ---
456
+ updated-dependencies:
457
+ - dependency-name: urllib3
458
+ dependency-version: 2.5.0
459
+ dependency-type: direct:production
460
+ ...
461
+ - Chore(deps): bump the python-packages group with 5 updates.
462
+ [dependabot[bot]]
463
+
464
+ Bumps the python-packages group with 5 updates:
465
+
466
+ | Package | From | To |
467
+ | --- | --- | --- |
468
+ | [flake8](https://github.com/pycqa/flake8) | `7.2.0` | `7.3.0` |
469
+ | [pycodestyle](https://github.com/PyCQA/pycodestyle) | `2.13.0` | `2.14.0` |
470
+ | [pyflakes](https://github.com/PyCQA/pyflakes) | `3.3.2` | `3.4.0` |
471
+ | [pygments](https://github.com/pygments/pygments) | `2.19.1` | `2.19.2` |
472
+ | [urllib3](https://github.com/urllib3/urllib3) | `2.4.0` | `2.5.0` |
473
+
474
+
475
+ Updates `flake8` from 7.2.0 to 7.3.0
476
+ - [Commits](https://github.com/pycqa/flake8/compare/7.2.0...7.3.0)
477
+
478
+ Updates `pycodestyle` from 2.13.0 to 2.14.0
479
+ - [Release notes](https://github.com/PyCQA/pycodestyle/releases)
480
+ - [Changelog](https://github.com/PyCQA/pycodestyle/blob/main/CHANGES.txt)
481
+ - [Commits](https://github.com/PyCQA/pycodestyle/compare/2.13.0...2.14.0)
482
+
483
+ Updates `pyflakes` from 3.3.2 to 3.4.0
484
+ - [Changelog](https://github.com/PyCQA/pyflakes/blob/main/NEWS.rst)
485
+ - [Commits](https://github.com/PyCQA/pyflakes/compare/3.3.2...3.4.0)
486
+
487
+ Updates `pygments` from 2.19.1 to 2.19.2
488
+ - [Release notes](https://github.com/pygments/pygments/releases)
489
+ - [Changelog](https://github.com/pygments/pygments/blob/master/CHANGES)
490
+ - [Commits](https://github.com/pygments/pygments/compare/2.19.1...2.19.2)
491
+
492
+ Updates `urllib3` from 2.4.0 to 2.5.0
493
+ - [Release notes](https://github.com/urllib3/urllib3/releases)
494
+ - [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
495
+ - [Commits](https://github.com/urllib3/urllib3/compare/2.4.0...2.5.0)
496
+
497
+ ---
498
+ updated-dependencies:
499
+ - dependency-name: flake8
500
+ dependency-version: 7.3.0
501
+ dependency-type: direct:production
502
+ update-type: version-update:semver-minor
503
+ dependency-group: python-packages
504
+ - dependency-name: pycodestyle
505
+ dependency-version: 2.14.0
506
+ dependency-type: direct:production
507
+ update-type: version-update:semver-minor
508
+ dependency-group: python-packages
509
+ - dependency-name: pyflakes
510
+ dependency-version: 3.4.0
511
+ dependency-type: direct:production
512
+ update-type: version-update:semver-minor
513
+ dependency-group: python-packages
514
+ - dependency-name: pygments
515
+ dependency-version: 2.19.2
516
+ dependency-type: direct:production
517
+ update-type: version-update:semver-patch
518
+ dependency-group: python-packages
519
+ - dependency-name: urllib3
520
+ dependency-version: 2.5.0
521
+ dependency-type: direct:production
522
+ update-type: version-update:semver-minor
523
+ dependency-group: python-packages
524
+ ...
525
+
526
+
527
+ 0.50.2 (2025-06-16)
528
+ -------------------
7
529
  - Chore(deps): bump certifi in the python-packages group.
8
530
  [dependabot[bot]]
9
531
 
@@ -1,3 +1,33 @@
1
+ Metadata-Version: 2.4
2
+ Name: github-backup
3
+ Version: 0.51.0
4
+ Summary: backup a github user or organization
5
+ Home-page: http://github.com/josegonzalez/python-github-backup
6
+ Author: Jose Diaz-Gonzalez
7
+ Author-email: github-backup@josediazgonzalez.com
8
+ License: MIT
9
+ Classifier: Development Status :: 5 - Production/Stable
10
+ Classifier: Topic :: System :: Archiving :: Backup
11
+ Classifier: License :: OSI Approved :: MIT License
12
+ Classifier: Programming Language :: Python :: 3.10
13
+ Classifier: Programming Language :: Python :: 3.11
14
+ Classifier: Programming Language :: Python :: 3.12
15
+ Classifier: Programming Language :: Python :: 3.13
16
+ Classifier: Programming Language :: Python :: 3.14
17
+ Requires-Python: >=3.10
18
+ Description-Content-Type: text/x-rst
19
+ License-File: LICENSE.txt
20
+ Dynamic: author
21
+ Dynamic: author-email
22
+ Dynamic: classifier
23
+ Dynamic: description
24
+ Dynamic: description-content-type
25
+ Dynamic: home-page
26
+ Dynamic: license
27
+ Dynamic: license-file
28
+ Dynamic: requires-python
29
+ Dynamic: summary
30
+
1
31
  =============
2
32
  github-backup
3
33
  =============
@@ -9,8 +39,8 @@ The package can be used to backup an *entire* `Github <https://github.com/>`_ or
9
39
  Requirements
10
40
  ============
11
41
 
42
+ - Python 3.10 or higher
12
43
  - GIT 1.9+
13
- - Python
14
44
 
15
45
  Installation
16
46
  ============
@@ -50,7 +80,7 @@ CLI Help output::
50
80
  [--keychain-name OSX_KEYCHAIN_ITEM_NAME]
51
81
  [--keychain-account OSX_KEYCHAIN_ITEM_ACCOUNT]
52
82
  [--releases] [--latest-releases NUMBER_OF_LATEST_RELEASES]
53
- [--skip-prerelease] [--assets]
83
+ [--skip-prerelease] [--assets] [--attachments]
54
84
  [--exclude [REPOSITORY [REPOSITORY ...]]
55
85
  [--throttle-limit THROTTLE_LIMIT] [--throttle-pause THROTTLE_PAUSE]
56
86
  USER
@@ -133,6 +163,9 @@ CLI Help output::
133
163
  --skip-prerelease skip prerelease and draft versions; only applies if including releases
134
164
  --assets include assets alongside release information; only
135
165
  applies if including releases
166
+ --attachments download user-attachments from issues and pull requests
167
+ to issues/attachments/{issue_number}/ and
168
+ pulls/attachments/{pull_number}/ directories
136
169
  --exclude [REPOSITORY [REPOSITORY ...]]
137
170
  names of repositories to exclude from backup.
138
171
  --throttle-limit THROTTLE_LIMIT
@@ -213,6 +246,29 @@ When you use the ``--lfs`` option, you will need to make sure you have Git LFS i
213
246
  Instructions on how to do this can be found on https://git-lfs.github.com.
214
247
 
215
248
 
249
+ About Attachments
250
+ -----------------
251
+
252
+ When you use the ``--attachments`` option with ``--issues`` or ``--pulls``, the tool will download user-uploaded attachments (images, videos, documents, etc.) from issue and pull request descriptions and comments. In some circumstances attachments contain valuable data related to the topic, and without their backup important information or context might be lost inadvertently.
253
+
254
+ Attachments are saved to ``issues/attachments/{issue_number}/`` and ``pulls/attachments/{pull_number}/`` directories, where ``{issue_number}`` is the GitHub issue number (e.g., issue #123 saves to ``issues/attachments/123/``). Each attachment directory contains:
255
+
256
+ - The downloaded attachment files (named by their GitHub identifier with appropriate file extensions)
257
+ - If multiple attachments have the same filename, conflicts are resolved with numeric suffixes (e.g., ``report.pdf``, ``report_1.pdf``, ``report_2.pdf``)
258
+ - A ``manifest.json`` file documenting all downloads, including URLs, file metadata, and download status
259
+
260
+ The tool automatically extracts file extensions from HTTP headers to ensure files can be more easily opened by your operating system.
261
+
262
+ **Supported URL formats:**
263
+
264
+ - Modern: ``github.com/user-attachments/{assets,files}/*``
265
+ - Legacy: ``user-images.githubusercontent.com/*`` and ``private-user-images.githubusercontent.com/*``
266
+ - Repo files: ``github.com/{owner}/{repo}/files/*`` (filtered to current repository)
267
+ - Repo assets: ``github.com/{owner}/{repo}/assets/*`` (filtered to current repository)
268
+
269
+ **Repository filtering** for repo files/assets handles renamed and transferred repositories gracefully. URLs are included if they either match the current repository name directly, or redirect to it (e.g., ``willmcgugan/rich`` redirects to ``Textualize/rich`` after transfer).
270
+
271
+
216
272
  Run in Docker container
217
273
  -----------------------
218
274
 
@@ -303,7 +359,7 @@ Quietly and incrementally backup useful Github user data (public and private rep
303
359
  export FINE_ACCESS_TOKEN=SOME-GITHUB-TOKEN
304
360
  GH_USER=YOUR-GITHUB-USER
305
361
 
306
- github-backup -f $FINE_ACCESS_TOKEN --prefer-ssh -o ~/github-backup/ -l error -P -i --all-starred --starred --watched --followers --following --issues --issue-comments --issue-events --pulls --pull-comments --pull-commits --labels --milestones --repositories --wikis --releases --assets --pull-details --gists --starred-gists $GH_USER
362
+ github-backup -f $FINE_ACCESS_TOKEN --prefer-ssh -o ~/github-backup/ -l error -P -i --all-starred --starred --watched --followers --following --issues --issue-comments --issue-events --pulls --pull-comments --pull-commits --labels --milestones --repositories --wikis --releases --assets --attachments --pull-details --gists --starred-gists $GH_USER
307
363
 
308
364
  Debug an error/block or incomplete backup into a temporary directory. Omit "incremental" to fill a previous incomplete backup. ::
309
365