/
triv
/
GigaDocGen
Обзор
Документация
Войти
/
triv
/
GigaDocGen
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
example_usage.py
226 строк
8 KB
triv
rewrite requerements and autosripts
23 окт 2025, 12:25
23 окт 2025, 12:25
73c9ea6
Код
Авторство
О чём код?
#!/usr/bin/env python3 """ Пример использования Jenkins Documentation Generator Этот скрипт демонстрирует различные способы использования генератора документации. """ import os import sys import json from pathlib import Path # Добавление текущей директории в путь sys.path.append(os.path.dirname(os.path.abspath(__file__))) from jenkins_doc_generator import JenkinsDocGenerator from utils import FileProcessor, GigaChatClient def example_basic_usage(): """Базовый пример использования""" print("=== Базовый пример использования ===") # Инициализация генератора generator = JenkinsDocGenerator("config.json") # Обработка репозитория repo_path = "/path/to/your/jenkins/repo" success = generator.process_repository(repo_path) if success: print("✅ Обработка завершена успешно") else: print("❌ Ошибка при обработке") def example_custom_config(): """Пример с пользовательской конфигурацией""" print("=== Пример с пользовательской конфигурацией ===") # Создание пользовательской конфигурации custom_config = { "gigachat": { "credentials": "your_custom_key", "scope": "GIGACHAT_API_PERS", "model": "GigaChat", "verify_ssl_certs": False }, "processing": { "max_context_size": 3000, "chunk_size": 800, "chunk_overlap": 150, "output_directory": "custom_docs", "supported_extensions": [".groovy", ".jenkinsfile", ".pipeline"] }, "directories": [ "custom/pipelines", "deployment/scripts" ] } # Сохранение конфигурации with open("custom_config.json", "w") as f: json.dump(custom_config, f, indent=2) # Использование пользовательской конфигурации generator = JenkinsDocGenerator("custom_config.json") # ... остальная логика def example_single_file_processing(): """Пример обработки одного файла""" print("=== Обработка одного файла ===") generator = JenkinsDocGenerator("config.json") # Путь к конкретному файлу file_path = Path("/path/to/specific/pipeline.groovy") output_dir = Path("generated_docs") # Обработка одного файла success = generator.process_file(file_path, output_dir) if success: print(f"✅ Файл {file_path} обработан успешно") else: print(f"❌ Ошибка обработки файла {file_path}") def example_test_connection(): """Пример тестирования соединения""" print("=== Тестирование соединения ===") generator = JenkinsDocGenerator("config.json") # Тестирование соединения с GigaChat API if generator.gigachat_client.test_connection(): print("✅ Соединение с GigaChat API установлено") # Получение статистики кэша cache_stats = generator.gigachat_client.get_cache_stats() print(f"Статистика кэша: {cache_stats}") else: print("❌ Ошибка соединения с GigaChat API") def example_batch_processing(): """Пример пакетной обработки""" print("=== Пакетная обработка ===") generator = JenkinsDocGenerator("config.json") # Список директорий для обработки directories = [ "/path/to/repo1", "/path/to/repo2", "/path/to/repo3" ] for repo_path in directories: print(f"Обработка репозитория: {repo_path}") success = generator.process_repository(repo_path) if success: print(f"✅ {repo_path} обработан успешно") else: print(f"❌ Ошибка обработки {repo_path}") def example_custom_prompts(): """Пример с пользовательскими промптами""" print("=== Пользовательские промпты ===") # Создание пользовательского промпта custom_prompt = """ Проанализируй Jenkins pipeline и создай документацию в следующем формате: 1. **Назначение**: Краткое описание 2. **Параметры**: Список всех параметров 3. **Этапы**: Описание каждого stage 4. **Результаты**: Что генерирует pipeline Скрипт: ```groovy {script_content} ``` """ # Сохранение пользовательского промпта prompts_dir = Path("prompts") prompts_dir.mkdir(exist_ok=True) with open(prompts_dir / "custom_prompt.txt", "w", encoding="utf-8") as f: f.write(custom_prompt) print("Пользовательский промпт сохранен в prompts/custom_prompt.txt") def example_error_handling(): """Пример обработки ошибок""" print("=== Обработка ошибок ===") try: generator = JenkinsDocGenerator("config.json") # Попытка обработки несуществующего репозитория success = generator.process_repository("/nonexistent/path") if not success: print("Ожидаемая ошибка: путь не существует") except Exception as e: print(f"Перехвачена ошибка: {e}") def example_statistics(): """Пример работы со статистикой""" print("=== Статистика обработки ===") generator = JenkinsDocGenerator("config.json") # Обработка репозитория success = generator.process_repository("/path/to/repo") if success: # Вывод статистики stats = generator.stats print(f"Всего файлов: {stats['total_files']}") print(f"Обработано: {stats['processed_files']}") print(f"Пропущено: {stats['skipped_files']}") print(f"Ошибок: {stats['error_files']}") # Статистика кэша cache_stats = generator.gigachat_client.get_cache_stats() print(f"Эффективность кэша: {cache_stats['hit_rate']:.2%}") def main(): """Запуск всех примеров""" print("Jenkins Documentation Generator - Примеры использования") print("=" * 60) examples = [ example_basic_usage, example_custom_config, example_single_file_processing, example_test_connection, example_batch_processing, example_custom_prompts, example_error_handling, example_statistics ] for i, example_func in enumerate(examples, 1): print(f"\n{i}. {example_func.__name__}") try: example_func() except Exception as e: print(f"Ошибка в примере {example_func.__name__}: {e}") print("-" * 40) print("\nВсе примеры выполнены!") if __name__ == "__main__": main()