Hoppa till innehållet

Notiser till teamschatten

API

Berättar för teamet i dess gruppchatt när något nytt har lagts till i tidslinjen, utan att någon behöver gå in på sidan.

källa: apps/projekt/src/teamsnotis, apps/projekt/src/instrumentation.tsuppdaterad:

Ansvar

  • När en ny version startar: jämföra tidslinjens händelser med dem som redan fått en notis, och skicka ett kort per ny händelse som har hänt.
  • Vara avstängd tills den slås på, och aldrig väcka gamla händelser: första gången och i läget logg markeras allt utan att skickas.
  • Skicka varje ny händelse oavsett slag – den är godkänd innan den lades i tidslinjen (ADR-035) – och högst fem kort per start, resten i ett gemensamt kort.
  • Minnas vad som skickats i datavolymen, och inte markera något som inte gick iväg.

Filer

Tabell: Sökväg, Roll
SökvägRoll
teamsnotis/urval.tsLäget ur miljön, och valjNya: vad som är nytt, vad som får egna kort och vad som markeras. Ren logik.
teamsnotis/kort.tshandelsekort och samlingskort: Adaptive Card 1.4 i Microsofts webhook-kuvert, med knappar till den publika adressen.
teamsnotis/skicka.tsskickaNyaHandelser: läser och skriver TEAMS_NOTIS_FIL, postar till webhooken och loggar. Kastar aldrig.
instrumentation.tsStartar skickandet 30 sekunder efter serverstart, och bara när TEAMS_NOTISER inte är av.
teamsnotis/teamsnotis.test.tsLäget, urvalet, korten och hela körningen mot en tillfällig fil och ett fejkat nätanrop.
miljo.test.tsVaktar att varje process.env.X står under environment i docker-compose.yml.

API

Tabell: Namn, Signatur, Beskrivning
NamnSignaturBeskrivning
skickaNyaHandelser(env?: Record<string, string | undefined>) => Promise<void>Gör en körning. Anropas vid start; kan anropas igen utan att något skickas två gånger.
valjNya({ handelser, skickade, idag }) => { forstaGangen, kort, ovriga, markera }Urvalet. skickade undefined betyder att inget någonsin skickats.

Kontrakt

Tabell: Variabel, Värde, Betyder
VariabelVärdeBetyder
TEAMS_NOTISERav | logg | paStandard av. logg gör allt utom att skicka, också att markera.
TEAMS_WEBHOOK_URLhttps://…Flödets HTTP-URL. En hemlighet.
TEAMS_NOTIS_FILsökvägListan över skickade id. I containern /app/data/teams-notiser.json.
PUBLIK_BAS_URLhttps://start.sundsvall.devAdressen knapparna leder till.
  • Flödet i Power Automate: utlösaren När en Teams-webhookbegäran tas emot med Vem som helst, och Publicera kort i en chatt eller kanal som Flödesrobot i gruppchatten. Fältet Adaptivt kort är uttrycket @{triggerBody()?['attachments'][0]['content']} – som text i stället för uttryck svarar Teams 400 med invalid JSON.
  • Power Automate svarar 202 när flödet tagit emot. Om kortet kom fram syns bara i flödets körningshistorik.
  • För att slå på utan att väcka det som hänt under tiden: kör en start med logg först, sedan pa.

Beroenden och beslut

Beslut: ADR-035, ADR-031

Levererar: TEAMS_NOTISER av | logg | pa, TEAMS_WEBHOOK_URL, Adaptive Card per händelse, samlingskort när fler än fem kommer på en gång

Kvarstår

  • Avstängd. Slås på med TEAMS_NOTISER och TEAMS_WEBHOOK_URL i Dokploy.
  • Statusrapporterna skickas inte; de skrivs utan deploy och behöver skickas när de sparas.
  • Flödet ägs av en person i Power Automate. Ett avstängt eller ändrat flöde märks inte här.

15 delar i projektportalen · gemensamma i devportalen: ai-adapter, anthropic, bygge, designsystem, dokploy, dokumentation, gemensamt, tokens, ui