feat(gh-action): add GPG signing support with SSH/GPG mutual exclusivity#1390
Open
feat(gh-action): add GPG signing support with SSH/GPG mutual exclusivity#1390
Conversation
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
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
e7e18b7 to
726cf74
Compare
Contributor
|
@copilot, looks like the pipeline is failing the tests can you take a look and create a solution? |
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>
Contributor
Author
Fixed in commit 444ca49. The issue was that the helper function |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Purpose
Extend GitHub Action to support GPG signing for commits and tags as an alternative to SSH signing. Enforce mutual exclusivity between signing methods.
Rationale
Users need GPG signing capability for organizational compliance or personal preference. GPG and SSH signing configurations conflict at the git level—enabling both creates ambiguous signing behavior. Solution enforces exclusive use of one method with clear error messaging.
Implementation approach:
gpg --with-colonsformat to avoid fragile output parsingHow did you test?
Validation logic:
test_mutual_exclusivitytoverify_mutual_exclusivity)GPG implementation:
Edge cases covered:
How to Verify
Test mutual exclusivity:
Test GPG signing:
Verify signed commit:
git verify-commit HEADandgit verify-tag v1.0.0PR Completion Checklist
Reviewed & followed the Contributor Guidelines
Changes Implemented & Validation pipeline succeeds
Commits follow the Conventional Commits standard
and are separated into the proper commit type and scope (recommended order: test, build, feat/fix, docs)
Appropriate Unit tests added/updated
Appropriate End-to-End tests added/updated
Appropriate Documentation added/updated and syntax validated for sphinx build (see Contributor Guidelines)
Original prompt
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.