page-creator - это находящийся в данный момент в активной разработке скрипт для импорта информации из других сервисов в Wiki МИЭМ.
- Основная информация по проектам и ссылки на документацию к ним. Информация берется из кабинета и преобразуется в отдельные стандартные страницы в разделе /Projects
- Вики из Gitlab. Страницы сортируются по проектам и по репозиториям. Их можно найти в папках /Project/xxx/gitlab. Например эта страница находится в папке /Projects/370/gitlab
- Вики из Taiga. Страницы сортируются по проектам. Для импорта из Taiga используется open-source библиотека для работы с API Taiga, разработанная в рамках этого проекта: репозиторий
Для установки скрипта импорта потребуется операционная система GNU/Linux. Порядок установки:
- Склонировать репозиторий:
git clone https://git.miem.hse.ru/370/page-creator.git
- Установить зависимости командой
npm install
- Выполнить сборку:
npm run build
- Создать файл
.env
со следующим содержимым:
TOKEN=<token> # Токен от Wiki
URL=https://wiki.yourdomain.ru/graphql # URL сервиса Wiki
GITLAB_URL=https://git.yourdomain.ru # URL сервиса GitLab
GITLAB_TOKEN=<Gitlab-Token> # Персональный токен с доступом ко всем репозиториям
TAIGA_URL=https://taiga.yourdomain.ru # URL сервиса Taiga
TAIGA_LOGIN=<login> # Логин/почта от сервиса Taiga
TAIGA_PASSWORD=<password> # Пароль от сервиса Taiga
LOAD_PROJECTS=FALSE # Выполнять выгрузку проектов из Кабинета
LOAD_PROJECTS_DOCS=FALSE # Выполнять выгрузку документации проектов из Кабинета
LOAD_GITLAB=FALSE # Выполнять выгрузку документации из GitLab
LOAD_TAIGA=FALSE # Выполнять выгрузку документации из Taiga
RENDERING=TRUE # Выполнять рендеринг страниц при выгрузке
- Для настройки запуска скрипта по расписанию нужно создать файл службы
page-creator.service
в папке /etc/systemd/system
или /lib/systemd/system
:
[Unit]
Description=Page creator script
[Service]
Type=simple
User=<user>
Group=<group>
ExecStart=/usr/bin/node /path/to/script/dist/index.js
WorkingDirectory=/path/to/script
и файл таймера page-creator.timer
:
[Unit]
Description=Run page creator every night
[Timer]
OnCalendar=*-*-* 02:00:00
Persistent=true
[Install]
WantedBy=timers.target
Для более подробной информации о создании таймеров запуска, можно обратиться к документации по Systemd.
В Wiki МИЭМ автоматический импорт производится ежедневно в 2:00. В будущем планируется сделать автоматическое обновление информации в Вики при ее обновлении в источнике.
Механизм работы импорта следующий:
- Получение списка проектов из кабинета. Происходит импорт списка проектов из кабинета, затем фильтрация этого списка для выбора активных в данный момент проектов.
- Выгрузка информации о проектах. Происходит импорт основной информации о проектах и списков участников. Затем на основе этой информации генерируются страницы проектов, которые затем экспортируются в Wiki.
- Выгрузка документации проектов. Производится импорт ссылок на документацию проекта по трем разделам: представление, постерная сессия и итоговая документация. В будущем планируется сделать автоматическое преобразование документации в формат вики и ее индексация.
- Выгрузка вики из Gitlab. На основании списка проектов мы получаем список групп в Gitlab, для каждой группы берутся все репозитории(проекты) в этой группе, а затем все страницы в заданном репозитории(проекте) импортируются в Wiki. Вики из репозиториев(проектов) и групп, созданных вне рамок проектной деятельности, не импортируются.
- Выгрузка вики из Taiga. На основании списка проектов полученного из кабинета, формируется список проектов которые присутствуют в трекере Taiga, а затем для каждого проекта выгружаются все расположенные в нем Вики-страницы. Вики-страницы из проектов, созданных вне рамок проектной деятельности не импортируются.
- Информация из сервисов не сразу попадает на страницы Вики, а спустя некоторое время, это связано с тем, что в данный момент нет механизмов, позволяющих отслеживать изменения и автоматически их применять
- Созданные страницы не удаляются, если они были удалены в источнике. Мы еще думаем над тем как решить эту проблему