SLAtech Vantage забирает из GitHub две вещи: коммиты репозитория, которые привязываются к проекту, и упавшие запуски GitHub Actions, которые попадают в поток ошибок. Интеграция работает только на чтение и использует персональный токен доступа. Если токен fine-grained, SLAtech Vantage знает срок его действия и предупреждает за две недели.
Что забирается из каждого коммита
Коммиты забираются каждый час, и только новые: коммит не меняется, поэтому уже сохранённый повторно не забирается. Для каждого коммита хранятся:
- идентификатор (sha), сообщение, автор и дата;
- список изменённых файлов с числом добавленных и удалённых строк;
- само изменение в каждом файле, если GitHub его отдаёт. Если изменение слишком большое, GitHub его не отдаёт, и тогда его нет.
Коммит привязан к проекту и репозиторию, а не к конкретной задаче. К проекту можно подключить несколько репозиториев, например фронтенд и бэкенд.
Что коммиты делают внутри SLAtech Vantage
Два применения, и оба экономят время на поиск:
- Рядом с ошибкой. Когда по стеку ошибки удаётся определить класс, в котором она произошла, экран ошибки показывает последние коммиты, затронувшие файл этого класса. Ответ на вопрос "что там недавно менялось" находится рядом с ошибкой.
- В базе знаний. Сообщения коммитов и их файлы попадают в поиск, поэтому об изменении, описанном по-английски, можно спросить на иврите. Перед отправкой на перевод личные идентификаторы в тексте маскируются.
Сопоставление по имени класса грубое: два одноимённых класса в разных местах могут показать посторонний коммит.
Упавшие запуски GitHub Actions
Это отдельная интеграция, не связанная с коммитами, и ей нужен токен с правом чтения Actions. Забираются только запуски, которые завершились ошибкой, отменой или превышением времени. Успешный запуск не сохраняется, а идущий ждёт своего итога.
- Каждый такой запуск попадает в поток ошибок проекта, рядом с ошибками сервера.
- Группировка идёт по репозиторию, имени сценария, итогу и ветке. "Deploy упал четырнадцатый раз за неделю" выглядит как одна группа со счётчиком, а не как четырнадцать строк.
- Запуск, отменённый вручную, записывается как шум, а не как ошибка: его остановили намеренно.
Что видит клиент
Клиент не видит ни списка коммитов, ни потока ошибок. В портале у него одна плитка: сколько групп настоящих ошибок активно сейчас, или что всё в порядке.
На вопрос, который клиент задаёт в чате портала, может прийти ответ, опирающийся на сообщение коммита его проекта, но без ссылки на репозиторий.
Упавший запуск CI тоже не показывается ему отдельной строкой. Если из него открыли задачу, задача доходит до клиента как любая другая.
Как подключить интеграцию и когда истекает токен
Форма подключения запрашивает репозиторий в формате owner/repo и персональный токен доступа (PAT). Токен хранится в зашифрованном виде и больше не показывается. При проверке сразу подтягиваются последние коммиты, и это подтверждает доступ на чтение к самому репозиторию. Экран источников проекта сейчас открыт только оператору системы, поэтому подключение делается через нас.
- С fine-grained токеном GitHub добавляет в ответы дату истечения. За две недели до этого экран подключений показывает предупреждение, а оператору системы уходит письмо.
- Когда у GitHub заканчивается квота запросов, забор останавливается и в следующий раз продолжается с того же места, без потери коммитов.
- SLAtech Vantage не открывает issues, не комментирует и не пушит код.
Поддерживается и GitLab, включая собственный сервер: коммиты и, отдельной интеграцией, упавшие конвейеры GitLab CI. Bitbucket поддерживается только для коммитов, с именем пользователя и паролем приложения.
Частые вопросы
Какой токен GitHub нужен?
Привязываются ли коммиты к задачам?
Что происходит с упавшим запуском GitHub Actions?
Поддерживаются ли GitLab и Bitbucket?
Хотите видеть коммиты и упавшие запуски рядом с ошибками проекта? Можно начать с пробного периода.
Начать бесплатно