From 0244da0b0e3f656c6fb0a52ea38317276b26341f Mon Sep 17 00:00:00 2001 From: Lacky1234union Date: Mon, 12 Oct 2026 18:36:22 +0300 Subject: [PATCH] =?UTF-8?q?docs(api):=20=D0=B2=D0=B5=D1=85=D0=B8,=20=D1=81?= =?UTF-8?q?=D0=B2=D1=8F=D0=B7=D0=B8=20issue,=20CI-=D1=8D=D0=BD=D0=B4=D0=BF?= =?UTF-8?q?=D0=BE=D0=B8=D0=BD=D1=82=D1=8B,=20=D0=BD=D1=8E=D0=B0=D0=BD?= =?UTF-8?q?=D1=81=D1=8B=20=D0=BA=D0=BB=D1=8E=D1=87=D0=B5=D0=B9=20=D0=BE?= =?UTF-8?q?=D1=82=D0=B2=D0=B5=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Refs #2 Co-Authored-By: Claude Opus 5.5 --- docs/dev/SOURCECRAFT_API.md | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) 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