mirror of
https://github.com/josegonzalez/python-github-backup.git
synced 2025-12-05 16:18:02 +01:00
Compare commits
67 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c92f5ef0f2 | ||
|
|
095b712a77 | ||
|
|
3a4aebbcfe | ||
|
|
e75021db80 | ||
|
|
0f34ecb77d | ||
|
|
20e4d385a5 | ||
|
|
a49322cf7d | ||
|
|
332c9b586a | ||
|
|
09bf9275d1 | ||
|
|
fcf21f7a2e | ||
|
|
36812a332b | ||
|
|
0e0197149e | ||
|
|
eb545c1c2f | ||
|
|
2e72797984 | ||
|
|
68fe29d1e1 | ||
|
|
3dc3691770 | ||
|
|
5b0608ce14 | ||
|
|
1ce8455860 | ||
|
|
dcb89a5c33 | ||
|
|
b0bfffde1a | ||
|
|
0f3aaa6fc2 | ||
|
|
c39ec9c549 | ||
|
|
e981ce3ff9 | ||
|
|
22d8f8e649 | ||
|
|
aaefac1a66 | ||
|
|
cb66375e1e | ||
|
|
24d7aa83df | ||
|
|
c8c71239c7 | ||
|
|
6ca8030648 | ||
|
|
53f6650f61 | ||
|
|
548a2ec405 | ||
|
|
871d69b99a | ||
|
|
ca3c4fa64b | ||
|
|
0846e7d8e5 | ||
|
|
503444359d | ||
|
|
04c70ce277 | ||
|
|
e774c70275 | ||
|
|
ba46cb87e8 | ||
|
|
883407f8ca | ||
|
|
aacb252e57 | ||
|
|
2623167110 | ||
|
|
f6ad296730 | ||
|
|
c8eef58d76 | ||
|
|
8eb154a540 | ||
|
|
2e9db92b68 | ||
|
|
09bbcfc7b1 | ||
|
|
4e14f5a2c6 | ||
|
|
b474e1654f | ||
|
|
71d70265cc | ||
|
|
2309b0cb76 | ||
|
|
1e14a4eecd | ||
|
|
56d3fd75bf | ||
|
|
c3e470b34e | ||
|
|
4948178a63 | ||
|
|
88de80c480 | ||
|
|
15eeff7879 | ||
|
|
4bb71db468 | ||
|
|
17af2cbc28 | ||
|
|
e0d66daadb | ||
|
|
1971c97b5d | ||
|
|
b1b3df692d | ||
|
|
8d7311efbf | ||
|
|
8449d6352d | ||
|
|
d8c228c83e | ||
|
|
4a134ae2ec | ||
|
|
5cb7c6ad2e | ||
|
|
f325daa875 |
4
.github/workflows/automatic-release.yml
vendored
4
.github/workflows/automatic-release.yml
vendored
@@ -15,7 +15,7 @@ on:
|
|||||||
jobs:
|
jobs:
|
||||||
release:
|
release:
|
||||||
name: Release
|
name: Release
|
||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-24.04
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
@@ -29,7 +29,7 @@ jobs:
|
|||||||
- name: Setup Python
|
- name: Setup Python
|
||||||
uses: actions/setup-python@v5
|
uses: actions/setup-python@v5
|
||||||
with:
|
with:
|
||||||
python-version: '3.8'
|
python-version: '3.12'
|
||||||
- name: Install prerequisites
|
- name: Install prerequisites
|
||||||
run: pip install -r release-requirements.txt
|
run: pip install -r release-requirements.txt
|
||||||
- name: Execute release
|
- name: Execute release
|
||||||
|
|||||||
2
.github/workflows/docker.yml
vendored
2
.github/workflows/docker.yml
vendored
@@ -68,7 +68,7 @@ jobs:
|
|||||||
type=raw,value=latest,enable=${{ github.ref == format('refs/heads/{0}', 'main') }}
|
type=raw,value=latest,enable=${{ github.ref == format('refs/heads/{0}', 'main') }}
|
||||||
|
|
||||||
- name: Build and push Docker image
|
- name: Build and push Docker image
|
||||||
uses: docker/build-push-action@v5
|
uses: docker/build-push-action@v6
|
||||||
with:
|
with:
|
||||||
context: .
|
context: .
|
||||||
push: true
|
push: true
|
||||||
|
|||||||
4
.github/workflows/lint.yml
vendored
4
.github/workflows/lint.yml
vendored
@@ -14,7 +14,7 @@ on:
|
|||||||
jobs:
|
jobs:
|
||||||
lint:
|
lint:
|
||||||
name: lint
|
name: lint
|
||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-24.04
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
@@ -24,7 +24,7 @@ jobs:
|
|||||||
- name: Setup Python
|
- name: Setup Python
|
||||||
uses: actions/setup-python@v5
|
uses: actions/setup-python@v5
|
||||||
with:
|
with:
|
||||||
python-version: "3.8"
|
python-version: "3.12"
|
||||||
cache: "pip"
|
cache: "pip"
|
||||||
- run: pip install -r release-requirements.txt && pip install wheel
|
- run: pip install -r release-requirements.txt && pip install wheel
|
||||||
- run: flake8 --ignore=E501,E203,W503
|
- run: flake8 --ignore=E501,E203,W503
|
||||||
|
|||||||
683
CHANGES.rst
683
CHANGES.rst
@@ -1,9 +1,690 @@
|
|||||||
Changelog
|
Changelog
|
||||||
=========
|
=========
|
||||||
|
|
||||||
0.45.2 (2024-05-04)
|
0.49.0 (2025-02-01)
|
||||||
-------------------
|
-------------------
|
||||||
------------------------
|
------------------------
|
||||||
|
- Convert timestamp to string, although maybe the other way around would
|
||||||
|
be better ... [Honza Maly]
|
||||||
|
- Implementing incremental by files, safer version of incremental
|
||||||
|
backup. [Honza Maly]
|
||||||
|
- Chore(deps): bump the python-packages group across 1 directory with 7
|
||||||
|
updates. [dependabot[bot]]
|
||||||
|
|
||||||
|
Bumps the python-packages group with 7 updates in the / directory:
|
||||||
|
|
||||||
|
| Package | From | To |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| [autopep8](https://github.com/hhatto/autopep8) | `2.3.1` | `2.3.2` |
|
||||||
|
| [black](https://github.com/psf/black) | `24.10.0` | `25.1.0` |
|
||||||
|
| [certifi](https://github.com/certifi/python-certifi) | `2024.12.14` | `2025.1.31` |
|
||||||
|
| [importlib-metadata](https://github.com/python/importlib_metadata) | `8.5.0` | `8.6.1` |
|
||||||
|
| [more-itertools](https://github.com/more-itertools/more-itertools) | `10.5.0` | `10.6.0` |
|
||||||
|
| [setuptools](https://github.com/pypa/setuptools) | `75.7.0` | `75.8.0` |
|
||||||
|
| [twine](https://github.com/pypa/twine) | `6.0.1` | `6.1.0` |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Updates `autopep8` from 2.3.1 to 2.3.2
|
||||||
|
- [Release notes](https://github.com/hhatto/autopep8/releases)
|
||||||
|
- [Commits](https://github.com/hhatto/autopep8/compare/v2.3.1...v2.3.2)
|
||||||
|
|
||||||
|
Updates `black` from 24.10.0 to 25.1.0
|
||||||
|
- [Release notes](https://github.com/psf/black/releases)
|
||||||
|
- [Changelog](https://github.com/psf/black/blob/main/CHANGES.md)
|
||||||
|
- [Commits](https://github.com/psf/black/compare/24.10.0...25.1.0)
|
||||||
|
|
||||||
|
Updates `certifi` from 2024.12.14 to 2025.1.31
|
||||||
|
- [Commits](https://github.com/certifi/python-certifi/compare/2024.12.14...2025.01.31)
|
||||||
|
|
||||||
|
Updates `importlib-metadata` from 8.5.0 to 8.6.1
|
||||||
|
- [Release notes](https://github.com/python/importlib_metadata/releases)
|
||||||
|
- [Changelog](https://github.com/python/importlib_metadata/blob/main/NEWS.rst)
|
||||||
|
- [Commits](https://github.com/python/importlib_metadata/compare/v8.5.0...v8.6.1)
|
||||||
|
|
||||||
|
Updates `more-itertools` from 10.5.0 to 10.6.0
|
||||||
|
- [Release notes](https://github.com/more-itertools/more-itertools/releases)
|
||||||
|
- [Commits](https://github.com/more-itertools/more-itertools/compare/v10.5.0...v10.6.0)
|
||||||
|
|
||||||
|
Updates `setuptools` from 75.7.0 to 75.8.0
|
||||||
|
- [Release notes](https://github.com/pypa/setuptools/releases)
|
||||||
|
- [Changelog](https://github.com/pypa/setuptools/blob/main/NEWS.rst)
|
||||||
|
- [Commits](https://github.com/pypa/setuptools/compare/v75.7.0...v75.8.0)
|
||||||
|
|
||||||
|
Updates `twine` from 6.0.1 to 6.1.0
|
||||||
|
- [Release notes](https://github.com/pypa/twine/releases)
|
||||||
|
- [Changelog](https://github.com/pypa/twine/blob/main/docs/changelog.rst)
|
||||||
|
- [Commits](https://github.com/pypa/twine/compare/6.0.1...6.1.0)
|
||||||
|
|
||||||
|
---
|
||||||
|
updated-dependencies:
|
||||||
|
- dependency-name: autopep8
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-patch
|
||||||
|
dependency-group: python-packages
|
||||||
|
- dependency-name: black
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-major
|
||||||
|
dependency-group: python-packages
|
||||||
|
- dependency-name: certifi
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-major
|
||||||
|
dependency-group: python-packages
|
||||||
|
- dependency-name: importlib-metadata
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-minor
|
||||||
|
dependency-group: python-packages
|
||||||
|
- dependency-name: more-itertools
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-minor
|
||||||
|
dependency-group: python-packages
|
||||||
|
- dependency-name: setuptools
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-minor
|
||||||
|
dependency-group: python-packages
|
||||||
|
- dependency-name: twine
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-minor
|
||||||
|
dependency-group: python-packages
|
||||||
|
...
|
||||||
|
- Chore(deps): bump the python-packages group across 1 directory with 2
|
||||||
|
updates. [dependabot[bot]]
|
||||||
|
|
||||||
|
Bumps the python-packages group with 2 updates in the / directory: [pygments](https://github.com/pygments/pygments) and [setuptools](https://github.com/pypa/setuptools).
|
||||||
|
|
||||||
|
|
||||||
|
Updates `pygments` from 2.18.0 to 2.19.1
|
||||||
|
- [Release notes](https://github.com/pygments/pygments/releases)
|
||||||
|
- [Changelog](https://github.com/pygments/pygments/blob/master/CHANGES)
|
||||||
|
- [Commits](https://github.com/pygments/pygments/compare/2.18.0...2.19.1)
|
||||||
|
|
||||||
|
Updates `setuptools` from 75.6.0 to 75.7.0
|
||||||
|
- [Release notes](https://github.com/pypa/setuptools/releases)
|
||||||
|
- [Changelog](https://github.com/pypa/setuptools/blob/main/NEWS.rst)
|
||||||
|
- [Commits](https://github.com/pypa/setuptools/compare/v75.6.0...v75.7.0)
|
||||||
|
|
||||||
|
---
|
||||||
|
updated-dependencies:
|
||||||
|
- dependency-name: pygments
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-minor
|
||||||
|
dependency-group: python-packages
|
||||||
|
- dependency-name: setuptools
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-minor
|
||||||
|
dependency-group: python-packages
|
||||||
|
...
|
||||||
|
|
||||||
|
|
||||||
|
0.48.0 (2025-01-04)
|
||||||
|
-------------------
|
||||||
|
- Chore: reformat file to fix lint issues. [Jose Diaz-Gonzalez]
|
||||||
|
- Chore(deps): bump the python-packages group across 1 directory with 4
|
||||||
|
updates. [dependabot[bot]]
|
||||||
|
|
||||||
|
Bumps the python-packages group with 4 updates in the / directory: [charset-normalizer](https://github.com/jawah/charset_normalizer), [click](https://github.com/pallets/click), [keyring](https://github.com/jaraco/keyring) and [urllib3](https://github.com/urllib3/urllib3).
|
||||||
|
|
||||||
|
|
||||||
|
Updates `charset-normalizer` from 3.4.0 to 3.4.1
|
||||||
|
- [Release notes](https://github.com/jawah/charset_normalizer/releases)
|
||||||
|
- [Changelog](https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md)
|
||||||
|
- [Commits](https://github.com/jawah/charset_normalizer/compare/3.4.0...3.4.1)
|
||||||
|
|
||||||
|
Updates `click` from 8.1.7 to 8.1.8
|
||||||
|
- [Release notes](https://github.com/pallets/click/releases)
|
||||||
|
- [Changelog](https://github.com/pallets/click/blob/main/CHANGES.rst)
|
||||||
|
- [Commits](https://github.com/pallets/click/compare/8.1.7...8.1.8)
|
||||||
|
|
||||||
|
Updates `keyring` from 25.5.0 to 25.6.0
|
||||||
|
- [Release notes](https://github.com/jaraco/keyring/releases)
|
||||||
|
- [Changelog](https://github.com/jaraco/keyring/blob/main/NEWS.rst)
|
||||||
|
- [Commits](https://github.com/jaraco/keyring/compare/v25.5.0...v25.6.0)
|
||||||
|
|
||||||
|
Updates `urllib3` from 2.2.3 to 2.3.0
|
||||||
|
- [Release notes](https://github.com/urllib3/urllib3/releases)
|
||||||
|
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
|
||||||
|
- [Commits](https://github.com/urllib3/urllib3/compare/2.2.3...2.3.0)
|
||||||
|
|
||||||
|
---
|
||||||
|
updated-dependencies:
|
||||||
|
- dependency-name: charset-normalizer
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-patch
|
||||||
|
dependency-group: python-packages
|
||||||
|
- dependency-name: click
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-patch
|
||||||
|
dependency-group: python-packages
|
||||||
|
- dependency-name: keyring
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-minor
|
||||||
|
dependency-group: python-packages
|
||||||
|
- dependency-name: urllib3
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-minor
|
||||||
|
dependency-group: python-packages
|
||||||
|
...
|
||||||
|
- Fix typo README.rst: --starred-gists that should be --gists. [Michael
|
||||||
|
D. Adams]
|
||||||
|
- Remove fixed release issue from known blocking errors. [Ethan White]
|
||||||
|
|
||||||
|
The issue with --release producing errors documented in #209 (the linked issue) and #234 appears to have been fixed in #257.
|
||||||
|
|
||||||
|
This change removes the associated warning from the README.
|
||||||
|
- Chore(deps): bump certifi in the python-packages group.
|
||||||
|
[dependabot[bot]]
|
||||||
|
|
||||||
|
Bumps the python-packages group with 1 update: [certifi](https://github.com/certifi/python-certifi).
|
||||||
|
|
||||||
|
|
||||||
|
Updates `certifi` from 2024.8.30 to 2024.12.14
|
||||||
|
- [Commits](https://github.com/certifi/python-certifi/compare/2024.08.30...2024.12.14)
|
||||||
|
|
||||||
|
---
|
||||||
|
updated-dependencies:
|
||||||
|
- dependency-name: certifi
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-minor
|
||||||
|
dependency-group: python-packages
|
||||||
|
...
|
||||||
|
|
||||||
|
|
||||||
|
0.47.0 (2024-12-09)
|
||||||
|
-------------------
|
||||||
|
- Detect empty HTTPS contexts. [John Doe]
|
||||||
|
|
||||||
|
Some users are relying solely on the certifi package to provide their CA certs, as requests does this by default.
|
||||||
|
|
||||||
|
This patch detects this situation and emits a clear warning as well as importing certifi to work around the situation..
|
||||||
|
|
||||||
|
Fixes #162 .
|
||||||
|
- Chore(deps): bump six from 1.16.0 to 1.17.0 in the python-packages
|
||||||
|
group. [dependabot[bot]]
|
||||||
|
|
||||||
|
Bumps the python-packages group with 1 update: [six](https://github.com/benjaminp/six).
|
||||||
|
|
||||||
|
|
||||||
|
Updates `six` from 1.16.0 to 1.17.0
|
||||||
|
- [Changelog](https://github.com/benjaminp/six/blob/main/CHANGES)
|
||||||
|
- [Commits](https://github.com/benjaminp/six/compare/1.16.0...1.17.0)
|
||||||
|
|
||||||
|
---
|
||||||
|
updated-dependencies:
|
||||||
|
- dependency-name: six
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-minor
|
||||||
|
dependency-group: python-packages
|
||||||
|
...
|
||||||
|
- Chore(deps): bump the python-packages group across 1 directory with 20
|
||||||
|
updates. [dependabot[bot]]
|
||||||
|
|
||||||
|
Bumps the python-packages group with 20 updates in the / directory:
|
||||||
|
|
||||||
|
| Package | From | To |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| [black](https://github.com/psf/black) | `24.4.2` | `24.10.0` |
|
||||||
|
| [bleach](https://github.com/mozilla/bleach) | `6.1.0` | `6.2.0` |
|
||||||
|
| [certifi](https://github.com/certifi/python-certifi) | `2024.7.4` | `2024.8.30` |
|
||||||
|
| [charset-normalizer](https://github.com/Ousret/charset_normalizer) | `3.3.2` | `3.4.0` |
|
||||||
|
| [flake8](https://github.com/pycqa/flake8) | `7.1.0` | `7.1.1` |
|
||||||
|
| [idna](https://github.com/kjd/idna) | `3.7` | `3.10` |
|
||||||
|
| [importlib-metadata](https://github.com/python/importlib_metadata) | `7.2.1` | `8.5.0` |
|
||||||
|
| [keyring](https://github.com/jaraco/keyring) | `25.2.1` | `25.5.0` |
|
||||||
|
| [more-itertools](https://github.com/more-itertools/more-itertools) | `10.3.0` | `10.5.0` |
|
||||||
|
| [packaging](https://github.com/pypa/packaging) | `24.1` | `24.2` |
|
||||||
|
| [pkginfo](https://code.launchpad.net/~tseaver/pkginfo/trunk) | `1.11.1` | `1.12.0` |
|
||||||
|
| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.2.2` | `4.3.6` |
|
||||||
|
| [pycodestyle](https://github.com/PyCQA/pycodestyle) | `2.12.0` | `2.12.1` |
|
||||||
|
| [readme-renderer](https://github.com/pypa/readme_renderer) | `43.0` | `44.0` |
|
||||||
|
| [rich](https://github.com/Textualize/rich) | `13.7.1` | `13.9.4` |
|
||||||
|
| [setuptools](https://github.com/pypa/setuptools) | `70.1.1` | `75.6.0` |
|
||||||
|
| [tqdm](https://github.com/tqdm/tqdm) | `4.66.4` | `4.67.1` |
|
||||||
|
| [twine](https://github.com/pypa/twine) | `5.1.0` | `6.0.1` |
|
||||||
|
| [urllib3](https://github.com/urllib3/urllib3) | `2.2.2` | `2.2.3` |
|
||||||
|
| [zipp](https://github.com/jaraco/zipp) | `3.19.2` | `3.21.0` |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Updates `black` from 24.4.2 to 24.10.0
|
||||||
|
- [Release notes](https://github.com/psf/black/releases)
|
||||||
|
- [Changelog](https://github.com/psf/black/blob/main/CHANGES.md)
|
||||||
|
- [Commits](https://github.com/psf/black/compare/24.4.2...24.10.0)
|
||||||
|
|
||||||
|
Updates `bleach` from 6.1.0 to 6.2.0
|
||||||
|
- [Changelog](https://github.com/mozilla/bleach/blob/main/CHANGES)
|
||||||
|
- [Commits](https://github.com/mozilla/bleach/compare/v6.1.0...v6.2.0)
|
||||||
|
|
||||||
|
Updates `certifi` from 2024.7.4 to 2024.8.30
|
||||||
|
- [Commits](https://github.com/certifi/python-certifi/compare/2024.07.04...2024.08.30)
|
||||||
|
|
||||||
|
Updates `charset-normalizer` from 3.3.2 to 3.4.0
|
||||||
|
- [Release notes](https://github.com/Ousret/charset_normalizer/releases)
|
||||||
|
- [Changelog](https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md)
|
||||||
|
- [Commits](https://github.com/Ousret/charset_normalizer/compare/3.3.2...3.4.0)
|
||||||
|
|
||||||
|
Updates `flake8` from 7.1.0 to 7.1.1
|
||||||
|
- [Commits](https://github.com/pycqa/flake8/compare/7.1.0...7.1.1)
|
||||||
|
|
||||||
|
Updates `idna` from 3.7 to 3.10
|
||||||
|
- [Release notes](https://github.com/kjd/idna/releases)
|
||||||
|
- [Changelog](https://github.com/kjd/idna/blob/master/HISTORY.rst)
|
||||||
|
- [Commits](https://github.com/kjd/idna/compare/v3.7...v3.10)
|
||||||
|
|
||||||
|
Updates `importlib-metadata` from 7.2.1 to 8.5.0
|
||||||
|
- [Release notes](https://github.com/python/importlib_metadata/releases)
|
||||||
|
- [Changelog](https://github.com/python/importlib_metadata/blob/main/NEWS.rst)
|
||||||
|
- [Commits](https://github.com/python/importlib_metadata/compare/v7.2.1...v8.5.0)
|
||||||
|
|
||||||
|
Updates `keyring` from 25.2.1 to 25.5.0
|
||||||
|
- [Release notes](https://github.com/jaraco/keyring/releases)
|
||||||
|
- [Changelog](https://github.com/jaraco/keyring/blob/main/NEWS.rst)
|
||||||
|
- [Commits](https://github.com/jaraco/keyring/compare/v25.2.1...v25.5.0)
|
||||||
|
|
||||||
|
Updates `more-itertools` from 10.3.0 to 10.5.0
|
||||||
|
- [Release notes](https://github.com/more-itertools/more-itertools/releases)
|
||||||
|
- [Commits](https://github.com/more-itertools/more-itertools/compare/v10.3.0...v10.5.0)
|
||||||
|
|
||||||
|
Updates `packaging` from 24.1 to 24.2
|
||||||
|
- [Release notes](https://github.com/pypa/packaging/releases)
|
||||||
|
- [Changelog](https://github.com/pypa/packaging/blob/main/CHANGELOG.rst)
|
||||||
|
- [Commits](https://github.com/pypa/packaging/compare/24.1...24.2)
|
||||||
|
|
||||||
|
Updates `pkginfo` from 1.11.1 to 1.12.0
|
||||||
|
|
||||||
|
Updates `platformdirs` from 4.2.2 to 4.3.6
|
||||||
|
- [Release notes](https://github.com/tox-dev/platformdirs/releases)
|
||||||
|
- [Changelog](https://github.com/tox-dev/platformdirs/blob/main/CHANGES.rst)
|
||||||
|
- [Commits](https://github.com/tox-dev/platformdirs/compare/4.2.2...4.3.6)
|
||||||
|
|
||||||
|
Updates `pycodestyle` from 2.12.0 to 2.12.1
|
||||||
|
- [Release notes](https://github.com/PyCQA/pycodestyle/releases)
|
||||||
|
- [Changelog](https://github.com/PyCQA/pycodestyle/blob/main/CHANGES.txt)
|
||||||
|
- [Commits](https://github.com/PyCQA/pycodestyle/compare/2.12.0...2.12.1)
|
||||||
|
|
||||||
|
Updates `readme-renderer` from 43.0 to 44.0
|
||||||
|
- [Release notes](https://github.com/pypa/readme_renderer/releases)
|
||||||
|
- [Changelog](https://github.com/pypa/readme_renderer/blob/main/CHANGES.rst)
|
||||||
|
- [Commits](https://github.com/pypa/readme_renderer/compare/43.0...44.0)
|
||||||
|
|
||||||
|
Updates `rich` from 13.7.1 to 13.9.4
|
||||||
|
- [Release notes](https://github.com/Textualize/rich/releases)
|
||||||
|
- [Changelog](https://github.com/Textualize/rich/blob/master/CHANGELOG.md)
|
||||||
|
- [Commits](https://github.com/Textualize/rich/compare/v13.7.1...v13.9.4)
|
||||||
|
|
||||||
|
Updates `setuptools` from 70.1.1 to 75.6.0
|
||||||
|
- [Release notes](https://github.com/pypa/setuptools/releases)
|
||||||
|
- [Changelog](https://github.com/pypa/setuptools/blob/main/NEWS.rst)
|
||||||
|
- [Commits](https://github.com/pypa/setuptools/compare/v70.1.1...v75.6.0)
|
||||||
|
|
||||||
|
Updates `tqdm` from 4.66.4 to 4.67.1
|
||||||
|
- [Release notes](https://github.com/tqdm/tqdm/releases)
|
||||||
|
- [Commits](https://github.com/tqdm/tqdm/compare/v4.66.4...v4.67.1)
|
||||||
|
|
||||||
|
Updates `twine` from 5.1.0 to 6.0.1
|
||||||
|
- [Release notes](https://github.com/pypa/twine/releases)
|
||||||
|
- [Changelog](https://github.com/pypa/twine/blob/main/docs/changelog.rst)
|
||||||
|
- [Commits](https://github.com/pypa/twine/compare/5.1.0...6.0.1)
|
||||||
|
|
||||||
|
Updates `urllib3` from 2.2.2 to 2.2.3
|
||||||
|
- [Release notes](https://github.com/urllib3/urllib3/releases)
|
||||||
|
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
|
||||||
|
- [Commits](https://github.com/urllib3/urllib3/compare/2.2.2...2.2.3)
|
||||||
|
|
||||||
|
Updates `zipp` from 3.19.2 to 3.21.0
|
||||||
|
- [Release notes](https://github.com/jaraco/zipp/releases)
|
||||||
|
- [Changelog](https://github.com/jaraco/zipp/blob/main/NEWS.rst)
|
||||||
|
- [Commits](https://github.com/jaraco/zipp/compare/v3.19.2...v3.21.0)
|
||||||
|
|
||||||
|
---
|
||||||
|
updated-dependencies:
|
||||||
|
- dependency-name: black
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-minor
|
||||||
|
dependency-group: python-packages
|
||||||
|
- dependency-name: bleach
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-minor
|
||||||
|
dependency-group: python-packages
|
||||||
|
- dependency-name: certifi
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-minor
|
||||||
|
dependency-group: python-packages
|
||||||
|
- dependency-name: charset-normalizer
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-minor
|
||||||
|
dependency-group: python-packages
|
||||||
|
- dependency-name: flake8
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-patch
|
||||||
|
dependency-group: python-packages
|
||||||
|
- dependency-name: idna
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-minor
|
||||||
|
dependency-group: python-packages
|
||||||
|
- dependency-name: importlib-metadata
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-major
|
||||||
|
dependency-group: python-packages
|
||||||
|
- dependency-name: keyring
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-minor
|
||||||
|
dependency-group: python-packages
|
||||||
|
- dependency-name: more-itertools
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-minor
|
||||||
|
dependency-group: python-packages
|
||||||
|
- dependency-name: packaging
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-minor
|
||||||
|
dependency-group: python-packages
|
||||||
|
- dependency-name: pkginfo
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-minor
|
||||||
|
dependency-group: python-packages
|
||||||
|
- dependency-name: platformdirs
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-minor
|
||||||
|
dependency-group: python-packages
|
||||||
|
- dependency-name: pycodestyle
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-patch
|
||||||
|
dependency-group: python-packages
|
||||||
|
- dependency-name: readme-renderer
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-major
|
||||||
|
dependency-group: python-packages
|
||||||
|
- dependency-name: rich
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-minor
|
||||||
|
dependency-group: python-packages
|
||||||
|
- dependency-name: setuptools
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-major
|
||||||
|
dependency-group: python-packages
|
||||||
|
- dependency-name: tqdm
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-minor
|
||||||
|
dependency-group: python-packages
|
||||||
|
- dependency-name: twine
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-major
|
||||||
|
dependency-group: python-packages
|
||||||
|
- dependency-name: urllib3
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-patch
|
||||||
|
dependency-group: python-packages
|
||||||
|
- dependency-name: zipp
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-minor
|
||||||
|
dependency-group: python-packages
|
||||||
|
...
|
||||||
|
- KeyError fix with gists. [John Doe]
|
||||||
|
- Fix punctuation in README. [Jakub Wilk]
|
||||||
|
|
||||||
|
|
||||||
|
0.46.0 (2024-09-11)
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
Fix
|
||||||
|
~~~
|
||||||
|
- Do not double encode auth when retrieving release assets. [Jarl
|
||||||
|
Totland]
|
||||||
|
- Add now missing setuptools. [Jose Diaz-Gonzalez]
|
||||||
|
|
||||||
|
Other
|
||||||
|
~~~~~
|
||||||
|
- Git fetch is required even when using lfs. [Louis Parisot]
|
||||||
|
- Upgrade github workflow ubuntu containers to newest LTS. [Albert Wang]
|
||||||
|
- Chore(deps): bump certifi from 2024.6.2 to 2024.7.4. [dependabot[bot]]
|
||||||
|
|
||||||
|
Bumps [certifi](https://github.com/certifi/python-certifi) from 2024.6.2 to 2024.7.4.
|
||||||
|
- [Commits](https://github.com/certifi/python-certifi/compare/2024.06.02...2024.07.04)
|
||||||
|
|
||||||
|
---
|
||||||
|
updated-dependencies:
|
||||||
|
- dependency-name: certifi
|
||||||
|
dependency-type: direct:production
|
||||||
|
...
|
||||||
|
- Chore(deps): bump docker/build-push-action from 5 to 6.
|
||||||
|
[dependabot[bot]]
|
||||||
|
|
||||||
|
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5 to 6.
|
||||||
|
- [Release notes](https://github.com/docker/build-push-action/releases)
|
||||||
|
- [Commits](https://github.com/docker/build-push-action/compare/v5...v6)
|
||||||
|
|
||||||
|
---
|
||||||
|
updated-dependencies:
|
||||||
|
- dependency-name: docker/build-push-action
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-major
|
||||||
|
...
|
||||||
|
- Chore(deps): bump the python-packages group across 1 directory with 3
|
||||||
|
updates. [dependabot[bot]]
|
||||||
|
|
||||||
|
Bumps the python-packages group with 3 updates in the / directory: [autopep8](https://github.com/hhatto/autopep8), [importlib-metadata](https://github.com/python/importlib_metadata) and [setuptools](https://github.com/pypa/setuptools).
|
||||||
|
|
||||||
|
|
||||||
|
Updates `autopep8` from 2.3.0 to 2.3.1
|
||||||
|
- [Release notes](https://github.com/hhatto/autopep8/releases)
|
||||||
|
- [Commits](https://github.com/hhatto/autopep8/compare/v2.3.0...v2.3.1)
|
||||||
|
|
||||||
|
Updates `importlib-metadata` from 7.2.0 to 7.2.1
|
||||||
|
- [Release notes](https://github.com/python/importlib_metadata/releases)
|
||||||
|
- [Changelog](https://github.com/python/importlib_metadata/blob/main/NEWS.rst)
|
||||||
|
- [Commits](https://github.com/python/importlib_metadata/compare/v7.2.0...v7.2.1)
|
||||||
|
|
||||||
|
Updates `setuptools` from 70.1.0 to 70.1.1
|
||||||
|
- [Release notes](https://github.com/pypa/setuptools/releases)
|
||||||
|
- [Changelog](https://github.com/pypa/setuptools/blob/main/NEWS.rst)
|
||||||
|
- [Commits](https://github.com/pypa/setuptools/compare/v70.1.0...v70.1.1)
|
||||||
|
|
||||||
|
---
|
||||||
|
updated-dependencies:
|
||||||
|
- dependency-name: autopep8
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-patch
|
||||||
|
dependency-group: python-packages
|
||||||
|
- dependency-name: importlib-metadata
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-patch
|
||||||
|
dependency-group: python-packages
|
||||||
|
- dependency-name: setuptools
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-patch
|
||||||
|
dependency-group: python-packages
|
||||||
|
...
|
||||||
|
- Chore(deps): bump the python-packages group across 1 directory with 2
|
||||||
|
updates. [dependabot[bot]]
|
||||||
|
|
||||||
|
Bumps the python-packages group with 2 updates in the / directory: [importlib-metadata](https://github.com/python/importlib_metadata) and [setuptools](https://github.com/pypa/setuptools).
|
||||||
|
|
||||||
|
|
||||||
|
Updates `importlib-metadata` from 7.1.0 to 7.2.0
|
||||||
|
- [Release notes](https://github.com/python/importlib_metadata/releases)
|
||||||
|
- [Changelog](https://github.com/python/importlib_metadata/blob/main/NEWS.rst)
|
||||||
|
- [Commits](https://github.com/python/importlib_metadata/compare/v7.1.0...v7.2.0)
|
||||||
|
|
||||||
|
Updates `setuptools` from 70.0.0 to 70.1.0
|
||||||
|
- [Release notes](https://github.com/pypa/setuptools/releases)
|
||||||
|
- [Changelog](https://github.com/pypa/setuptools/blob/main/NEWS.rst)
|
||||||
|
- [Commits](https://github.com/pypa/setuptools/compare/v70.0.0...v70.1.0)
|
||||||
|
|
||||||
|
---
|
||||||
|
updated-dependencies:
|
||||||
|
- dependency-name: importlib-metadata
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-minor
|
||||||
|
dependency-group: python-packages
|
||||||
|
- dependency-name: setuptools
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-minor
|
||||||
|
dependency-group: python-packages
|
||||||
|
...
|
||||||
|
- Chore(deps): bump the python-packages group with 3 updates.
|
||||||
|
[dependabot[bot]]
|
||||||
|
|
||||||
|
Bumps the python-packages group with 3 updates: [autopep8](https://github.com/hhatto/autopep8), [flake8](https://github.com/pycqa/flake8) and [pycodestyle](https://github.com/PyCQA/pycodestyle).
|
||||||
|
|
||||||
|
|
||||||
|
Updates `autopep8` from 2.2.0 to 2.3.0
|
||||||
|
- [Release notes](https://github.com/hhatto/autopep8/releases)
|
||||||
|
- [Commits](https://github.com/hhatto/autopep8/compare/v2.2.0...v2.3.0)
|
||||||
|
|
||||||
|
Updates `flake8` from 7.0.0 to 7.1.0
|
||||||
|
- [Commits](https://github.com/pycqa/flake8/compare/7.0.0...7.1.0)
|
||||||
|
|
||||||
|
Updates `pycodestyle` from 2.11.1 to 2.12.0
|
||||||
|
- [Release notes](https://github.com/PyCQA/pycodestyle/releases)
|
||||||
|
- [Changelog](https://github.com/PyCQA/pycodestyle/blob/main/CHANGES.txt)
|
||||||
|
- [Commits](https://github.com/PyCQA/pycodestyle/compare/2.11.1...2.12.0)
|
||||||
|
|
||||||
|
---
|
||||||
|
updated-dependencies:
|
||||||
|
- dependency-name: autopep8
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-minor
|
||||||
|
dependency-group: python-packages
|
||||||
|
- dependency-name: flake8
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-minor
|
||||||
|
dependency-group: python-packages
|
||||||
|
- dependency-name: pycodestyle
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-minor
|
||||||
|
dependency-group: python-packages
|
||||||
|
...
|
||||||
|
- Chore(deps): bump urllib3 from 2.2.1 to 2.2.2. [dependabot[bot]]
|
||||||
|
|
||||||
|
Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.2.1 to 2.2.2.
|
||||||
|
- [Release notes](https://github.com/urllib3/urllib3/releases)
|
||||||
|
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
|
||||||
|
- [Commits](https://github.com/urllib3/urllib3/compare/2.2.1...2.2.2)
|
||||||
|
|
||||||
|
---
|
||||||
|
updated-dependencies:
|
||||||
|
- dependency-name: urllib3
|
||||||
|
dependency-type: direct:production
|
||||||
|
...
|
||||||
|
- Chore(deps): bump the python-packages group across 1 directory with 7
|
||||||
|
updates. [dependabot[bot]]
|
||||||
|
|
||||||
|
Bumps the python-packages group with 7 updates in the / directory:
|
||||||
|
|
||||||
|
| Package | From | To |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| [autopep8](https://github.com/hhatto/autopep8) | `2.1.1` | `2.2.0` |
|
||||||
|
| [certifi](https://github.com/certifi/python-certifi) | `2024.2.2` | `2024.6.2` |
|
||||||
|
| [more-itertools](https://github.com/more-itertools/more-itertools) | `10.2.0` | `10.3.0` |
|
||||||
|
| [packaging](https://github.com/pypa/packaging) | `24.0` | `24.1` |
|
||||||
|
| [pkginfo](https://code.launchpad.net/~tseaver/pkginfo/trunk) | `1.10.0` | `1.11.1` |
|
||||||
|
| [requests](https://github.com/psf/requests) | `2.32.2` | `2.32.3` |
|
||||||
|
| [zipp](https://github.com/jaraco/zipp) | `3.18.2` | `3.19.2` |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Updates `autopep8` from 2.1.1 to 2.2.0
|
||||||
|
- [Release notes](https://github.com/hhatto/autopep8/releases)
|
||||||
|
- [Commits](https://github.com/hhatto/autopep8/compare/v2.1.1...v2.2.0)
|
||||||
|
|
||||||
|
Updates `certifi` from 2024.2.2 to 2024.6.2
|
||||||
|
- [Commits](https://github.com/certifi/python-certifi/compare/2024.02.02...2024.06.02)
|
||||||
|
|
||||||
|
Updates `more-itertools` from 10.2.0 to 10.3.0
|
||||||
|
- [Release notes](https://github.com/more-itertools/more-itertools/releases)
|
||||||
|
- [Commits](https://github.com/more-itertools/more-itertools/compare/v10.2.0...v10.3.0)
|
||||||
|
|
||||||
|
Updates `packaging` from 24.0 to 24.1
|
||||||
|
- [Release notes](https://github.com/pypa/packaging/releases)
|
||||||
|
- [Changelog](https://github.com/pypa/packaging/blob/main/CHANGELOG.rst)
|
||||||
|
- [Commits](https://github.com/pypa/packaging/compare/24.0...24.1)
|
||||||
|
|
||||||
|
Updates `pkginfo` from 1.10.0 to 1.11.1
|
||||||
|
|
||||||
|
Updates `requests` from 2.32.2 to 2.32.3
|
||||||
|
- [Release notes](https://github.com/psf/requests/releases)
|
||||||
|
- [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md)
|
||||||
|
- [Commits](https://github.com/psf/requests/compare/v2.32.2...v2.32.3)
|
||||||
|
|
||||||
|
Updates `zipp` from 3.18.2 to 3.19.2
|
||||||
|
- [Release notes](https://github.com/jaraco/zipp/releases)
|
||||||
|
- [Changelog](https://github.com/jaraco/zipp/blob/main/NEWS.rst)
|
||||||
|
- [Commits](https://github.com/jaraco/zipp/compare/v3.18.2...v3.19.2)
|
||||||
|
|
||||||
|
---
|
||||||
|
updated-dependencies:
|
||||||
|
- dependency-name: autopep8
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-minor
|
||||||
|
dependency-group: python-packages
|
||||||
|
- dependency-name: certifi
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-minor
|
||||||
|
dependency-group: python-packages
|
||||||
|
- dependency-name: more-itertools
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-minor
|
||||||
|
dependency-group: python-packages
|
||||||
|
- dependency-name: packaging
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-minor
|
||||||
|
dependency-group: python-packages
|
||||||
|
- dependency-name: pkginfo
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-minor
|
||||||
|
dependency-group: python-packages
|
||||||
|
- dependency-name: requests
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-patch
|
||||||
|
dependency-group: python-packages
|
||||||
|
- dependency-name: zipp
|
||||||
|
dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-minor
|
||||||
|
dependency-group: python-packages
|
||||||
|
...
|
||||||
|
- --- updated-dependencies: - dependency-name: autopep8 dependency-
|
||||||
|
type: direct:production update-type: version-update:semver-patch
|
||||||
|
dependency-group: python-packages - dependency-name: black
|
||||||
|
dependency-type: direct:production update-type: version-
|
||||||
|
update:semver-minor dependency-group: python-packages - dependency-
|
||||||
|
name: docutils dependency-type: direct:production update-type:
|
||||||
|
version-update:semver-minor dependency-group: python-packages -
|
||||||
|
dependency-name: keyring dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-minor dependency-group: python-
|
||||||
|
packages - dependency-name: platformdirs dependency-type:
|
||||||
|
direct:production update-type: version-update:semver-patch
|
||||||
|
dependency-group: python-packages - dependency-name: pygments
|
||||||
|
dependency-type: direct:production update-type: version-
|
||||||
|
update:semver-minor dependency-group: python-packages - dependency-
|
||||||
|
name: requests dependency-type: direct:production update-type:
|
||||||
|
version-update:semver-minor dependency-group: python-packages -
|
||||||
|
dependency-name: tqdm dependency-type: direct:production update-
|
||||||
|
type: version-update:semver-patch dependency-group: python-packages
|
||||||
|
- dependency-name: twine dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-minor dependency-group: python-
|
||||||
|
packages - dependency-name: zipp dependency-type: direct:production
|
||||||
|
update-type: version-update:semver-patch dependency-group: python-
|
||||||
|
packages ... [dependabot[bot]]
|
||||||
|
- Chore: update python version in release workflow. [Jose Diaz-Gonzalez]
|
||||||
|
- Chore: update python version used in linting. [Jose Diaz-Gonzalez]
|
||||||
|
- Chore: drop unsupported python versions and add supported ones. [Jose
|
||||||
|
Diaz-Gonzalez]
|
||||||
|
- --- updated-dependencies: - dependency-name: requests dependency-
|
||||||
|
type: direct:production ... [dependabot[bot]]
|
||||||
|
- Chore(deps): bump tqdm from 4.66.2 to 4.66.3. [dependabot[bot]]
|
||||||
|
|
||||||
|
Bumps [tqdm](https://github.com/tqdm/tqdm) from 4.66.2 to 4.66.3.
|
||||||
|
- [Release notes](https://github.com/tqdm/tqdm/releases)
|
||||||
|
- [Commits](https://github.com/tqdm/tqdm/compare/v4.66.2...v4.66.3)
|
||||||
|
|
||||||
|
---
|
||||||
|
updated-dependencies:
|
||||||
|
- dependency-name: tqdm
|
||||||
|
dependency-type: direct:production
|
||||||
|
...
|
||||||
|
|
||||||
|
|
||||||
|
0.45.2 (2024-05-04)
|
||||||
|
-------------------
|
||||||
- Chore(deps): bump idna from 3.6 to 3.7. [dependabot[bot]]
|
- Chore(deps): bump idna from 3.6 to 3.7. [dependabot[bot]]
|
||||||
|
|
||||||
Bumps [idna](https://github.com/kjd/idna) from 3.6 to 3.7.
|
Bumps [idna](https://github.com/kjd/idna) from 3.6 to 3.7.
|
||||||
|
|||||||
17
README.rst
17
README.rst
@@ -80,6 +80,7 @@ CLI Help output::
|
|||||||
log level to use (default: info, possible levels:
|
log level to use (default: info, possible levels:
|
||||||
debug, info, warning, error, critical)
|
debug, info, warning, error, critical)
|
||||||
-i, --incremental incremental backup
|
-i, --incremental incremental backup
|
||||||
|
--incremental-by-files incremental backup using modified time of files
|
||||||
--starred include JSON output of starred repositories in backup
|
--starred include JSON output of starred repositories in backup
|
||||||
--all-starred include starred repositories in backup [*]
|
--all-starred include starred repositories in backup [*]
|
||||||
--watched include JSON output of watched repositories in backup
|
--watched include JSON output of watched repositories in backup
|
||||||
@@ -167,7 +168,7 @@ Customise the permissions for your use case, but for a personal account full bac
|
|||||||
|
|
||||||
**User permissions**: Read access to followers, starring, and watching.
|
**User permissions**: Read access to followers, starring, and watching.
|
||||||
|
|
||||||
**Repository permissions**: Read access to code, commit statuses, issues, metadata, pages, pull requests, and repository hooks.
|
**Repository permissions**: Read access to contents, issues, metadata, pull requests, and webhooks.
|
||||||
|
|
||||||
|
|
||||||
Prefer SSH
|
Prefer SSH
|
||||||
@@ -225,7 +226,7 @@ Gotchas / Known-issues
|
|||||||
All is not everything
|
All is not everything
|
||||||
---------------------
|
---------------------
|
||||||
|
|
||||||
The ``--all`` argument does not include; cloning private repos (``-P, --private``), cloning forks (``-F, --fork``) cloning starred repositories (``--all-starred``), ``--pull-details``, cloning LFS repositories (``--lfs``), cloning gists (``--starred-gists``) or cloning starred gist repos (``--starred-gists``). See examples for more.
|
The ``--all`` argument does not include: cloning private repos (``-P, --private``), cloning forks (``-F, --fork``), cloning starred repositories (``--all-starred``), ``--pull-details``, cloning LFS repositories (``--lfs``), cloning gists (``--gists``) or cloning starred gist repos (``--starred-gists``). See examples for more.
|
||||||
|
|
||||||
Cloning all starred size
|
Cloning all starred size
|
||||||
------------------------
|
------------------------
|
||||||
@@ -239,6 +240,12 @@ Using (``-i, --incremental``) will only request new data from the API **since th
|
|||||||
|
|
||||||
This means any blocking errors on previous runs can cause a large amount of missing data in backups.
|
This means any blocking errors on previous runs can cause a large amount of missing data in backups.
|
||||||
|
|
||||||
|
Using (``--incremental-by-files``) will request new data from the API **based on when the file was modified on filesystem**. e.g. if you modify the file yourself you may miss something.
|
||||||
|
|
||||||
|
Still saver than the previous version.
|
||||||
|
|
||||||
|
Specifically, issues and pull requests are handled like this.
|
||||||
|
|
||||||
Known blocking errors
|
Known blocking errors
|
||||||
---------------------
|
---------------------
|
||||||
|
|
||||||
@@ -254,12 +261,6 @@ It's therefore recommended to only use the incremental argument if the output/re
|
|||||||
|
|
||||||
This is due to needing the correct permission for ``--hooks`` on public repos.
|
This is due to needing the correct permission for ``--hooks`` on public repos.
|
||||||
|
|
||||||
2. **Releases blocking**
|
|
||||||
|
|
||||||
A known ``--releases`` (required for ``--assets``) error will sometimes block the backup.
|
|
||||||
|
|
||||||
If you're backing up a lot of repositories with releases e.g. an organisation or ``--all-starred``. You may need to remove ``--releases`` (and therefore ``--assets``) to complete a backup. Documented in `issue 209 <https://github.com/josegonzalez/python-github-backup/issues/209>`_.
|
|
||||||
|
|
||||||
|
|
||||||
"bare" is actually "mirror"
|
"bare" is actually "mirror"
|
||||||
---------------------------
|
---------------------------
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
__version__ = "0.45.2"
|
__version__ = "0.49.0"
|
||||||
|
|||||||
@@ -15,15 +15,16 @@ import platform
|
|||||||
import re
|
import re
|
||||||
import select
|
import select
|
||||||
import socket
|
import socket
|
||||||
|
import ssl
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
|
from datetime import datetime
|
||||||
from http.client import IncompleteRead
|
from http.client import IncompleteRead
|
||||||
from urllib.error import HTTPError, URLError
|
from urllib.error import HTTPError, URLError
|
||||||
from urllib.parse import quote as urlquote
|
from urllib.parse import quote as urlquote
|
||||||
from urllib.parse import urlencode, urlparse
|
from urllib.parse import urlencode, urlparse
|
||||||
from urllib.request import HTTPRedirectHandler, Request, build_opener, urlopen
|
from urllib.request import HTTPRedirectHandler, Request, build_opener, urlopen
|
||||||
from datetime import datetime
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from . import __version__
|
from . import __version__
|
||||||
@@ -36,6 +37,23 @@ FNULL = open(os.devnull, "w")
|
|||||||
FILE_URI_PREFIX = "file://"
|
FILE_URI_PREFIX = "file://"
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
https_ctx = ssl.create_default_context()
|
||||||
|
if not https_ctx.get_ca_certs():
|
||||||
|
import warnings
|
||||||
|
|
||||||
|
warnings.warn(
|
||||||
|
"\n\nYOUR DEFAULT CA CERTS ARE EMPTY.\n"
|
||||||
|
+ "PLEASE POPULATE ANY OF:"
|
||||||
|
+ "".join(
|
||||||
|
["\n - " + x for x in ssl.get_default_verify_paths() if type(x) is str]
|
||||||
|
)
|
||||||
|
+ "\n",
|
||||||
|
stacklevel=2,
|
||||||
|
)
|
||||||
|
import certifi
|
||||||
|
|
||||||
|
https_ctx = ssl.create_default_context(cafile=certifi.where())
|
||||||
|
|
||||||
|
|
||||||
def logging_subprocess(
|
def logging_subprocess(
|
||||||
popenargs, stdout_log_level=logging.DEBUG, stderr_log_level=logging.ERROR, **kwargs
|
popenargs, stdout_log_level=logging.DEBUG, stderr_log_level=logging.ERROR, **kwargs
|
||||||
@@ -163,6 +181,12 @@ def parse_args(args=None):
|
|||||||
dest="incremental",
|
dest="incremental",
|
||||||
help="incremental backup",
|
help="incremental backup",
|
||||||
)
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"--incremental-by-files",
|
||||||
|
action="store_true",
|
||||||
|
dest="incremental_by_files",
|
||||||
|
help="incremental backup based on modification date of files",
|
||||||
|
)
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"--starred",
|
"--starred",
|
||||||
action="store_true",
|
action="store_true",
|
||||||
@@ -511,7 +535,7 @@ def get_github_host(args):
|
|||||||
|
|
||||||
|
|
||||||
def read_file_contents(file_uri):
|
def read_file_contents(file_uri):
|
||||||
return open(file_uri[len(FILE_URI_PREFIX):], "rt").readline().strip()
|
return open(file_uri[len(FILE_URI_PREFIX) :], "rt").readline().strip()
|
||||||
|
|
||||||
|
|
||||||
def get_github_repo_url(args, repository):
|
def get_github_repo_url(args, repository):
|
||||||
@@ -666,7 +690,7 @@ def _get_response(request, auth, template):
|
|||||||
while True:
|
while True:
|
||||||
should_continue = False
|
should_continue = False
|
||||||
try:
|
try:
|
||||||
r = urlopen(request)
|
r = urlopen(request, context=https_ctx)
|
||||||
except HTTPError as exc:
|
except HTTPError as exc:
|
||||||
errors, should_continue = _request_http_error(exc, auth, errors) # noqa
|
errors, should_continue = _request_http_error(exc, auth, errors) # noqa
|
||||||
r = exc
|
r = exc
|
||||||
@@ -782,13 +806,15 @@ def download_file(url, path, auth, as_app=False, fine=False):
|
|||||||
if os.path.exists(path):
|
if os.path.exists(path):
|
||||||
return
|
return
|
||||||
|
|
||||||
request = _construct_request(per_page=100,
|
request = _construct_request(
|
||||||
page=1,
|
per_page=100,
|
||||||
query_args={},
|
page=1,
|
||||||
template=url,
|
query_args={},
|
||||||
auth=auth,
|
template=url,
|
||||||
as_app=as_app,
|
auth=auth,
|
||||||
fine=fine)
|
as_app=as_app,
|
||||||
|
fine=fine,
|
||||||
|
)
|
||||||
request.add_header("Accept", "application/octet-stream")
|
request.add_header("Accept", "application/octet-stream")
|
||||||
opener = build_opener(S3HTTPRedirectHandler)
|
opener = build_opener(S3HTTPRedirectHandler)
|
||||||
|
|
||||||
@@ -931,11 +957,15 @@ def filter_repositories(args, unfiltered_repositories):
|
|||||||
if r.get("language") and r.get("language").lower() in languages
|
if r.get("language") and r.get("language").lower() in languages
|
||||||
] # noqa
|
] # noqa
|
||||||
if name_regex:
|
if name_regex:
|
||||||
repositories = [r for r in repositories if name_regex.match(r["name"])]
|
repositories = [
|
||||||
|
r for r in repositories if "name" not in r or name_regex.match(r["name"])
|
||||||
|
]
|
||||||
if args.skip_archived:
|
if args.skip_archived:
|
||||||
repositories = [r for r in repositories if not r.get("archived")]
|
repositories = [r for r in repositories if not r.get("archived")]
|
||||||
if args.exclude:
|
if args.exclude:
|
||||||
repositories = [r for r in repositories if r["name"] not in args.exclude]
|
repositories = [
|
||||||
|
r for r in repositories if "name" not in r or r["name"] not in args.exclude
|
||||||
|
]
|
||||||
|
|
||||||
return repositories
|
return repositories
|
||||||
|
|
||||||
@@ -1090,6 +1120,14 @@ def backup_issues(args, repo_cwd, repository, repos_template):
|
|||||||
comments_template = _issue_template + "/{0}/comments"
|
comments_template = _issue_template + "/{0}/comments"
|
||||||
events_template = _issue_template + "/{0}/events"
|
events_template = _issue_template + "/{0}/events"
|
||||||
for number, issue in list(issues.items()):
|
for number, issue in list(issues.items()):
|
||||||
|
issue_file = "{0}/{1}.json".format(issue_cwd, number)
|
||||||
|
if args.incremental_by_files and os.path.isfile(issue_file):
|
||||||
|
modified = os.path.getmtime(issue_file)
|
||||||
|
modified = datetime.fromtimestamp(modified).strftime("%Y-%m-%dT%H:%M:%SZ")
|
||||||
|
if modified > issue["updated_at"]:
|
||||||
|
logger.info("Skipping issue {0} because it wasn't modified since last backup".format(number))
|
||||||
|
continue
|
||||||
|
|
||||||
if args.include_issue_comments or args.include_everything:
|
if args.include_issue_comments or args.include_everything:
|
||||||
template = comments_template.format(number)
|
template = comments_template.format(number)
|
||||||
issues[number]["comment_data"] = retrieve_data(args, template)
|
issues[number]["comment_data"] = retrieve_data(args, template)
|
||||||
@@ -1097,9 +1135,9 @@ def backup_issues(args, repo_cwd, repository, repos_template):
|
|||||||
template = events_template.format(number)
|
template = events_template.format(number)
|
||||||
issues[number]["event_data"] = retrieve_data(args, template)
|
issues[number]["event_data"] = retrieve_data(args, template)
|
||||||
|
|
||||||
issue_file = "{0}/{1}.json".format(issue_cwd, number)
|
with codecs.open(issue_file + ".temp", "w", encoding="utf-8") as f:
|
||||||
with codecs.open(issue_file, "w", encoding="utf-8") as f:
|
|
||||||
json_dump(issue, f)
|
json_dump(issue, f)
|
||||||
|
os.rename(issue_file + ".temp", issue_file) # Unlike json_dump, this is atomic
|
||||||
|
|
||||||
|
|
||||||
def backup_pulls(args, repo_cwd, repository, repos_template):
|
def backup_pulls(args, repo_cwd, repository, repos_template):
|
||||||
@@ -1152,6 +1190,13 @@ def backup_pulls(args, repo_cwd, repository, repos_template):
|
|||||||
comments_template = _pulls_template + "/{0}/comments"
|
comments_template = _pulls_template + "/{0}/comments"
|
||||||
commits_template = _pulls_template + "/{0}/commits"
|
commits_template = _pulls_template + "/{0}/commits"
|
||||||
for number, pull in list(pulls.items()):
|
for number, pull in list(pulls.items()):
|
||||||
|
pull_file = "{0}/{1}.json".format(pulls_cwd, number)
|
||||||
|
if args.incremental_by_files and os.path.isfile(pull_file):
|
||||||
|
modified = os.path.getmtime(pull_file)
|
||||||
|
modified = datetime.fromtimestamp(modified).strftime("%Y-%m-%dT%H:%M:%SZ")
|
||||||
|
if modified > pull["updated_at"]:
|
||||||
|
logger.info("Skipping pull request {0} because it wasn't modified since last backup".format(number))
|
||||||
|
continue
|
||||||
if args.include_pull_comments or args.include_everything:
|
if args.include_pull_comments or args.include_everything:
|
||||||
template = comments_regular_template.format(number)
|
template = comments_regular_template.format(number)
|
||||||
pulls[number]["comment_regular_data"] = retrieve_data(args, template)
|
pulls[number]["comment_regular_data"] = retrieve_data(args, template)
|
||||||
@@ -1161,9 +1206,9 @@ def backup_pulls(args, repo_cwd, repository, repos_template):
|
|||||||
template = commits_template.format(number)
|
template = commits_template.format(number)
|
||||||
pulls[number]["commit_data"] = retrieve_data(args, template)
|
pulls[number]["commit_data"] = retrieve_data(args, template)
|
||||||
|
|
||||||
pull_file = "{0}/{1}.json".format(pulls_cwd, number)
|
with codecs.open(pull_file + ".temp", "w", encoding="utf-8") as f:
|
||||||
with codecs.open(pull_file, "w", encoding="utf-8") as f:
|
|
||||||
json_dump(pull, f)
|
json_dump(pull, f)
|
||||||
|
os.rename(pull_file + ".temp", pull_file) # Unlike json_dump, this is atomic
|
||||||
|
|
||||||
|
|
||||||
def backup_milestones(args, repo_cwd, repository, repos_template):
|
def backup_milestones(args, repo_cwd, repository, repos_template):
|
||||||
@@ -1231,10 +1276,16 @@ def backup_releases(args, repo_cwd, repository, repos_template, include_assets=F
|
|||||||
if args.skip_prerelease:
|
if args.skip_prerelease:
|
||||||
releases = [r for r in releases if not r["prerelease"] and not r["draft"]]
|
releases = [r for r in releases if not r["prerelease"] and not r["draft"]]
|
||||||
|
|
||||||
if args.number_of_latest_releases and args.number_of_latest_releases < len(releases):
|
if args.number_of_latest_releases and args.number_of_latest_releases < len(
|
||||||
releases.sort(key=lambda item: datetime.strptime(item["created_at"], "%Y-%m-%dT%H:%M:%SZ"),
|
releases
|
||||||
reverse=True)
|
):
|
||||||
releases = releases[:args.number_of_latest_releases]
|
releases.sort(
|
||||||
|
key=lambda item: datetime.strptime(
|
||||||
|
item["created_at"], "%Y-%m-%dT%H:%M:%SZ"
|
||||||
|
),
|
||||||
|
reverse=True,
|
||||||
|
)
|
||||||
|
releases = releases[: args.number_of_latest_releases]
|
||||||
logger.info("Saving the latest {0} releases to disk".format(len(releases)))
|
logger.info("Saving the latest {0} releases to disk".format(len(releases)))
|
||||||
else:
|
else:
|
||||||
logger.info("Saving {0} releases to disk".format(len(releases)))
|
logger.info("Saving {0} releases to disk".format(len(releases)))
|
||||||
@@ -1259,9 +1310,9 @@ def backup_releases(args, repo_cwd, repository, repos_template, include_assets=F
|
|||||||
download_file(
|
download_file(
|
||||||
asset["url"],
|
asset["url"],
|
||||||
os.path.join(release_assets_cwd, asset["name"]),
|
os.path.join(release_assets_cwd, asset["name"]),
|
||||||
get_auth(args),
|
get_auth(args, encode=not args.as_app),
|
||||||
as_app=args.as_app,
|
as_app=args.as_app,
|
||||||
fine=True if args.token_fine is not None else False
|
fine=True if args.token_fine is not None else False,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@@ -1318,13 +1369,15 @@ def fetch_repository(
|
|||||||
git_command = ["git", "remote", "set-url", "origin", remote_url]
|
git_command = ["git", "remote", "set-url", "origin", remote_url]
|
||||||
logging_subprocess(git_command, cwd=local_dir)
|
logging_subprocess(git_command, cwd=local_dir)
|
||||||
|
|
||||||
if lfs_clone:
|
git_command = ["git", "fetch", "--all", "--force", "--tags", "--prune"]
|
||||||
git_command = ["git", "lfs", "fetch", "--all", "--prune"]
|
|
||||||
else:
|
|
||||||
git_command = ["git", "fetch", "--all", "--force", "--tags", "--prune"]
|
|
||||||
if no_prune:
|
if no_prune:
|
||||||
git_command.pop()
|
git_command.pop()
|
||||||
logging_subprocess(git_command, cwd=local_dir)
|
logging_subprocess(git_command, cwd=local_dir)
|
||||||
|
if lfs_clone:
|
||||||
|
git_command = ["git", "lfs", "fetch", "--all", "--prune"]
|
||||||
|
if no_prune:
|
||||||
|
git_command.pop()
|
||||||
|
logging_subprocess(git_command, cwd=local_dir)
|
||||||
else:
|
else:
|
||||||
logger.info(
|
logger.info(
|
||||||
"Cloning {0} repository from {1} to {2}".format(
|
"Cloning {0} repository from {1} to {2}".format(
|
||||||
|
|||||||
@@ -1,38 +1,39 @@
|
|||||||
autopep8==2.1.0
|
autopep8==2.3.2
|
||||||
black==24.3.0
|
black==25.1.0
|
||||||
bleach==6.1.0
|
bleach==6.2.0
|
||||||
certifi==2024.2.2
|
certifi==2025.1.31
|
||||||
charset-normalizer==3.3.2
|
charset-normalizer==3.4.1
|
||||||
click==8.1.7
|
click==8.1.8
|
||||||
colorama==0.4.6
|
colorama==0.4.6
|
||||||
docutils==0.20.1
|
docutils==0.21.2
|
||||||
flake8==7.0.0
|
flake8==7.1.1
|
||||||
gitchangelog==3.0.4
|
gitchangelog==3.0.4
|
||||||
idna==3.7
|
idna==3.10
|
||||||
importlib-metadata==7.1.0
|
importlib-metadata==8.6.1
|
||||||
jaraco.classes==3.4.0
|
jaraco.classes==3.4.0
|
||||||
keyring==25.1.0
|
keyring==25.6.0
|
||||||
markdown-it-py==3.0.0
|
markdown-it-py==3.0.0
|
||||||
mccabe==0.7.0
|
mccabe==0.7.0
|
||||||
mdurl==0.1.2
|
mdurl==0.1.2
|
||||||
more-itertools==10.2.0
|
more-itertools==10.6.0
|
||||||
mypy-extensions==1.0.0
|
mypy-extensions==1.0.0
|
||||||
packaging==24.0
|
packaging==24.2
|
||||||
pathspec==0.12.1
|
pathspec==0.12.1
|
||||||
pkginfo==1.10.0
|
pkginfo==1.12.0
|
||||||
platformdirs==4.2.0
|
platformdirs==4.3.6
|
||||||
pycodestyle==2.11.1
|
pycodestyle==2.12.1
|
||||||
pyflakes==3.2.0
|
pyflakes==3.2.0
|
||||||
Pygments==2.17.2
|
Pygments==2.19.1
|
||||||
readme-renderer==43.0
|
readme-renderer==44.0
|
||||||
requests==2.31.0
|
requests==2.32.3
|
||||||
requests-toolbelt==1.0.0
|
requests-toolbelt==1.0.0
|
||||||
restructuredtext-lint==1.4.0
|
restructuredtext-lint==1.4.0
|
||||||
rfc3986==2.0.0
|
rfc3986==2.0.0
|
||||||
rich==13.7.1
|
rich==13.9.4
|
||||||
six==1.16.0
|
setuptools==75.8.0
|
||||||
tqdm==4.66.2
|
six==1.17.0
|
||||||
twine==5.0.0
|
tqdm==4.67.1
|
||||||
urllib3==2.2.1
|
twine==6.1.0
|
||||||
|
urllib3==2.3.0
|
||||||
webencodings==0.5.1
|
webencodings==0.5.1
|
||||||
zipp==3.18.1
|
zipp==3.21.0
|
||||||
|
|||||||
7
setup.py
7
setup.py
@@ -40,10 +40,11 @@ setup(
|
|||||||
"Development Status :: 5 - Production/Stable",
|
"Development Status :: 5 - Production/Stable",
|
||||||
"Topic :: System :: Archiving :: Backup",
|
"Topic :: System :: Archiving :: Backup",
|
||||||
"License :: OSI Approved :: MIT License",
|
"License :: OSI Approved :: MIT License",
|
||||||
"Programming Language :: Python :: 3.5",
|
|
||||||
"Programming Language :: Python :: 3.6",
|
|
||||||
"Programming Language :: Python :: 3.7",
|
|
||||||
"Programming Language :: Python :: 3.8",
|
"Programming Language :: Python :: 3.8",
|
||||||
|
"Programming Language :: Python :: 3.9",
|
||||||
|
"Programming Language :: Python :: 3.10",
|
||||||
|
"Programming Language :: Python :: 3.11",
|
||||||
|
"Programming Language :: Python :: 3.12",
|
||||||
],
|
],
|
||||||
description="backup a github user or organization",
|
description="backup a github user or organization",
|
||||||
long_description=open_file("README.rst").read(),
|
long_description=open_file("README.rst").read(),
|
||||||
|
|||||||
Reference in New Issue
Block a user