feat(gitlab): full group retrieval
Overview
Implements full group retrieval for the GitLab connector. and adds all the mappings of GitLab access levels into group-permission suffixes.
What this PR does / why we need it
Implement fetching all groups and per-group membership from the GitLab API so Dex can return the complete set of groups for a user (not only those in the /oauth/userinfo response). See upstream discussion: https://gitlab.com/gitlab-org/gitlab/-/issues/340905. The filtering via groups will prevent overly large tokens. Full group retrieval now requires the read_api scope.
To further this along, I've pulled this PR into build that I made at https://github.com/cardoe/dex/releases/tag/v2.44.90 You can grab the container to test with at ghcr.io/cardoe/dex:v2.44.90 and report back on this PR.