saveSecret method

Future<void> saveSecret({
  1. required String teamId,
  2. required String name,
  3. required String value,
})

Saves or updates a secret value associated with the team.

Implementation

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

  final url = Uri.parse('$serverUrl/teams/$teamId/secrets');
  final idToken = await authManager.getIdToken();
  final response = await http.post(
    url,
    headers: {
      'Authorization': 'Bearer $idToken',
      'Content-Type': 'application/json',
    },
    body: jsonEncode({'name': name, 'value': value}),
  );
  if (response.statusCode < 200 || response.statusCode >= 300) {
    throw HttpException(
      'Failed to save secret: ${response.statusCode} ${response.body}',
    );
  }
}