Skip to content

FINERACT-2177: Add Git signed commits verification#5431

Open
DeathGun44 wants to merge 1 commit intoapache:developfrom
DeathGun44:FINERACT-2177/git-signed-commits
Open

FINERACT-2177: Add Git signed commits verification#5431
DeathGun44 wants to merge 1 commit intoapache:developfrom
DeathGun44:FINERACT-2177/git-signed-commits

Conversation

@DeathGun44
Copy link
Contributor

Description

This PR addresses FINERACT-2177 by adding a workflow to enforce Git Commit Signing.

The Implementation

  • Portable Logic: Instead of relying on vendor-specific GitHub Actions, the logic is encapsulated in scripts/verify-signed-commits.sh. This ensures the check can be run locally by any developer (./scripts/verify-signed-commits.sh) and is CI-agnostic.
  • Robust Verification: The script handles CI environments where public keys are missing (accepting U status) while correctly flagging unsigned commits (N).
  • UX: Uses GitHub Annotations (::error) to highlight specific problematic commits in the PR file view.

⚠️ Strict Enforcement Note

This PR includes the --strict flag, which will fail the build for unsigned commits.

  • Why: "Warn-only" checks are often ignored. Security requires enforcement.
  • Mitigation: If this is deemed too disruptive for existing open PRs, I can remove the --strict flag for the initial merge to allow a grace period.

Checklist

Please make sure these boxes are checked before submitting your pull request - thanks!

  • Write the commit message as per our guidelines
  • Acknowledge that we will not review PRs that are not passing the build ("green") - it is your responsibility to get a proposed PR to pass the build, not primarily the project's maintainers.
  • Create/update unit or integration tests for verifying the changes made.
  • Follow our coding conventions.
  • Add required Swagger annotation and update API documentation at fineract-provider/src/main/resources/static/legacy-docs/apiLive.htm with details of any API changes
  • This PR must not be a "code dump". Large changes can be made in a branch, with assistance. Ask for help on the developer mailing list.

CONTRIBUTING.md Outdated
Comment on lines 280 to 288
1. Install GPG:
- **Mac**: `brew install gnupg`
- **Linux (Debian/Ubuntu)**: `sudo apt-get install gnupg`
- **Windows**: Download and install [Gpg4win](https://www.gpg4win.org/)
2. Generate a key: `gpg --full-generate-key`
- Select `(1) RSA and RSA`
- Key size: `4096`
- Expiration: `0` (no expiration)
- Enter your name and GitHub email
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please instead augment/update and refer to https://fineract.apache.org/docs/current/#_gpg_2. That's a more up to date key generation guide using elliptic curve encryption instead of RSA.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done!

@DeathGun44 DeathGun44 force-pushed the FINERACT-2177/git-signed-commits branch from 503c784 to 25807d6 Compare February 3, 2026 03:35
@DeathGun44 DeathGun44 requested a review from meonkeys February 3, 2026 03:36
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.

2 participants