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');