Add auto-merge setting and merge now functionality

This commit is contained in:
2026-07-28 17:42:49 +02:00
parent 7511311297
commit 42dcceaf4b
10 changed files with 689 additions and 63 deletions

View File

@@ -40,6 +40,8 @@ type ViewKeyBindings struct {
Dashboard []string `toml:"dashboard"`
Health []string `toml:"health"`
Edit []string `toml:"edit"`
AutoMerge []string `toml:"auto_merge"`
MergeNow []string `toml:"merge_now"`
ToggleList []string `toml:"toggle_list"`
}
@@ -119,6 +121,7 @@ func defaultKeyBindings() KeyBindings {
Views: ViewKeyBindings{
Open: []string{"enter", "l"}, Dashboard: []string{"d"},
Health: []string{"H"}, Edit: []string{"e"}, ToggleList: []string{"tab"},
AutoMerge: []string{"a"}, MergeNow: []string{"M"},
},
Threads: ThreadKeyBindings{
Search: []string{"/"}, ClearFilter: []string{"F"},
@@ -294,6 +297,14 @@ func (k KeyBindings) canonicalMainKey(key string, current screen) string {
return "enter"
}
}
if current == dashboardScreen {
switch {
case keyMatches(key, k.Views.AutoMerge):
return "a"
case keyMatches(key, k.Views.MergeNow):
return "M"
}
}
if current == threadScreen {
switch {
case keyMatches(key, k.Navigation.Left):
@@ -387,6 +398,7 @@ func validateKeyBindings(bindings KeyBindings) error {
{"keybindings.views", map[string][]string{
"open": bindings.Views.Open, "dashboard": bindings.Views.Dashboard,
"health": bindings.Views.Health, "edit": bindings.Views.Edit,
"auto_merge": bindings.Views.AutoMerge, "merge_now": bindings.Views.MergeNow,
"toggle_list": bindings.Views.ToggleList,
}},
{"keybindings.threads", map[string][]string{
@@ -478,6 +490,8 @@ func validateKeyBindingContexts(bindings KeyBindings) error {
if err := validateKeyContext("dashboard", append(screenCommon,
contextBinding{"open", views.Open},
contextBinding{"edit", views.Edit},
contextBinding{"auto_merge", views.AutoMerge},
contextBinding{"merge_now", views.MergeNow},
)...); err != nil {
return err
}