in pkg/client/sonar/sonar.go [451:481]
func (sc Client) GenerateUserToken(userName string) (*string, error) {
emptyString := ""
log.Info(fmt.Sprintf("Start generating token for user %v in Sonar", userName))
resp, err := sc.jsonTypeRequest().
SetQueryParams(map[string]string{
loginField: userName,
nameField: cases.Title(language.English).String(userName),
}).
Post("/user_tokens/generate")
if err != nil {
return &emptyString, fmt.Errorf("failed to send request for user token generation: %w", err)
}
if resp.IsError() {
return nil, fmt.Errorf("failed to generate token for user %s with response %s", userName, resp.Status())
}
log.Info(fmt.Sprintf("Token for user %v has been generated", userName))
var userTokensGenerateResponse UserTokensGenerateResponse
if err = json.Unmarshal(resp.Body(), &userTokensGenerateResponse); err != nil {
return nil, fmt.Errorf(cantUnmarshalMsg, resp.Body(), err)
}
token := userTokensGenerateResponse.Token
return &token, nil
}