def get(self, request): try: raise ValueError('An example error') except Exception: raven.captureException() return Error500View.as_view()(request)
def get(self, request, organization): """ List an Organization's Repositories ``````````````````````````````````` Return a list of version control repositories for a given organization. :pparam string organization_slug: the organization short name :auth: required """ if not self.has_feature(request, organization): return self.respond( { 'error_type': 'unavailable_feature', 'detail': ['You do not have that feature enabled'] }, status=403) queryset = Repository.objects.filter(organization_id=organization.id, ) status = request.GET.get('status', 'active') if status == 'active': queryset = queryset.filter(status=ObjectStatus.VISIBLE, ) elif status == 'deleted': queryset = queryset.exclude(status=ObjectStatus.VISIBLE, ) # TODO(mn): Remove once old Plugins are removed or everyone migrates to # the new Integrations. Hopefully someday? elif status == 'unmigratable': integrations = Integration.objects.filter( organizationintegration__organization=organization, organizationintegration__status=ObjectStatus.ACTIVE, provider__in=('bitbucket', 'github', 'vsts'), status=ObjectStatus.ACTIVE, ) repos = [] for i in integrations: try: repos.extend( i.get_installation( organization.id).get_unmigratable_repositories()) except Exception: raven.captureException() # Don't rely on the Integration's API being available. If # it's not, the page should still render. continue return Response(serialize(repos, request.user)) elif status: queryset = queryset.none() return self.paginate( request=request, queryset=queryset, order_by='name', on_results=lambda x: serialize(x, request.user), paginator_cls=OffsetPaginator, )
def run_callbacks(self, request): context = {} for cb in self._callbacks: try: result = cb(request) context.update(result) except Exception: raven.captureException() return context
def post(self, request, *args, **kwargs): data = request.DATA if data['eventType'] == 'workitem.updated': integration = Integration.objects.get( provider='vsts', external_id=data['resourceContainers']['collection']['id'], ) try: self.check_webhook_secret(request, integration) except AssertionError: raven.captureException(request=request) return self.respond(status=401) self.handle_updated_workitem(data, integration) return self.respond()
def handle_exception(self, request, exc): try: return super(Endpoint, self).handle_exception(exc) except Exception as exc: event_id = raven.get_ident(raven.captureException(request=request)) context = { 'detail': 'Internal Error', 'errorId': event_id, } return Response(context, status=500)
def handle_exception(self, request, exc): try: return super(Endpoint, self).handle_exception(exc) except Exception as exc: import sys import traceback sys.stderr.write(traceback.format_exc()) event_id = raven.captureException(request=request) context = {"detail": "Internal Error", "errorId": event_id} return Response(context, status=500)
def handle_exception(self, request, exc): try: return super(Endpoint, self).handle_exception(exc) except Exception as exc: import sys import traceback sys.stderr.write(traceback.format_exc()) event_id = raven.captureException(request=request) context = { 'detail': 'Internal Error', 'errorId': event_id, } return Response(context, status=500)
def handle_exception(self, request, exc): try: response = super(Endpoint, self).handle_exception(exc) except Exception as exc: import sys import traceback sys.stderr.write(traceback.format_exc()) event_id = raven.captureException(request=request) context = { 'detail': 'Internal Error', 'errorId': event_id, } response = Response(context, status=500) response.exception = True return response
def handle_exception(self, request, exc): try: return super(Endpoint, self).handle_exception(exc) except Exception as exc: import sys import traceback sys.stderr.write(traceback.format_exc()) event = raven.captureException(request=request) if event: event_id = raven.get_ident(event) else: event_id = None context = { 'detail': 'Internal Error', 'errorId': event_id, } return Response(context, status=500)
def get(self, request, organization): """ List an Organization's Repositories ``````````````````````````````````` Return a list of version control repositories for a given organization. :pparam string organization_slug: the organization short name :auth: required """ if not self.has_feature(request, organization): return self.respond({ 'error_type': 'unavailable_feature', 'detail': ['You do not have that feature enabled'] }, status=403) queryset = Repository.objects.filter( organization_id=organization.id, ) status = request.GET.get('status', 'active') if status == 'active': queryset = queryset.filter( status=ObjectStatus.VISIBLE, ) elif status == 'deleted': queryset = queryset.exclude( status=ObjectStatus.VISIBLE, ) # TODO(mn): Remove once old Plugins are removed or everyone migrates to # the new Integrations. Hopefully someday? elif status == 'unmigratable': integrations = Integration.objects.filter( organizationintegration__organization=organization, organizationintegration__status=ObjectStatus.ACTIVE, provider__in=('bitbucket', 'github', 'vsts'), status=ObjectStatus.ACTIVE, ) repos = [] for i in integrations: try: repos.extend(i.get_installation(organization.id) .get_unmigratable_repositories()) except Exception: raven.captureException() # Don't rely on the Integration's API being available. If # it's not, the page should still render. continue return Response(serialize(repos, request.user)) elif status: queryset = queryset.none() return self.paginate( request=request, queryset=queryset, order_by='name', on_results=lambda x: serialize(x, request.user), paginator_cls=OffsetPaginator, )