Skip to content

[Plugin] GitHub Desktop: manage config.json settings #466

Description

@DotDev262

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 created under plugins/github-desktop/
  • plugin.yaml, src/plugin.py, test/test_github_desktop.py included
  • All tests pass
  • Protocol compliant

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions