SIGN IN SIGN UP

Merge remote-tracking branch 'origin/main'

Both sides changed how a host's forge is decided, and both are kept.

The local side added `HostProfile.recognized` and `ForgeError::UnsupportedHost`,
which say a host is not one codeg speaks; the remote side added the
`detect_forge` probe and `ForgeError::WrongForge`, which ask the instance what
it is rather than reading its name.

`host_profile` marks a probed host recognized, so an instance the probe has
just identified as a GitLab is not then reported as an unsupported forge.
`guess_provider` becomes the total half of `provider_from_host_name`, which the
two sides had arrived at as separate copies of one host-name rule.
X
xintaofei committed
275da956ddbff59f5d42ac889f3392597a3cc31a