Want to use Robb Oat in your repo? Install the app. Want to hack on Robb Oat itself? Read on.
Sign up and request access to Codex. You'll need your Organization ID and an API key.
Create your own dev GitHub App with this config:
Key | Value |
---|---|
GitHub App name | some variation of "My Robb Oat Dev App" |
Homepage URL | https://github.com/robb-oat/server |
Webhook URL | whatever https://smee.io/new gives you |
Permissions | Repository - "Read and Write" for Contents, Issues, and Pull Requests |
Subscribe to events | Issue comment, Issues, Pull Request * |
Generate a private key. You'll use it to configure your local server in a minute. Also note your App ID.
Fork this repo and install your dev app on your fork. Turn on issues in your fork so you can test out Robb Oat there.
To build (requires Python 3):
make
Required config in local.env
:
OPENAI_ORG_ID=<see above>
OPENAI_API_KEY=<see above>
GITHUB_APP_ID=<see above>
GITHUB_APP_PRIVATE_KEY=<see above> # fold to one line, and don't include the '---- BEGIN/END ----'
Optional config in local.env
:
DJANGO_SENTRY_DSN=<go get one at sentry.io>
To setup the database:
./dev migrate
To run locally:
./dev
Install a smee client such as gosmee:
brew tap chmouel/gosmee https://github.com/chmouel/gosmee
brew install gosmee
gosmee <webhook URL> https://localhost:8000
Now you can try it out! Create an issue in your fork, and if all goes well you should see a pull request from your dev app in under a minute. Robb Oat attempts to fix all issues it understands, which are issues that start with a link to code on GitHub followed by a blank line followed by instructions to change the linked code.
For a good hello world create an issue with content like this:
https://github.com/${username}/${fork-name}/blob/${sha}/robboat/templates/homepage.html#L6
Say program instead of friend, and use a different emoji.
Here's an example. To troubleshoot, use your smee.io dashboard or the "Advanced" tab on your dev app.
Happy hacking!