|
@@ -2,7 +2,7 @@ from typing import Any
|
|
|
|
|
|
from sentry.models.environment import Environment
|
|
|
from sentry.models.release import follows_semver_versioning_scheme
|
|
|
-from sentry.rules.age import AgeComparisonType
|
|
|
+from sentry.rules.age import AgeComparisonType, ModelAgeType
|
|
|
from sentry.rules.filters.latest_adopted_release_filter import (
|
|
|
get_first_last_release_for_env,
|
|
|
is_newer_release,
|
|
@@ -18,6 +18,17 @@ from sentry.workflow_engine.types import DataConditionHandler, WorkflowJob
|
|
|
|
|
|
@condition_handler_registry.register(Condition.LATEST_ADOPTED_RELEASE)
|
|
|
class LatestAdoptedReleaseConditionHandler(DataConditionHandler[WorkflowJob]):
|
|
|
+ comparison_json_schema = {
|
|
|
+ "type": "object",
|
|
|
+ "properties": {
|
|
|
+ "release_age_type": {"type": "string", "enum": [*ModelAgeType]},
|
|
|
+ "age_comparison": {"type": "string", "enum": [*AgeComparisonType]},
|
|
|
+ "environment": {"type": "string"},
|
|
|
+ },
|
|
|
+ "required": ["release_age_type", "age_comparison", "environment"],
|
|
|
+ "additionalProperties": False,
|
|
|
+ }
|
|
|
+
|
|
|
@staticmethod
|
|
|
def evaluate_value(job: WorkflowJob, comparison: Any) -> bool:
|
|
|
release_age_type = comparison["release_age_type"]
|