feat: Add GraphQL API support for security attributes and categories
Description
Adds GraphQL API support for Security Attributes and Security Categories to unblock the Terraform provider for GitLab.
This MR implements two new services:
SecurityCategoriesService — 3 mutations:
CreateSecurityCategory— creates a new security category under a namespaceUpdateSecurityCategory— updates an existing security category's name or descriptionDestroySecurityCategory— deletes a security category and all its associated attributes
SecurityAttributesService — 5 mutations:
CreateSecurityAttributes— creates one or more attributes under a security categoryUpdateSecurityAttribute— updates an existing attribute's name, description, or colorDestroySecurityAttribute— deletes a security attributeProjectUpdateSecurityAttribute— adds or removes attributes on a projectBulkUpdateSecurityAttributes— adds, removes, or replaces attributes across multiple groups and projects
Both services follow the established GraphQL pattern in this codebase (two-layer struct pattern with xGQL internal types and unwrap() conversion, map[string]any for mutation inputs, GenericGraphQLErrors embedding).
Closes #2252 (closed)
Edited by Caleb Madara