/
ump-team
/
ump-infra
Обзор
Документация
Войти
/
ump-team
/
ump-infra
Код
Запросы
1
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
dev/test
scripts/get_step_title.py
60 строк
2 KB
Dmitry Kochenov
init v0.0.2
19 июл 2026, 19:11
19 июл 2026, 19:11
13d6d0b
Код
Авторство
О чём код?
#!/usr/bin/env python3 """ Получить title шага из YAML-планов по step_id. Используется в Makefile target tag-create для формирования annotated git tag. Запуск: python3 scripts/get_step_title.py <step_id> python3 scripts/get_step_title.py 1.5 Exit codes: 0 — title найден и выведен (или шаг не найден, выведена пустая строка) 1 — некорректный вызов (нет аргумента) """ from __future__ import annotations import sys from pathlib import Path import yaml # Единая точка правды для BASE-резолвинга. try: from ump.paths import detect_base except ImportError: _here = Path(__file__).resolve().parent sys.path.insert(0, str(_here.parent)) from ump.paths import detect_base # type: ignore[no-redef] BASE = detect_base(__file__) PLANS_DIR = BASE / 'plans' def find_step_title(step_id: str) -> str: """Найти title шага по step_id в YAML-планах.""" for yfile in sorted(PLANS_DIR.glob('*.yaml')): if yfile.name.startswith('99'): continue try: data = yaml.safe_load(yfile.read_text(encoding='utf-8')) except Exception: continue if not isinstance(data, dict): continue for step in data.get('steps', []): if step.get('id') == step_id: return step.get('title', '') return '' def main() -> int: if len(sys.argv) < 2: print('Usage: python3 scripts/get_step_title.py <step_id>', file=sys.stderr) return 1 print(find_step_title(sys.argv[1])) return 0 if __name__ == '__main__': sys.exit(main())