[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-77054":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":13,"compositeScore":19,"rankGlobal":10,"rankLanguage":10,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":23,"hasPages":21,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":27,"readmeContent":28,"aiSummary":29,"trendingCount":15,"starSnapshotCount":15,"syncStatus":16,"lastSyncTime":30,"discoverSource":31},77054,"agent-git-service","ngaut\u002Fagent-git-service","ngaut","Reimplement GitHub for Agents.","",null,"Go",174,6,1,0,2,12,133,2.54,"Apache License 2.0",false,"main",true,[25,26],"agents","github","2026-06-12 02:03:42","\u003Cdiv align=\"center\">\n\n# agent-git-service\n\n**A self-hosted, GitHub-compatible API server for agents, automation, and\ndeveloper workflows.**\n\n[![CI](https:\u002F\u002Fgithub.com\u002Fngaut\u002Fagent-git-service\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fngaut\u002Fagent-git-service\u002Factions\u002Fworkflows\u002Fci.yml)\n[![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Apache--2.0-blue.svg)](LICENSE)\n[![Go](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FGo-1.25+-00ADD8.svg)](go.mod)\n\n\u003C\u002Fdiv>\n\n`agent-git-service` lets GitHub-speaking clients work with repositories you\nown. It exposes GitHub-style REST v3, GraphQL v4, OAuth device flow, and Git\nSmart HTTP while storing repository data in real bare Git repositories and\nproduct metadata in TiDB\u002FMySQL-compatible storage.\n\nThe development binary is currently named `gh-server`.\n\n## Why\n\nUse `agent-git-service` when you want a GitHub-compatible control plane that can\nrun where your agents run:\n\n- Keep repositories and product metadata under your control.\n- Support existing GitHub clients instead of inventing new client protocols.\n- Give agents durable accounts, tokens, optional human binding, and repository\n  transfer flows.\n- Preserve Git-native clone, fetch, push, refs, diffs, merges, and history in\n  real bare Git repositories.\n- Validate compatibility through the vendored GitHub CLI acceptance suite.\n\n## Enhancements\n\n| Enhancement | What it adds |\n|-------------|--------------|\n| Agent identities | Durable agent accounts, API tokens, optional human binding, and repository transfer flows |\n| Issue workspace | Typing signals, presence, attachments, read state, unread counts, pinned comments, and reactions |\n| Wiki memory | Git-backed pages, history, search, labels, backlinks, and page moves |\n| Semantic search | Optional embedding-backed issue and pull request search |\n| Local operations | Prometheus metrics, readiness checks, structured logs, and a Grafana dashboard |\n\nKnown GitHub-compatibility gaps are tracked in\n[`docs\u002Fgithub-api-compatibility-matrix.md`](docs\u002Fgithub-api-compatibility-matrix.md).\n\n## Quick Start\n\nThis local path uses [TiDB Zero](https:\u002F\u002Fzero.tidbcloud.com\u002F)\nfor a disposable TiDB database.\n\nInstall `curl` and `jq` before running this quickstart. The snippet below uses\nboth tools to create a TiDB Zero instance and build the MySQL DSN.\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fngaut\u002Fagent-git-service.git\ncd agent-git-service\ncp .env.example .env\n\nZERO_INSTANCE=\"$(\n  curl -fsS -X POST https:\u002F\u002Fzero.tidbapi.com\u002Fv1beta1\u002Finstances \\\n    -H \"Content-Type: application\u002Fjson\" \\\n    -d '{\"tag\":\"agent-git-service-quickstart\"}'\n)\"\nexport DB_DSN=\"$(\n  printf '%s' \"$ZERO_INSTANCE\" | jq -r '\n    .instance.connection as $c |\n    \"\\($c.username):\\($c.password)@tcp(\\($c.host):\\($c.port))\u002Ftest?parseTime=true&timeout=10s&tls=true\"\n  '\n)\"\nprintf 'TiDB Zero claim URL: %s\\n' \"$(\n  printf '%s' \"$ZERO_INSTANCE\" | jq -r '.instance.claimInfo.claimUrl'\n)\"\n\ngo run .\n```\n\nClaim the TiDB Zero instance from its claim URL if you want to keep the database\nafter evaluation. For production, create a TiDB Cloud Starter instance and\nfollow the full [`docs\u002Fproduction-deployment.md`](docs\u002Fproduction-deployment.md)\nguide.\n\nFor the complete local setup, including `gh` CLI, `curl`, and Git push examples,\nsee [`docs\u002Fquickstart.md`](docs\u002Fquickstart.md).\n\n## Development\n\n```bash\nmake build       # compile gh-server\nmake check       # build + go vet\nmake test-unit   # go test -v .\u002F...\nmake test        # gh CLI acceptance tests; requires a running local server\nmake test-e2e    # shell E2E flows under e2e\u002F\n```\n\nLocal setup helpers:\n\n```bash\nmake setup       # persistent setup with an external DB_DSN\nmake test-setup  # test-only setup using tiup playground\nmake run-bg      # start the local server in the background\nmake stop        # stop it\nmake status      # show local status\n```\n\n`make run-bg` first tries the privileged `github.localhost` listener path used\nby acceptance tests. If passwordless sudo is unavailable, it falls back to port\n`8080`; `make test` will then fail fast because the acceptance suite expects\n`http:\u002F\u002Fgithub.localhost` on port `80`.\n\n## License\n\nLicensed under the [Apache License 2.0](LICENSE).\n","`agent-git-service` 是一个自托管的、兼容GitHub API的服务，专为代理、自动化和开发者工作流设计。该项目使用Go语言编写，通过模拟GitHub的REST v3、GraphQL v4、OAuth设备流以及Git智能HTTP协议来提供服务，同时将仓库数据存储在真实的裸Git仓库中，并将产品元数据存储在TiDB\u002FMySQL兼容的数据库里。适用于需要对代码库和相关元数据保持完全控制，同时希望继续利用现有GitHub客户端工具的场景。它支持持久化代理账户与令牌管理、可选的人类绑定及仓库转移流程等功能，确保了Git原生操作如克隆、推送等的完整性。此外，项目还提供了Prometheus监控指标、就绪检查等本地操作增强功能，进一步提升了系统的可观测性和稳定性。","2026-06-11 03:55:05","CREATED_QUERY"]