Интеграция GitHub со Slack дает вам и вашим командам полную видимость ваших проектов GitHub прямо в каналах Slack, где вы можете генерировать идеи, сортировать проблемы и сотрудничать с другими командами для продвижения проектов. Эта интеграция представляет собой проект с открытым исходным кодом, созданный и поддерживаемый GitHub.
Это приложение официально поддерживает GitHub.com (включая наше облачное предложение GitHub Enterprise) и Slack.com.
Интеграция GHES со Slack.com теперь общедоступна с GHES 3.8. Подробные инструкции по интеграции Slack с GHES можно найти здесь.
Установите интеграцию GitHub для Slack. После того, как вы войдете в свое рабочее пространство Slack, вам будет предложено предоставить приложению доступ:
После установки приложения и добавления интеграции GitHub в соответствующие каналы с помощью /invite @github
вы увидите предварительные просмотры ссылок на проблемы GitHub, запросы на включение и код, отображаемые в виде форматированного текста в вашей рабочей области.
После установки приложения вы можете взаимодействовать с приложением GitHub как с личным приложением или получать доступ из канала. После установки приложения в рабочей области приложение GitHub становится доступным во всех общедоступных каналах. Для частных каналов вам необходимо явно пригласить /invite @github
На этом этапе ваши учетные записи пользователей Slack и GitHub теперь связаны. Вам будет предложено подключиться к GitHub. Это основной шаг, необходимый для доступа к приложению. Альтернативно мы также можем подключиться, запустив /github signin
.
И как только вы подключитесь, вы увидите следующие шаги и список доступных вам функций.
Команда косой черты /github
также принимает аргумент subscribe
, который вы можете использовать для подписки на активность организации или репозитория /github subscribe <organization>/<repository>
.
Если вы изначально предоставили приложению доступ ко «Всем репозиториям» и создали новый частный репозиторий на GitHub после установки интеграции GitHub для Slack, команда /github subscribe
будет работать автоматически в вашем новом репозитории. Если вы установили приложение в подмножество репозиториев, приложение предложит вам установить его в новый репозиторий.
Команда /github
также поддерживает unsubscribe
. Чтобы отказаться от подписки на уведомления из репозитория, используйте /github unsubscribe <organization>/<repository>
Предоставляя приложению доступ, вы предоставляете следующие полномочия своим учетным записям GitHub и Slack:
Область разрешений | Зачем нам это нужно |
---|---|
Доступ к частным разговорам между вами и приложением | Чтобы отправить вам сообщение с инструкциями. |
Просмотр ссылок на GitHub.com в сообщениях | Для рендеринга расширенных ссылок с github.com |
Добавление предварительного просмотра ссылок на GitHub.com в сообщения | Для отображения расширенных ссылок на github.com |
Добавьте команды слэша | Чтобы добавить косую черту /github в рабочее пространство Slack |
Просмотр названия рабочей области или организации, домена электронной почты и значка | Для хранения настроенных вами подписок |
Публикуйте сообщения как приложение | Чтобы уведомить вас о действиях, происходящих на GitHub, в Slack. |
Область разрешений | Зачем нам это нужно |
---|---|
Доступ для чтения кода | Для рендеринга фрагментов кода в Slack |
Доступ для чтения к действиям, статусам коммитов, проверкам, обсуждениям, проблемам, метаданным, запросам на включение и проектам репозитория. | Для отображения предварительного просмотра ссылок, которыми поделились в Slack. |
Доступ на запись к действиям, проблемам, развертываниям и запросам на включение | Выполнение действий из Slack с помощью команды /github и непосредственно из сообщений. |
В репозиториях приложение уведомляет о событиях open
, close
и re-open
в запросах на включение и проблемах в репозиториях, на которые вы подписались. Он также уведомляет о любом push
непосредственно в ветку репозитория по умолчанию.
Вы можете настроить свои уведомления, подписавшись на действия, имеющие отношение к вашему каналу Slack, и отписавшись от действий, которые менее полезны для вашего проекта.
Настройки настраиваются с помощью команды /github
:
/github subscribe owner/repo [feature]
/github unsubscribe owner/repo [feature]
Они включены по умолчанию и могут быть отключены с помощью команды /github unsubscribe owner/repo [feature]
:
issues
- открытые или закрытые проблемыpulls
— новые или объединенные запросы на включение, а также черновики запросов на включение с пометкой «Готово к рассмотрению».commits
— новые коммиты в ветке по умолчанию (обычно main
).releases
- Опубликованные релизыdeployments
— обновления статуса развертывания. По умолчанию они отключены, но их можно включить с помощью команды /github subscribe owner/repo [feature]
:
workflows
— уведомления о запуске рабочего процесса действийreviews
- обзоры запросов на включениеcomments
- Новые комментарии к проблемам и запросам на включениеbranches
— созданные или удаленные ветки.commits:*
- Все коммиты перенесены в любую ветку+label:"your label"
— фильтрация проблем, запросов на включение и комментариев на основе их ярлыков.discussions
– созданные обсуждения или ответы на них.Вы можете подписаться или отписаться от нескольких настроек одновременно. Например, чтобы включить активность для отзывов и комментариев по запросам на включение:
/github subscribe owner/repo reviews comments
И чтобы выключить его обратно:
/github unsubscribe owner/repo reviews comments
Фильтры ветвей позволяют фильтровать уведомления о фиксации. По умолчанию, когда вы подписываетесь на функцию коммитов, вы будете получать уведомления для своей ветки по умолчанию (т. е. основной). Однако вы можете выбрать фильтрацию по определенной ветке, по шаблону ветвей или по всем ветвям.
/github subscribe org/repo commits
для уведомлений о фиксации из ветки по умолчанию./github subscribe org/repo commits:*
для уведомлений о фиксации во всех ветках./github subscribe org/repo commits:myBranch
для уведомлений о фиксации из определенной ветки./github subscribe org/repo commits:users/*
для уведомлений о фиксации из шаблона ветвей.Вы можете отказаться от подписки на коммиты, используя `@github unsubscribe org/repo commits.
Примечание . Раньше вы могли использовать commits:all
для представления всех ветвей. «все» больше не является зарезервированным ключевым словом. В дальнейшем вам нужно будет использовать «*» для обозначения всех ветвей. Если вы уже настроили «commits:all» ранее, не волнуйтесь, он будет продолжать работать, пока вы не обновите конфигурацию коммитов.
Фильтры меток позволяют фильтровать входящие события на основе разрешенного списка необходимых меток.
Это обзор типов событий, на которые влияет фильтр обязательной метки.
Событие | Фильтруется |
---|---|
Тянуть | ✅ Да |
Комментарий (PR и выпуск) | ✅ Да |
Проблема | ✅ Да |
Обзор | ✅ Да |
Зафиксировать/Отправить | Нет |
Ветвь | Нет |
Создайте фильтр с помощью:
/github subscribe owner/repo +label:"priority:HIGH"
При этом создается фильтр обязательной метки со значением priority:HIGH
. Входящие события, поддерживающие фильтры, отбрасываются, если у них нет этой метки.
Чтобы обновить существующий фильтр, просто введите новый, старый будет обновлен. В настоящее время мы поддерживаем только один фильтр. В будущем может поддерживаться несколько фильтров.
/github subscribe owner/repo +label:"teams/designers"
Теперь существующий priority:HIGH
заменен на teams/designers
.
Удаление фильтра доступно через unsubscribe
/github unsubscribe owner/repo +label:teams/designers
При этом фильтр teams/designers
будет удален.
Чтобы увидеть активные в данный момент фильтры, используйте
/github subscribe list features
В метках обычно присутствуют определенные специальные символы. Поэтому мы добавили поддержку наиболее распространенных специальных символов для фильтров меток. Вот несколько примеров:
label:"priority:HIGH"
label:"teams/designers"
label:"DO NOT MERGE"
label:"very important"
label:":construction: WIP"
Большинство ярлыков будут работать без проблем, включая все смайлы, которые Slack и github предоставляют «из коробки». Однако в следующих редких случаях вы можете столкнуться с трудностями:
:foo:
,
зарезервированоВы можете подписаться на уведомления о запуске рабочего процесса GitHub Actions из своего канала или личного приложения, используя функцию «рабочие процессы».
Получение уведомлений о каждом уведомлении о запуске рабочего процесса может быть зашумленным. Итак, мы предоставляем вам возможность фильтровать уведомления в соответствии с вашими требованиями. Вы можете фильтровать уведомления рабочих процессов о своих действиях по имени, событию, исполнителю и/или филиалу. Вы можете фильтровать уведомления, как показано ниже.
/github subscribe owner/repo workflows:{name:"your workflow name" event:"workflow event" branch:"branch name" actor:"actor name"}
Вы можете передать несколько записей для каждого события в виде списка, разделенного запятыми, как показано ниже: /github subscribe org/repo workflows:{event:"pull_request","push" branch:"main","dev" actor:"ashokirla"}
По умолчанию, когда вы настраиваете уведомления рабочих процессов без прохождения каких-либо фильтров, они настраиваются для рабочих процессов, запускаемых с помощью запросов на включение, нацеленных на вашу ветку по умолчанию. Вы можете передать одну или несколько записей.
Вы можете отказаться от подписки на уведомления о рабочих процессах, просто выполнив следующую команду: /github unsubscribe org/repo workflows
Чтобы получать вышеуказанные уведомления, вам необходимо предоставить доступ для получения событий Actions с помощью приложения GitHub в Slack. Вам будет предложено сделать это при первой попытке подписаться на функцию workflows
для вашей организации.
Мы поддерживаем отдельные уведомления для ваших развертываний. Эти развертывания могут происходить из действий или из внешних источников с использованием API развертываний.
Вы можете включить/отключить эту функцию, выполнив:
/github subscribe/unsubscribe org/repo deployments
Примечание. Если вы используете действия GitHub и хотите отслеживать свои развертывания в средах, мы рекомендуем вместо этого использовать новую функцию workflows
, поскольку она показывает полную картину и дает вам возможность утверждать свои развертывания на месте.
Подписавшись на репозиторий в Slack, вы теперь увидите упоминание о себе в уведомлениях, куда вас направляют и которые требуют вашего внимания.
Когда вы получаете уведомления о проблемах, PR и развертываниях, в следующих случаях вы будете упомянуты.
И самое приятное то, что теперь вы можете видеть сводку уведомлений GitHub, в которых вы упоминаетесь в разделе «Упоминания и реакции» в Slack.
Упоминания будут работать только в том случае, если вы войдете в приложение GitHub в своем рабочем пространстве Slack (с помощью команды /github signin
). Когда вы входите в приложение GitHub со своим идентификатором GitHub, мы сопоставляем его с вашим идентификатором Slack и проверяем вас в Slack всякий раз, когда вы упоминаетесь в любом из уведомлений GitHub.
Примечание . Если у вас есть несколько рабочих пространств Slack, в которых вы используете приложение GitHub, упоминания будут работать только в том рабочем пространстве, в котором вы в последний раз входили в приложение GitHub.
Уведомления о любых проблемах и PR сгруппированы под родительской карточкой в виде ответов. На родительской карточке всегда отображается последний статус проблемы/запроса, а также другие метаданные, такие как название, описание, правопреемники, рецензенты, метки и проверки. Многопоточность дает контекст и помогает улучшить совместную работу на канале.
Это уменьшит шум в канале. А наша функция упоминания гарантирует, что уведомления будут отправлены только тем, кто участвует в беседе. На канал публикуется только родительская карточка, а остальные уведомления будут добавлены в качестве ответа в цепочке. Однако действия по изменению состояния, такие как проблема закрытия/повторного открытия, добавляются в ветку в качестве ответа, а также публикуются в канале, поскольку это может представлять интерес для группы.
Если вы подписались на уведомления о комментариях и обзорах и хотите, чтобы их видели участники канала, а не только те, кто является участниками выпуска, вы можете подписаться на это, запустив
/github subscribe org/repo comments:"channel"
и
/github subscribe org/repo reviews:"channel"
Примечание. По умолчанию комментарии и обзоры отображаются только в теме. И вам необходимо явно запустить приведенную выше команду, чтобы комментарии также начали поступать в канал.
Если вы являетесь участником проблемы/проекта, т. е. упомянуты в комментарии или добавлены в качестве правопреемника/рецензента, наша функция упоминаний гарантирует, что вы будете уведомлены в разделе тем в Slack. Вам не нужно заходить на канал, чтобы узнать о проблемах/сообщениях, требующих вашего внимания. Вы можете сосредоточиться на тех вопросах, которые вам нужны, а наша функция потоковой обработки гарантирует, что вы получите полную картину и сможете сразу же принять меры. Это очень мощная функция, которая гарантирует, что вы не пропустите ни одной проблемы или вопроса, требующих вашего внимания.
Однако, если вы абсолютно убеждены, что вам не нужно видеть обновления проблем/PR в темах, и думаете, что это просто шум, мы можем предложить быстрый обходной путь, чтобы больше не пинговать или заходить в ваши темы. Наше приложение GitHub упоминает вас только в рабочей области Slack, где вы в последний раз входили в GitHub. Вы можете перейти в наименее используемое рабочее пространство Slack или личное рабочее пространство Slack и оттуда войти в GitHub с помощью нашего приложения GitHub. Тогда вы не будете получать пинги и не увидите обновлений в цепочках в другой основной рабочей области.
Если вам не нужна многопоточность или вы еще не готовы адаптироваться к новой модели, мы хотим предоставить вам гибкость. Вы можете отключить/включить потоки для уведомлений о проблемах и запросах на извлечение на своем канале. Вы можете перейти на канал, где вам не нужна потоковая обработка, и выполнить следующую команду. /github settings
Вы увидите возможность отключить/включить потоковую передачу для этого канала. Любой участник, являющийся частью канала, сможет выполнить это действие.
Вялые разговоры часто приводят к принятию решений и практическим выводам. Теперь приступить к следующим шагам из Slack стало проще.
Вам больше не нужно переключаться или перенаправляться на GitHub, чтобы выполнить какие-либо действия по проблемам. Вы действительно можете создавать проблемы и управлять ими там, где вы сотрудничаете, например, в Slack.
Теперь вы можете создать задачу одним щелчком мыши прямо из того места, где вы сотрудничаете. В любом канале/личном приложении/группе или прямом чате теперь вы можете нажать на три точки (...) в правом верхнем углу сообщения и выбрать из списка «Создать задачу GitHub». Это запустит диалог создания проблемы.
Кроме того, вы можете создать задачу в Slack двумя другими способами.
/github open
из окна чата. Примечание. Для выполнения любых действий вам необходимо войти в систему и иметь необходимый доступ к репозиторию.
Вы также можете управлять жизненным циклом проблемы прямо из чата. Когда вы подписываетесь на репозиторий и получаете уведомление о проблеме или когда вы создаете новую задачу в Slack, вы теперь увидите карточку задачи с кнопками призыва к действию: комментировать, редактировать, закрывать/повторно открывать. Вы можете выполнить эти действия прямо из чата.
Примечание. Когда вы выполняете действие с карточкой задачи в Slack, ответ добавляется как ответ в цепочку, даже если вы не подписались на это действие через подписку. Однако, если вы подпишетесь, вы также будете получать уведомления о действиях, происходящих за пределами Slack.
Когда пользователь публикует ссылку GitHub на задачи и запросы на включение , комментарии с прямыми ссылками, объекты кода с номерами строк, а также организации, репозитории и пользователей в Slack, будет показан предварительный просмотр ссылки.
Предварительный просмотр ссылок не будет отображаться, если:
github.com
отключен для вашей рабочей области./invite @github
Запланированные напоминания используются для того, чтобы пользователи сосредоточились на наиболее важных запросах на проверку, требующих их внимания. Запланированные напоминания о запросах на включение отправят вам сообщение в Slack с открытыми запросами на включение, требующими вашего рассмотрения в указанное время. Например, вы можете настроить запланированные напоминания, чтобы каждое утро в 10 утра в Slack отправлялось вам сообщение с запросами на включение, которые необходимо просмотреть вами или одной из ваших команд.
Вы можете настроить запланированные напоминания для себя (личные напоминания), своей команды и для своей организации.
Персональные запланированные напоминания настраиваются как часть вашего личного приложения GitHub в Slack. Вы можете установить запланированные напоминания для запросов на проверку на личном или командном уровне для запросов на включение в организациях, членом которых вы являетесь. В рамках личных напоминаний вы также можете настроить оповещения в реальном времени для ваших запросов на включение. Более подробную информацию вы можете найти здесь.
Вы можете настроить запланированные напоминания об ожидающих запросах на включение в рамках своих каналов Slack, чтобы ваша команда могла оставаться в курсе вашей работы. Для определенного канала Slack вы можете настроить запланированные напоминания для вашей организации или вашей команды. Для получения более подробной информации о настройке запланированных напоминаний посетите раздел «Напоминания на уровне организации» и «Напоминания на уровне команды».
Если вы используете Slack Enterprise Grid и у вас есть несколько рабочих пространств Slack в вашей организации, где вам необходимо использовать GitHub, вы можете установить свое приложение GitHub и управлять им в Slack Enterprise Grid. Владельцы и администраторы организаций в сетке Slack Enterprise могут:
Управляйте запросами на установку приложений GitHub от участников вашего рабочего пространства.
Сделайте приложение GitHub доступным во всех будущих рабочих областях по умолчанию.
Только администраторы и владельцы организации Enterprise Grid смогут устанавливать приложение GitHub и управлять им на уровне Grid.
Вы можете установить приложение GitHub на уровне организации, щелкнув здесь и выбрав корпоративную грид-организацию для установки.
Мы анонсируем интеграцию GA для GHES со Slack с GHES 3.8.
Благодаря этой интеграции вы теперь сможете подписаться на свои репозитории в своем экземпляре GHES и получать в реальном времени обновления о своих проблемах, запросах на работу, коммитах и развертываниях в Slack. Вы также можете выполнять такие действия, как комментирование, открывать/закрывать проблемы и утверждать свои развертывания непосредственно из Slack.
Начиная с GHES 3.8, мы поставляем специальную услугу ChatOps в комплекте с вашим сервером GHES. И вы можете интегрироваться со своим рабочим пространством Slack. Благодаря нашей интеграции с GHES у вас будет
Полностью безопасный и масштабируемый опыт: вся информация о ваших подписках и любые другие метаданные остаются в вашей настройке GHES. Таким образом, вам не нужно беспокоиться о передаче данных в какую-либо внешнюю службу.
Двунаправленное соединение между GHES и Slack: наша интеграция GHES — это не просто служба уведомлений. Это также позволит вам выполнять действия прямо из чата. Итак, единственное необходимое условие — обеспечить доступность вашего экземпляра GHES из Slack. Если включен режим Socket, требуется только входящий доступ из Slack.
Существующее приложение GitHub, которое вы видите в магазине приложений, можно использовать только для интеграции GHEC (размещенный GitHub). Чтобы интегрировать ваш экземпляр GHES со Slack, вам необходимо настроить частное приложение GHES. Вот шаги для интеграции с GHES.
<instancename>/_slack/
или slack.<instancename>
чтобы установить приложение в своем рабочем пространстве.Прокси в настоящее время не поддерживаются.
Если у вас есть какие-либо вопросы или сомнения, свяжитесь с нами, зарегистрировав проблему здесь. Или заполните форму поддержки GitHub, и ваш запрос будет перенаправлен нужной команде GitHub.
Этот репозиторий не принимает никакого кода. Текущий код, который работает для GitHub и интегрирован для Slack, значительно отличается от кода, присутствующего в этом репозитории, поскольку он содержит конкретный код, который необходим для запуска службы в инфраструктуре GitHub и который на данный момент не может быть открыт с открытым исходным кодом. Мы продолжим использовать проблемы в этом репозитории, чтобы получать отзывы от клиентов . |
Проект доступен с открытым исходным кодом на условиях лицензии MIT.
При использовании логотипов GitHub обязательно следуйте рекомендациям по использованию логотипов GitHub.