Skip to main content
Мы публикуем частые обновления нашей документации, и перевод этой страницы может все еще выполняться. Актуальные сведения см. в документации на английском языке.

Отправка ветви, заблокированной защитой от отправки

Функция защиты от отправки secret scanning превентивно защищает вас от утечки секретов в репозиториях. Вы можете разрешить заблокированные отправки и после удаления обнаруженного секрета отправить изменения в рабочую ветвь из командной строки или пользовательского веб-интерфейса.

Secret scanning доступен для принадлежащих организации репозиториев в GitHub Enterprise Server, если у предприятия есть лицензия для GitHub Advanced Security. Дополнительные сведения см. в разделах "Сведения о проверке секретов" и "Сведения о GitHub Advanced Security".

О защите от отправки для secret scanning

Функция защиты от отправки secret scanning помогает предотвратить утечки секретных данных за счет проверки на наличие секретов перед отправкой изменений в репозиторий. Когда вы включаете защиту отправки, secret scanning также проверяет отправки на наличие секретов с высокой достоверностью (с малой частотой ложноположительных результатов). Secret scanning перечисляет все обнаруженные секреты, чтобы автор мог просмотреть секреты и удалить их или, при необходимости, разрешить отправку этих секретов. Сведения о секретах и поставщиках услуг, поддерживаемых для защиты от push-уведомлений, см. в разделе Шаблоны сканирования секретов.

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

Совет. Если GitHub блокирует секрет, который, как вы считаете, можно безопасно отправить, вы можете разрешить секрет и указать причину, по которой следует разрешить отправку. Дополнительные сведения об обходе защиты от отправки секретов см. в разделах Как разрешить отправку заблокированного секрета и Обход защиты отправки секрета, касающихся командной строки и веб-интерфейса соответственно.

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

Как разрешить заблокированную отправку в командной строке

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

Примечания

  • Если конфигурация Git поддерживает отправку в несколько ветвей, а не только в текущую ветвь, отправка может быть заблокирована из-за отправки дополнительных и незапланированных ссылок. Дополнительные сведения см. в разделе Параметры push.default в документации Git.
  • Если истечет время ожидания secret scanning при отправке, GitHub все равно выполнит проверку фиксаций на наличие секретов после отправки.

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

  1. Удалите секрет из кода.
  2. Зафиксируйте изменения с помощью git commit --amend.
  3. Отправьте изменения с помощью команды git push.

Вы также можете удалить секрет, если он отображается в более ранней фиксации в журнале Git.

  1. Чтобы узнать, какая фиксация, появившаяся в ошибке отправки, была первой в журнале, используйте команду git log.
  2. Запустите интерактивное перемещение изменений из одной ветви в другую с помощью команды git rebase -i <commit-id>~1.  — это идентификатор фиксации из шага 1.
  3. Определите фиксацию, которую нужно редактировать, изменив pick на edit в первой строке текста, который отображается в редакторе.
  4. Удалите секрет из кода.
  5. Зафиксируйте изменения с помощью команды git commit --amend.
  6. Выполните команду git rebase --continue, чтобы завершить перемещение изменений из одной ветви в другую.

Как разрешить заблокированную фиксацию в пользовательском веб-интерфейсе

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

Откроется диалоговое окно со сведениями о расположении секрета, а также параметрами, позволяющими отправить секрет. Секрет также будет подчеркнут в файле, чтобы его можно было легко найти.

Чтобы устранить заблокированную фиксацию в пользовательском веб-интерфейсе, необходимо удалить секрет из файла или использовать параметры, отображаемые в диалоговом окне, чтобы разрешить секрет. Дополнительные сведения об обходе защиты от push-уведомлений из пользовательского веб-интерфейса см. в разделе Защита отправок с помощью сканирования секретов.

Если вы убедились, что секрет реальный, необходимо удалить его из файла. После удаления секрета вы сможете зафиксировать изменения.