Beispiel #1
0
    def post(self, request, *args, **kwargs):
        try:
            token = request.META['HTTP_AUTHORIZATION'].split(' ', 1)[1]
        except (KeyError, IndexError):
            return self.respond(status=400)

        try:
            integration = get_integration_from_jwt(
                token, request.path, 'jira', request.GET, method='POST'
            )
        except AtlassianConnectValidationError:
            return self.respond(status=400)

        data = request.data

        if not data.get('changelog'):
            logger.info(
                'missing-changelog', extra={
                    'integration_id': integration.id,
                }
            )
            return self.respond()

        handle_assignee_change(integration, data)
        handle_status_change(integration, data)

        return self.respond()
Beispiel #2
0
    def post(self, request, *args, **kwargs):
        try:
            token = request.META['HTTP_AUTHORIZATION'].split(' ', 1)[1]
        except (KeyError, IndexError):
            return self.respond(status=400)

        data = request.DATA

        assignee_changed = any(item for item in data['changelog']['items']
                               if item['field'] == 'assignee')

        status_changed = any(item for item in data['changelog']['items']
                             if item['field'] == 'status')

        if assignee_changed or status_changed:
            try:
                integration = get_integration_from_jwt(token,
                                                       request.path,
                                                       request.GET,
                                                       method='POST')
            except AtlassianConnectValidationError:
                return self.respond(status=400)

            if assignee_changed:
                self.handle_assignee_change(integration, data)

            if status_changed:
                self.handle_status_change(integration, data)

        return self.respond()
Beispiel #3
0
    def post(self, request, *args, **kwargs):
        try:
            token = request.META['HTTP_AUTHORIZATION'].split(' ', 1)[1]
        except (KeyError, IndexError):
            return self.respond(status=400)

        data = request.DATA

        assignee_changed = any(
            item for item in data['changelog']['items'] if item['field'] == 'assignee'
        )

        status_changed = any(
            item for item in data['changelog']['items'] if item['field'] == 'status'
        )

        if assignee_changed or status_changed:
            try:
                integration = get_integration_from_jwt(
                    token, request.path, request.GET, method='POST'
                )
            except AtlassianConnectValidationError:
                return self.respond(status=400)

            if assignee_changed:
                self.handle_assignee_change(integration, data)

            if status_changed:
                self.handle_status_change(integration, data)

        return self.respond()
Beispiel #4
0
    def post(self, request, *args, **kwargs):
        try:
            token = request.META["HTTP_AUTHORIZATION"].split(" ", 1)[1]
        except (KeyError, IndexError):
            return self.respond(status=400)

        try:
            integration = get_integration_from_jwt(token,
                                                   request.path,
                                                   "bitbucket",
                                                   request.GET,
                                                   method="POST")
        except AtlassianConnectValidationError:
            return self.respond(status=400)

        integration.update(status=ObjectStatus.DISABLED)
        organizations = integration.organizations.all()

        Repository.objects.filter(
            organization_id__in=organizations.values_list("id", flat=True),
            provider="integrations:bitbucket",
            integration_id=integration.id,
        ).update(status=ObjectStatus.DISABLED)

        return self.respond()
    def post(self, request, *args, **kwargs):
        try:
            token = request.META["HTTP_AUTHORIZATION"].split(" ", 1)[1]
        except (KeyError, IndexError):
            return self.respond(status=400)

        try:
            integration = get_integration_from_jwt(token,
                                                   request.path,
                                                   "jira",
                                                   request.GET,
                                                   method="POST")
        except AtlassianConnectValidationError:
            return self.respond(status=400)

        data = request.data

        if not data.get("changelog"):
            logger.info("missing-changelog",
                        extra={"integration_id": integration.id})
            return self.respond()

        handle_assignee_change(integration,
                               data,
                               use_email_scope=settings.JIRA_USE_EMAIL_SCOPE)
        handle_status_change(integration, data)

        return self.respond()
Beispiel #6
0
    def post(self, request, *args, **kwargs):
        try:
            token = request.META['HTTP_AUTHORIZATION'].split(' ', 1)[1]
        except (KeyError, IndexError):
            return self.respond(status=400)

        try:
            integration = get_integration_from_jwt(
                token, request.path, 'jira', request.GET, method='POST'
            )
        except AtlassianConnectValidationError:
            return self.respond(status=400)

        data = request.DATA

        if not data.get('changelog'):
            logger.info(
                'missing-changelog', extra={
                    'integration_id': integration.id,
                }
            )
            return self.respond()

        handle_assignee_change(integration, data)
        handle_status_change(integration, data)

        return self.respond()
Beispiel #7
0
    def post(self, request, *args, **kwargs):
        try:
            token = request.META["HTTP_AUTHORIZATION"].split(" ", 1)[1]
        except (KeyError, IndexError):
            return self.respond(status=400)

        try:
            integration = get_integration_from_jwt(
                token, request.path, "jira", request.GET, method="POST"
            )
        except AtlassianConnectValidationError:
            return self.respond(status=400)

        integration.update(status=ObjectStatus.DISABLED)

        return self.respond()
Beispiel #8
0
    def post(self, request, *args, **kwargs):
        try:
            token = request.META['HTTP_AUTHORIZATION'].split(' ', 1)[1]
        except (KeyError, IndexError):
            return self.respond(status=400)

        data = request.DATA

        assignee_changed = any(item for item in data['changelog']['items']
                               if item['field'] == 'assignee')

        if not assignee_changed:
            return self.respond()

        try:
            integration = get_integration_from_jwt(token,
                                                   request.path,
                                                   request.GET,
                                                   method='POST')
        except AtlassianConnectValidationError:
            return self.respond(status=400)

        assignee = data['issue']['fields']['assignee']
        issue_key = data['issue']['key']

        if assignee is None:
            sync_group_assignee_inbound(
                integration,
                None,
                issue_key,
                assign=False,
            )
        else:
            sync_group_assignee_inbound(
                integration,
                assignee['emailAddress'],
                issue_key,
                assign=True,
            )

        return self.respond()
Beispiel #9
0
    def post(self, request, *args, **kwargs):
        try:
            token = request.META['HTTP_AUTHORIZATION'].split(' ', 1)[1]
        except (KeyError, IndexError):
            return self.respond(status=400)

        try:
            integration = get_integration_from_jwt(
                token, request.path, 'bitbucket', request.GET, method='POST'
            )
        except AtlassianConnectValidationError:
            return self.respond(status=400)

        integration.update(status=ObjectStatus.DISABLED)
        organizations = integration.organizations.all()

        Repository.objects.filter(
            organization_id__in=organizations.values_list('id', flat=True),
            provider='integrations:bitbucket',
            integration_id=integration.id,
        ).update(status=ObjectStatus.DISABLED)

        return self.respond()