opentelemetry-go-build-tools This Week: Precise Failing Job Links in issuegenerator

I looked at the last week of commits in opentelemetry-go-build-tools, the repo that holds the CI helper tools for the OpenTelemetry Go project. The headline change is in issuegenerator: when a build fails, generated issues now link to each failing job instead of the generic workflow run. Around that, Renovate landed 14 dependency pull requests and little else moved.

issuegenerator now points to the exact failing job

Anyone who has opened a flaky test issue in the OpenTelemetry Go repo knows the old format. The issue said which workflow failed and gave one link to the whole run. You then clicked through the run summary to find which of the four jobs was red.

That changed with this commit, merged as the failing job link change (#1552). The work lives in issuegenerator/internal/github/client.go. A new getFailedJobURLs function calls the GitHub Actions jobs API, paginates 100 jobs per request, and collects every job whose conclusion is failure along with its HTML URL. The issue body, issue comments, and PR comments all get a collapsible details block titled “Failing job(s)” listing job names as links, sorted alphabetically.

The code keeps a fallback. If the jobs API call fails or returns nothing, the generic run URL from getRunURL still renders, and the empty details block collapses to nothing visible. The maintainer also refactored templateHelper to take a client and context so it can make API calls while expanding template variables. Tests in client_test.go cover the empty job list path with a mocked HTTP client.

A changelog entry exists at .chloggen/feat_issuegenerator-failed-job-link.yaml, so downstream users of issuegenerator will see this in the next release.

Dependency bumps across the tool modules

Everything else this week came from Renovate. The diff stats (54 files, 407 insertions, 196 deletions) are mostly go.mod and go.sum churn. internal/tools/go.mod saw nine commits touching it.

Notable items:

The regexp2 and go-json updates came through as fix type bumps, which suggests minor version changes that Renovate treats as potential behavior fixes. Nothing here requires action from tools users; you get these when you update your tool module.

What to watch

  • issuegenerator output changes with the next release. If you parse these issues programmatically, the collapsible failing job block is new markup to expect.
  • The jobs API adds one GitHub API call per generated issue. If a run has many jobs, pagination handles it, but rate limits matter if you generate many issues at once.
  • Expect more Renovate noise in the next window. That is the normal rhythm of this repo, and the issuegenerator work is the piece worth remembering from this week.

← All updates