Консольный интерфейс для работы с платформой школы 21.
Пакет через npm
(необходим Node.js >=20 версии):
npm install --global @s21toolkit/cli
Независимый исполняемый файл через скрипт (доступны не для всех платформ):
curl -fsSL https://raw.githubusercontent.com/s21toolkit/s21cli/master/scripts/install_binary.sh | sh
Important
По умолчанию устанавливает s21cli в $HOME/.s21
.
Задать свой путь установки можно через переменную окружения S21_HOME
.
Эта переменная так же будет использоваться для обновления, поэтому рекомендуется сделать её постоянной.
Независимый исполняемый файл вручную: [Релизы]
Поддерживаемые настройки:
параметр: <тип_данных> # Описание [значение по умолчанию]
username: <string> # Логин (с почтой) от платформы
password: <string> # Пароль от платформы
token: <string> # Токен API (используется вместо логина и пароля)
prDirectory: <string> # Папка для клонирования репозиториев пир ревью
debugRawErrors: <boolean> # Включает отображение детальной информации об ошибках [false]
cache:
enabled: <boolean> # Выключает кеширование в значении `false` [true]
local: <boolean> # Использует кеш из рабочей директории вместо глобального [false]
flat: <boolean> # Запрещает создавать подпапки для кешей [false]
zip: <boolean> # Архивирует кеш для уменьшения использования памяти [false]
Note
Аутентификация производится либо через логин/пароль, либо через токен (дополнительно можно указать SchoolID).
Если в конфигурации указан токен, использоваться будет он. При использовании готового токена он не будет обновляться автоматически. Если при аутентификации через токен не указан SchoolID, он будет запрошен.
Если токен не указан, будет использоваться логин/пароль. Если не указано ничего из вышеперечисленного произойдёт ошибка.
s21cli загружает настройки через из локального/глобального файлов конфигурации и из окружения. Локальный конфиг берётся из рабочей директории, глобальный из $HOME
.
Файлы конфигурации являются скриптами на JS и должны именоваться .s21.js
(либо .cjs
/.mjs
).
Пример заполнения .s21.mjs
:
export default {
username: "example@student.21-school.ru",
password: "qwerty123",
prDirectory: `${process.env.HOME}/school21/peer_reviews`
}
Переменные окружения должны иметь формат S21_<настройка>
, например:
export S21_prDirectory=$HOME/school21/peer_reviews
Приоритет загрузки: Глобальные настройки < Локальные настройки < Окружение
То есть настройки из окружения перезаписывают настройки из файлов и тд.
s21 <...commands> [...args]
Для всех команд доступен флаг -h
для получения справки.
s21
pr
link
- Получает ссылки на репозиторий текущего пир ревьюclone
- Клонирует проект текущего пир ревью в новую папкуlist
- Отображает список текущих пир ревью
wfs
- Автоматическая запись на проверку для выбранного проекта (пока не работает для интенсивов)project
info
- Отображает информацию о выбранном проекте
test
- Отправляет тестовый запрос к платформеapi
- Выполняет указанный метод API, возвращает данные в формате JSON (см. s21docs/api-operations)gql
- Выполняет указанный GQL запрос, возвращает данные в формате JSONauth
- Выполняет аутентификацию по логину и паролю, возвращает токен и schoolIdupdate
- Обновляет s21cli до последней версии (для бинарных релизов)cache
clean
- Очищает кеш