infra: репозиторий tgit-uploads, deploy-ключ бота и CI/CD-шаблон #7
Notifications
Due Date
No due date set.
Depends on
Reference: HSE/tgit#7
Reference in New Issue
Block a user
Описание
Общий репозиторий команды (ADR-012) по ARCHITECTURE §5.2. Шаблон хранится в
tgit, чтобы его можно было развернуть заново.Желаемый результат
rogachevegorushka/tgit-uploads(SourceCraft) сservices/, README и.sourcecraft/ci.yaml.tgit-uploads.checkна push вmain: изменённые файлы →py_compile,ruff(мягкие правила),pytestдля затронутых сервисов,bandit.deploy(послеcheck) — вызов runner для изменённыхservices/<name>/(сам runner — #13).services/<name>/tgit.yaml(health_url,network) описан в README.Подзадачи
infra/uploads-template/— README,.sourcecraft/ci.yaml,ruff.tomltgit_bot_ed25519, путь в.env.exampletgit-uploads(вручную в UI SourceCraft — API для ключей нет)services/hello/Анализ
Затрагиваемые файлы
infra/uploads-template/.env.exampleОграничения и риски
Приватный ключ — только в
.env/volume. Workflowdeployдо #13 — заглушка, которая логирует список сервисов.Как проверить
Закоммитить вручную сервис с ошибкой ruff и без —
checkкрасный/зелёный, в логе виден упавший шаг;deployперечисляет изменённые сервисы.Лог выполнения
2026-10-13
2026-10-13
rogachevegorushka/tgit-uploadsсоздан через API (POST /orgs/{org}/repos), приватный, основная веткаmain.infra/uploads-template/:.sourcecraft/ci.yaml(push вmain→check: compile · ruff (мягкие правила) · bandit -ll · pytest по сервисам →deploy: список изменённых сервисов, запуск — #13),.tgit/changed_services.py,.tgit/run_tests.py,ruff.toml, демо-сервисservices/helloс тестом, форматtgit.yaml, README.checkпроверяет весь репозиторий (он маленький, а результат не зависит от глубины клона); список дляdeploy—git diff HEAD~1с фолбэком «все сервисы».0581aef→ CI запустился сам (event_type: push), прогон1000000✅: тестhelloпрошёл, deploy-заглушка вывелаhello. Подтверждает: триггеры берутся из основной ветки (см. #6).lint❌ (F821, F401),deployне запускался.~/.ssh/tgit_bot_ed25519(ed25519) сгенерирован локально, путь —GIT_SSH_KEY_PATH. Осталось: добавить его публичную часть как deploy key с записью в UI SourceCraft.2026-10-14
IdentitiesOnly):ls-remote✅, push временной ветки ✅ (удалена). PR #30 смержен.2026-10-15
~/.ssh/configдляssh.sourcecraft.devпрописан личный ключ владельца (manytasks); ssh предлагал его вместе с ключом бота, и сервер принимал личный (ssh -v:Server accepts key: …/manytasks). С-F /dev/null(только ключ бота) —Permission denied (publickey); в контейнере то же самое.tgit-uploadsс правом записи), и добавить заново. Отпечаток:SHA256:Kj73RhqKq+FSsjf7qnR/zV25yvz1b091yt8lKQpXzho.-F /dev/null(#8) — на хосте и в контейнере ведёт себя одинаково. Проверять ключ только так.infra: репозиторий tgit-uploads, deploy-ключ бота и CI-проверки загрузокto infra: репозиторий tgit-uploads, deploy-ключ бота и CI/CD-шаблон