code: func fetchApps(ctx context.Context, client *http.Client, url string) (*appList, error) {
  	request, err := http.NewRequest("GET", url, nil)
  	if err != nil {
  		return nil, err
  	}
  	request = request.WithContext(ctx)
  
  	resp, err := client.Do(request)
  	if err != nil {
  		return nil, err
  	}
  	defer func() {
  		io.Copy(ioutil.Discard, resp.Body)
  		resp.Body.Close()
  	}()
  
  	if (resp.StatusCode < 200) || (resp.StatusCode >= 300) {
  		return nil, errors.Errorf("non 2xx status '%v' response during marathon service discovery", resp.StatusCode)
  	}
  
  	var apps appList
  	err = json.NewDecoder(resp.Body).Decode(&apps)
  	if err != nil {
  		return nil, errors.Wrapf(err, "%q", url)
  	}
  	return &apps, nil
  }
docs: // fetchApps requests a list of applications from a marathon server.