in bot/code_review_bot/workflow.py [0:0]
def build_task(self, task_status):
"""
Create a specific implementation of AnalysisTask according to the task name
"""
try:
task_id = task_status["status"]["taskId"]
except KeyError:
raise Exception(f"Cannot read task name {task_id}")
try:
name = task_status["task"]["metadata"]["name"]
except KeyError:
raise Exception(f"Cannot read task name {task_id}")
# Default format is used first when the correct artifact is available
if DefaultTask.matches(task_id):
return DefaultTask(task_id, task_status)
elif name.startswith("source-test-mozlint-"):
return MozLintTask(task_id, task_status)
elif name == "source-test-clang-tidy":
return ClangTidyTask(task_id, task_status)
elif name == "source-test-clang-format":
return ClangFormatTask(task_id, task_status)
elif name == "source-test-doc-upload":
return DocUploadTask(task_id, task_status)
elif name == "source-test-clang-external":
return ExternalTidyTask(task_id, task_status)
elif name == "source-test-taskgraph-diff":
return TaskGraphDiffTask(task_id, task_status)
elif settings.autoland_group_id is not None and not name.startswith(
"source-test-"
):
# Log cleanly on autoland unknown tasks
logger.info("Skipping unknown task", id=task_id, name=name)
else:
return None