code: func (s *ChangesService) change(tail string, changeID string, input interface{}) (*ChangeInfo, *Response, error) {
  	u := fmt.Sprintf("changes/%s/%s", changeID, tail)
  	req, err := s.client.NewRequest("POST", u, input)
  	if err != nil {
  		return nil, nil, err
  	}
  
  	v := new(ChangeInfo)
  	resp, err := s.client.Do(req, v)
  	if err != nil {
  		return nil, resp, err
  	}
  	if resp.StatusCode == http.StatusConflict {
  		body, err := ioutil.ReadAll(resp.Body)
  		if err != nil {
  			return v, resp, err
  		}
  		return v, resp, errors.New(string(body[:]))
  	}
  	return v, resp, nil
  }
docs: // change is an internal function to consolidate code used by SubmitChange,
  // AbandonChange and other similar functions.