Add missing attributes and endpoints to group
Addresses #2244 (closed) plus other missing pieces from group:
What does this MR do?
Closes the remaining gaps between groups.go and the upstream GitLab Groups
API documentation. After this MR every
documented endpoint and every documented GET /groups/:id response field has a
representation in client-go.
1. Group struct — 10 missing read fields
The API was returning these on GET /groups/:id but they were being dropped on
unmarshal:
OrganizationID, Archived, PreventSharingGroupsOutsideHierarchy,
EnabledGitAccessProtocol, DuoAvailability, ExperimentFeaturesEnabled,
DuoFeaturesEnabled, LockDuoFeaturesEnabled, MathRenderingLimitsEnabled,
LockMathRenderingLimitsEnabled.
Each field was placed next to its logical sibling in the struct (e.g.
OrganizationID next to ParentID, Archived next to MarkedForDeletionOn),
rather than dumped at the end.
2. CreateGroupOptions — resolves #2244 (closed)
Adds the 11 attributes called out in
work item #2244
that previously only existed on UpdateGroupOptions:
UniqueProjectDownloadLimit, UniqueProjectDownloadLimitIntervalInSeconds,
UniqueProjectDownloadLimitAllowlist, UniqueProjectDownloadLimitAlertlist,
AutoBanUserOnExcessiveProjectsDownload, MathRenderingLimitsEnabled,
LockMathRenderingLimitsEnabled, DuoFeaturesEnabled, LockDuoFeaturesEnabled,
WebBasedCommitSigningEnabled, AllowPersonalSnippets.
3. Five missing endpoints
| Method | Endpoint |
|---|---|
ListSAMLUsers |
GET /groups/:id/saml_users |
ListGroupsSharedWith |
GET /groups/:id/groups/shared |
ListInvitedGroups |
GET /groups/:id/invited_groups |
ListTransferLocations |
GET /groups/:id/transfer_locations (new TransferLocation type) |
SyncGroupWithLDAP |
POST /groups/:id/ldap_sync |
Each ships with an options struct matching the documented query parameters and
is registered on GroupsServiceInterface. Generated mocks were refreshed via
make generate.