Об этом проекте
Overflow представлен как уже работающий сервис по адресу overflow.nitjsefni.eu. Пользователи входят через GitHub; для использования хостинг-инстанса развертывание не требуется. Инструкции по настройке репозитория предназначены для запуска среды разработки, а не для использования самого сервиса.
Зарегистрированный публичный репозиторий GitHub имеет открытый каталог и фактический каталог. Регистрация создает метки каталога в репозитории и устанавливает вебхук. Спонсоры присваивают задаче метку открытия; после финального коммита закрывающего pull request и до слияния они присваивают метку фактического каталога и оставляют комментарий с названием этой метки. Расчетные переводы кредитов записываются с проверяемыми доказательствами; изменения в каталогах версионируются и не меняют цену уже оплаченной работы.
Авторизованные участники могут просматривать страницы Ledger, Issues, Settlements, Register a repository, Calibration и Rules. Реестр также поддерживает программную регистрацию репозиториев с помощью API-токена, выданного Overflow. Аккаунты по-прежнему регистрируются вручную через вход в GitHub в браузере. Токен генерируется на странице Register a repository, отображается один раз, хранится в хешированном виде и может быть перевыпущен, что аннулирует предыдущий токен. POST /api/tokens чеканит токены, используя сессионный cookie того же источника; требуется заголовок Origin, соответствующий APP_URL, и либо отсутствие тела запроса, либо Content-Type application/json. POST /api/repositories принимает bearer-токен и JSON с repositoryUrl, openingName, actualName, openingLabels и actualLabels; фактический каталог должен содержать ровно десять записей, охватывающих пункты с 1 по 10. Ошибки передаются в JSON-конверте с кодом и сообщением. PATCH /api/repositories добавляет новую версию каталога; версия действует с момента изменения, поэтому более ранние окна доказательств сохраняют свои зафиксированные показатели.
Эндпоинты для чтения возвращают тот же JSON, который рендерится на страницах: GET /api/dashboard, GET /api/issues с опциональными фильтрами repository, openingLabel и claimState, GET /api/settlements, GET /api/settlements/id и GET /api/calibration. Они используют bearer-токены ovf_ или браузерные cookie; проверка origin для чтения не проводится, тело запроса не принимается. Ответы ограничены рамками аутентифицированного аккаунта; доказательство расчета доступно только стороне этого расчета. Некоторые поля заменяются на null при сбое чтения, а чтение списков ограничено 200 последними строками.
API также доступен в виде инструментов MCP через POST /api/mcp для агентных сред. Аутентификация использует те же токены ovf_. Транспорт представляет собой stateless-потоковый HTTP: один JSON-RPC запрос на один POST, отсутствие состояния сессии между вызовами, ответ initialize с версией протокола 2025-06-18, а уведомления получают пустой HTTP 202. Записи с аутентификацией через cookie через MCP отклоняются, так как синтезированные внутренние вызовы не имеют заголовка Origin для защиты same-origin.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.