Skip to content

🐛 [BUG] server-nestjs: projectMember.upsert/delete events have no consumer (GitLab member sync dead)  #2590

Description

@shikanime

Contexte / Context

La migration apps/server → apps/server-nestjs mappe les syncs de plugins via des Ă©vĂ©nements :

  • apps/server (legacy) : fire hook.projectMember.upsert(projectId, userId) / hook.projectMember.delete(projectId, userId) depuis resources/project-member/business.ts:52,61,69.
  • apps/server-nestjs : Ă©met via AppEventsService.emitProjectMemberEvent(...) → EventEmitter2 → consommateurs @OnEvent.

CĂŽtĂ© legacy, le hook est consommĂ© par le plugin gitlab : plugins/gitlab/src/index.ts:86-95 enregistre upsertProjectMember (Ă©tapes pre/main) et deleteProjectMember (post) — synchronisation des membres du projet cĂŽtĂ© GitLab.

ProblĂšme / Problem

Dans apps/server-nestjs, project-members.service.ts:62,127,152 émet projectMember.upsert / projectMember.delete, mais aucun module n'écoute ces événements :

grep -rln "OnEvent" apps/server-nestjs/src --include="*.ts" | xargs grep -l "projectMember"
# (aucun résultat)

ConsĂ©quence : l'ajout, la mise Ă  jour en lot ou la suppression d'un membre projet ne se rĂ©percute plus sur GitLab (invitations/permissions du groupe miroir). Le portage est silencieux — pas d'erreur, juste une dĂ©rive d'Ă©tat.

Issues liées

Définition du fini

  • Le choix de conception est tranchĂ© et documentĂ© dans cette issue (consommateurs @OnEvent dans un module gitlab nestjs vs arrĂȘt des Ă©missions)
  • Le comportement cible couvre les trois sites d'Ă©mission (project-members.service.ts:62,127,152)
  • Les specs verrouillant ce comportement sont ajoutĂ©es sous apps/server-nestjs
  • La paritĂ© avec le contrat legacy gitlab (pre/main/post) est vĂ©rifiĂ©e

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingtechnical debtRésoud de la dette technique

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions