Сведения о событиях, которые активируют рабочие процессы
Триггеры рабочего процесса — это события, которые приводят к запуску рабочего процесса. Дополнительные сведения об использовании триггеров рабочего процесса см. в разделе "Активация рабочего процесса".
Некоторые события предусматривают несколько типов действий. Для таких событий можно указать типы действий, которые будут активировать рабочий процесс. Дополнительные сведения о том, что означает каждый тип действия, см. в разделе "События и полезные данные веб-перехватчика".
Примечание. Не все события веб-перехватчика активируют рабочие процессы.
branch_protection_rule
Полезные данные события веб-перехватчика | Типы действий | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
branch_protection_rule | - created - edited - deleted | Последняя фиксация в ветви по умолчанию | Ветвь по умолчанию |
Примечание. Это событие активируется несколькими типами действий. Сведения о каждом типе действия см. в разделе "События и полезные данные веб-перехватчика". По умолчанию все типы действий активируют рабочие процессы, которые выполняются в этом событии. Вы можете ограничить запуск рабочего процесса определенными типами действий с помощью ключевого слова types
. Дополнительные сведения см. в разделе Синтаксис рабочего процесса для GitHub Actions.
Примечание. Это событие запускает рабочий процесс только в том случае, если файл рабочего процесса находится в ветви по умолчанию.
Это событие запускает рабочий процесс при изменении правил защиты ветви в репозитории рабочих процессов. Дополнительные сведения о правилах защиты ветви см. в разделе "Сведения о защищенных ветвях". Сведения об API-интерфейсах правил защиты ветви см. в разделе "[AUTOTITLE" в документации по API GraphQL илиОбъект](/rest/branches).
Например, можно запустить рабочий процесс, если к правилу защиты ветви был применен тип действия created
или deleted
:
on:
branch_protection_rule:
types: [created, deleted]
check_run
Полезные данные события веб-перехватчика | Типы действий | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
check_run | - created - rerequested - completed - requested_action | Последняя фиксация в ветви по умолчанию | Ветвь по умолчанию |
Примечание. Это событие активируется несколькими типами действий. Сведения о каждом типе действия см. в разделе "События и полезные данные веб-перехватчика". По умолчанию все типы действий активируют рабочие процессы, которые выполняются в этом событии. Вы можете ограничить запуск рабочего процесса определенными типами действий с помощью ключевого слова types
. Дополнительные сведения см. в разделе Синтаксис рабочего процесса для GitHub Actions.
Примечание. Это событие запускает рабочий процесс только в том случае, если файл рабочего процесса находится в ветви по умолчанию.
Это событие запускает рабочий процесс при действии, связанном с выполнением проверки. Выполнение проверки — это отдельный тест, входящий в состав набора проверок. Дополнительные сведения см. в разделе "Использование REST API для взаимодействия с проверками". Сведения об API проверки выполнения см. в разделе "[AUTOTITLE" в документации по API GraphQL илиОбъект](/rest/checks/runs).
Например, можно запустить рабочий процесс, если проверка имеет тип действия rerequested
или completed
.
on:
check_run:
types: [rerequested, completed]
check_suite
Полезные данные события веб-перехватчика | Типы действий | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
check_suite | - completed | Последняя фиксация в ветви по умолчанию | Ветвь по умолчанию |
Примечание. Это событие активируется несколькими типами действий. Сведения о каждом типе действия см. в разделе "События и полезные данные веб-перехватчика". Несмотря на то, что поддерживается только тип действия completed
, указание типа действия позволит сохранить специфичность рабочего процесса, что важно при добавлении других типов действия в будущем. По умолчанию все типы действий активируют рабочие процессы, которые выполняются в этом событии. Вы можете ограничить запуск рабочего процесса определенными типами действий с помощью ключевого слова types
. Дополнительные сведения см. в разделе Синтаксис рабочего процесса для GitHub Actions.
Примечание. Это событие запускает рабочий процесс только в том случае, если файл рабочего процесса находится в ветви по умолчанию.
Примечание. В целях предотвращения рекурсивных рабочих процессов это событие не должно активировать рабочие процессы в случаях, когда набор проверок был создан с помощью действий GitHub Actions.
Это событие запускает рабочий процесс при выполнении действий, связанных с набором проверок. Набор проверок — это коллекция запусков проверок, созданных для определенной фиксации. Набор проверок позволяет получить общее заключение о состоянии выполнения проверок, входящих в состав набора. Дополнительные сведения см. в разделе "Использование REST API для взаимодействия с проверками". Сведения об API набора check suite см. в разделе "[AUTOTITLE" в документации по API GraphQL илиКонечные точки REST API для наборов проверка](/graphql/reference/objects#checksuite).
Например, можно запустить рабочий процесс, если набор проверок находится в состоянии completed
.
on:
check_suite:
types: [completed]
create
Полезные данные события веб-перехватчика | Типы действий | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
create | Нет данных | Последняя фиксация в созданной ветви или теге | Созданная ветвь или тег |
Примечание. При одновременном создании более трех тегов событие не создается.
Это событие запускает рабочий процесс при создании ссылки на Git (ветвь или тег Git) из репозитория рабочего процесса. Сведения об API-интерфейсах для создания ссылки на Git см. в разделе "[AUTOTITLE" в документации по API GraphQL илиИзменения](/rest/git/refs#create-a-reference).
Например, можно запустить рабочий процесс при возникновении события create
.
on:
create
delete
Полезные данные события веб-перехватчика | Типы действий | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
delete | Нет данных | Последняя фиксация в ветви по умолчанию | Ветвь по умолчанию |
Примечание. Это событие запускает рабочий процесс только в том случае, если файл рабочего процесса находится в ветви по умолчанию.
Примечание. При одновременном удалении более трех тегов событие не создается.
Это событие запускает рабочий процесс при удалении ссылки на Git (ветвь или тег Git) из репозитория рабочего процесса. Сведения об API-интерфейсах для удаления ссылки на Git см. в разделе "[AUTOTITLE" в документации по API GraphQL илиИзменения](/rest/git/refs#delete-a-reference).
Например, можно запустить рабочий процесс при возникновении события delete
.
on:
delete
deployment
Полезные данные события веб-перехватчика | Типы действий | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
deployment | Нет данных | Фиксация для развертывания | Ветвь или тег для развертывания (пустые, если созданы с фиксацией SHA) |
Это событие запускает рабочий процесс при создании развертывания в репозитории рабочего процесса. Развертывания, созданные с фиксацией SHA, могут не иметь ссылки на Git. Сведения об API-интерфейсах для создания развертывания см. в разделе "[AUTOTITLE" документации по API GraphQL илиКонечные точки REST API для репозиториев](/graphql/reference/mutations#createdeployment).
Например, можно запустить рабочий процесс при возникновении события deployment
.
on:
deployment
deployment_status
Полезные данные события веб-перехватчика | Типы действий | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
deployment_status | Нет данных | Фиксация для развертывания | Ветвь или тег для развертывания (пустые, если есть фиксация) |
Примечание. Если в качестве состояния развертывания задано значение inactive
, рабочий процесс не запускается.
Это событие запускает рабочий процесс, когда состояние развертывания предоставляется третьей стороной. Развертывания, созданные с фиксацией SHA, могут не иметь ссылки на Git. Сведения об API-интерфейсах для создания состояния развертывания см. в разделе "[AUTOTITLE" в документации по API GraphQL илиИзменения](/rest/deployments#create-a-deployment-status).
Например, можно запустить рабочий процесс при возникновении события deployment_status
.
on:
deployment_status
discussion
Полезные данные события веб-перехватчика | Типы действий | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
discussion | - created - edited - deleted - transferred - pinned - unpinned - labeled - unlabeled - locked - unlocked - category_changed - answered - unanswered | Последняя фиксация в ветви по умолчанию | Ветвь по умолчанию |
Примечание. Это событие активируется несколькими типами действий. Сведения о каждом типе действия см. в разделе "События и полезные данные веб-перехватчика". По умолчанию все типы действий активируют рабочие процессы, которые выполняются в этом событии. Вы можете ограничить запуск рабочего процесса определенными типами действий с помощью ключевого слова types
. Дополнительные сведения см. в разделе Синтаксис рабочего процесса для GitHub Actions.
Примечание. Это событие запускает рабочий процесс только в том случае, если файл рабочего процесса находится в ветви по умолчанию.
Примечание. События веб-перехватчика для GitHub Discussions в настоящее время находятся в public preview и подлежат изменению.
Это событие запускает рабочий процесс при создании или изменении обсуждения в репозитории рабочего процесса. Для действий, связанных с комментариями к обсуждению, используйте событие discussion_comment
. Дополнительные сведения о обсуждениях см. в разделе "Сведения об обсуждениях". Сведения об API GraphQL см. в разделе "Объект".
Например, можно запустить рабочий процесс, если обсуждение имеет тип действия created
, edited
или answered
.
on:
discussion:
types: [created, edited, answered]
discussion_comment
Полезные данные события веб-перехватчика | Типы действий | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
discussion_comment | - created - edited - deleted | Последняя фиксация в ветви по умолчанию | Ветвь по умолчанию |
Примечание. Это событие активируется несколькими типами действий. Сведения о каждом типе действия см. в разделе "События и полезные данные веб-перехватчика". По умолчанию все типы действий активируют рабочие процессы, которые выполняются в этом событии. Вы можете ограничить запуск рабочего процесса определенными типами действий с помощью ключевого слова types
. Дополнительные сведения см. в разделе Синтаксис рабочего процесса для GitHub Actions.
Примечание. Это событие запускает рабочий процесс только в том случае, если файл рабочего процесса находится в ветви по умолчанию.
Примечание. События веб-перехватчика для GitHub Discussions в настоящее время находятся в public preview и подлежат изменению.
Это событие запускает рабочий процесс при создании или изменении комментария к обсуждению в репозитории рабочего процесса. Для действий, связанных с обсуждением, а не с комментариями к нему, используйте событие discussion
. Дополнительные сведения о обсуждениях см. в разделе "Сведения об обсуждениях". Сведения об API GraphQL см. в разделе "Объект".
Например, можно запустить рабочий процесс, если комментарий к обсуждению имеет тип действия created
или deleted
.
on:
discussion_comment:
types: [created, deleted]
fork
Полезные данные события веб-перехватчика | Типы действий | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
fork | Нет данных | Последняя фиксация в ветви по умолчанию | Ветвь по умолчанию |
Примечание. Это событие запускает рабочий процесс только в том случае, если файл рабочего процесса находится в ветви по умолчанию.
Это событие запускает рабочий процесс при создании вилки репозитория. Сведения о REST API см. в разделе "Конечные точки REST API для вилок".
Например, можно запустить рабочий процесс при возникновении события fork
.
on:
fork
gollum
Полезные данные события веб-перехватчика | Типы действий | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
gollum | Нет данных | Последняя фиксация в ветви по умолчанию | Ветвь по умолчанию |
Примечание. Это событие запускает рабочий процесс только в том случае, если файл рабочего процесса находится в ветви по умолчанию.
Это событие запускает рабочий процесс при создании или обновлении вики-страницы. Дополнительные сведения см. в разделе Сведения о вики-сайтах.
Например, можно запустить рабочий процесс при возникновении события gollum
.
on:
gollum
issue_comment
Полезные данные события веб-перехватчика | Типы действий | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
issue_comment | - created - edited - deleted | Последняя фиксация в ветви по умолчанию | Ветвь по умолчанию |
Примечание. Это событие активируется несколькими типами действий. Сведения о каждом типе действия см. в разделе "События и полезные данные веб-перехватчика". По умолчанию все типы действий активируют рабочие процессы, которые выполняются в этом событии. Вы можете ограничить запуск рабочего процесса определенными типами действий с помощью ключевого слова types
. Дополнительные сведения см. в разделе Синтаксис рабочего процесса для GitHub Actions.
Примечание. Это событие запускает рабочий процесс только в том случае, если файл рабочего процесса находится в ветви по умолчанию.
Это событие запускает рабочий процесс при создании, изменении или удалении комментария к проблеме или запросу на вытягивание. Сведения об API комментариев проблемы см. в документации[ по API GraphQL илиОбъект](/webhooks-and-events/webhooks/webhook-events-and-payloads#issue_comment) в документации по REST API.
Например, можно запустить рабочий процесс, если к комментарию к проблеме или запросу на вытягивание применено действие created
или deleted
.
on:
issue_comment:
types: [created, deleted]
issue_comment
только для проблем или только для запросов на вытягивание
Событие issue_comment
возникает как для комментариев к проблемам, так и для комментариев к запросам на вытягивание. Свойство github.event.issue.pull_request
можно использовать в условном режиме для выполнения различных действий в зависимости от того, был ли объект-триггер проблемой или запросом на вытягивание.
Например, этот рабочий процесс будет выполнять задание pr_commented
, только если событие issue_comment
возникло из запроса на вытягивание. Этот рабочий процесс будет запускать задание issue_commented
, только если событие issue_comment
возникло из проблемы.
on: issue_comment
jobs:
pr_commented:
# This job only runs for pull request comments
name: PR comment
if: ${{ github.event.issue.pull_request }}
runs-on: ubuntu-latest
steps:
- run: |
echo A comment on PR $NUMBER
env:
NUMBER: ${{ github.event.issue.number }}
issue_commented:
# This job only runs for issue comments
name: Issue comment
if: ${{ !github.event.issue.pull_request }}
runs-on: ubuntu-latest
steps:
- run: |
echo A comment on issue $NUMBER
env:
NUMBER: ${{ github.event.issue.number }}
issues
Полезные данные события веб-перехватчика | Типы действий | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
issues | - opened - edited - deleted - transferred - pinned - unpinned - closed - reopened - assigned - unassigned - labeled - unlabeled - locked - unlocked - milestoned - demilestoned | Последняя фиксация в ветви по умолчанию | Ветвь по умолчанию |
Примечание. Это событие активируется несколькими типами действий. Сведения о каждом типе действия см. в разделе "События и полезные данные веб-перехватчика". По умолчанию все типы действий активируют рабочие процессы, которые выполняются в этом событии. Вы можете ограничить запуск рабочего процесса определенными типами действий с помощью ключевого слова types
. Дополнительные сведения см. в разделе Синтаксис рабочего процесса для GitHub Actions.
Примечание. Это событие запускает рабочий процесс только в том случае, если файл рабочего процесса находится в ветви по умолчанию.
Это событие запускает рабочий процесс при создании или изменении проблемы в репозитории рабочего процесса. Для действий, связанных с комментариями к проблеме, используйте событие issue_comment
. Дополнительные сведения о проблемах см. в разделе "О проблемах". Сведения об API-интерфейсах проблемы см. в разделе "[AUTOTITLE" в документации по API GraphQL илиОбъект](/rest/issues).
Например, можно запустить рабочий процесс, если к проблеме было применено действие opened
, edited
или milestoned
.
on:
issues:
types: [opened, edited, milestoned]
label
Полезные данные события веб-перехватчика | Типы действий | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
label | - created - edited - deleted | Последняя фиксация в ветви по умолчанию | Ветвь по умолчанию |
Примечание. Это событие активируется несколькими типами действий. Сведения о каждом типе действия см. в разделе "События и полезные данные веб-перехватчика". По умолчанию все типы действий активируют рабочие процессы, которые выполняются в этом событии. Вы можете ограничить запуск рабочего процесса определенными типами действий с помощью ключевого слова types
. Дополнительные сведения см. в разделе Синтаксис рабочего процесса для GitHub Actions.
Примечание. Это событие запускает рабочий процесс только в том случае, если файл рабочего процесса находится в ветви по умолчанию.
Это событие запускает рабочий процесс при создании или изменении метки в репозитории рабочего процесса. Дополнительные сведения о метках см. в разделе "Управление метками". Сведения об API меток см. в разделе "[AUTOTITLE" в документации по API GraphQL илиКонечные точки REST API для меток](/graphql/reference/objects#label).
Чтобы запустить рабочий процесс при добавлении метки в проблему, запрос на вытягивание или обсуждение либо при удалении метки, используйте типы действий labeled
или unlabeled
для событий issues
, pull_request
, pull_request_target
или discussion
.
Например, можно запустить рабочий процесс, если к метке было применено действие created
или deleted
.
on:
label:
types: [created, deleted]
merge_group
Полезные данные события веб-перехватчика | Типы действий | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
merge_group | checks_requested | SHA группы слияния | Ссылка на группу слияния |
Примечания:
- Это событие активируется несколькими типами действий. Хотя поддерживается только
checks_requested
тип действия, указывая тип действия, ваш рабочий процесс будет указывать, если в будущем добавляются дополнительные типы действий. Сведения о каждом типе действия см. в разделе "События и полезные данные веб-перехватчика". По умолчанию все типы действий активируют рабочие процессы, которые выполняются в этом событии. Вы можете ограничить запуск рабочего процесса определенными типами действий с помощью ключевого словаtypes
. Дополнительные сведения см. в разделе Синтаксис рабочего процесса для GitHub Actions. - Если репозиторий использует GitHub Actions для выполнения необходимых проверка на запросы на вытягивание в репозитории, необходимо обновить рабочие процессы, чтобы включить
merge_group
событие в качестве дополнительного триггера. В противном случае проверки состояния не будут активированы при добавлении запроса на вытягивание в очередь слияния. Слияние завершится ошибкой, так как обязательная проверка состояния не будет сообщаться. Событиеmerge_group
отличается отpull_request
событий иpush
событий.
Запускает рабочий процесс при добавлении запроса на вытягивание в очередь слияния, которая добавляет запрос на вытягивание в группу слияния. Дополнительные сведения см. в разделе "Слияние для запроса на вытягивание с очередью слияния".
Например, можно выполнить рабочий процесс при возникновении действия checks_requested
.
on:
pull_request:
branches: [ "main" ]
merge_group:
types: [checks_requested]
milestone
Полезные данные события веб-перехватчика | Типы действий | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
milestone | - created - closed - opened - edited - deleted | Последняя фиксация в ветви по умолчанию | Ветвь по умолчанию |
Примечание. Это событие активируется несколькими типами действий. Сведения о каждом типе действия см. в разделе "События и полезные данные веб-перехватчика". По умолчанию все типы действий активируют рабочие процессы, которые выполняются в этом событии. Вы можете ограничить запуск рабочего процесса определенными типами действий с помощью ключевого слова types
. Дополнительные сведения см. в разделе Синтаксис рабочего процесса для GitHub Actions.
Примечание. Это событие запускает рабочий процесс только в том случае, если файл рабочего процесса находится в ветви по умолчанию.
Это событие запускает рабочий процесс при создании или изменении вехи в репозитории рабочего процесса. Дополнительные сведения о вех см. в разделе "Сведения о вехах". Сведения об API вехи см. в разделе "[AUTOTITLE" в документации по API GraphQL илиОбъект](/rest/issues/milestones).
Чтобы запустить рабочий процесс при добавлении проблемы в веху или ее удалении из вехи, используйте тип действия milestoned
или demilestoned
для события issues
.
Например, можно запустить рабочий процесс, если к вехе было применено действие opened
или deleted
.
on:
milestone:
types: [opened, deleted]
page_build
Полезные данные события веб-перехватчика | Типы действий | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
page_build | Нет данных | Последняя фиксация в ветви по умолчанию | Нет данных |
Примечание. Это событие запускает рабочий процесс только в том случае, если файл рабочего процесса находится в ветви по умолчанию.
Это событие запускает рабочий процесс, когда выполняется отправка в ветвь, которая является источником публикации для GitHub Pages, если для репозитория включена служба GitHub Pages. Дополнительные сведения о источниках публикации GitHub Pages см. в разделе "Настройка источника публикации для сайта GitHub Pages". Сведения о REST API см. в разделе "Конечные точки REST API для репозиториев".
Например, можно запустить рабочий процесс при возникновении события page_build
.
on:
page_build
public
Полезные данные события веб-перехватчика | Типы действий | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
public | Нет данных | Последняя фиксация в ветви по умолчанию | Ветвь по умолчанию |
Примечание. Это событие запускает рабочий процесс только в том случае, если файл рабочего процесса находится в ветви по умолчанию.
Это событие запускает рабочий процесс при изменении репозитория рабочего процесса с частного на общедоступный. Сведения о REST API см. в разделе "Конечные точки REST API для репозиториев".
Например, можно запустить рабочий процесс при возникновении события public
.
on:
public
pull_request
Полезные данные события веб-перехватчика | Типы действий | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
pull_request | - assigned - unassigned - labeled - unlabeled - opened - edited - closed - reopened - synchronize - converted_to_draft - locked - unlocked - enqueued - dequeued - milestoned - demilestoned - ready_for_review - review_requested - review_request_removed - auto_merge_enabled - auto_merge_disabled | Последняя фиксация слияния в ветви GITHUB_REF | Ветвь слияния PR refs/pull/PULL_REQUEST_NUMBER/merge |
Примечания:
-
Это событие активируется несколькими типами действий. Сведения о каждом типе действия см. в разделе "События и полезные данные веб-перехватчика". По умолчанию рабочий процесс выполняется только в том случае, если для типа действия события
pull_request
указаноopened
,synchronize
илиreopened
. Чтобы активировать рабочие процессы с помощью других типов действий, используйте ключевое словоtypes
. Дополнительные сведения см. в разделе Синтаксис рабочего процесса для GitHub Actions. -
Рабочие процессы не будут выполняться в
pull_request
действии, если запрос на вытягивание имеет конфликт слияния. Сначала необходимо разрешить этот конфликт.Рабочие процессы с событием
pull_request_target
, напротив, будут выполняться даже при наличии конфликта слияния в запросе на вытягивание. Перед использованием триггераpull_request_target
следует учесть риски безопасности. Дополнительные сведения см. в разделеpull_request_target
. -
Полезные
pull_request
данные события веб-перехватчика пусты для объединенных запросов на вытягивание и запросов на вытягивание, поступающих из вилированных репозиториев. -
Значение
GITHUB_REF
зависит от того, был ли объединенный запрос на вытягивание. Если запрос на вытягивание был закрыт, но не объединен, он будетrefs/pull/PULL_REQUEST_NUMBER/merge
. Если запрос на вытягивание был закрыт в результате объединения, он будет полностью объединенref
в ветвь, в которой он был объединен, например/refs/heads/main
.
Это событие запускает рабочий процесс при выполнении действия по запросу на вытягивание в репозитории рабочего процесса. Например, если типы действий не указаны, рабочий процесс запускается при открытии или повторном открытии запроса на вытягивание либо при обновлении главной ветви запроса на вытягивание. Для действий, связанных с проверкой запросов на вытягивание, комментариями к проверкам запросов на вытягивание или комментариями к запросам на вытягивание, используйте событие pull_request_review
, pull_request_review_comment
или issue_comment
. Сведения об API запроса на вытягивание см. в разделе "[AUTOTITLE" в документации по API GraphQL илиОбъект](/rest/pulls).
Обратите внимание, что переменная GITHUB_SHA
для этого события — это последняя фиксация слияния для ветви слияния запроса на вытягивание. Чтобы получить идентификатор фиксации для последней фиксации в главной ветви запроса на вытягивание, используйте переменную github.event.pull_request.head.sha
.
Например, можно запустить рабочий процесс при открытии или повторном открытии запроса на вытягивание.
on:
pull_request:
types: [opened, reopened]
Контекст события можно использовать для дальнейшего управления выполнением заданий в рабочем процессе. Например, этот рабочий процесс будет выполняться при запросе проверки по запросу на вытягивание, но задание specific_review_requested
будет выполняться, только если проверка запрошена командой octo-team
.
on:
pull_request:
types: [review_requested]
jobs:
specific_review_requested:
runs-on: ubuntu-latest
if: ${{ github.event.requested_team.name == 'octo-team'}}
steps:
- run: echo 'A review from octo-team was requested'
pull_request
Выполнение рабочего процесса на основе головы или базовая ветвь запроса на вытягивание
Используйте фильтр branches
или branches-ignore
, чтобы настроить запуск рабочего процесса только для запросов на вытягивание, предназначенных для конкретных ветвей. Дополнительные сведения см. в разделе Синтаксис рабочего процесса для GitHub Actions.
Например, этот рабочий процесс будет выполняться при открытии запроса на вытягивание, предназначенного для ветви, имя которой начинается с releases/
:
on:
pull_request:
types:
- opened
branches:
- 'releases/**'
Примечание. Если используется как фильтр branches
, так и фильтр paths
, рабочий процесс будет выполняться только при выполнении условий обоих фильтров. Например, следующий рабочий процесс будет выполняться только при открытии запроса на вытягивание, включающего изменение файла JavaScript (.js
) в ветви, имя которой начинается с releases/
:
on:
pull_request:
types:
- opened
branches:
- 'releases/**'
paths:
- '**.js'
Чтобы выполнить задание на основе имени главной ветви запроса на вытягивание (в отличие от имени базовой ветви запроса на вытягивание), используйте контекст github.head_ref
в условном режиме. Например, этот рабочий процесс будет выполняться при каждом открытии запроса на вытягивание, но задание run_if
будет выполняться только в том случае, если заголовок запроса на вытягивание является ветвью, имя которой начинается с releases/
:
on:
pull_request:
types:
- opened
jobs:
run_if:
if: startsWith(github.head_ref, 'releases/')
runs-on: ubuntu-latest
steps:
- run: echo "The head of this PR starts with 'releases/'"
pull_request
Выполнение рабочего процесса на основе файлов, измененных в запросе на вытягивание
Рабочий процесс можно настроить таким образом, чтобы он выполнялся при изменении определенных файлов в запросе на вытягивание. Дополнительные сведения см. в разделе Синтаксис рабочего процесса для GitHub Actions.
Например, этот рабочий процесс будет выполняться, когда в запросе на вытягивание изменен файл JavaScript (.js
):
on:
pull_request:
paths:
- '**.js'
Примечание. Если используется как фильтр branches
, так и фильтр paths
, рабочий процесс будет выполняться только при выполнении условий обоих фильтров. Например, следующий рабочий процесс будет выполняться только при открытии запроса на вытягивание, включающего изменение файла JavaScript (.js
) в ветви, имя которой начинается с releases/
:
on:
pull_request:
types:
- opened
branches:
- 'releases/**'
paths:
- '**.js'
pull_request
Выполнение рабочего процесса при слиянии запроса на вытягивание
При слиянии запрос на вытягивание автоматически закрывается. Чтобы запустить рабочий процесс при слиянии запроса на вытягивание, используйте тип события pull_request
closed
вместе с условием, проверяющим значение merged
события. Например, следующий рабочий процесс будет выполняться при закрытии запроса на вытягивание. Задание if_merged
будет выполняться только в том случае, если произошло слияние запроса на вытягивание.
on:
pull_request:
types:
- closed
jobs:
if_merged:
if: github.event.pull_request.merged == true
runs-on: ubuntu-latest
steps:
- run: |
echo The PR was merged
Рабочие процессы в вилках репозиториев
Рабочие процессы по умолчанию не выполняются в вилках репозиториев. Вы должны включить GitHub Actions на вкладке Действия в вилке репозитория.
У GITHUB_TOKEN
него есть разрешения только для чтения в запросах на вытягивание из вилки репозиториев. Дополнительные сведения см. в разделе Автоматическая проверка подлинности токенов.
События запросов на вытягивание для вилок репозиториев
Для запросов на вытягивание из вилки репозитория в базовый репозиторий GitHub отправляет события pull_request
, issue_comment
, pull_request_review_comment
, pull_request_review
и pull_request_target
в базовый репозиторий. В вилке репозитория никакие события запросов на вытягивание не происходят.
Когда новый участник отправляет запрос на вытягивание в общедоступный репозиторий, может потребоваться утверждение запущенных рабочих процессов в запросе на вытягивание ответственным лицом с правами на запись. Дополнительные сведения см. в разделе Утверждение рабочих процессов, запускаемых из общедоступных вилок.
Запросы на вытягивание из вилированного репозитория в частный репозиторий рабочие процессы выполняются только при включении, см. в разделе "Управление параметрами GitHub Actions для репозитория".
Примечание. Рабочие процессы, активированные запросами на вытягивание Dependabot, обрабатываются так, как если бы они были из вилки репозитория как будто они находятся из вилки репозитория, и на них также распространяются эти ограничения.
pull_request_comment
(используйте issue_comment
)
Чтобы запустить рабочий процесс при создании, изменении или удалении комментария к запросу на вытягивание (а не к разнице запроса на вытягивание), используйте событие issue_comment
. Для действий, связанных с проверкой запросов на вытягивание или комментариями к проверкам запросов на вытягивание, используйте событие pull_request_review
или pull_request_review_comment
.
pull_request_review
Полезные данные события веб-перехватчика | Типы действий | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
pull_request_review | - submitted - edited - dismissed | Последняя фиксация слияния в ветви GITHUB_REF | Ветвь слияния PR refs/pull/PULL_REQUEST_NUMBER/merge |
Примечание. Это событие активируется несколькими типами действий. Сведения о каждом типе действия см. в разделе "События и полезные данные веб-перехватчика". По умолчанию все типы действий активируют рабочие процессы, которые выполняются в этом событии. Вы можете ограничить запуск рабочего процесса определенными типами действий с помощью ключевого слова types
. Дополнительные сведения см. в разделе Синтаксис рабочего процесса для GitHub Actions.
Это событие запускает рабочий процесс при отправке, изменении или закрытии проверки запроса на вытягивание. Проверка запроса на вытягивание — это группа комментариев к проверке запроса на вытягивание, дополняющих комментарии к тексту запроса и его состояние. Для действий, связанных с комментариями к проверкам запросов на вытягивание или комментариями к запросам на вытягивание, используйте событие pull_request_review_comment
или issue_comment
. Сведения о ПРОВЕРКА ЗАПРОСА НА ВЫТЯГИВАНИЕ API см. в разделе "[AUTOTITLE" в документации по API GraphQL илиОбъект](/rest/pulls#reviews).
Например, можно запустить рабочий процесс, если к проверке запроса на вытягивание применен тип действия edited
или dismissed
.
on:
pull_request_review:
types: [edited, dismissed]
Запуск рабочего процесса при утверждении запроса на вытягивание
Чтобы запустить рабочий процесс при утверждении запроса на вытягивание, активируйте рабочий процесс, используя тип submitted
события pull_request_review
, а затем проверьте состояние проверки, используя свойство github.event.review.state
. Например, этот рабочий процесс будет выполняться при отправке проверки запроса на вытягивание, однако задание approved
будет выполняться, только если отправленная проверка утверждена:
on:
pull_request_review:
types: [submitted]
jobs:
approved:
if: github.event.review.state == 'approved'
runs-on: ubuntu-latest
steps:
- run: echo "This PR was approved"
Рабочие процессы в вилках репозиториев
Рабочие процессы по умолчанию не выполняются в вилках репозиториев. Вы должны включить GitHub Actions на вкладке Действия в вилке репозитория.
У GITHUB_TOKEN
него есть разрешения только для чтения в запросах на вытягивание из вилки репозиториев. Дополнительные сведения см. в разделе Автоматическая проверка подлинности токенов.
События запросов на вытягивание для вилок репозиториев
Для запросов на вытягивание из вилки репозитория в базовый репозиторий GitHub отправляет события pull_request
, issue_comment
, pull_request_review_comment
, pull_request_review
и pull_request_target
в базовый репозиторий. В вилке репозитория никакие события запросов на вытягивание не происходят.
Когда новый участник отправляет запрос на вытягивание в общедоступный репозиторий, может потребоваться утверждение запущенных рабочих процессов в запросе на вытягивание ответственным лицом с правами на запись. Дополнительные сведения см. в разделе Утверждение рабочих процессов, запускаемых из общедоступных вилок.
Запросы на вытягивание из вилированного репозитория в частный репозиторий рабочие процессы выполняются только при включении, см. в разделе "Управление параметрами GitHub Actions для репозитория".
Примечание. Рабочие процессы, активированные запросами на вытягивание Dependabot, обрабатываются так, как если бы они были из вилки репозитория как будто они находятся из вилки репозитория, и на них также распространяются эти ограничения.
pull_request_review_comment
Полезные данные события веб-перехватчика | Типы действий | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
pull_request_review_comment | - created - edited - deleted | Последняя фиксация слияния в ветви GITHUB_REF | Ветвь слияния PR refs/pull/PULL_REQUEST_NUMBER/merge |
Примечание. Это событие активируется несколькими типами действий. Сведения о каждом типе действия см. в разделе "События и полезные данные веб-перехватчика". По умолчанию все типы действий активируют рабочие процессы, которые выполняются в этом событии. Вы можете ограничить запуск рабочего процесса определенными типами действий с помощью ключевого слова types
. Дополнительные сведения см. в разделе Синтаксис рабочего процесса для GitHub Actions.
Это событие запускает рабочий процесс при изменении комментария к проверке запроса на вытягивание. Комментарий к проверке запроса на вытягивание — это комментарий к разнице запроса на вытягивание. Для действий, связанных с проверкой запросов на вытягивание или комментариями к запросам, используйте событие pull_request_review
или issue_comment
. Сведения об API комментариев проверка запроса на вытягивание см. в разделе "[AUTOTITLE" в документации по API GraphQL илиОбъект](/rest/pulls#comments).
Например, можно запустить рабочий процесс, если к комментарию к проверке запроса на вытягивание применен тип действия created
или deleted
.
on:
pull_request_review_comment:
types: [created, deleted]
Рабочие процессы в вилках репозиториев
Рабочие процессы по умолчанию не выполняются в вилках репозиториев. Вы должны включить GitHub Actions на вкладке Действия в вилке репозитория.
У GITHUB_TOKEN
него есть разрешения только для чтения в запросах на вытягивание из вилки репозиториев. Дополнительные сведения см. в разделе Автоматическая проверка подлинности токенов.
События запросов на вытягивание для вилок репозиториев
Для запросов на вытягивание из вилки репозитория в базовый репозиторий GitHub отправляет события pull_request
, issue_comment
, pull_request_review_comment
, pull_request_review
и pull_request_target
в базовый репозиторий. В вилке репозитория никакие события запросов на вытягивание не происходят.
Когда новый участник отправляет запрос на вытягивание в общедоступный репозиторий, может потребоваться утверждение запущенных рабочих процессов в запросе на вытягивание ответственным лицом с правами на запись. Дополнительные сведения см. в разделе Утверждение рабочих процессов, запускаемых из общедоступных вилок.
Запросы на вытягивание из вилированного репозитория в частный репозиторий рабочие процессы выполняются только при включении, см. в разделе "Управление параметрами GitHub Actions для репозитория".
Примечание. Рабочие процессы, активированные запросами на вытягивание Dependabot, обрабатываются так, как если бы они были из вилки репозитория как будто они находятся из вилки репозитория, и на них также распространяются эти ограничения.
pull_request_target
Полезные данные события веб-перехватчика | Типы действий | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
pull_request | - assigned - unassigned - labeled - unlabeled - opened - edited - closed - reopened - synchronize - converted_to_draft - ready_for_review - locked - unlocked - review_requested - review_request_removed - auto_merge_enabled - auto_merge_disabled | Последняя фиксация в базовой ветви запроса на вытягивание | Базовая ветвь PR |
Примечание. Это событие активируется несколькими типами действий. Сведения о каждом типе действия см. в разделе "События и полезные данные веб-перехватчика". По умолчанию рабочий процесс выполняется только в том случае, если для типа действия события pull_request_target
указано opened
, synchronize
или reopened
. Чтобы активировать рабочие процессы с помощью других типов действий, используйте ключевое слово types
. Дополнительные сведения см. в разделе Синтаксис рабочего процесса для GitHub Actions.
Это событие запускает рабочий процесс при выполнении действия по запросу на вытягивание в репозитории рабочего процесса. Например, если типы действий не указаны, рабочий процесс запускается при открытии или повторном открытии запроса на вытягивание либо при обновлении главной ветви запроса на вытягивание.
Это событие, в отличие от события pull_request
, выполняется в контексте базы запроса на вытягивание, а не в контексте фиксации слияния. Это предотвращает выполнение небезопасного кода из заголовка запроса на вытягивание, который может изменить репозиторий или украсть все секреты, используемые в рабочем процессе. Это событие позволяет рабочему процессу создавать метки или комментарии к запросам на вытягивание из вилок. Не рекомендуется использовать это событие для сборки или выполнения кода из запроса на вытягивание.
Чтобы обеспечить безопасность репозитория, ветви с именами, которые соответствуют определенным шаблонам (например, похожими на SHA), могут не запускать рабочие процессы с событием pull_request_target
.
Предупреждение. Для рабочих процессов, которые активируются событием pull_request_target
: токену GITHUB_TOKEN
предоставляется разрешение на чтение и запись в репозитории (если только не указан ключ permissions
), а рабочий процесс получает доступ к секретам, даже если запуск выполняется из вилки. Несмотря на то, что рабочий процесс выполняется в контексте базы запроса на вытягивание, необходимо убедиться, что это событие не ведет к извлечению, сборке или запуску ненадежного кода из запроса на вытягивание. Кроме того, весь кэш использует ту же область, что и базовая ветвь. Не следует сохранять кэш, если есть вероятность изменения его содержимого: это позволит предотвратить отравление кэша. Дополнительные сведения см. в статье Обеспечение безопасности GitHub Actions и рабочих процессов: предотвращение запросов pwn на веб-сайте лаборатории безопасности GitHub Security Lab.
Например, можно запустить рабочий процесс, если к запросу на вытягивание применен тип действия assigned
, opened
, synchronize
или reopened
.
on:
pull_request_target:
types: [assigned, opened, synchronize, reopened]
pull_request_target
Выполнение рабочего процесса на основе головы или базовая ветвь запроса на вытягивание
Используйте фильтр branches
или branches-ignore
, чтобы настроить запуск рабочего процесса только для запросов на вытягивание, предназначенных для конкретных ветвей. Дополнительные сведения см. в разделе Синтаксис рабочего процесса для GitHub Actions.
Например, этот рабочий процесс будет выполняться при открытии запроса на вытягивание, предназначенного для ветви, имя которой начинается с releases/
:
on:
pull_request_target:
types:
- opened
branches:
- 'releases/**'
Примечание. Если используется как фильтр branches
, так и фильтр paths
, рабочий процесс будет выполняться только при выполнении условий обоих фильтров. Например, следующий рабочий процесс будет выполняться только при открытии запроса на вытягивание, включающего изменение файла JavaScript (.js
) в ветви, имя которой начинается с releases/
:
on:
pull_request_target:
types:
- opened
branches:
- 'releases/**'
paths:
- '**.js'
Чтобы выполнить задание на основе имени главной ветви запроса на вытягивание (в отличие от имени базовой ветви запроса на вытягивание), используйте контекст github.head_ref
в условном режиме. Например, этот рабочий процесс будет выполняться при каждом открытии запроса на вытягивание, но задание run_if
будет выполняться только в том случае, если заголовок запроса на вытягивание является ветвью, имя которой начинается с releases/
:
on:
pull_request_target:
types:
- opened
jobs:
run_if:
if: startsWith(github.head_ref, 'releases/')
runs-on: ubuntu-latest
steps:
- run: echo "The head of this PR starts with 'releases/'"
pull_request_target
Выполнение рабочего процесса на основе файлов, измененных в запросе на вытягивание
Используя фильтр paths
или paths-ignore
, можно настроить рабочий процесс таким образом, чтобы он выполнялся при изменении определенных файлов в запросе на вытягивание. Дополнительные сведения см. в разделе Синтаксис рабочего процесса для GitHub Actions.
Например, этот рабочий процесс будет выполняться, когда в запросе на вытягивание изменен файл JavaScript (.js
):
on:
pull_request_target:
paths:
- '**.js'
Примечание. Если используется как фильтр branches
, так и фильтр paths
, рабочий процесс будет выполняться только при выполнении условий обоих фильтров. Например, следующий рабочий процесс будет выполняться только при открытии запроса на вытягивание, включающего изменение файла JavaScript (.js
) в ветви, имя которой начинается с releases/
:
on:
pull_request_target:
types:
- opened
branches:
- 'releases/**'
paths:
- '**.js'
pull_request_target
Выполнение рабочего процесса при слиянии запроса на вытягивание
При слиянии запрос на вытягивание автоматически закрывается. Чтобы запустить рабочий процесс при слиянии запроса на вытягивание, используйте тип события pull_request_target
closed
вместе с условием, проверяющим значение merged
события. Например, следующий рабочий процесс будет выполняться при закрытии запроса на вытягивание. Задание if_merged
будет выполняться только в том случае, если произошло слияние запроса на вытягивание.
on:
pull_request_target:
types:
- closed
jobs:
if_merged:
if: github.event.pull_request.merged == true
runs-on: ubuntu-latest
steps:
- run: |
echo The PR was merged
push
Полезные данные события веб-перехватчика | Типы действий | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
push | Нет данных | Фиксация подсказки, отправленная в ссылку. При удалении ветви SHA в выполнении рабочего процесса (и связанных ссылок) возвращается к ветвь по умолчанию репозитория. | Обновленная ссылка |
Примечание. К полезным данным веб-перехватчика, доступным для GitHub Actions, не относятся атрибуты added
, removed
и modified
объекта commit
. Полный объект фиксации можно получить с помощью API. Дополнительные сведения см. в разделе "Объект" в документации по API GraphQL илиКонечные точки REST API для фиксаций.
Примечание. События не будут созданы, если более 5000 ветвей отправляются одновременно. События не будут создаваться для тегов, если одновременно отправляются более трех тегов.
Запускает рабочий процесс при отправке фиксации или тега или при создании репозитория из шаблона.
Например, можно запустить рабочий процесс при возникновении события push
.
on:
push
Примечание. Когда событие веб-перехватчика push
активирует выполнение рабочего процесса, в поле "Кем отправлено" в пользовательском интерфейсе Actions отображается учетная запись того, кто отправил действие, а не того, кто его создал или зафиксировал. Однако если изменения отправляются в репозиторий с помощью проверки подлинности SSH с ключом развертывания, то в поле "Кем отправлено" будет указан администратор репозитория, который проверил ключ развертывания при добавлении в репозиторий.
Запуск рабочего процесса только при отправке в определенные ветви
Используйте фильтр branches
или branches-ignore
, чтобы настроить запуск рабочего процесса только при отправке в определенные ветви. Дополнительные сведения см. в разделе Синтаксис рабочего процесса для GitHub Actions.
Например, этот рабочий процесс будет выполняться при отправке в ветвь main
или в ветвь, имя которой начинается с releases/
.
on:
push:
branches:
- 'main'
- 'releases/**'
Примечание. Если используется как фильтр branches
, так и фильтр paths
, рабочий процесс будет выполняться только при выполнении условий обоих фильтров. Например, следующий рабочий процесс будет выполняться только при отправке, включающей изменение файла JavaScript (.js
), в ветвь, имя которой начинается с releases/
:
on:
push:
branches:
- 'releases/**'
paths:
- '**.js'
Запуск рабочего процесса только при отправке определенных тегов
Используйте фильтр tags
или tags-ignore
, чтобы настроить запуск рабочего процесса только при отправке определенных тегов. Дополнительные сведения см. в разделе Синтаксис рабочего процесса для GitHub Actions.
Например, этот рабочий процесс будет выполняться при отправке тега, имя которого начинается с v1.
.
on:
push:
tags:
- v1.**
Запуск рабочего процесса только в случаях, когда отправка влияет на определенные файлы
Используя фильтр paths
или paths-ignore
, можно настроить рабочий процесс таким образом, чтобы он выполнялся только тогда, когда отправка затрагивает определенные файлы. Дополнительные сведения см. в разделе Синтаксис рабочего процесса для GitHub Actions.
Например, этот рабочий процесс будет выполняться при отправке изменений в файл JavaScript (.js
):
on:
push:
paths:
- '**.js'
Примечание. Если используется как фильтр branches
, так и фильтр paths
, рабочий процесс будет выполняться только при выполнении условий обоих фильтров. Например, следующий рабочий процесс будет выполняться только при отправке, включающей изменение файла JavaScript (.js
), в ветвь, имя которой начинается с releases/
:
on:
push:
branches:
- 'releases/**'
paths:
- '**.js'
registry_package
Полезные данные события веб-перехватчика | Типы действий | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
registry_package | - published - updated | Фиксация опубликованного пакета | Ветвь или тег опубликованного пакета |
Примечание. Это событие активируется несколькими типами действий. Сведения о каждом типе действия см. в разделе "События и полезные данные веб-перехватчика". По умолчанию все типы действий активируют рабочие процессы, которые выполняются в этом событии. Вы можете ограничить запуск рабочего процесса определенными типами действий с помощью ключевого слова types
. Дополнительные сведения см. в разделе Синтаксис рабочего процесса для GitHub Actions.
Примечание. Это событие запускает рабочий процесс только в том случае, если файл рабочего процесса находится в ветви по умолчанию.
Примечание. При отправке образов контейнеров с несколькими архитектурами это событие происходит один раз на манифест, поэтому может наблюдаться активация рабочего процесса несколько раз. Чтобы устранить эту проблему, и выполните задание рабочего процесса только для события, содержащего фактические сведения тега изображения, используйте условный код:
jobs:
job_name:
if: ${{ github.event.registry_package.package_version.container_metadata.tag.name != '' }}
Это событие запускает рабочий процесс, когда в репозитории выполняется действие, связанное с GitHub Packages. Дополнительные сведения см. в разделе Документация по GitHub Packages.
Например, можно запустить рабочий процесс, если к новой версии пакета было применено действие published
.
on:
registry_package:
types: [published]
release
Полезные данные события веб-перехватчика | Типы действий | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
release | - published - unpublished - created - edited - deleted - prereleased - released | Последняя фиксация в выпуске с тегами | Ссылка на тег выпуска refs/tags/<tag_name> |
Примечание. Это событие активируется несколькими типами действий. Сведения о каждом типе действия см. в разделе "События и полезные данные веб-перехватчика". По умолчанию все типы действий активируют рабочие процессы, которые выполняются в этом событии. Вы можете ограничить запуск рабочего процесса определенными типами действий с помощью ключевого слова types
. Дополнительные сведения см. в разделе Синтаксис рабочего процесса для GitHub Actions.
Примечание. Рабочие процессы не активируются для типов действий created
, edited
и deleted
в черновых выпусках. При создании выпуска с помощью пользовательского интерфейса браузера GitHub выпуск может автоматически сохраняться в виде черновика.
Примечание. Тип prereleased
не запускает рабочий процесс для предварительных выпусков, опубликованных из черновых выпусков, однако тип published
запускает его. Если требуется, чтобы рабочий процесс выполнялся при стабильной и предварительной публикации, подпишитесь на тип действия published
вместо released
и prereleased
.
Это событие запускает рабочий процесс при выполнении действия выпуска в репозитории. Сведения об API выпуска см. в документации[ по API GraphQL илиОбъект](/rest/releases) в документации по REST API.
Например, можно запустить рабочий процесс, если к выпуску было применено действие published
.
on:
release:
types: [published]
repository_dispatch
Полезные данные события веб-перехватчика | Типы действий | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
repository_dispatch | Пользовательское | Последняя фиксация в ветви по умолчанию | Ветвь по умолчанию |
Примечание. Это событие запускает рабочий процесс только в том случае, если файл рабочего процесса находится в ветви по умолчанию.
API GitHub можно использовать для активации события веб-перехватчика repository_dispatch
, чтобы активировать рабочий процесс для действия, происходящего за пределами GitHub. Дополнительные сведения см. в разделе Конечные точки REST API для репозиториев.
При запросе на создание события repository_dispatch
необходимо указать event_type
в качестве описания типа действия. По умолчанию все типы действий repository_dispatch
активируют рабочий процесс. Используйте ключевое слово types
, чтобы ограничить выполнение рабочего процесса при отправке определенного значения event_type
в полезные данные веб-перехватчика repository_dispatch
.
on:
repository_dispatch:
types: [test_result]
Примечание. Значение event_type
ограничено 100 символами.
Все данные, которые отправляются с помощью параметра client_payload
, доступны в контексте github.event
рабочего процесса. Например, если отправить этот текст запроса при создании события диспетчеризации репозитория:
{
"event_type": "test_result",
"client_payload": {
"passed": false,
"message": "Error: timeout"
}
}
можно получить доступ к полезным данным в рабочем процессе следующим образом:
on:
repository_dispatch:
types: [test_result]
jobs:
run_if_failure:
if: ${{ !github.event.client_payload.passed }}
runs-on: ubuntu-latest
steps:
- env:
MESSAGE: ${{ github.event.client_payload.message }}
run: echo $MESSAGE
Примечания:
- Максимальное число свойств верхнего уровня в
client_payload
10. - Полезные данные могут содержать не более 65 535 символов.
schedule
Полезные данные события веб-перехватчика | Типы действий | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
Неприменимо | Неприменимо | Последняя фиксация в ветви по умолчанию | Ветвь по умолчанию |
Примечания:
-
Событие
schedule
может быть отложено в периоды высокой нагрузки рабочих процессов GitHub Actions. К периодам высокой загрузки относится начало каждого часа. Если загрузка достаточно высока, некоторые задания в очереди могут быть удалены. Чтобы уменьшить вероятность задержки, запланируйте выполнение рабочего процесса в другое время часа. -
Это событие будет запускаться только в том случае, если файл рабочего процесса находится на ветвь по умолчанию.
-
Запланированные рабочие процессы будут выполняться только в ветвь по умолчанию.
-
В общедоступном репозитории запланированные рабочие процессы автоматически отключаются, если в течение 60 дней не происходило никаких действий в репозитории. Сведения о повторном включении отключенного рабочего процесса см. в разделе "Отключение и включение рабочего процесса".
-
Когда последний пользователь зафиксировать расписание cron рабочего процесса удаляется из организации, запланированный рабочий процесс будет отключен. Если пользователь с
write
разрешениями на репозиторий делает фиксацию, которая изменяет расписание cron, запланированный рабочий процесс будет повторно активирован. Обратите внимание, что в этой ситуации рабочий процесс не активируется каким-либо изменением файла рабочего процесса; Необходимо изменитьcron
значение и зафиксировать это изменение.Пример:
on: schedule: - cron: "15 4,5 * * *" # <=== Change this value
Событие schedule
позволяет активировать рабочий процесс в запланированное время.
Можно запланировать выполнение рабочего процесса в определенное время в формате UTC с помощью синтаксиса POSIX cron. Запланированные рабочие процессы запускаются в соответствии с последней фиксацией базовой ветви или ветви по умолчанию. Самый короткий интервал, с которым можно запускать запланированные рабочие процессы — 5 минут.
В этом примере рабочий процесс запускается каждый день в 5:30 и 17:30 (в формате UTC):
on:
schedule:
# * is a special character in YAML so you have to quote this string
- cron: '30 5,17 * * *'
Один рабочий процесс может запускаться несколькими событиями schedule
. Доступ к запланированному событию, при возникновении которого был запущен рабочий процесс, можно получить с помощью контекста github.event.schedule
. В этом примере рабочий процесс запускается с ежедневно с понедельника по четверг в 5:30 (в формате UTC), причем по понедельникам и средам шаг Not on Monday or Wednesday
пропускается.
on:
schedule:
- cron: '30 5 * * 1,3'
- cron: '30 5 * * 2,4'
jobs:
test_schedule:
runs-on: ubuntu-latest
steps:
- name: Not on Monday or Wednesday
if: github.event.schedule != '30 5 * * 1,3'
run: echo "This step will be skipped on Monday and Wednesday"
- name: Every time
run: echo "This step will always run"
Синтаксис Cron содержит пять полей, разделенных пробелом, где каждое поле представляет единицу времени.
┌───────────── minute (0 - 59)
│ ┌───────────── hour (0 - 23)
│ │ ┌───────────── day of the month (1 - 31)
│ │ │ ┌───────────── month (1 - 12 or JAN-DEC)
│ │ │ │ ┌───────────── day of the week (0 - 6 or SUN-SAT)
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
* * * * *
Эти операторы можно использовать в любом из пяти полей:
Operator | Description | Пример |
---|---|---|
* | Любое значение | 15 * * * * запускается в каждую 15-ю минуту каждого часа каждого дня. |
, | Разделитель списка значений | 2,10 4,5 * * * запускается во 2-ю и 10-ю минуты каждого 4-го и 5-го часов каждого дня. |
- | Диапазон значений | 30 4-6 * * * запускается в 30-ю минуту каждого 4-го, 5-го и 6-го часов. |
/ | Значения шага | 20/15 * * * * запускается каждые 15 минут с 20-й по 59-ю минуту (в каждую 20-ю, 35-ю и 50-ю минуты). |
Примечание. GitHub Actions не поддерживает нестандартный синтаксис: @yearly
, @monthly
, @weekly
, @daily
, @hourly
и @reboot
.
Используйте редактор crontab guru, чтобы создавать синтаксис cron и подтверждать время его выполнения. Начать работу можно со списка примеров crontab guru.
Уведомления о запланированных рабочих процессах отправляются пользователю, который внес последние изменения в синтаксис cron файла рабочего процесса. Дополнительные сведения см. в разделе Уведомления о выполнении рабочих процессов.
status
Полезные данные события веб-перехватчика | Типы действий | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
status | Нет данных | Последняя фиксация в ветви по умолчанию | Нет данных |
Примечание. Это событие запускает рабочий процесс только в том случае, если файл рабочего процесса находится в ветви по умолчанию.
Это событие запускает рабочий процесс при изменении состояния фиксации Git. Фиксации могут быть помечены как error
, failure
, pending
или success
. Чтобы предоставить дополнительные сведения об изменении состояния, может потребоваться использовать событие check_run
. Сведения об API-интерфейсах состояния фиксации см. в разделе "[AUTOTITLE" в документации по API GraphQL илиОбъект](/rest/commits#commit-statuses).
Например, можно запустить рабочий процесс при возникновении события status
.
on:
status
Чтобы запустить задание в рабочем процессе на основе нового состояния фиксации, можно использовать контекст github.event.state
. Например, следующий рабочий процесс активируется при изменении состояния фиксации, но задание if_error_or_failure
выполняется только в том случае, если новое состояние фиксации — error
или failure
.
on:
status
jobs:
if_error_or_failure:
runs-on: ubuntu-latest
if: >-
github.event.state == 'error' ||
github.event.state == 'failure'
steps:
- env:
DESCRIPTION: ${{ github.event.description }}
run: |
echo The status is error or failed: $DESCRIPTION
watch
Полезные данные события веб-перехватчика | Типы действий | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
watch | - started | Последняя фиксация в ветви по умолчанию | Ветвь по умолчанию |
Примечание. Это событие активируется несколькими типами действий. Несмотря на то, что поддерживается только тип действия started
, указание типа действия позволит сохранить специфичность рабочего процесса, что важно при добавлении других типов действия в будущем. Сведения о каждом типе действия см. в разделе "События и полезные данные веб-перехватчика". По умолчанию все типы действий активируют рабочие процессы, которые выполняются в этом событии. Вы можете ограничить запуск рабочего процесса определенными типами действий с помощью ключевого слова types
. Дополнительные сведения см. в разделе Синтаксис рабочего процесса для GitHub Actions.
Примечание. Это событие запускает рабочий процесс только в том случае, если файл рабочего процесса находится в ветви по умолчанию.
Это событие запускает рабочий процесс, когда репозиторий рабочего процесса добавляется в избранное. Сведения об API запроса на вытягивание см. в разделе "[AUTOTITLE" в документации по API GraphQL илиИзменения](/rest/activity/starring).
Например, можно запустить рабочий процесс при добавлении в избранное репозитория, который является типом действия started
для события наблюдения.
on:
watch:
types: [started]
workflow_call
Полезные данные события веб-перехватчика | Типы действий | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
То же, что и рабочий процесс вызывающего объекта | Нет данных | То же, что и рабочий процесс вызывающего объекта | То же, что и рабочий процесс вызывающего объекта |
workflow_call
используется для того, чтобы указать, что рабочий процесс может вызываться другим рабочим процессом. Когда рабочий процесс активируется с помощью события workflow_call
, полезные данные события в вызываемом рабочем процессе идентичны полезным данным событий вызывающего рабочего процесса. Дополнительные сведения см. в разделе "Повторное использование рабочих процессов".
В приведенном ниже примере рабочий процесс запускается только при вызове из другого рабочего процесса:
on: workflow_call
workflow_dispatch
Полезные данные события веб-перехватчика | Типы действий | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
workflow_dispatch | Нет данных | Последняя фиксация в ветви или теге GITHUB_REF | Ветвь или тег, получающий отправку |
Примечание. Это событие запускает рабочий процесс только в том случае, если файл рабочего процесса находится в ветви по умолчанию.
Чтобы включить активацию рабочего процесса вручную, необходимо настроить workflow_dispatch
событие. Запустить рабочий процесс вручную можно с помощью API GitHub, GitHub CLI или интерфейса браузера GitHub. Дополнительные сведения см. в разделе Запуск рабочего процесса вручную.
on: workflow_dispatch
Предоставление входных данных
Вы можете настроить пользовательские свойства входа, входные значения по умолчанию и необходимые входные данные для события непосредственно в рабочем процессе. При активации события можно указать ссылку ref
и любые данные inputs
. При запуске рабочего процесса доступ к входным значениям можно получить в контексте inputs
. Дополнительные сведения см. в разделе Доступ к контекстной информации о запусках рабочих процессов.
Примечания:
- Рабочий процесс также получит входные данные в контексте
github.event.inputs
. Информация в контекстеinputs
и в контекстеgithub.event.inputs
идентична, за исключением того, что контекстinputs
сохраняет логические значения в исходном формате логических значений, не преобразовывая их в строки. Типchoice
разрешается в строку и является одним вариантом выбора. - Максимальное число свойств верхнего уровня для
inputs
10. - Максимальная полезная нагрузка составляет
inputs
65 535 символов.
В этом примере определяются входные данные, называемые logLevel
, tags
и environment
. Значения этих входных данных передаются рабочему процессу при его запуске. Затем этот рабочий процесс выводит значения в журнал, используя свойства контекста inputs.logLevel
, inputs.tags
и inputs.environment
.
on:
workflow_dispatch:
inputs:
logLevel:
description: 'Log level'
required: true
default: 'warning'
type: choice
options:
- info
- warning
- debug
tags:
description: 'Test scenario tags'
required: false
type: boolean
environment:
description: 'Environment to run tests against'
type: environment
required: true
jobs:
log-the-inputs:
runs-on: ubuntu-latest
steps:
- run: |
echo "Log level: $LEVEL"
echo "Tags: $TAGS"
echo "Environment: $ENVIRONMENT"
env:
LEVEL: ${{ inputs.logLevel }}
TAGS: ${{ inputs.tags }}
ENVIRONMENT: ${{ inputs.environment }}
При запуске этого рабочего процесса из браузера необходимо сначала ввести значения необходимых входных данных вручную.
Входные данные также можно передавать при запуске рабочего процесса из скрипта или с помощью GitHub CLI. Например:
gh workflow run run-tests.yml -f logLevel=warning -f tags=false -f environment=staging
Дополнительные сведения см. в разделе GitHub CLI в разделе "Запуск рабочего процесса вручную".
workflow_run
Полезные данные события веб-перехватчика | Типы действий | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
workflow_run | - completed - requested - in_progress | Последняя фиксация в ветви по умолчанию | Ветвь по умолчанию |
Примечание. Это событие активируется несколькими типами действий. Тип действия requested
не возникает при повторном запуске рабочего процесса. Сведения о каждом типе действия см. в разделе "События и полезные данные веб-перехватчика". По умолчанию все типы действий активируют рабочие процессы, которые выполняются в этом событии. Вы можете ограничить запуск рабочего процесса определенными типами действий с помощью ключевого слова types
. Дополнительные сведения см. в разделе Синтаксис рабочего процесса для GitHub Actions.
Примечание. Это событие запускает рабочий процесс только в том случае, если файл рабочего процесса находится в ветви по умолчанию.
Примечание. Нельзя использовать workflow_run
для объединения в цепочку более трех уровней рабочих процессов. Например, при попытке последовательно запустить пять рабочих процессов (от B
до F
) после запуска начального рабочего процесса A
(т. е. A
→ B
→ C
→ D
→ E
→ F
) рабочие процессы E
и F
не будут выполняться.
Это событие возникает при запросе или завершении запуска рабочего процесса. Оно позволяет выполнить рабочий процесс после выполнения или завершения другого рабочего процесса. Рабочий процесс, запущенный событием workflow_run
, может получать доступ к секретам и записывать токены, даже если предыдущий рабочий процесс не имел таких разрешений. Это полезно в случаях, когда предыдущему рабочему процессу намеренно не предоставлены привилегии, но в дальнейшем необходимо выполнить привилегированное действие.
В этом примере запуск рабочего процесса выполняется после завершения отдельного рабочего процесса Run Tests.
on:
workflow_run:
workflows: [Run Tests]
types:
- completed
При указании нескольких процессов workflows
для события workflow_run
необходимо запустить только один из этих рабочих процессов. Например, рабочий процесс со следующим триггером будет запускаться после завершения рабочего процесса Staging или Lab.
on:
workflow_run:
workflows: [Staging, Lab]
types:
- completed
Запуск рабочего процесса на основе результатов другого рабочего процесса
Запуск рабочего процесса выполняется независимо от результатов предыдущего рабочего процесса. Чтобы запустить задание или шаг на основе результата запуска рабочего процесса, можно использовать условие со свойством github.event.workflow_run.conclusion
. Например, этот рабочий процесс будет выполняться всякий раз, когда завершается рабочий процесс Build, однако задание on-success
будет выполняться только в случае, если рабочий процесс Build выполнен успешно, а задание on-failure
будет выполняться только в случае, если рабочий процесс Build завершился ошибкой:
on:
workflow_run:
workflows: [Build]
types: [completed]
jobs:
on-success:
runs-on: ubuntu-latest
if: ${{ github.event.workflow_run.conclusion == 'success' }}
steps:
- run: echo 'The triggering workflow passed'
on-failure:
runs-on: ubuntu-latest
if: ${{ github.event.workflow_run.conclusion == 'failure' }}
steps:
- run: echo 'The triggering workflow failed'
Ограничение запуска рабочего процесса на основе ветвей
Используйте фильтр branches
или branches-ignore
, чтобы указать, в каких ветвях должен выполняться рабочий процесс, чтобы активировать его. Дополнительные сведения см. в разделе Синтаксис рабочего процесса для GitHub Actions. Например, рабочий процесс со следующим триггером будет выполняться только в случае, если рабочий процесс с именем Build
выполняется в ветви с именем canary
.
on:
workflow_run:
workflows: [Build]
types: [requested]
branches: [canary]
Использование данных из рабочего процесса, активирующего триггер
Можно получить доступ к workflow_run
полезным данным события, которые относятся к рабочему процессу, активирующему триггер для запуска рабочего процесса. Например, если рабочий процесс, активирующий триггер, создает артефакты, рабочий процесс, который активируется событием workflow_run
, может получить доступ к этим артефактам.
Следующий рабочий процесс передает данные в виде артефакта. (Это упрощенный пример, где в качестве данных выступает номер запроса на вытягивание.)
name: Upload data
on:
pull_request:
jobs:
upload:
runs-on: ubuntu-latest
steps:
- name: Save PR number
env:
PR_NUMBER: ${{ github.event.number }}
run: |
mkdir -p ./pr
echo $PR_NUMBER > ./pr/pr_number
- uses: actions/upload-artifact@v4
with:
name: pr_number
path: pr/
После завершения указанного выше рабочего процесса запускается следующий рабочий процесс. Следующий рабочий процесс использует контекст github.event.workflow_run
и REST API GitHub для скачивания артефакта, отправленного указанным выше рабочим процессом. Затем он распаковывает скачанный артефакт и создает комментарии к запросу на вытягивание, номер которого был отправлен в качестве артефакта.
name: Use the data
on:
workflow_run:
workflows: [Upload data]
types:
- completed
jobs:
download:
runs-on: ubuntu-latest
steps:
- name: 'Download artifact'
uses: actions/github-script@v6
with:
script: |
let allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({
owner: context.repo.owner,
repo: context.repo.repo,
run_id: context.payload.workflow_run.id,
});
let matchArtifact = allArtifacts.data.artifacts.filter((artifact) => {
return artifact.name == "pr_number"
})[0];
let download = await github.rest.actions.downloadArtifact({
owner: context.repo.owner,
repo: context.repo.repo,
artifact_id: matchArtifact.id,
archive_format: 'zip',
});
let fs = require('fs');
fs.writeFileSync(`${process.env.GITHUB_WORKSPACE}/pr_number.zip`, Buffer.from(download.data));
- name: 'Unzip artifact'
run: unzip pr_number.zip
- name: 'Comment on PR'
uses: actions/github-script@v6
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
let fs = require('fs');
let issue_number = Number(fs.readFileSync('./pr_number'));
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: issue_number,
body: 'Thank you for the PR!'
});