Введение
В этом руководстве показано, как использовать действие 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@v5 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@v5 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)) рабочий процесс будет обнаруживать проблемы, которые были неактивны в течение указанного периода времени, и будет добавлять указанный комментарий и метку. Кроме того, рабочий процесс будет закрывать все ранее помеченные проблемы, если в течение указанного периода времени не произошло никаких дополнительных действий.
Note
Событие schedule
может быть отложено в периоды высокой нагрузки рабочих процессов GitHub Actions. К периодам высокой загрузки относится начало каждого часа. Если загрузка достаточно высока, некоторые задания в очереди могут быть удалены. Чтобы уменьшить вероятность задержки, запланируйте выполнение рабочего процесса в другое время часа.
Чтобы периодически отслеживать выполнение рабочего процесса, можно просматривать историю его выполнений. Дополнительные сведения см. в разделе Просмотр журнала выполнения рабочего процесса.
Во избежание превышения предела скорости, этот рабочий процесс будет помечать и (или) закрывать только 30 проблем за раз. Это поведение можно настроить с помощью параметра operations-per-run
. Дополнительные сведения см. в документации по действию actions/stale
.
Следующие шаги
- Подробные сведения о том, что можно сделать с помощью действия
actions/stale
(например, закрывать неактивные запросы на вытягивание, игнорировать проблем с определенными метками или вехами, а также проверять проблемы только с определенными метками), см. в документации по действиюactions/stale
. - Выполните поиск в GitHub, чтобы найти примеры рабочих процессов, использующих это действие.