Add GraphQL mutation for rebasing merge requests
## Summary
Currently, rebasing an MR programmatically requires posting a `/rebase` quick action as a note. This works but has limitations for API consumers and AI agents:
- It's a side effect of note processing, not a dedicated API
- The operation is asynchronous with no direct feedback on completion/success
- No way to get the new commit SHA without polling
## Proposal
Add a dedicated GraphQL mutation for rebasing merge requests, similar to how we have `mergeRequestAccept` for merging.
```graphql
mutation mergeRequestRebase($projectPath: ID!, $iid: String!) {
mergeRequestRebase(input: { projectPath: $projectPath, iid: $iid }) {
mergeRequest {
iid
diffHeadSha
rebaseInProgress
}
errors
}
}
```
## Benefits
- **Proper API semantics** - Explicit mutation rather than note side effect
- **Better error handling** - Direct response with errors array
- **Clearer feedback** - Return the new SHA and rebase status
- **Improved tooling support** - Easier for CI/CD tools, scripts, and AI agents to integrate
## Context
This came up in discussion on https://gitlab.com/gitlab-org/gitlab/-/merge_requests/220216#note_3060871733 regarding AI agent guidelines. The `/rebase` quick action works but a proper mutation would be preferable for programmatic use.
## Related
- REST API already has `PUT /projects/:id/merge_requests/:merge_request_iid/rebase`
- This would add GraphQL parity
issue