in client/project.go [113:141]
func (c *Client) SetVersionedSettings(projectId string, settings models.VersionedSettingsJson) (*models.VersionedSettingsJson, error) {
rb, err := json.Marshal(settings)
if err != nil {
return nil, err
}
var actual models.VersionedSettingsJson
endpoint := fmt.Sprintf("/projects/id:%s/versionedSettings/config", projectId)
err = c.PutRequest(endpoint, bytes.NewReader(rb), &actual)
if err != nil {
return nil, err
}
//TODO TeamCIty rest api bug TW-90967, remove when fixed
if settings.ShowSettingsChanges != nil && actual.ShowSettingsChanges != settings.ShowSettingsChanges {
corrected, err := c.SetVersionedSettingsProperty(projectId, "showSettingsChanges", strconv.FormatBool(*settings.ShowSettingsChanges))
if err != nil {
return nil, fmt.Errorf("could not correct showSettingsChanges property, potentially not enough time for VersionedSettings to be applied: %w", err)
}
var correctedShowSettingsChanges bool
err = json.Unmarshal(corrected, &correctedShowSettingsChanges)
if err != nil {
return nil, fmt.Errorf("malformed showSettingsChanges property, more info: %w", err)
}
actual.ShowSettingsChanges = &correctedShowSettingsChanges
}
return &actual, nil
}