Skip to content

Commit 93d527e

Browse files
valentijnscholtenxansec
authored andcommitted
check for existing issue inside celery task (#12508)
1 parent 21a888e commit 93d527e

File tree

1 file changed

+35
-50
lines changed

1 file changed

+35
-50
lines changed

dojo/jira_link/helper.py

Lines changed: 35 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -667,27 +667,48 @@ def push_to_jira(obj, *args, **kwargs):
667667
raise ValueError(msg)
668668

669669
if isinstance(obj, Finding):
670-
finding = obj
671-
if finding.has_jira_issue:
672-
return update_jira_issue_for_finding(finding, *args, **kwargs)
673-
return add_jira_issue_for_finding(finding, *args, **kwargs)
674-
675-
if isinstance(obj, Engagement):
676-
engagement = obj
677-
if engagement.has_jira_issue:
678-
return update_epic(engagement, *args, **kwargs)
679-
return add_epic(engagement, *args, **kwargs)
670+
return push_finding_to_jira(obj, *args, **kwargs)
680671

681672
if isinstance(obj, Finding_Group):
682-
group = obj
683-
if group.has_jira_issue:
684-
return update_jira_issue_for_finding_group(group, *args, **kwargs)
685-
return add_jira_issue_for_finding_group(group, *args, **kwargs)
673+
return push_finding_group_to_jira(obj, *args, **kwargs)
686674

675+
if isinstance(obj, Engagement):
676+
return push_engagement_to_jira(obj, *args, **kwargs)
687677
logger.error("unsupported object passed to push_to_jira: %s %i %s", obj.__name__, obj.id, obj)
688678
return None
689679

690680

681+
# we need thre separate celery tasks due to the decorators we're using to map to/from ids
682+
@dojo_model_to_id
683+
@dojo_async_task
684+
@app.task
685+
@dojo_model_from_id
686+
def push_finding_to_jira(finding, *args, **kwargs):
687+
if finding.has_jira_issue:
688+
return update_jira_issue(finding, *args, **kwargs)
689+
return add_jira_issue(finding, *args, **kwargs)
690+
691+
692+
@dojo_model_to_id
693+
@dojo_async_task
694+
@app.task
695+
@dojo_model_from_id(model=Finding_Group)
696+
def push_finding_group_to_jira(finding_group, *args, **kwargs):
697+
if finding_group.has_jira_issue:
698+
return update_jira_issue(finding_group, *args, **kwargs)
699+
return add_jira_issue(finding_group, *args, **kwargs)
700+
701+
702+
@dojo_model_to_id
703+
@dojo_async_task
704+
@app.task
705+
@dojo_model_from_id(model=Engagement)
706+
def push_engagement_to_jira(engagement, *args, **kwargs):
707+
if engagement.has_jira_issue:
708+
return update_epic(engagement, *args, **kwargs)
709+
return add_epic(engagement, *args, **kwargs)
710+
711+
691712
def add_issues_to_epic(jira, obj, epic_id, issue_keys, *, ignore_epics=True):
692713
try:
693714
return jira.add_issues_to_epic(epic_id=epic_id, issue_keys=issue_keys, ignore_epics=ignore_epics)
@@ -713,24 +734,6 @@ def add_issues_to_epic(jira, obj, epic_id, issue_keys, *, ignore_epics=True):
713734
return False
714735

715736

716-
# we need two separate celery tasks due to the decorators we're using to map to/from ids
717-
718-
@dojo_model_to_id
719-
@dojo_async_task
720-
@app.task
721-
@dojo_model_from_id
722-
def add_jira_issue_for_finding(finding, *args, **kwargs):
723-
return add_jira_issue(finding, *args, **kwargs)
724-
725-
726-
@dojo_model_to_id
727-
@dojo_async_task
728-
@app.task
729-
@dojo_model_from_id(model=Finding_Group)
730-
def add_jira_issue_for_finding_group(finding_group, *args, **kwargs):
731-
return add_jira_issue(finding_group, *args, **kwargs)
732-
733-
734737
def prepare_jira_issue_fields(
735738
project_key,
736739
issuetype_name,
@@ -926,24 +929,6 @@ def failure_to_add_message(message: str, exception: Exception, _: Any) -> bool:
926929
return True
927930

928931

929-
# we need two separate celery tasks due to the decorators we're using to map to/from ids
930-
931-
@dojo_model_to_id
932-
@dojo_async_task
933-
@app.task
934-
@dojo_model_from_id
935-
def update_jira_issue_for_finding(finding, *args, **kwargs):
936-
return update_jira_issue(finding, *args, **kwargs)
937-
938-
939-
@dojo_model_to_id
940-
@dojo_async_task
941-
@app.task
942-
@dojo_model_from_id(model=Finding_Group)
943-
def update_jira_issue_for_finding_group(finding_group, *args, **kwargs):
944-
return update_jira_issue(finding_group, *args, **kwargs)
945-
946-
947932
def update_jira_issue(obj, *args, **kwargs):
948933
def failure_to_update_message(message: str, exception: Exception, obj: Any) -> bool:
949934
if exception:

0 commit comments

Comments
 (0)