func resolveSecret()

in secretmgmt/secrets.go [96:130]


func resolveSecret(ctx context.Context, secret *Secret, errorChan chan error) {
	if secret == nil {
		errorChan <- errors.New("secret cannot be nil")
		return
	}

	if secret.IsKeyVaultSecret() {
		secretConfig, err := vaults.NewAKVSecretConfig(secret.KeyVault, secret.MsiClientID)
		if err != nil {
			errorChan <- err
			return
		}

		secretValue, err := secretConfig.GetValue(ctx)
		if err != nil {
			errorChan <- err
			return
		}

		secret.ResolvedValue = secretValue
		secret.ResolvedChan <- true
		return
	} else if secret.IsMsiSecret() {
		secretValue, err := tokenutil.GetRegistryRefreshToken(secret.ID, secret.AadResourceID, secret.MsiClientID)
		if err != nil {
			errorChan <- err
			return
		}
		secret.ResolvedValue = secretValue
		secret.ResolvedChan <- true
		return
	}

	errorChan <- fmt.Errorf("cannot resolve secret with ID: %s", secret.ID)
}