Parent
#1
What to build
The second Provider implementation: a GitLab adapter covering the full ActivitySet (MRs authored/merged, reviews/approvals given, comments written/received, merge timing, rework signals), with identity bound to the immutable GitLab account ID and org-scoping via a group access token with read-API scope. This slice exists to keep the provider abstraction honest — divergences between platforms must be resolved in the adapter, not leaked into metrics, schema, or rendering.
Includes cross-adapter parity tests: equivalent activity recorded in GitHub and GitLab fixture form must normalize to equivalent ActivitySets and produce identical metrics.
Acceptance criteria
Blocked by
Parent
#1
What to build
The second
Providerimplementation: a GitLab adapter covering the full ActivitySet (MRs authored/merged, reviews/approvals given, comments written/received, merge timing, rework signals), with identity bound to the immutable GitLab account ID and org-scoping via a group access token with read-API scope. This slice exists to keep the provider abstraction honest — divergences between platforms must be resolved in the adapter, not leaked into metrics, schema, or rendering.Includes cross-adapter parity tests: equivalent activity recorded in GitHub and GitLab fixture form must normalize to equivalent ActivitySets and produce identical metrics.
Acceptance criteria
codereputeruns against a GitLab group with a group access token and produces a valid report covering all visible projectsBlocked by