mirror of
https://github.com/josegonzalez/python-github-backup.git
synced 2025-12-06 00:28:01 +01:00
Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2340a02fc6 | ||
|
|
cafff4ae80 | ||
|
|
3193d120e5 | ||
|
|
da4b29a2d6 | ||
|
|
d05c96ecef | ||
|
|
c86163bfe6 | ||
|
|
eff6e36974 | ||
|
|
63e458bafb | ||
|
|
57ab5ce1a2 |
150
CHANGES.rst
150
CHANGES.rst
@@ -1,66 +1,83 @@
|
||||
Changelog
|
||||
=========
|
||||
|
||||
0.22.0 (2019-02-01)
|
||||
0.23.0 (2019-06-04)
|
||||
-------------------
|
||||
------------------------
|
||||
- Avoid to crash in case of HTTP 502 error. [Gael de Chalendar]
|
||||
|
||||
Survive also on socket.error connections like on HTTPError or URLError.
|
||||
|
||||
This should solve issue #110.
|
||||
|
||||
|
||||
0.22.2 (2019-02-21)
|
||||
-------------------
|
||||
|
||||
Fix
|
||||
~~~
|
||||
- Warn instead of error. [Jose Diaz-Gonzalez]
|
||||
|
||||
Refs #106
|
||||
|
||||
|
||||
0.22.1 (2019-02-21)
|
||||
-------------------
|
||||
- Log URL error https://github.com/josegonzalez/python-github-
|
||||
backup/issues/105. [JOHN STETIC]
|
||||
|
||||
|
||||
0.22.0 (2019-02-01)
|
||||
-------------------
|
||||
- Remove unnecessary sys.exit call. [W. Harrison Wright]
|
||||
|
||||
- Add org check to avoid incorrect log output. [W. Harrison Wright]
|
||||
|
||||
- Fix accidental system exit with better logging strategy. [W. Harrison
|
||||
Wright]
|
||||
|
||||
|
||||
0.21.1 (2018-12-25)
|
||||
-------------------
|
||||
|
||||
- Mark options which are not included in --all. [Bernd]
|
||||
|
||||
As discussed in Issue #100
|
||||
|
||||
|
||||
0.21.0 (2018-11-28)
|
||||
-------------------
|
||||
|
||||
- Correctly download repos when user arg != authenticated user. [W.
|
||||
Harrison Wright]
|
||||
|
||||
|
||||
0.20.1 (2018-09-29)
|
||||
-------------------
|
||||
|
||||
- Clone the specified user's gists, not the authenticated user. [W.
|
||||
Harrison Wright]
|
||||
|
||||
- Clone the specified user's starred repos, not the authenticated user.
|
||||
[W. Harrison Wright]
|
||||
|
||||
|
||||
0.20.0 (2018-03-24)
|
||||
-------------------
|
||||
|
||||
- Chore: drop Python 2.6. [Jose Diaz-Gonzalez]
|
||||
|
||||
- Feat: simplify release script. [Jose Diaz-Gonzalez]
|
||||
|
||||
|
||||
0.19.2 (2018-03-24)
|
||||
-------------------
|
||||
|
||||
Fix
|
||||
~~~
|
||||
|
||||
- Cleanup pep8 violations. [Jose Diaz-Gonzalez]
|
||||
|
||||
|
||||
0.19.0 (2018-03-24)
|
||||
-------------------
|
||||
|
||||
- Add additional output for the current request. [Robin Gloster]
|
||||
|
||||
This is useful to have some progress indication for huge repositories.
|
||||
|
||||
|
||||
- Add option to backup additional PR details. [Robin Gloster]
|
||||
|
||||
Some payload is only included when requesting a single pull request
|
||||
|
||||
|
||||
- Mark string as binary in comparison for skip_existing. [Johannes
|
||||
Bornhold]
|
||||
|
||||
@@ -71,66 +88,53 @@ Fix
|
||||
|
||||
0.18.0 (2018-02-22)
|
||||
-------------------
|
||||
|
||||
- Add option to fetch followers/following JSON data. [Stephen Greene]
|
||||
|
||||
|
||||
0.17.0 (2018-02-20)
|
||||
-------------------
|
||||
|
||||
- Short circuit gists backup process. [W. Harrison Wright]
|
||||
|
||||
- Formatting. [W. Harrison Wright]
|
||||
|
||||
- Add ability to backup gists. [W. Harrison Wright]
|
||||
|
||||
|
||||
0.16.0 (2018-01-22)
|
||||
-------------------
|
||||
|
||||
- Change option to --all-starred. [W. Harrison Wright]
|
||||
|
||||
- JK don't update documentation. [W. Harrison Wright]
|
||||
|
||||
- Put starred clone repoistories under a new option. [W. Harrison
|
||||
Wright]
|
||||
|
||||
- Add comment. [W. Harrison Wright]
|
||||
|
||||
- Add ability to clone starred repos. [W. Harrison Wright]
|
||||
|
||||
|
||||
0.14.1 (2017-10-11)
|
||||
-------------------
|
||||
|
||||
- Fix arg not defined error. [Edward Pfremmer]
|
||||
|
||||
Ref: https://github.com/josegonzalez/python-github-backup/issues/69
|
||||
|
||||
0.14.0 (2017-10-11)
|
||||
-------------------
|
||||
|
||||
- Added a check to see if git-lfs is installed when doing an LFS clone.
|
||||
[pieterclaerhout]
|
||||
|
||||
- Added support for LFS clones. [pieterclaerhout]
|
||||
|
||||
- Add pypi info to readme. [Albert Wang]
|
||||
|
||||
- Explicitly support python 3 in package description. [Albert Wang]
|
||||
|
||||
- Add couple examples to help new users. [Yusuf Tran]
|
||||
|
||||
|
||||
0.13.2 (2017-05-06)
|
||||
-------------------
|
||||
|
||||
- Fix remotes while updating repository. [Dima Gerasimov]
|
||||
|
||||
|
||||
0.13.1 (2017-04-11)
|
||||
-------------------
|
||||
|
||||
- Fix error when repository has no updated_at value. [Nicolai Ehemann]
|
||||
|
||||
|
||||
0.13.0 (2017-04-05)
|
||||
-------------------
|
||||
|
||||
- Add OS check for OSX specific keychain args. [Martin O'Reilly]
|
||||
|
||||
Keychain arguments are only supported on Mac OSX.
|
||||
@@ -139,8 +143,6 @@ Fix
|
||||
error message rather than a "No password item matching the
|
||||
provided name and account could be found in the osx keychain"
|
||||
error message
|
||||
|
||||
|
||||
- Add support for storing PAT in OSX keychain. [Martin O'Reilly]
|
||||
|
||||
Added additional optional arguments and README guidance for storing
|
||||
@@ -150,62 +152,48 @@ Fix
|
||||
|
||||
0.12.1 (2017-03-27)
|
||||
-------------------
|
||||
|
||||
- Avoid remote branch name churn. [Chris Adams]
|
||||
|
||||
This avoids the backup output having lots of "[new branch]" messages
|
||||
because removing the old remote name removed all of the existing branch
|
||||
references.
|
||||
|
||||
|
||||
- Fix detection of bare git directories. [Andrzej Maczuga]
|
||||
|
||||
|
||||
0.12.0 (2016-11-22)
|
||||
-------------------
|
||||
|
||||
Fix
|
||||
~~~
|
||||
|
||||
- Properly import version from github_backup package. [Jose Diaz-
|
||||
Gonzalez]
|
||||
|
||||
- Support alternate git status output. [Jose Diaz-Gonzalez]
|
||||
|
||||
Other
|
||||
~~~~~
|
||||
|
||||
- Pep8: E501 line too long (83 > 79 characters) [Jose Diaz-Gonzalez]
|
||||
|
||||
- Pep8: E128 continuation line under-indented for visual indent. [Jose
|
||||
Diaz-Gonzalez]
|
||||
|
||||
- Support archivization using bare git clones. [Andrzej Maczuga]
|
||||
|
||||
- Fix typo, 3x. [Terrell Russell]
|
||||
|
||||
|
||||
0.11.0 (2016-10-26)
|
||||
-------------------
|
||||
|
||||
- Support --token file:///home/user/token.txt (fixes gh-51) [Björn
|
||||
Dahlgren]
|
||||
|
||||
- Fix some linting. [Albert Wang]
|
||||
|
||||
- Fix byte/string conversion for python 3. [Albert Wang]
|
||||
|
||||
- Support python 3. [Albert Wang]
|
||||
|
||||
- Encode special characters in password. [Remi Rampin]
|
||||
|
||||
- Don't pretend program name is "Github Backup" [Remi Rampin]
|
||||
|
||||
- Don't install over insecure connection. [Remi Rampin]
|
||||
|
||||
The git:// protocol is unauthenticated and unencrypted, and no longer advertised by GitHub. Using HTTPS shouldn't impact performance.
|
||||
|
||||
|
||||
0.10.3 (2016-08-21)
|
||||
-------------------
|
||||
|
||||
- Fixes #29. [Jonas Michel]
|
||||
|
||||
Reporting an error when the user's rate limit is exceeded causes
|
||||
@@ -213,8 +201,6 @@ Other
|
||||
sleep. Instead of generating an explicit error we just want to
|
||||
inform the user that the script is going to sleep until their rate
|
||||
limit count resets.
|
||||
|
||||
|
||||
- Fixes #29. [Jonas Michel]
|
||||
|
||||
The errors list was not being cleared out after resuming a backup
|
||||
@@ -225,14 +211,13 @@ Other
|
||||
|
||||
0.10.2 (2016-08-21)
|
||||
-------------------
|
||||
|
||||
- Add a note regarding git version requirement. [Jose Diaz-Gonzalez]
|
||||
|
||||
Closes #37
|
||||
|
||||
|
||||
0.10.0 (2016-08-18)
|
||||
-------------------
|
||||
|
||||
- Implement incremental updates. [Robert Bradshaw]
|
||||
|
||||
Guarded with an --incremental flag.
|
||||
@@ -245,12 +230,11 @@ Other
|
||||
|
||||
0.9.0 (2016-03-29)
|
||||
------------------
|
||||
|
||||
- Fix cloning private repos with basic auth or token. [Kazuki Suda]
|
||||
|
||||
|
||||
0.8.0 (2016-02-14)
|
||||
------------------
|
||||
|
||||
- Don't store issues which are actually pull requests. [Enrico Tröger]
|
||||
|
||||
This prevents storing pull requests twice since the Github API returns
|
||||
@@ -261,43 +245,31 @@ Other
|
||||
|
||||
0.7.0 (2016-02-02)
|
||||
------------------
|
||||
|
||||
- Softly fail if not able to read hooks. [Albert Wang]
|
||||
|
||||
- Add note about 2-factor auth. [Albert Wang]
|
||||
|
||||
- Make user repository search go through endpoint capable of reading
|
||||
private repositories. [Albert Wang]
|
||||
|
||||
- Prompt for password if only username given. [Alex Hall]
|
||||
|
||||
|
||||
0.6.0 (2015-11-10)
|
||||
------------------
|
||||
|
||||
- Force proper remote url. [Jose Diaz-Gonzalez]
|
||||
|
||||
- Improve error handling in case of HTTP errors. [Enrico Tröger]
|
||||
|
||||
In case of a HTTP status code 404, the returned 'r' was never assigned.
|
||||
In case of URL errors which are not timeouts, we probably should bail
|
||||
out.
|
||||
|
||||
|
||||
- Add --hooks to also include web hooks into the backup. [Enrico Tröger]
|
||||
|
||||
- Create the user specified output directory if it does not exist.
|
||||
[Enrico Tröger]
|
||||
|
||||
Fixes #17.
|
||||
|
||||
|
||||
- Add missing auth argument to _get_response() [Enrico Tröger]
|
||||
|
||||
When running unauthenticated and Github starts rate-limiting the client,
|
||||
github-backup crashes because the used auth variable in _get_response()
|
||||
was not available. This change should fix it.
|
||||
|
||||
|
||||
- Add repository URL to error message for non-existing repositories.
|
||||
[Enrico Tröger]
|
||||
|
||||
@@ -308,40 +280,28 @@ Other
|
||||
|
||||
0.5.0 (2015-10-10)
|
||||
------------------
|
||||
|
||||
- Add release script. [Jose Diaz-Gonzalez]
|
||||
|
||||
- Refactor to both simplify codepath as well as follow PEP8 standards.
|
||||
[Jose Diaz-Gonzalez]
|
||||
|
||||
- Retry 3 times when the connection times out. [Mathijs Jonker]
|
||||
|
||||
- Made unicode output defalut. [Kirill Grushetsky]
|
||||
|
||||
- Import alphabetised. [Kirill Grushetsky]
|
||||
|
||||
- Preserve Unicode characters in the output file. [Kirill Grushetsky]
|
||||
|
||||
Added option to preserve Unicode characters in the output file
|
||||
|
||||
- Josegonzales/python-github-backup#12 Added backup of labels and
|
||||
milestones. [aensley]
|
||||
|
||||
- Fixed indent. [Mathijs Jonker]
|
||||
|
||||
- Skip unitialized repo's. [mjonker-embed]
|
||||
|
||||
These gave me errors which caused mails from crontab.
|
||||
|
||||
- Added prefer-ssh. [mjonker-embed]
|
||||
|
||||
Was needed for my back-up setup, code includes this but readme wasn't updated
|
||||
|
||||
- Retry API requests which failed due to rate-limiting. [Chris Adams]
|
||||
|
||||
This allows operation to continue, albeit at a slower pace,
|
||||
if you have enough data to trigger the API rate limits
|
||||
|
||||
- Logging_subprocess: always log when a command fails. [Chris Adams]
|
||||
|
||||
Previously git clones could fail without any indication
|
||||
@@ -351,21 +311,15 @@ Other
|
||||
Now a non-zero return code will always output a message to
|
||||
stderr and will display the executed command so it can be
|
||||
rerun for troubleshooting.
|
||||
|
||||
|
||||
- Switch to using ssh_url. [Chris Adams]
|
||||
|
||||
The previous commit used the wrong URL for a private repo. This was
|
||||
masked by the lack of error loging in logging_subprocess (which will be
|
||||
in a separate branch)
|
||||
|
||||
|
||||
- Add an option to prefer checkouts over SSH. [Chris Adams]
|
||||
|
||||
This is really useful with private repos to avoid being nagged
|
||||
for credentials for every repository
|
||||
|
||||
|
||||
- Add pull request support. [Kevin Laude]
|
||||
|
||||
Back up reporitory pull requests by passing the --include-pulls
|
||||
@@ -377,8 +331,6 @@ Other
|
||||
|
||||
Pull requests are automatically backed up when the --all argument is
|
||||
uesd.
|
||||
|
||||
|
||||
- Add GitHub Enterprise support. [Kevin Laude]
|
||||
|
||||
Pass the -H or --github-host argument with a GitHub Enterprise hostname
|
||||
@@ -388,35 +340,21 @@ Other
|
||||
|
||||
0.2.0 (2014-09-22)
|
||||
------------------
|
||||
|
||||
- Add support for retrieving repositories. Closes #1. [Jose Diaz-
|
||||
Gonzalez]
|
||||
|
||||
- Fix PEP8 violations. [Jose Diaz-Gonzalez]
|
||||
|
||||
- Add authorization to header only if specified by user. [Ioannis
|
||||
Filippidis]
|
||||
|
||||
- Fill out readme more. [Jose Diaz-Gonzalez]
|
||||
|
||||
- Fix import. [Jose Diaz-Gonzalez]
|
||||
|
||||
- Properly name readme. [Jose Diaz-Gonzalez]
|
||||
|
||||
- Create MANIFEST.in. [Jose Diaz-Gonzalez]
|
||||
|
||||
- Create .gitignore. [Jose Diaz-Gonzalez]
|
||||
|
||||
- Create setup.py. [Jose Diaz-Gonzalez]
|
||||
|
||||
- Create requirements.txt. [Jose Diaz-Gonzalez]
|
||||
|
||||
- Create __init__.py. [Jose Diaz-Gonzalez]
|
||||
|
||||
- Create LICENSE.txt. [Jose Diaz-Gonzalez]
|
||||
|
||||
- Create README.md. [Jose Diaz-Gonzalez]
|
||||
|
||||
- Create github-backup. [Jose Diaz-Gonzalez]
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
from __future__ import print_function
|
||||
import socket
|
||||
|
||||
import argparse
|
||||
import base64
|
||||
@@ -404,6 +405,16 @@ def retrieve_data(args, template, query_args=None, single_request=False):
|
||||
|
||||
status_code = int(r.getcode())
|
||||
|
||||
retries = 0
|
||||
while retries < 3 and status_code == 502:
|
||||
print('API request returned HTTP 502: Bad Gateway. Retrying in 5 seconds')
|
||||
retries += 1
|
||||
time.sleep(5)
|
||||
request = _construct_request(per_page, page, query_args, template, auth) # noqa
|
||||
r, errors = _get_response(request, auth, template)
|
||||
|
||||
status_code = int(r.getcode())
|
||||
|
||||
if status_code != 200:
|
||||
template = 'API request returned HTTP {0}: {1}'
|
||||
errors.append(template.format(status_code, r.reason))
|
||||
@@ -445,7 +456,13 @@ def _get_response(request, auth, template):
|
||||
except HTTPError as exc:
|
||||
errors, should_continue = _request_http_error(exc, auth, errors) # noqa
|
||||
r = exc
|
||||
except URLError:
|
||||
except URLError as e:
|
||||
log_warning(e.reason)
|
||||
should_continue = _request_url_error(template, retry_timeout)
|
||||
if not should_continue:
|
||||
raise
|
||||
except socket.error as e:
|
||||
log_warning(e.strerror)
|
||||
should_continue = _request_url_error(template, retry_timeout)
|
||||
if not should_continue:
|
||||
raise
|
||||
|
||||
@@ -1 +1 @@
|
||||
__version__ = '0.22.0'
|
||||
__version__ = '0.23.0'
|
||||
|
||||
Reference in New Issue
Block a user