One Commit Per User Check
O
Qubits of DPK
March 24, 2026
Core Open Source
Squashing Commits for Apache Fineract PRs (One Commit Per User Check)
Problem
Apache Fineract CI enforces the rule:
plain text
QUBITS OF DPK
If a PR contains multiple commits from the same author, the CI job fails.
Example failing PR commit history:
plain text
QUBITS OF DPK
These must be squashed into a single commit.
Step-by-Step Fix
1. Switch to the PR branch
bash
QUBITS OF DPK
2. Check how many commits are in the PR
shell
QUBITS OF DPK
Example output:
shell
QUBITS OF DPK
3. Start interactive rebase
shell
QUBITS OF DPK
Git opens the rebase editor.
Example:
plain text
QUBITS OF DPK
4. Squash commits
Change the last commits from pick to squash.
plain text
QUBITS OF DPK
Save and exit.
5. Write the final commit message
Git opens another editor to combine messages.
Replace everything with a clean commit message:
plain text
QUBITS OF DPK
Save and exit.
6. Verify commit count
plain text
QUBITS OF DPK
Expected output:
plain text
QUBITS OF DPK
Only 1 commit should remain.
7. Push updated history
plain text
QUBITS OF DPK
This updates the GitHub PR and reruns CI.
Result
Before squash:
plain text
QUBITS OF DPK
After squash:
plain text
QUBITS OF DPK
CI check One Commit Per User Check will now pass.
Useful Tip for Future PRs
Instead of creating multiple commits while developing, amend the same commit:
plain text
QUBITS OF DPK
This keeps the PR history clean with one commit from the start.
If you want, I can also give you a second Notion section that shows the exact Vim shortcuts used during rebase (i, ESC, :wq, ggdG). That part is extremely useful when doing interactive rebases.