概要
global optionとして --dry-run が宣言されていますが、実装内で参照されていません。更新・削除系commandでも通常どおりAPI requestが送信されます。
該当箇所
src/cli/mod.rs:53-55
rg -n dry_run src では定義箇所以外に参照がありません
影響
利用者は「変更されない」と期待して実行するため、ページ更新、archive、block追加、comment作成等で意図しない実変更が発生します。安全機能として表示されるoptionが無効なのは危険です。
修正案
- mutating commandのdispatch前にdry-runを統一的に処理する
- 実行予定のmethod/path/bodyをsecretをマスクしてstderrへ表示する
- read-only commandでは通常実行するか、仕様を明記する
- 対応完了までoptionをhelpから外すことも検討する
完了条件
--dry-run 時にPOST/PATCH/PUT/DELETEが送信されない
- 実行予定内容を確認できる
- 各更新系commandに回帰テストがある
概要
global optionとして
--dry-runが宣言されていますが、実装内で参照されていません。更新・削除系commandでも通常どおりAPI requestが送信されます。該当箇所
src/cli/mod.rs:53-55rg -n dry_run srcでは定義箇所以外に参照がありません影響
利用者は「変更されない」と期待して実行するため、ページ更新、archive、block追加、comment作成等で意図しない実変更が発生します。安全機能として表示されるoptionが無効なのは危険です。
修正案
完了条件
--dry-run時にPOST/PATCH/PUT/DELETEが送信されない