getSecretValue method

Future<String> getSecretValue(
  1. String teamId,
  2. String name
)

Fetches a Secret Value via Firebase Functions.

Implementation

Future<String> getSecretValue(String teamId, String name) async {
  if (serverUrl == null || serverUrl!.isEmpty) {
    throw StateError(
      'OPENCI_SERVER_URL must be configured to retrieve secrets.',
    );
  }

  final url = Uri.parse('$serverUrl/teams/$teamId/secrets/$name');
  final idToken = await authManager.getIdToken();
  final response = await http.get(
    url,
    headers: {'Authorization': 'Bearer $idToken'},
  );
  if (response.statusCode >= 200 && response.statusCode < 300) {
    final data = jsonDecode(response.body) as Map<String, dynamic>;
    return data['value'] as String? ?? '';
  }
  throw HttpException(
    'Failed to get secret value from server: ${response.statusCode} ${response.body}',
  );
}