diff --git a/src/lib/addons/__snapshots__/feature-event-formatter-md.test.ts.snap b/src/lib/addons/__snapshots__/feature-event-formatter-md.test.ts.snap index 8ce76de746..88fd96d3c7 100644 --- a/src/lib/addons/__snapshots__/feature-event-formatter-md.test.ts.snap +++ b/src/lib/addons/__snapshots__/feature-event-formatter-md.test.ts.snap @@ -184,6 +184,14 @@ exports[`Should format specialised text for events when no specific text for str } `; +exports[`Should format specialised text for events when project archived 1`] = ` +{ + "label": "Project archived", + "text": "*user@company.com* archived project *my-other-project*", + "url": "unleashUrl/projects-archive", +} +`; + exports[`Should format specialised text for events when rollout percentage changed 1`] = ` { "label": "Flag strategy updated", diff --git a/src/lib/addons/feature-event-formatter-md-events.ts b/src/lib/addons/feature-event-formatter-md-events.ts index fc1633e92e..f3f64fbc2f 100644 --- a/src/lib/addons/feature-event-formatter-md-events.ts +++ b/src/lib/addons/feature-event-formatter-md-events.ts @@ -57,6 +57,7 @@ import { CHANGE_REQUEST_SCHEDULED_APPLICATION_FAILURE, CHANGE_REQUEST_SCHEDULE_SUSPENDED, FEATURE_COMPLETED, + PROJECT_ARCHIVED, } from '../types'; interface IEventData { @@ -306,6 +307,11 @@ export const EVENT_MAP: Record = { action: '{{b}}{{user}}{{b}} created project {{b}}{{project}}{{b}}', path: '/projects', }, + [PROJECT_ARCHIVED]: { + label: 'Project archived', + action: '{{b}}{{user}}{{b}} archived project {{b}}{{event.project}}{{b}}', + path: '/projects-archive', + }, [PROJECT_DELETED]: { label: 'Project deleted', action: '{{b}}{{user}}{{b}} deleted project {{b}}{{event.project}}{{b}}', diff --git a/src/lib/addons/feature-event-formatter-md.test.ts b/src/lib/addons/feature-event-formatter-md.test.ts index 7437045517..bd8ee3a389 100644 --- a/src/lib/addons/feature-event-formatter-md.test.ts +++ b/src/lib/addons/feature-event-formatter-md.test.ts @@ -7,6 +7,7 @@ import { FEATURE_STRATEGY_REMOVE, FEATURE_STRATEGY_UPDATE, type IEvent, + PROJECT_ARCHIVED, SYSTEM_USER_ID, } from '../types'; @@ -571,6 +572,22 @@ const testCases: [string, IEvent][] = [ environment: 'production', }, ], + [ + 'when project archived', + { + id: 922, + type: PROJECT_ARCHIVED, + createdBy: 'user@company.com', + createdByUserId: SYSTEM_USER_ID, + createdAt: new Date('2024-11-25T10:33:59.459Z'), + data: null, + preData: null, + tags: [], + featureName: undefined, + project: 'my-other-project', + environment: 'production', + }, + ], ]; testCases.forEach(([description, event]) => diff --git a/src/lib/addons/slack-app-definition.ts b/src/lib/addons/slack-app-definition.ts index cd16caaa97..2cc22c9c1c 100644 --- a/src/lib/addons/slack-app-definition.ts +++ b/src/lib/addons/slack-app-definition.ts @@ -56,6 +56,7 @@ import { CHANGE_REQUEST_SCHEDULED, CHANGE_REQUEST_SCHEDULED_APPLICATION_SUCCESS, CHANGE_REQUEST_SCHEDULED_APPLICATION_FAILURE, + PROJECT_ARCHIVED, } from '../types/events'; import type { IAddonDefinition } from '../types/model'; @@ -139,6 +140,7 @@ const slackAppDefinition: IAddonDefinition = { BANNER_UPDATED, BANNER_DELETED, PROJECT_CREATED, + PROJECT_ARCHIVED, PROJECT_DELETED, SEGMENT_CREATED, SEGMENT_DELETED, diff --git a/website/docs/reference/integrations/slack-app.mdx b/website/docs/reference/integrations/slack-app.mdx index 532f181505..0df3c09bcb 100644 --- a/website/docs/reference/integrations/slack-app.mdx +++ b/website/docs/reference/integrations/slack-app.mdx @@ -72,6 +72,7 @@ You can choose to trigger updates for the following events: - group-deleted - group-updated - project-created +- project-archived - project-deleted - segment-created - segment-deleted