feat(gh-action): add GPG signing support with SSH/GPG mutual exclusivity by Copilot · Pull Request #1390 · python-semantic-release/python-semantic-release

Copilot AI changed the title [WIP] Extend GitHub action to support GPG signing for tags and commits feat(gh-action): add GPG signing support with SSH/GPG mutual exclusivity

Dec 12, 2025

@codejedi365

Add support for GPG signing in GitHub Action with the following changes:
- Add gpg_private_signing_key and gpg_passphrase inputs to action.yml
- Implement GPG signing configuration in action.sh
- Add validation to prevent both SSH and GPG keys from being set
- Install gnupg package in Dockerfile for GPG support
- Document new GPG signing inputs and usage examples
- Add test case for mutual exclusivity validation

NOTICE: This release adds the ability to sign semantic-release commits and tags
with a GPG key instead of an SSH key pair. The two configurations are not
compatible with each other so you can either have GPG configured or SSH configured,
NOT BOTH! The GitHub Action will fail at runtime if you attempt to provide both
sets of options

@codejedi365

The test_mutual_exclusivity helper function was being detected as a test
by the test runner's pattern matching (grep "^test_"), causing it to be
executed with insufficient parameters and failing with "Test name not provided".

Renamed to verify_mutual_exclusivity to exclude it from automatic test
discovery while maintaining clear naming convention for helper functions.

Co-authored-by: codejedi365 <17354856+codejedi365@users.noreply.github.com>