## Setting up the environment To set up the repository, run: ```sh $ ./scripts/bootstrap $ ./scripts/build ``` This will install all the required dependencies and build the SDK. You can also [install go 1.18+ manually](https://go.dev/doc/install). ## Modifying/Adding code Most of the SDK is generated code. Modifications to code will be persisted between generations, but may result in merge conflicts between manual patches and changes from the generator. The generator will never modify the contents of the `lib/` and `examples/` directories. ## Adding and running examples All files in the `examples/` directory are not modified by the generator and can be freely edited or added to. ```go # add an example to examples//main.go package main func main() { // ... } ``` ```sh $ go run ./examples/ ``` ## Using the repository from source To use a local version of this library from source in another project, edit the `go.mod` with a replace directive. This can be done through the CLI with the following: ```sh $ go mod edit -replace github.com/sst/opencode-sdk-go=/path/to/opencode-sdk-go ``` ## Running tests Most tests require you to [set up a mock server](https://github.com/stoplightio/prism) against the OpenAPI spec to run the tests. ```sh # you will need npm installed $ npx prism mock path/to/your/openapi.yml ``` ```sh $ ./scripts/test ``` ## Formatting This library uses the standard gofmt code formatter: ```sh $ ./scripts/format ```