code: func (a *assignmentSet) secret(readTx store.ReadTx, task *api.Task, secretID string) (*api.Secret, bool, error) {
  	secret := store.GetSecret(readTx, secretID)
  	if secret == nil {
  		return nil, false, fmt.Errorf("secret not found")
  	}
  	if secret.Spec.Driver == nil {
  		return secret, false, nil
  	}
  	d, err := a.dp.NewSecretDriver(secret.Spec.Driver)
  	if err != nil {
  		return nil, false, err
  	}
  	value, doNotReuse, err := d.Get(&secret.Spec, task)
  	if err != nil {
  		return nil, false, err
  	}
  	if err := validation.ValidateSecretPayload(value); err != nil {
  		return nil, false, err
  	}
  	// Assign the secret
  	secret.Spec.Data = value
  	return secret, doNotReuse, nil
  }
docs: // secret populates the secret value from raft store. For external secrets, the value is populated
  // from the secret driver. The function returns: a secret object; an indication of whether the value
  // is to be reused across tasks; and an error if the secret is not found in the store, if the secret
  // driver responds with one or if the payload does not pass validation.