Skip to content

fix: use MINISIGN_PASSPHRASE secret for password-protected keys#17

Merged
ramonclaudio merged 3 commits intomainfrom
fix/minisign-passphrase
Sep 7, 2025
Merged

fix: use MINISIGN_PASSPHRASE secret for password-protected keys#17
ramonclaudio merged 3 commits intomainfrom
fix/minisign-passphrase

Conversation

@ramonclaudio
Copy link
Owner

Summary

Fixes the publish workflow to properly handle password-protected minisign keys using the MINISIGN_PASSPHRASE secret.

Problem

The workflow was failing with Password: get_password() error because the minisign private key is password-protected and the workflow couldn't provide the password in a non-interactive CI environment.

Solution

  • Pipe the MINISIGN_PASSPHRASE secret to minisign for all signing operations
  • Set MINISIGN_ASK_PASS=0 to prevent interactive password prompts
  • Updated both package signing and SBOM/attestation signing steps

Required Secrets

The workflow now requires:

  • MINISIGN_PRIVATE_KEY: Base64-encoded minisign private key
  • MINISIGN_PASSPHRASE: Password for the minisign key (plain text)

Testing

With both secrets configured, the workflow will:

  • Successfully unlock the password-protected key
  • Generate minisign signatures for all artifacts
  • Complete the release process without errors

The publish workflow now checks if MINISIGN_PRIVATE_KEY secret exists
before attempting to decode it. If the secret is not set or empty,
the workflow will skip minisign operations with a warning rather than
failing the entire build.

This allows the workflow to complete successfully even without minisign
configured, while still generating other security artifacts like GPG
signatures, SBOMs, and SLSA attestations.
The workflow now attempts to sign with minisign but continues without
failing if the key requires a password (which can't be provided in CI).
This allows the workflow to complete successfully even with password-
protected keys, while still generating other security artifacts.
The workflow now pipes the MINISIGN_PASSPHRASE secret to minisign
for signing operations. This allows using password-protected minisign
keys in CI by providing the password via GitHub secrets.

Required secrets:
- MINISIGN_PRIVATE_KEY: Base64-encoded minisign private key
- MINISIGN_PASSPHRASE: Password for the minisign key
@ramonclaudio ramonclaudio merged commit 5b23a8d into main Sep 7, 2025
5 checks passed
@ramonclaudio ramonclaudio deleted the fix/minisign-passphrase branch September 7, 2025 15:37
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