tmc-cli - The Modding Community
API, Прямо Из Терминала
tmc-cli, клиент командной строки для нашего публичного API контента. Он создаёт, редактирует и удаляет ваши ассеты, моды, серверы, статьи, сообщества, коллекции и группы, и, поскольку именно ради этого API и используют, он загружает файлы и выпускает релизы одной командой.
Установка из клона. tmc-cli ещё нет на PyPI, поэтому pip ставит его из публичного репозитория. Три шага описаны ниже.
$ tmc auth whoamiprofile defaultsite https://moddingcommunity.comauthMode tokentoken tmc_ab…9fcanRead truecanWrite truecanDelete falseОдин пакет на стандартной библиотеке: собирать и разрешать зависимости не нужно. На PyPI его нет, поэтому он ставится из клона. Каждая команда, флаг и код выхода описаны в документации.
Три шага, без индекса пакетов
tmc-cli нет на PyPI. Он ставится из клона публичного репозитория, требует Python 3.11 или новее и не тянет других пакетов.
Один инструмент, шесть областей API
Названия команд это ровно то, что набирается. Полный список покажет tmc --help.
Релизы Одной Командой
Выпустить релиз через «сырое» API, это четыре запроса в определённом порядке: загрузить файлы, собрать их идентификаторы, прочитать уже существующий набор релизов и записать новый не задев остальные. release publish, это и есть вся эта последовательность.
Что Умеет CLI
Одна команда на каждое действие, которое вы выполнили бы в браузере, и ещё несколько, которые не хочется делать вручную: массовые правки, пайплайны и релизы из скриптов.
Ключи, Профили И Публичная Половина
Войдите один раз, и учётные данные сохранятся в ~/.config/tmc/config.json с правами 0600, или передайте их через окружение, и диск вообще не будет затронут. По одному профилю на сайт или на ключ, и --anon для той половины API, которой ключ не нужен вовсе.
Четыре Глагола, Которые Говорят, Что Делают
Опасный, set: в этом API PUT к связи означает «теперь это полный набор», поэтому PUT с одним участником удаляет у объекта всё остальное. CLI держит все четыре раздельно и предупреждает перед отправкой разрушительного.
Используйте В CI
Собирайте проект, выпускайте релиз и загружайте его файлы при каждом теге. Учётные данные берутся из окружения, поэтому на раннере ничего не пишется на диск.
