Skip to content

Conversation

@DiegoDAF
Copy link

@DiegoDAF DiegoDAF commented Dec 5, 2025

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 -y or pgcli --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_destructive parameter to PGCli class
  • Modified destructive command checks in two locations:
    • execute_command() method for programmatic execution
    • Interactive command handler in run_cli()
  • When -y is 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

DiegoDAF and others added 2 commits December 5, 2025 15:47
This commit 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:
- Single flag to skip all destructive confirmations: pgcli -y
- Long form: pgcli --yes
- Useful for automated environments
- Maintains safety by default (flag must be explicitly set)
- Does not override transaction requirements

When the flag is set:
- Destructive commands execute without prompting
- Transaction requirements still apply
- Error handling remains the same

Comprehensive unit tests included to verify:
- Flag initialization
- Confirmation bypass behavior
- Normal confirmation flow without flag

Made with ❤️ and 🤖 Claude Code

Co-Authored-By: Claude <[email protected]>
When using the --yes flag to auto-confirm destructive commands,
pgcli should not display the "Your call!" message since no user
interaction occurred. This message is now only shown when the user
manually confirms the destructive warning prompt.

Made with ❤️ and 🤖 Claude Code

Co-Authored-By: Claude <[email protected]>
@DiegoDAF DiegoDAF marked this pull request as ready for review December 5, 2025 18:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant