- Go to https://github.com/settings/apps
- Click
New GitHub App. - Fill in
GitHub App namelikeGitAuto Dev {Your Name}e.g.GitAuto Dev John. - Fill in
Homepage URLlikehttp://localhost:8000. - Fill in
Webhook URLlikehttps://your-name.ngrok.dev/webhook. GitHub requires HTTPS for the webhook URL, so we need to use ngrok or something similar instead oflocalhost. GitHub sends webhook events (e.g. a PR is created) to the webhook URL and ngrok tunnels to localhost. You can update this URL later after setting up the ngrok tunnel. - Fill in
Webhook secretwith your preferred secret. - Fill in
Repository permissionsActions: Read & WriteChecks: Read & WriteCommit statuses: Read & WriteContents: Read & WriteIssues: Read & WritePull requests: Read & WriteSecrets: Read & WriteVariables: Read & WriteWorkflows: Read & Write
- Fill in
Organization permissionsMembers: Read-only
- Fill in
Subscribe to eventsInstallation target: CheckedMetadata: CheckedCheck run: CheckedCommit comment: CheckedIssue comment: CheckedIssues: CheckedPull request: CheckedPull request review: CheckedPull request review comment: CheckedPull request review thread: CheckedPush: CheckedStatus: Checked
- Check
Where can this GitHub App be installed?and selectOnly on this account. - Click
Create GitHub App - Click
Generate a private keyand download the private key.
- Go to GitHub Apps in the GitHub Developer Settings.
- Choose your local GitHub app and go to the
Install Apppage. - Install the app to the repository where you want to test.
- Or directly go to
https://github.com/settings/apps/{your-github-app-name}/installationssuch ashttps://github.com/settings/apps/gitauto-for-dev/installations.
GitHub allows only a HTTPS URL for webhook events, so we need to use ngrok or something similar service to tunnel/forward the GitHub webhook events to your localhost.
- Create a new ngrok configuration file
ngrok.ymlin the root directory. It should containauthtoken: YOUR_NGROK_AUTH_TOKENandversion: 2. - Get your own auth token from Your Authtoken on the dashboard or ask @hiroshinishio about the paid ngrok auth token.
- Get your own endpoint URL from Endpoints on the dashboard. Each developer needs their own unique domain (e.g.,
wes.ngrok.dev,john.ngrok.dev) to avoid conflicts. - Update the
start.shscript to use your specific ngrok domain.
To update your local branch with the latest changes from our default branch (main), run the following commands:
git checkout your-branch
git pull origin mainFor example:
git checkout wes
git pull origin mainIf you have uncommitted changes, stash them first:
git stash # Save changes
git pull origin main
git stash pop # Reapply changes- Ask for the
.envfile from @hiroshinishio. - Put the
.envfile in the root directory.
In .env file, you need to set your own GH_PRIVATE_KEY. Here's the step:
- Go to https://github.com/settings/apps. Choose your local GitHub app.
- Go to
Generaltab on the left. - Scroll down to
Private keysection. Generate a private key. - Run
base64 -i your/path/to/private-key.pemto encode the private key to base64. - Copy the output and paste it in the
GH_PRIVATE_KEYfield in your.envfile.
-
Update the start script with your ngrok domain:
# Edit start.sh and change this line: ngrok http --config=ngrok.yml --domain=your-name.ngrok.dev 8000 -
Make the start script executable:
chmod +x start.sh
-
Run the development environment:
./start.sh
This script will automatically:
- Create and activate virtual environment (if needed)
- Install dependencies (if needed)
- Start ngrok tunnel with your specific domain
- Start FastAPI server with visible logs
- Clean up both services when you press Ctrl+C
Important for multiple developers: Each developer must use a different ngrok domain in their start.sh script to avoid conflicts. For example:
- Developer 1:
wes.ngrok.dev - Developer 2:
john.ngrok.dev
When everything is working correctly, you should see:
From start.sh:
- ✅ Virtual environment activation
- ✅ ngrok tunnel started with your domain
- ✅ FastAPI server starting with logs below
FastAPI server:
- Server running on
http://localhost:8000 - Watching for file changes (auto-reload enabled)
- No error messages during startup
If you see any errors, check:
.envfile is present and configuredngrok.ymlis configured with your auth token- Your ngrok domain is available
- Port 8000 is not already in use
When GitAuto runs in production, it uses AWS Lambda. To view logs and debug issues:
Using AWS CLI:
aws logs tail /aws/lambda/pr-agent-prod --follow | grep -v -E "(START RequestId|END RequestId|REPORT RequestId)" | sed -E 's/[0-9]{4}\/[0-9]{2}\/[0-9]{2}\/\[\$LATEST\][a-f0-9]+ //'Using AWS Console:
- Go to AWS CloudWatch Console
- Navigate to
Logs>Log groups - Find
/aws/lambda/pr-agent-prodlog group - Click on the latest log stream to view real-time logs
- Use the filter box to exclude system messages:
- "START RequestId" - "END RequestId" - "REPORT RequestId"
Pull Request #123
└── Commit (sha: abc123)
└── check_suite (GitHub Actions)
├── Workflow: "ci" (.github/workflows/ci.yml)
│ ├── Job: build → check_run: "build"
│ ├── Job: test → check_run: "test"
│ └── Job: lint → check_run: "lint"
└── Workflow: "deploy" (.github/workflows/deploy.yml)
└── Job: deploy → check_run: "deploy"
For CircleCI hierarchy, see services/circleci/README.md.
For communication (Slack), database (Supabase), payment (Stripe), and serverless functions (AWS Lambda), provide your preferred email to @hiroshinishio so that he can invite you to the local development environment.