{"id":46161753,"url":"https://github.com/chrisleekr/github-app-playground","last_synced_at":"2026-04-26T06:01:36.559Z","repository":{"id":339178775,"uuid":"1160745428","full_name":"chrisleekr/github-app-playground","owner":"chrisleekr","description":"A GitHub App that listens for bot mention on PRs and issues, then autonomously responds using the Claude Agent SDK (@anthropic-ai/claude-agent-sdk) with MCP servers","archived":false,"fork":false,"pushed_at":"2026-04-24T09:33:46.000Z","size":3674,"stargazers_count":0,"open_issues_count":13,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-24T10:38:17.008Z","etag":null,"topics":["anthropic","app","claude-agent-sdk","claude-code-action","github","mcp","modelcontextprotocol","octokit","playground"],"latest_commit_sha":null,"homepage":"https://chrisleekr.github.io/github-app-playground/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chrisleekr.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-18T10:19:07.000Z","updated_at":"2026-04-24T09:33:21.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/chrisleekr/github-app-playground","commit_stats":null,"previous_names":["chrisleekr/github-app-playground"],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/chrisleekr/github-app-playground","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisleekr%2Fgithub-app-playground","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisleekr%2Fgithub-app-playground/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisleekr%2Fgithub-app-playground/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisleekr%2Fgithub-app-playground/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chrisleekr","download_url":"https://codeload.github.com/chrisleekr/github-app-playground/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisleekr%2Fgithub-app-playground/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32287398,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-25T18:29:39.964Z","status":"online","status_checked_at":"2026-04-26T02:00:05.962Z","response_time":129,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["anthropic","app","claude-agent-sdk","claude-code-action","github","mcp","modelcontextprotocol","octokit","playground"],"created_at":"2026-03-02T11:07:32.718Z","updated_at":"2026-04-26T06:01:36.541Z","avatar_url":"https://github.com/chrisleekr.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GitHub App Playground - @chrisleekr-bot\n\nGitHub App that responds to `@chrisleekr-bot` mentions on PRs and issues — powered by Claude Agent SDK.\n\nPorted from [claude-code-action](https://github.com/anthropics/claude-code-action) tag mode to a standalone webhook server.\n\n## Features\n\n- **Code review**: Mention `@chrisleekr-bot` on a PR for AI-powered code review\n- **Code changes**: Ask the bot to fix bugs, refactor, or implement features\n- **Q\u0026A**: Ask questions about the codebase on issues or PRs\n- **Extensible**: Add new webhook events, MCP servers, or behaviors\n\n## Setup\n\nSee [docs/SETUP.md](./docs/SETUP.md) for the full GitHub App creation and configuration guide.\n\n### Quick Start (Development)\n\n```bash\ncp .env.example .env   # Fill in credentials (see SETUP.md for details)\nbun install\nbun run dev:deps       # Start local Valkey + Postgres (optional, for non-inline modes)\nbun run dev\n```\n\n## Architecture\n\n```mermaid\nsequenceDiagram\n    actor User\n    participant GitHub\n    participant Bot as Bot Server\n    participant Claude as Claude Agent SDK\n    participant MCP as MCP Servers\n\n    User-\u003e\u003eGitHub: Mentions @chrisleekr-bot\u003cbr/\u003ein a PR or issue comment\n    GitHub-\u003e\u003eBot: POST /api/github/webhooks\n    Bot--\u003e\u003eGitHub: 200 OK (responds immediately)\n\n    Note over Bot,Claude: Heavy work runs asynchronously after 200 OK\n\n    Bot-\u003e\u003eGitHub: Creates \"Working...\" tracking comment\n    Bot-\u003e\u003eGitHub: Fetches PR/issue context via GraphQL\n    Bot-\u003e\u003eGitHub: Clones repository (shallow, branch-specific)\n    Bot-\u003e\u003eClaude: Runs agent with full prompt and cloned repo\n    loop Until task complete\n        Claude-\u003e\u003eMCP: Calls tools (read/write files, post comments, create inline reviews)\n        MCP-\u003e\u003eGitHub: Updates tracking comment / posts inline review\n    end\n    Bot-\u003e\u003eGitHub: Finalizes tracking comment with result summary\n```\n\nSee [CLAUDE.md](./CLAUDE.md) for a quick architecture overview and [docs/ARCHITECTURE.md](./docs/ARCHITECTURE.md) for the full request-flow diagram and directory structure.\n\n## Deployment\n\nSee [docs/DEPLOYMENT.md](./docs/DEPLOYMENT.md) for Docker build args, health probes, resource sizing, and graceful shutdown details.\n\n## Extending\n\nSee [docs/EXTENDING.md](./docs/EXTENDING.md) for how to add new webhook event handlers and MCP servers.\n\n## Contributing\n\nSee [CONTRIBUTING.md](./CONTRIBUTING.md) for local setup, testing, linting, and commit message conventions.\n\n## License\n\nPrivate\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchrisleekr%2Fgithub-app-playground","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchrisleekr%2Fgithub-app-playground","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchrisleekr%2Fgithub-app-playground/lists"}