Проверщик и форматировщик YAML для GitHub Actions

ДанныеРазработчикТекст
Реклама · УДАЛИТЬ?

Параметры

Реклама · УДАЛИТЬ?

Гид

Проверщик и форматировщик YAML для GitHub Actions

Проверщик и форматировщик YAML для GitHub Actions

Вставьте файл рабочего процесса GitHub Actions в ячейку ввода или нажмите одну из ссылок на примеры, чтобы загрузить образец CI, релиза или рабочего процесса с устаревшим синтаксисом. Проверка на ошибки анализирует ваш рабочий процесс по встроенной схеме для триггеров, заданий, шагов, запускаемых узлов, разрешений и повторных вызовов рабочих процессов, а затем форматирует YAML с учетом порядка ключей, установленного для рабочего процесса, чтобы каждый файл в вашем репозитории выглядел одинаково.

Как использовать

  1. Вставьте ваш .github/workflows/*.yml Вставьте файл в ячейку ввода или нажмите одну из ссылок на примеры, чтобы загрузить образец CI, релиза или рабочего процесса с устаревшим синтаксисом.
  2. Переключать Сортировка ключей для перестановки полей в соответствии с каноническим порядком GitHub Actions (имя, на, разрешения, задания, затем для каждого задания runs-on, needs, шаги).
  3. Оставить Проверка по схеме GitHub Actions включено для выявления отсутствующих обязательных полей, неизвестных типов событий, недопустимых меток запуска и поврежденных needs ссылок.
  4. Оставить Показать рекомендации по лучшим практикам включено для рекомендаций по цепочке поставок и надежности (фиксация сторонних действий к конкретному коммиту, добавление timeout-minutes, замена устаревших команд рабочего процесса).
  5. Скопируйте отформатированный YAML или загрузите его как .yml файл, готовый к коммиту.

Возможности

  • Проверка схемы — обязательные ключи на верхнем уровне (on, jobs), разрешенные имена событий триггера, допустимые ключи заданий и шагов, и правильные диапазоны разрешений.
  • Правила повторного использования рабочих процессов — обнаруживает случаи, когда задание смешивает uses с runs-on или steps, что GitHub отклонит на уровне выполнения.
  • проверка графа зависимостей — выявляет самореференсы и зависимости от заданий, которые не существуют в файле.
  • Разбор ссылок на действия — обнаруживает значения, отсутствующие uses: или не соответствующие @ref формату. owner/repo Обнаружение устаревшего синтаксиса
  • — предупреждает о режимах с современным аналогом. ::set-env, ::set-output, ::save-stateи node12/node16 Рекомендации по лучшим практикам
  • — предлагает фиксировать сторонние действия к коммиту SHA и добавлять чтобы предотвратить неразумные задания. timeout-minutes Проверка крон-записей
  • — проверяет, что записи крон имеют ровно пять полей. Форматер с учетом рабочего процесса on.schedule — перестраивает ключи на верхнем уровне, уровне задания и уровне шага в традиционном порядке GitHub Actions для единообразных изменений.
  • — Никакой контент рабочего процесса не отправляется на сервер. Почему рабочие процессы GitHub Actions склонны к структурным ошибкам?
  • Работает полностью в браузере YAML рабочего процесса следует строгой схеме с обязательными ключами на верхнем уровне, фиксированными именами событий и правилами ключей на уровне задания, которые меняются в зависимости от того, является ли задание обычным заданием или вызовом повторного использования рабочего процесса. Файл парсится только при запуске триггера на GitHub, поэтому опечатка в имени ключа или неизвестное событие тихо остается в репозитории до следующего коммита или отклонения PR. Проверка на схему выявляет эти классы ошибок до того, как они достигнут запускающего узла.

Часто задаваемые вопросы

  1. Что защищает фиксация действия к коммиту SHA?

    GitHub Actions разрешает

  2. к тому коммиту, на который указывает метка в момент выполнения. Поскольку метки изменяемы, поддерживатель (или атакующий, который получает доступ к аккаунту поддерживателя) может переместить

    в вредоносный коммит, и каждый рабочий процесс, зависящий от него, будет выполнять новую версию кода при следующем запуске. Фиксация к полному 40-символьному коммиту замораживает исходный код действия на известной версии, так что изменение метки в будущем не может неожиданно заменить поведение. uses: owner/action@v1 Почему были устаревшими команды ::set-env, ::set-output и ::save-state? v1 Эти команды рабочего процесса записывали переменные среды, выходные данные шага и сохраненные состояния, отправляя специально оформленные строки на stdout. Любая программа, запускаемая на узле, могла выводить такой же формат и вставлять произвольные значения в v1 или выходные данные шага, включая перезапись

  3. или секретов, на которые следующий шаг рассчитывал. Замены используют специализированные, односторонние файлы (

    ), которые подпроцессы не могут прочитать или изменить после того, как они были созданы. GITHUB_ENV Почему проверка требует значения timeout-minutes для каждого задания? PATH Без$GITHUB_ENV, $GITHUB_OUTPUT, $GITHUB_STATEGitHub-хостированные задания могут работать до 360 минут (шесть часов) до того, как платформа отменит их. Задержка процесса, неправильно настроенная ожидаемая задержка или тест, который не прекращается, могут занять весь временной интервал, блокируя очередь и расходуя минуты из вашего плана. Установка явного верхнего предела для каждого задания превращает худший случай в быстрое сбоение, которое сразу выявляет ошибку.

  4. Вставьте содержимое .github/workflows/*.yml здесь

    Скачать как .yml timeout-minutesGitHub Actions YAML Linter & Formatter 1

Хотите убрать рекламу? Откажитесь от рекламы сегодня

Установите наши расширения

Добавьте инструменты ввода-вывода в свой любимый браузер для мгновенного доступа и более быстрого поиска

в Расширение Chrome в Расширение края в Расширение Firefox в Расширение Opera

Табло результатов прибыло!

Табло результатов — это интересный способ следить за вашими играми, все данные хранятся в вашем браузере. Скоро появятся новые функции!

Реклама · УДАЛИТЬ?
Реклама · УДАЛИТЬ?
Реклама · УДАЛИТЬ?

новости с техническими моментами

Примите участие

Помогите нам продолжать предоставлять ценные бесплатные инструменты

Купи мне кофе
Реклама · УДАЛИТЬ?