Об этом проекте
GitHub Actions Pins — это репозиторий для технического обслуживания, целью которого является отслеживание закрепленных метаданных для GitHub Actions, чтобы рабочие процессы могли закреплять неизменяемые ревизии вместо перемещаемых тегов. В README репозиторий описывается как список отслеживания, а не приложение, а практическим результатом является машиночитаемый файл, который могут использовать другие проекты.
Первоисточником данных является файл actions.csv. Каждая строка содержит два столбца: action и ref_override. Столбец ref_override остается пустым, если переопределение не требуется, что делает список читаемым, но при этом позволяет принудительно указать конкретную ссылку для записи.
Изменения в списке проходят через процесс на основе issue. Команда gh pin может открыть issue с заголовком "Add actions to pin list" и меткой pins. Присвоение этой метки означает одобрение запроса. Затем рабочий процесс issue проверяет записи owner/action@ref, представленные в issue, и в случае успеха открывает pull request с автослиянием, который обновляет и actions.csv, и pins.json. Поскольку для pull request настроено автослияние, одобренные дополнения вносятся без ручного слияния.
Интерпретация записей регулируется несколькими правилами. Подпути действий остаются частью ключа закрепления, поэтому шаг рабочего процесса, указывающий на подкаталог действия, рассматривается как отдельный ключ. Однако метаданные разрешаются относительно корневого owner/repo, а не подпути. Записи, которые уже ссылаются на полный SHA коммита, вообще не нуждаются в добавлении в список закреплений, так как такие ссылки по определению неизменяемы.
Сгенерированный файл pins.json публикуется и развертывается по адресу https://unfun.co/pins.json, предоставляя потребителям стабильный URL для получения текущих данных о закреплениях.
Проект создан Daniel Morris и доступен под лицензией MIT; в README содержится уведомление об авторских правах до 2026 года и ссылка на файл LICENSE.md в репозитории.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.