Примечание.
GitHubразмещенные в данный момент средства выполнения не поддерживаются в GitHub Enterprise Server.
Введение
В этом руководстве показано, как использовать действие actions/stale для добавления комментариев и закрытия проблем, которые были неактивны в течение определенного периода времени. Например, если проблема была неактивна в течение 30 дней, можно оставить комментарий, чтобы побудить участников к действию. Если через 14 дней после этого никакие действия выполнены не будут, можно закрыть проблему.
В этом руководстве вы сначала создадите файл рабочего процесса, использующий действие actions/stale. Затем вы настроите рабочий процесс в соответствии с вашими потребностями.
Создание рабочего процесса
-
Выберите репозиторий, в котором вы хотите применить этот рабочий процесс управления проектами. Вы можете использовать существующий репозиторий, к которому у вас есть доступ для записи, или создать репозиторий. Дополнительные сведения о создании репозитория см. в разделе Создание репозитория.
-
В репозитории создайте файл с именем
.github/workflows/YOUR_WORKFLOW.yml, гдеYOUR_WORKFLOW— это любое имя на ваш выбор. Это файл рабочего процесса. Дополнительные сведения о создании новых файлов на сайте GitHub см. в разделе Создание новых файлов. -
Скопируйте следующее содержимое YAML в файл рабочего процесса.
YAML name: Close inactive issues on: schedule: - cron: "30 1 * * *" jobs: close-issues: runs-on: ubuntu-latest permissions: issues: write pull-requests: write steps: - uses: actions/stale@v10 with: days-before-issue-stale: 30 days-before-issue-close: 14 stale-issue-label: "stale" stale-issue-message: "This issue is stale because it has been open for 30 days with no activity." close-issue-message: "This issue was closed because it has been inactive for 14 days since being marked as stale." days-before-pr-stale: -1 days-before-pr-close: -1 repo-token: ${{ secrets.GITHUB_TOKEN }}name: Close inactive issues on: schedule: - cron: "30 1 * * *" jobs: close-issues: runs-on: ubuntu-latest permissions: issues: write pull-requests: write steps: - uses: actions/stale@v10 with: days-before-issue-stale: 30 days-before-issue-close: 14 stale-issue-label: "stale" stale-issue-message: "This issue is stale because it has been open for 30 days with no activity." close-issue-message: "This issue was closed because it has been inactive for 14 days since being marked as stale." days-before-pr-stale: -1 days-before-pr-close: -1 repo-token: ${{ secrets.GITHUB_TOKEN }} -
Настройте параметры в файле рабочего процесса.
- Измените значение для
on.schedule, чтобы определить время выполнения рабочего процесса. В приведенном выше примере рабочий процесс будет выполняться каждый день в 1:30 (в формате UTC). Дополнительные сведения о запланированных рабочих процессах см. в разделе События, инициирующие рабочие процессы. - Измените значение для
days-before-issue-staleна количество дней бездействия до того, как действиеactions/staleприменит метку к проблеме. Чтобы это действие никогда не применяло метки к проблемам, задайте значение-1. - Измените значение для
days-before-issue-closeна количество дней бездействия до того, как действиеactions/staleзакроет проблему. Чтобы это действие никогда не закрывало проблемы, задайте значение-1. - Измените значение для
stale-issue-labelна метку, применяемую к проблемам, которые были неактивны в течение указанного времени, указанногоdays-before-issue-stale. - Измените значение
stale-issue-messageна комментарий, добавляемый к проблемам, которые помечены действиемactions/stale. - Измените значение для
close-issue-messageна комментарий, добавляемый к проблемам, которые закрыты действиемactions/stale.
- Измените значение для
-
Зафиксируйте файл рабочего процесса в ветви по умолчанию вашего репозитория. Дополнительные сведения см. в разделе Создание новых файлов.
Ожидаемые результаты
В зависимости от параметра schedule (например, каждый день в 1:30 (в формате UTC)) рабочий процесс будет обнаруживать проблемы, которые были неактивны в течение указанного периода времени, и будет добавлять указанный комментарий и метку. Кроме того, рабочий процесс будет закрывать все ранее помеченные проблемы, если в течение указанного периода времени не произошло никаких дополнительных действий.
Примечание.
Событие schedule может быть отложено в периоды высокой нагрузки рабочих процессов GitHub Actions. К периодам высокой загрузки относится начало каждого часа. Если загрузка достаточно высока, некоторые задания в очереди могут быть удалены. Чтобы уменьшить вероятность задержки, запланируйте выполнение рабочего процесса в другое время часа.
Чтобы периодически отслеживать выполнение рабочего процесса, можно просматривать историю его выполнений. Дополнительные сведения см. в разделе Просмотр журнала выполнения рабочего процесса.
Во избежание превышения предела скорости, этот рабочий процесс будет помечать и (или) закрывать только 30 проблем за раз. Это поведение можно настроить с помощью параметра operations-per-run. Дополнительные сведения см. в документации по действию actions/stale.
Следующие шаги
- Подробные сведения о том, что можно сделать с помощью действия
actions/stale(например, закрывать неактивные запросы на вытягивание, игнорировать проблем с определенными метками или вехами, а также проверять проблемы только с определенными метками), см. в документации по действиюactions/stale. - Выполните поиск в GitHub, чтобы найти примеры рабочих процессов, использующих это действие.