GitPanda v3.1.1 Install
Help

Contributing

How gitpanda is built, tested and released, and how to rename it.

gitpanda lives in the acific/gitpanda.ai repository:

bin/gitpanda.mjs        the command line: one file, no dependencies
docs/*.md               this documentation
site/                   gitpanda.ai: the home page, installer and styles
scripts/build-site.mjs  builds the site into dist/
test/                   tests: the real CLI against a fake server

Develop#

node bin/gitpanda.mjs help
GITPANDA_HOST=http://localhost:8790 node bin/gitpanda.mjs login   # against a local OkayPanda
npm test

The tests start a small fake of the API and run the real CLI in a temporary folder: clone, status, diff, add, commit, push (with messages, new documents and read-only files), conflicts, browser sign-in and repos.

Principles#

  • One file, no dependencies, Node 18+. Anyone can read it in full.
  • Git's words and shapes wherever they fit; plain English where they don't.
  • Never surprise. Nothing is deleted remotely, conflicts never overwrite, and every message says what to do next.
  • The server decides. The CLI never enforces permissions itself; OkayPanda checks every request.

Release#

  1. Bump VERSION in bin/gitpanda.mjs and version in package.json, and add the changes to docs/changelog.md.
  2. npm test
  3. npm run release runs the tests, builds and deploys gitpanda.ai (the site, installer, download and releases/gitpanda-<version>.mjs), and copies the CLI and guide into okaypanda.com.
  4. Release okaypanda.com so the app's copy and guide match.

Other scripts: npm run build (just build dist/), npm run preview (build and serve it on port 8811), npm run deploy (build and deploy the site only).

Renaming#

The product name is temporary. Everything that says it is in BRAND at the top of bin/gitpanda.mjs: the command, title, prompt icon, ASCII mark, folder name, environment variable prefix, server and site. Change those, rename the repository, and update the docs and site.