You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: enable programmatic signing in graph rebase engine
This commit puts down the groundwork for enabling sign-on-push
functionality by introducing new facilities to tweak sign behavior for the
graph rebase engine. The key design goal is to allow for programmatically
driven signing, where we can decide at runtime if a certain rebase operation
should cause signing (e.g. just before a push), while another one should not.
At the same time, we want to retain the old gitbutler.signCommits behavior for
the sake of Git interoperability - you might do some work with GitButler
and then decide to push with Git, and that should still work, respecting
signing settings.
The two concepts introduced to the graph rebase engine in this commit
is a `PickMode`, allowing the caller to tune when a commit is
cherry-picked, and `SignCommit`, which allows for tuning signing
behavior beyond what was previously possible. Setting `PickMode::Force`
and `SignCommit::Yes` or `SignCommit::IfSignCommitsEnabled` allows one
to sign a commit that is otherwise unchanged. For descendants to also be
signed, they need to be picked with an appropriate `SignCommit` setting.
None of the new behavior is as of yet exposed in any of the GitButler UIs.
That will come later down the road with sign-on-push functionality.
0 commit comments