GitHub
Renta выгружает данные GitHub в ваше хранилище: коммиты, задачи, пул-реквесты, релизы, запуски GitHub Actions и другие объекты репозиториев. Полный список есть в разделе «Тип отчёта» ниже.
Репозитории и набор полей каждого объекта вы выбираете сами.
Аутентификация
Renta подключается к GitHub через OAuth. Вы входите в GitHub, подтверждаете запрошенный доступ и возвращаетесь в Renta. Создавать персональный токен не нужно.
На экране подтверждения GitHub запрашивает доступ, который покрывает всё, что Renta умеет выгружать:
- Репозитории.
Код, ветки, коммиты, задачи и пул-реквесты, включая приватные репозитории. - GitHub Actions.
Воркфлоу, их запуски и задачи. - Организация.
Команды и их участники. - Профиль.
Логин и почта подключаемого аккаунта.
У доступа к репозиториям и воркфлоу в GitHub нет варианта только для чтения, поэтому на экране подтверждения упоминается запись. Renta только читает данные.
Пайплайн видит те же репозитории, что и авторизованный аккаунт. Если организация ограничивает OAuth-приложения, её репозитории появятся в Renta только после того, как владелец одобрит приложение в настройках организации Third-party Access.
Подключение источника GitHub
Выполните эти шаги, чтобы добавить GitHub как источник в Renta, авторизовав доступ к аккаунту GitHub.
- Перейдите в раздел Connections > Catalog в левом меню.
- Откройте категорию Developer tools и нажмите на карточку GitHub.

Нажмите Log in to your GitHub account. Renta перенаправит вас в GitHub, где нужно войти в аккаунт и подтвердить запрошенный доступ. Если в браузере уже есть авторизованная сессия GitHub, подтверждение произойдёт сразу и вы вернётесь в Renta.

Завершите настройку:
- Source name.
Укажите имя источника данных. Оно используется только в интерфейсе Renta. - Access granted.
Проверьте, что аккаунт подключён. На карточке указан логин авторизованного аккаунта GitHub.
Нажмите Save, чтобы завершить.
Если авторизация изменится, например вы отзовёте приложение в GitHub, нажмите Re-authorize на этом источнике. Подключение обновится на месте, и все построенные на нём пайплайны продолжат работать.

Новый источник появится в списке Sources в статусе Active. Теперь его можно использовать в пайплайнах.

Создание пайплайна
Когда источник подключён, создайте пайплайн, чтобы си нхронизировать данные GitHub с вашим назначением.
Создание пайплайна GitHub
Свяжите источник GitHub с назначением и настройте пайплайн.
В левом меню нажмите New pipeline. На шаге Source выберите GitHub в блоке Already connected и нажмите Next step.

Выберите созданное ранее подключение GitHub и нажмите Next step. На карточке указан аккаунт подключения и дата его добавления.

На шаге Destination выберите назначение (например, Google BigQuery) и нажмите Next step.

Выберите подключение назначения, куда загружать данные, и нажмите Next step. На карточке указаны датасет и проект, в которые попадут данные.

Настройка пайплайна
На последнем шаге выберите, какие данные GitHub выгружать, из каких репозиториев и как часто Renta будет их загружать.
Тип интеграции
Выберите, как настроить пайплайн: собрать отчёт самостоятельно или взять готовый шаблон.

| Тип интеграции | Описание |
|---|---|
| Custom report | Вы сами выбираете тип отчёта, репозитории, поля и настройки загрузки. Разделы ниже описывают этот путь. |
| Pre-built templates | Набор типов отчётов, в котором уже выбраны все поля. Вы указываете только шаблон и репозитории. |
Шаблон создаёт по одному пайплайну на каждый входящий в него тип отчёта, поэтому одно нажатие Create pipeline может дать больше десятка пайплайнов. Renta предлагает пять шаблонов: базовые объекты репозитория, задачи и пул-реквесты, CI/CD, организация и все объекты.
Тип отчёта
Выберите, какой объект GitHub выгружает пайплайн. Один пайплайн загружает один тип отчёта.

| Тип отчёта | Описание |
|---|---|
| Repositories | Репозитории, доступные подключённому аккаунту: имя, видимость, описание, язык, ветка по умолчанию, лицензия, права, темы и счётчики звёзд, наблюдателей, форков и открытых задач. |
| Branches | Ветки каждого репозитория с SHA последнего коммита и признаком защиты. |
| Tags | Теги с SHA помеченного коммита и ссылками на архивы. |
| Commits | История коммитов ветки по умолчанию: сообщение, SHA дерева, автор и коммиттер с именем, почтой и датой, проверка подписи и родительские коммиты. |
| Commit Comments | Комментарии к коммитам: текст, автор, путь к файлу и строка, на которую указывает комментарий, счётчики реакций. |
| Commit Check Runs | Проверки CI для коммитов: статус, результат, время начала и завершения, сводка вывода, набор проверок и приложение, которое их отправило. |
| Issues | Задачи с их статусом, заголовком, текстом, автором, исполнителем, вехой, метками, реакциями и датой закрытия. GitHub считает пул-реквест разновидностью задачи, поэтому пул-реквесты тоже попадают в этот отчёт. |
| Issue Comments | Комментарии к задачам и пул-реквестам: текст, автор, роль автора в репозитории и счётчики реакций. |
| Issue Events | Журнал изменений задач: какое событие произошло, кто его выполнил, а также метка, исполнитель, веха, переименование или запрос ревью, к которым оно относится. |
| Issue Milestones | Вехи с их статусом, описанием, датами дедлайна и закрытия, создателем и счётчиками открытых и закрытых задач. |
| Issue Labels | Определения меток репозитория: имя, цвет, описание и признак метки по умолчанию. |
| Pull Requests | Пул-реквесты с их статусом, заголовком, текстом, автором, исполнителем, вехой, метками, запрошенными ревьюерами и командами, ветками head и base, датами создания, изменения, закрытия и слияния. |
| Pull Request Commits | Коммиты, входящие в каждый пул-реквест, с теми же полями автора, коммиттера и проверки подписи, что и история коммитов. |
| Reviews | Ревью пул-реквестов: статус, текст, автор и время отправки. |
| Review Comments | Комментарии внутри ревью: текст, путь к файлу, фрагмент диффа, строка и сторона диффа, ревью и коммит, к которым относится комментарий, счётчики реакций. |
| Pull Request Stats | Пул-реквесты вместе со статистикой диффа, которую GitHub отдаёт по каждому пул-реквесту: коммиты, добавленные и удалённые строки, изменённые файлы, счётчики комментариев, состояние слияния, репозитории head и base. |
| Releases | Релизы с тегом, названием, текстом, признаками черновика и предрелиза, автором, датой публикации, приложенными файлами и реакциями. |
| Deployments | Деплои с окружением, ссылкой и SHA, задачей, описанием, создателем и полезной нагрузкой деплоя. |
| Events | События активности репозитория: тип, инициатор, организация и полезная нагрузка события. |
| Workflows | Описания воркфлоу GitHub Actions: имя, путь, состояние, даты создания и изменения. |
| Workflow Runs | Запуски воркфлоу GitHub Actions: статус, результат, событие и инициатор запуска, номер запуска и попытки, ветка и коммит head, связанные пул-реквесты. |
| Workflow Jobs | Задачи запусков воркфлоу: статус, результат, раннер, тайминги, запрошенные метки раннера и шаги, которые прошла задача. |
| Collaborators | Пользователи с доступом к репозиторию, название их роли и признаки прав pull, triage, push, maintain и admin. |
| Assignees | Пользователи, которых можно назначить на задачи и пул-реквесты: логин, тип и ссылка на профиль. |
| Teams | Команды организации, которой принадлежат выбранные репозитории: имя, слаг, описание, приватность, права и родительская команда. |
| Team Members | Состав каждой команды этой организации: логин, тип и ссылка на профиль. |
| Projects | Классические доски проектов: номер, имя, текст, состояние, видимость и создатель. |
| Project Columns | Колонки классических досок проектов с их именем и проектом, которому они принадлежат. |
| Project Cards | Карточки классических досок проектов: заметка, признак архива, создатель и ссылки на колонку и содержимое карточки. |
| Stargazers | Пользователи, поставившие репозиторию звезду, и время каждой звезды. |
Репозитории
Выберите репозитории, которые читает пайпла йн.

В списке перечислены все репозитории, доступные авторизованному аккаунту, под названием каждого указано имя вида owner/repo. Найдите репозиторий по названию через поиск или нажмите Select All. Вкладка Selected показывает выбранное, а список Selected Repositories под выбором позволяет убрать лишнее.
У типа отчёта Repositories выбора репозиториев нет: он всегда возвращает все репозитории, доступные аккаунту.
Teams и Team Members относятся к организации. Renta определяет организацию по владельцу каждого выбранного репозитория, поэтому репозиторий личного аккаунта ничего не даёт этим двум отчётам.
Параметры
Выберите поля GitHub, которые попадут в таблицу назначения. Схема датасета определяется выбранными здесь параметрами.

В каждой строке указано имя поля, а под ним имя колонки в таблице назначения: Node ID превраща ется в колонку node_id. Найдите поле по названию через поиск, проверьте выбор на вкладке Selected и убирайте лишнее из списка Selected Parameters под выбором.
Набор доступных полей зависит от типа отчёта. Renta раскладывает объекты, вложенные GitHub внутрь записи, поэтому автор коммита приходит как Author Login, Author ID, Author Type и Author HTML URL, а веха пул-реквеста как Milestone ID, Milestone Title, Milestone State и Milestone Due On.
Поля со списком объектов загружаются вложенными записями.
| Тип отчёта | Поля, которые загружаются вложенными записями |
|---|---|
| Commits, Pull Request Commits | Parents |
| Issues | Labels, Assignees |
| Pull Requests, Pull Request Stats | Labels, Assignees, Requested Reviewers, Requested Teams |
| Releases | Assets |
| Commit Check Runs, Workflow Runs | Pull Requests |
| Workflow Jobs | Steps |
Поля, форма которых зависит от самой записи, приходят в виде JSON. Это Payload в Events и Deployments, Reactions везде, где GitHub их отдаёт, Auto Merge, Head Repo и Base Repo в отчётах по пул-реквестам, Repository, Head Repository и Referenced Workflows в Workflow Runs, а также поля сущностей в Issue Events: Label, Assignee, Milestone, Rename.
Три обязательных поля Renta отмечает заранее и блокирует в списке: ключ записи (ID, у Commits это SHA, а у Stargazers это User ID), дату изменения (Updated At, Created At и похожие) и дату с точностью до дня, по которой партиционируется таблица назначения (Updated Date, Created Date и похожие). Типы отчётов без даты загружаются целиком, обязательных полей у них нет.
Имя таблицы
Задайте имя пайплайна и таблицы назначения.

- Integration name.
Имя пайплайна. Оно используется только в интерфейсе Renta. - Table name.
Имя таблицы назначения. Можно оставить автоматически сгенерированное имя или задать своё.
Диапазон дат
Задайте исторический период загрузки. По умолчанию Date start равен первому дню текущего месяца, а Date end установлен в Today.

- Date start.
Первая дата периода выгрузки. - Date end.
Последняя дата периода выгрузки. Можно выбрать фиксированную дату или относительный вариант, например Today.
Renta оставляет только записи, дата которых попадает в диапазон. Репозиторий, который никто не менял внутри диапазона, не попадёт в таблицу Repositories, как и пул-реквест, которого не касались с прошлого года. Задайте Date start достаточно ранним для нужной вам истории.
У Branches, Tags, Issue Labels, Pull Request Commits, Collaborators, Assignees, Teams и Team Members даты нет, поэтому диапазон они игнорируют и загружаются целиком.
Период перезаписи
Период перезаписи определяет, сколько последних дней Renta перезагружает при каждом запуске. Renta заранее отмечает параметр с датой, по которой партиционируется тип отчёта, поэтому настройка видна у всех типов отчётов из таблицы ниже.

| Параметр с датой | Типы отчётов |
|---|---|
| Updated At | Repositories, Commit Comments, Issues, Issue Comments, Issue Milestones, Pull Requests, Review Comments, Pull Request Stats, Deployments, Workflows, Projects, Project Columns, Project Cards |
| Created At | Issue Events, Releases, Events, Workflow Runs |
| Commit Author Date | Commits |
| Completed At | Commit Check Runs |
| Started At | Workflow Jobs |
| Submitted At | Reviews |
| Starred At | Stargazers |
При каждом запуске Renta заново запрашивает данные начиная с даты последнего успешного запуска минус период перезаписи. Затронутые дни удаляются из таблицы назначения и вставляются заново, а более старые данные остаются нетронутыми.
Варианты: от Without overwrite data до Overwrite all data. По умолчанию выбран Last 1 day.
На Google BigQuery и ClickHouse Renta сама отслеживает точку синхронизации и обновляет записи по идентификатору, поэтому там период перезаписи не меняет загружаемое окно. Подробности в разделе «Стратегия синхронизации» ниже.
Расписание
Выберите, как часто запускается пайплайн.

| Тип расписания | Описание |
|---|---|
| Manual | Пайплайн запускается только вручную через интерфейс или по API. |
| Daily | Пайплайн запускается раз в сутки в указанное время обновления. |
| Interval | Пайплайн запускается через заданные интервалы времени. |
| Cron Expression | Пайплайн запускается по расписанию, заданному cron-выражением. |
Для расписания Daily укажите Update time (точное время запуска), затем нажмите Create pipeline.
