Plugin: GitHub Desktop Config Provider
Manage GitHub Desktop application settings stored in config.json.
Config File Location
| Platform |
Path |
| Windows |
%APPDATA%\GitHub Desktop\config.json |
Settings
Common settings that can be managed:
theme — UI theme (light, dark, system)
defaultBranchName — Default branch name for new repos
confirmRemovedFiles — Confirmation on file removal
confirmDiscardChanges — Confirmation on discard
usageStats — Telemetry opt-in/out
signCommits — Sign commits by default
selectedTheme — Accent/theme selection
externalEditor — Default external editor config
shell — Default shell config
hideWhitespaceInStorybook — Whitespace display setting
Implementation Requirements
config_provider type plugin
- JSON config format, deep-merge into existing file
- Full protocol compliance (requestId, check_installed bare bool, settings from args, dryRun from args, no success/data fields)
- Atomic writes via tempfile.mkstemp + os.replace
- Empty stdin returns JSON error
- POSIX trailing newlines
- Test file with sys.path.append (not sys.path.insert(0))
Acceptance Criteria
Plugin: GitHub Desktop Config Provider
Manage GitHub Desktop application settings stored in
config.json.Config File Location
%APPDATA%\GitHub Desktop\config.jsonSettings
Common settings that can be managed:
theme— UI theme (light, dark, system)defaultBranchName— Default branch name for new reposconfirmRemovedFiles— Confirmation on file removalconfirmDiscardChanges— Confirmation on discardusageStats— Telemetry opt-in/outsignCommits— Sign commits by defaultselectedTheme— Accent/theme selectionexternalEditor— Default external editor configshell— Default shell confighideWhitespaceInStorybook— Whitespace display settingImplementation Requirements
config_providertype pluginAcceptance Criteria
plugins/github-desktop/plugin.yaml,src/plugin.py,test/test_github_desktop.pyincluded