Contributing to dsh-forge

August 24, 2026 ยท View on GitHub

Thanks for helping improve dsh-forge. Bug reports, compatibility findings, documentation fixes, and focused pull requests are welcome.

Before you start

  • Search existing issues before opening a new one.
  • For a behavior change or a large feature, open an issue first so the scope and Gitea/Forgejo compatibility can be agreed on.
  • Report security vulnerabilities privately as described in SECURITY.md.

Development setup

Install Node.js 22 or newer and Bun, then run:

bun install --frozen-lockfile
bun run lint
bun run typecheck
bun run test:coverage
bun run build
bun pm pack --dry-run

Run bun run smoke:dsh when DSH CLI and pnpm are installed. It packages the plugin, installs it into an isolated temporary DSH profile, and verifies the composed configuration.

Making changes

  • Keep tools read-only unless an issue explicitly defines an approval model for writes.
  • Prefer REST endpoints shared by Gitea and Forgejo.
  • Add or update tests for behavior changes and bug fixes.
  • Keep tool names, descriptions, and schemas aligned across the four locales in src/locales.ts.
  • Use Conventional Commits, for example fix(client): preserve instance path prefixes.

The live Integration workflow runs against official Gitea and Forgejo containers and Actions runners. Pull requests must pass both matrix jobs in addition to the unit-test workflow.

Pull requests

Keep each pull request focused. Explain the user-visible change, list how it was verified, and call out any behavior that differs between Gitea and Forgejo. Do not include access tokens, private instance URLs, or generated profile data.