Actions Up
Мне хотелось держать GitHub Actions в актуальном состоянии и при этом защититься от атак на цепочку поставок. Проверять каждый экшен руками долго, поэтому я решил это автоматизировать.
Actions Up находит все экшены в папке .github, проверяет, вышли ли новые версии, и даёт выбрать, что обновить. Обновлённые экшены он закрепляет по SHA коммита, а номер версии оставляет в комментарии.
Было:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4Стало:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0Экшены запускают чужой код в CI, часто с доступом к секретам. Тег вроде v4 можно перевесить на другой коммит, и при следующем запуске выполнится уже другой код. С SHA так не получится.
Ещё Actions Up по умолчанию не предлагает релизы младше суток. Это защищает от атак через только что опубликованные версии. Порог можно поменять флагом --min-age.
Как начать его использовать?
Запустите Actions Up в корне репозитория:
npx actions-upЧтобы только посмотреть обновления и ничего не менять, добавьте флаг --dry-run.