chore: improve error message around gitaskpass failures (#9407)

This commit is contained in:
Steven Masley
2023-08-30 08:58:31 -05:00
committed by GitHub
parent 2399063a56
commit a910e934a4
2 changed files with 17 additions and 2 deletions

View File

@ -44,7 +44,13 @@ func (r *RootCmd) gitAskpass() *clibase.Cmd {
if errors.As(err, &apiError) && apiError.StatusCode() == http.StatusNotFound { if errors.As(err, &apiError) && apiError.StatusCode() == http.StatusNotFound {
// This prevents the "Run 'coder --help' for usage" // This prevents the "Run 'coder --help' for usage"
// message from occurring. // message from occurring.
cliui.Errorf(inv.Stderr, "%s\n", apiError.Message) lines := []string{apiError.Message}
if apiError.Detail != "" {
lines = append(lines, apiError.Detail)
}
cliui.Warn(inv.Stderr, "Coder was unable to handle this git request. The default git behavior will be used instead.",
lines...,
)
return cliui.Canceled return cliui.Canceled
} }
return xerrors.Errorf("get git token: %w", err) return xerrors.Errorf("get git token: %w", err)

View File

@ -1996,8 +1996,17 @@ func (api *API) workspaceAgentsGitAuth(rw http.ResponseWriter, r *http.Request)
gitAuthConfig = gitAuth gitAuthConfig = gitAuth
} }
if gitAuthConfig == nil { if gitAuthConfig == nil {
detail := "No git providers are configured."
if len(api.GitAuthConfigs) > 0 {
regexURLs := make([]string, 0, len(api.GitAuthConfigs))
for _, gitAuth := range api.GitAuthConfigs {
regexURLs = append(regexURLs, fmt.Sprintf("%s=%q", gitAuth.ID, gitAuth.Regex.String()))
}
detail = fmt.Sprintf("The configured git provider have regex filters that do not match the git url. Provider url regexs: %s", strings.Join(regexURLs, ","))
}
httpapi.Write(ctx, rw, http.StatusNotFound, codersdk.Response{ httpapi.Write(ctx, rw, http.StatusNotFound, codersdk.Response{
Message: fmt.Sprintf("No git provider found for URL %q", gitURL), Message: fmt.Sprintf("No matching git provider found in Coder for the url %q.", gitURL),
Detail: detail,
}) })
return return
} }