Skip to content

Commit b9e35a5

Browse files
committed
Don't store issues which are actually pull requests
This prevents storing pull requests twice since the Github API returns pull requests also as issues. Those issues will be skipped but only if retrieving pull requests is requested as well. Closes josegonzalez#23.
1 parent d0e239b commit b9e35a5

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

bin/github-backup

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -477,6 +477,8 @@ def backup_issues(args, repo_cwd, repository, repos_template):
477477
mkdir_p(repo_cwd, issue_cwd)
478478

479479
issues = {}
480+
issues_skipped = 0
481+
issues_skipped_message = ''
480482
_issue_template = '{0}/{1}/issues'.format(repos_template,
481483
repository['full_name'])
482484

@@ -491,9 +493,17 @@ def backup_issues(args, repo_cwd, repository, repos_template):
491493
_issue_template,
492494
query_args=query_args)
493495
for issue in _issues:
496+
# skip pull requests which are also returned as issues
497+
# if retrieving pull requests is requested as well
498+
if 'pull_request' in issue and (args.include_pulls or args.include_everything):
499+
issues_skipped += 1
500+
continue
501+
494502
issues[issue['number']] = issue
495503

496-
log_info('Saving {0} issues to disk'.format(len(issues.keys())))
504+
if issues_skipped:
505+
issues_skipped_message = ' (skipped {0} pull requests)'.format(issues_skipped)
506+
log_info('Saving {0} issues to disk{1}'.format(len(issues.keys()), issues_skipped_message))
497507
comments_template = _issue_template + '/{0}/comments'
498508
events_template = _issue_template + '/{0}/events'
499509
for number, issue in issues.iteritems():

0 commit comments

Comments
 (0)