mirror of https://github.com/docker/compose.git
Automatically detect pickable PRs for patch releases
Signed-off-by: Joffrey F <joffrey@docker.com>
This commit is contained in:
parent
90c89e34f1
commit
bc03441550
|
@ -34,6 +34,15 @@ def create_initial_branch(repository, args):
|
||||||
release_branch = repository.create_release_branch(args.release, args.base)
|
release_branch = repository.create_release_branch(args.release, args.base)
|
||||||
if args.base and args.cherries:
|
if args.base and args.cherries:
|
||||||
print('Detected patch version.')
|
print('Detected patch version.')
|
||||||
|
auto_prs = repository.get_prs_in_milestone(args.release)
|
||||||
|
if auto_prs:
|
||||||
|
print(
|
||||||
|
'Found the following PRs in this release\'s milestone: {}'.format(', '.join(auto_prs))
|
||||||
|
)
|
||||||
|
proceed = yesno('Automatically cherry-pick detected PRs? Y/n', default=True)
|
||||||
|
if proceed:
|
||||||
|
repository.cherry_pick_prs(release_branch, auto_prs)
|
||||||
|
|
||||||
cherries = input('Indicate (space-separated) PR numbers to cherry-pick then press Enter:\n')
|
cherries = input('Indicate (space-separated) PR numbers to cherry-pick then press Enter:\n')
|
||||||
repository.cherry_pick_prs(release_branch, cherries.split())
|
repository.cherry_pick_prs(release_branch, cherries.split())
|
||||||
|
|
||||||
|
|
|
@ -196,6 +196,24 @@ class Repository(object):
|
||||||
f.flush()
|
f.flush()
|
||||||
self.git_repo.git.am('--3way', f.name)
|
self.git_repo.git.am('--3way', f.name)
|
||||||
|
|
||||||
|
def get_prs_in_milestone(self, version):
|
||||||
|
milestones = self.gh_repo.get_milestones(state='open')
|
||||||
|
milestone = None
|
||||||
|
for ms in milestones:
|
||||||
|
if ms.title == version:
|
||||||
|
milestone = ms
|
||||||
|
break
|
||||||
|
if not milestone:
|
||||||
|
print('Didn\'t find a milestone matching "{}"'.format(version))
|
||||||
|
return None
|
||||||
|
|
||||||
|
issues = self.gh_repo.get_issues(milestone=milestone, state='all')
|
||||||
|
prs = []
|
||||||
|
for issue in issues:
|
||||||
|
if issue.pull_request is not None:
|
||||||
|
prs.append(issue.number)
|
||||||
|
return sorted(prs)
|
||||||
|
|
||||||
|
|
||||||
def get_contributors(pr_data):
|
def get_contributors(pr_data):
|
||||||
commits = pr_data.get_commits()
|
commits = pr_data.get_commits()
|
||||||
|
|
Loading…
Reference in New Issue