- Зачем:
- навык wayfinder ожидает раздел про операции карты в документе трекера, а
в Gitea 1.27 нет подзадач, поэтому конвенции надо было зафиксировать явно.
- Что:
- описана принадлежность тикета карте через метку и ссылку в теле, поскольку
родительских связей в API нет.
- блокировки заведены на нативные зависимости Gitea, добавлены запросы фронтира.
- зафиксированы три особенности tea api: путь без ведущего слэша, обязательные
owner и repo в теле зависимости, нулевой код возврата при HTTP 404.
- Проверка:
- tea issues list --remote origin --labels wayfinder:map
- tea api --remote origin repos/ddmitry/local-transcriber/issues/14/dependencies
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
5.4 KiB
Issue Tracker
Задачи проекта ведутся в Gitea-репозитории ddmitry/local-transcriber.
- Основной remote:
origin - Gitea:
https://git.dementev.space - CLI:
tea - Remote
githubявляется зеркалом и не используется для управления задачами - Внешние pull request не входят в очередь triage
Доступ
Перед операциями с задачами проверить наличие tea.
Если команда недоступна, остановиться и предложить пользователю установку:
winget install --id Gitea.tea --exact
Не переключаться автоматически на GitHub Issues или локальные markdown-задачи.
Проверить настроенные подключения:
tea login list
Если подходящего подключения нет, предложить пользователю настроить его через
tea login add. Не запрашивать и не выводить токены в переписке или логах.
Прокси
Рабочее окружение использует корпоративный прокси (HTTP_PROXY и HTTPS_PROXY),
через который git.dementev.space недоступен: запрос к API завершается ошибкой
EOF. Хост нужно добавить в NO_PROXY.
Разделитель — запятая, не точка с запятой: tea написан на Go, а Go
разбирает NO_PROXY по запятым, и хост после ; не распознаётся.
На текущую сессию:
$env:NO_PROXY = "$env:NO_PROXY,git.dementev.space"
Постоянно, в пользовательских переменных окружения (значение подхватят только новые процессы):
[Environment]::SetEnvironmentVariable("NO_PROXY", "$env:NO_PROXY,git.dementev.space", "User")
Работа с задачами
Из рабочего дерева использовать Gitea remote origin:
tea issues list --remote origin
tea issues create --remote origin
tea issues edit <index> --remote origin
tea labels list --remote origin
За пределами рабочего дерева явно указывать репозиторий
ddmitry/local-transcriber и настроенный Gitea login.
Wayfinding operations
Навык wayfinder ведёт карту как issue с меткой wayfinder:map, а её тикеты —
как отдельные issue с метками wayfinder:research, wayfinder:prototype,
wayfinder:grilling и wayfinder:task.
Принадлежность карте
Gitea 1.27 не имеет подзадач в API: среди эндпоинтов issues/{index} есть
dependencies и blocks, но родительских связей нет. Поэтому принадлежность
тикета карте выражается двумя способами сразу: меткой wayfinder:<тип> и первой
строкой тела со ссылкой на карту.
Часть карты: [<заголовок карты>](<url>) (#<номер>)
Блокировки
Блокировки — нативные зависимости Gitea, они отображаются в интерфейсе. Тикет разблокирован, когда закрыты все блокирующие его тикеты.
tea api --remote origin -X POST `
repos/ddmitry/local-transcriber/issues/<блокируемый>/dependencies `
-d '{"index": <блокирующий>, "owner": "ddmitry", "repo": "local-transcriber"}'
Запросы фронтира
Фронтир — открытые, разблокированные и никому не назначенные тикеты карты. Заявка на тикет — назначение его на себя до начала работы.
tea issues list --remote origin --labels wayfinder:map
tea issues list --remote origin --labels wayfinder:research,wayfinder:prototype,wayfinder:grilling,wayfinder:task
tea api --remote origin repos/ddmitry/local-transcriber/issues/<номер>/dependencies
Особенности tea api
Три вещи, на которых легко потерять время:
- Путь без ведущего слэша.
repos/{owner}/{repo}/...работает,/repos/...возвращает404 page not found. Подстановка{owner}и{repo}из контекста репозитория при этом не срабатывает — писать владельца и имя явно. - Тело зависимости требует
ownerиrepo. Только{"index": N}даётrepository does not exist [id: 0, uid: 0, owner_name: , name: ]. - Код возврата не отражает HTTP-статус.
tea apiзавершается с нулевым кодом даже на 404, поэтому скрипты должны запрашивать-iи разбирать строкуHTTP/...из stderr, иначе ошибки пройдут незамеченными.