diff --git a/docs/dev/SOURCECRAFT_API.md b/docs/dev/SOURCECRAFT_API.md index 000f826..8d458c6 100644 --- a/docs/dev/SOURCECRAFT_API.md +++ b/docs/dev/SOURCECRAFT_API.md @@ -18,7 +18,8 @@ J="Content-Type: application/json" - Соединение с `api.sourcecraft.tech` иногда рвётся (`curl: (35)`, пустой ответ) — отсюда `--retry`. Перед повторным POST проверить, не создалась ли сущность. - `color` у метки — hex **без** `#` (`"ff7f0e"`), иначе `400 ValidationError`. -- Ответы-списки кладут элементы в разные ключи: `/issues` → `issues`, `/labels` репо → `items`, метки issue → `labels`. +- Ответы-списки кладут элементы в разные ключи: `/issues` → `issues`, `/labels` и `/milestones` → `items`, `/pulls` → `pull_requests`, метки issue → `labels`, связи → `links`. +- Веха в issue задаётся `milestone_id` (UUID); `milestone_slug` отвергается с `400 must be a valid ID`. - Issue адресуется номером (`issues/1`), метка — slug'ом (`size/0.5` → `size-0-5`). - Тело issue — поле `description` (не `body`); тело комментария — `body`. - Длинный markdown удобнее собрать в JSON-файл и передать `--data @file.json`. @@ -43,10 +44,28 @@ curl -s -X POST -H "$H" -H "$J" "$R/issues/1/comments" -d '{"body":"текст"} # метки issue: POST — добавить, PUT — заменить, DELETE — убрать curl -s -X POST -H "$H" -H "$J" "$R/issues/1/labels" -d '{"slugs":["ci"]}' -# связь между issue -curl -s -X POST -H "$H" -H "$J" "$R/issues/2/issue_links" --data @link.json +# связь между issue (related_to | parent_of | subissue_of | blocks | blocked_by | duplicates | duplicated_by) +curl -s -X POST -H "$H" -H "$J" "$R/issues/9/issue_links" -d '{"target_issue_slug":"8","link_type":"blocked_by"}' ``` +## Вехи + +```bash +curl -s -H "$H" "$R/milestones" +curl -s -X POST -H "$H" -H "$J" "$R/milestones" -d '{"name":"M5 · …","description":"…"}' # → id для milestone_id +``` + +## CI/CD + +```bash +curl -s -H "$H" "$R/cicd/runs" # прогоны +curl -s -H "$H" "$R/cicd/runs/" # статус прогона +curl -s -H "$H" "$R/cicd/logs////" # лог куба +curl -s -X PUT -H "$H" -H "$J" "$R/secrets/DEPLOY_HOST" --data @secret.json +``` + +Исходящих webhooks нет — статус CI получаем опросом (ADR-003). + ## Метки репозитория ```bash