From aa1c215b080c7008a8491b0db8fcd1f498c44a5c Mon Sep 17 00:00:00 2001 From: I748376 Date: Mon, 22 Jul 2024 13:26:13 +0000 Subject: [PATCH] send one request to update security relevance of a batch of commits (instead of sending a request for each individual commit) --- prospector/core/prospector.py | 10 +++++++--- prospector/rules/rules.py | 8 +------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/prospector/core/prospector.py b/prospector/core/prospector.py index c522d123d..589fb516d 100644 --- a/prospector/core/prospector.py +++ b/prospector/core/prospector.py @@ -19,7 +19,7 @@ from git.version_to_tag import get_possible_tags from llm.llm_service import LLMService from log.logger import get_level, logger, pretty_log -from rules.rules import RULES_PHASE_1, apply_rules +from rules.rules import NUM_COMMITS_PHASE_2, RULES_PHASE_1, apply_rules from stats.execution import ( Counter, ExecutionTimer, @@ -242,7 +242,7 @@ def prospector( # noqa: C901 and use_backend != USE_BACKEND_NEVER and len(missing) > 0 ): - save_preprocessed_commits(backend_address, payload) + save_or_update_processed_commits(backend_address, payload) else: logger.warning("Preprocessed commits are not being sent to backend") @@ -250,6 +250,10 @@ def prospector( # noqa: C901 preprocessed_commits, advisory_record, backend_address, enabled_rules ) + # Save outcome of security relevance to DB (Phase 2 Rule) + payload = [c.to_dict() for c in ranked_candidates[:NUM_COMMITS_PHASE_2]] + save_or_update_processed_commits(backend_address, payload) + # ConsoleWriter.print("Commit ranking and aggregation...") ranked_candidates = remove_twins(ranked_candidates) # ranked_candidates = tag_and_aggregate_commits(ranked_candidates, next_tag) @@ -398,7 +402,7 @@ def retrieve_preprocessed_commits( return (missing, commits) -def save_preprocessed_commits(backend_address, payload): +def save_or_update_processed_commits(backend_address, payload): with ExecutionTimer( core_statistics.sub_collection(name="save commits to backend") ): diff --git a/prospector/rules/rules.py b/prospector/rules/rules.py index adbc0ae6c..204e309b9 100644 --- a/prospector/rules/rules.py +++ b/prospector/rules/rules.py @@ -12,7 +12,6 @@ Counter, ExecutionTimer, execution_statistics, - measure_execution_time, ) from util.lsh import build_lsh_index, decode_minhash @@ -459,12 +458,7 @@ def apply( candidate.diff, candidate.repository, candidate.message ) - update_response = requests.post( - backend_address + "/commits/", - json=[candidate.to_dict()], - headers={"content-type": "application/json"}, - ) - update_response.raise_for_status() + return candidate.security_relevant except requests.exceptions.RequestException as e: error_type = type(e).__name__