/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to breezy/plugins/propose/github.py

  • Committer: Jelmer Vernooij
  • Date: 2020-03-22 19:12:43 UTC
  • mfrom: (7490.7.6 work)
  • mto: (7490.7.7 work)
  • mto: This revision was merged to the branch mainline in revision 7501.
  • Revision ID: jelmer@jelmer.uk-20200322191243-yx8ils8lvfmfh7rq
Merge lp:brz/3.1.

Show diffs side-by-side

added added

removed removed

Lines of Context:
237
237
 
238
238
    supports_merge_proposal_labels = True
239
239
    supports_merge_proposal_commit_message = False
 
240
    supports_allow_collaboration = True
240
241
    merge_proposal_description_format = 'markdown'
241
242
 
242
243
    def __repr__(self):
280
281
            return json.loads(response.text)
281
282
        raise InvalidHttpResponse(path, response.text)
282
283
 
283
 
    def _create_pull(self, path, title, head, base, body=None, labels=None, assignee=None, draft=False):
 
284
    def _create_pull(self, path, title, head, base, body=None, labels=None,
 
285
                     assignee=None, draft=False, maintainer_can_modify=False):
284
286
        data = {
285
287
            'title': title,
286
288
            'head': head,
287
289
            'base': base,
288
290
            'draft': draft,
 
291
            'maintainer_can_modify': maintainer_can_modify,
289
292
        }
290
293
        if labels is not None:
291
294
            data['labels'] = labels
379
382
 
380
383
    def publish_derived(self, local_branch, base_branch, name, project=None,
381
384
                        owner=None, revision_id=None, overwrite=False,
382
 
                        allow_lossy=True):
 
385
                        allow_lossy=True, tag_selector=None):
383
386
        base_owner, base_project, base_branch_name = parse_github_branch_url(base_branch)
384
387
        base_repo = self._get_repo(base_owner, base_project)
385
388
        if owner is None:
399
402
        try:
400
403
            push_result = remote_dir.push_branch(
401
404
                local_branch, revision_id=revision_id, overwrite=overwrite,
402
 
                name=name)
 
405
                name=name, tag_selector=tag_selector)
403
406
        except errors.NoRoundtrippingSupport:
404
407
            if not allow_lossy:
405
408
                raise
406
409
            push_result = remote_dir.push_branch(
407
410
                local_branch, revision_id=revision_id,
408
 
                overwrite=overwrite, name=name, lossy=True)
 
411
                overwrite=overwrite, name=name, lossy=True,
 
412
                tag_selector=tag_selector)
409
413
        return push_result.target_branch, github_url_to_bzr_url(
410
414
            remote_repo['html_url'], name)
411
415
 
555
559
 
556
560
    def create_proposal(self, description, reviewers=None, labels=None,
557
561
                        prerequisite_branch=None, commit_message=None,
558
 
                        work_in_progress=False):
 
562
                        work_in_progress=False, allow_collaboration=False):
559
563
        """Perform the submission."""
560
564
        if prerequisite_branch is not None:
561
565
            raise PrerequisiteBranchUnsupported(self)
565
569
            self.target_repo_name = self.target_repo_name[:-4]
566
570
        # TODO(jelmer): Allow setting title explicitly?
567
571
        title = determine_title(description)
568
 
        # TODO(jelmer): Set maintainers_can_modify?
569
572
        target_repo = self.gh._get_repo(
570
573
            self.target_owner, self.target_repo_name)
571
574
        assignees = []
586
589
                head="%s:%s" % (self.source_owner, self.source_branch_name),
587
590
                base=self.target_branch_name,
588
591
                labels=labels, assignee=assignees,
589
 
                draft=(not work_in_progress))
 
592
                draft=work_in_progress,
 
593
                maintainer_can_modify=allow_collaboration,
 
594
                )
590
595
        except ValidationFailed:
591
596
            raise MergeProposalExists(self.source_branch.user_url)
592
597
        return GitHubMergeProposal(self.gh, pull_request)