smart_ide/docs/API/repos-devtools-server.md
Nicolas Cantu 088eab84b7 Platform docs, services, ia_dev submodule, smart_ide project config
- Add ia_dev submodule (projects/smart_ide on forge 4nk)
- Document APIs, orchestrator, gateway, local-office, rollout
- Add systemd/scripts layout; relocate setup scripts
- Remove obsolete nginx/enso-only docs from this repo scope
2026-04-03 16:07:58 +02:00

79 lines
2.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# API — repos-devtools-server
Service Node (HTTP brut) : opérations Git limitées sous une racine configurable.
- **Code** : [`services/repos-devtools-server/`](../../services/repos-devtools-server/)
- **Bind** : `REPOS_DEVTOOLS_HOST` (défaut `127.0.0.1`)
- **Port** : `REPOS_DEVTOOLS_PORT` (défaut `37140`)
## Authentification
Toutes les routes exigent :
```http
Authorization: Bearer <REPOS_DEVTOOLS_TOKEN>
```
`REPOS_DEVTOOLS_TOKEN` est obligatoire au démarrage (non vide).
## Endpoints
### `POST /repos-clone`
Clone un dépôt sous `REPOS_DEVTOOLS_ROOT`.
**Corps JSON**
| Champ | Obligatoire | Description |
|-------|-------------|-------------|
| `url` | oui | URL Git du dépôt à cloner |
| `branch` | non | Branche à cloner (défaut `test`), clone `--single-branch` |
**Réponses**
- `200` : `{ "ok": true, "name", "path", "branch", "url", "fourNkAiIgnoreTemplateWrote": boolean }` — si le clone réussit ; si le dépôt na pas de `.4nkaiignore`, un gabarit peut être copié (`fourNkAiIgnoreTemplateWrote`).
- `409` : répertoire cible déjà présent — `{ "error", "name", "path" }`
- `500` : échec `git clone` ou échec après clone lors de lécriture du template `.4nkaiignore`
### `GET /repos-list`
Liste les sous-répertoires de `REPOS_DEVTOOLS_ROOT` qui sont des dépôts Git.
**Réponse `200`**
```json
{
"repos": [{ "name": "string", "path": "string" }],
"codeRoot": "string"
}
```
### `POST /repos-load`
Vérifie quun dossier nommé existe sous la racine et est un dépôt Git.
**Corps JSON**
| Champ | Obligatoire | Description |
|-------|-------------|-------------|
| `name` | oui | Nom du dossier (sous `REPOS_DEVTOOLS_ROOT`) |
**Réponses**
- `200` : `{ "ok": true, "name", "path" }`
- `404` : dossier absent
- `400` : dossier présent mais pas un dépôt Git
### Autres chemins
`404` JSON `{ "error": "Not found" }`.
## Variables denvironnement
| Variable | Obligatoire | Description |
|----------|-------------|-------------|
| `REPOS_DEVTOOLS_TOKEN` | oui | Secret Bearer |
| `REPOS_DEVTOOLS_ROOT` | non | Racine des clones (défaut `/home/ncantu/code`) |
| `REPOS_DEVTOOLS_HOST` | non | Adresse découte |
| `REPOS_DEVTOOLS_PORT` | non | Port |