code: func GetTask(tx *bolt.Tx, id string) (*api.Task, error) {
  	var t api.Task
  
  	if err := withTaskBucket(tx, id, func(bkt *bolt.Bucket) error {
  		p := bkt.Get(bucketKeyData)
  		if p == nil {
  			return errTaskUnknown
  		}
  
  		return proto.Unmarshal(p, &t)
  	}); err != nil {
  		return nil, err
  	}
  
  	return &t, nil
  }
docs: // GetTask retrieves the task with id from the datastore.