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 блокирует секрет, который, как вы считаете, можно безопасно отправить, вы можете разрешить секрет и указать причину, по которой следует разрешить отправку. Дополнительные сведения об обходе защиты от push-уведомлений для секрета см. в разделах "Защита отправок с помощью сканирования секретов" и "Защита отправок с помощью сканирования секретов" для командной строки и пользовательского веб-интерфейса соответственно.

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

При попытке отправить поддерживаемый секрет в репозиторий или организацию с включенным 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-уведомлений из пользовательского веб-интерфейса см. в разделе Защита отправок с помощью сканирования секретов.

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