putWranglerSecret function

Future<void> putWranglerSecret({
  1. required String wrangler,
  2. required String environment,
  3. required String name,
  4. required String value,
  5. String workingDirectory = "cloudflare",
  6. String? config,
})

Set a Cloudflare Workers secret with wrangler secret put.

If config is specified, -c <config> is passed to target another Wrangler configuration (e.g. wrangler.region.jsonc).

wrangler secret putでCloudflare Workersのシークレットを設定します。

configを指定すると-c <config>を渡し、別のWrangler設定(例:wrangler.region.jsonc)を対象にします。

Implementation

Future<void> putWranglerSecret({
  required String wrangler,
  required String environment,
  required String name,
  required String value,
  String workingDirectory = "cloudflare",
  String? config,
}) async {
  if (isLocalApply) {
    throw StateError("--local ではCloudflare secretを更新できません。");
  }
  label("Set Cloudflare Workers secret: $name");
  final process = await Process.start(
    wrangler,
    [
      "secret",
      "put",
      name,
      "--env",
      environment,
      if (config != null) ...["-c", config],
    ],
    workingDirectory: workingDirectory,
    runInShell: true,
  );
  unawaited(stdout.addStream(process.stdout));
  unawaited(stderr.addStream(process.stderr));
  process.stdin.writeln(value);
  await process.stdin.close();
  final exitCode = await process.exitCode;
  if (exitCode != 0) {
    throw Exception(
      "An error has occurred. Please check the log above for details.",
    );
  }
}