|
1 | 1 | # docker-git |
2 | 2 |
|
3 | 3 | `docker-git` создаёт отдельную Docker-среду для каждого репозитория, issue или PR. |
4 | | - |
5 | | -Теперь есть API-first controller mode: |
6 | | -- хосту нужен только Docker |
7 | | -- поднимается `docker-git-api` controller container |
8 | | -- его state живёт в Docker volume `docker-git-projects` |
9 | | -- controller через Docker API создаёт и обслуживает дочерние project containers |
10 | | -- снаружи ты общаешься с системой через HTTP API или `./ctl` |
| 4 | +По умолчанию проекты лежат в `~/.docker-git`. |
11 | 5 |
|
12 | 6 | ## Что нужно |
13 | 7 |
|
14 | | -- Для controller mode: Docker Engine или Docker Desktop |
| 8 | +- Docker Engine или Docker Desktop |
15 | 9 | - Доступ к Docker без `sudo` |
16 | | -- Node.js и `npm` нужны только для legacy host CLI mode |
| 10 | +- Node.js и `npm` |
17 | 11 |
|
18 | | -## API Controller Mode |
| 12 | +## Установка |
19 | 13 |
|
20 | 14 | ```bash |
21 | | -./ctl up |
22 | | -./ctl health |
23 | | -./ctl projects |
| 15 | +npm i -g @prover-coder-ai/docker-git |
| 16 | +docker-git --help |
24 | 17 | ``` |
25 | 18 |
|
26 | | -API публикуется на `http://127.0.0.1:3334` по умолчанию. |
| 19 | +## Авторизация |
27 | 20 |
|
28 | 21 | ```bash |
29 | | -./ctl request GET /projects |
30 | | -./ctl request POST /projects '{"repoUrl":"https://github.com/ProverCoderAI/docker-git.git","repoRef":"main"}' |
31 | | -``` |
32 | | - |
33 | | -Важно: |
34 | | -- `./ctl` не требует `curl`, `node` или `pnpm` на хосте |
35 | | -- запросы к API выполняются через `curl` внутри controller container |
36 | | -- `.docker-git` больше не обязан лежать на host filesystem: controller хранит его в Docker volume |
37 | | - |
38 | | -## Legacy Host CLI |
39 | | - |
40 | | -```bash |
41 | | -npm i -g @prover-coder-ai/docker-git |
42 | | -docker-git --help |
| 22 | +docker-git auth github login --web |
| 23 | +docker-git auth codex login --web |
| 24 | +docker-git auth claude login --web |
43 | 25 | ``` |
44 | 26 |
|
45 | 27 | ## Пример |
46 | 28 |
|
47 | | -Через API controller можно создать проект и потом поднять его отдельно: |
| 29 | +Можно передавать ссылку на репозиторий, ветку (`/tree/...`), issue или PR. |
48 | 30 |
|
49 | 31 | ```bash |
50 | | -./ctl request POST /projects '{"repoUrl":"https://github.com/ProverCoderAI/docker-git.git","repoRef":"main","up":false}' |
51 | | -./ctl projects |
| 32 | +docker-git clone https://github.com/ProverCoderAI/docker-git/issues/122 --force --mcp-playwright |
52 | 33 | ``` |
53 | 34 |
|
54 | | -API возвращает `projectId`, после чего можно: |
55 | | - |
56 | | -```bash |
57 | | -./ctl request POST /projects/<projectId>/up |
58 | | -./ctl request GET /projects/<projectId>/logs |
59 | | -./ctl request POST /projects/<projectId>/down |
60 | | -``` |
| 35 | +- `--force` пересоздаёт окружение и удаляет volumes проекта. |
| 36 | +- `--mcp-playwright` включает Playwright MCP и Chromium sidecar для браузерной автоматизации. |
61 | 37 |
|
62 | | -## Проверка Docker runtime |
| 38 | +Автоматический запуск агента: |
63 | 39 |
|
64 | 40 | ```bash |
65 | | -pnpm run e2e:runtime-volumes-ssh |
| 41 | +docker-git clone https://github.com/ProverCoderAI/docker-git/issues/122 --force --auto |
66 | 42 | ``` |
67 | 43 |
|
68 | | -Сценарий доказывает, что контейнер стартует через Docker, runtime state живёт в named volumes, а SSH реально заходит в дочерний project container. |
| 44 | +- `--auto` сам выбирает Claude или Codex по доступной авторизации. Если доступны оба, выбор случайный. |
| 45 | +- `--auto=claude` или `--auto=codex` принудительно выбирает агента. |
| 46 | +- В auto-режиме агент сам выполняет задачу, создаёт PR и после завершения контейнер очищается. |
69 | 47 |
|
70 | 48 | ## Подробности |
71 | 49 |
|
|
0 commit comments