Releases: Justintime50/github-archive
Releases · Justintime50/github-archive
v4.2.2
- Adds
mypyand fixes typing errors
v4.2.1
- Bumps
woodchipsto use the new implementation (also fixes a bug where we were creating a newwoodchips.Loggerclass each time we called the logger instead of reusing the same logger instance) - Added Python type hinting
v4.2.0
- Uses
woodchipsfor logging and removes internal logging logic from the package - Refactors git commands to not change directories but instead run commands with the
-Cflag to invoke it in the directory we want
v4.1.1
- Fixes a bug that wouldn't allow for gist cloning/pulling because of a bad "forks" check on a gist GitHub object
- Adds a missing check to ensure that at least one CLI argument was passed (closes #40)
- No longer invoke a shell while using the subprocess module. Git operations should now be more stable across operating systems
v4.1.0
- Adds a new
--httpsflag which will authenticate via HTTPS instead of the defaultSSH - Fixes a bug where using the
--starsflag would not properly run due to a missing parameter. This parameter wasn't actually being used anymore and has been removed. Tests were beefed up for this function to protect against this happening again
v4.0.0
Breaking Changes
- Reworks the entire app config to use CLI flags solely instead of a mix of CLI flags and env variables, additionally, most flags have changed names and functionality. See the README for new usage instructions or run
github-archive --help(closes #30) - Repos or gists that fail to clone or pull will now be completely removed so that they can be retried from scratch on the next run of the tool. This was an especially important change for bad clones as the tool would previously leave an empty initialized git folder even if the clone failed which would not possess the actual git repo yet. In this state, you could not properly pull new changes because the content of the repo hadn't properly been cloned yet
- Bumps required Python version from 3.6 to 3.7
Features
- Adds a new
--usersflag which can be used to clone or pull git assets for a list of comma separated users (closes #20) - Adds a new
--threadsflag which can specify the number of concurrent threads to run at once, default is10(closes #22) - Adds a new
--viewflag which allows you to "dry run" the application, seeing the entire list of repos and gists based on the input provided (closes #25) - Adds a new
--starsflag which you can pass a comma separated list of users to and GitHub Archive will retrieve all of their starred repos which you can then view, clone, or pull (closes #26) - Adds a new
--forksflag which will include forks for whatever lists and operations you provide, default isFalse(closes #17))
Fixes
- Removed verbose logging of skipped actions and "Already up to date" messages. Added additional logging related to API calls
- Added proper validation and type checking of variables and environment on startup
- Various code refactors, bug fixes, and optimizations
- Bumped the default git operation timeout from
180 secondsto300 secondsto assist with cloning or pulling larger repos (closes #22) - Removes
mocklibrary in favor of builtinunittest.mocklibrary
v3.1.1
- Removed
branchflag and functionality as it was causing issues and inconsistencies when cloning/pulling and branches didn't match up. This became especially prevelant when repos started changing frommastertomain
v3.1.0
- Changed all classmethods to staticmethods
- Corrected a bug where org names may not have had whitespace stripped properly
- CLI arguments now have an explicit default of
False, this shouldn't change behavior from previous versions - CLI default argument for
branchhas been changed frommastertoNoneand is handled via logic now. If no branch is specified, the default repo branch will be used instead of blindly assuming thatmasteris the default branch (closes #18) - Revamped the entire test suite to use conftest, simplified boilerplate, etc
v3.0.1
- Fixed broken entrypoint after shifting code around
v3.0.0
- Refactored the entire codebase to be more pythonic, simpler, DRY, and documented (closes #15)
- Better error handling by raising errors where applicable and switching from a homegrown logger to the built-in Python logger (closes #12)
- Added unit tests and test coverage (closes #14)
- Added various additional configuration options
- Automated releasing on PyPi via Travis
- Various bug fixes throughout
- Better documentation on exactly what is possible with this tool
- Added a Makefile
- Adjusted most of the command and option names to be more uniform and explicit