Набор скриптов для работы с Yougile API v2.0
- Создайте виртуальное окружение:
python3 -m venv venv
source venv/bin/activate- Установите зависимости:
pip install -r requirements.txt- Настройте переменные окружения:
cp .env.example .env
# Отредактируйте .env файл, добавив ТОЛЬКО логин и пароль:
# YOUGILE_LOGIN=your_email@example.com
# YOUGILE_PASSWORD=your_password
#
# YOUGILE_COMPANY_ID и YOUGILE_API_KEY заполнятся автоматически при запуске auth.pypython auth.pyЭтот скрипт:
- Получает список компаний по логину/паролю
- Позволяет выбрать компанию (или использует ID из .env)
- Создаёт API ключ для выбранной компании
- Автоматически сохраняет YOUGILE_COMPANY_ID и YOUGILE_API_KEY в .env файл
Примечание: Сначала укажите в .env только YOUGILE_LOGIN и YOUGILE_PASSWORD, остальное заполнится автоматически!
После авторизации установите текущий проект и доску для удобной работы:
# Интерактивная настройка - самый простой способ
python context.py setup
# Или установить вручную по названию (поддерживается частичное совпадение)
python context.py project "Maslovka"
python context.py board "PHASE 1"
# Установить по ID
python context.py project --id 2f207cde-d33e-4e42-9b9e-d5173041edde
python context.py board --id abc123...
# Посмотреть текущий контекст
python context.py showЗачем нужен контекст?
- Не нужно указывать проект/доску при каждой операции
- Удобно для автоматизации создания задач
- Контекст сохраняется между сеансами работы
Как это работает:
- Текущий проект хранится в
YOUGILE_CURRENT_PROJECT_ID - Текущая доска хранится в
YOUGILE_CURRENT_BOARD_ID - Значения сохраняются в
.envфайл - При переключении проекта доска автоматически сбрасывается
# Получить список досок
python boards.py list
# Создать новую доску
python boards.py create "Название доски" --project-id <id>
# Получить информацию о доске
python boards.py get <board-id># Получить список задач
python tasks.py list
# Создать задачу
python tasks.py create "Название задачи" --column-id <id>
# Обновить задачу
python tasks.py update <task-id> --title "Новое название"# Показать полную структуру проекта (доски, колонки, задачи)
python show_structure.py <project-id>Примечание: API Yougile не предоставляет информацию о дате последнего изменения проектов/досок/задач, только дату создания.
# Архивировать все задачи с доски (безопасно, можно восстановить)
python clear_board.py
# Удалить все задачи с доски (необратимо!)
python clear_board.py --delete
# Без подтверждения (для автоматизации)
python clear_board.py --yesПримечание: Требует установленный контекст (текущая доска). По умолчанию архивирует задачи, что безопаснее удаления.
# Импортировать все задачи из markdown файла
python import_tasks.py tasks.md
# Ограничить количество создаваемых задач
python import_tasks.py tasks.md --limit 5
# Начать с определенной задачи (пропустить первые N)
python import_tasks.py tasks.md --start-from 3
# Указать задержку между запросами (по умолчанию 1.5с)
python import_tasks.py tasks.md --delay 2
# Указать колонку по имени
python import_tasks.py tasks.md --column "In Progress"
# Пробный запуск (показать что будет создано, без реального создания)
python import_tasks.py tasks.md --dry-runФормат Markdown файла:
## Название задачи 1
Описание задачи с поддержкой **форматирования**:
- Маркированные списки
- Нумерованные списки (1., 2., 3.)
- **Жирный текст**
- Блоки кода
Блоки кода:def example(): return "Hello"
### Название подзадачи 1.1
Описание подзадачи
### Название подзадачи 1.2
Описание подзадачи
## Название задачи 2
Описание второй задачи
### Подзадача 2.1
Описание
Автоматическое форматирование:
Скрипт автоматически конвертирует Markdown в HTML для корректного отображения в Yougile:
- Markdown → HTML
`код`→<code>```блок кода```→<div style="background: #f6f8fa; padding: 12px; ...">код</div>**текст**→<strong>текст</strong>- список→<ul><li>список</li></ul>1. список→<ol><li>список</li></ol>- Переносы строк →
<br>
Примечание:
- Требует установленный контекст (текущая доска)
- Задачи создаются в колонке "Backlog" или указанной через
--column - Подзадачи автоматически привязываются к родительской задаче
- Между запросами соблюдается задержка для избежания rate limit (50 req/min)
# Обновить описания всех задач из markdown файла
python update_descriptions.py tasks.md
# Обновить только первые N задач
python update_descriptions.py tasks.md --limit 3Как работает:
- Находит задачи на доске по названию (из markdown)
- Обновляет их описания с автоматической конвертацией Markdown → HTML
- Также обновляет описания подзадач
- Безопасно: только обновление описаний, не меняет другие поля
auth.py- Авторизация и управление API ключамиcontext.py- Управление рабочим контекстом (текущий проект/доска)yougile_client.py- Базовый клиент для работы с APIboards.py- Управление доскамиtasks.py- Управление задачамиprojects.py- Управление проектамиshow_structure.py- Просмотр детальной структуры проектаclear_board.py- Очистка доски (архивирование/удаление всех задач)import_tasks.py- Импорт задач из Markdown с автоматическим форматированиемupdate_descriptions.py- Обновление описаний существующих задачconfig.py- Конфигурация и утилиты для работы с контекстомtest_*.py- Тесты (57 тестов, 100% покрытие основных функций)