FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

QKT-42: support saving release information · dumpmemory/python-github-backup@41130fc · GitHub

Commit 41130fc

Browse files
committed
QKT-42: support saving release information
1 parent 2340a02 commit 41130fc

1 file changed

Lines changed: 30 additions & 0 deletions

File tree

‎bin/github-backup‎

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -303,6 +303,11 @@ def parse_args():
303303
parser.add_argument('--keychain-account',
304304
dest='osx_keychain_item_account',
305305
help='OSX ONLY: account field of password item in OSX keychain that holds the personal access or OAuth token')
306+
parser.add_argument('--include-releases',
307+
action='store_true',
308+
dest='include_releases',
309+
help='include release information, not including assets or binaries'
310+
)
306311
return parser.parse_args()
307312

308313

@@ -699,6 +704,9 @@ def backup_repositories(args, output_directory, repositories):
699704
if args.include_hooks or args.include_everything:
700705
backup_hooks(args, repo_cwd, repository, repos_template)
701706

707+
if args.include_releases or args.include_everything:
708+
backup_releases(args, repo_cwd, repository, repos_template)
709+
702710
if args.incremental:
703711
open(last_update_path, 'w').write(last_update)
704712

@@ -880,6 +888,28 @@ def backup_hooks(args, repo_cwd, repository, repos_template):
880888
log_info("Unable to read hooks, skipping")
881889

882890

891+
def backup_releases(args, repo_cwd, repository, repos_template):
892+
repository_fullname = repository['full_name']
893+
894+
# give release files somewhere to live & log intent
895+
release_cwd = os.path.join(repo_cwd, 'releases')
896+
log_info('Retrieving {0} releases'.format(repository_fullname))
897+
mkdir_p(repo_cwd, release_cwd)
898+
899+
query_args = {}
900+
901+
_release_template = '{0}/{1}/releases'.format(repos_template, repository_fullname)
902+
_releases = retrieve_data(args, _release_template, query_args=query_args)
903+
904+
# for each release, store it
905+
log_info('Saving {0} releases to disk'.format(len(_releases)))
906+
for release in _releases:
907+
release_name = release['tag_name']
908+
output_filepath = os.path.join(release_cwd, '{0}.json'.format(release_name))
909+
with codecs.open(output_filepath, 'w+', encoding='utf-8') as f:
910+
json_dump(release, f)
911+
912+
883913
def fetch_repository(name,
884914
remote_url,
885915
local_dir,

0 commit comments

Comments
 (0)

Back | FazBrowse Home | New Git URL