Compare commits

..

191 Commits

Author SHA1 Message Date
GitHub Action
d835d47c17 Release version 0.45.1 2024-03-17 22:30:14 +00:00
Jose Diaz-Gonzalez
2cd9061c46 Merge pull request #257 from dale-primer-e/40-backing-up-releases-using-fine-grained-token-ends-with-an-error
234 Backing up releases using fine grained token ends with an error
2024-03-17 18:29:04 -04:00
Jose Diaz-Gonzalez
0cc50bc4cb Merge pull request #258 from josegonzalez/dependabot/pip/python-packages-1bc7570458
chore(deps): bump the python-packages group with 1 update
2024-03-16 14:05:08 -04:00
dependabot[bot]
436e8df0ac chore(deps): bump the python-packages group with 1 update
Bumps the python-packages group with 1 update: [zipp](https://github.com/jaraco/zipp).


Updates `zipp` from 3.18.0 to 3.18.1
- [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.0...v3.18.1)

---
updated-dependencies:
- dependency-name: zipp
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-packages
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-15 14:00:44 +00:00
dale-primer-e
9812988a4a Remove trailing whitespaces
That are triggering flake.
2024-03-15 08:27:09 +13:00
dale-primer-e
1eccebcb83 Fix error with as_app flag 2024-03-14 15:27:22 +13:00
dale-primer-e
122eb56aa1 Fix error downloading assets
When downloading assets using a fine grained token you will get a "can't
concat str to bytes" error. This is due to the fine grained token being
concatenated onto bytes in the line:

`request.add_header("Authorization", "Basic ".encode("ascii") + auth)`

This is better handled in the function `_construct_request` so I changed
the lines that construct the request in `download_file` to use the
function `_construct_request` and updated the function signature to
reflect that.
2024-03-14 15:02:49 +13:00
Jose Diaz-Gonzalez
a0fdae3314 Merge pull request #256 from josegonzalez/dependabot/pip/python-packages-7bf9c84fb1
chore(deps): bump the python-packages group with 1 update
2024-03-13 10:31:50 -04:00
dependabot[bot]
80fa92664c chore(deps): bump the python-packages group with 1 update
Bumps the python-packages group with 1 update: [zipp](https://github.com/jaraco/zipp).


Updates `zipp` from 3.17.0 to 3.18.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.17.0...v3.18.0)

---
updated-dependencies:
- dependency-name: zipp
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-packages
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-13 14:07:08 +00:00
Jose Diaz-Gonzalez
7b69394488 Merge pull request #255 from josegonzalez/dependabot/pip/python-packages-b7495dafca
chore(deps): bump the python-packages group with 2 updates
2024-03-11 23:14:07 -04:00
dependabot[bot]
d1d3d84d95 chore(deps): bump the python-packages group with 2 updates
Bumps the python-packages group with 2 updates: [importlib-metadata](https://github.com/python/importlib_metadata) and [packaging](https://github.com/pypa/packaging).


Updates `importlib-metadata` from 7.0.1 to 7.0.2
- [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.0.1...v7.0.2)

Updates `packaging` from 23.2 to 24.0
- [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/23.2...24.0)

---
updated-dependencies:
- dependency-name: importlib-metadata
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-packages
- dependency-name: packaging
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: python-packages
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-11 13:43:27 +00:00
Jose Diaz-Gonzalez
fff2aa4075 Merge pull request #253 from josegonzalez/dependabot/pip/python-packages-8501db5bed
chore(deps): bump the python-packages group with 2 updates
2024-03-05 00:14:53 -05:00
dependabot[bot]
8eba46d8a7 chore(deps): bump the python-packages group with 2 updates
Bumps the python-packages group with 2 updates: [pkginfo](https://code.launchpad.net/~tseaver/pkginfo/trunk) and [rich](https://github.com/Textualize/rich).


Updates `pkginfo` from 1.9.6 to 1.10.0

Updates `rich` from 13.7.0 to 13.7.1
- [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.0...v13.7.1)

---
updated-dependencies:
- dependency-name: pkginfo
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-packages
- dependency-name: rich
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-packages
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-04 13:39:14 +00:00
Jose Diaz-Gonzalez
9dc3458dba Merge pull request #251 from josegonzalez/dependabot/pip/python-packages-5d78d04739
chore(deps): bump the python-packages group with 1 update
2024-02-28 12:46:27 -05:00
dependabot[bot]
e9d7692123 chore(deps): bump the python-packages group with 1 update
Bumps the python-packages group with 1 update: [keyring](https://github.com/jaraco/keyring).


Updates `keyring` from 24.3.0 to 24.3.1
- [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/v24.3.0...v24.3.1)

---
updated-dependencies:
- dependency-name: keyring
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-packages
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-28 13:43:08 +00:00
Jose Diaz-Gonzalez
a1ef61f87c Merge pull request #250 from josegonzalez/dependabot/pip/python-packages-b64df13e27
chore(deps): bump the python-packages group with 1 update
2024-02-27 11:09:25 -05:00
dependabot[bot]
6b62973997 chore(deps): bump the python-packages group with 1 update
Bumps the python-packages group with 1 update: [readme-renderer](https://github.com/pypa/readme_renderer).


Updates `readme-renderer` from 42.0 to 43.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/42.0...43.0)

---
updated-dependencies:
- dependency-name: readme-renderer
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: python-packages
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-27 14:05:42 +00:00
Jose Diaz-Gonzalez
b25af67898 Merge pull request #249 from josegonzalez/dependabot/pip/python-packages-ac51cbb969
chore(deps): bump the python-packages group with 1 update
2024-02-21 16:00:29 -05:00
dependabot[bot]
0380fb8e35 chore(deps): bump the python-packages group with 1 update
Bumps the python-packages group with 1 update: [urllib3](https://github.com/urllib3/urllib3).


Updates `urllib3` from 2.2.0 to 2.2.1
- [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.0...2.2.1)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-packages
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-19 13:15:55 +00:00
Jose Diaz-Gonzalez
f62fe5e6c9 Merge pull request #248 from josegonzalez/dependabot/pip/python-packages-1f78fe719d
chore(deps): bump the python-packages group with 1 update
2024-02-14 00:15:51 -05:00
dependabot[bot]
c97598c914 chore(deps): bump the python-packages group with 1 update
Bumps the python-packages group with 1 update: [black](https://github.com/psf/black).


Updates `black` from 24.1.1 to 24.2.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.1.1...24.2.0)

---
updated-dependencies:
- dependency-name: black
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-packages
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-13 13:59:09 +00:00
Jose Diaz-Gonzalez
c488b0adf9 Merge pull request #247 from josegonzalez/dependabot/pip/python-packages-83fd33f513
chore(deps): bump the python-packages group with 2 updates
2024-02-12 17:28:46 -05:00
dependabot[bot]
888815c271 chore(deps): bump the python-packages group with 2 updates
Bumps the python-packages group with 2 updates: [tqdm](https://github.com/tqdm/tqdm) and [twine](https://github.com/pypa/twine).


Updates `tqdm` from 4.66.1 to 4.66.2
- [Release notes](https://github.com/tqdm/tqdm/releases)
- [Commits](https://github.com/tqdm/tqdm/compare/v4.66.1...v4.66.2)

Updates `twine` from 4.0.2 to 5.0.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/4.0.2...5.0.0)

---
updated-dependencies:
- 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-major
  dependency-group: python-packages
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-12 13:44:39 +00:00
Jose Diaz-Gonzalez
66e11aa532 Merge pull request #245 from josegonzalez/dependabot/pip/python-packages-2a4cc26f6d
chore(deps): bump the python-packages group with 1 update
2024-02-08 19:56:34 -05:00
dependabot[bot]
d1874c0bd9 chore(deps): bump the python-packages group with 1 update
Bumps the python-packages group with 1 update: [jaraco-classes](https://github.com/jaraco/jaraco.classes).


Updates `jaraco-classes` from 3.3.0 to 3.3.1
- [Release notes](https://github.com/jaraco/jaraco.classes/releases)
- [Changelog](https://github.com/jaraco/jaraco.classes/blob/main/NEWS.rst)
- [Commits](https://github.com/jaraco/jaraco.classes/compare/v3.3.0...v3.3.1)

---
updated-dependencies:
- dependency-name: jaraco-classes
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-packages
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-08 14:05:38 +00:00
Jose Diaz-Gonzalez
4c07bd1310 Merge pull request #242 from josegonzalez/dependabot/pip/python-packages-0117728348
chore(deps): bump the python-packages group with 1 update
2024-02-04 18:10:46 -05:00
dependabot[bot]
fd2d398025 chore(deps): bump the python-packages group with 1 update
Bumps the python-packages group with 1 update: [certifi](https://github.com/certifi/python-certifi).


Updates `certifi` from 2023.11.17 to 2024.2.2
- [Commits](https://github.com/certifi/python-certifi/compare/2023.11.17...2024.02.02)

---
updated-dependencies:
- dependency-name: certifi
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: python-packages
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-02 13:26:36 +00:00
Jose Diaz-Gonzalez
53d2ceec10 Merge pull request #241 from josegonzalez/dependabot/pip/python-packages-8173d090d9
chore(deps): bump the python-packages group with 2 updates
2024-01-31 11:06:42 -05:00
dependabot[bot]
421a7ec62b chore(deps): bump the python-packages group with 2 updates
Bumps the python-packages group with 2 updates: [platformdirs](https://github.com/platformdirs/platformdirs) and [urllib3](https://github.com/urllib3/urllib3).


Updates `platformdirs` from 4.1.0 to 4.2.0
- [Release notes](https://github.com/platformdirs/platformdirs/releases)
- [Changelog](https://github.com/platformdirs/platformdirs/blob/main/CHANGES.rst)
- [Commits](https://github.com/platformdirs/platformdirs/compare/4.1.0...4.2.0)

Updates `urllib3` from 2.1.0 to 2.2.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.1.0...2.2.0)

---
updated-dependencies:
- dependency-name: platformdirs
  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
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-31 14:16:30 +00:00
Jose Diaz-Gonzalez
ec43649bcd Merge pull request #240 from josegonzalez/dependabot/pip/python-packages-35d4ee13ea
chore(deps): bump the python-packages group with 1 update
2024-01-29 08:52:35 -05:00
dependabot[bot]
e869844dba chore(deps): bump the python-packages group with 1 update
Bumps the python-packages group with 1 update: [black](https://github.com/psf/black).


Updates `black` from 24.1.0 to 24.1.1
- [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.1.0...24.1.1)

---
updated-dependencies:
- dependency-name: black
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-packages
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-29 13:36:46 +00:00
GitHub Action
0857a37440 Release version 0.45.0 2024-01-29 12:52:57 +00:00
Jose Diaz-Gonzalez
585af4c4e3 Merge pull request #236 from BrOleg5/master
Add options to include certain number of latest release and skip prereleases
2024-01-29 07:51:35 -05:00
Jose Diaz-Gonzalez
41ec01d5cb Merge pull request #233 from 8cH9azbsFifZ/master
Docker Images
2024-01-29 07:51:29 -05:00
Jose Diaz-Gonzalez
7dc22358df Merge pull request #239 from josegonzalez/dependabot/pip/python-packages-1d7ddf90bb
chore(deps): bump the python-packages group with 6 updates
2024-01-29 07:50:21 -05:00
Jose Diaz-Gonzalez
b855bcabf6 Merge pull request #238 from mofe23/master
Fix 404 on hooks
2024-01-29 07:50:06 -05:00
dependabot[bot]
3c3262ed69 chore(deps): bump the python-packages group with 6 updates
Bumps the python-packages group with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [black](https://github.com/psf/black) | `23.11.0` | `24.1.0` |
| [flake8](https://github.com/pycqa/flake8) | `6.1.0` | `7.0.0` |
| [importlib-metadata](https://github.com/python/importlib_metadata) | `7.0.0` | `7.0.1` |
| [more-itertools](https://github.com/more-itertools/more-itertools) | `10.1.0` | `10.2.0` |
| [pathspec](https://github.com/cpburnz/python-pathspec) | `0.11.2` | `0.12.1` |
| [pyflakes](https://github.com/PyCQA/pyflakes) | `3.1.0` | `3.2.0` |


Updates `black` from 23.11.0 to 24.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/23.11.0...24.1.0)

Updates `flake8` from 6.1.0 to 7.0.0
- [Commits](https://github.com/pycqa/flake8/compare/6.1.0...7.0.0)

Updates `importlib-metadata` from 7.0.0 to 7.0.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.0.0...v7.0.1)

Updates `more-itertools` from 10.1.0 to 10.2.0
- [Release notes](https://github.com/more-itertools/more-itertools/releases)
- [Commits](https://github.com/more-itertools/more-itertools/compare/v10.1.0...v10.2.0)

Updates `pathspec` from 0.11.2 to 0.12.1
- [Release notes](https://github.com/cpburnz/python-pathspec/releases)
- [Changelog](https://github.com/cpburnz/python-pathspec/blob/master/CHANGES.rst)
- [Commits](https://github.com/cpburnz/python-pathspec/compare/v0.11.2...v0.12.1)

Updates `pyflakes` from 3.1.0 to 3.2.0
- [Changelog](https://github.com/PyCQA/pyflakes/blob/main/NEWS.rst)
- [Commits](https://github.com/PyCQA/pyflakes/compare/3.1.0...3.2.0)

---
updated-dependencies:
- dependency-name: black
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: python-packages
- dependency-name: flake8
  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-patch
  dependency-group: python-packages
- dependency-name: more-itertools
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-packages
- dependency-name: pathspec
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-packages
- dependency-name: pyflakes
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-packages
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-26 14:14:51 +00:00
Moritz Federspiel
42b836f623 fix: Catch 404s for non-existing hooks. Fixes #176
Explanation: Repositories where no webhooks are defined return 404 errors. This breaks further script execution.
2024-01-16 15:17:48 +01:00
BrOleg5
09f4168db6 Fix code style. 2024-01-05 20:46:02 +08:00
BrOleg5
3e9a4fa0d8 Update CLI help output in README.
Rename destination of latest-releases argument.
2024-01-05 20:35:37 +08:00
BrOleg5
ab18e96ea8 Add option to skip prerelease versions.
Replace release sorting by tag with release sorting by creation date.
2024-01-05 20:26:08 +08:00
BrOleg5
eb88def888 Add option to include certain number of the latest releases. 2024-01-02 12:54:06 +08:00
8cH9azbsFifZ
7fe6541291 auto docker build 2023-12-30 13:04:45 +01:00
8cH9azbsFifZ
c8b8b270f6 vs code 2023-12-30 13:01:46 +01:00
Jose Diaz-Gonzalez
a97f15b519 Merge pull request #229 from josegonzalez/dependabot/pip/python-packages-6492013e8e
chore(deps): bump the python-packages group with 15 updates
2023-12-09 13:30:28 -05:00
dependabot[bot]
500c97c60e chore(deps): bump the python-packages group with 15 updates
Bumps the python-packages group with 15 updates:

| Package | From | To |
| --- | --- | --- |
| [bleach](https://github.com/mozilla/bleach) | `6.0.0` | `6.1.0` |
| [certifi](https://github.com/certifi/python-certifi) | `2023.7.22` | `2023.11.17` |
| [charset-normalizer](https://github.com/Ousret/charset_normalizer) | `3.1.0` | `3.3.2` |
| [idna](https://github.com/kjd/idna) | `3.4` | `3.6` |
| [importlib-metadata](https://github.com/python/importlib_metadata) | `6.6.0` | `7.0.0` |
| [jaraco-classes](https://github.com/jaraco/jaraco.classes) | `3.2.3` | `3.3.0` |
| [keyring](https://github.com/jaraco/keyring) | `23.13.1` | `24.3.0` |
| [markdown-it-py](https://github.com/executablebooks/markdown-it-py) | `2.2.0` | `3.0.0` |
| [more-itertools](https://github.com/more-itertools/more-itertools) | `9.1.0` | `10.1.0` |
| [pygments](https://github.com/pygments/pygments) | `2.15.1` | `2.17.2` |
| [readme-renderer](https://github.com/pypa/readme_renderer) | `37.3` | `42.0` |
| [rich](https://github.com/Textualize/rich) | `13.3.5` | `13.7.0` |
| [tqdm](https://github.com/tqdm/tqdm) | `4.65.0` | `4.66.1` |
| [urllib3](https://github.com/urllib3/urllib3) | `2.0.7` | `2.1.0` |
| [zipp](https://github.com/jaraco/zipp) | `3.15.0` | `3.17.0` |


Updates `bleach` from 6.0.0 to 6.1.0
- [Changelog](https://github.com/mozilla/bleach/blob/main/CHANGES)
- [Commits](https://github.com/mozilla/bleach/compare/v6.0.0...v6.1.0)

Updates `certifi` from 2023.7.22 to 2023.11.17
- [Commits](https://github.com/certifi/python-certifi/compare/2023.07.22...2023.11.17)

Updates `charset-normalizer` from 3.1.0 to 3.3.2
- [Release notes](https://github.com/Ousret/charset_normalizer/releases)
- [Changelog](https://github.com/Ousret/charset_normalizer/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Ousret/charset_normalizer/compare/3.1.0...3.3.2)

Updates `idna` from 3.4 to 3.6
- [Changelog](https://github.com/kjd/idna/blob/master/HISTORY.rst)
- [Commits](https://github.com/kjd/idna/compare/v3.4...v3.6)

Updates `importlib-metadata` from 6.6.0 to 7.0.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/v6.6.0...v7.0.0)

Updates `jaraco-classes` from 3.2.3 to 3.3.0
- [Release notes](https://github.com/jaraco/jaraco.classes/releases)
- [Changelog](https://github.com/jaraco/jaraco.classes/blob/main/NEWS.rst)
- [Commits](https://github.com/jaraco/jaraco.classes/compare/v3.2.3...v3.3.0)

Updates `keyring` from 23.13.1 to 24.3.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/v23.13.1...v24.3.0)

Updates `markdown-it-py` from 2.2.0 to 3.0.0
- [Release notes](https://github.com/executablebooks/markdown-it-py/releases)
- [Changelog](https://github.com/executablebooks/markdown-it-py/blob/master/CHANGELOG.md)
- [Commits](https://github.com/executablebooks/markdown-it-py/compare/v2.2.0...v3.0.0)

Updates `more-itertools` from 9.1.0 to 10.1.0
- [Release notes](https://github.com/more-itertools/more-itertools/releases)
- [Commits](https://github.com/more-itertools/more-itertools/compare/v9.1.0...v10.1.0)

Updates `pygments` from 2.15.1 to 2.17.2
- [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.15.1...2.17.2)

Updates `readme-renderer` from 37.3 to 42.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/37.3...42.0)

Updates `rich` from 13.3.5 to 13.7.0
- [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.3.5...v13.7.0)

Updates `tqdm` from 4.65.0 to 4.66.1
- [Release notes](https://github.com/tqdm/tqdm/releases)
- [Commits](https://github.com/tqdm/tqdm/compare/v4.65.0...v4.66.1)

Updates `urllib3` from 2.0.7 to 2.1.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.0.7...2.1.0)

Updates `zipp` from 3.15.0 to 3.17.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.15.0...v3.17.0)

---
updated-dependencies:
- 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: 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: jaraco-classes
  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-major
  dependency-group: python-packages
- dependency-name: markdown-it-py
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: python-packages
- dependency-name: more-itertools
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: python-packages
- dependency-name: pygments
  dependency-type: direct:production
  update-type: version-update:semver-minor
  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: tqdm
  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
- dependency-name: zipp
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-packages
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-09 18:30:23 +00:00
Jose Diaz-Gonzalez
31a6e52a5e fix: ensure wheel is installed 2023-12-09 12:34:58 -05:00
Jose Diaz-Gonzalez
4c5187bcff chore: format python code 2023-12-09 12:31:33 -05:00
Jose Diaz-Gonzalez
2de69beffa chore: format yaml 2023-12-09 12:31:33 -05:00
Jose Diaz-Gonzalez
96592295e1 chore: update gitignore 2023-12-09 12:31:33 -05:00
Jose Diaz-Gonzalez
bd65c3d5d6 feat: add dependabot config to repository 2023-12-09 12:25:51 -05:00
GitHub Action
aaf45022cc Release version 0.44.1 2023-12-09 05:53:43 +00:00
Jose Diaz-Gonzalez
7cdf428e3a fix: use a deploy key to push tags so releases get auto-created 2023-12-09 00:52:00 -05:00
Jose Diaz-Gonzalez
cfb1f1368b Merge pull request #228 from josegonzalez/dependabot/pip/certifi-2023.7.22
chore(deps): bump certifi from 2023.5.7 to 2023.7.22
2023-12-09 00:45:27 -05:00
Jose Diaz-Gonzalez
4700a26d90 tests: run lint on pull requests 2023-12-09 00:45:20 -05:00
dependabot[bot]
f53f7d9b71 chore(deps): bump certifi from 2023.5.7 to 2023.7.22
Bumps [certifi](https://github.com/certifi/python-certifi) from 2023.5.7 to 2023.7.22.
- [Commits](https://github.com/certifi/python-certifi/compare/2023.05.07...2023.07.22)

---
updated-dependencies:
- dependency-name: certifi
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-09 05:43:45 +00:00
Jose Diaz-Gonzalez
3b6aa060ba Merge pull request #227 from josegonzalez/dependabot/pip/urllib3-2.0.7
chore(deps): bump urllib3 from 2.0.2 to 2.0.7
2023-12-09 00:42:54 -05:00
Jose Diaz-Gonzalez
76ff7f3b0d chore: remove circleci as tests now run in github actions 2023-12-09 00:42:09 -05:00
Jose Diaz-Gonzalez
2615cab114 tests: install correct dependencies and rename job 2023-12-09 00:40:58 -05:00
Jose Diaz-Gonzalez
fda71b0467 tests: add lint github action workflow 2023-12-09 00:39:40 -05:00
Jose Diaz-Gonzalez
a9f82faa1c feat: install autopep8 2023-12-09 00:39:40 -05:00
Jose Diaz-Gonzalez
f17bf19776 Merge pull request #226 from josegonzalez/dependabot/pip/certifi-2023.7.22
chore(deps): bump certifi from 2023.5.7 to 2023.7.22
2023-12-09 00:31:43 -05:00
dependabot[bot]
54c81de3d7 chore(deps): bump urllib3 from 2.0.2 to 2.0.7
Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.0.2 to 2.0.7.
- [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.0.2...2.0.7)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-09 05:31:30 +00:00
dependabot[bot]
f2b4f566a1 chore(deps): bump certifi from 2023.5.7 to 2023.7.22
Bumps [certifi](https://github.com/certifi/python-certifi) from 2023.5.7 to 2023.7.22.
- [Commits](https://github.com/certifi/python-certifi/compare/2023.05.07...2023.07.22)

---
updated-dependencies:
- dependency-name: certifi
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-09 05:31:23 +00:00
Jose Diaz-Gonzalez
2724f02b0a chore: reformat file and update flake8 2023-12-09 00:30:44 -05:00
GitHub Action
e0bf80a6aa Release version 0.44.0 2023-12-09 05:26:00 +00:00
Jose Diaz-Gonzalez
b60034a9d7 fix: do not use raw property in readme
This is disabled on pypi.
2023-12-09 00:25:28 -05:00
Jose Diaz-Gonzalez
878713a4e0 fix: validate release before committing and uploading it 2023-12-09 00:22:36 -05:00
Jose Diaz-Gonzalez
3b0c08cdc1 fix: correct lint issues and show errors on lint 2023-12-09 00:08:19 -05:00
Jose Diaz-Gonzalez
b52d9bfdc8 Merge pull request #215 from josegonzalez/dependabot/pip/certifi-2023.7.22
Bump certifi from 2023.5.7 to 2023.7.22
2023-12-09 00:04:48 -05:00
Jose Diaz-Gonzalez
336b8b746f Merge pull request #223 from Ondkloss/feature/auto-release
Added automatic release workflow, for use with GitHub Actions
2023-12-09 00:04:38 -05:00
Jose Diaz-Gonzalez
4e7d6f7497 Merge pull request #222 from pl4nty/patch-1
feat: create Dockerfile
2023-12-09 00:00:20 -05:00
Jose Diaz-Gonzalez
7d07cbbe4f Merge pull request #224 from hozza/master
more detailed README docs
2023-12-08 23:59:55 -05:00
Jose Diaz-Gonzalez
b80af2a4ca Merge pull request #221 from josegonzalez/dependabot/pip/urllib3-2.0.7
Bump urllib3 from 2.0.2 to 2.0.7
2023-12-08 23:59:20 -05:00
hozza
5dd0744ce0 fix rst html 2023-11-07 16:12:26 +00:00
hozza
81876a2bb3 add contributor section 2023-11-07 16:08:35 +00:00
hozza
a2b13c8109 fix readme wording and format 2023-11-07 16:08:00 +00:00
hozza
f63be3be24 fixed readme working and layout 2023-11-07 15:46:03 +00:00
hozza
9cf85b087f fix readme formatting, spelling and layout 2023-11-07 15:28:39 +00:00
hozza
f449d8bbe3 added details usage and examples
including gotchas, errors and development instructions.
2023-11-07 14:56:43 +00:00
hozza
7d03e4c9bb added verbose install instructions 2023-11-07 14:53:58 +00:00
Halvor Holsten Strand
4406ba7f07 Checkout everything. 2023-10-29 20:37:20 +01:00
Halvor Holsten Strand
febf380c57 Updated to latest Ubuntu LTS while keeping setup-python to stay put on Python 3.8. 2023-10-28 20:19:18 +02:00
Halvor Holsten Strand
f9b627c1e4 Added automatic release workflow, for use with GitHub Actions. 2023-10-28 08:33:58 +02:00
Tom Plant
f998943171 feat: create Dockerfile 2023-10-28 16:30:31 +11:00
dependabot[bot]
2bf8898545 Bump urllib3 from 2.0.2 to 2.0.7
Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.0.2 to 2.0.7.
- [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.0.2...2.0.7)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-17 20:24:18 +00:00
Jose Diaz-Gonzalez
dbc1619106 Merge pull request #218 from Ondkloss/fix/win32logger
Suggested modification to fix win32 logging failure
2023-10-09 20:38:38 -04:00
Jose Diaz-Gonzalez
ec210166f7 Merge pull request #219 from Ondkloss/feature/quiet_flag
Add support for quiet flag
2023-10-09 20:34:30 -04:00
Halvor Holsten Strand
ea74aa5094 Merge branch 'master' into feature/quiet_flag. 2023-10-09 12:07:24 +02:00
Halvor Holsten Strand
7437e3abb1 Merge pull request, while keeping -q --quiet flag.
Most changes were already included, only adjusted with black formatting.
2023-10-09 12:01:32 +02:00
Halvor Holsten Strand
6f3be3d0e8 Suggested modification to fix win32 logging failure, due to local variable scope.
Logger does not appear to have any utility within "logging_subprocess".
2023-10-07 19:02:52 +02:00
Jose Diaz-Gonzalez
d7ba57075e Merge pull request #216 from Ondkloss/feature/fine_grained
Add support for fine-grained tokens (continued)
2023-10-07 00:04:17 -04:00
Halvor Holsten Strand
b277baa6ea Update github_backup.py 2023-10-02 09:14:40 +02:00
Halvor Holsten Strand
15de769d67 Simplified one if/elif scenario.
Extracted file reading of another if/elif scenario.
2023-10-01 22:22:15 +02:00
Halvor Holsten Strand
a9d35c0fd5 Ran black. 2023-09-29 14:40:16 +02:00
Halvor Holsten Strand
20f5fd7a86 Merge branch 'master' into feature/fine_grained
# Conflicts:
#	README.rst
#	github_backup/github_backup.py
2023-09-29 14:34:06 +02:00
Halvor Holsten Strand
f12b877509 Keep backwards compatability by going back to "--token" for classic.
Allow "file://" uri for "--token-fine".
2023-09-29 14:01:53 +02:00
dependabot[bot]
96e6f58159 Bump certifi from 2023.5.7 to 2023.7.22
Bumps [certifi](https://github.com/certifi/python-certifi) from 2023.5.7 to 2023.7.22.
- [Commits](https://github.com/certifi/python-certifi/compare/2023.05.07...2023.07.22)

---
updated-dependencies:
- dependency-name: certifi
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-25 23:20:45 +00:00
Jose Diaz-Gonzalez
d163cd66a4 Merge pull request #214 from ZhymabekRoman/master
fix: refactor logging
2023-06-27 15:21:16 -04:00
ZhymabekRoman
a8a583bed1 fix: minor cosmetic changes 2023-06-25 10:41:48 +06:00
ZhymabekRoman
68e718010f fix: add forgotten variable formatting 2023-06-25 10:39:16 +06:00
ZhymabekRoman
a06c3e9fd3 fix: refactor logging
Based on #195
2023-06-25 10:38:31 +06:00
Jose Diaz-Gonzalez
fe07d5ad09 Merge pull request #212 from ZhymabekRoman/dev-1
fix: minor typo fix
2023-06-23 13:04:17 -04:00
Zhymabek Roman
12799bb72c fix: minor typo fix 2023-06-23 21:27:52 +06:00
Jose Diaz-Gonzalez
f1cf4cd315 Release version 0.43.1 2023-05-29 18:45:57 -04:00
Jose Diaz-Gonzalez
f3340cd9eb chore: add release requirements 2023-05-29 18:45:49 -04:00
Jose Diaz-Gonzalez
0ebaffd102 Release version 0.43.0 2023-05-29 18:44:23 -04:00
Jose Diaz-Gonzalez
2730fc3e5a fix: do not update readme 2023-05-29 18:44:13 -04:00
Jose Diaz-Gonzalez
0b2330c2c4 fix: adjust for black 2023-05-29 18:43:29 -04:00
Jose Diaz-Gonzalez
82e35fb1cf feat: commit gitchangelog.rc to repo so anyone can generate a changelog 2023-05-29 18:43:23 -04:00
Jose Diaz-Gonzalez
e8f027469e fix: adjust for black 2023-05-29 18:37:02 -04:00
Jose Diaz-Gonzalez
37ef0222e1 fix: adjust for black 2023-05-29 18:36:06 -04:00
Jose Diaz-Gonzalez
96a73b3fe8 feat: add release tagging 2023-05-29 18:35:07 -04:00
Jose Diaz-Gonzalez
8b1bfd433c chore: formatting 2023-05-29 18:34:22 -04:00
Jose Diaz-Gonzalez
cca8a851ad chore: run black 2023-05-29 18:32:39 -04:00
josegonzalez
b5d749ec46 Merge pull request #199 from eht16/add_log_level_argument
Add --log-level command line argument
2023-05-29 18:29:41 -04:00
josegonzalez
00e5c019db Merge pull request #207 from kenbailey/kenbailey-patch-1
Check both updated_at and pushed_at properties
2023-05-29 18:29:29 -04:00
Robert Davey
61275c61b2 Update README.rst
Add flags and example for fine-grained tokens
2023-03-28 16:52:48 +01:00
froggleston
60cb484a19 Add support for fine-grained tokens 2023-03-22 14:53:07 +00:00
Ken Bailey
fbb977acf4 Check both updated_at and pushed_at properties
Check both updated_at and pushed_at dates to get the last_update to reduce data retrieved on incremental api calls using since.
2023-02-28 15:44:14 -07:00
Jose Diaz-Gonzalez
07e32b186c Release version 0.42.0 2022-11-28 00:25:13 -05:00
josegonzalez
dcc90b747a Merge pull request #204 from Assimila/exclude_repositories
Add option to exclude repositories
2022-11-28 00:23:20 -05:00
josegonzalez
f414fac108 Merge pull request #202 from TheOneric/pull_backup-regular-comments
Backup regular pull request comments as well
2022-11-28 00:23:08 -05:00
josegonzalez
38692bc836 Merge pull request #201 from TRAdEWORKS/fix-bug-request-url-error-forever-retry
Fix a bug forever retry when request url error
2022-11-28 00:22:54 -05:00
josegonzalez
81362e5596 Merge pull request #200 from TRAdEWORKS/no-prune-flag
Add --no-prune command line argument to disable prune option when doing git fetch
2022-11-28 00:22:40 -05:00
npounder
753a26d0d6 add option to exclude repositories 2022-11-25 12:35:24 +00:00
Oneric
b629a865f4 Backup regular pull request comments as well
Before, only review comments were backed up;
regular comments need to be fetched via issue API.

Fixes: https://github.com/josegonzalez/python-github-backup/issues/150
2022-07-12 18:38:11 +02:00
kornpisey
75ec773a6f fix bug forever retry when request url error 2022-05-30 13:50:23 +09:00
kornpisey
f8a16ee0f8 added --no-prune option to disable prune option when doing git fetch 2022-05-30 13:46:41 +09:00
Enrico Tröger
3d5eb359e2 Add --log-level command line argument
Support changing the log level to the desired value easily.
For example, this is useful to suppress progress messages but
keep logging warnings and errors.
2022-05-26 10:04:36 +02:00
Harrison Wright
125cfca05e Refactor logging and add support for quiet flag 2022-03-23 19:05:36 -05:00
Jose Diaz-Gonzalez
63441ebfbc Release version 0.41.0 2022-03-02 02:36:41 -05:00
Jose Diaz-Gonzalez
7ad324225e Merge pull request #191 from SkySoft-ATM/bug/lfs_mirror
git lfs clone does not respect --mirror
2022-03-02 02:34:17 -05:00
Louis Parisot
885e94a102 git lfs clone doe snot respect --mirror 2022-02-03 11:45:59 +01:00
Jose Diaz-Gonzalez
9e1800f56e Release version 0.40.2 2021-12-29 12:49:10 -05:00
Jose Diaz-Gonzalez
d057ee0d04 Merge pull request #186 from atinary-afoulon/patch-1
Fix lint issues raised by Flake8
2021-12-29 12:48:30 -05:00
atinary-afoulon
64562f2460 Fix lint issues raised by Flake8
According to job: 
[ https://app.circleci.com/pipelines/github/josegonzalez/python-github-backup/30/workflows/74eb93f2-2505-435d-b728-03b3cc04c14a/jobs/23 ]

Failed on the following checks:
./github_backup/github_backup.py:20:1: F811 redefinition of unused 'logging' from line 14
./github_backup/github_backup.py:45:1: E302 expected 2 blank lines, found 1
./github_backup/github_backup.py:136:20: E251 unexpected spaces around keyword / parameter equals
2021-12-13 14:33:21 +01:00
Jose Diaz-Gonzalez
f7f9ffd017 Release version 0.40.1 2021-09-22 12:29:08 -04:00
Jose Diaz-Gonzalez
048ef04e2a Merge pull request #180 from whwright/revert-to-fetch
Revert to fetch
2021-09-22 11:06:18 -04:00
Harrison Wright
b1acfed83a Revert to fetch 2021-07-14 10:53:14 -05:00
Jose Diaz-Gonzalez
18e78a4d66 Release version 0.40.0 2021-07-12 00:44:33 -04:00
Jose Diaz-Gonzalez
1ed5427043 Merge pull request #177 from jacekn/retry
Add retry on certain network errors
2021-07-12 00:43:19 -04:00
Jose Diaz-Gonzalez
c2e3665ed8 Merge pull request #178 from pew/patch-1
pull changes from remote
2021-07-12 00:43:10 -04:00
Jonas
0a30a92fe4 pull changes from remote
use `git pull` to pull actual files from the remote instead of using `fetch` for only the metadata
2021-07-06 06:21:06 +02:00
Jacek Nykis
cc52587f52 Add retry on certain network errors
This change includes certain network level errors in the retry logic.
It partially address #110 but I think more comprehensive fix would be useful.
2021-07-01 14:39:10 +01:00
Jose Diaz-Gonzalez
853b7c46a1 Release version 0.39.0 2021-03-18 23:16:04 -04:00
Jose Diaz-Gonzalez
e23d12d490 Merge pull request #173 from gallofeliz/make-compatible-python-call
Try to make compatible code with direct Python call ; reduce the hard link of the code with the cli
2021-03-18 22:51:01 -04:00
Jose Diaz-Gonzalez
f8e1151111 Merge pull request #174 from atorrescogollo/master
Fixed release_name with slash bug
2021-03-18 22:50:21 -04:00
Álvaro Torres Cogollo
664c2a765e Fixed release_name with slash bug 2021-03-03 11:36:44 +01:00
Gallo Feliz
fa7148d38f fix: fix missing INFO logs 2021-02-16 13:25:16 +01:00
Gallo Feliz
480ce3ce2a Try to make compatible code with direct Python call ; reduce the hard link of the code with the cli 2021-02-16 13:13:51 +01:00
Jose Diaz-Gonzalez
943e84e3d9 Release version 0.38.0 2021-02-13 03:55:02 -05:00
Jose Diaz-Gonzalez
0c924c3158 Merge pull request #172 from samanthaq/always-use-oauth-when-provided
fix: Always clone with OAuth token when provided
2021-02-13 03:53:26 -05:00
Samantha Baldwin
f62c4eaf8b fix: Always clone with OAuth token when provided
Github Enterprise servers with 'Anonymous Git read access' disabled
cause `git ls-remote` to fail (128) for a repo's `clone_url`. Using the
OAuth token when provided allows cloning private AND public repos when
Anonymous Git read access is disabled.
2021-02-12 00:46:06 -05:00
Jose Diaz-Gonzalez
a53d7f6849 Merge pull request #170 from Mindavi/bugfix/broken-url
Fix broken and incorrect link to github repository
2021-01-18 00:12:09 -05:00
Rick van Schijndel
4e571d0735 Change broken link to a fork to a working link to upstream 2021-01-03 23:08:58 +01:00
Jose Diaz-Gonzalez
5a71bc5e5a Release version 0.37.2 2021-01-01 21:31:06 -05:00
Jose Diaz-Gonzalez
794ccf3996 fix: use distutils.core on error 2021-01-01 21:30:54 -05:00
Jose Diaz-Gonzalez
977424c153 Release version 0.37.1 2021-01-01 21:28:25 -05:00
Jose Diaz-Gonzalez
613576dd25 fix: use twine for releases
The old method of releasing to pypi broke for whatever reason and switching to a supported toolchain is easier than debugging the old one.

Additionally:

- Update gitchangelog
- Fix license entry
- Set long description type
- Gitignore the temporary readme file
2021-01-01 21:28:03 -05:00
Jose Diaz-Gonzalez
638bf7a77e Release version 0.37.0 2021-01-01 21:23:49 -05:00
Jose Diaz-Gonzalez
725f2c3b8f Merge pull request #158 from albertyw/python3
Remove support for python 2
2021-01-01 21:22:30 -05:00
Jose Diaz-Gonzalez
41ece08152 Merge pull request #165 from garymoon/add-skip-archived
Add option to skip archived repositories
2021-01-01 21:22:15 -05:00
Gary Moon
3a5ef5158d Add ability to skip archived repositories 2020-10-30 15:39:32 -04:00
Albert Wang
cb1b0b6c6b Add support for python 3.7 and 3.8 in package classifiers 2020-08-28 23:45:30 -07:00
Albert Wang
d7f0747432 Remove support for python 2.7 in package classifiers 2020-08-28 23:45:30 -07:00
Albert Wang
d411e20580 Remove python 2 specific import logic 2020-08-28 23:45:30 -07:00
Albert Wang
d7b85264cd Remove python 2 specific logic 2020-08-28 23:45:30 -07:00
Jose Diaz-Gonzalez
031a984434 Release version 0.36.0 2020-08-29 02:37:48 -04:00
Jose Diaz-Gonzalez
9e16f39e3e Merge pull request #157 from albertyw/lint 2020-08-29 02:37:19 -04:00
Albert Wang
2de96390be Add flake8 instructions to readme 2020-08-28 23:13:24 -07:00
Albert Wang
78cff47a91 Fix regex string 2020-08-28 23:13:24 -07:00
Albert Wang
fa27988c1c Update boolean check 2020-08-28 23:13:23 -07:00
Albert Wang
bb2e2b8c6f Fix whitespace issues 2020-08-28 23:13:23 -07:00
Albert Wang
8fd0f2b64f Do not use bare excepts 2020-08-28 23:13:23 -07:00
Jose Diaz-Gonzalez
753a551961 Merge pull request #161 from albertyw/circleci-project-setup
Add circleci config
2020-08-29 01:48:49 -04:00
Albert Wang
607b6ca69b Add .circleci/config.yml 2020-08-28 02:33:51 -07:00
Jose Diaz-Gonzalez
ef71655b01 Merge pull request #160 from wbolster/patch-1
Include --private flag in example
2020-08-27 13:23:28 -04:00
wouter bolsterlee
d8bcbfa644 Include --private flag in example
By default, private repositories are not included. This is surprising.
It took me a while to figure this out, and making that clear in the
example can help others to be aware of that.
2020-08-27 17:01:56 +02:00
Jose Diaz-Gonzalez
751b0d6e82 Release version 0.35.0 2020-08-05 12:02:21 -04:00
Jose Diaz-Gonzalez
ea633ca2bb Merge pull request #156 from samanthaq/restore-optional-throttling
Make API request throttling optional
2020-08-05 12:01:56 -04:00
Samantha Baldwin
a2115ce3e5 Make API request throttling optional 2020-08-05 11:53:17 -04:00
Jose Diaz-Gonzalez
8a00bb1903 Release version 0.34.0 2020-07-24 13:31:03 -04:00
Jose Diaz-Gonzalez
e53f8d4724 Merge pull request #153 from 0x6d617474/gist_ssh
Add logic for transforming gist repository urls to ssh
2020-07-24 13:30:40 -04:00
Matt Fields
356f5f674b Add logic for transforming gist repository urls to ssh 2020-07-07 17:54:16 -04:00
Jose Diaz-Gonzalez
13128635cb Release version 0.33.1 2020-05-28 16:44:40 -04:00
Jose Diaz-Gonzalez
6e6842b025 Merge pull request #151 from garymoon/readme-update-0.33 2020-05-28 16:43:57 -04:00
Gary Moon
272177c395 Update the readme for new switches added in 0.33 2020-05-26 19:59:47 -04:00
Jose Diaz-Gonzalez
70f711ea68 Release version 0.33.0 2020-04-13 17:14:20 -04:00
Jose Diaz-Gonzalez
3fc9957aac Merge pull request #149 from eht16/simple_api_request_throttling
Add basic API request throttling
2020-04-13 17:13:58 -04:00
Enrico Tröger
78098aae23 Add basic API request throttling
A simple approach to throttle API requests and so keep within the rate
limits of the API. Can be enabled with "--throttle-limit" to specify
when throttling should start.
"--throttle-pause" defines the time to sleep between further API
requests.
2020-04-13 23:06:09 +02:00
17 changed files with 2351 additions and 687 deletions

117
.gitchangelog.rc Normal file
View File

@@ -0,0 +1,117 @@
#
# Format
#
# ACTION: [AUDIENCE:] COMMIT_MSG [@TAG ...]
#
# Description
#
# ACTION is one of 'chg', 'fix', 'new'
#
# Is WHAT the change is about.
#
# 'chg' is for refactor, small improvement, cosmetic changes...
# 'fix' is for bug fixes
# 'new' is for new features, big improvement
#
# SUBJECT is optional and one of 'dev', 'usr', 'pkg', 'test', 'doc'
#
# Is WHO is concerned by the change.
#
# 'dev' is for developpers (API changes, refactors...)
# 'usr' is for final users (UI changes)
# 'pkg' is for packagers (packaging changes)
# 'test' is for testers (test only related changes)
# 'doc' is for doc guys (doc only changes)
#
# COMMIT_MSG is ... well ... the commit message itself.
#
# TAGs are additionnal adjective as 'refactor' 'minor' 'cosmetic'
#
# 'refactor' is obviously for refactoring code only
# 'minor' is for a very meaningless change (a typo, adding a comment)
# 'cosmetic' is for cosmetic driven change (re-indentation, 80-col...)
#
# Example:
#
# new: usr: support of bazaar implemented
# chg: re-indentend some lines @cosmetic
# new: dev: updated code to be compatible with last version of killer lib.
# fix: pkg: updated year of licence coverage.
# new: test: added a bunch of test around user usability of feature X.
# fix: typo in spelling my name in comment. @minor
#
# Please note that multi-line commit message are supported, and only the
# first line will be considered as the "summary" of the commit message. So
# tags, and other rules only applies to the summary. The body of the commit
# message will be displayed in the changelog with minor reformating.
#
# ``ignore_regexps`` is a line of regexps
#
# Any commit having its full commit message matching any regexp listed here
# will be ignored and won't be reported in the changelog.
#
ignore_regexps = [
r'(?i)^(Merge pull request|Merge branch|Release|Update)',
]
#
# ``replace_regexps`` is a dict associating a regexp pattern and its replacement
#
# It will be applied to get the summary line from the full commit message.
#
# Note that you can provide multiple replacement patterns, they will be all
# tried. If None matches, the summary line will be the full commit message.
#
replace_regexps = {
# current format (ie: 'chg: dev: my commit msg @tag1 @tag2')
r'^([cC]hg|[fF]ix|[nN]ew)\s*:\s*((dev|use?r|pkg|test|doc)\s*:\s*)?([^\n@]*)(@[a-z]+\s+)*$':
r'\4',
}
# ``section_regexps`` is a list of 2-tuples associating a string label and a
# list of regexp
#
# Commit messages will be classified in sections thanks to this. Section
# titles are the label, and a commit is classified under this section if any
# of the regexps associated is matching.
#
section_regexps = [
('New', [
r'^[nN]ew\s*:\s*((dev|use?r|pkg|test|doc)\s*:\s*)?([^\n]*)$',
]),
('Changes', [
r'^[cC]hg\s*:\s*((dev|use?r|pkg|test|doc)\s*:\s*)?([^\n]*)$',
]),
('Fix', [
r'^[fF]ix\s*:\s*((dev|use?r|pkg|test|doc)\s*:\s*)?([^\n]*)$',
]),
('Other', None # Match all lines
),
]
# ``body_split_regexp`` is a regexp
#
# Commit message body (not the summary) if existing will be split
# (new line) on this regexp
#
body_split_regexp = r'[\n-]'
# ``tag_filter_regexp`` is a regexp
#
# Tags that will be used for the changelog must match this regexp.
#
# tag_filter_regexp = r'^[0-9]+$'
tag_filter_regexp = r'^(?:[vV])?[0-9\.]+$'
# ``unreleased_version_label`` is a string
#
# This label will be used as the changelog Title of the last set of changes
# between last valid tag and HEAD if any.
unreleased_version_label = "%%version%% (unreleased)"

11
.github/dependabot.yml vendored Normal file
View File

@@ -0,0 +1,11 @@
version: 2
updates:
- package-ecosystem: pip
directory: "/"
schedule:
interval: daily
time: "13:00"
groups:
python-packages:
patterns:
- "*"

41
.github/workflows/automatic-release.yml vendored Normal file
View File

@@ -0,0 +1,41 @@
name: automatic-release
on:
workflow_dispatch:
inputs:
release_type:
description: Release type
required: true
type: choice
options:
- patch
- minor
- major
jobs:
release:
name: Release
runs-on: ubuntu-22.04
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
ssh-key: ${{ secrets.DEPLOY_PRIVATE_KEY }}
- name: Setup Git
run: |
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.8'
- name: Install prerequisites
run: pip install -r release-requirements.txt
- name: Execute release
env:
SEMVER_BUMP: ${{ github.event.inputs.release_type }}
TWINE_REPOSITORY: ${{ vars.TWINE_REPOSITORY }}
TWINE_USERNAME: ${{ secrets.TWINE_USERNAME }}
TWINE_PASSWORD: ${{ secrets.TWINE_PASSWORD }}
run: ./release $SEMVER_BUMP

75
.github/workflows/docker.yml vendored Normal file
View File

@@ -0,0 +1,75 @@
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
name: Create and publish a Docker image
on:
push:
branches:
- 'master'
- 'main'
- 'dev'
tags:
- 'v*'
- 'v*.*'
- 'v*.*.*'
- '*'
- '*.*'
- '*.*.*'
pull_request:
branches:
- 'main'
- 'dev'
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
jobs:
build-and-push-image:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Log in to the Container registry
uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v4
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
type=sha
type=raw,value=latest,enable=${{ github.ref == format('refs/heads/{0}', 'main') }}
- name: Build and push Docker image
uses: docker/build-push-action@v4
with:
context: .
push: true
platforms: linux/amd64,linux/arm64
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}

33
.github/workflows/lint.yml vendored Normal file
View File

@@ -0,0 +1,33 @@
---
name: "lint"
# yamllint disable-line rule:truthy
on:
pull_request:
branches:
- "*"
push:
branches:
- "main"
- "master"
jobs:
lint:
name: lint
runs-on: ubuntu-22.04
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: "3.8"
cache: "pip"
- run: pip install -r release-requirements.txt && pip install wheel
- run: flake8 --ignore=E501,E203,W503
- run: black .
- run: rst-lint README.rst
- run: python setup.py sdist bdist_wheel && twine check dist/*

19
.github/workflows/tagged-release.yml vendored Normal file
View File

@@ -0,0 +1,19 @@
---
name: "tagged-release"
# yamllint disable-line rule:truthy
on:
push:
tags:
- '*'
jobs:
tagged-release:
name: tagged-release
runs-on: ubuntu-20.04
steps:
- uses: "marvinpinto/action-automatic-releases@v1.2.1"
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
prerelease: false

12
.gitignore vendored
View File

@@ -18,13 +18,13 @@ pkg
# Debian Files
debian/files
debian/python-aws-hostname*
debian/python-github-backup*
# Sphinx build
doc/_build
# Generated man page
doc/aws_hostname.1
doc/github_backup.1
# Annoying macOS files
.DS_Store
@@ -34,3 +34,11 @@ doc/aws_hostname.1
.vscode
.atom
README
# RSA
id_rsa
id_rsa.pub
# Virtual env
venv

View File

@@ -1,9 +1,838 @@
Changelog
=========
0.32.0 (2020-04-13)
0.45.1 (2024-03-17)
-------------------
------------------------
- Remove trailing whitespaces. [dale-primer-e]
That are triggering flake.
- Fix error with as_app flag. [dale-primer-e]
- Fix error downloading assets. [dale-primer-e]
When downloading assets using a fine grained token you will get a "can't
concat str to bytes" error. This is due to the fine grained token being
concatenated onto bytes in the line:
`request.add_header("Authorization", "Basic ".encode("ascii") + auth)`
This is better handled in the function `_construct_request` so I changed
the lines that construct the request in `download_file` to use the
function `_construct_request` and updated the function signature to
reflect that.
- Chore(deps): bump the python-packages group with 1 update.
[dependabot[bot]]
Bumps the python-packages group with 1 update: [zipp](https://github.com/jaraco/zipp).
Updates `zipp` from 3.18.0 to 3.18.1
- [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.0...v3.18.1)
---
updated-dependencies:
- dependency-name: zipp
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: python-packages
...
- Chore(deps): bump the python-packages group with 1 update.
[dependabot[bot]]
Bumps the python-packages group with 1 update: [zipp](https://github.com/jaraco/zipp).
Updates `zipp` from 3.17.0 to 3.18.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.17.0...v3.18.0)
---
updated-dependencies:
- dependency-name: zipp
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: python-packages
...
- Chore(deps): bump the python-packages group with 2 updates.
[dependabot[bot]]
Bumps the python-packages group with 2 updates: [importlib-metadata](https://github.com/python/importlib_metadata) and [packaging](https://github.com/pypa/packaging).
Updates `importlib-metadata` from 7.0.1 to 7.0.2
- [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.0.1...v7.0.2)
Updates `packaging` from 23.2 to 24.0
- [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/23.2...24.0)
---
updated-dependencies:
- dependency-name: importlib-metadata
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: python-packages
- dependency-name: packaging
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: python-packages
...
- Chore(deps): bump the python-packages group with 2 updates.
[dependabot[bot]]
Bumps the python-packages group with 2 updates: [pkginfo](https://code.launchpad.net/~tseaver/pkginfo/trunk) and [rich](https://github.com/Textualize/rich).
Updates `pkginfo` from 1.9.6 to 1.10.0
Updates `rich` from 13.7.0 to 13.7.1
- [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.0...v13.7.1)
---
updated-dependencies:
- dependency-name: pkginfo
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: python-packages
- dependency-name: rich
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: python-packages
...
- Chore(deps): bump the python-packages group with 1 update.
[dependabot[bot]]
Bumps the python-packages group with 1 update: [keyring](https://github.com/jaraco/keyring).
Updates `keyring` from 24.3.0 to 24.3.1
- [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/v24.3.0...v24.3.1)
---
updated-dependencies:
- dependency-name: keyring
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: python-packages
...
- Chore(deps): bump the python-packages group with 1 update.
[dependabot[bot]]
Bumps the python-packages group with 1 update: [readme-renderer](https://github.com/pypa/readme_renderer).
Updates `readme-renderer` from 42.0 to 43.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/42.0...43.0)
---
updated-dependencies:
- dependency-name: readme-renderer
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: python-packages
...
- Chore(deps): bump the python-packages group with 1 update.
[dependabot[bot]]
Bumps the python-packages group with 1 update: [urllib3](https://github.com/urllib3/urllib3).
Updates `urllib3` from 2.2.0 to 2.2.1
- [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.0...2.2.1)
---
updated-dependencies:
- dependency-name: urllib3
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: python-packages
...
- Chore(deps): bump the python-packages group with 1 update.
[dependabot[bot]]
Bumps the python-packages group with 1 update: [black](https://github.com/psf/black).
Updates `black` from 24.1.1 to 24.2.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.1.1...24.2.0)
---
updated-dependencies:
- dependency-name: black
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: python-packages
...
- Chore(deps): bump the python-packages group with 2 updates.
[dependabot[bot]]
Bumps the python-packages group with 2 updates: [tqdm](https://github.com/tqdm/tqdm) and [twine](https://github.com/pypa/twine).
Updates `tqdm` from 4.66.1 to 4.66.2
- [Release notes](https://github.com/tqdm/tqdm/releases)
- [Commits](https://github.com/tqdm/tqdm/compare/v4.66.1...v4.66.2)
Updates `twine` from 4.0.2 to 5.0.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/4.0.2...5.0.0)
---
updated-dependencies:
- 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-major
dependency-group: python-packages
...
- Chore(deps): bump the python-packages group with 1 update.
[dependabot[bot]]
Bumps the python-packages group with 1 update: [jaraco-classes](https://github.com/jaraco/jaraco.classes).
Updates `jaraco-classes` from 3.3.0 to 3.3.1
- [Release notes](https://github.com/jaraco/jaraco.classes/releases)
- [Changelog](https://github.com/jaraco/jaraco.classes/blob/main/NEWS.rst)
- [Commits](https://github.com/jaraco/jaraco.classes/compare/v3.3.0...v3.3.1)
---
updated-dependencies:
- dependency-name: jaraco-classes
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: python-packages
...
- Chore(deps): bump the python-packages group with 1 update.
[dependabot[bot]]
Bumps the python-packages group with 1 update: [certifi](https://github.com/certifi/python-certifi).
Updates `certifi` from 2023.11.17 to 2024.2.2
- [Commits](https://github.com/certifi/python-certifi/compare/2023.11.17...2024.02.02)
---
updated-dependencies:
- dependency-name: certifi
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: python-packages
...
- Chore(deps): bump the python-packages group with 2 updates.
[dependabot[bot]]
Bumps the python-packages group with 2 updates: [platformdirs](https://github.com/platformdirs/platformdirs) and [urllib3](https://github.com/urllib3/urllib3).
Updates `platformdirs` from 4.1.0 to 4.2.0
- [Release notes](https://github.com/platformdirs/platformdirs/releases)
- [Changelog](https://github.com/platformdirs/platformdirs/blob/main/CHANGES.rst)
- [Commits](https://github.com/platformdirs/platformdirs/compare/4.1.0...4.2.0)
Updates `urllib3` from 2.1.0 to 2.2.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.1.0...2.2.0)
---
updated-dependencies:
- dependency-name: platformdirs
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
...
- Chore(deps): bump the python-packages group with 1 update.
[dependabot[bot]]
Bumps the python-packages group with 1 update: [black](https://github.com/psf/black).
Updates `black` from 24.1.0 to 24.1.1
- [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.1.0...24.1.1)
---
updated-dependencies:
- dependency-name: black
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: python-packages
...
0.45.0 (2024-01-29)
-------------------
Fix
~~~
- Catch 404s for non-existing hooks. Fixes #176. [Moritz Federspiel]
- Ensure wheel is installed. [Jose Diaz-Gonzalez]
Other
~~~~~
- Fix code style. [BrOleg5]
- Add option to skip prerelease versions. [BrOleg5]
Replace release sorting by tag with release sorting by creation date.
- Add option to include certain number of the latest releases. [BrOleg5]
- Auto docker build. [8cH9azbsFifZ]
- Vs code. [8cH9azbsFifZ]
- Chore(deps): bump the python-packages group with 6 updates.
[dependabot[bot]]
Bumps the python-packages group with 6 updates:
| Package | From | To |
| --- | --- | --- |
| [black](https://github.com/psf/black) | `23.11.0` | `24.1.0` |
| [flake8](https://github.com/pycqa/flake8) | `6.1.0` | `7.0.0` |
| [importlib-metadata](https://github.com/python/importlib_metadata) | `7.0.0` | `7.0.1` |
| [more-itertools](https://github.com/more-itertools/more-itertools) | `10.1.0` | `10.2.0` |
| [pathspec](https://github.com/cpburnz/python-pathspec) | `0.11.2` | `0.12.1` |
| [pyflakes](https://github.com/PyCQA/pyflakes) | `3.1.0` | `3.2.0` |
Updates `black` from 23.11.0 to 24.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/23.11.0...24.1.0)
Updates `flake8` from 6.1.0 to 7.0.0
- [Commits](https://github.com/pycqa/flake8/compare/6.1.0...7.0.0)
Updates `importlib-metadata` from 7.0.0 to 7.0.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.0.0...v7.0.1)
Updates `more-itertools` from 10.1.0 to 10.2.0
- [Release notes](https://github.com/more-itertools/more-itertools/releases)
- [Commits](https://github.com/more-itertools/more-itertools/compare/v10.1.0...v10.2.0)
Updates `pathspec` from 0.11.2 to 0.12.1
- [Release notes](https://github.com/cpburnz/python-pathspec/releases)
- [Changelog](https://github.com/cpburnz/python-pathspec/blob/master/CHANGES.rst)
- [Commits](https://github.com/cpburnz/python-pathspec/compare/v0.11.2...v0.12.1)
Updates `pyflakes` from 3.1.0 to 3.2.0
- [Changelog](https://github.com/PyCQA/pyflakes/blob/main/NEWS.rst)
- [Commits](https://github.com/PyCQA/pyflakes/compare/3.1.0...3.2.0)
---
updated-dependencies:
- dependency-name: black
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: python-packages
- dependency-name: flake8
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-patch
dependency-group: python-packages
- dependency-name: more-itertools
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: python-packages
- dependency-name: pathspec
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: python-packages
- dependency-name: pyflakes
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: python-packages
...
- Chore(deps): bump the python-packages group with 15 updates.
[dependabot[bot]]
Bumps the python-packages group with 15 updates:
| Package | From | To |
| --- | --- | --- |
| [bleach](https://github.com/mozilla/bleach) | `6.0.0` | `6.1.0` |
| [certifi](https://github.com/certifi/python-certifi) | `2023.7.22` | `2023.11.17` |
| [charset-normalizer](https://github.com/Ousret/charset_normalizer) | `3.1.0` | `3.3.2` |
| [idna](https://github.com/kjd/idna) | `3.4` | `3.6` |
| [importlib-metadata](https://github.com/python/importlib_metadata) | `6.6.0` | `7.0.0` |
| [jaraco-classes](https://github.com/jaraco/jaraco.classes) | `3.2.3` | `3.3.0` |
| [keyring](https://github.com/jaraco/keyring) | `23.13.1` | `24.3.0` |
| [markdown-it-py](https://github.com/executablebooks/markdown-it-py) | `2.2.0` | `3.0.0` |
| [more-itertools](https://github.com/more-itertools/more-itertools) | `9.1.0` | `10.1.0` |
| [pygments](https://github.com/pygments/pygments) | `2.15.1` | `2.17.2` |
| [readme-renderer](https://github.com/pypa/readme_renderer) | `37.3` | `42.0` |
| [rich](https://github.com/Textualize/rich) | `13.3.5` | `13.7.0` |
| [tqdm](https://github.com/tqdm/tqdm) | `4.65.0` | `4.66.1` |
| [urllib3](https://github.com/urllib3/urllib3) | `2.0.7` | `2.1.0` |
| [zipp](https://github.com/jaraco/zipp) | `3.15.0` | `3.17.0` |
Updates `bleach` from 6.0.0 to 6.1.0
- [Changelog](https://github.com/mozilla/bleach/blob/main/CHANGES)
- [Commits](https://github.com/mozilla/bleach/compare/v6.0.0...v6.1.0)
Updates `certifi` from 2023.7.22 to 2023.11.17
- [Commits](https://github.com/certifi/python-certifi/compare/2023.07.22...2023.11.17)
Updates `charset-normalizer` from 3.1.0 to 3.3.2
- [Release notes](https://github.com/Ousret/charset_normalizer/releases)
- [Changelog](https://github.com/Ousret/charset_normalizer/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Ousret/charset_normalizer/compare/3.1.0...3.3.2)
Updates `idna` from 3.4 to 3.6
- [Changelog](https://github.com/kjd/idna/blob/master/HISTORY.rst)
- [Commits](https://github.com/kjd/idna/compare/v3.4...v3.6)
Updates `importlib-metadata` from 6.6.0 to 7.0.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/v6.6.0...v7.0.0)
Updates `jaraco-classes` from 3.2.3 to 3.3.0
- [Release notes](https://github.com/jaraco/jaraco.classes/releases)
- [Changelog](https://github.com/jaraco/jaraco.classes/blob/main/NEWS.rst)
- [Commits](https://github.com/jaraco/jaraco.classes/compare/v3.2.3...v3.3.0)
Updates `keyring` from 23.13.1 to 24.3.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/v23.13.1...v24.3.0)
Updates `markdown-it-py` from 2.2.0 to 3.0.0
- [Release notes](https://github.com/executablebooks/markdown-it-py/releases)
- [Changelog](https://github.com/executablebooks/markdown-it-py/blob/master/CHANGELOG.md)
- [Commits](https://github.com/executablebooks/markdown-it-py/compare/v2.2.0...v3.0.0)
Updates `more-itertools` from 9.1.0 to 10.1.0
- [Release notes](https://github.com/more-itertools/more-itertools/releases)
- [Commits](https://github.com/more-itertools/more-itertools/compare/v9.1.0...v10.1.0)
Updates `pygments` from 2.15.1 to 2.17.2
- [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.15.1...2.17.2)
Updates `readme-renderer` from 37.3 to 42.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/37.3...42.0)
Updates `rich` from 13.3.5 to 13.7.0
- [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.3.5...v13.7.0)
Updates `tqdm` from 4.65.0 to 4.66.1
- [Release notes](https://github.com/tqdm/tqdm/releases)
- [Commits](https://github.com/tqdm/tqdm/compare/v4.65.0...v4.66.1)
Updates `urllib3` from 2.0.7 to 2.1.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.0.7...2.1.0)
Updates `zipp` from 3.15.0 to 3.17.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.15.0...v3.17.0)
---
updated-dependencies:
- 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: 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: jaraco-classes
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-major
dependency-group: python-packages
- dependency-name: markdown-it-py
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: python-packages
- dependency-name: more-itertools
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: python-packages
- dependency-name: pygments
dependency-type: direct:production
update-type: version-update:semver-minor
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: tqdm
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
- dependency-name: zipp
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: python-packages
...
- Chore: format python code. [Jose Diaz-Gonzalez]
- Chore: format yaml. [Jose Diaz-Gonzalez]
- Chore: update gitignore. [Jose Diaz-Gonzalez]
- Feat: add dependabot config to repository. [Jose Diaz-Gonzalez]
0.44.1 (2023-12-09)
-------------------
Fix
~~~
- Use a deploy key to push tags so releases get auto-created. [Jose
Diaz-Gonzalez]
Other
~~~~~
- Chore(deps): bump certifi from 2023.5.7 to 2023.7.22.
[dependabot[bot]]
Bumps [certifi](https://github.com/certifi/python-certifi) from 2023.5.7 to 2023.7.22.
- [Commits](https://github.com/certifi/python-certifi/compare/2023.05.07...2023.07.22)
---
updated-dependencies:
- dependency-name: certifi
dependency-type: direct:production
...
- Tests: run lint on pull requests. [Jose Diaz-Gonzalez]
- Chore(deps): bump urllib3 from 2.0.2 to 2.0.7. [dependabot[bot]]
Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.0.2 to 2.0.7.
- [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.0.2...2.0.7)
---
updated-dependencies:
- dependency-name: urllib3
dependency-type: direct:production
...
- Chore: remove circleci as tests now run in github actions. [Jose Diaz-
Gonzalez]
- Tests: install correct dependencies and rename job. [Jose Diaz-
Gonzalez]
- Tests: add lint github action workflow. [Jose Diaz-Gonzalez]
- Feat: install autopep8. [Jose Diaz-Gonzalez]
- Chore(deps): bump certifi from 2023.5.7 to 2023.7.22.
[dependabot[bot]]
Bumps [certifi](https://github.com/certifi/python-certifi) from 2023.5.7 to 2023.7.22.
- [Commits](https://github.com/certifi/python-certifi/compare/2023.05.07...2023.07.22)
---
updated-dependencies:
- dependency-name: certifi
dependency-type: direct:production
...
- Chore: reformat file and update flake8. [Jose Diaz-Gonzalez]
0.44.0 (2023-12-09)
-------------------
Fix
~~~
- Do not use raw property in readme. [Jose Diaz-Gonzalez]
This is disabled on pypi.
- Validate release before committing and uploading it. [Jose Diaz-
Gonzalez]
- Correct lint issues and show errors on lint. [Jose Diaz-Gonzalez]
- Minor cosmetic changes. [ZhymabekRoman]
- Add forgotten variable formatting. [ZhymabekRoman]
- Refactor logging Based on #195. [ZhymabekRoman]
- Minor typo fix. [Zhymabek Roman]
Other
~~~~~
- Bump certifi from 2023.5.7 to 2023.7.22. [dependabot[bot]]
Bumps [certifi](https://github.com/certifi/python-certifi) from 2023.5.7 to 2023.7.22.
- [Commits](https://github.com/certifi/python-certifi/compare/2023.05.07...2023.07.22)
---
updated-dependencies:
- dependency-name: certifi
dependency-type: direct:production
...
- Checkout everything. [Halvor Holsten Strand]
- Added automatic release workflow, for use with GitHub Actions. [Halvor
Holsten Strand]
- Feat: create Dockerfile. [Tom Plant]
- Fix rst html. [hozza]
- Add contributor section. [hozza]
- Fix readme wording and format. [hozza]
- Fixed readme working and layout. [hozza]
- Fix readme formatting, spelling and layout. [hozza]
- Added details usage and examples including gotchas, errors and
development instructions. [hozza]
- Added verbose install instructions. [hozza]
- Bump urllib3 from 2.0.2 to 2.0.7. [dependabot[bot]]
Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.0.2 to 2.0.7.
- [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.0.2...2.0.7)
---
updated-dependencies:
- dependency-name: urllib3
dependency-type: direct:production
...
- Suggested modification to fix win32 logging failure, due to local
variable scope. Logger does not appear to have any utility within
"logging_subprocess". [Halvor Holsten Strand]
- Simplified one if/elif scenario. Extracted file reading of another
if/elif scenario. [Halvor Holsten Strand]
- Ran black. [Halvor Holsten Strand]
- Keep backwards compatability by going back to "--token" for classic.
Allow "file://" uri for "--token-fine". [Halvor Holsten Strand]
- Add support for fine-grained tokens. [froggleston]
- Refactor logging and add support for quiet flag. [Harrison Wright]
0.43.1 (2023-05-29)
-------------------
- Chore: add release requirements. [Jose Diaz-Gonzalez]
0.43.0 (2023-05-29)
-------------------
Fix
~~~
- Do not update readme. [Jose Diaz-Gonzalez]
- Adjust for black. [Jose Diaz-Gonzalez]
- Adjust for black. [Jose Diaz-Gonzalez]
- Adjust for black. [Jose Diaz-Gonzalez]
Other
~~~~~
- Feat: commit gitchangelog.rc to repo so anyone can generate a
changelog. [Jose Diaz-Gonzalez]
- Feat: add release tagging. [Jose Diaz-Gonzalez]
- Chore: formatting. [Jose Diaz-Gonzalez]
- Chore: run black. [Jose Diaz-Gonzalez]
- Add --log-level command line argument. [Enrico Tröger]
Support changing the log level to the desired value easily.
For example, this is useful to suppress progress messages but
keep logging warnings and errors.
- Check both updated_at and pushed_at properties. [Ken Bailey]
Check both updated_at and pushed_at dates to get the last_update to reduce data retrieved on incremental api calls using since.
0.42.0 (2022-11-28)
-------------------
- Add option to exclude repositories. [npounder]
- Backup regular pull request comments as well. [Oneric]
Before, only review comments were backed up;
regular comments need to be fetched via issue API.
- Fix bug forever retry when request url error. [kornpisey]
- Added --no-prune option to disable prune option when doing git fetch.
[kornpisey]
0.41.0 (2022-03-02)
-------------------
- Git lfs clone doe snot respect --mirror. [Louis Parisot]
0.40.2 (2021-12-29)
-------------------
- Fix lint issues raised by Flake8. [atinary-afoulon]
According to job:
[ https://app.circleci.com/pipelines/github/josegonzalez/python-github-backup/30/workflows/74eb93f2-2505-435d-b728-03b3cc04c14a/jobs/23 ]
Failed on the following checks:
./github_backup/github_backup.py:20:1: F811 redefinition of unused 'logging' from line 14
./github_backup/github_backup.py:45:1: E302 expected 2 blank lines, found 1
./github_backup/github_backup.py:136:20: E251 unexpected spaces around keyword / parameter equals
0.40.1 (2021-09-22)
-------------------
- Revert to fetch. [Harrison Wright]
0.40.0 (2021-07-12)
-------------------
- Add retry on certain network errors. [Jacek Nykis]
This change includes certain network level errors in the retry logic.
It partially address #110 but I think more comprehensive fix would be useful.
- Pull changes from remote. [Jonas]
use `git pull` to pull actual files from the remote instead of using `fetch` for only the metadata
0.39.0 (2021-03-19)
-------------------
Fix
~~~
- Fix missing INFO logs. [Gallo Feliz]
Other
~~~~~
- Try to make compatible code with direct Python call ; reduce the hard
link of the code with the cli. [Gallo Feliz]
- Fixed release_name with slash bug. [Álvaro Torres Cogollo]
0.38.0 (2021-02-13)
-------------------
Fix
~~~
- Always clone with OAuth token when provided. [Samantha Baldwin]
Github Enterprise servers with 'Anonymous Git read access' disabled
cause `git ls-remote` to fail (128) for a repo's `clone_url`. Using the
OAuth token when provided allows cloning private AND public repos when
Anonymous Git read access is disabled.
Other
~~~~~
- Change broken link to a fork to a working link to upstream. [Rick van
Schijndel]
0.37.2 (2021-01-02)
-------------------
Fix
~~~
- Use distutils.core on error. [Jose Diaz-Gonzalez]
0.37.1 (2021-01-02)
-------------------
Fix
~~~
- Use twine for releases. [Jose Diaz-Gonzalez]
The old method of releasing to pypi broke for whatever reason and switching to a supported toolchain is easier than debugging the old one.
Additionally:
- Update gitchangelog
- Fix license entry
- Set long description type
- Gitignore the temporary readme file
0.37.0 (2021-01-02)
-------------------
- Add support for python 3.7 and 3.8 in package classifiers. [Albert
Wang]
- Remove support for python 2.7 in package classifiers. [Albert Wang]
- Remove python 2 specific import logic. [Albert Wang]
- Remove python 2 specific logic. [Albert Wang]
- Add ability to skip archived repositories. [Gary Moon]
0.36.0 (2020-08-29)
-------------------
- Add flake8 instructions to readme. [Albert Wang]
- Fix regex string. [Albert Wang]
- Fix whitespace issues. [Albert Wang]
- Do not use bare excepts. [Albert Wang]
- Add .circleci/config.yml. [Albert Wang]
- Include --private flag in example. [wouter bolsterlee]
By default, private repositories are not included. This is surprising.
It took me a while to figure this out, and making that clear in the
example can help others to be aware of that.
0.35.0 (2020-08-05)
-------------------
- Make API request throttling optional. [Samantha Baldwin]
0.34.0 (2020-07-24)
-------------------
- Add logic for transforming gist repository urls to ssh. [Matt Fields]
0.33.0 (2020-04-13)
-------------------
- Add basic API request throttling. [Enrico Tröger]
A simple approach to throttle API requests and so keep within the rate
limits of the API. Can be enabled with "--throttle-limit" to specify
when throttling should start.
"--throttle-pause" defines the time to sleep between further API
requests.
0.32.0 (2020-04-13)
-------------------
- Add timestamp to log messages. [Enrico Tröger]

16
Dockerfile Normal file
View File

@@ -0,0 +1,16 @@
FROM python:3.9.18-slim
RUN --mount=type=cache,target=/var/cache/apt \
apt-get update && apt-get install -y git git-lfs
WORKDIR /usr/src/app
COPY release-requirements.txt .
RUN --mount=type=cache,target=/root/.cache/pip \
pip install -r release-requirements.txt
COPY . .
RUN --mount=type=cache,target=/root/.cache/pip \
pip install .
ENTRYPOINT [ "github-backup" ]

View File

@@ -4,14 +4,13 @@ github-backup
|PyPI| |Python Versions|
This project is considered feature complete for the primary maintainer. If you would like a bugfix or enhancement and cannot sponsor the work, pull requests are welcome. Feel free to contact the maintainer for consulting estimates if desired.
backup a github user or organization
The package can be used to backup an *entire* `Github <https://github.com/>`_ organization, repository or user account, including starred repos, issues and wikis in the most appropriate format (clones for wikis, json files for issues).
Requirements
============
- GIT 1.9+
- Python
Installation
============
@@ -20,28 +19,40 @@ Using PIP via PyPI::
pip install github-backup
Using PIP via Github::
Using PIP via Github (more likely the latest version)::
pip install git+https://github.com/josegonzalez/python-github-backup.git#egg=github-backup
Usage
=====
*Install note for python newcomers:*
CLI Usage is as follows::
Python scripts are unlikely to be included in your ``$PATH`` by default, this means it cannot be run directly in terminal with ``$ github-backup ...``, you can either add python's install path to your environments ``$PATH`` or call the script directly e.g. using ``$ ~/.local/bin/github-backup``.*
github-backup [-h] [-u USERNAME] [-p PASSWORD] [-t TOKEN] [--as-app]
[-o OUTPUT_DIRECTORY] [-i] [--starred] [--all-starred]
[--watched] [--followers] [--following] [--all]
[--issues] [--issue-comments] [--issue-events] [--pulls]
Basic Help
==========
Show the CLI help output::
github-backup -h
CLI Help output::
github-backup [-h] [-u USERNAME] [-p PASSWORD] [-t TOKEN_CLASSIC]
[-f TOKEN_FINE] [--as-app] [-o OUTPUT_DIRECTORY]
[-l LOG_LEVEL] [-i] [--starred] [--all-starred]
[--watched] [--followers] [--following] [--all] [--issues]
[--issue-comments] [--issue-events] [--pulls]
[--pull-comments] [--pull-commits] [--pull-details]
[--labels] [--hooks] [--milestones] [--repositories]
[--bare] [--lfs] [--wikis] [--gists] [--starred-gists]
[--skip-existing] [-L [LANGUAGES [LANGUAGES ...]]]
[--skip-archived] [--skip-existing] [-L [LANGUAGES ...]]
[-N NAME_REGEX] [-H GITHUB_HOST] [-O] [-R REPOSITORY]
[-P] [-F] [--prefer-ssh] [-v]
[--keychain-name OSX_KEYCHAIN_ITEM_NAME]
[--keychain-account OSX_KEYCHAIN_ITEM_ACCOUNT]
[--releases] [--assets]
[--releases] [--latest-releases NUMBER_OF_LATEST_RELEASES]
[--skip-prerelease] [--assets]
[--exclude [REPOSITORY [REPOSITORY ...]]
[--throttle-limit THROTTLE_LIMIT] [--throttle-pause THROTTLE_PAUSE]
USER
Backup a github account
@@ -56,12 +67,18 @@ CLI Usage is as follows::
-p PASSWORD, --password PASSWORD
password for basic auth. If a username is given but
not a password, the password will be prompted for.
-t TOKEN, --token TOKEN
-f TOKEN_FINE, --token-fine TOKEN_FINE
fine-grained personal access token or path to token
(file://...)
-t TOKEN_CLASSIC, --token TOKEN_CLASSIC
personal access, OAuth, or JSON Web token, or path to
token (file://...)
--as-app authenticate as github app instead of as a user.
-o OUTPUT_DIRECTORY, --output-directory OUTPUT_DIRECTORY
directory at which to backup the repositories
-l LOG_LEVEL, --log-level LOG_LEVEL
log level to use (default: info, possible levels:
debug, info, warning, error, critical)
-i, --incremental incremental backup
--starred include JSON output of starred repositories in backup
--all-starred include starred repositories in backup [*]
@@ -109,19 +126,60 @@ CLI Usage is as follows::
keychain that holds the personal access or OAuth token
--releases include release information, not including assets or
binaries
--latest-releases NUMBER_OF_LATEST_RELEASES
include certain number of the latest releases;
only applies if including releases
--skip-prerelease skip prerelease and draft versions; only applies if including releases
--assets include assets alongside release information; only
applies if including releases
--exclude [REPOSITORY [REPOSITORY ...]]
names of repositories to exclude from backup.
--throttle-limit THROTTLE_LIMIT
start throttling of GitHub API requests after this
amount of API requests remain
--throttle-pause THROTTLE_PAUSE
wait this amount of seconds when API request
throttling is active (default: 30.0, requires
--throttle-limit to be set)
The package can be used to backup an *entire* organization or repository, including issues and wikis in the most appropriate format (clones for wikis, json files for issues).
Usage Details
=============
Authentication
==============
--------------
**Password-based authentication** will fail if you have two-factor authentication enabled, and will `be deprecated <https://github.blog/2023-03-09-raising-the-bar-for-software-security-github-2fa-begins-march-13/>`_ by 2023 EOY.
``--username`` is used for basic password authentication and separate from the positional argument ``USER``, which specifies the user account you wish to back up.
**Classic tokens** are `slightly less secure <https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#personal-access-tokens-classic>`_ as they provide very coarse-grained permissions.
If you need authentication for long-running backups (e.g. for a cron job) it is recommended to use **fine-grained personal access token** ``-f TOKEN_FINE``.
Fine Tokens
~~~~~~~~~~~
You can "generate new token", choosing the repository scope by selecting specific repos or all repos. On Github this is under *Settings -> Developer Settings -> Personal access tokens -> Fine-grained Tokens*
Customise the permissions for your use case, but for a personal account full backup you'll need to enable the following permissions:
**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.
Prefer SSH
~~~~~~~~~~
If cloning repos is enabled with ``--repositories``, ``--all-starred``, ``--wikis``, ``--gists``, ``--starred-gists`` using the ``--prefer-ssh`` argument will use ssh for cloning the git repos, but all other connections will still use their own protocol, e.g. API requests for issues uses HTTPS.
To clone with SSH, you'll need SSH authentication setup `as usual with Github <https://docs.github.com/en/authentication/connecting-to-github-with-ssh>`_, e.g. via SSH public and private keys.
Note: Password-based authentication will fail if you have two-factor authentication enabled.
Using the Keychain on Mac OSX
=============================
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Note: On Mac OSX the token can be stored securely in the user's keychain. To do this:
1. Open Keychain from "Applications -> Utilities -> Keychain Access"
@@ -135,30 +193,143 @@ Note: When you run github-backup, you will be asked whether you want to allow "
1. **Allow:** In this case you will need to click "Allow" each time you run `github-backup`
2. **Always Allow:** In this case, you will not be asked for permission when you run `github-backup` in future. This is less secure, but is required if you want to schedule `github-backup` to run automatically
About Git LFS
=============
When you use the "--lfs" option, you will need to make sure you have Git LFS installed.
Github Rate-limit and Throttling
--------------------------------
"github-backup" will automatically throttle itself based on feedback from the Github API.
Their API is usually rate-limited to 5000 calls per hour. The API will ask github-backup to pause until a specific time when the limit is reset again (at the start of the next hour). This continues until the backup is complete.
During a large backup, such as ``--all-starred``, and on a fast connection this can result in (~20 min) pauses with bursts of API calls periodically maxing out the API limit. If this is not suitable `it has been observed <https://github.com/josegonzalez/python-github-backup/issues/76#issuecomment-636158717>`_ under real-world conditions that overriding the throttle with ``--throttle-limit 5000 --throttle-pause 0.6`` provides a smooth rate across the hour, although a ``--throttle-pause 0.72`` (3600 seconds [1 hour] / 5000 limit) is theoretically safer to prevent large rate-limit pauses.
About Git LFS
-------------
When you use the ``--lfs`` option, you will need to make sure you have Git LFS installed.
Instructions on how to do this can be found on https://git-lfs.github.com.
Examples
========
Backup all repositories::
Gotchas / Known-issues
======================
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.
Cloning all starred size
------------------------
Using the ``--all-starred`` argument to clone all starred repositories may use a large amount of storage space, especially if ``--all`` or more arguments are used. e.g. commonly starred repos can have tens of thousands of issues, many large assets and the repo itself etc. Consider just storing links to starred repos in JSON format with ``--starred``.
Incremental Backup
------------------
Using (``-i, --incremental``) will only request new data from the API **since the last run (successful or not)**. e.g. only request issues from the API since the last run.
This means any blocking errors on previous runs can cause a large amount of missing data in backups.
Known blocking errors
---------------------
Some errors will block the backup run by exiting the script. e.g. receiving a 403 Forbidden error from the Github API.
If the incremental argument is used, this will result in the next backup only requesting API data since the last blocked/failed run. Potentially causing unexpected large amounts of missing data.
It's therefore recommended to only use the incremental argument if the output/result is being actively monitored, or complimented with periodic full non-incremental runs, to avoid unexpected missing data in a regular backup runs.
1. **Starred public repo hooks blocking**
Since the ``--all`` argument includes ``--hooks``, if you use ``--all`` and ``--all-starred`` together to clone a users starred public repositories, the backup will likely error and block the backup continuing.
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"
---------------------------
Using the bare clone argument (``--bare``) will actually call git's ``clone --mirror`` command. There's a subtle difference between `bare <https://www.git-scm.com/docs/git-clone#Documentation/git-clone.txt---bare>`_ and `mirror <https://www.git-scm.com/docs/git-clone#Documentation/git-clone.txt---mirror>`_ clone.
*From git docs "Compared to --bare, --mirror not only maps local branches of the source to local branches of the target, it maps all refs (including remote-tracking branches, notes etc.) and sets up a refspec configuration such that all these refs are overwritten by a git remote update in the target repository."*
Starred gists vs starred repo behaviour
---------------------------------------
The starred normal repo cloning (``--all-starred``) argument stores starred repos separately to the users own repositories. However, using ``--starred-gists`` will store starred gists within the same directory as the users own gists ``--gists``. Also, all gist repo directory names are IDs not the gist's name.
Skip existing on incomplete backups
-----------------------------------
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.
Github Backup Examples
======================
Backup all repositories, including private ones using a classic token::
export ACCESS_TOKEN=SOME-GITHUB-TOKEN
github-backup WhiteHouse --token $ACCESS_TOKEN --organization --output-directory /tmp/white-house --repositories
github-backup WhiteHouse --token $ACCESS_TOKEN --organization --output-directory /tmp/white-house --repositories --private
Backup a single organization repository with everything else (wiki, pull requests, comments, issues etc)::
Use a fine-grained access token to backup a single organization repository with everything else (wiki, pull requests, comments, issues etc)::
export ACCESS_TOKEN=SOME-GITHUB-TOKEN
export FINE_ACCESS_TOKEN=SOME-GITHUB-TOKEN
ORGANIZATION=docker
REPO=cli
# e.g. git@github.com:docker/cli.git
github-backup $ORGANIZATION -P -t $ACCESS_TOKEN -o . --all -O -R $REPO
github-backup $ORGANIZATION -P -f $FINE_ACCESS_TOKEN -o . --all -O -R $REPO
Quietly and incrementally backup useful Github user data (public and private repos with SSH) including; all issues, pulls, all public starred repos and gists (omitting "hooks", "releases" and therefore "assets" to prevent blocking). *Great for a cron job.* ::
export FINE_ACCESS_TOKEN=SOME-GITHUB-TOKEN
GH_USER=YOUR-GITHUB-USER
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
Debug an error/block or incomplete backup into a temporary directory. Omit "incremental" to fill a previous incomplete backup. ::
export FINE_ACCESS_TOKEN=SOME-GITHUB-TOKEN
GH_USER=YOUR-GITHUB-USER
github-backup -f $FINE_ACCESS_TOKEN -o /tmp/github-backup/ -l debug -P --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
Development
===========
This project is considered feature complete for the primary maintainer @josegonzalez. If you would like a bugfix or enhancement, pull requests are welcome. Feel free to contact the maintainer for consulting estimates if you'd like to sponsor the work instead.
Contibuters
-----------
A huge thanks to all the contibuters!
.. image:: https://contrib.rocks/image?repo=josegonzalez/python-github-backup
:target: https://github.com/josegonzalez/python-github-backup/graphs/contributors
:alt: contributors
Testing
-------
This project currently contains no unit tests. To run linting::
pip install flake8
flake8 --ignore=E501
.. |PyPI| image:: https://img.shields.io/pypi/v/github-backup.svg
:target: https://pypi.python.org/pypi/github-backup/
.. |Python Versions| image:: https://img.shields.io/pypi/pyversions/github-backup.svg
:target: https://github.com/albertyw/github-backup
:target: https://github.com/josegonzalez/python-github-backup

View File

@@ -1,6 +1,8 @@
#!/usr/bin/env python
import logging
import os
import sys
from github_backup.github_backup import (
backup_account,
@@ -8,29 +10,43 @@ from github_backup.github_backup import (
check_git_lfs_install,
filter_repositories,
get_authenticated_user,
log_info,
logger,
mkdir_p,
parse_args,
retrieve_repositories,
)
logging.basicConfig(
format="%(asctime)s.%(msecs)03d: %(message)s",
datefmt="%Y-%m-%dT%H:%M:%S",
level=logging.INFO,
)
def main():
args = parse_args()
if args.quiet:
logger.setLevel(logging.WARNING)
output_directory = os.path.realpath(args.output_directory)
if not os.path.isdir(output_directory):
log_info('Create output directory {0}'.format(output_directory))
logger.info("Create output directory {0}".format(output_directory))
mkdir_p(output_directory)
if args.lfs_clone:
check_git_lfs_install()
if args.log_level:
log_level = logging.getLevelName(args.log_level.upper())
if isinstance(log_level, int):
logger.root.setLevel(log_level)
if not args.as_app:
log_info('Backing up user {0} to {1}'.format(args.user, output_directory))
logger.info("Backing up user {0} to {1}".format(args.user, output_directory))
authenticated_user = get_authenticated_user(args)
else:
authenticated_user = {'login': None}
authenticated_user = {"login": None}
repositories = retrieve_repositories(args, authenticated_user)
repositories = filter_repositories(args, repositories)
@@ -38,5 +54,9 @@ def main():
backup_account(args, output_directory)
if __name__ == '__main__':
if __name__ == "__main__":
try:
main()
except Exception as e:
logger.error(str(e))
sys.exit(1)

View File

@@ -1 +1 @@
__version__ = '0.32.0'
__version__ = "0.45.1"

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,7 @@
{
"folders": [
{
"path": "."
}
]
}

52
release
View File

@@ -1,12 +1,13 @@
#!/usr/bin/env bash
set -eo pipefail; [[ $RELEASE_TRACE ]] && set -x
set -eo pipefail
[[ $RELEASE_TRACE ]] && set -x
if [[ ! -f setup.py ]]; then
echo -e "${RED}WARNING: Missing setup.py${COLOR_OFF}\n"
exit 1
fi
PACKAGE_NAME="$(cat setup.py | grep "name='" | head | cut -d "'" -f2)"
PACKAGE_NAME="$(cat setup.py | grep 'name="' | head | cut -d '"' -f2)"
INIT_PACKAGE_NAME="$(echo "${PACKAGE_NAME//-/_}")"
PUBLIC="true"
@@ -22,7 +23,7 @@ CYAN="\033[0;36m" # cyan
pip install wheel >/dev/null
command -v gitchangelog >/dev/null 2>&1 || {
echo -e "${RED}WARNING: Missing gitchangelog binary, please run: pip install gitchangelog==2.2.0${COLOR_OFF}\n"
echo -e "${RED}WARNING: Missing gitchangelog binary, please run: pip install gitchangelog==3.0.4${COLOR_OFF}\n"
exit 1
}
@@ -31,6 +32,11 @@ command -v rst-lint > /dev/null || {
exit 1
}
command -v twine >/dev/null || {
echo -e "${RED}WARNING: Missing twine binary, please run: pip install twine==3.2.0${COLOR_OFF}\n"
exit 1
}
if [[ "$@" != "major" ]] && [[ "$@" != "minor" ]] && [[ "$@" != "patch" ]]; then
echo -e "${RED}WARNING: Invalid release type, must specify 'major', 'minor', or 'patch'${COLOR_OFF}\n"
exit 1
@@ -38,13 +44,13 @@ fi
echo -e "\n${GREEN}STARTING RELEASE PROCESS${COLOR_OFF}\n"
set +e;
set +e
git status | grep -Eo "working (directory|tree) clean" &>/dev/null
if [ ! $? -eq 0 ]; then # working directory is NOT clean
echo -e "${RED}WARNING: You have uncomitted changes, you may have forgotten something${COLOR_OFF}\n"
exit 1
fi
set -e;
set -e
echo -e "${YELLOW}--->${COLOR_OFF} Updating local copy"
git pull -q origin master
@@ -57,14 +63,14 @@ minor=$(echo $current_version | awk '{split($0,a,"."); print a[2]}')
patch=$(echo $current_version | awk '{split($0,a,"."); print a[3]}')
if [[ "$@" == "major" ]]; then
major=$(($major + 1));
major=$(($major + 1))
minor="0"
patch="0"
elif [[ "$@" == "minor" ]]; then
minor=$(($minor + 1));
minor=$(($minor + 1))
patch="0"
elif [[ "$@" == "patch" ]]; then
patch=$(($patch + 1));
patch=$(($patch + 1))
fi
next_version="${major}.${minor}.${patch}"
@@ -72,7 +78,7 @@ next_version="${major}.${minor}.${patch}"
echo -e "${YELLOW} >${COLOR_OFF} ${MAGENTA}${current_version}${COLOR_OFF} -> ${MAGENTA}${next_version}${COLOR_OFF}"
echo -e "${YELLOW}--->${COLOR_OFF} Ensuring readme passes lint checks (if this fails, run rst-lint)"
rst-lint README.rst > /dev/null
rst-lint README.rst || exit 1
echo -e "${YELLOW}--->${COLOR_OFF} Creating necessary temp file"
tempfoo=$(basename $0)
@@ -81,18 +87,12 @@ TMPFILE=$(mktemp /tmp/${tempfoo}.XXXXXX) || {
exit 1
}
find_this="__version__ = '$current_version'"
replace_with="__version__ = '$next_version'"
find_this="__version__ = \"$current_version\""
replace_with="__version__ = \"$next_version\""
echo -e "${YELLOW}--->${COLOR_OFF} Updating ${INIT_PACKAGE_NAME}/__init__.py"
sed "s/$find_this/$replace_with/" ${INIT_PACKAGE_NAME}/__init__.py >$TMPFILE && mv $TMPFILE ${INIT_PACKAGE_NAME}/__init__.py
find_this="${PACKAGE_NAME}.git@$current_version"
replace_with="${PACKAGE_NAME}.git@$next_version"
echo -e "${YELLOW}--->${COLOR_OFF} Updating README.rst"
sed "s/$find_this/$replace_with/" README.rst > $TMPFILE && mv $TMPFILE README.rst
if [ -f docs/conf.py ]; then
echo -e "${YELLOW}--->${COLOR_OFF} Updating docs"
find_this="version = '${current_version}'"
@@ -106,7 +106,9 @@ fi
echo -e "${YELLOW}--->${COLOR_OFF} Updating CHANGES.rst for new release"
version_header="$next_version ($(date +%F))"
set +e; dashes=$(yes '-'|head -n ${#version_header}|tr -d '\n') ; set -e
set +e
dashes=$(yes '-' | head -n ${#version_header} | tr -d '\n')
set -e
gitchangelog | sed "4s/.*/$version_header/" | sed "5s/.*/$dashes/" >$TMPFILE && mv $TMPFILE CHANGES.rst
echo -e "${YELLOW}--->${COLOR_OFF} Adding changed files to git"
@@ -116,6 +118,15 @@ if [ -f docs/conf.py ]; then git add docs/conf.py; fi
echo -e "${YELLOW}--->${COLOR_OFF} Creating release"
git commit -q -m "Release version $next_version"
if [[ "$PUBLIC" == "true" ]]; then
echo -e "${YELLOW}--->${COLOR_OFF} Creating python release files"
cp README.rst README
python setup.py sdist bdist_wheel >/dev/null
echo -e "${YELLOW}--->${COLOR_OFF} Validating long_description"
twine check dist/*
fi
echo -e "${YELLOW}--->${COLOR_OFF} Tagging release"
git tag -a $next_version -m "Release version $next_version"
@@ -123,9 +134,8 @@ echo -e "${YELLOW}--->${COLOR_OFF} Pushing release and tags to github"
git push -q origin master && git push -q --tags
if [[ "$PUBLIC" == "true" ]]; then
echo -e "${YELLOW}--->${COLOR_OFF} Creating python release"
cp README.rst README
python setup.py sdist bdist_wheel upload > /dev/null
echo -e "${YELLOW}--->${COLOR_OFF} Uploading python release"
twine upload dist/*
rm README
fi

38
release-requirements.txt Normal file
View File

@@ -0,0 +1,38 @@
autopep8==2.0.4
black==24.2.0
bleach==6.1.0
certifi==2024.2.2
charset-normalizer==3.3.2
click==8.1.7
colorama==0.4.6
docutils==0.20.1
flake8==7.0.0
gitchangelog==3.0.4
idna==3.6
importlib-metadata==7.0.2
jaraco.classes==3.3.1
keyring==24.3.1
markdown-it-py==3.0.0
mccabe==0.7.0
mdurl==0.1.2
more-itertools==10.2.0
mypy-extensions==1.0.0
packaging==24.0
pathspec==0.12.1
pkginfo==1.10.0
platformdirs==4.2.0
pycodestyle==2.11.1
pyflakes==3.2.0
Pygments==2.17.2
readme-renderer==43.0
requests==2.31.0
requests-toolbelt==1.0.0
restructuredtext-lint==1.4.0
rfc3986==2.0.0
rich==13.7.1
six==1.16.0
tqdm==4.66.2
twine==5.0.0
urllib3==2.2.1
webencodings==0.5.1
zipp==3.18.1

View File

@@ -1,10 +1,12 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
from github_backup import __version__
try:
from setuptools import setup
setup # workaround for pyflakes issue #13
except ImportError:
from distutils.core import setup
@@ -15,6 +17,7 @@ except ImportError:
# http://www.eby-sarna.com/pipermail/peak/2010-May/003357.html)
try:
import multiprocessing
multiprocessing
except ImportError:
pass
@@ -25,24 +28,26 @@ def open_file(fname):
setup(
name='github-backup',
name="github-backup",
version=__version__,
author='Jose Diaz-Gonzalez',
author_email='github-backup@josediazgonzalez.com',
packages=['github_backup'],
scripts=['bin/github-backup'],
url='http://github.com/josegonzalez/python-github-backup',
license=open('LICENSE.txt').read(),
author="Jose Diaz-Gonzalez",
author_email="github-backup@josediazgonzalez.com",
packages=["github_backup"],
scripts=["bin/github-backup"],
url="http://github.com/josegonzalez/python-github-backup",
license="MIT",
classifiers=[
'Development Status :: 5 - Production/Stable',
'Topic :: System :: Archiving :: Backup',
'License :: OSI Approved :: MIT License',
'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3.5',
'Programming Language :: Python :: 3.6',
"Development Status :: 5 - Production/Stable",
"Topic :: System :: Archiving :: Backup",
"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",
],
description='backup a github user or organization',
long_description=open_file('README.rst').read(),
install_requires=open_file('requirements.txt').readlines(),
description="backup a github user or organization",
long_description=open_file("README.rst").read(),
long_description_content_type="text/x-rst",
install_requires=open_file("requirements.txt").readlines(),
zip_safe=True,
)