Files
Jamie Tanna bbcff40acb rew! feat(manager/buildkite): recognise known plugins by any valid reference form
`known-plugins.ts` is keyed on how a plugin is written in its short
form (`docker`, or `org/name` for a third-party plugin), but Buildkite
allows a plugin to be referenced in ways that don't match that key
literally:

- A git URL (`ssh://git@host/org/repo#ref:`) rather than the short
  `name#version` form. We derive the equivalent short key from the
  git-hosted repo path by stripping the conventional
  `-buildkite-plugin` suffix (and the `buildkite-plugins/` prefix for
  official plugins), so e.g.
  `ssh://git@github.com/buildkite-plugins/docker-buildkite-plugin#v5.14.0`
  resolves to the same `docker` entry as the short form does. A repo
  name that doesn't follow this convention still doesn't match
  anything, same as an unrecognised short-form name.
- An explicit `buildkite-plugins/` prefix on the short form itself
  (`buildkite-plugins/docker#v5.14.0`) - this names the same plugin as
  the bare `docker#v5.14.0`, so we normalise it the same way.
- A plugin with no config of its own, written as a bare array string
  (`plugins: [docker-login#v2.0.1]`) rather than a single-key map -
  valid per Buildkite's own pipeline schema (`pluginsList` is
  `oneOf: [string, object(maxProperties: 1)]`). A known plugin's
  `extract` is still called in this case (with `undefined` config), it
  just can't find anything to report.

Co-Authored-By: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-10-19 17:05:56 +01:00
..