Change:
<!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Read our guide about submitting issues: --<!-- Search existing issues to avoid creating duplicates. --<!-- Test using the latest Insiders build to see if your issue has already been fixed: --<!-- Instead of creating your report here, use 'Report Issue' from the 'Help' menu in VS Code to pre-fill useful information. --<!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes/No <!-- If you answered No above, use 'Help: Start Extension Bisect' from Command Palette to try to identify the cause. --<!-- Issues caused by an extension need to be reported directly to the extension publisher. The 'Help Report Issue' dialog can assist with this. --- VS Code Version: 1.90.2 OS Version: Windows 23H2 Steps to Reproduce: sure you have multiple repos click on the commit id/branch of one repro, then select "Configure Keybinding" 't find the command !
as each of these commands is distinct, what would be the right approach to enable this functionality?
We are unable to support the action for status bar actions. Let me disable it.
Looks disabled now !
I think we should completely remove the action as that will never work as far as I understood.
I think it's fine to align with the hide action and disable the action when it's not supported. Each action in that toolbar has the hide and key binding action, so I think it makes more sense to disable these actions when they are not supported compared to just not showing them for some actions

Discussion:
if (action instanceof MenuItemAction && action.menuKeybinding) { primaryActions.push(action.menuKeybinding); } else if (!(action instanceof SubmenuItemAction || action instanceof ToggleMenuAction)) { <del> primaryActions.push(createConfigureKeybindingAction(action.id, undefined, this._commandService, this._keybindingService)); </del> <ins> const isDisabled = action.id.startsWith('statusbaraction'); // We can't support keybinding configuration for scm statusbar actions primaryActions.push(createConfigureKeybindingAction(this._commandService, this._keybindingService, action.id, undefined, !isDisabled)); </ins> } // -- Hide Actions --

const menuHide = createMenuHide(this._id, isMenuItem ? item.command : item, this._hiddenStates); if (isMenuItem) { // MenuItemAction <del> const menuKeybinding = createConfigureKeybindingAction(item.command.id, item.when, this._commandService, this._keybindingService); </del> <ins> const menuKeybinding = createConfigureKeybindingAction(this._commandService, this._keybindingService, item.command.id, item.when); </ins> (activeActions ??= []).push(new MenuItemAction(item.command, item.alt, options, menuHide, menuKeybinding, this._contextKeyService, this._commandService)); } else { // SubmenuItemAction

}; } <del> export function createConfigureKeybindingAction(commandId: string, when: ContextKeyExpression | undefined = undefined, commandService: ICommandService, keybindingService: IKeybindingService): IAction { </del> <ins> export function createConfigureKeybindingAction(commandService: ICommandService, keybindingService: IKeybindingService, commandId: string, when: ContextKeyExpression | undefined = undefined, enabled = true): IAction { </ins> return toAction({ id: `configureKeybinding/${commandId}`, label: localize('configure keybinding', "Configure Keybinding"), <ins> enabled, </ins> run() { // Only set the when clause when there is no keybinding // It is possible that the action and the keybinding have different when clauses