pgcli
pgcli copied to clipboard
Add support for -y/--yes flag to bypass confirmation prompts
Summary
This PR adds support for the -y/--yes option to pgcli, allowing users to bypass destructive command confirmation prompts. This is particularly useful for automated scripts and CI/CD pipelines.
Features
- Skip confirmations:
pgcli -yorpgcli --yes - Automated-friendly: Perfect for scripts and CI/CD pipelines
- Safe by default: Flag must be explicitly set
- Respects transactions: Transaction requirements still apply even with
-y - Clean output: Suppresses "Your call!" message when auto-confirming
Use Cases
# CI/CD pipeline
pgcli -y -c "DROP TABLE old_data;"
# Automated maintenance script
pgcli --yes -f cleanup.sql
# Interactive use (still requires confirmation)
pgcli # without -y, prompts as usual
Implementation Details
- Added
force_destructiveparameter to PGCli class - Modified destructive command checks in two locations:
execute_command()method for programmatic execution- Interactive command handler in
run_cli()
- When
-yis set,confirm_destructive_query()is bypassed - Transaction requirements are NOT bypassed (safety measure)
- "Your call!" message is suppressed when using
-y(no user interaction occurred)
Testing
Comprehensive unit tests included:
- Initialization with different flag values
- Confirmation bypass when flag is True
- Normal confirmation flow when flag is False/not set
- Mock verification that confirmation is/isn't called as expected
Safety Considerations
- Default behavior unchanged (confirmations still required)
- Transaction requirements remain enforced
- Users must explicitly opt-in to skip confirmations
- Helps prevent accidental destructive operations in interactive use
Made with ❤️ and 🤖 Claude Code