Паспорт источника
Определите instance/release GitLab, проект и pipeline ID. Pipeline описывает запуск CI, а не одну отдельную job или результат приложения. Состав API зависит от версии GitLab; сверяйте его с установленным релизом. Зафиксируйте способ запуска, доступные метаданные и время получения копии; для исторического вывода важна конкретная запись, а не текущий статус ветки.
Сбор и доступ
В разрешённом API-клиенте прочитайте pipeline по project/id без запуска новых действий. Сохраните source, ref, sha, user, status и временные границы при наличии. Разделяйте ID pipeline и его номера внутри проекта, если оба представлены. Для downstream/child-связей проверьте фактические связанные объекты; одно совпадение commit не даёт полной цепочки запуска.
Форма и пример
Пример source=push описывает источник данного запуска, ref=main — контекст ветки, sha — версию кода. user в метаданных помогает технической атрибуции, но не заменяет проверку учётных данных или человека. status=success относится к pipeline. Пример не содержит полного набора переменных, условий job или свидетельства успешного изменения производственной системы.
Хранение и сопоставление
Паспорт хранения должен указать доступность API-истории, удаление pipeline, сохранённые копии и связь с job/trace. Не храните секретные CI variables в аналитическом резюме. Для сравнения запусков фиксируйте разные ID даже при одном SHA и ref; одинаковый код не исключает различий во внешней среде, параметрах или составе выполняемых заданий.
Проверка наблюдаемости
Проверьте связь pipeline с job и runner, затем с целевыми системами deployment. Для вопроса «кто запустил» соедините source/user с доступной историей инициирующего события или автоматизации. Результат записывайте по звеньям: запуск найден, задания выполнены, изменение целевой платформы подтверждено либо не установлено. Не превращайте итоговый зелёный статус в универсальное доказательство работоспособности сервиса.
Ограничения и отсутствие данных
При недоступности проверьте project/id, права, время, удаление и доступную историю. Не ищите pipeline только по текущему имени ветки: оно могло измениться или относиться к другим запускам. Если метаданные есть, а trace нет, это отдельный пробел хранения. Отсутствие API-записи не доказывает, что целевая система не изменялась другим процессом вне CI.