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.

Merge request reports

Loading