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

Git-репозитории с etl-блоками

Структура git-репозитория

корень репозитория
├── aw_sql_external
│   ├── block_code.py
│   ├── block_meta.json
│   ├── block_test.py
│   ├── readme
│   │   ├── pic-child-structure.png
│   │   ├── pic-empty-block.png
│   │   ├── pic-example1-1.png
│   │   ├── pic-example2-1.png
│   │   ├── pic-example2-2.png
│   │   └── pic-example2-3.png
│   └── README.md
└── README.md
Рекомендуемое содержимое файла .gitignore
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
#  Usually these files are written by a python script from a template
#  before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/

# Translations
*.mo
*.pot

# Sphinx documentation
docs/_build/

# PyBuilder
.pybuilder/
target/

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/

# pytype static type analyzer
.pytype/

# Cython debug symbols
cython_debug/

# IDE
.idea/
.vscode/

Подключение репозитория

Для подключения репозитория с etl-блоками к вашему экземпляру AW необходимо задать значение переменной ETL_BLOCKS_REPOSITORY в .env файле. Здесь указывается адрес http(s)-адрес репозитория с указанием нужной ветки. Если вы используете приватный репозиторий, то в адресе указывается ещё и аутентификационные данные.

Внимание!

После изменения значения env-переменной ETL_BLOCKS_REPOSITORY необходимо пересоздать контейнер для сервиса etl-tasks:

docker compose up -d etl-tasks

Обработка изменений блоков в AW

После git push в репозиторий изменения etl-блоков будут автоматически применены в Analytic Workspace в течение 3 минут.

Ниже приводятся примеры настроек репозитория для различных git-серверов.

GitHub

Скопируйте https-адрес из настроек вашего репозитория.

Вставьте это значение в переменную ETL_BLOCKS_REPOSITORY .env файла и укажите в конце адреса через @ целевую ветку репозитория.

ETL_BLOCKS_REPOSITORY=https://github.com/akvarats/etl_blocks.git@master

Откройте страницу настроек вашего аккаунта. Для этого нажмите на пиктограмму вашего аккаунта в правом верхнем меню и далее выберите пункт "Settings".

В правой панели в самом низу найдите раздел "Developer settings"

Выберите раздел "Fine graned tokens" и нажмите кнопку "Generate new token".

Укажите название токена и время его действия.

В разделе настроек доступа к репозиторию укажите тот репозиторий, к которому необходимо предоставить доступ с этим токеном

В разделе разрешений "Repository permissions" найдите строку "Contents" и установите для неё уровень доступа "Read only"

После создания скопируйте значение токена

Добавьте имя пользователя и значение токена в начало адреса репозитория.

ETL_BLOCKS_REPOSITORY=https://akvarats:github_pat_11AAA*******aeGXy@github.com/akvarats/etl_blocks.git@master

GitLab

Скопируйте https-адрес из настроек вашего репозитория.

Вставьте это значение в переменную ETL_BLOCKS_REPOSITORY .env файла и укажите в конце адреса через @ целевую ветку репозитория.

ETL_BLOCKS_REPOSITORY=https://gitlab.example.com/akvarats/etl_blocks.git@master

Откройте страницу настроек вашего аккаунта.

Далее выберите раздел "Access Tokens"

В открывшемся разделе укажите название токена, срок его действия, отметьте разрешение на чтение репозиториев read_repository и нажмите "Generate personal access token".

Скопируйте значение токена.

Добавьте имя пользователя и значение токена в начало адреса репозитория.

ETL_BLOCKS_REPOSITORY=https://akvarats:glpat-fGy**************ma6@gitlab.example.ru/akvarats/etl_blocks.git@master

Gitea

Скопируйте https-адрес из настроек вашего репозитория.

Вставьте это значение в переменную ETL_BLOCKS_REPOSITORY .env файла и укажите в конце адреса через @ целевую ветку репозитория.

ETL_BLOCKS_REPOSITORY=https://gitea.example.ru/akvarats/etl_blocks.git@master

На момент написания документации Gitea не поддерживает доступ к исходному коду из приватного (непубличного) репозитория по токенам, поэтому для корректной авторизации необходимо использовать basic-auth. Для этого, вставьте в начало адреса логин и пароль вашего пользователя.

ETL_BLOCKS_REPOSITORY=https://akvarats:Zf*******jh@gitea.example.ru/akvarats/etl_blocks.git@master

GitVerse

Российская git-платформа от Сбербанка, официальный сайт.

Скопируйте https-адрес из настроек вашего репозитория.

Вставьте это значение в переменную ETL_BLOCKS_REPOSITORY .env файла и укажите в конце адреса через @ целевую ветку репозитория.

ETL_BLOCKS_REPOSITORY=https://gitverse.ru/akvarats/etl_blocks.git@master

Откройте настройки вашего аккаунта.

Зайдите в раздел "Управление токенами". Укажите название токена и отметьте, что у него будет доступ к репозиториям.

Скопируйте значение созданного токена.

Добавьте значение токена в начало адреса репозитория.

ETL_BLOCKS_REPOSITORY=https://2f9c8***********d71a6@gitverse.ru/akvarats/etl_blocks.git@master

GitFlic

Российская платформа для работы с кодом, официальный сайт.

Скопируйте https-адрес из настроек вашего репозитория.

Вставьте это значение в переменную ETL_BLOCKS_REPOSITORY .env файла и укажите в конце адреса через @ целевую ветку репозитория.

ETL_BLOCKS_REPOSITORY=https://gitflic.ru/project/akvarats/etl_blocks.git@master

На момент написания документации GitFlic не поддерживает доступ к исходному коду из приватного (непубличного) репозитория по токенам, поэтому для корректной авторизации необходимо использовать basic-auth. Для этого, вставьте в начало адреса логин и пароль вашего пользователя.

ETL_BLOCKS_REPOSITORY=https://akvarats:7Px*****!8h@gitflic.ru/project/akvarats/etl_blocks.git@master