GitAuto is a GitHub coding agent that opens pull requests from backlog tickets for software engineering managers to complete more bug fixes and feature requests. Assign tasks to GitAuto first, and have people work on more complex tickets.
- Want to give GitAuto a try? Go to GitAuto installation.
- Want to see demo videos? Go to GitAuto YouTube.
- Want to know more about GitAuto? Go to GitAuto homepage.
- Want to chat about your use case? Feel free to contact us at email, admin, X, or LinkedIn.
- Install GitAuto to your repositories from GitHub Marketplace.
- Choose the repositories where you want to use GitAuto.
- You can change the repositories later.
- Create a new issue, then GitAuto shows up in the issue comment.
- Or create a new issue with a template.
- Or pick up an existing issue.
- Check the checkbox to assign GitAuto to the issue, then GitAuto starts to work on the issue.
- Or label the issue with
gitauto, which also assigns GitAuto to the issue.
- Or label the issue with
- Check the progress of GitAuto in the bottom of the issue comment. You will get a notification once GitAuto completes the PR.
- Review the PR and merge it if it looks good.
- If not, update the issue with more details and re-run GitAuto by checking the checkbox again.
- 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. an issue 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"
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.