code: func AskForGitConfigUser(ctx context.Context, crypto backend.Crypto, name string) (string, string, error) {
  	var useCurrent bool
  
  	keyList, err := crypto.ListPrivateKeyIDs(ctx)
  	if err != nil {
  		return "", "", err
  	}
  	if len(keyList) < 1 {
  		return "", "", errors.New("no usable private keys found")
  	}
  
  	for _, key := range keyList {
  		// check for context cancelation
  		select {
  		case <-ctx.Done():
  			return "", "", errors.New("user aborted")
  		default:
  		}
  
  		name := crypto.NameFromKey(ctx, key)
  		email := crypto.EmailFromKey(ctx, key)
  
  		useCurrent, err = termio.AskForBool(
  			ctx,
  			fmt.Sprintf("Use %s (%s) for password store git config?", name, email),
  			true,
  		)
  		if err != nil {
  			return "", "", err
  		}
  		if useCurrent {
  			return name, email, nil
  		}
  	}
  
  	return "", "", nil
  }
docs: // AskForGitConfigUser will iterate over GPG private key identities and prompt
  // the user for selecting one identity whose name and email address will be used as
  // git config user.name and git config user.email, respectively.
  // On error or no selection, name and email will be empty.
  // If s.isTerm is false (i.e., the user cannot be prompted), however,
  // the first identity's name/email pair found is returned.