jojo/services/automerge
abdo e16dc2ebfd fix: apply signed-merge checks by merge style (#11403)
Fixes #6438

When a protected branch requires signed commits and no signing key is available, fast-forward-only merges should still be allowed because they do not create a new commit.

This patch applies signing checks by merge behaviour/style instead of one global gate:

- pass `mergeStyle` through `CheckPullMergeable(...)` in web/API/automerge paths
- require signing for commit-creating styles (`merge`, `rebase`, `rebase-merge`, `squash`)
- bypass signing precheck only for `fast-forward-only`
- align merge UI options with backend behaviour so signing-dependent styles are unavailable when signing cannot happen
- add Go unit tests for merge-style signing requirements
- add frontend unit coverage for the no-allowed-merge-styles guard

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/11403
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Co-authored-by: abdo <dev@abdo.wtf>
Co-committed-by: abdo <dev@abdo.wtf>
2026-04-09 20:26:27 +02:00
..
fixtures/TestRemoveScheduledAutoMerge chore: unit testing 2026-03-06 11:21:07 -07:00
automerge.go fix: apply signed-merge checks by merge style (#11403) 2026-04-09 20:26:27 +02:00
automerge_test.go chore: add integration testing 2026-03-06 11:21:07 -07:00
main_test.go chore: unit testing 2026-03-06 11:21:07 -07:00
notify.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00