GraphQL API returns wrong results for pipelines of more than one merge request
Summary
When using GitLab's GraphQL API to query for pipelines of more than one merge request at once, GitLab will return the same list of pipelines for each merge request.
Steps to reproduce
Go to https://gitlab.com/-/graphql-explorer and execute this query:
{
project(fullPath: "gitlab-org/gitlab") {
mergeRequests(iids: ["47250", "47251"]) {
nodes {
id
title
pipelines(first: 1) {
nodes {
id
}
}
}
}
}
}
Example Project
Reproduced on https://gitlab.com/gitlab-org/gitlab
What is the current bug behavior?
This is the query result:
{
"data": {
"project": {
"mergeRequests": {
"nodes": [
{
"id": "gid://gitlab/MergeRequest/77504100",
"title": "Add note for jest spec best practices",
"pipelines": {
"nodes": [
{
"id": "gid://gitlab/Ci::Pipeline/215473328"
}
]
}
},
{
"id": "gid://gitlab/MergeRequest/77503306",
"title": "Docs: Edited Go Proxy topic",
"pipelines": {
"nodes": [
{
"id": "gid://gitlab/Ci::Pipeline/215473328"
}
]
}
}
]
}
}
}
}
Note that the same pipeline, gid://gitlab/Ci::Pipeline/215473328
, is provided as a result for both merge requests.
What is the expected correct behavior?
I expect this result:
{
"data": {
"project": {
"mergeRequests": {
"nodes": [
{
"id": "gid://gitlab/MergeRequest/77504100",
"title": "Add note for jest spec best practices",
"pipelines": {
"nodes": [
{
"id": "gid://gitlab/Ci::Pipeline/215473328"
}
]
}
},
{
"id": "gid://gitlab/MergeRequest/77503306",
"title": "Docs: Edited Go Proxy topic",
"pipelines": {
"nodes": [
{
"id": "gid://gitlab/Ci::Pipeline/214196176"
}
]
}
}
]
}
}
}
}
Note that each merge request has a different pipeline associated with it.
Relevant logs and/or screenshots
See code blocks above.
Output of checks
This bug happens on GitLab.com.
Possible fixes
I am not familiar with this code, so I don't know.