feat: add group applications service
What does this MR do?
Adds a GroupApplicationsService covering the group-owned OAuth applications REST API:
| Method | Endpoint |
|---|---|
CreateGroupApplication |
POST /groups/:id/applications |
ListGroupApplications |
GET /groups/:id/applications |
GetGroupApplication |
GET /groups/:id/applications/:application_id |
UpdateGroupApplication |
PUT /groups/:id/applications/:application_id |
DeleteGroupApplication |
DELETE /groups/:id/applications/:application_id |
It reuses the existing Application type, follows the GroupBadges/GroupVariables service conventions (gid any + GroupID{gid}, generic do[T] helpers, interface + compile-time assertion), and regenerates the testing client/mocks. Update deliberately only supports name and scopes — redirect_uri and confidential are immutable in the upstream API.
Upstream API
The API merged in gitlab-org/gitlab!250319 (merged) (resolves gitlab-org/gitlab#416504) and ships in GitLab 19.6. This client mirrors it field-for-field, and the documentation links in the code point to the doc/api/group_applications.md page it added.
Downstream consumer: gitlab_group_application resource for the Terraform provider (gitlab-org/terraform-provider-gitlab#6880).
Checklist
- Tests for all five methods (mock HTTP, Gherkin comments,
t.Parallel(), testify) — all green with-race -
testing/mocks regenerated viascripts/generate_*.sh - Godoc links to the API documentation page