Skip to content

fix(server-nestjs): consume projectMember events in gitlab module - #2721

Draft
shikanime wants to merge 1 commit into
mainfrom
fix/project-member-gitlab-sync
Draft

fix(server-nestjs): consume projectMember events in gitlab module#2721
shikanime wants to merge 1 commit into
mainfrom
fix/project-member-gitlab-sync

Conversation

@shikanime

Copy link
Copy Markdown
Member

Issues liées

#2590 (fermeture délibérée après fusion, sur vérification du ledger)


Quel est le comportement actuel ?

project-members.service.ts émet projectMember.upsert / projectMember.delete via AppEventsService, mais aucun consommateur @OnEvent('projectMember.*') n'existe dans server-nestjs : les événements sont émis sans effet et la synchronisation des membres du groupe GitLab ne se fait plus sur les routes déjà basculées (/api/v1/projects).

Quel est le nouveau comportement ?

Le module gitlab consomme les deux événements :

  • projectMember.upsert → re-synchronisation complète des membres du groupe GitLab du projet (réutilise ensureProjectGroupMembers), en parité avec l'étape main du hook legacy upsertProjectMember ;
  • projectMember.delete → suppression ciblée du membre du groupe (résolution email → utilisateur GitLab, puis removeGroupMember) ; utilisateur ou groupe absent de GitLab = OK, en parité avec l'étape post du hook legacy deleteProjectMember.

Les trois sites d'émission restent inchangés. Les résultats passent par capturePluginResult (échec → KO tracé dans le journal admin), comme les consommateurs project.* existants.

Cette PR introduit-elle un breaking change ?

Non.

Autres informations

projectMember.upsert/delete were emitted with no @onevent consumer, so GitLab group member sync silently stopped on the /api/v1/projects routes already cut over to server-nestjs. Add a gitlab consumer that reconciles the project group members on upsert (parity with the legacy main step) and removes the group member on delete (parity with the legacy post step; absent user or group tolerated as OK).

Refs #2590

Co-authored-by: Automata <automata@shikanime.studio>
Signed-off-by: William Phetsinorath <william.phetsinorath-open@interieur.gouv.fr>
Change-Id: I258b7d5035b1d05946e851297ec3a1376a6a6964
@shikanime shikanime self-assigned this Sep 11, 2026
@shikanime shikanime added the bug Something isn't working label Sep 11, 2026
@shikanime shikanime added this to the 9.27.0 milestone Sep 11, 2026
@github-actions github-actions Bot added the built label Sep 11, 2026
@cloud-pi-native-sonarqube

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working built

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant