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 via scripts/generate_*.sh
  • Godoc links to the API documentation page

🤖 Generated with Claude Code

Edited by Miguel Sacristan

Merge request reports

Loading
Loading