Я закрепил 31 GitHub Actions к... Заметка
DEV Community на русском

Я закрепил 31 GitHub Actions к SHA коммитов. Один основной тег отставал на две версии.

Закрепление GitHub Actions за конкретными SHA коммитов имеет решающее значение для безопасности и стабильности, поскольку теги могут быть перемещены. Эта практика гарантирует, что всегда выполняется именно тот код, который был проверен, предотвращая неожиданные изменения. При закреплении рекомендуется указывать версию релиза в комментарии рядом с SHA для удобства чтения человеком.Чтобы найти правильный SHA для действия без использования API или внешних блогов, можно использовать команду git ls-remote --tags. Эта команда, не имеющая ограничений по частоте запросов, извлекает все теги из репозитория. Вывод покажет как тег, так и коммит, на который он указывает, а для аннотированных тегов конкретный SHA коммита идентифицируется с суффиксом ^{}.В ходе недавней работы по упаковке были выявлены три распространенные проблемы с существующим использованием действий. Основной тег одного действия был значительно устаревшим, указывая на гораздо более старую версию, чем его последний релиз. Основной тег другого действия отставал от его собственных недавних релизов, создавая ложное впечатление актуальности. Наконец, у некоторых действий отсутствовали основные теги, что вынуждало пользователей закреплять их за веткой master, что менее безопасно, чем использование конкретных версий.Помимо закрепления, важно внедрять лучшие практики безопасности в GitHub Workflows. Это включает установку строгих разрешений, настройку параллелизма для предотвращения состояний гонки и обеспечение того, чтобы конфиденциальные операции, такие как развертывания, не выполнялись при запросах на слияние. Кроме того, избегание использования pull_request_target является критически важной мерой безопасности.Доступен полный набор готовых к производству GitHub Workflows, включающий эти принципы безопасности. Эти рабочие процессы охватывают различные задачи CI/CD и разработаны для легкой адаптации. Процесс закрепления действий и применения этих правил безопасности может быть эффективно выполнен с помощью простых команд и конфигурации. Закрепление действий за SHA является фундаментальным шагом в более широкой стратегии безопасности.