diff --git a/src/lib/addons/teams.ts b/src/lib/addons/teams.ts index ce184d25fc86..726d166f76e8 100644 --- a/src/lib/addons/teams.ts +++ b/src/lib/addons/teams.ts @@ -13,6 +13,24 @@ import { import type { IEvent } from '../types/events'; import type { IntegrationEventState } from '../features/integration-events/integration-events-store'; +import { + CHANGE_ADDED, + CHANGE_DISCARDED, + CHANGE_EDITED, + CHANGE_REQUEST_APPLIED, + CHANGE_REQUEST_APPROVAL_ADDED, + CHANGE_REQUEST_APPROVED, + CHANGE_REQUEST_CANCELLED, + CHANGE_REQUEST_CREATED, + CHANGE_REQUEST_DISCARDED, + CHANGE_REQUEST_REJECTED, + CHANGE_REQUEST_SENT_TO_REVIEW, + CHANGE_REQUEST_SCHEDULED, + CHANGE_REQUEST_SCHEDULED_APPLICATION_SUCCESS, + CHANGE_REQUEST_SCHEDULED_APPLICATION_FAILURE, + CHANGE_REQUEST_SCHEDULE_SUSPENDED, +} from '../types/events'; + interface ITeamsParameters { url: string; customHeaders?: string; @@ -23,6 +41,26 @@ export default class TeamsAddon extends Addon { flagResolver: IFlagResolver; constructor(args: IAddonConfig) { + if (args.flagResolver.isEnabled('teamsIntegrationChangeRequests')) { + teamsDefinition.events = [ + ...teamsDefinition.events!, + CHANGE_ADDED, + CHANGE_DISCARDED, + CHANGE_EDITED, + CHANGE_REQUEST_APPLIED, + CHANGE_REQUEST_APPROVAL_ADDED, + CHANGE_REQUEST_APPROVED, + CHANGE_REQUEST_CANCELLED, + CHANGE_REQUEST_CREATED, + CHANGE_REQUEST_DISCARDED, + CHANGE_REQUEST_REJECTED, + CHANGE_REQUEST_SENT_TO_REVIEW, + CHANGE_REQUEST_SCHEDULED, + CHANGE_REQUEST_SCHEDULED_APPLICATION_SUCCESS, + CHANGE_REQUEST_SCHEDULED_APPLICATION_FAILURE, + CHANGE_REQUEST_SCHEDULE_SUSPENDED, + ]; + } super(teamsDefinition, args); this.msgFormatter = new FeatureEventFormatterMd({ unleashUrl: args.unleashUrl, diff --git a/src/lib/types/experimental.ts b/src/lib/types/experimental.ts index b72c48973e97..e1504613a67a 100644 --- a/src/lib/types/experimental.ts +++ b/src/lib/types/experimental.ts @@ -66,7 +66,8 @@ export type IFlagKey = | 'frontendHeaderRedesign' | 'dataUsageMultiMonthView' | 'uiGlobalFontSize' - | 'connectionCount'; + | 'connectionCount' + | 'teamsIntegrationChangeRequests'; export type IFlags = Partial<{ [key in IFlagKey]: boolean | Variant }>; @@ -319,6 +320,10 @@ const flags: IFlags = { process.env.EXPERIMENTAL_CONNECTION_COUNT, false, ), + teamsIntegrationChangeRequests: parseEnvVarBoolean( + process.env.EXPERIMENTAL_TEAMS_INTEGRATION_CHANGE_REQUESTS, + false, + ), }; export const defaultExperimentalOptions: IExperimentalOptions = { diff --git a/src/server-dev.ts b/src/server-dev.ts index 3518c217e5be..3643164c970e 100644 --- a/src/server-dev.ts +++ b/src/server-dev.ts @@ -60,6 +60,7 @@ process.nextTick(async () => { dataUsageMultiMonthView: true, filterExistingFlagNames: true, uiGlobalFontSize: true, + teamsIntegrationChangeRequests: true, }, }, authentication: {