You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(create): propose the VCS host and CI provider from the fleet too
Same proposal for the last two one-of-many choices in `service create`, which
until now defaulted to the constants 'github' and 'github-actions' regardless of
what the fleet around them actually used.
These two leave a different kind of trace, so a probe member now accepts any of
three: a dependency (the ORM and tracing addons), a file or directory (a CI
provider's config — .github/workflows, .circleci/config.yml, .travis.yml), or a
substring of a remote URL in .git/config (the VCS host). The git config is read
directly rather than by shelling out to git: this runs once per service before a
prompt, and a process per service is the cost the cache exists to avoid. It is
read once per service rather than once per member, since three of the four probes
want it.
The VCS host is matched on host, not domain — `gitlab.example.com` is still
GitLab, and both GitLab and Bitbucket are commonly self-hosted. A host that names
none of them, GitHub Enterprise on a custom domain say, leaves no evidence, and
no evidence is reported as no evidence rather than guessed at.
Two things these differ from the catalog groups in:
They are provider ids, not catalog ids, so they must NOT reach the packages
prompt — validateSelection would reject 'github' as an unknown package, and
rightly. A probe now declares its kind, and fleetDefaults() returns catalog
members only.
And the proposal applies non-interactively as well. A package is an added
capability, so a --yes run stays out of it; a VCS host is not — one is picked
either way, so following the fleet beats following a constant even with no
prompt.
The CI proposal is filtered through the existing VCS compatibility check before
being offered, since Travis with a cloud registry is rejected further down —
proposing an incompatible provider would only move the error.
A choice against the scan is recorded for these too, but only when made HERE: by
flag, or by answering the prompt. A configured provider is already a standing
decision and copying it into a per-fleet override would spread it silently.
23 fleet tests. Verified end to end against a sandboxed fleet on GitLab with
CircleCI, Sequelize and Datadog: all four proposals correct from one scan, and
the VCS prompt opens on GitLab with the reason shown.
0 commit comments