/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/github/hoster.py

  • Committer: Jelmer Vernooij
  • Date: 2020-07-15 21:51:27 UTC
  • mto: (7490.40.58 work)
  • mto: This revision was merged to the branch mainline in revision 7519.
  • Revision ID: jelmer@jelmer.uk-20200715215127-3hn9ktbg3f1xikjj
More fixes for hg probing.

Show diffs side-by-side

added added

removed removed

Lines of Context:
44
44
    version_string as breezy_version,
45
45
    )
46
46
from ...config import AuthenticationConfig, GlobalStack
47
 
from ...errors import InvalidHttpResponse, PermissionDenied
 
47
from ...errors import (
 
48
    InvalidHttpResponse,
 
49
    PermissionDenied,
 
50
    UnexpectedHttpStatus,
 
51
    )
48
52
from ...git.urls import git_url_to_bzr_url
49
53
from ...i18n import gettext
50
54
from ...sixish import PY3
165
169
        if response.status == 422:
166
170
            raise ValidationFailed(json.loads(response.text))
167
171
        if response.status != 200:
168
 
            raise InvalidHttpResponse(self._pr['url'], response.text)
 
172
            raise UnexpectedHttpStatus(self._pr['url'], response.status)
169
173
        self._pr = json.loads(response.text)
170
174
 
171
175
    def set_description(self, description):
202
206
        if response.status == 422:
203
207
            raise ValidationFailed(json.loads(response.text))
204
208
        if response.status != 200:
205
 
            raise InvalidHttpResponse(self._pr['url'], response.text)
 
209
            raise UnexpectedHttpStatus(self._pr['url'], response.status)
206
210
 
207
211
    def get_merged_by(self):
208
212
        merged_by = self._pr.get('merged_by')
224
228
        if response.status == 422:
225
229
            raise ValidationFailed(json.loads(response.text))
226
230
        if response.status != 201:
227
 
            raise InvalidHttpResponse(self._pr['comments_url'], response.text)
 
231
            raise UnexpectedHttpStatus(
 
232
                self._pr['comments_url'], response.status)
228
233
        json.loads(response.text)
229
234
 
230
235
 
287
292
            raise NoSuchProject(path)
288
293
        if response.status == 200:
289
294
            return json.loads(response.text)
290
 
        raise InvalidHttpResponse(path, response.text)
 
295
        raise UnexpectedHttpStatus(path, response.status)
291
296
 
292
297
    def _get_repo_pulls(self, path, head=None, state=None):
293
298
        path = path + '?'
303
308
            raise NoSuchProject(path)
304
309
        if response.status == 200:
305
310
            return json.loads(response.text)
306
 
        raise InvalidHttpResponse(path, response.text)
 
311
        raise UnexpectedHttpStatus(path, response.status)
307
312
 
308
313
    def _create_pull(self, path, title, head, base, body=None, labels=None,
309
314
                     assignee=None, draft=False, maintainer_can_modify=False):
326
331
        if response.status == 403:
327
332
            raise PermissionDenied(path, response.text)
328
333
        if response.status != 201:
329
 
            raise InvalidHttpResponse(path, 'req is invalid %d %r: %r' % (response.status, data, response.text))
 
334
            raise UnexpectedHttpStatus(path, response.status)
330
335
        return json.loads(response.text)
331
336
 
332
337
    def _get_user_by_email(self, email):
333
338
        path = 'search/users?q=%s+in:email' % email
334
339
        response = self._api_request('GET', path)
335
340
        if response.status != 200:
336
 
            raise InvalidHttpResponse(path, response.text)
 
341
            raise UnexpectedHttpStatus(path, response.status)
337
342
        ret = json.loads(response.text)
338
343
        if ret['total_count'] == 0:
339
344
            raise KeyError('no user with email %s' % email)
348
353
            path = 'user'
349
354
        response = self._api_request('GET', path)
350
355
        if response.status != 200:
351
 
            raise InvalidHttpResponse(path, response.text)
 
356
            raise UnexpectedHttpStatus(path, response.status)
352
357
        return json.loads(response.text)
353
358
 
354
359
    def _get_organization(self, name):
355
360
        path = 'orgs/%s' % name
356
361
        response = self._api_request('GET', path)
357
362
        if response.status != 200:
358
 
            raise InvalidHttpResponse(path, response.text)
 
363
            raise UnexpectedHttpStatus(path, response.status)
359
364
        return json.loads(response.text)
360
365
 
361
366
    def _list_paged(self, path, parameters=None, per_page=None):
374
379
                ';'.join(['%s=%s' % (k, urlutils.quote(v))
375
380
                          for (k, v) in parameters.items()]))
376
381
            if response.status != 200:
377
 
                raise InvalidHttpResponse(path, response.text)
 
382
                raise UnexpectedHttpStatus(path, response.status)
378
383
            data = json.loads(response.text)
379
384
            for entry in data['items']:
380
385
                i += 1
392
397
            path += '?organization=%s' % owner
393
398
        response = self._api_request('POST', path)
394
399
        if response.status != 202:
395
 
            raise InvalidHttpResponse(path, 'status: %d, %r' % (response.status, response.text))
 
400
            raise UnexpectedHttpStatus(path, response.status)
396
401
        return json.loads(response.text)
397
402
 
398
403
    @property
532
537
            url = issue['pull_request']['url']
533
538
            response = self._api_request('GET', url)
534
539
            if response.status != 200:
535
 
                raise InvalidHttpResponse(url, response.text)
 
540
                raise UnexpectedHttpStatus(url, response.status)
536
541
            yield GitHubMergeProposal(self, json.loads(response.text))
537
542
 
538
543
    def get_proposal_by_url(self, url):
541
546
    def iter_my_forks(self):
542
547
        response = self._api_request('GET', '/user/repos')
543
548
        if response.status != 200:
544
 
            raise InvalidHttpResponse(self.transport.user_url, response.text)
 
549
            raise UnexpectedHttpStatus(self.transport.user_url, response.status)
545
550
        for project in json.loads(response.text):
546
551
            if not project['fork']:
547
552
                continue
556
561
            return
557
562
        if response.status == 200:
558
563
            return json.loads(response.text)
559
 
        raise InvalidHttpResponse(path, response.text)
 
564
        raise UnexpectedHttpStatus(path, response.status)
560
565
 
561
566
 
562
567
class GitHubMergeProposalBuilder(MergeProposalBuilder):