Skip to content

Latest commit

 

History

History
37 lines (27 loc) · 1.33 KB

File metadata and controls

37 lines (27 loc) · 1.33 KB

Contributing

Contributions to opencode-docker are welcome from anyone.

Workflow

  1. Fork the repository and create a branch off main for your change.
  2. Make your change. Keep the container's security posture intact — the privilege-drop, capability set, and credential opt-in model are load-bearing (see Threat model).
  3. Non-trivial behaviour changes are tracked with OpenSpec change proposals under openspec/changes/; follow the existing ones as a template.
  4. Open a PR against main; a maintainer will review before it is merged.

By submitting a contribution, you agree that it is licensed under the Apache License 2.0, the same license as the project.

Local checks before opening a PR

CI runs these on every PR; running them locally first is faster:

# Lint shell scripts and the Dockerfile
shellcheck run.sh entrypoint.sh smoke/*.sh
hadolint --config .hadolint.yaml Dockerfile

# Unit tests for the pin tooling
python3 -m unittest discover -s tests -p 'test_*.py' -v

# Build the image and run a smoke cell against it
docker build -t opencode:local .
IMAGE=opencode:local bash smoke/smoke.sh --uid="$(id -u)" --optins=aws,glab,tfe

See README.md for the full architecture, threat model, and the version-pin refresh workflow (update_pins.py).