oncall-engine/engine/apps/api/tests
Innokentii Konstantinov 9628bdc51f
Webhook labels (#3383)
This PR add labels for webhooks. 
1. Make webhook "labelable" with ability to filter by labels.
2. Add labels to the webhook payload. It contain new field webhook with
it's name, id and labels. Field integration and alert_group has a
corresponding label field as well. See example of a new payload below:
```
{
    "event": {
        "type": "escalation"
    },
    "user": null,
    "alert_group": {
        "id": "IRFN6ZD31N31B",
        "integration_id": "CTWM7U4A2QG97",
        "route_id": "RUE7U7Z46SKGY",
        "alerts_count": 1,
        "state": "firing",
        "created_at": "2023-11-22T08:54:55.178243Z",
        "resolved_at": null,
        "acknowledged_at": null,
        "title": "Incident",
        "permalinks": {
            "slack": null,
            "telegram": null,
            "web": "http://grafana:3000/a/grafana-oncall-app/alert-groups/IRFN6ZD31N31B"
        },
        "labels": {
            "severity": "critical"
        }
    },
    "alert_group_id": "IRFN6ZD31N31B",
    "alert_payload": {
        "message": "This alert was sent by user for demonstration purposes"
    },
    "integration": {
        "id": "CTWM7U4A2QG97",
        "type": "webhook",
        "name": "hi - Webhook",
        "team": null,
        "labels": {
            "hello": "world",
            "severity": "critical"
        }
    },
    "notified_users": [],
    "users_to_be_notified": [],
    "webhook": {
        "id": "WHAXK4BTC7TAEQ",
        "name": "test",
        "labels": {
            "hello": "kesha"
        }
    }
}
```

I feel that there is an opportunity to make code cleaner - remove all
label logic from serializers, views and utils to models or dedicated
LabelerService and introduce Labelable interface with something like
label_verbal, update_labels methods. However, I don't want to tie
webhook labels with a refactoring.

---------

Co-authored-by: Dominik <dominik.broj@grafana.com>
2023-11-22 11:17:41 +00:00
..
__init__.py World, meet OnCall! 2022-06-03 08:09:47 -06:00
conftest.py Improve Slack error handling (#3000) 2023-09-12 09:49:16 +00:00
test_alert_group.py Add labels to alert group API responses (#3292) 2023-11-08 09:18:15 +00:00
test_alert_receive_channel.py Webhook labels (#3383) 2023-11-22 11:17:41 +00:00
test_alert_receive_channel_template.py Handle None role when syncing users from Grafana (#3147) 2023-10-19 17:39:08 +00:00
test_auth.py Reworked slack login pipeline errors (#2526) 2023-07-18 13:31:11 +00:00
test_channel_filter.py Fix channel filter endpoint (#3192) 2023-10-25 12:33:05 +00:00
test_custom_button.py Handle None role when syncing users from Grafana (#3147) 2023-10-19 17:39:08 +00:00
test_escalation_chain.py Allow changing team for escalation chains (#1658) 2023-03-30 10:43:00 +01:00
test_escalation_policy.py Handle None role when syncing users from Grafana (#3147) 2023-10-19 17:39:08 +00:00
test_features.py remove two unused feature flags (#2734) 2023-08-02 14:07:47 -04:00
test_integration_heartbeat.py Handle None role when syncing users from Grafana (#3147) 2023-10-19 17:39:08 +00:00
test_labels.py Webhook labels (#3383) 2023-11-22 11:17:41 +00:00
test_live_settings.py Telegram long polling (#2250) 2023-08-24 09:12:24 +02:00
test_oncall_shift.py Disable updates for API/terraform shifts in internal API (#3224) 2023-10-31 15:08:07 +00:00
test_openapi_schema.py allow specifying more than one redis server URI in the REDIS_URI env var (#3368) 2023-11-16 10:48:36 -05:00
test_organization.py Handle None role when syncing users from Grafana (#3147) 2023-10-19 17:39:08 +00:00
test_paging.py Updates to POST /direct_paging internal API endpoint to support Grafana Incident use-cases (#3232) 2023-11-01 17:19:44 -04:00
test_permissions.py Permissions for labels (#3173) 2023-10-23 11:03:51 +00:00
test_preview_template_options.py World, meet OnCall! 2022-06-03 08:09:47 -06:00
test_public_api_tokens.py Handle None role when syncing users from Grafana (#3147) 2023-10-19 17:39:08 +00:00
test_resolution_note.py Resolution note source mobile app (#3174) 2023-10-20 15:22:45 +01:00
test_route_regex_debugger.py World, meet OnCall! 2022-06-03 08:09:47 -06:00
test_schedule_export.py Handle None role when syncing users from Grafana (#3147) 2023-10-19 17:39:08 +00:00
test_schedules.py Move cache clear to fixtures, fix some deprecation notices (#3269) 2023-11-06 16:52:50 +00:00
test_set_general_log_channel.py Handle None role when syncing users from Grafana (#3147) 2023-10-19 17:39:08 +00:00
test_shift_swaps.py Handle None role when syncing users from Grafana (#3147) 2023-10-19 17:39:08 +00:00
test_slack_channels.py Handle None role when syncing users from Grafana (#3147) 2023-10-19 17:39:08 +00:00
test_slack_team_settings.py Handle None role when syncing users from Grafana (#3147) 2023-10-19 17:39:08 +00:00
test_team.py Improve performance of GET /users and GET /teams endpoints used by add responders popup (#3241) 2023-11-03 12:40:54 -04:00
test_telegram_channel.py Handle None role when syncing users from Grafana (#3147) 2023-10-19 17:39:08 +00:00
test_user.py Enable filtering users by public primary key (#3339) 2023-11-14 12:56:58 +00:00
test_user_groups.py Handle None role when syncing users from Grafana (#3147) 2023-10-19 17:39:08 +00:00
test_user_notification_policy.py Fix duplicate orders for user notification policies (#2278) 2023-06-21 11:13:56 +00:00
test_user_schedule_export.py Handle None role when syncing users from Grafana (#3147) 2023-10-19 17:39:08 +00:00
test_webhook_presets.py Webhook labels (#3383) 2023-11-22 11:17:41 +00:00
test_webhooks.py Webhook labels (#3383) 2023-11-22 11:17:41 +00:00