Рубрики
Uncategorized

Как расширить GitHub и улучшить ваш рабочий процесс с приложениями GitHub

Узнайте, как автоматизировать ваш рабочий процесс доставки DEV и программного обеспечения с помощью приложений GitHub. Теги с DEVOPS, AndervileDeyment, CI.

Вы когда-нибудь задавались вопросом, можете ли вы расширить GitHub для выполнения конкретных действий или использовать функции, которые отражают рабочий процесс вашей команды? Приложения GitHub могут сделать это для вас.

Github Apps Представлены приложения, которые дают вам доступ к API на GitHub, чтобы вы могли создавать интеграции с GitHub, благодаря преимуществам производительности, гибкости и снижению трения в вашем рабочем процессе. Они могут быть установлены непосредственно на организации и учетные записи пользователей и предоставлены доступ к конкретным репозиториям. Они приходят с гранулированными разрешениями и встроенными веб-кавками.

Чтобы улучшить ваш рабочий процесс, вы можете создать приложение GitHub, которое содержит несколько сценариев или целое приложение, а затем подключить это приложение для многих других инструментов. Например, вы можете подключить Github Apps к GitHub или Slack. Для Новый проект У нас есть приложение GitHub, которое управляет запросами на тягу. Когда PR создается, он проверяет, принял ли пользователь CLA проекта и добавляет метку, указывающую состояние этой проверки. Это делает несколько дополнительных валидаций до того, как PR может быть объединен.

Создание вашего первого приложения GitHub

Вы можете создавать приложения GitHub на разных языках программирования и зарегистрируйте их под свой личный счет или организацию. Я собираюсь показать вам, как построить приложение GitHub в течение 5 минут, используя Прободу App Framework. Прободу является основой для создания приложений GitHub в Node.js. Он направлен на устранение всех подобных нагружению, подобно получению и проверке веб-каучуков, и выполняя аутентификации на руках, поэтому вы можете сосредоточиться на функциях, которые вы хотите построить.

Create-phbot-приложение Лучший способ начать строить новое приложение. Он будет генерировать новое приложение со всем, что вам нужно, чтобы начать и запустить приложение в производстве. Чтобы начать работу, откройте приложение вашей командной строки и запустите следующую команду:

npx create-probot-app my-github-app

Вам будет задано серию вопросов. Ответь на них, как вы так выбираете, но на вопрос Какой шаблон вы хотели бы использовать? , выберите базовый-js. (Вы можете выбрать Basic-Ts если хотите). Необходимые файлы и пакеты будут загружены и установлены. Список ниже описан некоторые важные файлы в проекте:

  1. index.js : Это точка входа в приложение.
  2. app.yml : Это приложение GitHub, используемое при инициализации приложения.
  3. Dockerfile : DockerFile, который можно использовать для контейнерации и развертывания приложения.

Событие по умолчанию включено для приложения, когда он загружает только проблемы мероприятие. Позже вы напишите код, чтобы проверить комментарии к проблемам. Для этого вам нужно включить estique_comment мероприятие. Открыть App.yaml , перейдите к линии 25 и растреснясь. Default_events Раздел манифеста должен выглядеть как то, что вы видите ниже.

default_events:
  # - check_run
  # - check_suite
  # - commit_comment
  # - create
  # - delete
  # - deployment
  # - deployment_status
  # - fork
  # - gollum
  - issue_comment
  - issues

Давайте проверим файл index.js. Код ниже содержимое файла.

/**
 * This is the main entrypoint to your Probot app
 * @param {import('probot').Probot} app
 */
module.exports = (app) => {
  app.log.info("Yay, the app was loaded!");

  app.on("issues.opened", async (context) => {
    const issueComment = context.issue({
      body: "Thanks for opening this issue!",
    });
    return context.octokit.issues.createComment(issueComment);
  });
};

приложение Параметр является экземпляром Прободу И дает вам доступ ко всем Github Goods. app.on используется для подписки на события, вызванные GitHub. Вы должны указать имя события и функцию для обработки события.

контекст Передано к обработчику события включает в себя все о событии, которое было вызвано, а также некоторые полезные свойства для выполнения чего-то полезного в ответ на мероприятие. context.octokit Это аутентифицированный клиент GitHub, который можно использовать для создания вызовов API для отдыха и GraphQL в Github, и он позволяет делать практически все программно, что вы можете сделать через веб-браузер на GitHub.

В примерном коде context.octokit используется для создания комментариев выпуска. приложение и контекст Объекты у обоих есть Журнал Объект, который можно использовать для регистрации информации в стандартный выходной поток.

Регистрация приложения GitHub

С приложенным кодом готово, теперь вы можете зарегистрировать его на GitHub. Следуйте инструкциям ниже, чтобы сделать это.

  1. Запустите приложение, запустив NPM начать в вашем терминале.
  2. Перейти к http://localhost: 3000 в вашем браузере.
  3. Вы должны увидеть веб-страницу с кнопками, чтобы зарегистрировать приложение или использовать существующий. Продолжай и нажмите на Зарегистрируйте приложение GitHub кнопка.
  4. Далее вы получите решение о имени приложения, которое уже не сделано. Примечание: Если вы видите сообщение «Имя уже используется» Хотя такое приложение не существует, это означает, что организация GitHub с таким именем существует и не может использоваться в качестве имени приложения.
  5. После регистрации вашего приложения GitHub вы будете перенаправлены для установки приложения на любые репозитории по выбору репозиториев. Выберите репозиторий, чтобы попробовать его. Вы также можете проверить свой местный .env И обратите внимание, что он будет заполнен значениями GitHub, отправляемым обратно в течение этого перенаправления.
  6. Перезапустите сервер в своем терминале (нажмите CTRL/CMD + C , чтобы остановить сервер).

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

Расширить приложение с помощью командных команд

Упробуйте не имеет каких-либо официальных расширений API, но есть несколько многоразовых утилит, которые были извлечены из существующих приложений. Один из этих утилит называется Прободовые команды . Это расширение, которое добавляет команды Slash в GitHub. Команды SLASH — это строки, которые начинаются с / В комментариях по вопросам или потяну запрос, которые позволяют пользователям взаимодействовать напрямую с вашим приложением. Мы будем использовать его, чтобы добавить этикетки к проблемам, чтобы мы могли отфильтровать проблемы по телефону? Ошибка или характерная черта ярлыки.

Чтобы использовать эту утилиту, откройте терминал и запустите NPM Установка --save probot-commands . Позже Откройте index.js и добавьте оператор кода ниже.

commands(app, "kind", (context, command) => {
  const labels = command.arguments.split(/, */);
  return context.octokit.issues.addLabels(context.issue({ labels }));
});

Код получает значение, передаваемое из GitHub и использует его, чтобы добавить этикетки, позвонив context.octokit.issues.addlabels (context.issue ({litchels})) .

Давайте попробуем новые изменения. Перезапустите сервер и добавьте комментарий, который начинается с /добрые к проблеме, которую вы открыли в предыдущем разделе этого поста. Например, введите /добрые ошибки как новый комментарий к проблеме.

Развертывание приложения

Пока что вы управляете приложением локально. Вы можете развернуть его к любому поставщику облака и запустить его как приложение Node.js. Прилагаемый файл Docker можно использовать для пакета и развертывания его в качестве контейнерного приложения. Я собираюсь использовать платформу приложения Diamageocean в качестве провайдера хостинга. Вы можете найти подробную информацию о других вариантах хостинга в Документация Отказ

Чтобы начать, зафиксируйте свои изменения в Git и создайте репозиторий GitHub (или GitLab), затем нажмите там ваши изменения.

Если у вас есть аккаунт на цифровой камере, войдите и перейдите к Приложения страница . Если у вас нет аккаунта, вы можете Создать один, используя мою ссылку на реферал , что дает вам 100 долларов, чтобы попробовать разные вещи на Diumpanyocean (и я получу 25 долларов Если вы станете активным пользователем и потратите $ 25). После создания новой учетной записи перейдите к приложениям Страница и нажмите Запустите ваше приложение кнопка. Вы будете перенаправлены на страницу, где вы укажете источник для приложения. Выберите Github (или gitlab, если это то, что вы используете).

Вы будете перенаправлены на Github для авторизации и установки приложения DigitalCean GitHub (да, они используют приложение GitHub!). Выберите пользователя или организацию и репозитории, чтобы дать ему доступ. Вы можете разрешить его только для репозитория, который вы хотите развернуть. После установки и авторизации вы будете перенаправлены обратно в Digitalocean. Выберите Github И выберите репозиторий, который вы хотите развернуть из раскрывающегося списка и выберите ветку. Затем нажмите на Следующий кнопка, чтобы продолжить.

Вы будете перенаправлены на страницу, чтобы настроить приложение. Нажмите Редактировать рядом с Переменные среды Чтобы добавить некоторые переменные среды. Вам нужна 3 переменных среды:

  1. App_id : ID приложения, который вы можете получить с страницы настроек приложения.
  2. Webhook_secret : Секрет WebHook, который вы создали, когда вы создали приложение.
  3. И одно из следующих:
  • Private_key : Содержание закрытого ключа вы загрузили после создания приложения или …
  • Papty_key_path : путь к файлу закрытого ключа. Private_key имеет приоритет над Papty_key_path Отказ

Скопируйте эти значения из .env Файл в папке вашего проекта (Примечание: это было сгенерировано при зарегистрированном приложении на GitHub) и нажмите Следующий Отказ

Выберите имя и регион для приложения и нажмите Следующий Отказ Вы будете перенаправлены на последнюю страницу, где вам нужно выбрать план для запуска приложения. Для целей прототипа используйте Базовый план и а Размер контейнера Это стоит 5 долларов в месяц. Прокрутите до нижней части страницы и нажмите на Запустите приложение кнопка.

Это займет некоторое время для построенного приложения. Когда это сделано, вы получите домен, который вы можете использовать для приложения GitHub. Перейти к Github Apps Страница настроек и нажмите на Редактировать Кнопка для обновления приложения. Прокрутите вниз до WebHook Раздел и изменить WebHook Url к новой домене из наживления на цифровой камень. Нажмите на Сохранить изменения кнопка, чтобы сохранить изменения.

С приложением, развернутым на Digitalocean и URL WebHook URL, каждое новое событие будет отправлено на новый URL.

Что дальше?

Вы узнали, как автоматизировать рабочий процесс и интегрироваться с GitHub с помощью приложений GitHub. Он является официально рекомендуемым способом интеграции с GitHub, потому что они предлагают гораздо больше гранулированных разрешений для доступа к данным. Приложения GitHub могут быть установлены непосредственно на организации и учетные записи пользователей и предоставлены доступ к конкретным репозиториям. Вы видели, как использовать PHOBOT для создания приложения GitHub Node.js и как развернуть приложение к облаку.

Приложение, которое вы зарегистрировали, следуя инструкциям в этом посте, является публичным, но он не обнаруживается другими пользователями GitHub. Вы также можете поделиться или продавать приложения в Github Marketplace Отказ Чтобы узнать, как перечислить приложение на рынке GitHub, см. Документацию GitHUB » Начало работы с Github Marketplace «

Если вам нужно ваше приложение, чтобы сделать больше вещей, чем разрешения, включенные, когда приложение было зарегистрировано, вы можете добавить больше разрешений через страницу настроек GitHub App. Для более подробной информации см. « Редактирование разрешений приложения GitHub . «.

Вы можете получить исходный код для приложения образца на Github Отказ

Если вы хотите увидеть больше способов построить приложения GitHub, ознакомьтесь с моим предстоящим Книга о строительстве платформы приложения без сервеса Интеграцию GitHub, Next.js, kubernetes и других облачных местных инструментов для построения неверной платформы

Первоначально опубликовано на Telerik Blog

Оригинал: «https://dev.to/pmbanugo/how-to-extend-github-and-improve-your-workflow-with-github-apps-5ai6»