Skip to content

Ad-Ok/yougile-api-scripts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Yougile API Scripts

Набор скриптов для работы с Yougile API v2.0

Установка

  1. Создайте виртуальное окружение:
python3 -m venv venv
source venv/bin/activate
  1. Установите зависимости:
pip install -r requirements.txt
  1. Настройте переменные окружения:
cp .env.example .env
# Отредактируйте .env файл, добавив ТОЛЬКО логин и пароль:
# YOUGILE_LOGIN=your_email@example.com
# YOUGILE_PASSWORD=your_password
# 
# YOUGILE_COMPANY_ID и YOUGILE_API_KEY заполнятся автоматически при запуске auth.py

Использование

1. Авторизация и получение API ключа

python auth.py

Этот скрипт:

  • Получает список компаний по логину/паролю
  • Позволяет выбрать компанию (или использует ID из .env)
  • Создаёт API ключ для выбранной компании
  • Автоматически сохраняет YOUGILE_COMPANY_ID и YOUGILE_API_KEY в .env файл

Примечание: Сначала укажите в .env только YOUGILE_LOGIN и YOUGILE_PASSWORD, остальное заполнится автоматически!

1b. Настройка рабочего контекста (рекомендуется)

После авторизации установите текущий проект и доску для удобной работы:

# Интерактивная настройка - самый простой способ
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 файл
  • При переключении проекта доска автоматически сбрасывается

2. Работа с досками

# Получить список досок
python boards.py list

# Создать новую доску
python boards.py create "Название доски" --project-id <id>

# Получить информацию о доске
python boards.py get <board-id>

3. Работа с задачами

# Получить список задач
python tasks.py list

# Создать задачу
python tasks.py create "Название задачи" --column-id <id>

# Обновить задачу
python tasks.py update <task-id> --title "Новое название"

4. Просмотр структуры проекта

# Показать полную структуру проекта (доски, колонки, задачи)
python show_structure.py <project-id>

Примечание: API Yougile не предоставляет информацию о дате последнего изменения проектов/досок/задач, только дату создания.

5. Очистка доски

# Архивировать все задачи с доски (безопасно, можно восстановить)
python clear_board.py

# Удалить все задачи с доски (необратимо!)
python clear_board.py --delete

# Без подтверждения (для автоматизации)
python clear_board.py --yes

Примечание: Требует установленный контекст (текущая доска). По умолчанию архивирует задачи, что безопаснее удаления.

6. Импорт задач из Markdown

# Импортировать все задачи из 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:

  • MarkdownHTML
  • `код`<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)

7. Обновление описаний существующих задач

# Обновить описания всех задач из 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 - Базовый клиент для работы с API
  • boards.py - Управление досками
  • tasks.py - Управление задачами
  • projects.py - Управление проектами
  • show_structure.py - Просмотр детальной структуры проекта
  • clear_board.py - Очистка доски (архивирование/удаление всех задач)
  • import_tasks.py - Импорт задач из Markdown с автоматическим форматированием
  • update_descriptions.py - Обновление описаний существующих задач
  • config.py - Конфигурация и утилиты для работы с контекстом
  • test_*.py - Тесты (57 тестов, 100% покрытие основных функций)

API Documentation

https://yougile.com/api

About

set of rest-api helpers for ai

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages