Add GraphQL support for project targetBranchRules
## Summary The GitLab GraphQL API exposes `targetBranchRules` on the `Project` type, which represents the "Merge request branch workflow" rules configurable under **Settings → Merge requests**. These rules allow repository maintainers to define patterns that map source branch names to a specific target branch for new merge requests. This field and its associated mutations are not currently supported in client-go. ## Example query ```graphql query { project(fullPath: "gitlab-org/gitlab-test") { targetBranchRules { nodes { id name targetBranch createdAt updatedAt } } } } ``` ## What should be added - A `TargetBranchRule` struct representing a single rule node - A typed GraphQL query method (e.g. `GetProjectTargetBranchRules`) on the projects service or a dedicated service - Mutations for creating, updating, and deleting target branch rules, mirroring the GraphQL mutations `targetBranchRuleCreate`, `targetBranchRuleUpdate`, and `targetBranchRuleDelete` ## Motivation This is needed by [`glab`](https://gitlab.com/gitlab-org/cli) to fix [gitlab-org/cli#8232](https://gitlab.com/gitlab-org/cli/-/issues/8232), where `glab mr create` does not respect the repository's configured branch workflow rules and always targets the default branch instead. Without a typed wrapper here, `glab` would need to hand-roll a raw GraphQL query string via `client.GraphQL.Do()`, which is less maintainable and inconsistent with the rest of the library.
issue