Лучшие GitHub-интеграции

0
2209
views

Перевод статьи «Recommended GitHub Integrations for 2020».

GitHub это, пожалуй, одна из самых известных платформ в нашем сообществе. Также она, скорее всего, одна из самых используемых (где-то наравне со Stackoverflow). Благодаря GitHub мы можем публиковать наши проекты, управлять ими и действиями команды в проекте, а также помогать другим людям в их open-source деятельности.

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

1. Интеграция с IDE

IDE нужна каждому разработчику, и если вы еще не выбрали для себя подходящую — самое время это сделать.

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

VSCode

Мы не будем рассматривать множество расширений, обеспечивающих интеграцию только лишь с Git. Вместо этого обратим внимание на те расширения, которые позволяют работать с API GitHub для пул-реквестов. Например, GitHub Pull Requests.

Это расширение позволяет вам просматривать пул-реквесты для вашего репозитория (и управлять ими) прямо внутри IDE. Если вы работаете над проектом, в котором очень много пул-реквестов, стоит обратить внимание на этот вариант интеграции.

Sublime Text

Это еще одна универсальная IDE, которая была очень популярна до выхода на сцену VSCode. Скорее всего, многие люди по-прежнему пользуются именно ею.

Опять же, к вашим услугам множество плагинов для работы с Git, но если вам нужна интеграция конкретно с GitHub, взгляните на sublime-github.

Этот плагин даст вам возможность открывать Gist прямо в окне редактора или же создавать новый из выделенного кода. Это очень пригождается, когда нужно сделать что-то быстро и просто; таким образом можно сэкономить много времени.

IntelliJ

Наконец, последняя IDE в нашем списке, подходящая для различных языков программирования. В ней интеграция с GitHub обеспечивается «из коробки».

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

2. Issue-трекер

API GitHub позволяет получить доступ к issues проекта. Это очень интересный функционал, и есть несколько способов использовать его для получения полнофункционального issue-трекера, работающего поверх GitHub.

GitKraken Glo Boards

Это, пожалуй, одна из лучших платформ, работающих поверх GitHub issues и расширяющая этот функционал.

При помощи Glo Boards вы сможете не только визуализировать issues на kanban-доске, но и напрямую планировать их при помощи интуитивно понятного UI (перетаскивая issues в календарь).

Если вы пытаетесь руководить действиями команды (а сейчас навыки дистанционного менеджмента пользуются особенным спросом), Glo Boards — простой и мощный вариант для организации работы.

3. Боты

Bit.dev (BitDevBot)

Bit.dev это популярный облачный хаб компонентов. Это место, где вы можете публиковать, документировать и упорядочивать JS-компоненты (React, Angular, Vue и т. д.).

Когда вы пользуетесь Bit, вы можете публиковать отдельные компоненты из любой кодовой базы (репозитория). То есть, это инструмент не только для проектирования систем, но и для совместной работы над компонентами.

Недавно Bit выпустил новый BitDevBot — GitHub-бот, автоматизирующий пул-реквесты в репозитории с импортированными компонентами. Таким образом, при обновлении какого-либо компонента все релевантные репозитории получают предложение влить новые изменения.

Это не только позволяет не допустить, чтобы пользователи компонентов пропустили важные обновления. Это также способ получать обновления компонентов с сохранением локальных изменений, внесенных в этот компонент конкретно в вашем проекте.

Slack

Еще одна платформа, подходящая для такого рода интеграций, это Slack. Многие компании используют чат-румы, чтобы сотрудники могли общаться и делиться информацией (для каждой «комнаты» отводится отдельная тема).

Разработчики GitHub поняли, что интеграция со Slack позволит пользователям просматривать детали ссылок на репозитории, подписываться на репозиторий путем введения простой команды или управлять issues, как если бы они просто общались с коллегой.

4. Непрерывная интеграция

Что касается решения для непрерывной интеграции, на рынке есть несколько отличных решений. И практически все они имеют интеграцию с GitHub в той или иной форме.

Circle CI

Интеграция этого сервиса CI/CD (непрерывной интеграции и непрерывного деплоймента) с GitHub позволяет вам мониторить конвейеры прямо из пользовательского интерфейса GitHub.

TravisCI

Еще одна платформа для непрерывной интеграции и непрерывного деплоймента, которая нативно интегрируется с GitHub.

Если ваша команда использует GitHub в качестве своей основной платформы для контроля версий, вы сможете встроить ее в конвейер TravisCI и автоматизировать весь процесс интеграции и деплоймента, просто кликнув несколько ссылок.

5. Борьба с уязвимостями

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

LGTM

Эта платформа автоматически проверяет ваш код в поисках больше 1600 потенциальных уязвимостей, прежде чем он попадет в производство. LGTM совместима с шестью различными языками программирования (включая JavaScript и Python).

Prisma Cloud

Эта интеграция нацелена не на разработчиков, а на devops-специалистов. Она призвана помочь им с поиском уязвимостей в конфигурационных файлах.

Например, это приложение будет искать такие вещи как шаблоны AWS CloudFormation, шаблоны HashiCorp Terraform и т. п., и сканировать их на предмет потенциальных уязвимостей. Это просто обязательный к применению инструмент, особенно если вы пытаетесь автоматизировать весь процесс деплоймента при помощи GitHub или любых других платформ, интегрирующихся с ним.

6. Ревью кода

На GitHub есть несколько функций для ревью кода, в частности, в Pull Requests UI.

Но нет ничего плохого в желании использовать и дополнительные приложения. Интеграция этих приложений позволит как минимум автоматизировать процесс, а также проверять код на наличие очевидных проблем. Благодаря этому люди, проводящие ревью, смогут сосредоточиться на действительно важных вещах (например, связанных с логикой функций).

Одно из таких приложений — DeepSource. Оно анализирует ваш код и проверяет его на наличие нескольких потенциальных проблем. Но, в отличие от LGTM и Prisma Cloud, фокусируется не на уязвимостях, а на багах, проблемах с производительностью и пр. Приложение даже может автоматически генерировать issues для найденных проблем и предлагать решения для некоторых из них.

7. Управление зависимостями

Управление зависимостями составляет значительную часть наших ежедневных задач, осознаем мы это или нет. Давно миновали те дни, когда нам приходилось заново изобретать велосипед при старте каждого нового проекта. Теперь мы повсеместно используем код повторно.

Но кто гарантирует, что мы можем полностью доверять собственникам наших зависимостей? Кто гарантирует, что их код идеален и не имеет багов или проблем с производительностью?

Один из языков, уже длительное время страдающий от несовершенной стратегии управления зависимостями, это Node.js. Возможно, вам будет любопытно взглянуть на следующую интеграцию: DepChecker-Bot.

DepChecker анализирует ваши npm-зависимости и предупреждает о потенциально опасных. Если вы используете Node или любой другой язык с большим количеством зависимостей, не иметь автоматической проверки это даже как-то наивно.

8. Автоматизация

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

HTML/CSS to Image

Вам нужен скриншот вашего сайта? Интеграция с HTML/CSS to Image позволит вам получать изображение того, как ваш сайт будет выглядеть в Google Chrome.

Mergify

Вам нужно реагировать на пул-реквесты? Возможно, стоит автоматизировать мержинг PR, соответствующих определенным критериям? Вам поможет Mergify. Это приложение позволит вам избавиться от рутинной работы с пул-реквестами. Если ваш проект активен и вам приходится иметь дело с пул-реквестами ежедневно, подумайте о возможности добавить интеграцию вроде этой.

9. Создание issues из TODO-комментариев

Разработчики часто оставляют в коде напоминания самим себе о том, что в будущем следует что-то исправить. Но старые добрые TODO чаще всего так и остаются нетронутыми. В идеале мы должны бы возвращаться и решать эти проблемы, но поскольку они редко попадают в бэклог, об их существовании просто забывают.

Интеграция TODO to Issue помогает нам решать проблему забытых TODO. Каждый раз, когда вы отправляете в репозиторий код с такими комментариями, они превращаются в GitHub issue.

При работе с TODO to Issue вы создаете конфигурационный файл, где задаете набор символов, которые используются для отслеживаемых комментариев. Работает с любыми языками.

10. Heroku

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

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

Заключение

Наш список подошел к концу. А вы обо всех этих интеграциях знали? Может, мы упустили что-то полезное? (Это не удивительно, ведь доступных интеграций больше тысячи). Поделитесь в комментариях!

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here