コード例 #1
0
    def get(self, request):
        try:
            raise ValueError('An example error')
        except Exception:
            raven.captureException()

        return Error500View.as_view()(request)
コード例 #2
0
    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,
        )
コード例 #3
0
 def run_callbacks(self, request):
     context = {}
     for cb in self._callbacks:
         try:
             result = cb(request)
             context.update(result)
         except Exception:
             raven.captureException()
     return context
コード例 #4
0
ファイル: auth_login.py プロジェクト: alexandrul/sentry
 def run_callbacks(self, request):
     context = {}
     for cb in self._callbacks:
         try:
             result = cb(request)
             context.update(result)
         except Exception:
             raven.captureException()
     return context
コード例 #5
0
ファイル: webhooks.py プロジェクト: hiagodotme/sentry
 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()
コード例 #6
0
ファイル: webhooks.py プロジェクト: mjumbewu/sentry
 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()
コード例 #7
0
ファイル: base.py プロジェクト: Crystalnix/sentry
 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)
コード例 #8
0
ファイル: base.py プロジェクト: alexm92/sentry
    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)
コード例 #9
0
 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)
コード例 #10
0
ファイル: base.py プロジェクト: hosmelq/sentry
 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
コード例 #11
0
ファイル: base.py プロジェクト: carriercomm/sentry-1
 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)
コード例 #12
0
    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,
        )