- 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
79 lines
2.2 KiB
Markdown
79 lines
2.2 KiB
Markdown
# 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 n’a 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 qu’un 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 d’environnement
|
||
|
||
| 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 |
|