Jeff Tucker activity https://gitlab.com/jtucker_gl 2026-03-20T22:52:22Z tag:gitlab.com,2026-03-19:5222888036 Jeff Tucker commented on merge request !228074 at GitLab.org / GitLab 2026-03-19T15:51:44Z jtucker_gl Jeff Tucker

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.

tag:gitlab.com,2026-03-18:5218648919 Jeff Tucker commented on merge request !224162 at GitLab.org / GitLab 2026-03-18T16:53:05Z jtucker_gl Jeff Tucker

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?

tag:gitlab.com,2026-03-16:5210389728 Jeff Tucker pushed to project branch improve-build-failed-todo at GitLab.org / GitLab 2026-03-16T23:27:40Z jtucker_gl Jeff Tucker

Jeff Tucker (95d6ee8f) at 16 Mar 23:27

Update gitlab.pot with new translation string

... and 1 more commit

tag:gitlab.com,2026-03-16:5210320315 Jeff Tucker opened merge request !227568: Improve build_failed todo: add failed job names and pipeline link at GitLab.org / GitLab 2026-03-16T22:50:26Z jtucker_gl Jeff Tucker

Summary

  • Adds a `pipeline_id` column to the `todos` table to store the specific pipeline that triggered a `build_failed` todo
  • Updates the `build_failed` todo body to display up to 3 failed job names (e.g. `rspec, jest, rubocop and 2 more`), replacing the generic merge request title
  • Updates the todo target URL to navigate directly to the specific pipeline that failed (e.g. `/-/pipelines/123`) instead of the MR's pipelines tab (`/-/merge_requests/123/pipelines`)
  • Updates the Todos Vue app to render the failed job names in the todo item body

How it works

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.

Changelog

  • Updated `build_failed` todo to list failed job names (up to 3, then truncated)
  • Updated `build_failed` todo destination to link to the specific failed pipeline
  • Updated Todos frontend to display failed job names in the todo item body

Screenshots

Before After
- Screenshot_2026-03-16_at_4.26.38_PM