Adding Jira DataProcessor
This commit is contained in:
@@ -2,7 +2,9 @@ import ast
|
||||
from abc import ABC, abstractmethod
|
||||
from typing import Any, Generator
|
||||
|
||||
from components.admin.admin_db_manager import AdminDbManager
|
||||
from core.Expando import Expando
|
||||
from core.jira import Jira
|
||||
from core.utils import UnreferencedNamesVisitor
|
||||
from utils.Datahelper import DataHelper
|
||||
|
||||
@@ -87,6 +89,22 @@ class TableDataProducer(DataProducer):
|
||||
yield from DataHelper.get(self._session, self.settings_manager, self.repository_name, self.table_name, Expando)
|
||||
|
||||
|
||||
class JiraDataProducer(DataProducer):
|
||||
"""Base class for data producers that emit data from Jira."""
|
||||
|
||||
def __init__(self, session, settings_manager, component_id, jira_object='issues', jira_query=''):
|
||||
super().__init__(component_id)
|
||||
self._session = session
|
||||
self.settings_manager = settings_manager
|
||||
self.jira_object = jira_object
|
||||
self.jira_query = jira_query
|
||||
self.db = AdminDbManager(session, settings_manager).jira
|
||||
|
||||
def emit(self, data: Any = None) -> Generator[Any, None, None]:
|
||||
jira = Jira(self.db.user_name, self.db.api_token)
|
||||
yield from jira.jql(self.jira_query)
|
||||
|
||||
|
||||
class DefaultDataPresenter(DataPresenter):
|
||||
"""Default data presenter that returns the input data unchanged."""
|
||||
|
||||
@@ -155,6 +173,7 @@ class WorkflowEngine:
|
||||
for processed_item in processor.process(item):
|
||||
# Recursively process through remaining processors
|
||||
yield from self._process_single_item(processed_item, processor_index + 1)
|
||||
|
||||
|
||||
def run(self) -> Generator[Any, None, None]:
|
||||
"""
|
||||
@@ -173,7 +192,7 @@ class WorkflowEngine:
|
||||
self.global_error = "First processor must be a DataProducer"
|
||||
raise ValueError(self.global_error)
|
||||
|
||||
for item in first_processor.emit():
|
||||
for item in first_processor.process(None):
|
||||
yield from self._process_single_item(item, 1)
|
||||
|
||||
def run_to_list(self) -> list[Any]:
|
||||
|
||||
Reference in New Issue
Block a user