src/vs/workbench/contrib/scm/browser/scmViewPane.ts/SCMActionButton/setButton
class SCMActionButton:	setButton(button: ISCMActionButtonDescriptor | undefined): void {
		// Clear old button
		this.clear();
		if (!button) {
			return;
		}

		if (button.description) {
			// ButtonWithDescription
			this.button = new ButtonWithDescription(this.container, { supportIcons: true, title: button.command.tooltip });
			(this.button as ButtonWithDescription).description = button.description;
		} else {
			// Button
			this.button = new Button(this.container, { supportIcons: true });
		}

		this.button.label = button.command.title;
		this.button.onDidClick(async () => {
			try {
				await this.commandService.executeCommand(button.command.id, ...(button.command.arguments || []));
			} catch (ex) {
				this.notificationService.error(ex);
			}
		}, null, this.disposables.value);

		this.disposables.value!.add(this.button);
		this.disposables.value!.add(attachButtonStyler(this.button, this.themeService));
	}