Metadata-Version: 2.1
Name: gitlab-env
Version: 0.2.1
Summary: Tool to get/set variables for given Gitlab project
Author: Eugene Aryapov
Author-email: e.aryapov@oom.ag
Requires-Python: >=3.8
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Dist: GitPython (==3.1.35)
Requires-Dist: python-gitlab (==3.15.0)
Requires-Dist: pyyaml (>=6.0.2,<7.0.0)
Description-Content-Type: text/markdown

# gitlab-env

## Описание
Репозиторий предназначен для разработки скрипта` gitlab-ci-env.py`, позволяющий генерировать файл с `CI` переменными полученными из проекта в `gitlab`, а также загружать переменные из файла в `CI` переменные проекта.

## Работа со скриптом

Перед использованием скрипта необходимо:
- перейти в каталог с репозиторием проекта
- экспортировать `GITLAB_TOKEN` с правами `read_api` (только чтение переменных) или `api` (чтение и изменение переменных)

### Установка зависимостей

`pip install gitlab-env` - установка пакетa со скриптом.

`export GITLAB_TOKEN=[YOUR_TOKEN]` - экспорт переменной для доступа к проекту в `gitlab`.

### Получение переменных из проекта в `gitlab`
```
gitlab-env --get
```
Выводит переменные из проекта в `stdout`, разделенные по `Environment scope`.

### Получение переменных из проекта в `gitlab` и запись их в файл
```
gitlab-env --get [-f path/to/output/file]
```
Формирует файл `gitlab_variables.txt` (по умолчанию) или файл с именем указанным после аргумента `-f`, содержащий `CI` переменные проекта, разделенные по `Environment scope`.

### Обновление переменных `CI` в проекте `gitlab`
```
gitlab-env.py --push [--force] [-f path/to/output/file]
```
Парсит файл `gitlab_variables.txt` (по умолчанию) или файл с именем указанным после аргумента `-f/--file`, затем создает новые переменные и обновляет измененные, а также удаляет переменные ТОЛЬКО для указанн(ых/ого) в файле `environment_scope`.

### `--force` флаг
```
gitlab-env.py --push --force [-f path/to/output/file]
```
Если указан ключ `--force`, создает, обновляет переменные и удаляет из проекта, если их нет в файле для ВСЕХ существующих в проекте `environment_scope`.

### `--l/list` флаг
Выводит имена `Environment scopes` в `stdout` 

### `-e/envs` ключ
Ключу передаются имена `Environment scopes` через пробел для ограничения вывода переменных в файл или в `stdout` только этими `Environment scopes`.
