Перейти к содержанию

Git-репозитории

Кодовые модели хранятся во внешнем git-репозитории. Этот раздел описывает, как организовать репозиторий и сформировать ссылку на него, которую технический администратор указывает в аккаунте AW BI.

Подробное описание действий технического администратора при подключении репозитория приведено в руководстве пользователя.

Создание репозитория

Репозиторий создаётся на любом git-сервере:

  • во внутренней инфраструктуре компании — например, собственный GitLab или Gitea;
  • в облачном сервисе — GitHub, GitLab.com, GitVerse и др.

Рекомендуемая структура репозитория — одна папка = одна модель: model.py, model.yml и файл тестов. Папки с моделями могут быть вложены в подпапки.

Внутри папки модели не должно быть подпапок

AW распознаёт модель по папке, в которой лежат оба файла — model.py и model.yml — и нет вложенных подпапок. Если внутри папки модели завести обычную подпапку (например, utils/), модель перестанет загружаться, а ранее загруженная удалится при следующем обновлении репозитория — и всё это без сообщения об ошибке. Служебные папки вроде __pycache__ или .venv на распознавание не влияют. Остальные правила структуры — в разделе «Из чего состоит кодовая модель».

code-models/
├── model_shop/
│   ├── model.py
│   ├── model.yml
│   └── test_model_shop.py
├── model_finance/
│   ├── model.py
│   └── model.yml
└── README.md

Пример такого репозитория разбирается в разделе примеров.

Ветки и production-ветка

Разработка модели ведётся по обычному git-workflow:

  1. Работа над моделью ведётся в feature-ветке (feature/orders-model и т.п.).
  2. Код проверяется локальными тестами.
  3. Ветка мержится в production-ветку — по умолчанию master — через pull/merge request с code review.

AW отслеживает конкретную ветку репозитория. Изменения, смерженные в неё, подхватываются автоматически; при необходимости можно зайти в кодовую модель в аккаунте и нажать «Обновить структуру».

При подключении репозитория ветка указывается в конце ссылки через @ (см. ниже) — обычно это и есть production-ветка master.

Не мержите недописанные модели

Всё, что попало в production-ветку, становится доступно пользователям AW. Публикуйте только проверенные тестами модели.

Ссылка на репозиторий

Технический администратор указывает в аккаунте AW ссылку на репозиторий в формате:

https://<user>:<token>@<host>/<путь>/<repo>.git@<ветка>

Пример:

https://guest:glpat-_g************3-Ad@gitlab.example.ru/analytic-workspace/code-models.git@master
Часть ссылки Описание
<user>:<token> Имя пользователя и токен доступа (для приватных репозиториев). Для публичных репозиториев часть user:token@ не нужна
<host>/<путь>/<repo>.git HTTPS-адрес репозитория из его настроек
@<ветка> Ветка, за которой следит AW (production-ветка)

Токен создаётся в настройках аккаунта на git-сервере — точные шаги для каждого сервиса смотрите в разделе ниже.

Формирование ссылки для публичного и приватного репозитория GitHub описано в разделе Настройка git-репозиториев → GitHub. Формат для кодовых моделей такой же, пример:

https://github.com/company/code-models.git@master
https://user:github_pat_****@github.com/company/code-models.git@master

Формирование ссылки для GitLab описано в разделе Настройка git-репозиториев → GitLab. Формат для кодовых моделей:

https://gitlab.example.com/company/code-models.git@master
https://user:glpat-****@gitlab.example.com/company/code-models.git@master

Формирование ссылки для Gitea описано в разделе Настройка git-репозиториев → Gitea. Формат для кодовых моделей:

https://gitea.example.ru/company/code-models.git@master
https://user:password@gitea.example.ru/company/code-models.git@master

Формирование ссылки для GitVerse описано в разделе Настройка git-репозиториев → GitVerse. Формат для кодовых моделей:

https://gitverse.ru/company/code-models.git@master
https://user:token****@gitverse.ru/company/code-models.git@master

Безопасность токена

Токен — полноценный пароль от репозитория: не публикуйте ссылку с токеном в общем доступе и не коммитьте её в сам репозиторий. Если токен скомпрометирован, перевыпустите его в настройках git-сервера.

Публичный или приватный репозиторий

  • Публичный репозиторий проще подключить — токен не нужен, достаточно HTTPS-адреса с веткой.
  • Приватный репозиторий предпочтителен для рабочих моделей: код доступен только пользователям с токеном, а токен можно отозвать в любой момент.