github-backup 0.53.0__tar.gz → 0.54.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 (23) hide show
  1. {github_backup-0.53.0 → github_backup-0.54.0}/CHANGES.rst +16 -1
  2. {github_backup-0.53.0/github_backup.egg-info → github_backup-0.54.0}/PKG-INFO +26 -2
  3. {github_backup-0.53.0 → github_backup-0.54.0}/README +25 -1
  4. {github_backup-0.53.0 → github_backup-0.54.0}/README.rst +25 -1
  5. {github_backup-0.53.0 → github_backup-0.54.0}/bin/github-backup +14 -3
  6. github_backup-0.54.0/github_backup/__init__.py +1 -0
  7. {github_backup-0.53.0 → github_backup-0.54.0/github_backup.egg-info}/PKG-INFO +26 -2
  8. github_backup-0.53.0/github_backup/__init__.py +0 -1
  9. {github_backup-0.53.0 → github_backup-0.54.0}/LICENSE.txt +0 -0
  10. {github_backup-0.53.0 → github_backup-0.54.0}/MANIFEST.in +0 -0
  11. {github_backup-0.53.0 → github_backup-0.54.0}/github_backup/github_backup.py +0 -0
  12. {github_backup-0.53.0 → github_backup-0.54.0}/github_backup.egg-info/SOURCES.txt +0 -0
  13. {github_backup-0.53.0 → github_backup-0.54.0}/github_backup.egg-info/dependency_links.txt +0 -0
  14. {github_backup-0.53.0 → github_backup-0.54.0}/github_backup.egg-info/top_level.txt +0 -0
  15. {github_backup-0.53.0 → github_backup-0.54.0}/github_backup.egg-info/zip-safe +0 -0
  16. {github_backup-0.53.0 → github_backup-0.54.0}/release-requirements.txt +0 -0
  17. {github_backup-0.53.0 → github_backup-0.54.0}/requirements.txt +0 -0
  18. {github_backup-0.53.0 → github_backup-0.54.0}/setup.cfg +0 -0
  19. {github_backup-0.53.0 → github_backup-0.54.0}/setup.py +0 -0
  20. {github_backup-0.53.0 → github_backup-0.54.0}/tests/test_attachments.py +0 -0
  21. {github_backup-0.53.0 → github_backup-0.54.0}/tests/test_http_451.py +0 -0
  22. {github_backup-0.53.0 → github_backup-0.54.0}/tests/test_json_dump_if_changed.py +0 -0
  23. {github_backup-0.53.0 → github_backup-0.54.0}/tests/test_pagination.py +0 -0
@@ -1,10 +1,25 @@
1
1
  Changelog
2
2
  =========
3
3
 
4
- 0.53.0 (2025-11-30)
4
+ 0.54.0 (2025-12-03)
5
5
  -------------------
6
6
  ------------------------
7
7
 
8
+ Fix
9
+ ~~~
10
+ - Send INFO/DEBUG to stdout, WARNING/ERROR to stderr. [Rodos]
11
+
12
+ Fixes #182
13
+
14
+ Other
15
+ ~~~~~
16
+ - Docs: update README testing section and add fetch vs pull explanation.
17
+ [Rodos]
18
+
19
+
20
+ 0.53.0 (2025-11-30)
21
+ -------------------
22
+
8
23
  Fix
9
24
  ~~~
10
25
  - Case-sensitive username filtering causing silent backup failures.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: github-backup
3
- Version: 0.53.0
3
+ Version: 0.54.0
4
4
  Summary: backup a github user or organization
5
5
  Home-page: http://github.com/josegonzalez/python-github-backup
6
6
  Author: Jose Diaz-Gonzalez
@@ -338,6 +338,25 @@ Skip existing on incomplete backups
338
338
  The ``--skip-existing`` argument will skip a backup if the directory already exists, even if the backup in that directory failed (perhaps due to a blocking error). This may result in unexpected missing data in a regular backup.
339
339
 
340
340
 
341
+ Updates use fetch, not pull
342
+ ---------------------------
343
+
344
+ When updating an existing repository backup, ``github-backup`` uses ``git fetch`` rather than ``git pull``. This is intentional - a backup tool should reliably download data without risk of failure. Using ``git pull`` would require handling merge conflicts, which adds complexity and could cause backups to fail unexpectedly.
345
+
346
+ With fetch, **all branches and commits are downloaded** safely into remote-tracking branches. The working directory files won't change, but your backup is complete.
347
+
348
+ If you look at files directly (e.g., ``cat README.md``), you'll see the old content. The new data is in the remote-tracking branches (confusingly named "remote" but stored locally). To view or use the latest files::
349
+
350
+ git show origin/main:README.md # view a file
351
+ git merge origin/main # update working directory
352
+
353
+ All branches are backed up as remote refs (``origin/main``, ``origin/feature-branch``, etc.).
354
+
355
+ If you want to browse files directly without merging, consider using ``--bare`` which skips the working directory entirely - the backup is just the git data.
356
+
357
+ See `#269 <https://github.com/josegonzalez/python-github-backup/issues/269>`_ for more discussion.
358
+
359
+
341
360
  Github Backup Examples
342
361
  ======================
343
362
 
@@ -387,7 +406,12 @@ A huge thanks to all the contibuters!
387
406
  Testing
388
407
  -------
389
408
 
390
- This project currently contains no unit tests. To run linting::
409
+ To run the test suite::
410
+
411
+ pip install pytest
412
+ pytest
413
+
414
+ To run linting::
391
415
 
392
416
  pip install flake8
393
417
  flake8 --ignore=E501
@@ -308,6 +308,25 @@ Skip existing on incomplete backups
308
308
  The ``--skip-existing`` argument will skip a backup if the directory already exists, even if the backup in that directory failed (perhaps due to a blocking error). This may result in unexpected missing data in a regular backup.
309
309
 
310
310
 
311
+ Updates use fetch, not pull
312
+ ---------------------------
313
+
314
+ When updating an existing repository backup, ``github-backup`` uses ``git fetch`` rather than ``git pull``. This is intentional - a backup tool should reliably download data without risk of failure. Using ``git pull`` would require handling merge conflicts, which adds complexity and could cause backups to fail unexpectedly.
315
+
316
+ With fetch, **all branches and commits are downloaded** safely into remote-tracking branches. The working directory files won't change, but your backup is complete.
317
+
318
+ If you look at files directly (e.g., ``cat README.md``), you'll see the old content. The new data is in the remote-tracking branches (confusingly named "remote" but stored locally). To view or use the latest files::
319
+
320
+ git show origin/main:README.md # view a file
321
+ git merge origin/main # update working directory
322
+
323
+ All branches are backed up as remote refs (``origin/main``, ``origin/feature-branch``, etc.).
324
+
325
+ If you want to browse files directly without merging, consider using ``--bare`` which skips the working directory entirely - the backup is just the git data.
326
+
327
+ See `#269 <https://github.com/josegonzalez/python-github-backup/issues/269>`_ for more discussion.
328
+
329
+
311
330
  Github Backup Examples
312
331
  ======================
313
332
 
@@ -357,7 +376,12 @@ A huge thanks to all the contibuters!
357
376
  Testing
358
377
  -------
359
378
 
360
- This project currently contains no unit tests. To run linting::
379
+ To run the test suite::
380
+
381
+ pip install pytest
382
+ pytest
383
+
384
+ To run linting::
361
385
 
362
386
  pip install flake8
363
387
  flake8 --ignore=E501
@@ -308,6 +308,25 @@ Skip existing on incomplete backups
308
308
  The ``--skip-existing`` argument will skip a backup if the directory already exists, even if the backup in that directory failed (perhaps due to a blocking error). This may result in unexpected missing data in a regular backup.
309
309
 
310
310
 
311
+ Updates use fetch, not pull
312
+ ---------------------------
313
+
314
+ When updating an existing repository backup, ``github-backup`` uses ``git fetch`` rather than ``git pull``. This is intentional - a backup tool should reliably download data without risk of failure. Using ``git pull`` would require handling merge conflicts, which adds complexity and could cause backups to fail unexpectedly.
315
+
316
+ With fetch, **all branches and commits are downloaded** safely into remote-tracking branches. The working directory files won't change, but your backup is complete.
317
+
318
+ If you look at files directly (e.g., ``cat README.md``), you'll see the old content. The new data is in the remote-tracking branches (confusingly named "remote" but stored locally). To view or use the latest files::
319
+
320
+ git show origin/main:README.md # view a file
321
+ git merge origin/main # update working directory
322
+
323
+ All branches are backed up as remote refs (``origin/main``, ``origin/feature-branch``, etc.).
324
+
325
+ If you want to browse files directly without merging, consider using ``--bare`` which skips the working directory entirely - the backup is just the git data.
326
+
327
+ See `#269 <https://github.com/josegonzalez/python-github-backup/issues/269>`_ for more discussion.
328
+
329
+
311
330
  Github Backup Examples
312
331
  ======================
313
332
 
@@ -357,7 +376,12 @@ A huge thanks to all the contibuters!
357
376
  Testing
358
377
  -------
359
378
 
360
- This project currently contains no unit tests. To run linting::
379
+ To run the test suite::
380
+
381
+ pip install pytest
382
+ pytest
383
+
384
+ To run linting::
361
385
 
362
386
  pip install flake8
363
387
  flake8 --ignore=E501
@@ -16,12 +16,23 @@ from github_backup.github_backup import (
16
16
  retrieve_repositories,
17
17
  )
18
18
 
19
- logging.basicConfig(
20
- format="%(asctime)s.%(msecs)03d: %(message)s",
19
+ # INFO and DEBUG go to stdout, WARNING and above go to stderr
20
+ log_format = logging.Formatter(
21
+ fmt="%(asctime)s.%(msecs)03d: %(message)s",
21
22
  datefmt="%Y-%m-%dT%H:%M:%S",
22
- level=logging.INFO,
23
23
  )
24
24
 
25
+ stdout_handler = logging.StreamHandler(sys.stdout)
26
+ stdout_handler.setLevel(logging.DEBUG)
27
+ stdout_handler.addFilter(lambda r: r.levelno < logging.WARNING)
28
+ stdout_handler.setFormatter(log_format)
29
+
30
+ stderr_handler = logging.StreamHandler(sys.stderr)
31
+ stderr_handler.setLevel(logging.WARNING)
32
+ stderr_handler.setFormatter(log_format)
33
+
34
+ logging.basicConfig(level=logging.INFO, handlers=[stdout_handler, stderr_handler])
35
+
25
36
 
26
37
  def main():
27
38
  args = parse_args()
@@ -0,0 +1 @@
1
+ __version__ = "0.54.0"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: github-backup
3
- Version: 0.53.0
3
+ Version: 0.54.0
4
4
  Summary: backup a github user or organization
5
5
  Home-page: http://github.com/josegonzalez/python-github-backup
6
6
  Author: Jose Diaz-Gonzalez
@@ -338,6 +338,25 @@ Skip existing on incomplete backups
338
338
  The ``--skip-existing`` argument will skip a backup if the directory already exists, even if the backup in that directory failed (perhaps due to a blocking error). This may result in unexpected missing data in a regular backup.
339
339
 
340
340
 
341
+ Updates use fetch, not pull
342
+ ---------------------------
343
+
344
+ When updating an existing repository backup, ``github-backup`` uses ``git fetch`` rather than ``git pull``. This is intentional - a backup tool should reliably download data without risk of failure. Using ``git pull`` would require handling merge conflicts, which adds complexity and could cause backups to fail unexpectedly.
345
+
346
+ With fetch, **all branches and commits are downloaded** safely into remote-tracking branches. The working directory files won't change, but your backup is complete.
347
+
348
+ If you look at files directly (e.g., ``cat README.md``), you'll see the old content. The new data is in the remote-tracking branches (confusingly named "remote" but stored locally). To view or use the latest files::
349
+
350
+ git show origin/main:README.md # view a file
351
+ git merge origin/main # update working directory
352
+
353
+ All branches are backed up as remote refs (``origin/main``, ``origin/feature-branch``, etc.).
354
+
355
+ If you want to browse files directly without merging, consider using ``--bare`` which skips the working directory entirely - the backup is just the git data.
356
+
357
+ See `#269 <https://github.com/josegonzalez/python-github-backup/issues/269>`_ for more discussion.
358
+
359
+
341
360
  Github Backup Examples
342
361
  ======================
343
362
 
@@ -387,7 +406,12 @@ A huge thanks to all the contibuters!
387
406
  Testing
388
407
  -------
389
408
 
390
- This project currently contains no unit tests. To run linting::
409
+ To run the test suite::
410
+
411
+ pip install pytest
412
+ pytest
413
+
414
+ To run linting::
391
415
 
392
416
  pip install flake8
393
417
  flake8 --ignore=E501
@@ -1 +0,0 @@
1
- __version__ = "0.53.0"
File without changes
File without changes