Yes, this would be a change of requirements. I'd rather understand why the link isn't working for you @dmishunov, as we did validate this during UAT.
Hey @dstull! I generated this MR with Duo (!224162 (comment 3099343048)) with the hopes of a quick win. The feedback here is much more involved than I have capacity to take on, so I'll have to leave the associated issue to you and @jmontal to take forward. Would you prefer I close this MR out to start fresh?
Jeff Tucker (95d6ee8f) at 16 Mar 23:27
Update gitlab.pot with new translation string
... and 1 more commit
When a CI build fails on the head pipeline of a merge request, `AddTodoWhenBuildFailsService` now passes the pipeline object through the `TodoService#merge_request_build_failed` call chain and stores it as `pipeline_id` on the created `Todo` records.
The `Todo#body` method now returns a comma-separated list of failed job names when a pipeline is associated, truncating to 3 names with an "and N more" suffix when there are more. The `Todo#target_url` method now returns the specific pipeline URL when a pipeline is associated, falling back to the existing pipelines tab URL for older todos without a `pipeline_id`.
The `todo_item_body.vue` component uses the `body` field (already present in the GraphQL fragment) to render the job names alongside the "The pipeline failed" message, e.g. `The pipeline failed: rspec, jest, rubocop.`. It falls back to the generic message for older todos without job name data.
| Before | After |
|---|---|
| - |
![]() |