feat(hooks): add url_variables to the add and edit hook options
What does this MR do?
Adds URLVariables to AddProjectHookOptions, EditProjectHookOptions, AddGroupHookOptions and EditGroupHookOptions.
GitLab's add and edit endpoints for project and group hooks accept url_variables (common_hook_parameters in lib/api/helpers/web_hooks_helpers.rb). The option structs don't model the field, so a URL with {key} placeholders can't be sent together with the variables it references. Sent on its own, GitLab rejects it with Invalid url given.
!2405 (merged) and !2866 (merged) added URLVariables to the ProjectHook and GroupHook responses. This adds it to the requests.
The field is a plain slice, as AGENTS.md asks for new fields, placed next to CustomHeaders.
Why
The Terraform provider sets URL variables only after it creates a hook, so a hook with a masked URL can't be created (gitlab-org/terraform-provider-gitlab#6776). gitlab-org/terraform-provider-gitlab!3360 works around this in three API calls. With this field, it can send the URL and its variables in one create call, as GitLab's UI does.
Tests
Test{Add,Edit}{Project,Group}Hook_URLVariables check that the variables reach the request body. go test work -race passes, as do golangci-lint v2.14.0 and gofumpt v0.8.0. I didn't run buf, since the change touches no protobuf files.