Example #1
0
    def create_issue(self):
        """
        Creates a new issue in jira from report group
        """
        report = ReportGroupService.by_id(
            self.request.unsafe_json_body['group_id'])
        form_data = {
            'title': self.request.unsafe_json_body.get('title',
                                                       'Unknown Title'),
            'content': self.request.unsafe_json_body.get('content', ''),
            'issue_type': self.request.unsafe_json_body['issue_type']['id'],
            'priority': self.request.unsafe_json_body['priority']['id'],
            'responsible': self.request.unsafe_json_body['responsible']['id'],
            'project': self.integration.config['project']
        }
        try:
            client = self.create_client()
            issue = client.create_issue(form_data, request=self.request)
        except IntegrationException as e:
            self.request.response.status_code = 503
            return {'error_messages': [str(e)]}

        comment_body = 'Jira issue created: %s ' % issue['web_url']
        comment = ReportComment(owner_id=self.request.user.id,
                                report_time=report.first_timestamp,
                                body=comment_body)
        report.comments.append(comment)
        return True
Example #2
0
    def create_issue(self):
        """
        Creates a new issue in github issue tracker from report group
        """
        report = ReportGroupService.by_id(
            self.request.unsafe_json_body["group_id"])
        form_data = {
            "title": self.request.unsafe_json_body.get("title",
                                                       "Unknown Title"),
            "content": self.request.unsafe_json_body.get("content"),
            "kind": [self.request.unsafe_json_body["status"]],
            "responsible":
            self.request.unsafe_json_body["responsible"]["user"],
        }

        try:
            client = GithubIntegration.create_client(
                self.request,
                self.integration.config["user_name"],
                self.integration.config["repo_name"],
            )
            issue = client.create_issue(form_data)
        except IntegrationException as e:
            self.request.response.status_code = 503
            return {"error_messages": [str(e)]}

        comment_body = "Github issue created: %s " % issue["web_url"]
        comment = ReportComment(
            owner_id=self.request.user.id,
            report_time=report.first_timestamp,
            body=comment_body,
        )
        report.comments.append(comment)
        return True
Example #3
0
    def create_issue(self):
        """
        Creates a new issue in github issue tracker from report group
        """
        report = ReportGroupService.by_id(
            self.request.unsafe_json_body['group_id'])
        form_data = {
            'title': self.request.unsafe_json_body.get('title',
                                                       'Unknown Title'),
            'content': self.request.unsafe_json_body.get('content'),
            'kind': [self.request.unsafe_json_body['status']],
            'responsible': self.request.unsafe_json_body['responsible']['user']
        }

        try:
            client = GithubIntegration.create_client(
                self.request, self.integration.config['user_name'],
                self.integration.config['repo_name'])
            issue = client.create_issue(form_data)
        except IntegrationException as e:
            self.request.response.status_code = 503
            return {'error_messages': [str(e)]}

        comment_body = 'Github issue created: %s ' % issue['web_url']
        comment = ReportComment(owner_id=self.request.user.id,
                                report_time=report.first_timestamp,
                                body=comment_body)
        report.comments.append(comment)
        return True
Example #4
0
    def __init__(self, request):
        Resource = appenlight.models.resource.Resource

        self.__acl__ = []
        group_id = request.matchdict.get("group_id", request.params.get("group_id"))
        group_id = to_integer_safe(group_id)
        self.report_group = ReportGroupService.by_id(group_id) if group_id else None
        if not self.report_group:
            raise HTTPNotFound()

        self.public = self.report_group.public
        self.resource = (
            ResourceService.by_resource_id(self.report_group.resource_id)
            if self.report_group
            else None
        )

        if self.resource:
            self.__acl__ = self.resource.__acl__
        if request.user:
            permissions = ResourceService.perms_for_user(self.resource, request.user)
            for perm_user, perm_name in permission_to_04_acls(permissions):
                self.__acl__.append(rewrite_root_perm(perm_user, perm_name))
        if self.public:
            self.__acl__.append((Allow, Everyone, "view"))
        if not request.user:
            # unauthed users need to visit using both group and report pair
            report_id = request.params.get(
                "reportId", request.params.get("report_id", -1)
            )
            report = self.report_group.get_report(report_id, public=True)
            if not report:
                raise HTTPNotFound()
        add_root_superperm(request, self)
Example #5
0
    def create_issue(self):
        """
        Creates a new issue in jira from report group
        """
        report = ReportGroupService.by_id(
            self.request.unsafe_json_body["group_id"])
        form_data = {
            "title": self.request.unsafe_json_body.get("title",
                                                       "Unknown Title"),
            "content": self.request.unsafe_json_body.get("content", ""),
            "issue_type": self.request.unsafe_json_body["issue_type"]["id"],
            "priority": self.request.unsafe_json_body["priority"]["id"],
            "responsible": self.request.unsafe_json_body["responsible"]["id"],
            "project": self.integration.config["project"],
        }
        try:
            client = self.create_client()
            issue = client.create_issue(form_data, request=self.request)
        except IntegrationException as e:
            self.request.response.status_code = 503
            return {"error_messages": [str(e)]}

        comment_body = "Jira issue created: %s " % issue["web_url"]
        comment = ReportComment(
            owner_id=self.request.user.id,
            report_time=report.first_timestamp,
            body=comment_body,
        )
        report.comments.append(comment)
        return True