/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-02-18 01:57:45 UTC
  • mto: This revision was merged to the branch mainline in revision 7493.
  • Revision ID: jelmer@jelmer.uk-20200218015745-q2ss9tsk74h4nh61
drop use of future.

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
 
17
17
"""Support for GitHub."""
18
18
 
19
 
from __future__ import absolute_import
20
 
 
21
19
import json
22
20
import os
23
21
 
47
45
from ...errors import InvalidHttpResponse, PermissionDenied
48
46
from ...git.urls import git_url_to_bzr_url
49
47
from ...i18n import gettext
50
 
from ...sixish import PY3
51
48
from ...trace import note
52
49
from ...transport import get_transport
53
50
from ...transport.http import default_user_agent
222
219
 
223
220
 
224
221
def github_url_to_bzr_url(url, branch_name):
225
 
    if not PY3:
226
 
        branch_name = branch_name.encode('utf-8')
227
222
    return git_url_to_bzr_url(url, branch_name)
228
223
 
229
224
 
237
232
 
238
233
    supports_merge_proposal_labels = True
239
234
    supports_merge_proposal_commit_message = False
240
 
    supports_allow_collaboration = True
241
235
    merge_proposal_description_format = 'markdown'
242
236
 
243
237
    def __repr__(self):
281
275
            return json.loads(response.text)
282
276
        raise InvalidHttpResponse(path, response.text)
283
277
 
284
 
    def _create_pull(self, path, title, head, base, body=None, labels=None,
285
 
                     assignee=None, draft=False, maintainer_can_modify=False):
 
278
    def _create_pull(self, path, title, head, base, body=None, labels=None, assignee=None):
286
279
        data = {
287
280
            'title': title,
288
281
            'head': head,
289
282
            'base': base,
290
 
            'draft': draft,
291
 
            'maintainer_can_modify': maintainer_can_modify,
292
283
        }
293
284
        if labels is not None:
294
285
            data['labels'] = labels
382
373
 
383
374
    def publish_derived(self, local_branch, base_branch, name, project=None,
384
375
                        owner=None, revision_id=None, overwrite=False,
385
 
                        allow_lossy=True, tag_selector=None):
 
376
                        allow_lossy=True):
386
377
        base_owner, base_project, base_branch_name = parse_github_branch_url(base_branch)
387
378
        base_repo = self._get_repo(base_owner, base_project)
388
379
        if owner is None:
402
393
        try:
403
394
            push_result = remote_dir.push_branch(
404
395
                local_branch, revision_id=revision_id, overwrite=overwrite,
405
 
                name=name, tag_selector=tag_selector)
 
396
                name=name)
406
397
        except errors.NoRoundtrippingSupport:
407
398
            if not allow_lossy:
408
399
                raise
409
400
            push_result = remote_dir.push_branch(
410
401
                local_branch, revision_id=revision_id,
411
 
                overwrite=overwrite, name=name, lossy=True,
412
 
                tag_selector=tag_selector)
 
402
                overwrite=overwrite, name=name, lossy=True)
413
403
        return push_result.target_branch, github_url_to_bzr_url(
414
404
            remote_repo['html_url'], name)
415
405
 
559
549
 
560
550
    def create_proposal(self, description, reviewers=None, labels=None,
561
551
                        prerequisite_branch=None, commit_message=None,
562
 
                        work_in_progress=False, allow_collaboration=False):
 
552
                        work_in_progress=False):
563
553
        """Perform the submission."""
564
554
        if prerequisite_branch is not None:
565
555
            raise PrerequisiteBranchUnsupported(self)
569
559
            self.target_repo_name = self.target_repo_name[:-4]
570
560
        # TODO(jelmer): Allow setting title explicitly?
571
561
        title = determine_title(description)
 
562
        # TODO(jelmer): Set maintainers_can_modify?
572
563
        target_repo = self.gh._get_repo(
573
564
            self.target_owner, self.target_repo_name)
574
565
        assignees = []
589
580
                head="%s:%s" % (self.source_owner, self.source_branch_name),
590
581
                base=self.target_branch_name,
591
582
                labels=labels, assignee=assignees,
592
 
                draft=work_in_progress,
593
 
                maintainer_can_modify=allow_collaboration,
594
 
                )
 
583
                draft=(not work_in_progress))
595
584
        except ValidationFailed:
596
585
            raise MergeProposalExists(self.source_branch.user_url)
597
586
        return GitHubMergeProposal(self.gh, pull_request)