code: func (r *GormTrackerRepository) Save(ctx context.Context, t *Tracker) (*Tracker, error) {
  	defer goa.MeasureSince([]string{"goa", "db", "tracker", "save"}, time.Now())
  	res := Tracker{}
  	tx := r.db.Where("id = ?", t.ID).Find(&res)
  	if tx.RecordNotFound() {
  		log.Error(ctx, map[string]interface{}{
  			"err":        tx.Error,
  			"tracker_id": t.ID,
  		}, "tracker repository not found")
  		return nil, errors.NewNotFoundError("tracker", t.ID.String())
  	}
  	_, present := RemoteWorkItemImplRegistry[t.Type]
  	// Ensure we support this remote tracker.
  	if present != true {
  		return nil, errors.NewBadParameterError("type", t.Type)
  	}
  
  	if err := tx.Save(&t).Error; err != nil {
  		log.Error(ctx, map[string]interface{}{
  			"tracker_id": t.ID,
  			"err":        err,
  		}, "unable to save tracker repository")
  		return nil, errors.NewInternalError(ctx, err)
  	}
  	return t, nil
  }
docs: // Save updates the given tracker in storage.
  // returns NotFoundError, ConversionError or InternalError