Skip to content

GitHub App — Бот

Вот тут его можно начать делать GitHub App (бот) для автоматизации https://github.com/settings/apps

В рамках организации создается GitHub App (например, Uli Bot), который позволяет интегрировать различные репозитории и отслеживать метрики, события и задачи.


Преимущества GitHub App (бота) перед GitHub Actions и Webhook

GitHub App — это полноценное приложение, которое действует как пользователь с определенными правами доступа, но в рамках организации. Вот чем оно отличается от GitHub Actions и Webhook:

Функция GitHub App GitHub Actions Webhook
Масштабируемость Работает на уровне всей организации. Работает только в рамках одного репозитория. Работает только с выбранными событиями.
Доступ к репозиториям Может управлять множеством репозиториев. Ограничен одним репозиторием. Только для событий, которые настроены в вебхуке.
Автоматизация задач Может управлять пулл-реквестами, задачами, метками и комментариями. Осуществляет задачи только в рамках репозитория, без гибкости в управлении задачами. Только для уведомлений, не может изменять данные.
Интеграция с внешними сервисами Может интегрироваться с внешними сервисами через API и Webhooks. Через API, но только в рамках одного репозитория. Ограничена передачей данных во внешние системы.
Гибкость в настройке Очень гибкие права доступа и возможность настроить действия с несколькими репозиториями. Ограничена настройками в пределах репозитория. Ограничена только событиями, которые настроены в вебхуке.

Возможности GitHub App (бота)

GitHub App может выполнять многие задачи, которые доступны обычному пользователю: - Проставление меток на пулл-реквестах и задачах. - Добавление комментариев на пулл-реквестах, например, с приветствиями или уведомлениями. - Слияние пулл-реквестов после проверки условий (например, успешных тестов). - Изменение статусов задач, например, перевод задач в состояние "Done" при завершении работы над пулл-реквестом. - Автоматическое связывание PR с задачами в других системах, например, в Linear. - Подключение AI к боту

Пример работы с GitHub App

Ты можешь создать GitHub App с правами для чтения и изменения пулл-реквестов и задач. Например, с помощью API ты можешь создать скрипт для автоматического добавления меток к пулл-реквестам:

const octokit = new Octokit({
  auth: 'YOUR_BOT_ACCESS_TOKEN'
});

async function addLabelToPR(owner, repo, prNumber, label) {
  await octokit.rest.issues.addLabels({
    owner,
    repo,
    issue_number: prNumber,
    labels: [label],
  });
}

// Вызови эту функцию при нужных условиях
addLabelToPR('user', 'repo', 1, 'review-needed');